From f6d9feabfd0f9ce372b916530fa3be6374cc3b00 Mon Sep 17 00:00:00 2001 From: gaoruilin Date: Thu, 24 Sep 2026 07:25:48 +0800 Subject: [PATCH] feat: show evidence-only follow-up operations after failures --- README.md | 1 + README.zh-CN.md | 1 + claims.json | 12 +- docs/ROADMAP.md | 4 +- docs/diagnostics-verification.md | 12 + docs/diagnostics.md | 44 +++ docs/releases/v1.20.0.md | 34 ++ ...3T08-00-00-000Z_0199demo-diagnostics.jsonl | 2 + frontend/src/demo/fixtures.json | 82 ++++- .../src/views/sessions/RelatedOperations.tsx | 60 ++++ .../src/views/sessions/SessionDiagnostics.tsx | 4 + .../src/views/sessions/diagnostic-reviews.ts | 14 +- frontend/src/views/sessions/diagnostics.ts | 110 +++++- intent.md | 14 + package-lock.json | 4 +- package.json | 2 +- screenshots/follow-up-evidence.png | Bin 0 -> 242717 bytes scripts/demo-follow-up.cjs | 97 ++++++ test/diagnostic-events.test.js | 3 + test/follow-up-evidence.test.js | 317 ++++++++++++++++++ 20 files changed, 788 insertions(+), 29 deletions(-) create mode 100644 docs/releases/v1.20.0.md create mode 100644 frontend/src/views/sessions/RelatedOperations.tsx create mode 100644 screenshots/follow-up-evidence.png create mode 100644 scripts/demo-follow-up.cjs create mode 100644 test/follow-up-evidence.test.js diff --git a/README.md b/README.md index 0aa9017..b6bc643 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,7 @@ Rule of thumb: if you build and operate your own agent in production, use a trac - **Global search** — One search box across all seven platforms at once, multi-keyword AND matching, colored platform badges per hit — including prompts recovered from sessions that Claude Code's cleanup already deleted - **Session insights** — Aggregate analytics dashboard with tool stats, error clustering and daily trends - **Evidence-backed failure events (React UI)** — Groups unresolved failures by the same tool, complete arguments and call's user turn, with repeated operations first, first/last evidence jumps and every original result retained. Successful results split groups; missing arguments stay separate. Execution success requires an explicit zero exit code or OMP-native completion evidence. These are review groups, not root-cause diagnoses or proof of task failure. Local rules, no LLM. [Try the synthetic walkthrough and read the boundaries](docs/diagnostics.md). +- **Follow-up evidence candidates** — See later calls differing only in `i`, or same-turn modifications of the same explicitly identified file. Each has a result status, matching rationale and evidence jump; candidates never automatically resolve the failure. [Matching boundaries](docs/diagnostics.md#follow-up-evidence-candidates). - **Local review queue** — Record follow-up, expected-failure or alternative-verification notes in your browser. Evidence changes invalidate the old review; manual labels never rewrite automatic outcomes. No account or review backend. [Review workflow and storage limits](docs/diagnostics.md#local-review-workflow). - **Review portability** — Preview and download current-session review notes, then import only exact evidence matches into empty local slots. Existing notes are never overwritten; stale/unmatched records are skipped. JSON files are unencrypted and contain your written notes, not automatically copied logs. [Transfer limits](docs/diagnostics.md#transfer-reviews-between-browsers). - **Narrow-screen session workflow** — Below 768px, switch between the session list and full-width content without losing the current review draft; platform tabs scroll horizontally, and evidence jumps keep navigation visible. Desktop retains the two-column layout. [Scope and tested viewports](docs/diagnostics.md#narrow-screen-session-workflow). diff --git a/README.zh-CN.md b/README.zh-CN.md index 2597c67..cb11d14 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -55,6 +55,7 @@ LangSmith、Langfuse 这类观测平台面向的是*你自己写的* agent:接 ## 功能特性 - **有证据的失败事件(React UI)** — 将同一调用所在用户轮次、同工具、完整同参数的待复查失败分组,重复最多的操作优先展示;可跳转首末及每条原始证据。同参成功切断分组,缺少参数不合并。执行成功采用明确零退出码或 OMP 原生完成证据;事件不等于根因或任务失败。本地规则,无 LLM。[合成演示与判定边界](docs/diagnostics.md#中文使用指南)。 +- **后续相关操作** — 展示仅 `i` 参数不同的调用,以及同轮次、明确同文件的后续修改;标明关系依据、五类结果状态并可跳转证据。候选不自动关闭事件、不代表原问题已修复。[匹配边界](docs/diagnostics.md#后续相关操作)。 - **本机复核队列** — 用必填依据标记“需跟进”“预期失败”“其他验证已通过”,仅存当前浏览器;新证据使旧标记失效,人工判断不改写自动结果。无需账号或复核后端。[使用方式与存储边界](docs/diagnostics.md#本机复核闭环)。 - **复核迁移** — 预览并导出当前会话的有效复核,导入只接受完整证据匹配且本地为空的记录;不覆盖已有笔记,跳过过期或不匹配记录。明文 JSON 含手写依据,不自动复制日志。[迁移边界](docs/diagnostics.md#迁移复核记录)。 - **窄屏会话复核** — 小于 768px 时切换“会话列表 / 返回内容”,正文获得完整宽度,切换列表不清空当前复核草稿;平台栏横向滚动,证据跳转保留顶部导航,桌面继续双栏。[验收范围](docs/diagnostics.md#窄屏操作)。 diff --git a/claims.json b/claims.json index 17ffc6c..bf59505 100644 --- a/claims.json +++ b/claims.json @@ -102,16 +102,16 @@ }, { "id": "test-count", - "claim": "233 tests pass on Node's built-in test runner, the count docs/ROADMAP.md records for `npm test`.", - "value": "233", - "metric": "passing node:test cases (# tests 233 / # pass 233 / # fail 0)", - "method": "npm test → node --test test/*.test.js, run in the claims job after npm ci, and the TAP summary is asserted. The roadmap sentence ('233 tests on Node's built-in runner (`npm test`, 2026-09-23)') is verified by the run, not read back from the prose.", + "claim": "255 tests pass on Node's built-in test runner, the count docs/ROADMAP.md records for `npm test`.", + "value": "255", + "metric": "passing node:test cases (# tests 255 / # pass 255 / # fail 0)", + "method": "npm test → node --test test/*.test.js, run in the claims job after npm ci, and the TAP summary is asserted. The roadmap sentence ('255 tests on Node's built-in runner (`npm test`, 2026-09-23)') is verified by the run, not read back from the prose.", "repro": "npm test 2>&1 | grep -E '^# (tests|pass|fail)'", "evidence": "docs/ROADMAP.md", "as_of": "2026-09-13", "check": { "cmd": "npm test 2>&1 | grep -E '^# (tests|pass|fail)'", - "expect": { "contains": ["# tests 233", "# pass 233", "# fail 0"] }, + "expect": { "contains": ["# tests 255", "# pass 255", "# fail 0"] }, "timeout": 120 } }, @@ -238,7 +238,7 @@ "check": { "cmd": "node scripts/claims-receipts.mjs tests-node-only", "expect": { - "equals": "17 files in test/ · 14 distinct requires: 11 node builtins, 3 relative, 0 third-party" + "equals": "18 files in test/ · 14 distinct requires: 11 node builtins, 3 relative, 0 third-party" }, "timeout": 60 } diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 4c9894e..dc445a8 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -8,7 +8,7 @@ - **Session browser** with tool-call inspection, trace/waterfall view, spawn tracking and message timeline - **Prompt tooling** — extraction (noise filtered), template clustering with outcome attribution, Claude-powered rewrites, and a prompt library that installs entries as native slash commands - **Global search** across all platforms, insights dashboard, incremental session backup -- **React + Vite frontend** served by an Express backend; 233 tests on Node's built-in runner (`npm test`, 2026-09-23), CI on Node 22 +- **React + Vite frontend** served by an Express backend; 255 tests on Node's built-in runner (`npm test`, 2026-09-23), CI on Node 22 - **Evidence-backed failure events and local review** with full-result invalidation, evidence navigation and narrow-screen session layout ## Current priorities @@ -19,7 +19,7 @@ The product direction is **review the coding-agent sessions you already have, wi | --- | --- | --- | | P0 | Make the new workflow immediately testable | A demo-only entry opens a clearly synthetic case: 7 pending records in 2 events, all evidence accessible, local review does not rewrite automatic results. Preserve the existing default demo and samples. | | P1 | Current-session review portability implemented | Preview-only import and explicit plaintext download; exact identity/evidence matching, no overwrites, bounded schema and partial-failure reporting. Validate with synthetic migration and publish after CI; whole-history backup and path remapping remain out of scope. | -| P2 | Validate daily usefulness with the maintainer's own sessions | Record reviewed/follow-up/expected/alternative-verification counts and timed review tasks using a fixed rubric. Keep measurements local, separate unknowns and stale labels, and publish only consented aggregate evidence. Do not infer precision or time saved from event compression. | +| P2 | Explain what happened after a failure, then measure usefulness | Show only-i and same-turn/same-file follow-up candidates with explicit status and evidence, never automatic recovery. Validate unchanged diagnostic outcomes on frozen logs. Then measure owner review tasks using a fixed rubric; separate unknowns and stale labels, and do not infer precision or time saved from candidate counts. | | P3 | Make releases reproducible for contributors | Keep clean-install tests, generated fixtures, documentation claims and release/package verification aligned. Add browser regression automation when it can run deterministically without personal logs. | No launch dates or star-count targets are promised. Progress is gated on these observable outcomes. Physical-device/keyboard coverage and complex Trace/analytics layouts remain separate work, not implied by the session-screen checks. diff --git a/docs/diagnostics-verification.md b/docs/diagnostics-verification.md index 94ecc64..742133c 100644 --- a/docs/diagnostics-verification.md +++ b/docs/diagnostics-verification.md @@ -83,3 +83,15 @@ Verified using synthetic notes and isolated browser contexts only: - Browser migration sent zero backend write requests; automatic failure/recovery counts remained unchanged. At 360px, the transfer panel had no horizontal overflow. This does not verify real-device file pickers, simultaneous cross-tab transaction safety or actual productivity gains. The file is unencrypted human text, not signed evidence; only current exact matches can be restored. Detailed local run artifacts remain ignored and are not published. + +## Follow-up evidence acceptance + +The follow-up increment adds evidence-only relationships, not automatic recovery. There are 22 new tests in `test/follow-up-evidence.test.js`, 125 combined diagnostic/review tests, and 255 tests in the full suite. The ordinary and hosted-demo UI builds pass; earlier counts above are historical release receipts. + +Synthetic tests cover all five candidate states, only-top-level-`i` differences, complete argument comparison, exact tools, same-turn edit/write paths, explicit relative-path directories, missing/ambiguous fields, pre-existing parallel calls, missing results, call-turn vs result-turn, deduplication, full candidate output in review fingerprints, and unchanged exact-match recovery. The scripted demo `node scripts/demo-follow-up.cjs` exercises seven only-`i` candidates, one same-file candidate and excluded file/turn counterexamples. The browser checked all five labels, five-item initial display plus loading the rest, original result jumps, no page-navigation movement, stale review on newly appended candidate and no narrow-screen overflow. + +A fixed, previously inspected set of 15 real sessions (five each from OMP, Codex and Claude Code) with 2,024 tool results was re-read by frozen-length/hash verification. Automatic results stayed at **142 failures, 141 pending records, 76 events and 1 recovered record**, including unchanged event members. An independent relation enumeration agreed with every candidate. It found **3 only-`i` candidates in OMP: one failure, one running result and one success**; Codex/Claude had none under these strict rules. No same-file relation qualified in this set: relevant observed paths lacked explicit absolute context or the calls belonged to later user turns. The code did not weaken criteria to inflate matches. + +Storage keys stayed stable. Only the three events with added candidates acquired new review fingerprints; no-candidate events retained their previous fingerprint contract. No real review labels were persisted. Raw logs, parameters and detailed sample identifiers remain private; the regression is not an independent benchmark, global accuracy estimate or time-saving measurement. + +The hosted synthetic sample now includes one later successful edit of the same absolute file path with different arguments. It remains **2 events / 7 pending records / 1 recovered record**. Browser checks verified the relation caveat, source result, desktop/mobile rendering and zero static-demo API requests. diff --git a/docs/diagnostics.md b/docs/diagnostics.md index 52262fe..2c6bdb9 100644 --- a/docs/diagnostics.md +++ b/docs/diagnostics.md @@ -32,6 +32,37 @@ Run `npm start` from the built checkout. Select a session and open its **消息* Start with repeated operations, open the latest failure, and inspect the surrounding calls. A card is a reason to review the transcript—not an instruction to rerun a possibly destructive command. Equivalent commands, alternate verification and external fixes still require your judgment. +## Follow-up evidence candidates + +When a failure event has matching later operations, expand **后续相关操作**. These are leads for your review, **not automatic recovery or proof that the original task passed**. Each candidate shows its relationship, call/result message positions, call's user turn, tool outcome and source evidence, arguments, and a jump to the original result. Five are shown initially; the rest can be loaded without filtering out unsuccessful results. + +Two relationships are supported: + +| Relationship | Required evidence | Not inferred | +| --- | --- | --- | +| Only top-level `i` differs | Same exact tool, equal non-empty remaining arguments, but different full arguments. Object key order is ignored; values and array order are retained. May cross user turns within this transcript. | That `i` is semantically irrelevant, or that the later call fixes the earlier problem. | +| Same-file modification | Explicit `edit`, `Edit`, `write`, `Write` or `MultiEdit` calls, same call-origin user turn, changed parameters, and the same literal `path`/`file_path` plus recorded working-directory fields. | Paths hidden in shell commands/patches, different turns, symlinks, path normalization, or implicit directory changes. | + +Both require a recorded result and a call started **after the event's last pending failure**. Results from pre-existing parallel calls, orphan results, missing arguments and calls without results are excluded. Same-file matching requires absolute paths, or identical explicit absolute `cwd`/`workdir`/`working_directory` for relative paths; ambiguous fields are rejected. Different directory field names are not treated as aliases. + +Status labels distinguish **success (tool result), failure, running, cancelled/stopped and unknown**. Source fields are shown, not inferred from optimistic prose. A running background job is not success. Platform adapters and automatic failure/recovery matching remain unchanged, including preserving `i` in automatic retry comparison. A same-file edit that returned success may have changed something else entirely. + +New or changed candidate evidence requires human review again: the event's storage key remains stable, but the review fingerprint includes complete candidate results and arguments. Existing notes become stale only for affected events; events without candidates retain their old fingerprint contract. Review-transfer files still contain only hashes and handwritten notes, not raw candidate logs. + +### Try all five states locally + +From a built source checkout: + +```sh +node scripts/demo-follow-up.cjs +``` + +Select its OMP `[Synthetic]` session. The first bash failure has seven only-`i` candidates covering the five outcome states; an edit failure has one same-file candidate. An unrelated file and a different user turn are excluded. **Three automatic failure events remain**, even when a candidate is successful. Save a review and type `n` in the terminal to append another candidate: that review becomes stale, without changing automatic failure/recovery counts. Type `q` or Ctrl-C to stop the isolated demo. + +The hosted **Try diagnostics** sample also includes a successful same-file edit with changed arguments. Its existing seven pending failure records and two events do not disappear. Both demos are synthetic; no logged command is executed. + +![Synthetic follow-up evidence](../screenshots/follow-up-evidence.png) + ## Local review workflow The automatic result and your judgment are separate. The header always reports automatic events and pending failure records. The review filters show which of those events you have inspected: @@ -122,6 +153,7 @@ These checks cover navigation, session messages and the review workflow—not co node --test test/diagnostic-events.test.js test/diagnostics.test.js test/omp-outcome.test.js node --test test/diagnostic-reviews.test.js node --test test/review-transfer.test.js +node --test test/follow-up-evidence.test.js npm test npm run build:ui npm run lint @@ -181,6 +213,18 @@ The local frozen regression set contained 30 sessions and 9,076 tool results. Gr 本轮的 373 个真实冻结事件只使用**内存中的合成测试标记**检验隔离与失效,没有替你判断真实事件,也没有把这些测试标记写成真实复核。完整证据见 [本机复核验收](diagnostics-verification.md)。 +## 后续相关操作 + +失败事件下若有候选,可展开“后续相关操作”,查看匹配依据、五类状态、调用/结果位置、参数摘要及原始结果。**它不自动关闭事件,不代表任务已通过。** + +- “仅 i 不同”:同工具,只有顶层 `i` 不同,其余完整参数相同,可跨当前会话内的用户轮次;不等于认定 `i` 无语义影响。 +- “同文件修改”:仅限明确 edit/write/MultiEdit 工具、同调用轮次、相同记录路径及显式工作目录;允许不同修改参数,不推断它们是同一修复。 +- 都必须在事件最后一次失败之后发起且已有结果。此前已启动的并行调用、无结果、缺参数、孤立结果不参与。 +- 相对路径必须有相同的显式绝对工作目录;没有就不猜。不同字段名、隐式 cwd、软链、跨轮次修改、命令里的文件名都不自动关联。 +- 成功、失败、执行中、取消、未知均有标签和字段依据。候选新增或变化会使受影响旧复核过期;不会改变自动失败/恢复计数,也不会把原始日志加入迁移文件。 + +源码运行 `node scripts/demo-follow-up.cjs` 可体验五类状态、无关文件反例和实时追加候选。页面里保存复核后,终端输入 `n` 验证重审;`q` 退出。在线 Demo 的合成诊断案例也有一条同文件成功修改,但仍保留原来的失败事件。 + ## 窄屏操作 - 小于 768px 时,点击“会话列表”进入导航,选择当前或其他会话后返回正文;“返回内容”或 Escape 也可关闭列表。桌面仍是双栏。 diff --git a/docs/releases/v1.20.0.md b/docs/releases/v1.20.0.md new file mode 100644 index 0000000..34e2946 --- /dev/null +++ b/docs/releases/v1.20.0.md @@ -0,0 +1,34 @@ +# v1.20.0 — Follow the evidence after a failure + +Failure events now show **later related operations** so you can review what happened next without treating every successful-looking result as a fix. + +## New + +- **Only-`i` candidates:** the same exact tool with only top-level `i` differing and every other argument preserved. +- **Same-file candidates:** explicit edit/write tools targeting the same recorded file and directory context in the same call-origin user turn, with changed parameters. +- **Five result states:** success (tool result), failure, running, cancelled/stopped and unknown, with field-source evidence and a jump to the original result. No success-only filtering; load all candidates. +- **Review freshness:** adding or changing candidate evidence makes affected human reviews stale. Unaffected events retain their fingerprint contract; storage keys remain stable. +- **Try it:** the hosted diagnostics sample includes a same-file follow-up edit. A source checkout also provides `node scripts/demo-follow-up.cjs` for all five states and live candidate append. + +## Important boundaries + +Candidates **do not close failure events or prove task correctness**. They must have a recorded result and a call started after the event's last pending failure. Existing automatic failure/recovery matching—including `i`—is unchanged. + +Same-file matching does not guess implicit working directories, normalize paths, inspect patch/shell text or link across user turns. Relative paths need identical explicit absolute directory information. Only-`i` candidates may cross turns within the viewed transcript, but the tool/remaining arguments must match exactly. + +Old human notes on events that gain candidates require re-review. Notes on events without candidates are unaffected. Exported reviews still contain hashes and human notes, not raw candidate logs. No new model calls, dependencies, backend endpoints or uploads. + +## Validation + +- 255 Node tests passed, including 22 new candidate tests and 125 focused diagnostic/review tests. +- Normal/demo builds and lint passed with existing findings unchanged; generated fixture parity and claims checks pass. +- Frozen real-log regression preserved 142 failures, 141 pending records, 76 events and 1 recovery across 15 sessions / 2,024 tool results. Three strict candidates were found: one failed, one running, one successful. This is not an accuracy or productivity benchmark. +- Synthetic browser tests cover all states, full candidate access, original evidence jumps, stale reviews after append and narrow-screen layout. + +[Usage and limits](https://github.com/alloevil/AgentXRay/blob/master/docs/diagnostics.md#follow-up-evidence-candidates) · [Verification receipt](https://github.com/alloevil/AgentXRay/blob/master/docs/diagnostics-verification.md) + +```sh +npx @alloevil/agent-xray@1.20.0 +``` + +Requires Node 22.13+ (22.15+ for compressed DeepSeek Harness logs). diff --git a/frontend/demo/sample-logs/omp/-demo-diagnostics/2026-09-23T08-00-00-000Z_0199demo-diagnostics.jsonl b/frontend/demo/sample-logs/omp/-demo-diagnostics/2026-09-23T08-00-00-000Z_0199demo-diagnostics.jsonl index 94a1105..decadd5 100644 --- a/frontend/demo/sample-logs/omp/-demo-diagnostics/2026-09-23T08-00-00-000Z_0199demo-diagnostics.jsonl +++ b/frontend/demo/sample-logs/omp/-demo-diagnostics/2026-09-23T08-00-00-000Z_0199demo-diagnostics.jsonl @@ -22,3 +22,5 @@ {"type":"message","id":"demo-background-call","timestamp":"2026-09-23T08:01:10.000Z","message":{"role":"assistant","content":[{"type":"toolCall","id":"demo-background","name":"bash","arguments":{"command":"npm run verify-config","cwd":"/demo/diagnostics","async":true}}]}} {"type":"message","id":"demo-background-result","timestamp":"2026-09-23T08:01:11.000Z","message":{"role":"toolResult","toolCallId":"demo-background","toolName":"bash","isError":false,"details":{"async":{"state":"running","jobId":"synthetic-background"}},"content":[{"type":"text","text":"Synthetic verification was backgrounded. There is no completion result in this sample."}]}} {"type":"message","id":"demo-review-summary","timestamp":"2026-09-23T08:01:12.000Z","message":{"role":"assistant","content":[{"type":"text","text":"Synthetic review exercise: inspect the six edit results and the search error, then record a follow-up note with evidence. The earlier test success does not validate the edits; a running background job is not a success. This static sample does not append live results."}]}} +{"type":"message","id":"demo-related-edit-call","timestamp":"2026-09-23T08:01:15.000Z","message":{"role":"assistant","content":[{"type":"toolCall","id":"demo-related-edit","name":"edit","arguments":{"path":"/demo/diagnostics/config.ts","oldText":"timeout: 15","newText":"timeout: 30"}}]}} +{"type":"message","id":"demo-related-edit-result","timestamp":"2026-09-23T08:01:16.000Z","message":{"role":"toolResult","toolCallId":"demo-related-edit","toolName":"edit","isError":false,"content":[{"type":"text","text":"Synthetic edit completed with a different oldText argument. The file path matches the failed edits, but this is only a related operation, not proof that the original task passed."}]}} diff --git a/frontend/src/demo/fixtures.json b/frontend/src/demo/fixtures.json index a13e65e..ccba545 100644 --- a/frontend/src/demo/fixtures.json +++ b/frontend/src/demo/fixtures.json @@ -95,16 +95,16 @@ { "id": "0199demo-diagnostics", "timestamp": "2026-09-23T08:00:00.000Z", - "lastActivity": "2026-09-23T08:01:12.000Z", - "messageCount": 22, + "lastActivity": "2026-09-23T08:01:16.000Z", + "messageCount": 24, "userCount": 1, - "assistantCount": 11, - "toolCallCount": 10, - "toolResultCount": 10, + "assistantCount": 12, + "toolCallCount": 11, + "toolResultCount": 11, "topTools": [ { "name": "edit", - "count": 6 + "count": 7 }, { "name": "bash", @@ -1659,6 +1659,62 @@ "toolName": null, "details": null, "isError": false + }, + { + "id": "demo-related-edit-call", + "timestamp": "2026-09-23T08:01:15.000Z", + "role": "assistant", + "content": [], + "usage": null, + "model": null, + "provider": null, + "toolCallId": null, + "toolName": null, + "details": null, + "isError": false + }, + { + "id": "demo-related-edit", + "timestamp": "2026-09-23T08:01:15.000Z", + "role": "toolCall", + "content": [], + "usage": null, + "model": null, + "provider": null, + "toolCallId": "demo-related-edit", + "toolName": "edit", + "details": { + "path": "/demo/diagnostics/config.ts", + "oldText": "timeout: 15", + "newText": "timeout: 30" + }, + "isError": false + }, + { + "id": "demo-related-edit-result", + "timestamp": "2026-09-23T08:01:16.000Z", + "role": "toolResult", + "content": [ + { + "type": "text", + "text": "Synthetic edit completed with a different oldText argument. The file path matches the failed edits, but this is only a related operation, not proof that the original task passed." + } + ], + "usage": null, + "model": null, + "provider": null, + "toolCallId": "demo-related-edit", + "toolName": "edit", + "details": null, + "isError": false, + "ompOutcome": { + "state": "success", + "evidence": [ + "isError=false", + "content (tool result, not task acceptance)" + ], + "warnings": [] + } } ] }, @@ -2299,9 +2355,9 @@ }, "omp": { "totalSessions": 2, - "totalMessages": 32, - "totalToolCalls": 15, - "errorRate": 0.4667, + "totalMessages": 34, + "totalToolCalls": 16, + "errorRate": 0.4375, "totalCost": 0, "tokenUsage": { "input": 13000, @@ -2311,9 +2367,9 @@ "toolStats": [ { "name": "edit", - "calls": 8, + "calls": 9, "errors": 6, - "errorRate": 0.75, + "errorRate": 0.6666666666666666, "avgDurationMs": 0 }, { @@ -2450,7 +2506,7 @@ "date": "2026-09-23", "sessions": 1, "errors": 7, - "toolCalls": 10, + "toolCalls": 11, "cost": 0 } ] @@ -2571,7 +2627,7 @@ "id": "0199demo-diagnostics", "file": "2026-09-23T08-00-00-000Z_0199demo-diagnostics.jsonl", "timestamp": "2026-09-23T08:00:00.000Z", - "lastActivity": "2026-09-23T08:01:12.000Z", + "lastActivity": "2026-09-23T08:01:16.000Z", "slug": null, "title": "[Synthetic] Failure review: 7 records → 2 events", "promptCount": 1, diff --git a/frontend/src/views/sessions/RelatedOperations.tsx b/frontend/src/views/sessions/RelatedOperations.tsx new file mode 100644 index 0000000..bce5fb5 --- /dev/null +++ b/frontend/src/views/sessions/RelatedOperations.tsx @@ -0,0 +1,60 @@ +import { useState } from 'react'; +import type { RelatedOperation } from './diagnostics'; +import { formatDate, messageAnchorId } from './lib'; + +const STATES = { + success: '成功(工具结果)', failure: '失败', running: '执行中', cancelled: '取消 / 停止', unknown: '未知', +}; +const COLORS = { + success: 'text-emerald-400', failure: 'text-destructive', running: 'text-amber-500', + cancelled: 'text-muted-foreground', unknown: 'text-muted-foreground', +}; + +export function RelatedOperations({ operations, onJump }: { + operations: RelatedOperation[]; + onJump: (id: string) => void; +}) { + const [visible, setVisible] = useState(5); + return ( +
+ 后续相关操作 · {operations.length} 条候选(非恢复结论) +

+ 这些调用在本事件最后一次失败之后发起;仅按记录参数关联,未执行新的验证。成功只描述该工具结果,不证明原问题已修复。 +

+
    + {operations.slice(0, visible).map((operation) => { + const anchor = messageAnchorId(operation.message); + return ( +
  1. +
    + {operation.toolName} + {STATES[operation.state]} +
    +

    + {operation.relation === 'only-i' + ? '关联依据:同工具,只有顶层 i 参数不同,其余参数完全一致。' + : '关联依据:同一调用轮次、相同记录文件路径及显式目录信息;修改参数不同,不代表同一修复。'} +

    +

    + {operation.userTurn ? `第 ${operation.userTurn} 个用户轮次` : '首个用户消息之前'} · {formatDate(operation.message.timestamp)} + {' · '}调用消息 #{operation.callIndex + 1} → 结果消息 #{operation.index + 1} +

    +

    + {operation.argumentsText.slice(0, 240)}{operation.argumentsText.length > 240 ? '…' : ''} +

    +
    {operation.evidence}
    + {anchor ? ( + + ) :

    日志缺少定位标识

    } +
  2. + ); + })} +
+ {visible < operations.length ? ( + + ) : null} +
+ ); +} diff --git a/frontend/src/views/sessions/SessionDiagnostics.tsx b/frontend/src/views/sessions/SessionDiagnostics.tsx index 2abb461..42f043a 100644 --- a/frontend/src/views/sessions/SessionDiagnostics.tsx +++ b/frontend/src/views/sessions/SessionDiagnostics.tsx @@ -4,6 +4,7 @@ import { diagnoseSession, type FailureDiagnostic, type FailureEvent } from './di import { formatDate, messageAnchorId } from './lib'; import { DiagnosticReview, useEventReviews } from './DiagnosticReview'; import { ReviewTransferPanel } from './ReviewTransferPanel'; +import { RelatedOperations } from './RelatedOperations'; import { REVIEW_LABELS, reviewState, type EventReview, type ReviewState, type ReviewStatus } from './diagnostic-reviews'; const REASONS = { @@ -96,6 +97,7 @@ function EventCard({ event, onJump, review, ready, onReview }: { ))} ) : null} + {event.relatedOperations.length ? : null} @@ -132,6 +134,8 @@ export function SessionDiagnostics({ messages, onScrollToMessage, reviewScope }: 错误内容可能不同,也可能包含并行调用;分组不代表相同根因或串行重试。时间跨度不是执行耗时或浪费时间。 恢复仍只匹配失败之后发起的同参成功调用,不限定用户轮次。命令执行须有明确零退出码,OMP 也采用原生完成字段; 执行中、取消和未知状态不算成功,其他工具须有未报错结果。不推断等价命令、隐式工作目录或后台任务关联。 + 后续候选只按“仅 i 不同”或“同轮次同文件的编辑/写入”关联;相对路径缺少明确绝对工作目录不匹配, + 无结果或在最后一次失败之前发起的调用不列入。候选不关闭事件,新增或变化的候选证据会使旧人工复核过期。

