| author | |
| committer | |
| log | 7e46da9f22828aad1707e4a3ecc83c2979d83177 |
| tree | bd72c66349b568e5df842673358bb774683181c1 |
| parent | ab83a17d2ba335eaa513f81f6ead1db30d2111ce |
4 files changed, 18 insertions(+), 61 deletions(-)
.plans/16-pr89-review-remediation-phases.md+4-6| ... | ... | @@ -7,9 +7,9 @@ |
| 7 | 7 | - Total threads: 185 |
| 8 | 8 | - Outdated: 94 (excluded) |
| 9 | 9 | - Active unresolved: 85 |
| 10 | - Invalid/false-positive: 1 active (excluded) | |
| 10 | - Invalid/false-positive: 3 (excluded) | |
| 11 | 11 | - Duplicate reposts: collapsed |
| 12 | - Unique actionable findings after filtering: 74 | |
| 12 | - Unique actionable findings after filtering: 58 | |
| 13 | 13 | |
| 14 | 14 | ## Phase 0: Canonical Triage Lock |
| 15 | 15 | |
| ... | ... | @@ -25,19 +25,17 @@ Exit criteria: |
| 25 | 25 | Related bug groups solved together: |
| 26 | 26 | - Worker loop/fiber fatal error handling in orchestration reactors. |
| 27 | 27 | - 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). | |
| 29 | 29 | |
| 30 | 30 | Primary files: |
| 31 | 31 | - `apps/server/src/orchestration/Layers/ProviderRuntimeIngestion.ts` |
| 32 | 32 | - `apps/server/src/orchestration/Layers/CheckpointReactor.ts` |
| 33 | 33 | - `apps/server/src/wsServer.ts` |
| 34 | - `apps/web/src/routes/__root.tsx` | |
| 35 | - `apps/web/src/wsNativeApi.ts` | |
| 36 | 34 | |
| 37 | 35 | Exit criteria: |
| 38 | 36 | - A single event-processing failure cannot permanently stop ingestion/reactor loops. |
| 39 | 37 | - 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. | |
| 41 | 39 | |
| 42 | 40 | ## Phase 2: State Consistency and Ordering |
| 43 | 41 |
.plans/16a-pr89-phase0-canonical-triage.json+6-44| ... | ... | @@ -10,11 +10,11 @@ |
| 10 | 10 | "phase0_generated_at": "2026-02-26T02:49:21.091145Z", |
| 11 | 11 | "summary": { |
| 12 | 12 | "total_threads": 185, |
| 13 | "actionable_canonical": 60, | |
| 13 | "actionable_canonical": 58, | |
| 14 | 14 | "actionable_duplicates": 24, |
| 15 | 15 | "filtered_outdated": 94, |
| 16 | 16 | "filtered_resolved": 6, |
| 17 | "filtered_invalid": 1 | |
| 17 | "filtered_invalid": 3 | |
| 18 | 18 | }, |
| 19 | 19 | "canonical_items": [ |
| 20 | 20 | { |
| ... | ... | @@ -82,42 +82,6 @@ |
| 82 | 82 | "macroscopeapp" |
| 83 | 83 | ] |
| 84 | 84 | }, |
| 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 | }, | |
| 121 | 85 | { |
| 122 | 86 | "canonical_id": "C006", |
| 123 | 87 | "area": "Build/runtime portability", |
| ... | ... | @@ -1580,9 +1544,8 @@ |
| 1580 | 1544 | "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>", |
| 1581 | 1545 | "severity": "High", |
| 1582 | 1546 | "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." | |
| 1586 | 1549 | }, |
| 1587 | 1550 | { |
| 1588 | 1551 | "index": 32, |
| ... | ... | @@ -1623,9 +1586,8 @@ |
| 1623 | 1586 | "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>", |
| 1624 | 1587 | "severity": "High", |
| 1625 | 1588 | "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." | |
| 1629 | 1591 | }, |
| 1630 | 1592 | { |
| 1631 | 1593 | "index": 35, |
.plans/16a-pr89-phase0-canonical-triage.md+7-10| ... | ... | @@ -7,11 +7,11 @@ |
| 7 | 7 | ## Summary |
| 8 | 8 | |
| 9 | 9 | - Total threads: 185 |
| 10 | - Actionable canonical: 60 | |
| 10 | - Actionable canonical: 58 | |
| 11 | 11 | - Actionable duplicates: 24 |
| 12 | 12 | - Filtered outdated: 94 |
| 13 | 13 | - Filtered resolved: 6 |
| 14 | - Filtered invalid: 1 | |
| 14 | - Filtered invalid: 3 | |
| 15 | 15 | |
| 16 | 16 | ## Canonical Actionable Checklist |
| 17 | 17 | |
| ... | ... | @@ -143,13 +143,6 @@ |
| 143 | 143 | - [ ] 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) |
| 144 | 144 | - Threads: PRRT_kwDORLtfbc5whtrN |
| 145 | 145 | |
| 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 | ||
| 153 | 146 | ### Build/runtime portability (2) |
| 154 | 147 | |
| 155 | 148 | - [ ] C006 [Medium] Build script runs TypeScript file with bare node (apps/server/package.json:14) |
| ... | ... | @@ -164,8 +157,12 @@ |
| 164 | 157 | |
| 165 | 158 | ## Invalid / False-Positive Threads |
| 166 | 159 | |
| 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. | |
| 167 | 164 | - 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. | |
| 169 | 166 | |
| 170 | 167 | ## Duplicate Mapping |
| 171 | 168 |
AGENTS.md+1-1| ... | ... | @@ -29,7 +29,7 @@ How we use it in this codebase: |
| 29 | 29 | - Session startup/resume and turn lifecycle are brokered in `apps/server/src/codexAppServerManager.ts`. |
| 30 | 30 | - Provider dispatch and thread event logging are coordinated in `apps/server/src/providerManager.ts`. |
| 31 | 31 | - 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). | |
| 33 | 33 | |
| 34 | 34 | Docs: |
| 35 | 35 |