Skip to content

Commit d5cc7b3

Browse files
committed
feat(agent-workspace): add escalation acknowledgement lifecycle audit trail
1 parent 66cd93a commit d5cc7b3

8 files changed

Lines changed: 940 additions & 5 deletions

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

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,36 @@ Deliverables:
470470
- `npm run test:agent-workspace:contracts`
471471
- `npm run verify:agent-workspace:runtime`
472472

473+
### M7.15 (Now): Escalation Acknowledgement Lifecycle and Runbook-Action Status Audit Trail (Lane Ops Bridge)
474+
475+
Deliverables:
476+
477+
- add persisted escalation acknowledgement lifecycle status for operator runbook execution.
478+
- enforce deterministic escalation status transitions (`open -> acknowledged -> in_progress -> resolved|dismissed`).
479+
- expose runbook-action status audit trail for compliance and postmortem replay.
480+
481+
#### M7.15 Progress Note (2026-04-16)
482+
483+
- [Done] expanded `src/server.ts` with escalation lifecycle surfaces:
484+
- `GET /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledgements?limit=...`,
485+
- `GET /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/audit?limit=...`,
486+
- `POST /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledge`.
487+
- [Done] added deterministic escalation lifecycle persistence and transition guardrails:
488+
- `acknowledgeAgentWorkspaceDiagnosticsRemediationEscalation(...)`,
489+
- `readAgentWorkspaceDiagnosticsRemediationEscalationLifecycleTrail(...)`,
490+
- `readAgentWorkspaceDiagnosticsRemediationEscalationAuditTrail(...)`,
491+
- transition validation for terminal status protection.
492+
- [Done] extended escalation route output with lifecycle visibility:
493+
- `/triage/remediation/escalation` now includes action-level lifecycle state and aggregate `statusSummary`.
494+
- [Done] expanded evidence coverage:
495+
- `src/server.migration.test.ts` now validates acknowledgement -> in-progress -> resolved lifecycle, invalid reopen block, acknowledgement/audit readbacks, and persisted lifecycle/audit files.
496+
- `src/knowledge.api.contract.test.ts` now fail-fast checks escalation lifecycle route contracts.
497+
- `src/agent_workspace.verification.contract.test.ts` + `scripts/verify-agent-workspace-runtime.js` now fail fast on escalation lifecycle/audit helper and route drift.
498+
- [Done] verification evidence:
499+
- `npm test -- src/server.migration.test.ts --runInBand --testNamePattern "triage route summarizes replay risk|triage history and alert-threshold governance|adaptive threshold simulation and remediation guardrails|remediation backtest and approval-gate flow|approval policy hardening and remediation trend-regression alarms|approval-policy drift detection and alarm-to-runbook escalation stay deterministic|escalation acknowledgement lifecycle and runbook-action status audit trail stay deterministic"`
500+
- `npm run test:agent-workspace:contracts`
501+
- `npm run verify:agent-workspace:runtime`
502+
473503
## Success Criteria
474504

475505
- CI failure mode that previously blocked the three agent-workspace suites is eliminated on mainline.
@@ -479,4 +509,4 @@ Deliverables:
479509

480510
## Next Step
481511

482-
Proceed to `/prompts:ce-plan` using this document as the source for `M7.15` decomposition (escalation acknowledgement lifecycle and runbook-action status audit trail), while preserving M7 lane boundary constraints.
512+
Proceed to `/prompts:ce-plan` using this document as the source for `M7.16` decomposition (escalation SLA breach detection and overdue acknowledgement reminders), while preserving M7 lane boundary constraints.

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,27 @@ Execution anchor:
483483
- `npm run test:agent-workspace:contracts`
484484
- `npm run verify:agent-workspace:runtime`
485485