diff --git a/frontend/src/views/sessions/diagnostic-reviews.ts b/frontend/src/views/sessions/diagnostic-reviews.ts index 96c3fd8..153cc81 100644 --- a/frontend/src/views/sessions/diagnostic-reviews.ts +++ b/frontend/src/views/sessions/diagnostic-reviews.ts @@ -48,11 +48,19 @@ export async function createReviewIdentity(scope: string, event: FailureEvent): } const first = event.failures[0]; const identity = [scope, event.toolName, args, event.userTurn, first.index, first.message.id, first.message.toolCallId]; + const evidence: unknown[] = [1, identity, event.failures.map((failure) => ({ + index: failure.index, reason: failure.reason, message: failure.message, + }))]; + if (event.relatedOperations?.length) { + evidence.push(event.relatedOperations.map((operation) => ({ + index: operation.index, callIndex: operation.callIndex, userTurn: operation.userTurn, + relation: operation.relation, state: operation.state, toolName: operation.toolName, + argumentsText: operation.argumentsText, message: operation.message, + }))); + } const [key, fingerprint] = await Promise.all([ digest(identity), - digest([1, identity, event.failures.map((failure) => ({ - index: failure.index, reason: failure.reason, message: failure.message, - }))]), + digest(evidence), ]); return { storageKey: `${REVIEW_PREFIX}${key}`, fingerprint }; } diff --git a/frontend/src/views/sessions/diagnostics.ts b/frontend/src/views/sessions/diagnostics.ts index 64969bc..ed7b626 100644 --- a/frontend/src/views/sessions/diagnostics.ts +++ b/frontend/src/views/sessions/diagnostics.ts @@ -8,6 +8,8 @@ interface RecordedCall { key: string | null; index: number; userTurn: number; + onlyIKey: string | null; + fileKey: string | null; } export interface FailureDiagnostic { @@ -26,6 +28,25 @@ export interface FailureEvent { userTurn: number; failures: FailureDiagnostic[]; spanMs: number | null; + relatedOperations: RelatedOperation[]; +} + +export interface RelatedOperation { + message: SessionMessage; + index: number; + callIndex: number; + userTurn: number; + toolName: string; + argumentsText: string; + relation: 'only-i' | 'same-file'; + state: 'success' | 'failure' | 'running' | 'cancelled' | 'unknown'; + evidence: string; +} + +interface RecordedResult { + message: SessionMessage; + index: number; + call: RecordedCall; } function eventSpan(failures: FailureDiagnostic[]): number | null { @@ -93,6 +114,55 @@ function outcome(result: SessionMessage, call: RecordedCall | undefined): Outcom return result.isError === false && result.content !== null ? 'success' : 'unknown'; } +function argumentObject(value: unknown): Record | null { + return value !== null && typeof value === 'object' && !Array.isArray(value) ? value as Record : null; +} + +function onlyIKey(name: string, args: unknown): string | null { + const object = argumentObject(args); + if (!object) return null; + const entries = Object.entries(object).filter(([key]) => key !== 'i'); + return entries.length ? JSON.stringify([name, ordered(Object.fromEntries(entries))]) : null; +} + +function fileKey(name: string, args: unknown): string | null { + if (!['edit', 'Edit', 'write', 'Write', 'MultiEdit'].includes(name)) return null; + const object = argumentObject(args); + if (!object) return null; + const paths = ['path', 'file_path'].filter((key) => key in object).map((key) => object[key]); + if (!paths.length || paths.some((value) => typeof value !== 'string' || !value || value !== paths[0])) return null; + const filename = paths[0] as string; + const directories = ['cwd', 'workdir', 'working_directory'].filter((key) => key in object).map((key) => [key, object[key]]); + if (directories.some(([, value]) => typeof value !== 'string' || !value)) return null; + if (new Set(directories.map(([, value]) => value)).size > 1) return null; + const absolute = (value: string) => /^(?:\/|[A-Za-z]:[\\/]|\\\\)/.test(value); + if (!absolute(filename) && (!directories.length || !absolute(directories[0][1] as string))) return null; + return JSON.stringify([filename, directories]); +} + +function relatedState(message: SessionMessage, call: RecordedCall): RelatedOperation['state'] { + if (message.ompOutcome) return message.ompOutcome.state; + const code = exitCode(message, call); + if (message.isError === true || (code !== null && code !== 0)) return 'failure'; + if (['running', 'pending', 'in_progress'].includes(String(message.details?.status))) return 'running'; + if (['cancelled', 'canceled'].includes(String(message.details?.status))) return 'cancelled'; + if (message.details?.status != null && !['ok', 'success', 'complete', 'completed'].includes(String(message.details.status))) return 'unknown'; + return outcome(message, call); +} + +function relatedEvidence(message: SessionMessage, call: RecordedCall, state: RelatedOperation['state']): string { + const code = exitCode(message, call); + const sources = message.ompOutcome?.evidence || [ + ...(message.isError ? ['日志标记 isError=true'] : []), + ...(code !== null ? [`退出码 ${code}`] : []), + ...(state === 'running' ? [`details.status=${message.details?.status}`] : []), + ...(state === 'cancelled' ? [`details.status=${message.details?.status}`] : []), + ...(code === null && state === 'success' ? ['isError=false;工具结果未报错(不等于任务通过)'] : []), + ...(state === 'unknown' ? ['缺少明确完成状态'] : []), + ]; + return [...sources, resultText(message)].join('\n').slice(0, 500); +} + export function diagnoseSession(messages: SessionMessage[]) { const calls = new Map(); const unresolved = new Map(); @@ -100,13 +170,17 @@ export function diagnoseSession(messages: SessionMessage[]) { const recovered = new Set(); const eventKeys = new Map(); const generations = new Map(); + const failureCalls = new Map(); + const resultsByI = new Map(); + const resultsByFile = new Map(); let userTurn = 0; function recordCall(id: string | null | undefined, name: string | null | undefined, value: unknown, index: number) { if (!id) return; const args = parseArguments(value); const key = name && args !== null && args !== undefined ? JSON.stringify([name, ordered(args)]) : null; - calls.set(id, { name: name || '未知工具', args, key, index, userTurn }); + calls.set(id, { name: name || '未知工具', args, key, index, userTurn, + onlyIKey: name ? onlyIKey(name, args) : null, fileKey: name ? fileKey(name, args) : null }); if (key) { for (const failure of unresolved.get(key) || []) { if (index > failure.index) failure.reason = 'unconfirmed-retry'; @@ -126,6 +200,15 @@ export function diagnoseSession(messages: SessionMessage[]) { } if (message.role !== 'toolResult') return; const call = message.toolCallId ? calls.get(message.toolCallId) : undefined; + if (call?.key) { + const recorded = { message, index, call }; + for (const [key, bucket] of [[call.onlyIKey, resultsByI], [call.fileKey, resultsByFile]] as const) { + if (!key) continue; + const list = bucket.get(key) || []; + list.push(recorded); + bucket.set(key, list); + } + } const result = outcome(message, call); if (result === 'failure') { const code = exitCode(message, call); @@ -143,6 +226,7 @@ export function diagnoseSession(messages: SessionMessage[]) { reason: call?.key ? 'no-success' : 'missing-call', }; failures.push(failure); + if (call?.key) failureCalls.set(failure, call); eventKeys.set(failure, { key: call?.key ? JSON.stringify([call.userTurn, call.key, generations.get(call.key) || 0]) : `orphan-${index}`, userTurn: call?.userTurn ?? userTurn, @@ -177,11 +261,33 @@ export function diagnoseSession(messages: SessionMessage[]) { userTurn: group.userTurn, failures: [failure], spanMs: null, + relatedOperations: [], }); } } const events = [...grouped.values()]; - for (const event of events) event.spanMs = eventSpan(event.failures); + for (const event of events) { + event.spanMs = eventSpan(event.failures); + const latest = event.failures[event.failures.length - 1]; + const original = failureCalls.get(latest); + if (!original) continue; + const candidates = new Map(); + const buckets = [ + ['only-i', original.onlyIKey ? resultsByI.get(original.onlyIKey) : undefined], + ['same-file', original.fileKey ? resultsByFile.get(original.fileKey) : undefined], + ] as const; + for (const [relation, results] of buckets) { + for (const { message, index, call: subsequent } of results || []) { + if (subsequent.index <= latest.index || subsequent.key === original.key || candidates.has(index)) continue; + if (relation === 'same-file' && subsequent.userTurn !== original.userTurn) continue; + const state = relatedState(message, subsequent); + candidates.set(index, { message, index, callIndex: subsequent.index, userTurn: subsequent.userTurn, + toolName: subsequent.name, argumentsText: JSON.stringify(subsequent.args), relation, state, + evidence: relatedEvidence(message, subsequent, state) }); + } + } + event.relatedOperations = [...candidates.values()].sort((left, right) => left.index - right.index); + } events.sort((left, right) => right.failures.length - left.failures.length || left.failures[0].index - right.failures[0].index); return { diff --git a/intent.md b/intent.md index c91854b..affec28 100644 --- a/intent.md +++ b/intent.md @@ -58,6 +58,20 @@ Hosted walkthrough acceptance: 216 tests pass, including raw-to-bundled fixture Portability acceptance: 17 new transfer tests and 103 focused tests pass. Browser tests exercised an actual 2-record download/import into an isolated browser, a different-origin restore, stale and cross-tab preview invalidation, no-overwrite conflicts, schema/size rejection, literal HTML notes and partial write failure/retry. Prepare v1.19.0 and verify the actual registry package and Pages deployment after protected checks, without mutating the prior v1.18.0 release. +## Follow-up evidence candidates (approved 2026-09-24) + +- Add two explainable candidate relations, not semantic recovery: same tool with only top-level `i` differing; or a later explicit edit/write of the same recorded file in the same call-origin user turn. +- Candidates must have a recorded result and a call started after the event's last pending failure. Exclude pre-existing parallel calls, same-signature repeats, orphan/missing arguments and unrecognized modification tools. Record order, not wall-clock guessing, determines "later". +- Same-file tools are `edit`, `Edit`, `write`, `Write`, `MultiEdit`; support `path`/`file_path` only when unambiguous. Compare paths literally; require absolute paths or identical explicit absolute working directories for relative paths. Preserve cwd/workdir/working_directory distinctions. No filesystem resolution, symlink guessing, command parsing, cross-turn same-file links or cross-session/child joins. +- Only-i candidates may cross user turns within the currently viewed transcript; label their call turn. Compare every other argument value, not just a text preview. Do not strip `i` from the original automatic recovery rules. +- Each candidate shows the exact relation, call/result positions, five-state result status with its source fields, an output excerpt and a jump to the original result. Running/unknown/cancelled never display as successful verification. Show five initially, with all remaining candidates reachable and no silent success-only filtering. +- Failure/event/recovery counts and event membership must remain byte-for-byte equivalent on the frozen 15-session/2,024-result audit. Candidate success does not close an event, prove causality or certify the task. +- New/changed candidate evidence invalidates human review fingerprints for affected events; storage keys remain stable. Events with no candidates retain the previous fingerprint input to avoid unrelated invalidation. Transfer still contains only hashes and human notes, not raw candidate evidence. +- Validate synthetic counterexamples and the frozen real-log prefixes; preserve raw logs privately, output only sample numbers, relation/status counts and line numbers. Real data previously inspected is regression evidence, not a blind accuracy or time-saving benchmark. +- Update the isolated walkthrough and documentation. Do not introduce dependencies, model calls, new APIs, automatic commands, arbitrary error parsing, or change platform adapters. + +Acceptance results: 255 tests and 125 focused checks pass. The frozen 15-session/2,024-result regression retains every original failure/event member and all counts. Strict matching finds three only-i candidates (failure/running/success); no same-file candidate qualifies in that real set because paths lack explicit directory context or turns differ. Synthetic same-file and five-state browser checks, load-more, result jumps and candidate-triggered review staleness pass. Prepare v1.20.0 via the authorized protected PR/release workflow, verify registry installation and public Pages before claiming release completion; do not publish private logs or raw evaluation artifacts. + ## Non-goals - No new platform, dependency, model call, account, telemetry, cloud log storage or automatic command execution. diff --git a/package-lock.json b/package-lock.json index fb2b321..14cd0b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@alloevil/agent-xray", - "version": "1.19.0", + "version": "1.20.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@alloevil/agent-xray", - "version": "1.19.0", + "version": "1.20.0", "license": "MIT", "dependencies": { "express": "^4.21.2" diff --git a/package.json b/package.json index beeb021..5c3c83e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@alloevil/agent-xray", - "version": "1.19.0", + "version": "1.20.0", "description": "Web dashboard for viewing AI agent session logs — supports OpenClaw, Codex, Claude Code, Hermes, OMP, DeepSeek Harness, and Gemini CLI", "main": "server.js", "bin": { diff --git a/screenshots/follow-up-evidence.png b/screenshots/follow-up-evidence.png new file mode 100644 index 0000000000000000000000000000000000000000..943d861c3611459a6270c9aa4c20a4e7d132c25b GIT binary patch literal 242717 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

p) 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 *>z7@AjSyPEhxcm2+y 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 a!_4rHH|(@UNQE<~3+(CY=d#Wzp$P!x!vbgk literal 0 HcmV?d00001 diff --git a/scripts/demo-follow-up.cjs b/scripts/demo-follow-up.cjs new file mode 100644 index 0000000..74641a6 --- /dev/null +++ b/scripts/demo-follow-up.cjs @@ -0,0 +1,97 @@ +const fs = require('node:fs/promises'); +const path = require('node:path'); +const readline = require('node:readline'); +const { startServer } = require('../test/helpers'); + +async function main() { + const server = await startServer(); + const directory = path.join(server.home, '.omp/agent/sessions/synthetic-follow-up'); + const id = '01990000-0000-7000-8000-000000000177'; + const file = path.join(directory, `2026-09-24T08-00-00_${id}.jsonl`); + let tick = 0; + const stamp = () => new Date(Date.UTC(2026, 8, 24, 8) + tick++ * 1000).toISOString(); + const message = (recordId, payload) => ({ type: 'message', id: recordId, timestamp: stamp(), message: payload }); + const operation = (callId, name, args, state) => [ + message(`${callId}-call`, { + role: 'assistant', + content: [{ type: 'toolCall', id: callId, name, arguments: args }], + }), + message(`${callId}-result`, { + role: 'toolResult', + toolCallId: callId, + toolName: name, + isError: state === 'failure', + details: + state === 'running' || state === 'cancelled' + ? { async: { state } } + : state === 'unknown' + ? {} + : { exitCode: state === 'success' ? 0 : 1, wallTimeMs: 10 }, + content: [{ type: 'text', text: `Synthetic ${state} result for ${callId}. Nothing was executed.` }], + }), + ]; + const bashArgs = { command: 'synthetic test', i: 'initial' }; + const editArgs = { path: '/synthetic/config.ts', oldText: 'before', newText: 'after' }; + const records = [ + { type: 'session', id, timestamp: stamp(), cwd: '/synthetic/project' }, + message('synthetic-user', { + role: 'user', + content: [{ type: 'text', text: '[Synthetic] 后续相关操作:候选不等于恢复' }], + }), + ...operation('failed-bash', 'bash', bashArgs, 'failure'), + ...operation('failed-edit', 'edit', editArgs, 'failure'), + ...operation('same-file', 'edit', { ...editArgs, oldText: 'different anchor' }, 'success'), + ...operation('unrelated-file', 'edit', { ...editArgs, path: '/synthetic/other.ts' }, 'success'), + ]; + const states = ['running', 'cancelled', 'unknown', 'success', 'success', 'success', 'failure']; + states.forEach((state, index) => + records.push(...operation(`candidate-${index + 1}`, 'bash', { ...bashArgs, i: `next-${index}` }, state)) + ); + records.push( + message('next-user', { + role: 'user', + content: [{ type: 'text', text: 'Synthetic next turn: same-file changes should not be linked across turns.' }], + }) + ); + records.push(...operation('other-turn', 'edit', { ...editArgs, newText: 'next turn' }, 'success')); + try { + await fs.mkdir(directory, { recursive: true }); + await fs.writeFile(file, `${records.map((record) => JSON.stringify(record)).join('\n')}\n`); + } catch (error) { + await server.stop(); + throw error; + } + console.log(`Synthetic-only follow-up demo: ${server.base}`); + console.log(`Session API: ${server.base}/api/omp/sessions/${id}`); + console.log('OMP 合成会话:3 个自动事件;初始 bash 事件有 7 条不同状态候选,edit 事件有 1 条同文件候选。'); + console.log('输入 n:追加仅 i 不同的成功候选,使旧复核过期;q 或 Ctrl-C 清理退出。'); + const input = readline.createInterface({ input: process.stdin }); + let appended = 0; + const stop = async () => { + input.close(); + await server.stop(); + process.exit(0); + }; + input.on('line', async (line) => { + if (line.trim() === 'q') return stop(); + if (line.trim() !== 'n') return; + appended++; + try { + const next = operation(`appended-${appended}`, 'bash', { ...bashArgs, i: `new-evidence-${appended}` }, 'success'); + await fs.appendFile(file, `${next.map((record) => JSON.stringify(record)).join('\n')}\n`); + console.log( + 'PASS: appended candidate evidence; automatic failures unchanged, affected review must become stale.' + ); + } catch (error) { + console.error(error.message); + await stop(); + } + }); + process.on('SIGINT', stop); + process.on('SIGTERM', stop); +} + +main().catch((error) => { + console.error(error.message); + process.exitCode = 1; +}); diff --git a/test/diagnostic-events.test.js b/test/diagnostic-events.test.js index aaab659..da4a9e1 100644 --- a/test/diagnostic-events.test.js +++ b/test/diagnostic-events.test.js @@ -242,6 +242,9 @@ test('hosted synthetic walkthrough yields two events and preserves seven failure ); assert.equal(report.events[0].spanMs, 50000); assert.equal(report.events[1].toolName, 'web_search'); + assert.equal(report.events[0].relatedOperations.length, 1); + assert.equal(report.events[0].relatedOperations[0].relation, 'same-file'); + assert.equal(report.events[0].relatedOperations[0].state, 'success'); assert.equal(report.events[1].failures[0].message.isError, false); assert.equal(detail.messages.find((message) => message.id === 'demo-background-result').ompOutcome.state, 'running'); coverage(report); diff --git a/test/follow-up-evidence.test.js b/test/follow-up-evidence.test.js new file mode 100644 index 0000000..e26778d --- /dev/null +++ b/test/follow-up-evidence.test.js @@ -0,0 +1,317 @@ +const { test, before } = require('node:test'); +const assert = require('node:assert/strict'); +const { readFileSync } = require('node:fs'); +const path = require('node:path'); +const { stripTypeScriptTypes } = require('node:module'); + +let diagnoseSession; +let reviews; +before(async () => { + const load = async (file) => { + const source = readFileSync(path.join(__dirname, '../frontend/src/views/sessions', file), 'utf8'); + return import(`data:text/javascript;base64,${Buffer.from(stripTypeScriptTypes(source)).toString('base64')}`); + }; + ({ diagnoseSession } = await load('diagnostics.ts')); + reviews = await load('diagnostic-reviews.ts'); +}); + +const call = (id, args, toolName = 'bash') => ({ role: 'toolCall', id, toolCallId: id, toolName, details: args }); +const result = (id, state = 'success', options = {}) => ({ + role: 'toolResult', + id: `${id}-result`, + toolCallId: id, + timestamp: null, + isError: state === 'failure', + details: null, + content: [{ type: 'text', text: `Synthetic ${id} result` }], + ompOutcome: { state, evidence: [`synthetic.state=${state}`], warnings: [] }, + ...options, +}); +const user = { role: 'user', content: [{ type: 'text', text: 'Synthetic next task' }] }; +const failed = (args = { command: 'synthetic test', i: 'first' }, tool = 'bash') => [ + call('first', args, tool), + result('first', 'failure'), +]; +const candidates = (messages) => diagnoseSession(messages).events[0].relatedOperations; + +test('only-i follow-up success is evidence, not automatic recovery', () => { + const messages = [...failed(), call('retry', { i: 'second', command: 'synthetic test' }), result('retry')]; + const report = diagnoseSession(messages); + assert.equal(report.failureCount, 1); + assert.equal(report.recoveredCount, 0); + assert.equal(report.failures.length, 1); + assert.equal(report.events[0].relatedOperations.length, 1); + const entry = report.events[0].relatedOperations[0]; + assert.equal(entry.relation, 'only-i'); + assert.equal(entry.state, 'success'); + assert.equal(entry.message, messages[3]); + assert.equal(entry.callIndex, 2); + assert.equal(entry.index, 3); + assert.match(entry.evidence, /synthetic.state=success/); +}); + +for (const state of ['failure', 'running', 'cancelled', 'unknown']) { + test(`only-i candidate preserves ${state} instead of claiming verification`, () => { + const rows = candidates([ + ...failed(), + call('later', { command: 'synthetic test', i: 'second' }), + result('later', state), + ]); + assert.equal(rows[0].state, state); + assert.equal(rows[0].relation, 'only-i'); + }); +} + +test('only-i matching compares full arguments and exact tools, including nested values', () => { + const original = { command: 'synthetic test', config: { FIRST: 1, SECOND: 2 }, i: 'first' }; + const rows = candidates([ + ...failed(original), + call('changed', { ...original, config: { FIRST: 1, SECOND: 3 }, i: 'next' }), + result('changed'), + call('other-tool', { ...original, i: 'next' }, 'shell'), + result('other-tool'), + call('match', JSON.stringify({ i: 'next', config: { SECOND: 2, FIRST: 1 }, command: 'synthetic test' })), + result('match'), + ]); + assert.deepEqual( + rows.map((row) => row.message.toolCallId), + ['match'] + ); +}); + +test('only-i without meaningful remaining parameters or equal arguments is not a relation', () => { + assert.equal(candidates([...failed({ i: 'first' }), call('next', { i: 'next' }), result('next')]).length, 0); + assert.equal( + candidates([...failed(), call('same', { command: 'synthetic test', i: 'first' }), result('same', 'running')]) + .length, + 0 + ); + assert.equal( + candidates([ + ...failed({ command: ['a', 'b'], i: 'first' }), + call('different', { command: ['b', 'a'], i: 'next' }), + result('different'), + ]).length, + 0 + ); +}); + +test('adding or removing top-level i is supported and can cross call user turns', () => { + const rows = candidates([ + ...failed({ command: 'synthetic test' }), + user, + call('next', { command: 'synthetic test', i: 'next' }), + result('next'), + ]); + assert.equal(rows.length, 1); + assert.equal(rows[0].userTurn, 1); + assert.equal(rows[0].relation, 'only-i'); +}); + +test('same-file modifications need the same turn and explicitly resolved path context', () => { + const args = { path: '/synthetic/file.ts', oldText: 'first', newText: 'second' }; + const rows = candidates([ + ...failed(args, 'edit'), + call('write', { file_path: '/synthetic/file.ts', content: 'different content' }, 'Write'), + result('write'), + call('unrelated', { path: '/synthetic/other.ts', content: 'different content' }, 'write'), + result('unrelated'), + call('read', { path: '/synthetic/file.ts' }, 'read'), + result('read'), + user, + call('next-turn', { ...args, newText: 'third' }, 'edit'), + result('next-turn'), + ]); + assert.deepEqual( + rows.map((row) => row.message.toolCallId), + ['write'] + ); + assert.equal(rows[0].relation, 'same-file'); +}); + +test('relative paths require equal explicit absolute cwd and aliases are not guessed', () => { + for (const [first, second, expected] of [ + [{ path: 'file.ts' }, { path: 'file.ts', content: 'next' }, 0], + [{ path: 'file.ts', cwd: '/synthetic' }, { path: 'file.ts', cwd: '/synthetic', content: 'next' }, 1], + [{ path: 'file.ts', cwd: '/one' }, { path: 'file.ts', cwd: '/two', content: 'next' }, 0], + [{ path: 'file.ts', cwd: '/one' }, { path: 'file.ts', workdir: '/one', content: 'next' }, 0], + [{ path: '/file.ts', cwd: '/one' }, { path: '/file.ts', cwd: '/two', content: 'next' }, 0], + [{ path: '/a/../file.ts' }, { path: '/file.ts', content: 'next' }, 0], + [{ path: 'file.ts', cwd: 'relative' }, { path: 'file.ts', cwd: 'relative', content: 'next' }, 0], + [{ path: '/one', file_path: '/two' }, { path: '/one', content: 'next' }, 0], + ]) { + assert.equal(candidates([...failed(first, 'edit'), call('next', second, 'edit'), result('next')]).length, expected); + } +}); + +test('same-file relation does not infer paths from shell commands or patch text', () => { + assert.equal( + candidates([ + ...failed({ command: 'edit /synthetic/file.ts' }), + call('next', { path: '/synthetic/file.ts', content: 'next' }, 'write'), + result('next'), + ]).length, + 0 + ); +}); + +test('earlier-started parallel calls and missing results do not become follow-up evidence', () => { + const args = { command: 'synthetic test', i: 'next' }; + const rows = candidates([ + call('first', { command: 'synthetic test', i: 'first' }), + call('parallel', args), + result('first', 'failure'), + result('parallel'), + call('pending', args), + result('orphan'), + ]); + assert.equal(rows.length, 0); +}); + +test('candidates start after the last failure, not merely the first event member', () => { + const args = { path: '/synthetic/file.ts', content: 'first' }; + const report = diagnoseSession([ + ...failed(args, 'write'), + call('middle', { ...args, content: 'middle' }, 'write'), + result('middle'), + call('repeat', args, 'write'), + result('repeat', 'failure'), + call('last', { ...args, content: 'last' }, 'write'), + result('last'), + ]); + assert.equal(report.events[0].failures.length, 2); + assert.deepEqual( + report.events[0].relatedOperations.map((row) => row.message.toolCallId), + ['last'] + ); +}); + +test('call user turn, not delayed result turn, controls same-file relation', () => { + const args = { path: '/synthetic/file.ts', content: 'first' }; + const rows = candidates([ + ...failed(args, 'write'), + call('later', { ...args, content: 'next' }, 'write'), + user, + result('later'), + ]); + assert.equal(rows[0].relation, 'same-file'); + assert.equal(rows[0].userTurn, 0); +}); + +test('a result matching both relations is listed once with the more specific only-i reason', () => { + const args = { path: '/synthetic/file.ts', content: 'first', i: 'first' }; + const rows = candidates([...failed(args, 'write'), call('later', { ...args, i: 'next' }, 'write'), result('later')]); + assert.equal(rows.length, 1); + assert.equal(rows[0].relation, 'only-i'); +}); + +test('five-state evidence follows explicit source fields for non-OMP logs too', () => { + const examples = [ + [{ details: { exitCode: 0 } }, 'success'], + [{ details: { exitCode: 2 } }, 'failure'], + [{ details: { status: 'running', exitCode: 0 } }, 'running'], + [{ details: null }, 'unknown'], + [ + { details: null, content: [{ type: 'text', text: 'Wall time: 1 seconds\nExit code: 0\nOutput:\nSynthetic' }] }, + 'success', + ], + ]; + for (const [overrides, expected] of examples) { + const rows = candidates([ + ...failed(), + call('later', { command: 'synthetic test', i: 'next' }), + result('later', 'success', { ompOutcome: undefined, isError: false, ...overrides }), + ]); + assert.equal(rows[0].state, expected); + assert.ok(rows[0].evidence.length); + } +}); + +test('all candidates stay ordered and raw input is not mutated', () => { + const messages = failed(); + for (let index = 0; index < 12; index++) + messages.push(call(`next-${index}`, { command: 'synthetic test', i: index }), result(`next-${index}`)); + const before = JSON.stringify(messages); + const report = diagnoseSession(messages); + assert.equal(report.events[0].relatedOperations.length, 12); + assert.equal(report.recoveredCount, 0); + assert.deepEqual( + report.events[0].relatedOperations.map((row) => row.index), + Array.from({ length: 12 }, (_, index) => index * 2 + 3) + ); + assert.equal(JSON.stringify(messages), before); +}); + +test('new candidates invalidate old human notes but preserve storage keys', async () => { + const messages = failed(); + const before = diagnoseSession(messages).events[0]; + const after = diagnoseSession([...messages, call('next', { command: 'synthetic test', i: 'next' }), result('next')]) + .events[0]; + const original = await reviews.createReviewIdentity('scope', before); + const changed = await reviews.createReviewIdentity('scope', after); + assert.equal(original.storageKey, changed.storageKey); + assert.notEqual(original.fingerprint, changed.fingerprint); + const stored = new Map(); + const storage = { getItem: (key) => stored.get(key) ?? null, setItem: (key, value) => stored.set(key, value) }; + reviews.saveReview(storage, original, 'expected', 'Synthetic old review'); + assert.equal(reviews.reviewState(reviews.readReview(storage, changed)), 'unreviewed'); +}); + +test('candidate output beyond displayed preview participates in review fingerprint', async () => { + const messages = [ + ...failed(), + call('next', { command: 'synthetic test', i: 'next' }), + result('next', 'success', { content: [{ type: 'text', text: 'x'.repeat(700) }] }), + ]; + const before = await reviews.createReviewIdentity('scope', diagnoseSession(messages).events[0]); + messages[3].content[0].text += 'changed'; + const after = await reviews.createReviewIdentity('scope', diagnoseSession(messages).events[0]); + assert.notEqual(before.fingerprint, after.fingerprint); +}); + +test('no candidates preserves prior fingerprint contract and exact recovery remains unchanged', async () => { + const event = diagnoseSession(failed()).events[0]; + const legacy = { ...event }; + delete legacy.relatedOperations; + assert.deepEqual( + await reviews.createReviewIdentity('scope', event), + await reviews.createReviewIdentity('scope', legacy) + ); + const report = diagnoseSession([ + ...failed(), + call('exact', { command: 'synthetic test', i: 'first' }), + result('exact'), + ]); + assert.equal(report.recoveredCount, 1); + assert.equal(report.events.length, 0); +}); + +test('explicit cancellation and unrecognized status do not turn into a successful candidate', () => { + for (const [status, expected] of [ + ['cancelled', 'cancelled'], + ['canceled', 'cancelled'], + ['future-state', 'unknown'], + ]) { + const rows = candidates([ + ...failed({ path: '/synthetic/read.txt', i: 'first' }, 'Read'), + call('next', { path: '/synthetic/read.txt', i: 'next' }, 'Read'), + result('next', 'success', { ompOutcome: undefined, details: { status }, isError: false }), + ]); + assert.equal(rows[0].state, expected); + } +}); + +test('embedded calls link to their own result while missing arguments are not inferred', () => { + const embedded = (id, input) => ({ role: 'assistant', content: [{ type: 'toolCall', id, name: 'Edit', input }] }); + const args = { file_path: '/synthetic/file.ts', old_string: 'a', new_string: 'b' }; + const rows = candidates([ + embedded('first', args), + result('first', 'failure'), + embedded('later', { ...args, new_string: 'c' }), + result('later'), + ]); + assert.equal(rows.length, 1); + assert.equal(rows[0].message.toolCallId, 'later'); + assert.equal(rows[0].relation, 'same-file'); + assert.equal(candidates([...failed(null, 'Edit'), embedded('later', args), result('later')]).length, 0); +});