docs: Campaign LA handoff — worktree paths, stopped-agent recovery, kickoff prompt
Both remaining agents were stopped for token budget and their partial work committed as WIP (75a6724dLA1 fix round,c6019424LA2). The handoff now carries: full worktree paths with branches and HEADs, exactly what each stopped agent had finished versus what it still owes, and a paste-ready kickoff prompt naming all three resumable items plus the two owed merge items. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
75a6724d5b
commit
4edc122085
1 changed files with 108 additions and 26 deletions
|
|
@ -5,9 +5,17 @@ ledger), then `docs/superpowers/specs/2026-08-14-launcher-campaign-design.md`
|
||||||
(the approved design).** Memory crib:
|
(the approved design).** Memory crib:
|
||||||
`claude-memory/project_launcher_direction.md`.
|
`claude-memory/project_launcher_direction.md`.
|
||||||
|
|
||||||
Branch: `claude/acdream-launcher-credentials-4d2f7c`
|
## Worktrees (full paths — work in the campaign worktree, NOT the repo root)
|
||||||
Worktree: `.claude/worktrees/acdream-launcher-credentials-4d2f7c`
|
|
||||||
HEAD at handoff: `498f1c11`
|
| Purpose | Full path | Branch | HEAD at handoff |
|
||||||
|
|---|---|---|---|
|
||||||
|
| **Campaign branch — START HERE** | `C:\Users\erikn\source\repos\acdream\.claude\worktrees\acdream-launcher-credentials-4d2f7c` | `claude/acdream-launcher-credentials-4d2f7c` | `75a6724d` |
|
||||||
|
| LA2 slice | `C:\Users\erikn\source\repos\acdream\.claude\worktrees\acdream-la2` | `campaign-la2` | `c6019424` |
|
||||||
|
| LA3 slice | `C:\Users\erikn\source\repos\acdream\.claude\worktrees\acdream-la3` | `campaign-la3` | `26feba81` |
|
||||||
|
| LA7a slice (merged — removable) | `C:\Users\erikn\source\repos\acdream\.claude\worktrees\acdream-la7a` | `campaign-la7a` | `0c8643a7` |
|
||||||
|
|
||||||
|
The repo root `C:\Users\erikn\source\repos\acdream` is on `main` and is NOT
|
||||||
|
where this campaign happens.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -48,8 +56,8 @@ Design decisions already made and NOT to be re-litigated (spec §2):
|
||||||
| Slice | State | Commits |
|
| Slice | State | Commits |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| LA0 `AcDream.Platform` extraction | **DONE** (review closed) | `cb6502c8`, `a49e92df`, `7a839cba` |
|
| LA0 `AcDream.Platform` extraction | **DONE** (review closed) | `cb6502c8`, `a49e92df`, `7a839cba` |
|
||||||
| LA1 launch contract (App CLI + status writer + roster seam) | implemented; **Opus review returned FIX-FIRST**; fix round IN FLIGHT | `db9ad53c` (MIXED — see §4), note `e1322a06` |
|
| LA1 launch contract (App CLI + status writer + roster seam) | implemented; Opus review FIX-FIRST; **fix round WIP — stopped mid-task**, see §3 | `db9ad53c` (MIXED — see §4), note `e1322a06`, WIP `75a6724d` |
|
||||||
| LA2 probe mode + idle policy | implementer IN FLIGHT | branch `campaign-la2` (base `498f1c11`) |
|
| LA2 probe mode + idle policy | **WIP — stopped mid-task**, see §3 | `c6019424` on branch `campaign-la2` |
|
||||||
| LA3 `AcDream.Launcher.Core` | implemented; review FIX-FIRST (12 findings); **fix round LANDED — all 12 fixed, 94/94 Windows + WSL**; owes narrow re-review, then merge | `37d74e44`, `26feba81` on branch `campaign-la3` |
|
| LA3 `AcDream.Launcher.Core` | implemented; review FIX-FIRST (12 findings); **fix round LANDED — all 12 fixed, 94/94 Windows + WSL**; owes narrow re-review, then merge | `37d74e44`, `26feba81` on branch `campaign-la3` |
|
||||||
| LA7a character wire messages | **DONE + MERGED** | `6a32f375`, `4338b1c1`, `0c8643a7`, merge `fa2de1c4` |
|
| LA7a character wire messages | **DONE + MERGED** | `6a32f375`, `4338b1c1`, `0c8643a7`, merge `fa2de1c4` |
|
||||||
| LA4 Avalonia UI | not started (needs LA3) | — |
|
| LA4 Avalonia UI | not started (needs LA3) | — |
|
||||||
|
|
@ -64,24 +72,37 @@ retail sends ≥16 bytes, we send 8; ACE ignores the tail).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 3. Work IN FLIGHT at handoff — recover these first
|
## 3. Work STOPPED MID-TASK — resume these first
|
||||||
|
|
||||||
Three agents were running when this handoff was written. Their results arrive
|
Two agents were **killed for token budget** and their partial work is
|
||||||
as task notifications in the ORIGINAL session only; a new session must verify
|
**committed as clearly-marked WIP**. Build/test state at both WIP commits is
|
||||||
state from git instead of waiting.
|
UNVERIFIED — build and test before trusting either.
|
||||||
|
|
||||||
1. **LA1 fix round** — main worktree, branch
|
1. **LA1 fix round — WIP at `75a6724d`** (campaign worktree/branch).
|
||||||
`claude/acdream-launcher-credentials-4d2f7c`. Findings: F1 (HIGH, required)
|
DONE in the WIP: F1 best-effort `SessionStatusWriter` (never throws into
|
||||||
the `SessionStatusWriter` must never throw into the login/teardown
|
login/teardown, creates its parent directory), F2 App reader tolerance
|
||||||
transactions and must create its parent directory (an unwritable/missing
|
(parse-and-ignore `process.paths`, explicit named refusal of
|
||||||
status path currently fails a healthy session — first-run trigger);
|
`mode: "probe"`), F5 `--session-config` argument hardening, new tests.
|
||||||
F2 App reader must TOLERATE `process.paths` (parse-and-ignore, like the
|
**STILL OWED:** F4 production-shape the shared fixture
|
||||||
existing `policy`) and explicitly REFUSE `mode: "probe"` with a named error;
|
(`tests/Fixtures/campaign-la/session-config-shared-fixture.json` — add
|
||||||
F4 production-shape the shared fixture (`process.content`, `standardInput`
|
`process.content`, switch credential to `standardInput`/`session`, assert
|
||||||
credential); F3 reconnect emits `disconnected` first + record the mid-play
|
values on BOTH sides; this was the agent's literal next step); F3 reconnect
|
||||||
drop limitation; F5–F8 minor hardening.
|
emits `disconnected` before the second `connected` + record the mid-play
|
||||||
2. **LA2 implementer** — worktree `.claude/worktrees/acdream-la2`, branch
|
wire-drop limitation in the plan's status-stream section; F6 `exited`
|
||||||
`campaign-la2`.
|
idempotency + distinct reason strings; F7 make the Runtime redaction test
|
||||||
|
structural (assert the exact serialized property set per event kind); F8
|
||||||
|
platform-guard file-set test + fix the overstating `isLinux` comment;
|
||||||
|
optional `RuntimeOptions.PrintMembers` redaction of `LivePass`.
|
||||||
|
Then: run Runtime/App/Headless Release suites (+ WSL for Runtime/Headless)
|
||||||
|
and dispatch the NARROW re-review.
|
||||||
|
2. **LA2 — WIP at `c6019424`** (worktree `...\acdream-la2`, branch
|
||||||
|
`campaign-la2`). DONE in the WIP: probe flag through
|
||||||
|
`LiveSessionConnectOptions`, the `StartCore` short-circuit before selection,
|
||||||
|
the `mode` field with the `JsonRequired`→semantic-validation move, host
|
||||||
|
exit-code mapping, 34 tests passing including 3 probe tests (agent's last
|
||||||
|
report before the stop). **STILL OWED:** idle-policy unit tests (its next
|
||||||
|
step), full Runtime+Headless Release suites on Windows AND WSL, then the
|
||||||
|
Opus dual-lens review.
|
||||||
3. **LA3 fix round — COMPLETE at `26feba81`** (worktree
|
3. **LA3 fix round — COMPLETE at `26feba81`** (worktree
|
||||||
`.claude/worktrees/acdream-la3`, branch `campaign-la3`). All 12 findings
|
`.claude/worktrees/acdream-la3`, branch `campaign-la3`). All 12 findings
|
||||||
fixed: the CRITICAL `"paths": {}` emission (now omitted entirely), probe
|
fixed: the CRITICAL `"paths": {}` emission (now omitted entirely), probe
|
||||||
|
|
@ -161,7 +182,65 @@ re-derive the work).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 6. The goal to set
|
## 6. Kickoff prompt for the new session
|
||||||
|
|
||||||
|
Paste this as the FIRST message of the new session (it names the three
|
||||||
|
resumable work items explicitly), then set the goal in §7.
|
||||||
|
|
||||||
|
```text
|
||||||
|
Resume Campaign LA (the acdream launcher). Work in
|
||||||
|
C:\Users\erikn\source\repos\acdream\.claude\worktrees\acdream-launcher-credentials-4d2f7c
|
||||||
|
on branch claude/acdream-launcher-credentials-4d2f7c. Read
|
||||||
|
docs/research/2026-08-14-campaign-la-handoff.md first, then the ledger in
|
||||||
|
docs/plans/2026-08-14-launcher-campaign.md.
|
||||||
|
|
||||||
|
Three items are waiting, all recoverable from git — two are partial work from
|
||||||
|
agents that were stopped mid-task for token budget, and their build/test state
|
||||||
|
is UNVERIFIED:
|
||||||
|
|
||||||
|
1. LA1 fix round — WIP commit 75a6724d on this branch. An agent had completed
|
||||||
|
findings F1 (best-effort SessionStatusWriter that never throws into the
|
||||||
|
login/teardown transactions and creates its parent directory), F2 (App
|
||||||
|
reader tolerates process.paths and explicitly refuses mode:"probe"), and F5
|
||||||
|
(--session-config argument hardening). It was stopped just as it started F4.
|
||||||
|
Finish: F4 production-shape tests/Fixtures/campaign-la/session-config-shared-fixture.json
|
||||||
|
(add process.content, switch the credential to standardInput/session, assert
|
||||||
|
values in BOTH host suites), F3 (reconnect emits disconnected before the
|
||||||
|
second connected; record the mid-play wire-drop limitation in the plan's
|
||||||
|
status-stream section), F6 (exited idempotency + distinct reason strings),
|
||||||
|
F7 (make the Runtime redaction test structural — assert the exact serialized
|
||||||
|
property set per event kind), F8 (platform-guard file-set test + fix the
|
||||||
|
overstating isLinux comment), and optionally redact LivePass from
|
||||||
|
RuntimeOptions.PrintMembers. Then build, run Runtime/App/Headless Release
|
||||||
|
suites plus WSL for Runtime/Headless, and dispatch the narrow re-review.
|
||||||
|
|
||||||
|
2. LA2 — WIP commit c6019424 in worktree
|
||||||
|
C:\Users\erikn\source\repos\acdream\.claude\worktrees\acdream-la2 (branch
|
||||||
|
campaign-la2). An agent had implemented the probe flag through
|
||||||
|
LiveSessionConnectOptions, the StartCore short-circuit before selection, the
|
||||||
|
mode field with the JsonRequired-to-semantic-validation move, and the host
|
||||||
|
exit-code mapping, with 34 tests green including 3 probe tests. It was
|
||||||
|
stopped before writing the idle-policy unit tests. Finish those, run the
|
||||||
|
Runtime+Headless Release suites on Windows and WSL, then dispatch the Opus
|
||||||
|
dual-lens review.
|
||||||
|
|
||||||
|
3. LA3 — COMPLETE at 26feba81 in worktree
|
||||||
|
C:\Users\erikn\source\repos\acdream\.claude\worktrees\acdream-la3 (branch
|
||||||
|
campaign-la3). All 12 review findings fixed, 94/94 Windows and WSL. It needs
|
||||||
|
only a narrow Opus re-review of 26feba81 against the finding list in §3 of
|
||||||
|
the handoff, then merge into the campaign branch.
|
||||||
|
|
||||||
|
At the LA1+LA3 merge, do not lose the two owed items: the cross-assembly
|
||||||
|
contract test (feed a Launcher.Core composer document to BOTH host loaders) and
|
||||||
|
adding tests/AcDream.Launcher.Core.Tests to the Linux CI lane in
|
||||||
|
.github/workflows/headless-portability.yml.
|
||||||
|
|
||||||
|
After those land, continue the ledger: LA4 (Avalonia UI), LA5 (plugin hosting),
|
||||||
|
LA6 (login commands), LA7b (char-select state+flow), LA8 (authored screen), LA9
|
||||||
|
(installer), LA10 (updater), LA11 (closeout).
|
||||||
|
```
|
||||||
|
|
||||||
|
## 7. The goal to set
|
||||||
|
|
||||||
Set this with `/goal` in the new session (it is the same directive this session
|
Set this with `/goal` in the new session (it is the same directive this session
|
||||||
ran under, refreshed for the current state):
|
ran under, refreshed for the current state):
|
||||||
|
|
@ -169,10 +248,13 @@ ran under, refreshed for the current state):
|
||||||
```text
|
```text
|
||||||
GOAL: Ship Campaign LA — the acdream launcher/installer/updater + retail character-select screen.
|
GOAL: Ship Campaign LA — the acdream launcher/installer/updater + retail character-select screen.
|
||||||
|
|
||||||
Start at docs/research/2026-08-14-campaign-la-handoff.md, then the ledger in
|
Work in C:\Users\erikn\source\repos\acdream\.claude\worktrees\acdream-launcher-credentials-4d2f7c
|
||||||
docs/plans/2026-08-14-launcher-campaign.md. Recover the three in-flight slices
|
(branch claude/acdream-launcher-credentials-4d2f7c). Start at
|
||||||
first (LA1 fix round on the campaign branch, LA2 on campaign-la2, LA3 fix round
|
docs/research/2026-08-14-campaign-la-handoff.md, then the ledger in
|
||||||
on campaign-la3) by inspecting git state, then continue slice by slice.
|
docs/plans/2026-08-14-launcher-campaign.md. Finish the three waiting items
|
||||||
|
first — LA1 fix round (WIP 75a6724d, unverified), LA2 (WIP c6019424 on
|
||||||
|
campaign-la2, unverified), LA3 (complete at 26feba81 on campaign-la3, owes a
|
||||||
|
narrow re-review then merge) — then continue slice by slice.
|
||||||
|
|
||||||
Process, per slice:
|
Process, per slice:
|
||||||
1. Fable plans/sequences/integrates — never present work-order menus; pick and announce.
|
1. Fable plans/sequences/integrates — never present work-order menus; pick and announce.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue