Skip to content

feat: retire genie launch atomically with its consumers (spawn-context-contract#launch-removal) - #2789

Merged
namastex888 merged 1 commit into
devfrom
wish/scc-launch-removal
Aug 14, 2026
Merged

namastex888 merged 1 commit into
devfrom
wish/scc-launch-removal

Conversation

@namastex888

@namastex888 namastex888 commented Aug 14, 2026 •

Copy link
Copy Markdown
Contributor

Implements the launch-removal execution group of spawn-context-contract (Wave 5 — the replacement surface genie context --plan already exists on dev, and the wish-scoped spawn side is held as a remotty PR per plan).

What ships

  • genie launch deleted atomically with its consumers — src/term-commands/launch.ts + src/lib/v5/warp-launch.ts and their tests removed; resolveWorktreesBase relocated to src/lib/v5/launch-worktrees.ts (mechanical import-only change in doctor-worktrees.ts, whose retarget stays owned by the drain group). CLI registry is now 16 commands (was 14 documented / 17 actual).
  • $work multi-session mode retired with the recorded amendment (DRAFT U2 → Option A): native subagents are the only dispatch mode; the spawn plan preview is genie context --wish <slug> --plan; supervised parallel sessions are arranged from the spawn side.
  • Hermes genie_work_plan rewired to genie context --wish <slug> --plan [--group g] (single group; schema groups[] → group); pi-genie mirror updated in lockstep. Hermes contract tests green (58 passed).
  • .warp/.mcp.json scaffolding removed from genie init — registerProjectMcpConfigs now 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.
  • Zero stale references — git grep -l 'genie launch' skills/ plugins/ == 0; sync-plugin-skills --check green; skills + all three plugin mirrors updated (work, lifecycle, native-surfaces, genie-hacks, pm, review, council, rules, dispatch-contract, codex-integration-map).
  • Honest command counts — README/CLAUDE.md now say 16 commands with context, idea, and ui-bridge rows; AGENTS.md freeze rule no longer names the deleted verb; scripts/release-docs.test.ts derives the command inventory from the live --help registry instead of a hardcoded list (carried order).
  • e2e lifecycle — the launch --dry-run section is replaced by a context --wish <slug> --plan section proving: one line of versioned JSON, composed branch + full 40-hex base SHA + all three task ids, exit 0, byte-identical genie.db and unchanged .genie/ file set modulo the documented -wal/-shm VFS pair (read-only proven), no worktrees materialized.

Not touched (out of scope by design)

  • Doctor launch-residue check/--fix (genie.ts doctor description + doctor-worktrees.ts + doctor-modes.ts docstrings) — retargeted last by the drain group.
  • src/lib/interactivity.ts historical comment; .genie/ tracked brainstorm/wish records are historical documents.
  • Hook manifests; hook policy logic (only the git-freeze-guard deny-reason UX text naming the deleted verb changed, plus its test — deny behavior untouched).

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 reconciliation timeouts (network-bound release flake; 13/14 pass on isolated re-run).
  • Baseline recorded on origin/dev under identical env before any change: 6 failures (same doctor + updateCommand classes, plus the Codex-absent codex-app-server integration 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).
  • Hermes: uv run --with pytest --with pyyaml --no-project python -m pytest plugins/hermes-genie/tests -q — 58 passed.
  • Sweep: 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).
  • Nothing else open.

@coderabbitai

coderabbitai Bot commented Aug 14, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 0370b0de-6545-43c5-b0c8-cfcc92d951f2

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@blacksmith-sh

This comment has been minimized.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread skills/work/SKILL.md
Comment on lines +79 to +82
Preview the wave plan without side effects:

```bash
genie launch <slug> [--groups <csv>]
genie context --wish <slug> --plan

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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.
@namastex888
namastex888 force-pushed the wish/scc-launch-removal branch from 7bea11b to 01f2b87 Compare August 14, 2026 02:04
@namastex888
namastex888 merged commit 782a343 into dev Aug 14, 2026
17 checks passed
namastex888 added a commit that referenced this pull request Aug 14, 2026
…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.
@automagik-genie
automagik-genie deleted the wish/scc-launch-removal branch September 25, 2026 04:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant