Skip to content

Commit c5a8965

Browse files
committed
feat(agent-workspace): signal stable history streaks
1 parent a20531b commit c5a8965

10 files changed

Lines changed: 90 additions & 24 deletions

docs/diataxis/en/explanation/agent-conversation-focus-mode-plan.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,10 +472,11 @@ It is conversation-product hardening on top of the shipped shell.
472472
`M8.34` now explains why the primary follow-up stayed ahead of the surfaced secondary alternative, so expanded history items no longer leave the primary-vs-secondary choice implicit.
473473
`M8.35` now explains recommendation drift across adjacent history events, so the current-atom history surface no longer requires manual cross-card comparison for that change.
474474
`M8.36` now explains recommendation stability across adjacent history events, so the current-atom history surface also shows when a newer event kept the same next step in place.
475+
`M8.37` now adds stability signals on top of that explanation surface, so repeated hold streaks are readable from badges and confidence copy without reading the full stability paragraph.
475476

476477
Priority order:
477478

478-
1. deepen personalization on top of the shipped primary/secondary/drift/stability explanation surface,
479+
1. deepen personalization on top of the shipped primary/secondary/drift/stability explanation surface and stability signals,
479480
2. expand broader operator rollups only when they clearly compound the same current-atom continuity loop,
480481
3. keep markdown-reader improvements secondary unless they clearly compound the same study loop.
481482

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

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ It explicitly separates branch-level implementation status from mainline integra
66
## Scope
77

88
- Focus area: local-first knowledge mastery platform (ingest, retrieval, learning path, tutor, memory, governance).
9-
- Time window: `v1.7.0` through the 2026-04-21 foundation-integration checkpoint, the 2026-04-21 UTC CI review cycle, and the post-`M8.36` reconciliation pass.
9+
- Time window: `v1.7.0` through the 2026-04-21 foundation-integration checkpoint, the 2026-04-21 UTC CI review cycle, and the post-`M8.37` reconciliation pass.
1010
- Evidence rule: every progress claim must map to:
1111
- contract layer (`src/learning/api.ts`, `src/learning/types.ts`),
1212
- route/runtime layer (`src/server.ts`),
@@ -18,12 +18,12 @@ Current top priority is not feature-count expansion.
1818
Current top priority is **conversation-product hardening on top of the already-green backend baseline**:
1919

2020
- keep backend sufficiency as a standing decision gate rather than an active execution lane,
21-
- keep closing the correction/product/operator gap exposed after `M8.20-M8.36`,
22-
- treat `M8.23` as the operator-visibility baseline for conversation-memory/correction actions, `M8.24` as the active-atom action-surface baseline, `M8.25` as the active-atom pane-state continuity baseline, `M8.26` as the active-atom study-loop summary baseline, `M8.27` as the active-atom recent-result continuity baseline, `M8.28` as the active-atom result-preview baseline, `M8.29` as the active-atom history-drill-down baseline, `M8.30` as the active-atom history follow-up baseline, `M8.31` as the active-atom history freshness-ranking baseline, `M8.32` as the active-atom history rationale/alternative baseline, `M8.33` as the active-atom history confidence-signal baseline, `M8.34` as the primary-vs-secondary tradeoff explanation baseline, `M8.35` as the adjacent-history drift explanation baseline, and `M8.36` as the adjacent-history stability explanation baseline,
21+
- keep closing the correction/product/operator gap exposed after `M8.20-M8.37`,
22+
- treat `M8.23` as the operator-visibility baseline for conversation-memory/correction actions, `M8.24` as the active-atom action-surface baseline, `M8.25` as the active-atom pane-state continuity baseline, `M8.26` as the active-atom study-loop summary baseline, `M8.27` as the active-atom recent-result continuity baseline, `M8.28` as the active-atom result-preview baseline, `M8.29` as the active-atom history-drill-down baseline, `M8.30` as the active-atom history follow-up baseline, `M8.31` as the active-atom history freshness-ranking baseline, `M8.32` as the active-atom history rationale/alternative baseline, `M8.33` as the active-atom history confidence-signal baseline, `M8.34` as the primary-vs-secondary tradeoff explanation baseline, `M8.35` as the adjacent-history drift explanation baseline, `M8.36` as the adjacent-history stability explanation baseline, and `M8.37` as the adjacent-history stability-signal baseline,
2323
- keep the remaining near-term budget on deeper personalization and operator rollup quality now that the continuity-explanation gap is closed on the active history surface,
2424
- keep remote `main` CI interpretation evidence-based: the latest fully completed `main` workflow set is green, and new pushes should be treated as pending until their workflow set finishes.
2525

