|
| 1 | +--- |
| 2 | +date: 2026-04-21 |
| 3 | +topic: mainline-reconciliation-after-m8-47-operator-consumer |
| 4 | +--- |
| 5 | + |
| 6 | +# Mainline Reconciliation After M8.47 Operator Consumer Requirements |
| 7 | + |
| 8 | +## Problem Frame |
| 9 | + |
| 10 | +`M8.47` is no longer a planned seam. |
| 11 | +It now ships on `main` as the bounded operator-summary promotion step: |
| 12 | + |
| 13 | +- persisted diagnostics report metadata now keeps a compact managed-memory continuity digest, |
| 14 | +- index / latest / read-by-id routes now expose that same compact summary without full-report joins, |
| 15 | +- triage top-report and history payloads now carry the compact continuity summary as supporting context, |
| 16 | +- replay-risk ranking still remains the same replay-rate / failure-driven policy. |
| 17 | + |
| 18 | +That changes the next architecture question. |
| 19 | +The active gap is no longer "how to make continuity digest reachable." |
| 20 | +The active gap is "which operator consumer should use the newly normalized continuity summary first, and how do we keep that use bounded." |
| 21 | + |
| 22 | +## Verified Mainline Reality (2026-04-21) |
| 23 | + |
| 24 | +- Current server summary normalization now preserves: |
| 25 | + - continuity breadth via `atomCount`, |
| 26 | + - continuity totals via `readCount` and `transitionCount`, |
| 27 | + - continuity change-shape via `resolvedKeyCounts` and `persistentKeyCounts`, |
| 28 | + - latest-transition context via `latestTransition.atomId`, `kind`, `newerAt`, and `olderAt`. |
| 29 | +- This continuity digest now survives: |
| 30 | + - report creation metadata, |
| 31 | + - persisted diagnostics index entries, |
| 32 | + - `GET /api/knowledge/operator/agent-workspace-diagnostics/latest`, |
| 33 | + - `GET /api/knowledge/operator/agent-workspace-diagnostics/triage`, |
| 34 | + - `GET /api/knowledge/operator/agent-workspace-diagnostics/triage/history`. |
| 35 | +- The next operator decision layer still does **not** consume that digest for triage ranking or runbook-action prioritization. |
| 36 | +- Backend sufficiency remains green and dormant-by-default. |
| 37 | +- Remote `main` CI was green before this slice; fresh pushes should again be judged only by their own finished workflow set. |
| 38 | + |
| 39 | +## Critical Findings |
| 40 | + |
| 41 | +1. `M8.47` closed the data-availability seam. |
| 42 | + New operator consumers no longer need snapshot-only coupling or full-report reads just to inspect continuity breadth/freshness. |
| 43 | + |
| 44 | +2. Another pure transport increment would be low leverage. |
| 45 | + The compact summary now already reaches the cheapest operator fast paths. |
| 46 | + |
| 47 | +3. The sharpest remaining seam is consumer logic, not payload shape. |
| 48 | + Triage still ranks and escalates without using the continuity digest it now exposes. |
| 49 | + |
| 50 | +4. Broader personalization or markdown-reader expansion would still jump the queue. |
| 51 | + They do not compound the newly normalized operator summary as directly as continuity-aware triage consumption does. |
| 52 | + |
| 53 | +## Requirements |
| 54 | + |
| 55 | +**Truth Refresh** |
| 56 | +- R1. This document becomes the new current source-of-truth item for post-`M8.47` direction. |
| 57 | +- R2. Current-facing docs must describe `M8.47` as shipped operator-summary promotion, not as pending work. |
| 58 | + |
| 59 | +**Next-Lane Narrowing** |
| 60 | +- R3. Current-facing docs must define `M8.48` as bounded continuity-aware operator-consumer work on top of the shipped compact summary. |
| 61 | +- R4. `M8.48` must stay inside existing persisted summary fields: |
| 62 | + - `atomCount`, |
| 63 | + - `readCount`, |
| 64 | + - `transitionCount`, |
| 65 | + - `resolvedKeyCounts`, |
| 66 | + - `persistentKeyCounts`, |
| 67 | + - `latestTransition`. |
| 68 | +- R5. Current-facing docs must frame the first `M8.48` consumer as **triage/runbook consumption**, not as a new persistence model, richer report UI, or broader personalization layer. |
| 69 | +- R6. Ranking and runbook changes must remain bounded to already-normalized summary fields; no full-report joins become required again. |
| 70 | + |
| 71 | +**Scope Control** |
| 72 | +- R7. Do not reopen backend-escalation or CI-repair narration unless fresh evidence appears. |
| 73 | +- R8. Do not move markdown-reader work ahead of `M8.48` unless it compounds the same operator/study loop more directly. |
| 74 | +- R9. Do not skip directly to large operator dashboards before continuity-aware triage/runbook consumption proves value. |
| 75 | + |
| 76 | +## Success Criteria |
| 77 | + |
| 78 | +- this document is listed first under `docs/brainstorms/index.md`, |
| 79 | +- EN/ZH current-facing docs describe `M8.47` as shipped, |
| 80 | +- EN/ZH current-facing docs describe `M8.48` as bounded continuity-aware triage/runbook consumption, |
| 81 | +- docs verification passes, |
| 82 | +- `main` stays clean after verification. |
| 83 | + |
| 84 | +## Scope Boundaries |
| 85 | + |
| 86 | +- This document does not reopen backend sufficiency work. |
| 87 | +- This document does not add a new diagnostics persistence model. |
| 88 | +- This document does not require a new frontend page or a larger report browser. |
| 89 | +- This document does not claim that triage ranking is already continuity-aware. |
| 90 | + |
| 91 | +## Next Steps |
| 92 | + |
| 93 | +-> `/ce:plan` for `post-M8.47 continuity-aware operator triage consumer`, keeping `M8.48` bounded to runbook/triage consumption on top of the already normalized summary. |
0 commit comments