release: 0.29.0 — the install verbs read as plan, apply and done - #27
Merged
Merged
Conversation
The write verbs print a header, then PLAN, APPLY and DONE (install spec, contract 18). At a terminal they ask `Apply N changes? [Y/n]` after the plan, even when the harness is named (contract 9 as amended 2026-10-04): Enter, y or yes applies, anything else writes nothing. The old prompt, asked only of a bare install, was [y/N]; the reconcile and agents gates keep it. Without a terminal nothing changes: a named harness is the confirmation and a bare run refuses. There is still no --yes. - scripts/term.mjs (new, zero dependencies): colour from the terminal, NO_COLOR and FORCE_COLOR; icons with an ASCII fallback; wrapping on a live terminal only; step lines rewritten in place; the one line reader both gates of the bin use - install-harness.mjs: the plan is printed before the question (the bare interactive install asked first); every written path and host argv with its touches stays in the default view, and every row's reason with it, while the host-managed report becomes one line and a harness's unsupported rows fold to one, both restored by --verbose; APPLY reports each step of a registration and the layout move; DONE takes the next steps from the manifests' new install.next, and STOPPED names what failed; isInteractive covers TTY, CI, --json and every manifest's session marker; end of input is a no, and Ctrl+C is SIGINT; plan --json gains no key - cli.mjs: grouped --help, per-verb --help with examples and exit codes, and the nearest verb or option for a near miss; --verbose on the install verbs; the reconcile and agents gates share the line reader, so Ctrl+D there is a no as well - shells: the bins pass PROJECTSTORE_SHELL, which only the help and usage text read; their comments state the amended rule; re-rendered, with packlists - the Codex agents and doctor skills (build-adapters.mjs, re-rendered) preview with plan and run the confirmed write with --json - README and both shells' READMEs state the rule and point at plan, --verbose and --help - tests: term.test.mjs is new. The suites now cover the gate on real streams, the interactive matrix, the plan-then-question order, every reason in the default view, write glyphs, --verbose, DONE and STOPPED, Codex's touches in text, APPLY's steps for a registration and the layout move, and help. All 556 pass, plain and under FORCE_COLOR=1. - the version at every guard site A projectstore:critic pass, a projectstore:planner pass and a projectstore:reviewer pass are recorded in the story "Install, upgrade and uninstall read as plan, apply and done, and a terminal asks before writing" (PS-HARNESS). Maintainer: [email protected]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The 0.29.0 release:
install,upgradeanduninstallnow print a plan, the steps as they run, and a result. At a terminal they ask before anything is written.The maintainer asked for this after upgrading both shells to 0.28.2. Each printed one undivided block, ending in
applied 3 change(s).. The record is the story Install, upgrade and uninstall read as plan, apply and done, and a terminal asks before writing (PS-HARNESS). It changes contract 9 of the install spec and adds contract 18.What changes for a user
install.next.--verboserestores the host-managed prose and each step's why.Apply N changes? [Y/n]after the plan, even when the harness or shell is named.yoryesapplies.--json, and runs inside a host session.--json, setCI=1, or use</dev/null. There is no--yes.--helpis new.<verb> --helpshows the options, examples and exit codes. Through a shell, the examples use the shell's name.did you mean install?.installasked before it showed the plan;--jsonin a terminal asked into its own envelope;Under the hood
scripts/term.mjs(new, zero dependencies) handles:NO_COLOR,FORCE_COLORandTERM=dumb;plan --jsonandinstall --jsonkeep their shape.PROJECTSTORE_SHELL, which only--helpreads.--json.Reviews
All three passes are recorded in the story:
projectstore:criticreturned revise. In response, the amendment is scoped to the install family, and it now covers the answer rules, the unattended path, the Codex measurement gap, and the superseded wording.projectstore:plannerfound a crash before release: the interactivity check called.someon aMap, so every real terminal run would have thrown. It also found readline's escapes and a keyplan --jsonhad gained.projectstore:reviewerran a real pseudo-terminal and compared side by side with 0.28.2. It found uninstall's reasons folded, writes wearing the skip glyph, and a STOPPED line that blamed a host command for every failure. All are fixed.Checks
npm run release:check: 556 of 556, both inside a Claude Code session and with its markers stripped.FORCE_COLOR=1too. The test runner sets that for its children in a colour terminal.node scripts/version-guard.mjsreports ok, andnode packaging/shells.mjs --checkreports ok.Known limits
Merging this is the git marketplace's release. After the merge,
v0.29.0is tagged onmain, and CI publishes all three packages underlatest.Maintainer: [email protected]