26-
## Current Mainline Snapshot (2026-04-21 Baseline Split: Foundation M8.18 / Conversation M8.36)
26+
## Current Mainline Snapshot (2026-04-21 Baseline Split: Foundation M8.18 / Conversation M8.37)
2727

2828
- Foundation baseline on `main` is currently:
2929
- status `integrated`
@@ -37,12 +37,12 @@ Current top priority is **conversation-product hardening on top of the already-g
3737
- Historical increment sections below remain chronological archive entries.
3838
- When a historical section says `in_progress` / `no-go`, read it as past checkpoint truth rather than current repo state.
3939

40-
## Reconciliation Notes (2026-04-21 Post-M8.36)
40+
## Reconciliation Notes (2026-04-21 Post-M8.37)
4141

4242
- The active mainline question is no longer whether backend sufficiency work should continue.
4343
That lane is closed-by-default while its gate stays green.
44-
- The active mainline question is also no longer whether tradeoff, drift, and stability explanation should be added.
45-
`M8.34`, `M8.35`, and `M8.36` now ship that continuity-explanation layer on the expanded history decision surface.
44+
- The active mainline question is also no longer whether tradeoff, drift, stability explanation, and stability signaling should be added.
45+
`M8.34`, `M8.35`, `M8.36`, and `M8.37` now ship that continuity-explanation layer on the expanded history decision surface.
4646
- The next gap is no longer local explanation opacity.
4747
The remaining product question is how much deeper personalization and operator rollup value should sit on top of this now-readable current-atom history surface.
4848
- Remote `main` CI is currently green on the latest push.
@@ -235,6 +235,22 @@ Execution anchor:
235235
- diagnostics snapshot coverage for stored preview payloads,
236236
- EN/ZH re-render coverage for localized preview text.
237237

238+
## Latest Mainline Increment (2026-04-21 M8.37 Active-Atom Adjacent History Stability Signals)
239+
240+
- Extended the expanded history confidence surface with adjacent-history stability signals:
241+
- stability is no longer paragraph-only; stable follow-up streaks now surface as compact badges on the same expanded history item,
242+
- confidence copy now states when the current recommendation was reinforced across consecutive newer history events,
243+
- the rail now distinguishes a merely fresh suggestion from one that has already held through repeated nearby history.
244+
- Kept the slice frontend-bounded:
245+
- no backend route, API contract, persistence model, or capability schema changed,
246+
- signal derivation reuses the shipped adjacent-history stability count from the same bounded recent-history window.
247+
- Closed the next post-`M8.36` personalization gap:
248+
- operators no longer need to read the full stability paragraph to tell whether a next step has a multi-event hold,
249+
- the continuity surface now exposes both stability explanation and stability-strength signaling in place.
250+
- Expanded regression coverage for:
251+
- stability badge rendering on expanded history items with multi-event hold streaks,
252+
- EN/ZH contract coverage for the new stability-signal label and confidence copy.
253+
238254
## Latest Mainline Increment (2026-04-21 M8.36 Active-Atom Adjacent History Stability Explanation)
239255

240256
- Extended the expanded history decision surface with adjacent-event stability explanation:
@@ -1421,8 +1437,8 @@ Note: foundation-lane gates now exist on `main`; keep them in the normal verific
14211437

