Repository navigation
feat: retire genie launch atomically with its consumers (spawn-context-contract#launch-removal) - #2789
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7bea11bbb3
ℹ️ 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".
| Preview the wave plan without side effects: | ||
|
|
||
| ```bash | ||
| genie launch <slug> [--groups <csv>] | ||
| genie context --wish <slug> --plan |
There was a problem hiding this comment.
Do not present every ready task as the current wave
For wishes with dependency-ordered groups, this command does not preview the current wave: context returns every task whose database status is ready, while this same skill notes at line 107 that CLI-created tasks are ready from birth and that waves must instead be derived from the WISH.md Execution Strategy. A spawn consumer treating the advertised output as the wave plan can therefore dispatch later groups before their prerequisites; describe this as spawn-context data and direct callers to derive the wave first and request each selected --group.
Useful? React with 👍 / 👎.
…t-contract#launch-removal) Delete launch.ts + warp-launch with no deprecation window; rewire Hermes genie_work_plan and the pi-genie mirror to `genie context --plan`; retire the work skill's multi-session mode (recorded amendment); remove the .warp/.mcp.json scaffolding from genie init; update plugin mirrors, README/CLAUDE/AGENTS command inventories (16 honest commands), and the e2e lifecycle preview section; derive the release-docs command inventory from the live --help registry.
7bea11b to
01f2b87
Compare
…due, retarget the launch-residue check (#2793) * feat(doctor): spawn-context-contract#drain — retarget the launch-residue check Post-0.3 wish worktrees are remotty's sessions (`<project>/.worktrees/<session>`), so doctor reports them as kept sessions and never classifies them as launch residue — removal is manifest-owned by remotty. The launch-residue class stays scoped to the legacy placement (launch branch shape + the legacy `<GENIE_HOME>/worktrees/` base), so pre-0.3 leftovers are still detected and still drain via the fail-closed `--fix` proofs. Regression tests: legacy residue still detected; a remotty-session worktree (any branch, including `wish/<slug>-<group>`) is not classified and --fix never touches it; sessions resolve via the main worktree wherever doctor runs. * docs: spawn-context-contract#drain — carried launch-residue hygiene - .gitignore: the .genie/launch/ rule is legacy residue protection, not a live `genie launch` attribution (mirrors init.ts's wording). - .genie/repo-profile.md: launch.ts/warp-launch.ts recorded as retired 2026-08-13 (PR #2789) with the historical pointer kept; the `genie launch` DEBT anchor marked closed by the retirement. - claude-md-drift.test.ts: 'genie launch' joins RETIRED_FOSSILS so the retirement is self-defending like every prior one.
Implements the
launch-removalexecution group ofspawn-context-contract(Wave 5 — the replacement surfacegenie context --planalready exists on dev, and the wish-scoped spawn side is held as a remotty PR per plan).What ships
genie launchdeleted atomically with its consumers —src/term-commands/launch.ts+src/lib/v5/warp-launch.tsand their tests removed;resolveWorktreesBaserelocated tosrc/lib/v5/launch-worktrees.ts(mechanical import-only change indoctor-worktrees.ts, whose retarget stays owned by the drain group). CLI registry is now 16 commands (was 14 documented / 17 actual).$workmulti-session mode retired with the recorded amendment (DRAFT U2 → Option A): native subagents are the only dispatch mode; the spawn plan preview isgenie context --wish <slug> --plan; supervised parallel sessions are arranged from the spawn side.genie_work_planrewired togenie context --wish <slug> --plan [--group g](single group; schemagroups[]→group); pi-genie mirror updated in lockstep. Hermes contract tests green (58 passed)..warp/.mcp.jsonscaffolding removed fromgenie init—registerProjectMcpConfigsnow writes only.mcp.json+ the marker-owned.codex/config.toml; the file-pinned paths in launch.ts + codex-project-mcp.ts are gone; symlink-guard and preflight tests updated. The.genie/launch/gitignore rule stays as legacy residue protection.git grep -l 'genie launch' skills/ plugins/== 0;sync-plugin-skills --checkgreen; skills + all three plugin mirrors updated (work, lifecycle, native-surfaces, genie-hacks, pm, review, council, rules, dispatch-contract, codex-integration-map).context,idea, andui-bridgerows; AGENTS.md freeze rule no longer names the deleted verb;scripts/release-docs.test.tsderives the command inventory from the live--helpregistry instead of a hardcoded list (carried order).launch --dry-runsection is replaced by acontext --wish <slug> --plansection proving: one line of versioned JSON, composed branch + full 40-hex base SHA + all three task ids, exit 0, byte-identicalgenie.dband unchanged.genie/file set modulo the documented-wal/-shmVFS pair (read-only proven), no worktrees materialized.Not touched (out of scope by design)
--fix(genie.ts doctor description + doctor-worktrees.ts + doctor-modes.ts docstrings) — retargeted last by the drain group.src/lib/interactivity.tshistorical comment;.genie/tracked brainstorm/wish records are historical documents.Validation evidence
bun run check(clean env, umask 022): all gates green; full suite 3323 pass / 4 fail, where the 4 failures are the recorded known-red baseline classes, not new: doctor 120ms latency (~1972ms measured), updateCommand publication (network-bound release flake), 2×exact GitHub release asset reconciliationtimeouts (network-bound release flake; 13/14 pass on isolated re-run).codex-app-serverintegration cluster — now passing on this branch) and the noisy-env run (36 failures, FORCE_COLOR stderr cluster + same classes). No new failure class; zero failures in any file this PR touches.bash tests/e2e/v5-lifecycle.sh— PASS locally (macOS) and on the ubuntu CI leg (sidecar-tolerant file-set bound, mirroring context.test.ts).uv run --with pytest --with pyyaml --no-project python -m pytest plugins/hermes-genie/tests -q— 58 passed.test "$(git grep -l 'genie launch' skills/ plugins/ | wc -l | tr -d ' ')" -eq 0— passes.bun scripts/sync-plugin-skills.ts --check— OK (22 physical skills, byte-identical mirror).Named follow-ups (recorded, out of scope)
GENIE_WORKTREES_DIR+ doctor residue semantics retire with the drain group's retarget (this PR only relocates the helper).