Releases: agent-kit-startup/agent-kit
Release list
v5.9.0
Fixed
npx install/updateno longer send you to a stale PATHagent-kit. A global or pnpm shim at an older version (the binary that printsagent-kit v5.7.0afternpx @latest install) used to be treated as "on PATH, run it directly".init/updatefrom that binary then re-stamped the overlay. Install, init and update now compare PATH'spackage.jsonto this CLI, print the pinnednpx -y @dadado/agent-kit-cli@<this-version>form, and on an interactive TTY with a writable npm prefix runnpm i -gat that pin.setup-globalno longer exits "nothing to fix" when the prefix is writable but PATH is missing or old.statusnames overlay/PATH drift and the same pin.agent-kit run-plan-allis a terminal command. Welcome and docs treated the queue as chat-only.agent-kit run-plan-all,agent-kit run run-plan-all, andagent-kit /run-plan-alldispatch.cursor/commands/run-plan-all.md(numbered-list HITL; not therun-plantick loop). Typing/run-plan-allin zsh is a filesystem path./git-prodand/kit-prodstay operator-gated.
v5.8.0
Added
- Pending-only plan index.
agent-kit plan-index(and sessionStart) writes.cursor/context/plan-index.jsonfrom HANDOFF-named plans./continue-plan,/run-plan-all, and Broad Intake read index + HANDOFF; they do not glob.cursor/plans/*.plan.md. - Agent signature guard in
git-hooks/prepare-commit-msg. The hook was Cursor-only (it removed oneCo-authored-by: Cursortrailer). It now strips any known coding-agent signature or session link from the commit message before it is recorded: Claude CodeCo-Authored-By: Claude ... <noreply@anthropic.com>andClaude-Session: https://claude.ai/code/...trailers, Cursor, Copilot, Codex, Gemini, Devin, Aider and peer co-author trailers, the🤖 Generated with Claude Codefooter andMade with Cursorlines, and agent session URLs. HumanCo-authored-by:trailers are kept (matching is on agent names, agent mail domains and session hosts, never on the trailer key). The pattern list is embedded in the hook (--list), so the documented single-file copy install stays self-contained, and a new--check [file|-]mode scans a message or PR body and exits 1 with the offending lines (the/git-stagingand/git-prodroutines run it as a hard stop, see the next bullet). POSIX sh, BSD and GNU grep.node --test scripts/git-hooks-prepare-commit-msg.test.mjs(inpnpm test:root-node). Scope, honestly: the hook strips on the machine where it is installed and does not rewrite history; the private factory branches already carry such trailers on past commits, while the public mirror's sync commits are written byscripts/sync-public.mjswith their own message and were found clean. Install:git-hooks/README.md. - Public repo is humans-only, technically now, not just by policy.
git-hooks/pre-pushandagent-kit guard shellboth refuse a direct write to the public mirror repo (agent-kit-startup/agent-kit, never this private repo) —pre-pushblocks any push whose remote URL resolves there regardless of branch, and the shell guard's newpublic-repo-direct-writerule blocksgit push(by URL,-R/--repo, or a named remote resolved viagit remote -v) andgh pr create/gh pr mergenaming that repo directly, sameALLOW_PUBLIC_PUSH=1escape shape as the existingALLOW_MAIN_PUSHgate on both layers (independent of it — the public repo'smainbranch still needs both).gh issue *andgh apiagainst the public repo are named, not-covered gaps (not silently enforced). Agents ship product changes to the public repo only throughscripts/sync-public.mjsvia CI, as before; this closes the "an agent shell could otherwise push/PR there directly" gap. Local guard only — it is not a substitute for GitHub branch protection or CODEOWNERS on the public repo itself, which stay an operator decision. - Agent signature gate in
/git-stagingand/git-prod(/kit-stagingand/kit-prodinherit it). Both routines now rungit-hooks/prepare-commit-msg --checkas a hard stop, in the same shape as the Evidence-checks merge gate:/git-stagingscans the outgoing commit messages (git log origin/staging..HEAD --format=%B) beforegit pushand the PR body (gh pr view <N> --json body) beforegh pr merge;/git-prodscans the whole promotion delta (git log origin/main..origin/staging --format=%B) and, on the PR lane, the staging→main PR body before the merge tomain. Exit 1 lists the offending lines and the routine stops until the message is reworded; exit 2 (missing hook) counts as red. This closes the "uninstalled hook" gap: aCo-Authored-By: Claude .../Claude-Session:trailer, aGenerated with <agent>line or an agent session URL that reached a branch commit (no hook,--no-verify, a commit made elsewhere) is caught before it can land onstagingormain, where a squash merge would otherwise copy it into the branch history. Scope, honestly: the gate runs on the machine executing the routine; there is no server-side check on the private repo yet. SoT:.cursor/commands/git-staging.mdstep 5,git-prod.mdstep 5,autogit/gitupdate.mdPrompt git staging §8–9 and Prompt git prod §5 and §7;git-hooks/README.md. - Install on a fresh Ubuntu 24.04 server (
docs/install-ubuntu24-bare-metal.md): a consumer recipe for a bare-metal or VM box with no Node.js and no terminal attached (cloud-init, Ansible,bash -cover SSH). NodeSource Node 20+ unattended,git initto clear the project-root guard without a prompt,npm_config_cache=... npx -y @dadado/agent-kit-cli@latest install --yeswith a cache directory owned by the install,statusto verify, and a recovery table for theEPERMcache-ownership and exit255signatures. Same CLI-first path as Getting Started, Port B stays the fallback, L0 only (no Ubuntu pack). Validated end-to-end on a clean Ubuntu 24.04 host on 2026-09-12: install,status, and the no-terminal (bash -c ... </dev/null) case all completed cleanly, noEPERMor exit255. Pointers frominstall.md, Getting Started and the docs index. agent-kit run <slash>starts one headless session whose prompt is the L0 command file under.cursor/commands/.--backend autoselects the first installed agent CLI (cursor-agent, thenclaude). Cursor Ask questions stays Cursor-only; headless confirmations are a numbered list./git-prodis omitted from the catalog and is never auto-promoted.agent-kit run-planstays the existing one-tick loop.--backend claudefor headless plan-loop ticks.agent-kit run-plan --backend claude(and theagent-kit run run-planalias) runs each tick as headlessclaude -punder the same one-tick contract ascursor-agent: one to-do per tick,LOOP_TICK_RESULTsentinel,/git-stagingon a diff, never/git-prod.--backend autono longer fails on a machine where onlyclaudeis installed.ANTHROPIC_BASE_URL/ANTHROPIC_AUTH_TOKENpass through to the tick for gateway routing and are redacted in every tick log, tip and error on every backend,cursor-agentincluded (chunk-boundary safe; the gateway host and common encoded forms — JSON-escaped, URL-encoded, base64 at value start — are elided too, not only the exact value);agent-kit run <slash>on theclaudebackend gets the same env passthrough, log redaction and headless permission flags (--dangerously-skip-permissions --permission-prompts none), so a dispatchedgit-stagingcan actually commit. The claude child env drops the four nested-session markers theclaudeCLI itself strips (CLAUDECODE,CLAUDE_CODE_SESSION_ID,CLAUDE_CODE_CHILD_SESSION,CLAUDE_CODE_BRIDGE_SESSION_ID). Pre-spawn checks:claude >= 2.1.259and the.claude/commands/run-plan.mdadapter (agent-kit install --claude), each refused with a named cause. Opt-in capsAGENT_KIT_CLAUDE_MAX_TURNS/AGENT_KIT_CLAUDE_MAX_BUDGET_USD(no default). A tick whose stream-json result carriesis_errorstops the loop with the result subtype on the console. Console tips print workspace-relative paths and collapse the home directory to~. Reverses theNot --backend claude plan-loop ticksnon-goal at every documented site under the reservation in ADR2026-08-13_claude-cli-ultracode-orchestration-thin-adapter.md; the audits reviewer keyexternalPlanReview.backend: "claude"is a different field and is untouched. Planmajor-tomPhase 1; ADR2026-09-04_major-tom-autonomous-mode.md. MINOR.
Changed
- Cursor Projects (beta, shipped 2026-09-10) studied and decided: no structural change. Primary-source study (
docs/research/cursor-projects-study.md) and ADR2026-09-12_cursor-projects-thin-adapter.mdconclude Mission Kit's continuity model (HANDOFF/plans), plan-loopBackendId(cursor-agent/claudeonly), Mission Control's local-only/copy-only posture, and thin hook adapters all stay as-is — Projects is a Cursor-native surface the operator may use directly.docs/cursor-3-features.md(retitled from "Cursor 3.0 Features," same filename) gains a Projects row;docs/cursor-native-audit.mdgains a Projects inventory row, a refreshed last-refreshed date, and records thatagent-kit cursor-awareness --checkdoes not detect Projects (no feature-keyword diff, only open action items and a version-number baseline). - Mission Control TUI paints field labels with the muted visual-kit token and status / lifecycle values with dashboard
--green/--yellow/--red/--cyan.NO_COLOR,CI, and non-TTY frames stay uncolored.
Fixed
agent-kit updateno longer silently overwrites a customized hook or script. The consumer overlay that preserves edited kit files now covers.cursor/hooks/and.cursor/scripts/in addition to agents, skills and commands. A consumer that widened.cursor/hooks/pre-commit/check-secrets.sh(a security control) lost that edit to a no-version-change apply that printed only+ path; the file now stays as the consumer left it, is reported underPreserved customized overlaywith its path, and the output says where the change belongs (agent-kit diff,agent-kit contribute, or a single-pathprotectedpin). Unedited hooks and scripts still refresh, including copies shipped at v5.3.0–v5.7.0. The manifestpersonalization.generatorVersionis also restamped with the applying CLI version on every apply so it no longer disagrees withversionafter an update (the personalization result file itself is not regenerated).installanddoctorwarn when the running CLI is behind npmlatest, honoring the existingupdateCheckopt-in and interval (no network on every invoke by default). Recovery and post-install npx copy pin@latest. Mission Control TUI quit is exactq/Q/ Ctrl-C, not a substring.- Mission Control TUI live view:
qquits, refresh no longer stacks collectors, a non-git cwd stays quiet, and the CLI pack gate pinsdashboard/libdata deps (semantic-model,terminal-snapshot,triage-heading,live-refresh). - **`agent-kit upd...
v5.7.0
Changed
- Consumer install copy is Cursor-first: root
package.json, README eyebrow, and getting-started no longer list VS Code or Windsurf as peer IDEs. Partial generators still ship; Action A7 (generator parity) stays a non-goal. - Mission Kit landing shows the current public release version (New release pill plus a link to the public GitHub Release) and short product notes in the existing changelog field, matching the original pill-and-frame visual. Release version and product notes are static page fields, not a third-party feed or a factory-changelog dump. Operators stamp those two fields with
pnpm landing:update-release(does not deploy). - Consumer documentation rewritten with usage-first Fable copy. README hero section, getting-started guide, and CONTRIBUTING page now focus on concrete install steps, surfaces, and day-to-day workflow. Retired five-layer claim matrix from consumer storefront; factory evidence files preserved for CI.
Added
- Public changelog filter: public GitHub
CHANGELOG.md, GitHub Release notes, and the landing product-notes field publish only consumer and contributor product notes. Factory-only bullets stay behind<!-- changelog-private -->fences. Preview withnode scripts/public-changelog.mjs; landing stamp uses--version X.Y.Z --blurb(never passCHANGELOG.mdas--notes-file). /kit-stagingand/kit-prodwrap native/git-stagingand/git-prod(those stay git-only: branch/MR for staging,staging→mainplus tag and npm for prod). When a product changelog or release actually changed, the kit bundles add a surgical public-landing field update and, after an explicit Ask, deploy the landing to staging or promote it to production.docs(memory)monitor commits do not trigger a landing deploy. Repo-only shipping stays the native git commands.- CLI-native Mission Control TUI (
agent-kit mission-control): browser-free ASCII view of Mission, Flight Log, Checklist, and Crew Monitor. Reusesdashboard/dashboard-data.mjs/semantic-model.mjswithout starting the HTTP server; live refresh uses the existingPERIODIC_REFRESH_MSpoll. Visual-kit tokens (HELMET_*/LABEL_MUTED) and TTY /NO_COLOR/CI/AGENT_KIT_REDUCED_MOTIONgates stay as in ADR2026-08-13_cli-visual-kit-space-chrome.md. ADR2026-08-27_cli-native-mission-control-tui-thin-deps-third-surface.mdrecords stay-inside-thin-deps (@clack/prompts/citty/koloristonly; no Ink/ora/chalk/figlet) and that the TUI is a third surface, not a Path C replacement. Claude Code/agent-kitrendersmission-control --once(one-shot; not a live loop). Plancli-native-mission-control-tui. - Mission Control Git tab visual tree + new DevOps tab. The Git tab's existing markdown
git log --graphblock stays as-is; a new state-colored vertical tree renders next to it, reusing the.now-stepper/.now-step-markertimeline primitive built for the Current Mission panel (parsesSNAPSHOT.git.graph's commit lines, flattened to one row per commit — HEAD/promoted-to-origin/main-or-origin/stagingstate-colored, degrading to a compact empty-state on an unparseable graph). New DevOps tab (#devops, nav dot, hash-deep-linkable) is scoped to CI/CD + deploy signal, distinct from the existing local-process-only Processes tab: a pipeline card from a newdashboard-data.mjsgh run listcollector (budget-guarded, fails soft to an honest empty-state whenghis unavailable/unauthenticated or the run itself would blow the snapshot's soft time budget), and a best-effort "what shipped recently" deploy-activity card fromv*git tags + the latest non-UnreleasedCHANGELOG.mdentry — deliberately not a live infra/hosting poll, and says so.dashboardDataVersion1.3.0 -> 1.4.0. Planmc-git-tab-visual-tree-and-devops-panel. - Per-agent/subagent context-usage cap, docs + enforcement: ADR
2026-08-24_agent-context-usage-cap-window-pressure.mdsets a<=50%-of-window target using the existingcontext_usage_percentsignal from the CursorpreCompacthook — the only real local window-pressure signal, reused exactly as-is (no new token/cost telemetry, no violation of the standing2026-08-14_mc-idle-session-token-cost-no-go.mdno-go). Documents the operator's "190k tokens" framing as a window-size-class ratio (200K-class ~95%, 1M-class ~19% — hence the enforceable cap is a percentage, not a literal token count), and the coverage gap thatpreCompactis Cursor-only (no signal exists for Claude Code sessions today).packages/cli/src/hooks/pre-compact.tsgainedCONTEXT_USAGE_CAP_PERCENT = 50and threshold logic inbuildPreCompactUserMessage: apreCompactfiring at/above the cap (or with no reported percentage — auto-compaction implies high pressure) escalates the emitteduser_messageto name the cap and force a HANDOFF checkpoint before continuing; below-cap firings keep the original gentle wording..cursor/commands/run-plan.md's tick-close contract gained step 3a treating an observed escalated firing as a mandatory (not optional) HANDOFF checkpoint. Newpackages/cli/src/hooks/pre-compact.test.ts(5 tests). Also surveyed 5 real third-party token-reduction/context-compression tools (Headroom, Caveman, Graphify,atlassian-labs/mcp-compressor, Tokalator) for scam/legitimacy risk — all ratedevaluate-further(no confirmed malicious signal in any, but three show anomalous star-velocity worth independent scrutiny before reliance); none installed or adopted. Planagent-context-cap-and-token-tool-research.
Fixed
- DevOps tab pipeline card:
collectPipelineRuns()'sgh run listtimeout (GH_RUN_LIST_TIMEOUT_MS) had no real headroom over this repo's observed latency — 3500ms against live-measured samples spanning 2.1-9.9s across sessions (8 fresh samples this pass: 3476-6584ms, one 7674ms outlier). Fixed in dependency order: (1) the collector now runs last among the snapshot's budget-guarded collectors (after processes, detached-audit-sessions, agentPrompts, externalReports, subagentRuns), not ahead of them, so a slowghnetwork call can no longer starve the local-only collectors sharingSNAPSHOT_BUDGET_MS; call cost trimmed too (--limit10 -> 5, unuseddatabaseId/url--jsonfields dropped — neither is read by the card). (2)GH_RUN_LIST_TIMEOUT_MSraised 3500ms -> 12000ms with real margin over the measured range;SNAPSHOT_BUDGET_MSdefault raised by the same delta (12000ms -> 20500ms) so the larger reserve the collector needs is actually available. (3) The pipeline card's empty-state copy no longer unconditionally blames "gh is unavailable or not authenticated" — the collector now returns areason("budget"when the shared snapshot budget ran out beforeghwas even attempted,"call-failed"whenghwas attempted and failed/timed out) and the card copy follows it. Live 5-run + 1-diagnostic-budget verification (this sandboxed dev environment) found the dominant real failure mode is in fact"budget": a separate, out-of-scope collector (SNAPSHOT.git, ~10 unguardedexecSynccalls with no budget check) is consuming the entire default budget on its own here, before the snapshot even reaches the now-last-placed pipeline collector — confirmed via a diagnostic run withAGENT_KIT_DASHBOARD_DATA_BUDGET_MS=60000, which returnsavailable: truewith real runs. That collector is unguarded/unbudgeted and outside this fix's scope; noted as a residual. Planclose-mc-git-tab-devops-pipeline-timeout-residuals.
v5.6.0
See CHANGELOG.md for full details.
v5.5.0
chore: sync private v5.5.0 (8bb0ffd) (#47)
v5.4.0
chore: sync private v5.4.0 (65d20e0) (#46) * chore: sync private v5.4.0 (65d20e0) * Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: agent-kit-sync <sync@agent-kit.dev> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
v5.3.0
5.3.0 - 2026-08-15
Added
- Optional Cursor Cloud Agents audits backend (
externalPlanReview.backend: "cloud"), pin only. - Spec Kit SDD mapped onto existing Agent Kit surfaces (adapt vocabulary, ignore runtime).
- Multi-instance Mission Control broadcast: per-workspace port, honest preflight, no kill recipe.
Fixed
- HANDOFF HITL provenance;
/backlog-addnever-Ask onconfirm-provider; wait-slice exit 3 same-session resume; broadcast preflight names listeners and does not kill strangers.
Changed
- Marketplace Core Pack submission pending review.
- Dogfood and audit path stays on main commands (
/run-plan,/run-plan-all,/continue-plan,/backlog-add).
v5.2.1
[5.2.1] - 2026-08-14
Changed
- Marketplace SoT no longer claims the public plugin manifest is 4.8.9 / metadata-only. Public
.cursor-plugin/plugin.jsonis 5.2.0 with explicit component paths; live Cursor Marketplace submission stays publisher HITL and unchecked (docs/marketplace.md,docs/cursor-update-awareness.md,docs/comms-channel-map.md,docs/cursor-native-audit.md). - Marketplace / plugin logotype is
dashboard/logo-marketplace.svg: 512×512 (1:1) SVG, transparent square canvas, rounded#0b0e14plate, Cursor-skin stroke mark centered. Mission Control chrome still uses unplateddashboard/logo.svg(legacy) anddashboard/logo-cursor.svg(Cursor skin). - Production also versions the Mission Control logo marks (helmet, cursor-skin, marketplace plate) under
assets/production/(private; not public-synced).
Fixed
/plan-review-triageno longer tells agents to suggest Field Report Review all or/field-report-reviewwhen every monitor is already triaged. Next step is/plan-external-reviewif a new review is owed, or a Flight Log Copy triage command paste. There is no/field-report-reviewslash command and no Mission Control Review all button.
v5.2.0
Release v5.2.0 (synced from private source of truth).
Added
- Overlay known-hashes refresh helper (
pnpm overlay:hashes) - Knowledge-classification dirty-tree guard (
--require-clean-tree) - Dashboard
guards.d.mtsexport parity (49/49) - Factory CI Evidence checks run root
node --testsuites
Changed
- Audits Claude reviewer default is
sonnetso--permission-mode autocan run - sessionStart adapter emits a degraded-mode diagnostic when kit resolve fails
/plan-review-triagenames closeout_depth sources and Hard stop 5 override
Fixed
- Cursor-awareness inventory/stamp at resolved root; walk-up stops at
.git - Factory composed pre-commit (main-guard + secrets/JSON when present)
- Mission Control progress math and readable non-error colors
- Cache lock hardening and install
exitCoderecovery path - Public-sync denylist fail-closed; Path C skips factory-only tests
See CHANGELOG.md for the full 5.2.0 notes.
v5.0.0
Fixed
-
agent-kit cursor-awareness --check: walk up from--cwdto finddocs/cursor-native-audit.md(fixes false Missing inventory when the shell is underpackages/clior another nested path); consumer/missing-docs path returns an actionable--cwdhint. Native-audit Action table: A5 Done (rootAGENTS.mdpresent), A4 Partial with dual-lane next step, A7 Open with scoped multi-IDE next step; A6 unchanged. -
Pre-v5.0.0 evidence gate: R14-pair mid-batch monitors
plan-monitor-fix-staging-ci-and-queue-end-product-residuals.mdandplan-monitor-close-ship-5.0-npm-npx-install-residuals.mdwith_index.mdAudits rows and regeneratedocs/evidence/knowledge-classification.jsonsopnpm evidence:knowledge-classification:checkis green again (Still open A from ship-5.0 clean pre-git-prod gate). -
Pre-v5.0.0 tag gate: re-verify lint/typecheck/tests/deny-links/evidence/landing/Path-C-pack on staging
71dbbae; persist matrix atdocs/evidence/runtime/ship-5.0-pre-tag-green-gate-2026-08-12.md; R15 Closed-by A/B onplan-monitor-ship-5.0-clean-pre-git-prod-gate.md. No tag; no/git-prod. -
Landing closeout: factory CI runs
pnpm landing:build+landing:build:check; Align Closed-by pointer notes public LICENSE still pending/git-prod; R15 Closed-by appends on the five queue-end monitors (Design SoR re-absorb + clipboard success-path evidence still owed before next sync). -
Mission Control broadcast: live
missionkit.io/mc/open.htmlmatches repo harden (R1 verified by sha256);start-broadcastdegrades to LAN/token print when share encode rejects non-RFC1918 primary LAN (Tailscale 100.64/10); HTTP-level serve auth matrix covers/open+/open.htmlwithout token vs token-gated data. -
Mission Control preferred-browser residuals: CLI uses
resolveContextConfigPath; OS-default and fallback opens detect failure before claiming success; reject win32/cmdmetacharacters" % ^ ' = , +; expand hermetic which/win32 spawnSync tests; ADR trust-boundary + failure-honesty updated. -
Dogfood L0 nits:
/run-plan-allper-plan worker template states orchestrator already skimmed Unprocessed; drop inert PO dogfoodread_scopepaths; promote/continue-plandogfood preflight to its own hard stop (runs regardless ofexternalPlanReview.preflight); overlay hash set +2. -
Dogfood Unprocessed parser: accept markdown table rows and numbered list items; terminate the Unprocessed section on any
Processed Filesheading (stops mixed H2/H3 leaks). -
Knowledge-classification CLI: default to the handoff fixture and refuse baking live
.cursor/HANDOFF.mdinto the tracked ledger unless--allow-live-handoff(prevents repeated Evidence-check red after barenode …mjsregenerations). -
Staging Evidence checks: regenerate
docs/evidence/knowledge-classification.jsonviapnpm evidence:knowledge-classification(handoff fixture) and R14-pair five queue-end plan monitors plus_index.mdAudits rows soevidence:knowledge-classification:checkis green again. -
missionkit.io install / prompt copy CTAs: await clipboard writes, show honest failure UI (not optimistic ✓), and fall back to
execCommandwhen the Clipboard API rejects; decorative "Copy plan path" / "Copy /git-staging" mock buttons marked disabled. Built vialanding:build, deployed to Hostinger; Design SoR re-absorb notes inUPSTREAM-DESIGN-FIX-PROMPT.md. -
Mission Control preferred-browser residuals (A–H): validate
preferredBrowseras an app/binary name (reject path separators and shell metacharacters); attach spawnerrorhandlers and fall back once to the OS default opener with honest starter messages; alignstart-broadcast.mjspreference root withresolveSnapshotRepoRoot; sharenormalizePreferredBrowser/OS_DEFAULT_TOKENSwith the CLI; document per-platform values and factory/CLI-only/dashboard-broadcastslash; expand hermetic tests (win32,spawn-failed,invalid-url, fallback). Pack-gate hygiene I remains on broadcast F8. ADR2026-08-11_mission-control-preferred-browser.md -
Dogfood Broad Intake / sessionStart now accept consumer
## Unprocessed Filesas well as factory###(parser ends on same-or-higher heading);/dogfoodpins H3 on new consumer writes; ADR decision 2 append-only correction; bucket-count prose uses table-as-SoT (no hardcoded numeral);/run-plan-allorchestrator owns Unprocessed preflight (workers skip re-recite);docs/external-plan-review.mdBroad Intake row names the dogfood bucket -
Cache lock release fail-closes when owner metadata is missing, unreadable, or mismatched (no longer deletes a successor's lock during the mkdir → owner publish window); owner.json is published via temp file + rename; install
RootRefusedErrormatches update (process.exitCode = 1+ return) so cleanup/finally stay reachable -
Crew Monitor structural pin (residuals E/F from
close-crew-glyph-avatar-still-open):expectBadgeIsRowSiblingBeforeActornow whole-template-counts${chipHtml}/ chip classes to zero and requires exactly one${badgeHtml}, closing the half-locked sibling gap left by the retired feed-label helper; empty-template assertion names thecrewMonitorRowRenderTemplatemarker for clearer diagnostics -
npm pack --dry-run --jsonnow receives clean JSON on stdout because the CLI dashboard prepack sync message is written to stderr. -
Close multi-workspace install isolation residuals D2/L1/L2/L4/P2/P3: mode-independent root guard for
--yes/$HOME///no-git+no-manifest with--force-rootescape hatch; cache lock ownership token (PID/UUID) with mtime refresh and ownership check before stale reclaim/release; hold cache lock across install/update/add/diff/contribute registry copy; refusedupdateexits non-zero;dashboard-broadcast.mdderivesMC_PORTfrom repo root;install.mdPort B notes chat-install Ask as theconfirmProjectRootequivalent. D3/L3/P1 were already fixed at HEAD (see.cursor/memory/plan-monitor-multi-workspace-install-isolation.mdClosed-by section). -
Close vscode-first-install dashboard onboard residuals C/E/K/J-vscode: skip-if-exists guard for
.vscode/settings.json,.github/copilot-instructions.md, and.vscode/security-review.agent.md; generated artifacts registered inprotectedPathsandPersonalizationResult.items;generator/vscode.test.tspins the guard;docs/getting-started.mdsplitsnpx -y(suppressesnpx's own confirmation) from CLI--yes/AGENT_KIT_YES=1(skips project-root prompt);terminal.test.tspinsisNonInteractivefor CI,AGENT_KIT_YES, andstdin.isTTY. A/B fixed at HEAD; D2 owned by multi-workspace plan; F/G/H/I out of scope. -
Close BIGFIX PTY monitor still-open residuals R1–R7:
buildjob checkout now usesfetch-depth: 0; risk-hotspot scorer no longer depends on a shallow-unresolvable git range; knowledge-classification--checkignores commit provenance fields; ledger census scopes to tracked paths; HANDOFF Gaps updated to honest red-build voice; behavioral tests added forwait_for_pty_progressbanner-baseline and deadline logic; liveness probe for cap/warn concurrent-arm refusal documented as backlog -
Config persona Inherit default sends null to clear a stored mode override (guards merge delete path)
-
Overlay update: end-to-end ledger-absent evidence that known-shipped files refresh while customized peers stay preserved (
docs/evidence/overlay-update-preserve-refresh.md) -
SECURITY.md: private vulnerability reporting preferred first when enabled; public no-detail issue is fallback; PVR enable remains repo-admin HITL
-
CLI welcome helmet outline uses
HELMET_OUTLINEvia trueColor; test asserts rendered ANSI -
CLI welcome grouped help: await citty
Resolvable<CommandMeta>inhelp-groups.tsand accept genericCommandDef<T extends ArgsDef>sopnpm typecheckandpackages/cliDTS build pass after the bare-invoke welcome work -
Regenerated
docs/evidence/knowledge-classification.jsonand tracked three queue-end plan monitors with paired_index.mdAudits rows soevidence:knowledge-classification:checkis green -
Ship
packages/cli/LICENSEin the published packagefileslist so npm tarballs include PolyForm Noncommercial text -
Landing Mission Control demo (
landing-missionkit/remote/mc): refresh#mc-mock-dataCurrent Mission agent toTech Leadand feed labels to design-v2 wire tokens (Eng/SQ). The tracked snapshot does not ship productCREW_ACTOR_MASK/crewActorRole, so the iframe still renders wire tokens verbatim (not long display masks). Correcting the earlier false claim that fixtures were display-masked; demo lexicon restoration waits on product-snapshot regen or Design export →landing:sync(do not hand-editremote/as SoT). Seedocs/agentkit-landing.md -
Evidence anti-overwrite:
generate-codebase-findings.mjs --writepreserves on-disk reviewed coverage batches; non-mutating findings/hotspots checks ignore HEAD-volatilegeneratedAt/ working-tree digest fields -
Backfilled 11 registry skill hashes into
KNOWN_SHIPPED_OVERLAY_HASHESand pin registry SKILL.md coverage in Vitest -
Capability inventory: regenerate launch-announcement anchors, restore SHA-verified counts, document factory-only
/public-issue-triagecounting policy -
Capability inventory: re-verify README positioning anchors against HEAD (Anchor L# column) and point verified-against SHA at
7fdb03c -
Config tab: persona mode "Inherit default" skips empty mode overrides; document
/api/configtoken exemption in write verification matrix -
SECURITY.md: list working private maintainer channel first while public PVR remains disabled
-
CLI welcome nits:
guardmeta(shell, prompt), column-aligned hints, broader CI env detect,hasCliSubcommandtests, helmet outline uses light text color -
KNOWN_SHIPPED_OVERLAY_HASHESwas missing.cursor/skills/core/docs-repo/SKILL.md, so an unedited consumer copy of that skill was misread as customized and never refreshed byagent-kit update. Ledger refreshed...