Skip to content

Lab Zero v1.17.0 — projects update their own engine

Choose a tag to compare

@rayrage213 rayrage213 released this 31 Aug 18:07
· 5 commits to main since this release

v1.17.0 — 2026-08-31

  • Projects you graduate can now update their own engine. Until now a stamped project got the engine once, at stamp time, and never again: every drift meant a hand migration, and there was no way to even tell which engine version a project was on. Every project stamped from v1.17.0 ships its own update.sh plus an .agents/VERSION stamp. Run bash update.sh --check inside the project to see its engine version against the latest release plus what's new, and bash update.sh to refresh the machinery — scripts/, tests/, the skills, the hooks, bootstrap.sh. Your project's own layer is never touched: Source/, AGENTS.md/CLAUDE.md, identity/, Log/, Sessions/, recall.config.json and .claude/settings.json are yours. (.claude/settings.json is excluded deliberately — it holds your project's absolute path from stamp time, and refreshing it would restore the raw placeholder and silently disable every hook.) It pulls the same published releases your Lab does, adds no git remote and writes no local tag, so your project's own release tags are left alone; set LAB_ZERO_UPSTREAM if you work from a fork. Projects stamped before v1.17.0 can install the updater with one line, run inside the project: git fetch -q https://github.com/cyb213/Lab-Zero.git refs/tags/v1.17.0 && git archive FETCH_HEAD template/update.sh | tar -x --strip-components=1 — then bash update.sh brings the rest, including the version stamp. Two limits worth knowing: updating adds and overwrites but never deletes, so a skill removed upstream leaves a stale copy behind (your check-skills-sync.sh pre-commit gate flags the skills case); and template content under your own directories — Log/plans/TEMPLATE.md, the Source/ skeletons — never refreshes, because those directories belong to your project. Not included: re-pulling identity. Your identity/IDENTITY.md is a vendored copy and stays a hand copy. On an existing install: update.sh delivers the new template to your Lab, so projects you graduate from then on carry the updater; projects graduated earlier need the one-line install above.