486+
## Latest Mainline Increment (2026-04-16 M7.15 Escalation Acknowledgement Lifecycle and Runbook-Action Audit Lane)
487+
488+
- Expanded `src/server.ts` with escalation lifecycle governance routes:
489+
- `GET /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledgements?limit=...`,
490+
- `GET /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/audit?limit=...`,
491+
- `POST /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledge`.
492+
- Added deterministic escalation lifecycle + status-transition guardrails:
493+
- persisted acknowledgement trail,
494+
- persisted runbook-action status audit trail,
495+
- invalid reopen transitions blocked for terminal escalation states.
496+
- Extended escalation observability:
497+
- `/triage/remediation/escalation` now includes per-action lifecycle state and aggregate `statusSummary`.
498+
- Extended executable evidence:
499+
- `src/server.migration.test.ts` now validates acknowledgement lifecycle progression, invalid transition block, lifecycle/audit readbacks, and persistence artifacts for escalation status governance.
500+
- Hardened runtime verification gate:
501+
- `src/knowledge.api.contract.test.ts`, `src/agent_workspace.verification.contract.test.ts`, and `scripts/verify-agent-workspace-runtime.js` now fail fast on escalation acknowledgement/audit routes and helper drift.
502+
- Verification evidence:
503+
- `npm test -- src/server.migration.test.ts --runInBand --testNamePattern \"triage route summarizes replay risk|triage history and alert-threshold governance|adaptive threshold simulation and remediation guardrails|remediation backtest and approval-gate flow|approval policy hardening and remediation trend-regression alarms|approval-policy drift detection and alarm-to-runbook escalation stay deterministic|escalation acknowledgement lifecycle and runbook-action status audit trail stay deterministic\"`
504+
- `npm run test:agent-workspace:contracts`
505+
- `npm run verify:agent-workspace:runtime`
506+
486507
## Mainline vs Working-Branch Snapshot (2026-04-14)
487508

488509
| Capability Slice | Working Branch (`feat/learning-multi-tutor-adapter`) | Mainline (`origin/main`) | Integration Status |
@@ -531,7 +552,7 @@ This dashboard aligns against the following requirement chain:
531552
| L2 Retrieval | explainable hybrid/vector retrieval + governance | Expanded in branch-oriented plans | Mainline file-backed baseline only (`src/learning/store.ts`) | Re-enter lane after concrete module evidence lands on mainline |
532553
| L3 Learning | mastery diagnostics + path/session loop | Expanded in branch | Partially integrated | Contract and integration parity |
533554
| L4 Interaction | agent conversation + focus/path pane runtime | Implemented in branch | M1-M4 baseline integrated on mainline | Expand capability surface via typed contract only |
534-
| 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 baseline integrated | Add escalation acknowledgement lifecycle and runbook-action status audit trail |
555+
| 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 baseline integrated | Add escalation SLA breach detection and overdue acknowledgement reminders |
535556

536557
## Verification Baseline
537558

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,27 @@
485485
- `npm run test:agent-workspace:contracts`
486486
- `npm run verify:agent-workspace:runtime`
487487

488+
## 主线最新增量(2026-04-16 M7.15 升级确认生命周期与 Runbook 动作状态审计链路)
489+
490+
- 已在 `src/server.ts` 增加升级生命周期治理路由:
491+
- `GET /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledgements?limit=...`
492+
- `GET /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/audit?limit=...`
493+
- `POST /api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledge`
494+
- 已新增确定性升级生命周期与状态迁移护栏:
495+
- 升级确认轨迹持久化,
496+
- runbook 动作状态审计轨迹持久化,
497+
- 终态升级(`resolved`/`dismissed`)禁止非法回退。
498+
- 已扩展升级可观测性:
499+
- `/triage/remediation/escalation` 输出新增动作级 lifecycle 状态与聚合 `statusSummary`
500+
- 已补可执行证据:
501+
- `src/server.migration.test.ts` 新增确认 -> 处理中 -> 已解决 生命周期路径、非法状态回退阻断、ack/audit 查询回读与持久化文件断言。
502+
- 已加固 runtime 门禁:
503+
- `src/knowledge.api.contract.test.ts``src/agent_workspace.verification.contract.test.ts``scripts/verify-agent-workspace-runtime.js` 新增 escalation acknowledgement/audit 路由与 helper 的 fail-fast 断言。
504+
- 验证证据:
505+
- `npm test -- src/server.migration.test.ts --runInBand --testNamePattern \"triage route summarizes replay risk|triage history and alert-threshold governance|adaptive threshold simulation and remediation guardrails|remediation backtest and approval-gate flow|approval policy hardening and remediation trend-regression alarms|approval-policy drift detection and alarm-to-runbook escalation stay deterministic|escalation acknowledgement lifecycle and runbook-action status audit trail stay deterministic\"`
506+
- `npm run test:agent-workspace:contracts`
507+
- `npm run verify:agent-workspace:runtime`
508+
488509
## 主线 vs 工作分支快照(2026-04-14)
489510

