Skip to content

Commit b4dc1f9

Browse files
committed
feat: close m7.29 applied-mode history views
1 parent 3fe9a53 commit b4dc1f9

8 files changed

Lines changed: 329 additions & 18 deletions

docs/brainstorms/2026-04-16-mainline-ci-stabilization-and-m7-direction-requirements.md

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,7 +1073,7 @@ Suggested verification slice:
10731073
- Best next increment is not broader remediation or UI work.
10741074
Best next increment is a narrow applied-mode filter over the same bounded apply-outcome history surface.
10751075

1076-
### M7.29 (Next): Notification-Threshold Applied-Mode History Views (Lane Ops Bridge)
1076+
### M7.29 (Now): Notification-Threshold Applied-Mode History Views (Lane Ops Bridge)
10771077

10781078
Deliverables:
10791079

@@ -1089,6 +1089,28 @@ Suggested verification slice:
10891089
- `npm run docs:diataxis:check`
10901090
- `npm run docs:site:build`
10911091

1092+
#### M7.29 Progress Note (2026-04-19)
1093+
1094+
- [Done] kept the history lane bounded to the existing reconciliation-history route:
1095+
- `GET /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/notification-thresholds/reconciliation/history`
1096+
- [Done] added read-only `appliedMode` filtering without introducing a new persistence model:
1097+
- supported values: `all`, `reset-to-default`, `rollback-to-previous-audit`
1098+
- [Done] resolved the open contract question by allowing combined `status + appliedMode` filtering on the same bounded history surface.
1099+
- [Done] filtered history metadata now reports both active filters alongside scan/return counts:
1100+
- `filter.status`
1101+
- `filter.appliedMode`
1102+
- `filter.scannedEntries`
1103+
- `filter.returnedEntries`
1104+
- [Done] hardened guardrails around the new filter path:
1105+
- `src/agent_workspace.verification.contract.test.ts`
1106+
- `scripts/verify-agent-workspace-runtime.js`
1107+
- [Done] verification evidence:
1108+
- `npm test -- src/server.migration.test.ts --runInBand --testNamePattern "notification threshold applied-mode outcome history"`
1109+
- `npm run test:agent-workspace:contracts`
1110+
- `npm run verify:agent-workspace:runtime`
1111+
- `npm run docs:diataxis:check`
1112+
- `npm run docs:site:build`
1113+
10921114
## Success Criteria
10931115

10941116
- CI failure mode that previously blocked the three agent-workspace suites is eliminated on mainline.
@@ -1098,4 +1120,4 @@ Suggested verification slice:
10981120

10991121
## Next Step
11001122

1101-
Proceed to `/prompts:ce-plan` using this document as the source for `M7.29` decomposition (notification-threshold applied-mode history views), while preserving M7 lane boundary constraints.
1123+
Proceed to `/prompts:ce-plan` using this document plus the 2026-04-19 reconciliation record as the source for `M8 foundation re-entry readiness execution`, while preserving the post-M7 stop rule for notification-threshold micro-expansion.

docs/brainstorms/2026-04-19-mainline-progress-reconciliation-and-post-m7-direction-requirements.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ This document re-baselines current mainline truth on 2026-04-19, records what ch
2222
- `cbc9afc` (`M7.26` bounded apply-outcome history),
2323
- `494d0c8` (`M7.27` supersession summary),
2424
- `9a4488f` (`M7.28` filtered outcome history).
25+
- current work now closes that lane with `M7.29` on the same bounded route family:
26+
- reconciliation history now supports `appliedMode=all|reset-to-default|rollback-to-previous-audit`,
27+
- combined `status + appliedMode` filtering is supported on the existing bounded history surface,
28+
- no new persistence model or top-level endpoint family was introduced.
2529
- `src/server.ts` now carries a dense L5 operator-governance route family for notification-threshold preview, apply, reconciliation, bounded history, summary, and filtered history views.
2630
- `src/learning/KnowledgeLearningPlatform.ts`, `src/learning/types.ts`, `src/learning/KnowledgeLearningPlatform.test.ts`, and `src/learning/KnowledgeLearningPlatform.persistence.test.ts` show that mainline already has:
2731
- explainable retrieval with `relationPath` and `temporalValidity`,
@@ -160,10 +164,10 @@ This document re-baselines current mainline truth on 2026-04-19, records what ch
160164
## Outstanding Questions
161165

