Repository navigation
v1.4.3 — Service drift detection + bootstrap UX fixes
ClawCode v1.4.3 closes the "silent stale code" failure mode and polishes the /agent:create onboarding so the ritual actually drives itself instead of leaving the user staring at an idle prompt. Thanks @JD2005L for the service-side stamp writer — another production find from his 24/7 deployment.
Fixes
/agent:create now continues the bootstrap ritual inline.
The skill used to tell you to run /mcp and then stop, expecting the agent to "detect BOOTSTRAP.md on next turn and start the ritual". But Claude Code doesn't respond without user input, so the ritual waited silently until you typed something — three interactions instead of one. The skill now drives the ritual in the same response as the Bash copy steps. /mcp moved to the end, where there are actual memory/config writes for it to pick up.
Bootstrap ritual no longer batches every question into one message.
BOOTSTRAP.md listed discovery items (name, creature, vibe, emoji, human info) as a single bullet block and framed the ritual as "don't interrogate, just talk" — which the model consistently read as "dump every question at once and wait for the user to answer them all in one reply". Restructured into numbered sequential steps with a "rule zero: one question per turn" guard-rail at the top. Enumerable choices (vibe, QMD on/off, messaging channel) now call out AskUserQuestion explicitly so you get clickable options instead of a wall of text; free text stays for name/creature/emoji.
Added
Version stamp at service start (service-side) — #22 by @JD2005L.
generateSystemdUnit and generatePlist now write the workspace's current git HEAD to a reboot-clean runtime file ($XDG_RUNTIME_DIR/clawcode-<slug>.version on Linux, $TMPDIR/clawcode-<slug>.version on macOS) before claude boots. On Linux this is a best-effort ExecStartPre=-/bin/bash -c '...'; on macOS the whole ProgramArguments is wrapped in /bin/sh -c 'git rev-parse HEAD > …; exec "$@"' with the real argv passed as positionals, so a missing git or non-git workspace falls through to the normal exec path instead of crash-looping launchd. New exported versionStampPathExpr(platform, slug) helper gives consumers the canonical shell expression for the path.
Watchdog tier 6 — version drift detection (consumer).
recipes/watchdog/watcher.sh gains a sixth tier that reads the stamp and diffs against git -C <workspace> rev-parse HEAD, returning FAIL(drift:<old>→<new>) on divergence — pushing the existing --on-fail restart path to pick up the pulled code. Auto-opt-in: both installers now append --tier=6 when the workspace has a .git directory, plus a new --slug=<slug> argument so the watcher can derive the stamp path per-platform. Non-git workspaces, missing stamps, and missing slugs all silently skip — never a fault.
Together: the service writes its boot SHA, the watchdog diffs it periodically, git pull without restart gets caught automatically and recovered on the next watchdog tick. Closes the failure mode end-to-end that #22 opened on the service side.
Smoke-test suite: 23 → 28.
5 new checks for the service-side stamp (per-platform/per-slug path expressions, ExecStartPre ordering, launchd sh -c wrapper shape, || true fallthrough). 5 new end-to-end bash tests for watchdog tier 6 (matching SHA → pass, drift → FAIL, missing stamp → skip, non-git → skip, missing slug → skip). Total 18 → 28 counting #22's additions.
Upgrade
/plugin marketplace update crisandrews/ClawCode(or/plugin marketplace update anthropics/claude-plugins-communityif installed from there — note nightly sync delay)/plugin update agent@clawcode(or/plugin update clawcode@claude-community)/reload-plugins
Existing watchdog installs: no action needed. Tier 6 only activates if you reinstall the watchdog (recipes/watchdog/install-linux.sh or install-mac.sh) on a git workspace, or pass --tier=6 --slug=<slug> manually to watcher.sh. Existing tiers 1-4 behavior unchanged.
Full changelog: CHANGELOG.md.