490511
| 能力切片 | 工作分支(`feat/learning-multi-tutor-adapter`| 主线(`origin/main`| 集成状态 |
@@ -533,7 +554,7 @@
533554
| L2 检索层 | 可解释混合/向量检索 + 治理 | 分支规划增强中 | 主线当前为 file-backed 基线(`src/learning/store.ts`| 待主线出现对应模块证据后再收敛 |
534555
| L3 学习层 | 掌握诊断 + 路径/会话闭环 | 分支增强中 | 主线部分集成 | 契约与集成一致性 |
535556
| L4 交互层 | agent 对话 + focus/path pane 运行时 | 分支已实现 | 主线 M1-M4 已落入基线 | 继续通过 typed contract 扩展动作面 |
536-
| L5 治理层 | runbook/诊断/回放与自动化 | 分支增强中 | 主线已集成运维诊断持久化/分级/趋势历史/阈值治理 + runbook 自动化/阈值审计 + 自适应模拟/自动修复 + 回测/批准门禁 + 批准策略硬化/回归告警 + 批准策略漂移/升级基线 | 增补升级确认生命周期与 runbook 动作状态审计轨迹 |
557+
| L5 治理层 | runbook/诊断/回放与自动化 | 分支增强中 | 主线已集成运维诊断持久化/分级/趋势历史/阈值治理 + runbook 自动化/阈值审计 + 自适应模拟/自动修复 + 回测/批准门禁 + 批准策略硬化/回归告警 + 批准策略漂移/升级 + 升级确认生命周期/审计基线 | 增补升级 SLA 超时检测与逾期确认提醒 |
537558

538559
## 验证基线
539560

scripts/verify-agent-workspace-runtime.js

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,18 @@ function verifyAgentWorkspaceRuntime(repoRoot = path.resolve(__dirname, '..')) {
148148
serverSource.includes('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation'),
149149
'Missing diagnostics remediation escalation route in src/server.ts'
150150
);
151+
assert(
152+
serverSource.includes('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledgements'),
153+
'Missing diagnostics remediation escalation acknowledgement route in src/server.ts'
154+
);
155+
assert(
156+
serverSource.includes('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/audit'),
157+
'Missing diagnostics remediation escalation audit route in src/server.ts'
158+
);
159+
assert(
160+
serverSource.includes('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledge'),
161+
'Missing diagnostics remediation escalation acknowledge route in src/server.ts'
162+
);
151163
assert(
152164
serverSource.includes('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/approvals'),
153165
'Missing diagnostics remediation approvals route in src/server.ts'
@@ -208,6 +220,30 @@ function verifyAgentWorkspaceRuntime(repoRoot = path.resolve(__dirname, '..')) {
208220
serverSource.includes('buildAgentWorkspaceDiagnosticsRemediationEscalationActions'),
209221
'Missing diagnostics remediation escalation builder in src/server.ts'
210222
);
223+
assert(
224+
serverSource.includes('readAgentWorkspaceDiagnosticsRemediationEscalationLifecycleTrail'),
225+
'Missing remediation escalation lifecycle reader in src/server.ts'
226+
);
227+
assert(
228+
serverSource.includes('upsertAgentWorkspaceDiagnosticsRemediationEscalationLifecycleRecord'),
229+
'Missing remediation escalation lifecycle writer in src/server.ts'
230+
);
231+
assert(
232+
serverSource.includes('readAgentWorkspaceDiagnosticsRemediationEscalationAuditTrail'),
233+
'Missing remediation escalation audit reader in src/server.ts'
234+
);
235+
assert(
236+
serverSource.includes('appendAgentWorkspaceDiagnosticsRemediationEscalationAuditEntry'),
237+
'Missing remediation escalation audit writer in src/server.ts'
238+
);
239+
assert(
240+
serverSource.includes('annotateAgentWorkspaceDiagnosticsRemediationEscalationActionsWithLifecycle'),
241+
'Missing remediation escalation lifecycle annotator in src/server.ts'
242+
);
243+
assert(
244+
serverSource.includes('acknowledgeAgentWorkspaceDiagnosticsRemediationEscalation'),
245+
'Missing remediation escalation acknowledge helper in src/server.ts'
246+
);
211247
assert(
212248
serverSource.includes('requestAgentWorkspaceDiagnosticsRemediationApproval'),
213249
'Missing diagnostics remediation approval-request helper in src/server.ts'
@@ -262,14 +298,16 @@ function verifyAgentWorkspaceRuntime(repoRoot = path.resolve(__dirname, '..')) {
262298
'diagnostics remediation policy route exists',
263299
'diagnostics remediation policy drift route exists',
264300
'diagnostics remediation escalation route exists',
301+
'diagnostics remediation escalation acknowledgement routes exist',
265302
'diagnostics remediation approval routes exist',
266303
'diagnostics triage remediation route exists',
267304
'diagnostics retention governance exists',
268305
'diagnostics alert-threshold governance helpers exist',
269-
'diagnostics threshold simulation, drift, and remediation helpers exist',
306+
'diagnostics threshold simulation, drift, remediation, and escalation helpers exist',
270307
'diagnostics remediation policy and alarm helpers exist',
271308
'diagnostics threshold audit helpers exist',
272309
'diagnostics remediation approval trail helpers exist',
310+
'diagnostics remediation escalation lifecycle and audit helpers exist',
273311
'runtime diagnostics persistence surface exists',
274312
'agent workspace contract test suite passes',
275313
],

src/agent_workspace.verification.contract.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ describe('agent workspace verification script contracts', () => {
5858
expect(runtimeSource).toContain('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/policy');
5959
expect(runtimeSource).toContain('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/policy/drift');
6060
expect(runtimeSource).toContain('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation');
61+
expect(runtimeSource).toContain('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledgements');
62+
expect(runtimeSource).toContain('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/audit');
63+
expect(runtimeSource).toContain('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledge');
6164
expect(runtimeSource).toContain('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/approvals');
6265
expect(runtimeSource).toContain('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/approve');
6366
expect(runtimeSource).toContain('/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation');
@@ -73,6 +76,12 @@ describe('agent workspace verification script contracts', () => {
7376
expect(runtimeSource).toContain('normalizeAgentWorkspaceDiagnosticsRemediationDriftInspectLimit');
7477
expect(runtimeSource).toContain('buildAgentWorkspaceDiagnosticsRemediationPolicyDriftReport');
7578
expect(runtimeSource).toContain('buildAgentWorkspaceDiagnosticsRemediationEscalationActions');
79+
expect(runtimeSource).toContain('readAgentWorkspaceDiagnosticsRemediationEscalationLifecycleTrail');
80+
expect(runtimeSource).toContain('upsertAgentWorkspaceDiagnosticsRemediationEscalationLifecycleRecord');
81+
expect(runtimeSource).toContain('readAgentWorkspaceDiagnosticsRemediationEscalationAuditTrail');
82+
expect(runtimeSource).toContain('appendAgentWorkspaceDiagnosticsRemediationEscalationAuditEntry');
83+
expect(runtimeSource).toContain('annotateAgentWorkspaceDiagnosticsRemediationEscalationActionsWithLifecycle');
84+
expect(runtimeSource).toContain('acknowledgeAgentWorkspaceDiagnosticsRemediationEscalation');
7685
expect(runtimeSource).toContain('requestAgentWorkspaceDiagnosticsRemediationApproval');
7786
expect(runtimeSource).toContain('executeAgentWorkspaceDiagnosticsAutoRemediation');
7887
expect(runtimeSource).toContain('consumeAgentWorkspaceDiagnosticsRemediationApproval');

src/knowledge.api.contract.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ describe('Knowledge mastery API contract wiring', () => {
2222
'/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/policy',
2323
'/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/policy/drift',
2424
'/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation',
25+
'/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledgements',
26+
'/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/audit',
27+
'/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/escalation/acknowledge',
2528
'/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/approvals',
2629
'/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation/approve',
2730
'/api/knowledge/operator/agent-workspace-diagnostics/triage/remediation',

0 commit comments

Comments
 (0)