authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-25 19:11:31-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-02-26 13:20:36-08:00
log7e46da9f22828aad1707e4a3ecc83c2979d83177
treebd72c66349b568e5df842673358bb774683181c1
parentab83a17d2ba335eaa513f81f6ead1db30d2111ce

revise plan


4 files changed, 18 insertions(+), 61 deletions(-)

.plans/16-pr89-review-remediation-phases.md+4-6
......@@ -7,9 +7,9 @@
77 - Total threads: 185
88 - Outdated: 94 (excluded)
99 - Active unresolved: 85
10 - Invalid/false-positive: 1 active (excluded)
10 - Invalid/false-positive: 3 (excluded)
1111 - Duplicate reposts: collapsed
12 - Unique actionable findings after filtering: 74
12 - Unique actionable findings after filtering: 58
1313
1414## Phase 0: Canonical Triage Lock
1515
......@@ -25,19 +25,17 @@ Exit criteria:
2525Related bug groups solved together:
2626- Worker loop/fiber fatal error handling in orchestration reactors.
2727- WebSocket message error boundaries and unhandled rejection guards.
28- Missing `providers.event` stream consumption/validation on web client.
28- Close invalid `providers.event` review findings as documented architecture mismatch (no code change expected).
2929
3030Primary files:
3131- `apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts`
3232- `apps/server/src/orchestration/Layers/CheckpointReactor.ts`
3333- `apps/server/src/wsServer.ts`
34- `apps/web/src/routes/__root.tsx`
35- `apps/web/src/wsNativeApi.ts`
3634
3735Exit criteria:
3836- A single event-processing failure cannot permanently stop ingestion/reactor loops.
3937- WS message handling cannot produce unhandled promise rejections.
40- Provider event stream reaches UI through validated contract path.
38- Invalid provider-event-channel review findings are closed with architecture rationale.
4139
4240## Phase 2: State Consistency and Ordering
4341
.plans/16a-pr89-phase0-canonical-triage.json+6-44
......@@ -10,11 +10,11 @@
1010 "phase0_generated_at": "2026-02-26T02:49:21.091145Z",
1111 "summary": {
1212 "total_threads": 185,
13 "actionable_canonical": 60,
13 "actionable_canonical": 58,
1414 "actionable_duplicates": 24,
1515 "filtered_outdated": 94,
1616 "filtered_resolved": 6,
17 "filtered_invalid": 1
17 "filtered_invalid": 3
1818 },
1919 "canonical_items": [
2020 {
......@@ -82,42 +82,6 @@
8282 "macroscopeapp"
8383 ]
8484 },
85 {
86 "canonical_id": "C004",
87 "area": "Web provider event integration",
88 "title": "channel.** The web app currently does not consume provider event streams via the `providers.event` channel. While the orchestration API has `onReadModel()` and `onDomainEvent()` subscriptions, the providers event stream subscription is missing. Add a subscription to `ORCHESTRATION_WS_CHANNELS.event` (or the appropriate providers event channel from contracts) in `wsNativeApi.ts` and expose it via the `api.providers` object to comply with the guideline requirement. <details> <summary>\ud83e\udd16 Prompt for AI Agents</summary>",
89 "severity": "High",
90 "path": "apps/web/src/routes/__root.tsx",
91 "line": 140,
92 "thread_ids": [
93 "PRRT_kwDORLtfbc5v9An7"
94 ],
95 "thread_indexes": [
96 31
97 ],
98 "duplicate_count": 0,
99 "authors": [
100 "coderabbitai"
101 ]
102 },
103 {
104 "canonical_id": "C005",
105 "area": "Web provider event integration",
106 "title": "push stream, and the callbacks rely on unchecked casts. Please reintroduce a `providers.onEvent` (or equivalent) that subscribes to the `providers.event` channel and decode read-model/domain-event payloads using the shared contracts schemas before invoking callbacks. As per coding guidelines: \"Web app must consume provider event streams via WebSocket push on channel `providers.event`\" and \"Use Zod schemas from `packages/contracts` for shared type contracts covering provider events, WebSocket protocol, and model/session types\". <details> <summary>\ud83e\udd16 Prompt for AI Agents</summary>",
107 "severity": "High",
108 "path": "apps/web/src/wsNativeApi.ts",
109 "line": 165,
110 "thread_ids": [
111 "PRRT_kwDORLtfbc5v9An-"
112 ],
113 "thread_indexes": [
114 34
115 ],
116 "duplicate_count": 0,
117 "authors": [
118 "coderabbitai"
119 ]
120 },
12185 {
12286 "canonical_id": "C006",
12387 "area": "Build/runtime portability",
......@@ -1580,9 +1544,8 @@
15801544 "title": "channel.** The web app currently does not consume provider event streams via the `providers.event` channel. While the orchestration API has `onReadModel()` and `onDomainEvent()` subscriptions, the providers event stream subscription is missing. Add a subscription to `ORCHESTRATION_WS_CHANNELS.event` (or the appropriate providers event channel from contracts) in `wsNativeApi.ts` and expose it via the `api.providers` object to comply with the guideline requirement. <details> <summary>\ud83e\udd16 Prompt for AI Agents</summary>",
15811545 "severity": "High",
15821546 "has_false_positive_signal": false,
1583 "canonical_id": "C004",
1584 "phase0_status": "actionable_canonical",
1585 "phase0_reason": "Canonical actionable item."
1547 "phase0_status": "filtered_invalid",
1548 "phase0_reason": "Invalid by design: provider runtime events are intentionally surfaced through orchestration domain events (`orchestration.domainEvent`), not a separate `providers.event` WebSocket channel in the current architecture."
15861549 },
15871550 {
15881551 "index": 32,
......@@ -1623,9 +1586,8 @@
16231586 "title": "push stream, and the callbacks rely on unchecked casts. Please reintroduce a `providers.onEvent` (or equivalent) that subscribes to the `providers.event` channel and decode read-model/domain-event payloads using the shared contracts schemas before invoking callbacks. As per coding guidelines: \"Web app must consume provider event streams via WebSocket push on channel `providers.event`\" and \"Use Zod schemas from `packages/contracts` for shared type contracts covering provider events, WebSocket protocol, and model/session types\". <details> <summary>\ud83e\udd16 Prompt for AI Agents</summary>",
16241587 "severity": "High",
16251588 "has_false_positive_signal": false,
1626 "canonical_id": "C005",
1627 "phase0_status": "actionable_canonical",
1628 "phase0_reason": "Canonical actionable item."
1589 "phase0_status": "filtered_invalid",
1590 "phase0_reason": "Invalid by design: provider runtime events are intentionally surfaced through orchestration domain events (`orchestration.domainEvent`), not a separate `providers.event` WebSocket channel in the current architecture."
16291591 },
16301592 {
16311593 "index": 35,
.plans/16a-pr89-phase0-canonical-triage.md+7-10
......@@ -7,11 +7,11 @@
77## Summary
88
99- Total threads: 185
10- Actionable canonical: 60
10- Actionable canonical: 58
1111- Actionable duplicates: 24
1212- Filtered outdated: 94
1313- Filtered resolved: 6
14- Filtered invalid: 1
14- Filtered invalid: 3
1515
1616## Canonical Actionable Checklist
1717
......@@ -143,13 +143,6 @@
143143- [ ] C059 [Low] Suggestion: don’t spread `params` into `body`; it can override `_tag` and mishandle non-object values. Keep `_tag` separate and nest `params` under a single key (e.g., `data`), or validate `params` is a plain object. (apps/web/src/wsTransport.ts:59)
144144 - Threads: PRRT_kwDORLtfbc5whtrN
145145
146### Web provider event integration (2)
147
148- [ ] C004 [High] channel.** The web app currently does not consume provider event streams via the `providers.event` channel. While the orchestration API has `onReadModel()` and `onDomainEvent()` subscriptions, the providers event stream subscription is missing. Add a subscription to `ORCHESTRATION_WS_CHANNELS.event` (or the appropriate providers event channel from contracts) in `wsNativeApi.ts` and expose it via the `api.providers` object to comply with the guideline requirement. <details> <summary>🤖 Prompt for AI Agents</summary> (apps/web/src/routes/__root.tsx:140)
149 - Threads: PRRT_kwDORLtfbc5v9An7
150- [ ] C005 [High] push stream, and the callbacks rely on unchecked casts. Please reintroduce a `providers.onEvent` (or equivalent) that subscribes to the `providers.event` channel and decode read-model/domain-event payloads using the shared contracts schemas before invoking callbacks. As per coding guidelines: "Web app must consume provider event streams via WebSocket push on channel `providers.event`" and "Use Zod schemas from `packages/contracts` for shared type contracts covering provider events, WebSocket protocol, and model/session types". <details> <summary>🤖 Prompt for AI Agents</summary> (apps/web/src/wsNativeApi.ts:165)
151 - Threads: PRRT_kwDORLtfbc5v9An-
152
153146### Build/runtime portability (2)
154147
155148- [ ] C006 [Medium] Build script runs TypeScript file with bare node (apps/server/package.json:14)
......@@ -164,8 +157,12 @@
164157
165158## Invalid / False-Positive Threads
166159
160- PRRT_kwDORLtfbc5v9An7 | apps/web/src/routes/__root.tsx:140 | channel.** The web app currently does not consume provider event streams via the `providers.event` channel. While the orchestration API has `onReadModel()` and `onDomainEvent()` subscriptions, the providers event stream subscription is missing. Add a subscription to `ORCHESTRATION_WS_CHANNELS.event` (or the appropriate providers event channel from contracts) in `wsNativeApi.ts` and expose it via the `api.providers` object to comply with the guideline requirement. <details> <summary>🤖 Prompt for AI Agents</summary>
161 - Rationale: Invalid by design: provider runtime events are intentionally surfaced through orchestration domain events (`orchestration.domainEvent`), not a separate `providers.event` WebSocket channel in the current architecture.
162- PRRT_kwDORLtfbc5v9An- | apps/web/src/wsNativeApi.ts:165 | push stream, and the callbacks rely on unchecked casts. Please reintroduce a `providers.onEvent` (or equivalent) that subscribes to the `providers.event` channel and decode read-model/domain-event payloads using the shared contracts schemas before invoking callbacks. As per coding guidelines: "Web app must consume provider event streams via WebSocket push on channel `providers.event`" and "Use Zod schemas from `packages/contracts` for shared type contracts covering provider events, WebSocket protocol, and model/session types". <details> <summary>🤖 Prompt for AI Agents</summary>
163 - Rationale: Invalid by design: provider runtime events are intentionally surfaced through orchestration domain events (`orchestration.domainEvent`), not a separate `providers.event` WebSocket channel in the current architecture.
167164- PRRT_kwDORLtfbc5widJx | apps/server/package.json:14 | Build script requires implicit Node.js TypeScript support
168 - Rationale: Explicit false-positive determination in thread replies.
165 - Rationale: Thread contains explicit false-positive determination in replies.
169166
170167## Duplicate Mapping
171168
AGENTS.md+1-1
......@@ -29,7 +29,7 @@ How we use it in this codebase:
2929- Session startup/resume and turn lifecycle are brokered in `apps/server/src/codexAppServerManager.ts`.
3030- Provider dispatch and thread event logging are coordinated in `apps/server/src/providerManager.ts`.
3131- WebSocket server routes NativeApi methods in `apps/server/src/wsServer.ts`.
32- Web app consumes provider event streams via WebSocket push on channel `providers.event`.
32- Web app consumes orchestration domain events via WebSocket push on channel `orchestration.domainEvent` (provider runtime activity is projected into orchestration events server-side).
3333
3434Docs:
3535