Repository navigation
fix(candidate): print commands for the launcher the user installed (HACK-2251) - #863
Conversation
With the prerelease installed through hack-next, `hack-next upgrade check` printed `hack-v5 ...` commands: the bundle entrypoint overwrote the manager's HACK_CANDIDATE_ENTRYPOINT=hack-next with hack-v5, and hack-v5 is not on PATH. - scripts/hack-v5.sh keeps `hack-next` when the manager set exactly that and sets `hack-v5` otherwise. - src/lib/candidate-launcher.ts resolves the runnable command per install kind: `hack`, ~/.hack-next/bin/hack-next, or the bundle's hack-v5 by path (next to the running hack-cli). - upgrade check/apply, native setup guidance, the Compose-backend refusal and doctor hint, and the self-update refusal use it. Candidate-run detection and the daemon autostart rule are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cs (HACK-2251) - The bundle's resolved hack-v5 path rides on the hack-next launcher, so a fresh-native-home fix needs no second lookup. - The channel manager's custom-home refusal names the selected bundle's hack-v5 by path. - tests: the entrypoint keeps exactly hack-next and marks every other run hack-v5 (native and Compose, autostart still off); resolver, upgrade prefix, native setup guidance, Compose hint and update refusal per kind; the manager refusal names the bundle path. - docs: candidate install gains "Printed commands name your launcher"; native setup fixes and the start page say the printed command names the launcher. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…her (HACK-2251) Review found suggestions that still sent candidate users to stable `hack`: the upgrade check's "(apply)" line, the upgrade apply notes (`upgrade check lists it`, `--only agent-integrations`, `upgrade rollback needs --overwrite`), the project native-preflight hint, and the basic-build `config import` preview. Each now renders through the report's `cli.command` or the resolved launcher. The manager's custom-home refusal quotes the bundle path as one shell word. Tests: a native hack-next upgrade check prints no bare hack/hack-v5 command in any hint (fails on the old renderer and project hint); apply notes and the overwrite message carry the launcher; a spaced channel root is quoted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hints (HACK-2251) Second review pass found bare `hack` suggestions in less common branches: the "and N more" unchecked line, grouped manual plan steps, refused env layer findings, the unknown-project apply refusal and the agent migration outcome. Each renders through the report's launcher; the project checks take a `CommandRenderer` (default `hack`). Hints that sit next to an already-rendered doctor command now refer to it instead of repeating a bare `hack doctor`. Tests cover the env-layer refusal, the "and N more" line, a grouped manual step and the unknown-project refusal with a hack-next launcher. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@codex review |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
…te-entrypoint # Conflicts: # src/commands/update.ts
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1ea914ebd8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
…mand (HACK-2251) Codex review of #863: the printed `HACK_RUNTIME_BACKEND=compose <launcher> up` dropped the project the refused command selected, so pasting it from another directory found no project or the wrong one. The refusal now prints `--path <project root>`, plus `--branch` when one was given, and doctor's Compose and basic-build hints name the checked project's root. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
…d (HACK-2251) Review: `up --path /repos/app --env staging` printed a fallback without `--env staging`, so pasting it would start the default overlay. The fallback now carries the refused command's explicit --env next to --path and --branch. A CLI regression covers `up --env dev`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e2bab57a2d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
The privacy check flags a home-shaped path in a test fixture string. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
…t (HACK-2251) Codex review of #863: a `--root` install lives outside ~/.hack-next, but the resolver always printed $HOME/.hack-next/bin/hack-next. The manager runs <root>/versions/<v>/bundle/hack-cli on both backends, so the root now comes from the running executable: its bin/hack-next when that file exists, the default root only otherwise (a source run). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
|
Codex Review: Didn't find any major issues. Breezy! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Ready for lead: head What it does
Ran (Linux)
Not waited for / not verified
|
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
Update to the ready note: hosted CI run 43699137894 at |
…econcile Brings in next at 081a526 (#811 supervisor opt-in runner, #863 candidate launcher names HACK-2251, #808 desktop Logs tab). No conflicts. The CLI reference, machine-output table and error-code reference regenerate unchanged; E_DAEMON_SERVICE kept. #863 changes which launcher printed commands name and the candidate update refusal; it does not change the executing-CLI identity, the service program checks, durability or the post-update binding, and a candidate install is still refused before any install or reconcile. #811's supervisor reads process identities through process-tree.ts and runs its own sibling binary; it does not use this PR's ps/lsof helpers, process-ancestry or the orphan sweep. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
What
With the prerelease installed the documented way,
hack-next upgrade checkprintedcandidate launcher: hack-v5and told the user to runhack-v5 upgrade snapshotand so on.hack-v5is a script inside the bundle and is not on PATH, so none of those commands ran when pasted.Cause. On the native backend the channel manager runs the bundle's
hack-v5withHACK_CANDIDATE_ENTRYPOINT=hack-next(scripts/installer/channel.ts,environment()).scripts/hack-v5.shthen overwrote it withhack-v5unconditionally.upgradeCommandPrefixwould have mappedhack-nextto~/.hack-next/bin/hack-next, but it never saw that value. Compose runsbundle/hack-clidirectly, so Compose output was already right.Change
Entrypoint:
scripts/hack-v5.shkeepshack-nextwhen the inherited value is exactly that, and setshack-v5otherwise. Only those two values reach the CLI.One resolver:
src/lib/candidate-launcher.tsgives the command for each install kind:hackhack-next~/.hack-next/bin/hack-nextas a full path; the selected bundle'shack-v5only for a custom native home, whichhack-nextrefuseshack-v5run directlyhack-v5by full path, found next to the runninghack-cliPaths are shell-quoted, and Compose runs keep the
HACK_RUNTIME_BACKEND=composeprefix.Every user-facing command text that was built from the entrypoint, or hard-coded
hack, in these areas now uses it:--project, unknown-project, rollback-overwrite and agent-migration texts;HACK_RUNTIME_BACKEND=compose <launcher> up|restart";config importpreview;--manager upgradeforhack-next;hack-v5by quoted path.Unchanged on purpose:
src/daemon/client.tsisCandidateRun: any non-empty marker is still a candidate run.hack-v5.shstill exportsHACK_DAEMON_AUTOSTART_DISABLE=1.Docs:
candidate-install.md: new section "Printed commands name your launcher", and the custom-home path.native-candidate.md: the setup blocker fix.native/try-it.md(start page): the Compose refusal prints the runnable command.Validation (Linux)
1) fails onnext'shack-v5.sh: expectedhack-next, receivedhack-v5.hack-nextcheck, including a git checkout with an applicable step, a refused env layer and grouped steps. They assert that no barehack (upgrade|native|doctor)command and nohack-v5appears in the rendered text. They fail withnext's renderer and with the old project hint.tests/candidate-launcher.test.tscovers the resolver, prefixes, guidance, Compose and build hints, the update refusal and quoting. The installer test covers the quoted bundle path with a spaced root.tests/machine-output-contract.test.tsandtests/sync-spawn-bound.test.ts. No--jsonshape, CLI option or error code changed, so no generated reference needed regenerating.next345dc0d on the same host: the failing-test sets are identical (803 unique host-environment failures, mostly native-compose state checks; none only on this branch), and this branch has 16 more passes.check:native-plan-cliscripts pass againstdist/hackbuilt at this head.tsc -p packages/cli,bun run check,docs:checkandbiomepass.Not verified
hack-nextinstall: the lead checks on the Mac, with the next prerelease, that every commandhack-next upgrade checkprints runs when pasted.check-release-config-compiler.ts, needs a locally built release compiler. This host has no C toolchain, so it was not run here; hosted CI's Config compiler job runs it. For the same reason, the full suite and acceptance scripts here used a config compiler built in another checkout with identical Rust inputs.Release signal
fix: printed commands only. No change to candidate detection, autostart or the manager's upgrade behaviour.Refs HACK-2251.
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.