You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Added the canonical `agentic-flow-hardening` feature pack and migrated the last flat landing polish note into `landing-closing-polish`.
6
+
- Added `Agent Readiness` to feature specs, a docs lane template, and schema/migration preflight prompts in implementation lanes.
7
+
- Added shared Zod contracts for ICE config responses, ICE rate-limit errors, and signaling messages.
8
+
- Updated API, WebSocket signaling, and shared ICE config fetch parsing to consume those contracts while preserving existing wire shapes.
9
+
- Added advisory `check:agentic-flow`, wired it into `agentic:check`, and hardened it after review to scan package source and tests with AST-based import extraction.
10
+
- Updated extension design guidance and app route context to reduce stale routing/CSS guidance.
11
+
12
+
## Why It Changed
13
+
14
+
- The first import-boundary pass needed to stay advisory, but review showed that advisory visibility is only useful if it catches common import forms and package-level tests.
15
+
- Existing QA templates had pass ownership drift. The hardening pass now keeps Codex QA pass 1 and Claude QA pass 2 aligned across templates and migrated packs.
16
+
- The app route table was corrected first, then adjacent app-context import and pairing-route wording was tightened so agents do not follow stale examples.
17
+
18
+
## Follow-Ups
19
+
20
+
- Consider wiring `check:agentic-flow --strict` into CI only after advisory output has been watched on several real feature packs.
21
+
- Run the normal sequential QA handoff branches before treating the pack as fully closed.
- Status: findings addressed in the hardening pass
6
+
- Commands:
7
+
-`bun run plans:validate`
8
+
-`bun run plans:legacy`
9
+
-`bun run check:agentic-flow`
10
+
-`git diff --check`
11
+
- Findings:
12
+
- Hardened `check:agentic-flow` to scan package source and tests, including package-level test directories outside `src`.
13
+
- Replaced regex-only import detection with TypeScript AST-based import extraction so multiline imports, exports, dynamic imports, and `require()` calls are visible.
14
+
- Corrected QA ownership drift in templates and migrated feature specs so pass 1 is Codex and pass 2 is Claude.
15
+
- Tightened `.claude/context/app.md` guidance around `@coop/shared/app` and receiver pairing routes.
16
+
17
+
## QA Pass 1: Codex
18
+
19
+
- Status: blocked until `handoff/qa-codex/agentic-flow-hardening` exists
20
+
- Commands:
21
+
- Findings:
22
+
23
+
## QA Pass 2: Claude
24
+
25
+
- Status: blocked until Codex QA creates `handoff/qa-claude/agentic-flow-hardening`
26
+
- Commands:
27
+
- Findings:
28
+
29
+
## Residual Risk
30
+
31
+
- The import-boundary check is advisory by default. `--strict` exists for a future opt-in gate after the team has watched advisory output on real work.
32
+
- Browser proof remains intentionally out of scope because this pass changed guidance, contracts, checks, and API parsing rather than rendered UI behavior.
Consume the shared sync/message schemas in API and shared client boundaries while preserving current behavior.
35
+
36
+
`done_when` should use concrete, searchable evidence strings that will exist under `owned_paths`
37
+
when the lane is truly complete.
38
+
Keep changes inside `owned_paths` where possible. If work spills beyond them, explain why in
39
+
`Handoff Notes`.
40
+
41
+
## Files
42
+
43
+
-`packages/api/...`
44
+
- Shared request/response contracts
45
+
- Runtime message handlers if affected
46
+
47
+
## Tasks
48
+
49
+
-[x] Parse `/sync/ice` success and rate-limit payloads through shared schemas.
50
+
-[x] Parse fetched ICE configs with shared schema and keep `null` fallback for invalid/unreachable responses.
51
+
-[x] Parse WebSocket signaling messages through shared schema.
52
+
-[x] Preserve tolerant drop behavior and publish passthrough fields.
53
+
-[x] Add or update API tests.
54
+
-[x] Keep work inside `owned_paths` or document justified spillover.
55
+
-[x] Capture any migration or rollout notes.
56
+
57
+
## Verification
58
+
59
+
-[x]`vitest run packages/shared/src/contracts/__tests__/schema-sync.test.ts packages/api/src/routes/__tests__/sync.test.ts packages/api/src/ws/__tests__/handler.test.ts`
60
+
-[x]`bun run validate:smoke`
61
+
62
+
## Handoff Notes
63
+
64
+
QA should verify that malformed JSON, missing type, invalid publish topic, non-string subscribe topics, publish passthrough, and ICE fallback behavior remain intact. No route or WebSocket message names changed.
Add shared sync/message Zod schemas and inferred types without changing public wire shapes.
29
+
30
+
`done_when` should use concrete, searchable evidence strings that will exist under `owned_paths`
31
+
when the lane is truly complete.
32
+
Keep changes inside `owned_paths` where possible. If work spills beyond them, explain why in
33
+
`Handoff Notes`.
34
+
35
+
## Files
36
+
37
+
-`packages/shared/src/modules/onchain/...`
38
+
-`packages/shared/src/modules/policy/...`
39
+
-`packages/shared/src/modules/session/...`
40
+
41
+
## Tasks
42
+
43
+
-[x] Add ICE config response and rate-limit error schemas.
44
+
-[x] Add subscribe, unsubscribe, publish, ping, and union signaling schemas.
45
+
-[x] Export inferred TypeScript types from shared contracts.
46
+
-[x] Add targeted schema tests.
47
+
-[x] Keep work inside `owned_paths` or document justified spillover.
48
+
-[x] Document any live-probe follow-up.
49
+
50
+
## Verification
51
+
52
+
-[x]`vitest run packages/shared/src/contracts/__tests__/schema-sync.test.ts packages/api/src/routes/__tests__/sync.test.ts packages/api/src/ws/__tests__/handler.test.ts`
53
+
-[x]`bun run validate:smoke`
54
+
55
+
## Handoff Notes
56
+
57
+
Public contract callout: schemas document existing ICE/signaling shapes. No route, WebSocket message name, chain-mode, permission, or persisted-state changes.
0 commit comments