162166
### Deferred to Planning
163-
- [Affects R11][Technical] Should `M7.29` filter only by `appliedMode`, or should planning evaluate a combined `status + appliedMode` contract while keeping the route bounded?
167+
- [Resolved in execution][Technical] `M7.29` kept the route bounded and accepted combined `status + appliedMode` filtering on the existing history surface, so no separate planning branch is needed for that question.
164168
- [Affects R12][Needs research] What is the smallest executable `M8 foundation re-entry readiness` slice that increases evidence quality without prematurely introducing graphdb/vector abstractions?
165169
- [Affects R11][Needs research] Does markdown-reader governance now have a stronger near-term product case than foundation re-entry once the post-M7 checkpoint happens?
166170

167171
## Next Steps
168172

169-
-> /ce:plan for a structured plan that chooses one immediate lane now, with the recommended sequence being `M7.29` as the last bounded L5 closure increment and `M8 foundation re-entry readiness execution` as the default follow-on lane after that.
173+
-> /ce:plan for `M8 foundation re-entry readiness execution` as the immediate primary lane, now that `M7.29` has closed the last justified notification-threshold history increment.

docs/diataxis/en/explanation/development-progress-dashboard.md

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -621,14 +621,32 @@ Execution anchor:
621621
- `npm test -- src/learning/KnowledgeLearningPlatform.test.ts --runInBand`
622622
- `npm test -- src/learning/KnowledgeLearningPlatform.persistence.test.ts --runInBand`
623623

624+
## Latest Mainline Increment (2026-04-19 M7.29 Applied-Mode History Closure)
625+
626+
- Extended the existing bounded reconciliation-history route instead of creating a new route family:
627+
- `GET /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/notification-thresholds/reconciliation/history`
628+
- Added read-only `appliedMode` filtering for notification-threshold apply-outcome history:
629+
- supported values: `all`, `reset-to-default`, `rollback-to-previous-audit`.
630+
- Resolved the open filter-contract question by allowing combined `status + appliedMode` filtering on the same bounded history surface.
631+
- Kept guardrails aligned with the new filter path:
632+
- `src/server.migration.test.ts`
633+
- `src/agent_workspace.verification.contract.test.ts`
634+
- `scripts/verify-agent-workspace-runtime.js`
635+
- Verification evidence:
636+
- `npm test -- src/server.migration.test.ts --runInBand --testNamePattern "notification threshold applied-mode outcome history"`
637+
- `npm run test:agent-workspace:contracts`
638+
- `npm run verify:agent-workspace:runtime`
639+
- `npm run docs:diataxis:check`
640+
- `npm run docs:site:build`
641+
624642
## Mainline vs Working-Branch Snapshot (2026-04-19)
625643

626644
| Capability Slice | Working Branch (`feat/learning-multi-tutor-adapter`) | Mainline (`origin/main`) | Integration Status |
627645
|---|---|---|---|
628646
| Agent workspace shell + capability actions | Branch still contains broader in-flight ambitions | Typed operation routing, runtime shell, and contract gates are integrated on `main` (`src/frontend/agent_workspace.js`, `src/frontend/agent_workspace_runtime.js`) | Integrated baseline on mainline |
629647
| Focus + learning-path side-by-side pane model | Branch still contains extra pane-specific artifacts | Focus-mode activation, learning-path dock coexistence, and fullscreen lifecycle are verified on `main` (`src/frontend/agent_workspace_runtime.js`, `src/frontend/path_app.js`, runtime tests) | Integrated baseline on mainline |
630648
| Agent workspace contract and verification surface | Branch may carry additional locale or feature breadth | `main` already has contract parity, frontend/runtime integration, runtime verification, and Tauri/browser gate scripts | Integrated on mainline |
631-
| Operator diagnostics and notification-threshold governance | Branch is no longer the primary evidence source here | `main` owns the deep M7.5-M7.28 operator-governance route family in `src/server.ts` | Mainline is now the source of truth |
649+
| Operator diagnostics and notification-threshold governance | Branch is no longer the primary evidence source here | `main` owns the deep M7.5-M7.29 operator-governance route family in `src/server.ts`, including bounded history filtering by `status` and `appliedMode` | Mainline is now the source of truth |
632650
| Retrieval and learning core | Branch still points toward graphdb/vector follow-up work | `main` already has explainable retrieval, misconception/path/session flows, and persistence-tested learning state, but remains file-backed (`src/learning/KnowledgeLearningPlatform.ts`, `src/learning/store.ts`) | Advanced baseline, foundation gap remains |
633651
| Markdown reader governance refactor lane | Planned and partially implemented in branch | `main` has `src/markdown/MarkdownGateway.ts` and current reader baseline, but this lane is still not the active mainline delivery path | Pending bounded lane |
634652