14221438
1. Treat backend sufficiency as closed-by-default while the gate remains green; do not reopen heavier backend work without new measured pressure.
14231439
2. Treat remote `main` CI as evidence-bound to the latest fully completed workflow set; only reopen CI-triage narrative when a fresh failing run exists.
1424-
3. Make the next planning round about post-`M8.36` bounded conversation-product compounding:
1425-
- deepen personalization on top of the now-readable primary/secondary/drift/stability explanation surface,
1440+
3. Make the next planning round about post-`M8.37` bounded conversation-product compounding:
1441+
- deepen personalization on top of the now-readable primary/secondary/drift/stability explanation surface and stability signals,
14261442
- add broader operator rollup/reporting only when it compounds the same current-atom continuity loop,
14271443
- keep markdown-reader improvements secondary unless they strengthen the same study loop.
14281444
4. Treat notification-threshold governance as closed after `M7.29`; do not plan `M7.30+` unless a materially new operator requirement appears.

docs/diataxis/en/explanation/local-backend-sufficiency-and-escalation-plan.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ Recommended next product order:
248248
- the minimum correction / feedback closure is now integrated through explicit next-step guidance on missing managed state,
249249
- operator-facing visibility for conversation-memory and correction actions is now integrated through persisted diagnostics summary/index counts,
250250
- stronger agent action surfaces around focus mode and learning path are now integrated through the active-atom quick-action rail, toolbar routing, continuity notes/path-target diagnostics, capability-taxonomy summary cards, the recent-activity history card, localized result-detail previews on that history surface, expandable history drill-down, deterministic history follow-up affordances, continuity-aware freshness ranking for those affordances, and bounded rationale/secondary-alternative rendering,
251-
- `M8.34` primary-vs-secondary tradeoff explanation, `M8.35` adjacent-history drift explanation, and `M8.36` adjacent-history stability explanation are now integrated on top of the shipped signal-enabled current-atom recent-activity card,
251+
- `M8.34` primary-vs-secondary tradeoff explanation, `M8.35` adjacent-history drift explanation, `M8.36` adjacent-history stability explanation, and `M8.37` adjacent-history stability signals are now integrated on top of the shipped signal-enabled current-atom recent-activity card,
252252
- next only deepen personalization or broader operator rollups when they clearly compound that same readable current-atom continuity loop.
253253
2. markdown-reader improvement:
254254
- only when it clearly compounds knowledge review or focus-mode study loops.

docs/diataxis/zh/explanation/agent-conversation-focus-mode-plan.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -460,10 +460,11 @@
460460
`M8.34` 现在又解释主建议为什么继续排在当前 secondary alternative 前面,让展开后的 history item 不再把主建议 vs 备选决策留成隐含信息。
461461
`M8.35` 现在又解释相邻 history event 之间的 recommendation drift,让当前 atom history surface 不再要求操作者手工对比多张展开卡片。
462462
`M8.36` 现在又解释相邻 history event 之间的 recommendation stability,让当前 atom history surface 也能直接说明“新事件是否继续保持同一下一步”。
463+
`M8.37` 现在又在这层 explanation surface 之上补上 stability signal,让连续 hold 的 next step 可以直接从 badge 与 confidence copy 读出来,而不必读完整段 stability 文案。
463464

464465
优先顺序:
465466

466-
1. 在当前已落地的 primary/secondary/drift/stability explanation surface 之上继续加深 personalization,
467+
1. 在当前已落地的 primary/secondary/drift/stability explanation surface 与 stability signal 之上继续加深 personalization,
467468
2. 只有当更宽的 operator rollup 能明确复利同一 current-atom continuity loop 时才继续扩展,
468469
3. Markdown 阅读器提升继续保持次优先级,除非它能明确加强同一学习闭环。
469470

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

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
## 范围
77

