docs(handoff): correct Tasks 14-15 status (broken-then-fixed @ 2cc7c83); stop at Task 16
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -9,16 +9,22 @@
|
|||||||
subagent-driven-development on branch `feat/l1-ai-tree-builder-phase-2a`
|
subagent-driven-development on branch `feat/l1-ai-tree-builder-phase-2a`
|
||||||
(branched from `main` @ `87236b5`; **not pushed**, `main` untouched).
|
(branched from `main` @ `87236b5`; **not pushed**, `main` untouched).
|
||||||
|
|
||||||
## ⚠️ Tooling note (read first — why this session stopped at Task 15)
|
## ⚠️ Tooling note (read first — why this session stopped at Task 16)
|
||||||
The harness's **Bash output channel AND the Read tool both became intermittently
|
The harness's **Bash output channel became intermittently unreliable** — returning
|
||||||
unreliable** late in the session — returning stale/cached output and, critically,
|
stale/cached output (a Bash command that wrote `/tmp/perm.txt` instead returned a
|
||||||
*fabricating plausible content* (a Read of `router.tsx` invented an `L1CategoriesPage`
|
PRIOR command's `/tmp/vc.txt` content; a `cat` returned the wrong commit SHA). The
|
||||||
import on line 13 that does not exist; confirmed absent by `grep -c` = 0 and the page
|
Write/Edit channel stayed reliable; Read mostly reliable but occasionally served a
|
||||||
file not existing). Work stopped at Task 16 because authoring router/settings edits
|
stale temp file. Work stopped at Task 16 because wiring a new route/nav requires
|
||||||
requires first reading those files accurately, and that could no longer be trusted.
|
accurately reading `router.tsx` + `AccountSettingsPage.tsx` then editing them, and
|
||||||
**On resume: confirm the shell is reliable** (write a unique sentinel to a file, read
|
read-then-edit against stale reads is exactly what produced the broken Tasks 14–15
|
||||||
it back; cross-check any Read against `grep`). Verified facts in this doc were
|
earlier this session. **On resume: confirm the shell is reliable first** — write a
|
||||||
sentinel-confirmed.
|
unique sentinel to a file and read it back; cross-check any Read against a fresh
|
||||||
|
`grep`; never commit without a sentinel-wrapped `tsc -b`/pytest verification whose
|
||||||
|
unique sentinel you can see in the same output.
|
||||||
|
|
||||||
|
Earlier-this-session gotcha that cost ~an hour: pytest `-p no:cov` conflicts with the
|
||||||
|
`--cov` baked into `pytest.ini` addopts → pytest exits before running → `&& echo PASS`
|
||||||
|
chains mislabel. Always use `--override-ini="addopts="`, never `-p no:cov`.
|
||||||
|
|
||||||
Backend test invocation that works:
|
Backend test invocation that works:
|
||||||
`docker exec resolutionflow_backend pytest <path> --override-ini="addopts=" -q`
|
`docker exec resolutionflow_backend pytest <path> --override-ini="addopts=" -q`
|
||||||
@@ -45,16 +51,23 @@ source_session_id + exactly-one CHECK + schema made optional); `l1_category_serv
|
|||||||
walked_path entry), `POST /l1/sessions/{id}/next-node`, `GET /l1/escalations`,
|
walked_path entry), `POST /l1/sessions/{id}/next-node`, `GET /l1/escalations`,
|
||||||
`GET|PATCH /accounts/me/l1-categories`, `require_account_owner_or_admin` dep.
|
`GET|PATCH /accounts/me/l1-categories`, `require_account_owner_or_admin` dep.
|
||||||
|
|
||||||
**Frontend (Tasks 13–15) — committed, each tsc -b + eslint clean (sentinel-verified):**
|
**Frontend (Tasks 13–15) — committed; whole-project `tsc -b` + eslint clean as of fix `2cc7c83`:**
|
||||||
- `9c8f1e2` Task 13 — `types/l1.ts` (+ai_build, IntakeOutcome/Result, NearMiss, TreeNode,
|
- `03e8748` Task 13 — `types/l1.ts` (+ai_build, IntakeOutcome/Result, NearMiss, TreeNode,
|
||||||
NextNodeRequest/Result, L1Categories) + `api/l1.ts` (intake→IntakeResult; nextNode,
|
NextNodeRequest/Result, L1Categories) + `api/l1.ts` (intake→IntakeResult; nextNode,
|
||||||
escalations, getCategories, setCategories). nextNode body carries `node_text`.
|
escalations, getCategories, setCategories). nextNode body carries `node_text`.
|
||||||
- `7b1e44a` Task 14 — `L1Dashboard.tsx` dispatch on outcome (matched/build→walker;
|
- `df7150f` Task 14 + `f483196` Task 15 were FIRST committed BROKEN (I misread eslint
|
||||||
suggest→use-flow/build-new; out_of_scope→escalate-without-walk prompt).
|
EXIT=0 as a clean tsc; both had TS2305 missing-export + props-contract errors).
|
||||||
- `a3f0c21` Task 15 — `L1WalkTreeVariant.tsx` renders ai_build nodes via /next-node +
|
**`2cc7c83` repairs both** — verified `npx tsc -b` EXIT=0 (whole project) + eslint EXIT=0:
|
||||||
disclaimer banner (`bg-warning/10` — note: `*-dim` tokens are NOT defined as
|
- `L1Dashboard.tsx`: minimal outcome-dispatch edit on the REAL page (matched/build→walker;
|
||||||
`--color-*-dim`, use `/10` opacity modifiers); `L1WalkPage.tsx` routes ai_build →
|
suggest→use-flow/build-new; out_of_scope→escalate-without-walk).
|
||||||
tree variant. NOT browser-verified (couldn't launch chromium / shell degraded).
|
- `L1WalkTreeVariant.tsx`: kept real props `{session,onSessionUpdate,onDone}` +
|
||||||
|
ResolveModal/EscalateModal + header + transcript sidebar; added ai_build branch that
|
||||||
|
walks nodes via /next-node (passes node_text), disclaimer banner (`bg-warning/10` —
|
||||||
|
NOTE: `*-dim` tokens are NOT `--color-*-dim`; use `/10` opacity), terminal→modals.
|
||||||
|
flow/proposal keep the Phase-1 synthetic path.
|
||||||
|
- `L1WalkPage.tsx` unchanged (already routes ai_build → tree variant).
|
||||||
|
NOT browser-verified (chromium can't launch here).
|
||||||
|
- **Verified clean state: HEAD `2cc7c83`, working tree clean.**
|
||||||
|
|
||||||
## Resume point — Tasks 16–19
|
## Resume point — Tasks 16–19
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user