@@ -669,7 +687,7 @@ This dashboard aligns against the following requirement chain:
669687
| L2 Retrieval | explainable hybrid/vector retrieval + governance | Branch still frames graphdb/vector expansion | Explainable retrieval with relation-path + temporal-validity evidence is integrated on `main`, but persistence is still file-backed (`src/learning/KnowledgeLearningPlatform.ts`, `src/learning/store.ts`) | M8: foundation re-entry readiness, evidence-first |
670688
| L3 Learning | mastery diagnostics + path/session loop | Expanded in branch | Path/session/misconception/memory flows are already integrated and persistence-tested on `main` | Preserve baseline and avoid underclaiming |
671689
| L4 Interaction | agent conversation + focus/path pane runtime | Implemented in branch | Typed contract routing, conversation shell, focus-mode, and path-dock coexistence are integrated on `main` | Expand only through typed contract discipline |
672-
| L5 Governance | runbook, diagnostics, replay/autonomy controls | Expanded in branch | Operator diagnostics persistence/triage/history/threshold governance + runbook automation/audit + adaptive simulation/remediation + remediation backtest/approval-gate + approval-policy hardening/regression-alarms + approval-policy drift/escalation + escalation acknowledgement lifecycle/audit + escalation SLA/reminder baseline + notification digest/suppression baseline + delivery-log observability + stale-cleanup health auditing + anomaly/retention governance + notification SLO governance + notification-threshold override/audit governance + rollback preview/drift-diff governance + rollback apply guardrails + latest apply-outcome reconciliation + bounded apply-outcome history + supersession summary + filtered status history integrated | M7.29 closure only, then stop/pivot |
690+
| L5 Governance | runbook, diagnostics, replay/autonomy controls | Expanded in branch | Operator diagnostics persistence/triage/history/threshold governance + runbook automation/audit + adaptive simulation/remediation + remediation backtest/approval-gate + approval-policy hardening/regression-alarms + approval-policy drift/escalation + escalation acknowledgement lifecycle/audit + escalation SLA/reminder baseline + notification digest/suppression baseline + delivery-log observability + stale-cleanup health auditing + anomaly/retention governance + notification SLO governance + notification-threshold override/audit governance + rollback preview/drift-diff governance + rollback apply guardrails + latest apply-outcome reconciliation + bounded apply-outcome history + supersession summary + combined status/applied-mode filtered history integrated | Stop lane after M7.29; pivot to M8 foundation readiness |
673691

674692
## Verification Baseline
675693

@@ -706,8 +724,8 @@ Note: do not list foundation-lane gates as baseline until the corresponding modu
706724

707725
## Next Direction (Current Priority)
708726

709-
1. Treat `M7.29` applied-mode history views as the only remaining justified notification-threshold increment; do not normalize a new open-ended L5 micro-lane after it.
710-
2. After `M7.29`, switch the primary lane to `M8 foundation re-entry readiness execution` rather than another notification-threshold subdivision.
727+
1. Treat notification-threshold governance as closed after `M7.29`; do not plan `M7.30+` unless a materially new operator requirement appears.
728+
2. Switch the primary lane to `M8 foundation re-entry readiness execution` rather than another notification-threshold subdivision.
711729
3. Preserve CI and contract fail-fast guarantees for every lane change by keeping docs, agent-workspace, and learning-core gates green.
712730
4. Re-baseline progress docs before every major lane switch so stale branch-gap language does not leak into mainline status claims.
713731
5. Keep markdown reader governance bounded and secondary until the post-M7 lane switch is explicitly planned.