88
- 聚焦对象:本地优先学习平台(摄入、检索、学习路径、导师、记忆、治理)。
9-
- 时间窗口:`v1.7.0` 至 2026-04-21 foundation-integration checkpoint、2026-04-21 UTC CI 复盘周期,以及 post-`M8.36` 对齐复盘。
9+
- 时间窗口:`v1.7.0` 至 2026-04-21 foundation-integration checkpoint、2026-04-21 UTC CI 复盘周期,以及 post-`M8.37` 对齐复盘。
1010
- 证据规则:每条进展结论都需映射到:
1111
- 契约层(`src/learning/api.ts``src/learning/types.ts`),
1212
- 路由/运行时层(`src/server.ts`),
@@ -18,12 +18,12 @@
1818
当前重心是 **建立在已转绿 backend 基线之上的 conversation-product 加固**
1919

2020
- 让 backend sufficiency 继续作为常驻 decision gate,而不是继续占用主动执行预算,
21-
- 持续收口 `M8.20-M8.36` 之后暴露出的 correction / product / operator 缺口,
22-
-`M8.23` 视作 conversation-memory / correction action 的 operator-visibility 基线,将 `M8.24` 视作当前 atom action-surface 基线,将 `M8.25` 视作当前 atom pane-state continuity 基线,将 `M8.26` 视作当前 atom study-loop summary 基线,将 `M8.27` 视作当前 atom recent-result continuity 基线,将 `M8.28` 视作当前 atom result-preview 基线,将 `M8.29` 视作当前 atom history-drill-down 基线,将 `M8.30` 视作当前 atom history follow-up 基线,将 `M8.31` 视作当前 atom history freshness-ranking 基线,将 `M8.32` 视作当前 atom history rationale/alternative 基线,将 `M8.33` 视作当前 atom history confidence-signal 基线,将 `M8.34` 视作主建议 vs secondary alternative 解释基线,将 `M8.35` 视作相邻 history drift 解释基线,并将 `M8.36` 视作相邻 history stability 解释基线,
21+
- 持续收口 `M8.20-M8.37` 之后暴露出的 correction / product / operator 缺口,
22+
-`M8.23` 视作 conversation-memory / correction action 的 operator-visibility 基线,将 `M8.24` 视作当前 atom action-surface 基线,将 `M8.25` 视作当前 atom pane-state continuity 基线,将 `M8.26` 视作当前 atom study-loop summary 基线,将 `M8.27` 视作当前 atom recent-result continuity 基线,将 `M8.28` 视作当前 atom result-preview 基线,将 `M8.29` 视作当前 atom history-drill-down 基线,将 `M8.30` 视作当前 atom history follow-up 基线,将 `M8.31` 视作当前 atom history freshness-ranking 基线,将 `M8.32` 视作当前 atom history rationale/alternative 基线,将 `M8.33` 视作当前 atom history confidence-signal 基线,将 `M8.34` 视作主建议 vs secondary alternative 解释基线,将 `M8.35` 视作相邻 history drift 解释基线, `M8.36` 视作相邻 history stability 解释基线,并将 `M8.37` 视作相邻 history stability signal 基线
2323
- 把剩余近端预算继续压在更深 personalization 与 operator rollup 质量上,而不是继续重开“本地 explanation 还不够”的缺口,
2424
- 远端 `main` CI 解释继续基于代码事实:最近一组已完整结束的主线工作流为绿色,新推送在整组工作流结束前只应视为 pending。
2525

26-
## 当前主线快照(2026-04-21 基线拆分:Foundation M8.18 / Conversation M8.36
26+
## 当前主线快照(2026-04-21 基线拆分:Foundation M8.18 / Conversation M8.37
2727

2828
- `main` 上的 foundation 基线当前为:
2929
- 状态 `integrated`
@@ -37,12 +37,12 @@
3737
- 下方“主线最新增量”章节按时间顺序保留历史记录。
3838
- 历史段落中出现的 `in_progress` / `no-go` 代表过去 checkpoint 结论,不代表当前仓库状态。
3939

40-
## 对齐备注(2026-04-21 Post-M8.36
40+
## 对齐备注(2026-04-21 Post-M8.37
4141

