4.8 KiB
4.8 KiB
Changelog
All notable changes to graceful-handoff are documented here.
The format is based on Keep a Changelog.
[2.0.0] - 2026-05-01
BREAKING
- Hard cut from
commands/toskills/. The plugin now ships a single SKILL.md atskills/graceful-handoff/SKILL.mdwithdisable-model-invocation: trueandmodel: claude-sonnet-4-6. The legacycommands/graceful-handoff.mdis deleted. User-invocation/graceful-handoffworks as before. - Architecture rewrite. The 6-phase prose workflow is replaced by a deterministic Node script
scripts/handoff-pipeline.mjsthat returns structured JSON. SKILL.md is now a thin orchestration wrapper. Tests run directly against the pipeline without LLM involvement. - Removed
auto_discover: truefromplugin.json(not in documented schema; silently ignored anyway per research/05).
Added
- Auto-trigger via Stop hook (
hooks/scripts/stop-context-monitor.mjs). Estimates context usage from transcript size; at estimated ≥70%, auto-writes the artifact and creates a commit. Push remains user-triggered (separates reversible from irreversible). Lock file at<transcript_dir>/.handoff-lock-<session_id>prevents repeat firing within a session. - Context hint via statusLine (
hooks/scripts/statusline-monitor.mjs). Readscontext_window.used_percentagefrom payload; prints a hint at 60% and an urgent reminder at 70%. Display-only — never runs git (unsafe per research/03). - Auto-load via SessionStart hook (
hooks/scripts/session-start-load-handoff.mjs). Onsource: resumeorsource: compact, findsNEXT-SESSION-*.local.md(cwd + 3 levels up), injects content viaadditionalContext, archives the file (*.archived.local.md) to prevent stale-load. - Commit-message confirmation gate: pipeline prints message to stderr, reads
y/nfrom stdin (interactive).--autoflag bypasses for hook-driven invocations. - New flags:
--no-push(commit but don't push),--auto(non-interactive auto-Y),--non-interactive. - Pipeline robustness: detached HEAD detection, no-upstream detection, idempotency check (60s cooldown on clean tree), pre-commit hook respect.
- 36 unit tests across 5 test files (skill-structure, pipeline, statusline-monitor, stop-context-monitor, session-start-load-handoff).
Changed
- Pipeline staging discipline (CRITICAL). Pipeline now stages ONLY the handoff artifact (and REMEMBER.md/TODO.md if present). Previously used
git add -Awhich scoops up unrelated work-in-progress. The new behavior is enforced by a regression test. allowed-toolsis now Bash sub-scoped (Bash(git:*) Bash(node:*) Bash(jq:*) ...) instead of an openBash. Note: per research/02, this is pre-approval (not restriction) — to actually block tools, project-level deny rules are needed.- Plugin model is pinned to
claude-sonnet-4-6(was: inherit from session). Frees Opus 4.7 budget for the next session that the user is actually entering.
Known limitations
- statusLine placement in
hooks/hooks.jsonis an open assumption (research/03 confirmed statusLine config exists, but exact placement vssettings.jsonis unverified). Smoke-test required. - Token estimation in Stop hook uses
chars/3.5heuristic — may drift ±10% from Claude's internal counting. The 70% threshold is conservatively set. disable-model-invocation: truehas open issue #26251; manual smoke-test recommended before relying on it.- Auto-execute does not push: irreversible operations remain user-triggered.
Migration from v1.0.0
There is no automatic migration. v2.0.0 is a breaking change.
- Reinstall the plugin to pick up
skills/and removecommands/. - The
/graceful-handoffslash command works identically from the user's perspective. - The new auto-trigger features activate automatically when the plugin's hooks are loaded.
[1.0.0] - 2026-04-19
Added
- Initial release with single command
/graceful-handoff - 6-fase deklarativ workflow: detect → classify → write artifact → update REMEMBER/TODO → commit+push → print copy-paste-prompt
- Tre handoff-typer:
multi-sesjon(ultraplan-prosjekt),plugin-arbeid(marketplace-plugin),enkelt-oppgave(fallback) - Default filnavn
NEXT-SESSION-PROMPT.local.md; slug-override via første posisjons-argument - Flag:
--no-commit(skip git),--dry-run(ingen skriving, ingen git-ops) - Auto-generert Conventional Commits-melding fra
git diff --stat - Respekterer pre-commit hooks (secrets, pathguard) — bypasser aldri
- Tidsbudsjett < 60 sekunder; ingen Agent-delegering, ingen WebSearch
- 7-seksjons-template for NEXT-SESSION-artefakt (matcher eksisterende konvensjon i llm-security/config-audit)
Notes
- Auto-discover plugin —
marketplace.json-oppføring ikke nødvendig - MIT-lisens