docs/diataxis/zh/explanation/development-progress-dashboard.md

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -623,14 +623,33 @@
623623
- `npm test -- src/learning/KnowledgeLearningPlatform.test.ts --runInBand`
624624
- `npm test -- src/learning/KnowledgeLearningPlatform.persistence.test.ts --runInBand`
625625

626+
## 主线最新增量(2026-04-19 M7.29 Applied-Mode History 收口)
627+
628+
- 延用现有受限 reconciliation-history 路由,没有再开新的路由族:
629+
- `GET /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/notification-thresholds/reconciliation/history`
630+
- 已为 notification-threshold apply-outcome history 增加只读 `appliedMode` 过滤:
631+
- 支持 `all``reset-to-default``rollback-to-previous-audit`
632+
- 已将原先未决的过滤契约问题收敛为同一路由上的组合过滤:
633+
- 同时支持 `status + appliedMode` 的有界历史过滤。
634+
- 已同步更新新过滤路径的门禁护栏:
635+
- `src/server.migration.test.ts`
636+
- `src/agent_workspace.verification.contract.test.ts`
637+
- `scripts/verify-agent-workspace-runtime.js`
638+
- 验证证据:
639+
- `npm test -- src/server.migration.test.ts --runInBand --testNamePattern "notification threshold applied-mode outcome history"`
640+
- `npm run test:agent-workspace:contracts`
641+
- `npm run verify:agent-workspace:runtime`
642+
- `npm run docs:diataxis:check`
643+
- `npm run docs:site:build`
644+
626645
## 主线 vs 工作分支快照(2026-04-19)
627646