4242
- 当前主线问题已经不再是 backend sufficiency 是否还要继续推进。
4343
在 gate 继续为绿的前提下,这条 lane 默认视为闭环。
44-
- 当前主线问题也不再是“是否还需要补 tradeoff / drift / stability explanation”。
45-
`M8.34``M8.35``M8.36` 已经把这层 continuity explanation 落到展开的 history 决策面上。
44+
- 当前主线问题也不再是“是否还需要补 tradeoff / drift / stability explanation 与 stability signaling”。
45+
`M8.34``M8.35``M8.36``M8.37` 已经把这层 continuity explanation 落到展开的 history 决策面上。
4646
- 当前剩余缺口不再是本地 explanation 不透明。
4747
下一步真正的问题是:在这块已可读的 current-atom history surface 之上,还要加多少 personalization 与 operator rollup 才值得。
4848
- 远端 `main` CI 当前在最新推送上为绿。
@@ -235,6 +235,22 @@
235235
- diagnostics snapshot 中 preview payload 的可见性,
236236
- EN/ZH 对 preview 文本的重渲覆盖。
237237

238+
## 主线最新增量(2026-04-21 M8.37 当前 Atom 相邻 History Stability Signals)
239+
240+
- 已把展开的 history confidence surface 继续补上相邻事件 stability signal:
241+
- stability 不再只藏在段落解释里;稳定跟随的 next step 现在会在同一张展开 history item 上直接给出 compact badge,
242+
- confidence copy 现在也会明确说明:当前推荐是否已经在连续更新事件中被强化,
243+
- 操作者现在可以直接区分“只是 fresh 的建议”和“已经连续保持住的建议”。
244+
- 继续保持 frontend-bounded:
245+
- 没有新增 backend route、API contract、持久化模型或 capability schema,
246+
- signal 推导完全复用已落地的相邻 history stability count 与同一段有界 recent-history 窗口。
247+
- 关闭了 post-`M8.36` 的下一处 personalization gap:
248+
- 操作者不再需要读完整段 stability 文案,才能判断 next step 是否已经形成多事件 hold,
249+
- 当前 continuity surface 现在已同时暴露 stability explanation 与 stability-strength signal。
250+
- 回归覆盖继续扩到:
251+
- 多事件稳定 hold 的展开 history item 上渲染 stability badge,
252+
- EN/ZH 对新 stability-signal label 与 confidence copy 的契约覆盖。
253+
238254
## 主线最新增量(2026-04-21 M8.36 当前 Atom 相邻 History Stability 解释)
239255

240256
- 已把展开的 history 决策面继续补上相邻事件 stability explanation:
@@ -1424,8 +1440,8 @@ npm test -- src/learning/KnowledgeLearningPlatform.persistence.test.ts --runInBa
14241440

14251441
1. backend sufficiency 在 gate 继续为绿时默认视为已收口;没有新的 measured pressure 前,不重开更重 backend 工作。
14261442
2. 远端 `main` CI 继续以最近一组已完整结束的工作流为事实依据;只有出现新的失败 run,才重开 CI-triage 叙事。
1427-
3. 下一轮 planning 应只讨论 post-`M8.36` 的有界 conversation-product 复利:
1428-
- 在当前已可读的 primary/secondary/drift/stability explanation surface 之上继续加深 personalization,
1443+
3. 下一轮 planning 应只讨论 post-`M8.37` 的有界 conversation-product 复利:
1444+
- 在当前已可读的 primary/secondary/drift/stability explanation surface 与 stability signal 之上继续加深 personalization,
14291445
- 只有当更宽的 operator rollup / reporting 能复利同一 current-atom continuity loop 时才继续扩展,
14301446
- Markdown 阅读器提升继续保持次优先级,除非它能直接加强同一学习闭环。
14311447
4. notification-threshold 治理链路继续视为在 `M7.29` 后已收口;没有新的强运维需求前,不再规划 `M7.30+`

0 commit comments

Comments
 (0)