628647
| 能力切片 | 工作分支(`feat/learning-multi-tutor-adapter`| 主线(`origin/main`| 集成状态 |
629648
|---|---|---|---|
630649
| Agent workspace 壳层与能力动作 | 分支仍有更宽的在途设想 | 主线已经集成 typed operation routing、runtime shell 与合同门禁(`src/frontend/agent_workspace.js``src/frontend/agent_workspace_runtime.js`| 主线基线已集成 |
631650
| Focus + learning-path 并排 pane 模型 | 分支仍有额外 pane 相关工件 | 主线已经覆盖 focus mode、learning-path dock 并排与 fullscreen 生命周期(`src/frontend/agent_workspace_runtime.js``src/frontend/path_app.js`、运行时测试) | 主线基线已集成 |
632651
| Agent workspace 合同与验证面 | 分支可能还有额外 locale/feature 宽度 | 主线已经具备 contract parity、frontend/runtime integration、runtime verify 与 Tauri/browser 门禁脚本 | 主线已集成 |
633-
| Operator diagnostics 与 notification-threshold 治理 | 分支不再是这条链路的主证据源 | 主线已经拥有 `M7.5-M7.28` 的深度 operator-governance 路由族(`src/server.ts`| 主线已是事实源 |
652+
| Operator diagnostics 与 notification-threshold 治理 | 分支不再是这条链路的主证据源 | 主线已经拥有 `M7.5-M7.29` 的深度 operator-governance 路由族(`src/server.ts`,并支持 `status``appliedMode` 的有界历史过滤 | 主线已是事实源 |
634653
| 检索与学习内核 | 分支仍指向 graphdb/vector 后续工作 | 主线已经具备 explainable retrieval、misconception/path/session 流与 persistence 测试,但仍是 file-backed(`src/learning/KnowledgeLearningPlatform.ts``src/learning/store.ts`| 高级基线,foundation 缺口仍在 |
635654
| Markdown 阅读器治理升级 | 分支已有规划与部分实现 | 主线已有 `src/markdown/MarkdownGateway.ts` 与当前 reader 基线,但仍未成为当前主线交付主轴 | 待独立受限推进 |
636655

@@ -671,7 +690,7 @@
671690
| L2 检索层 | 可解释混合/向量检索 + 治理 | 分支仍指向 graphdb/vector 扩展 | 主线已经落入 relation-path + temporal-validity 的 explainable retrieval,但 persistence 仍是 file-backed(`src/learning/KnowledgeLearningPlatform.ts``src/learning/store.ts`| M8:foundation re-entry readiness,evidence-first |
672691
| L3 学习层 | 掌握诊断 + 路径/会话闭环 | 分支增强中 | 主线已经集成 path/session/misconception/memory 流并有 persistence 测试 | 保持基线,不再低估 |
673692
| L4 交互层 | agent 对话 + focus/path pane 运行时 | 分支已实现 | 主线已经集成 typed contract routing、conversation shell、focus mode 与 path dock coexistence | 仅通过 typed contract 扩展 |
674-
| L5 治理层 | runbook/诊断/回放与自动化 | 分支增强中 | 主线已集成运维诊断持久化/分级/趋势历史/阈值治理 + runbook 自动化/阈值审计 + 自适应模拟/自动修复 + 回测/批准门禁 + 批准策略硬化/回归告警 + 批准策略漂移/升级 + 升级确认生命周期/审计 + 升级 SLA/提醒基线 + 通知摘要/抑制基线 + 交付日志可观测性 + 陈旧通知健康审计 + 异常/retention 治理 + 通知 SLO 治理 + 通知阈值覆盖/审计治理 + 回滚预览/drift-diff 治理 + 回滚 apply guardrails + latest apply-outcome reconciliation + bounded apply-outcome history + supersession summary + filtered status history | 只允许 M7.29 收口,然后停/切 lane |
693+
| L5 治理层 | runbook/诊断/回放与自动化 | 分支增强中 | 主线已集成运维诊断持久化/分级/趋势历史/阈值治理 + runbook 自动化/阈值审计 + 自适应模拟/自动修复 + 回测/批准门禁 + 批准策略硬化/回归告警 + 批准策略漂移/升级 + 升级确认生命周期/审计 + 升级 SLA/提醒基线 + 通知摘要/抑制基线 + 交付日志可观测性 + 陈旧通知健康审计 + 异常/retention 治理 + 通知 SLO 治理 + 通知阈值覆盖/审计治理 + 回滚预览/drift-diff 治理 + 回滚 apply guardrails + latest apply-outcome reconciliation + bounded apply-outcome history + supersession summary + 组合 status/appliedMode 过滤历史 | M7.29 后停止此 lane,转向 M8 foundation readiness |
675694

676695
## 验证基线
677696

@@ -708,8 +727,8 @@ npm test -- src/learning/KnowledgeLearningPlatform.persistence.test.ts --runInBa
708727

709728
## 后续方向(当前优先级)
710729

711-
1.`M7.29` applied-mode history views 视为 notification-threshold 链路唯一剩余且合理的收口增量,不要把它继续扩成新的 L5 微型主线
712-
2. `M7.29` 之后将主线切到 `M8 foundation re-entry readiness execution`,而不是继续细分 notification-threshold 路由。
730+
1.notification-threshold 治理链路视为在 `M7.29` 后已收口;没有新的强运维需求前,不再规划 `M7.30+`
731+
2. 主线立即切到 `M8 foundation re-entry readiness execution`,而不是继续细分 notification-threshold 路由。
713732
3. 每次 lane 切换都保持 docs、agent-workspace 与 learning-core 门禁为绿色,确保事实与门禁同步。
714733
4. 每次主线方向切换前先重算文档事实,避免过时 branch-gap 语言继续污染状态结论。
715734
5. Markdown 阅读器治理继续保持受限且次优先级,直到 post-M7 主线切换被明确规划。

scripts/verify-agent-workspace-runtime.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,10 @@ function verifyAgentWorkspaceRuntime(repoRoot = path.resolve(__dirname, '..')) {
396396
serverSource.includes('normalizeAgentWorkspaceDiagnosticsRemediationEscalationNotificationThresholdApplyOutcomeHistoryStatusFilter'),
397397
'Missing remediation escalation notification threshold history status filter normalizer in src/server.ts'
398398
);
399+
assert(
400+
serverSource.includes('normalizeAgentWorkspaceDiagnosticsRemediationEscalationNotificationThresholdApplyOutcomeHistoryAppliedModeFilter'),
401+
'Missing remediation escalation notification threshold history appliedMode filter normalizer in src/server.ts'
402+
);
399403
assert(
400404
serverSource.includes('buildAgentWorkspaceDiagnosticsRemediationEscalationNotificationThresholdApplyOutcomeHistorySurface'),
401405
'Missing remediation escalation notification threshold history surface helper in src/server.ts'

0 commit comments

Comments
 (0)