codeloop-mcp-server 0.1.53 → 0.1.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/critical_floors.d.ts.map +1 -1
- package/dist/auth/critical_floors.js +8 -0
- package/dist/auth/critical_floors.js.map +1 -1
- package/dist/evidence/anti_rationalisation.d.ts.map +1 -1
- package/dist/evidence/anti_rationalisation.js +15 -0
- package/dist/evidence/anti_rationalisation.js.map +1 -1
- package/dist/evidence/binary_freshness.d.ts +21 -0
- package/dist/evidence/binary_freshness.d.ts.map +1 -0
- package/dist/evidence/binary_freshness.js +168 -0
- package/dist/evidence/binary_freshness.js.map +1 -0
- package/dist/evidence/change_coverage.d.ts.map +1 -1
- package/dist/evidence/change_coverage.js +22 -1
- package/dist/evidence/change_coverage.js.map +1 -1
- package/dist/evidence/cycle_issues.d.ts +99 -0
- package/dist/evidence/cycle_issues.d.ts.map +1 -0
- package/dist/evidence/cycle_issues.js +120 -0
- package/dist/evidence/cycle_issues.js.map +1 -0
- package/dist/evidence/interaction_coverage.d.ts +15 -0
- package/dist/evidence/interaction_coverage.d.ts.map +1 -1
- package/dist/evidence/interaction_coverage.js +53 -4
- package/dist/evidence/interaction_coverage.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +360 -5
- package/dist/index.js.map +1 -1
- package/dist/runners/modal_close_strategies.d.ts +82 -0
- package/dist/runners/modal_close_strategies.d.ts.map +1 -0
- package/dist/runners/modal_close_strategies.js +226 -0
- package/dist/runners/modal_close_strategies.js.map +1 -0
- package/dist/runners/modal_detector.d.ts +17 -0
- package/dist/runners/modal_detector.d.ts.map +1 -1
- package/dist/runners/modal_detector.js +95 -22
- package/dist/runners/modal_detector.js.map +1 -1
- package/dist/tools/gate_check.d.ts.map +1 -1
- package/dist/tools/gate_check.js +57 -0
- package/dist/tools/gate_check.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"critical_floors.d.ts","sourceRoot":"","sources":["../../src/auth/critical_floors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"critical_floors.d.ts","sourceRoot":"","sources":["../../src/auth/critical_floors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EAiD1C,CAAC"}
|
|
@@ -72,5 +72,13 @@ export const CRITICAL_FLOORS = [
|
|
|
72
72
|
min_version: "0.1.53",
|
|
73
73
|
reason: "Stale-evidence rejection + decoder + skip-reason fixes — pre-0.1.53 builds shipped at 100% confidence on a SIBLING-RUN recording from before the source-code change. Photometry-DB E2E #10 added Product Name + Product Code columns to the Luminaire export pipeline, never re-recorded after the edit, and the gate accepted a 28-min-old video + 440-action interaction log + full CRUD arc — all from a sibling run that pre-dated the diff. 0.1.53 ships D1 (cli + mcp-server pin @codelooptech/shared >= 0.1.22 so npx never resolves to a shared version that's missing rules-version.js, fixing the codeloop doctor ERR_MODULE_NOT_FOUND on Windows), D2 (gate_check anchors video / interaction_depth / user_journey / replay-frame evidence against the newest source-file mtime — sibling-run evidence captured BEFORE the latest edit fails as STALE with a Re-record directive, closing the change-blind loophole that 0.1.52's manifest gate couldn't help with when an MCP server still ran 0.1.51), D3 (PNG decoder gains a third-stage `checkCRC: false` retry so Windows-saved PNGs with mis-computed chunk CRCs decode without forcing the user to PowerShell `[System.Drawing.Bitmap]::Save` 18 design references by hand), D4 (update_check polls every 15 min instead of every hour and lazily kicks a fetch when the cache is stale, so a critical update lands within an in-progress agent session instead of after the next IDE restart), and D5 (design_compare gate disambiguates 'reference PNG genuinely corrupt' from 'no actual screenshot captured for this reference' — the dominant root cause is surfaced first so the agent calls codeloop_capture_screenshot for the missing names instead of going on a 30-min re-encode hunt).",
|
|
74
74
|
},
|
|
75
|
+
{
|
|
76
|
+
min_version: "0.1.54",
|
|
77
|
+
reason: "Stuck-modal + cycle-issue acknowledgment — pre-0.1.54 builds shipped at 100% confidence with `ready_for_review` even when three real recurrence-class issues happened mid-cycle and got buried in the dev log. Photometry-DB E2E #11 had a .NET 8 `OpenFolderDialog` that ignored Escape / Enter / WM_CLOSE / SC_CLOSE — codeloop_handle_modal could only send single keystrokes, so the agent had to hard-restart the app to drain a stack of three modals. The gate accepted the run because nothing forced the agent to surface the modal-close failure, the binary-vs-source mismatch (bin/Release rebuilt but recording ran against publish/PhotometryDB-Beta with stale DLLs), or the app-restart-during-recording. 0.1.54 ships E1 (modal_kind classifier — file_dialog / confirm / alert / custom — by ClassName + name pattern, plus a 4-strategy close ladder Escape → Alt+F4 → UIA Invoke 'Close' → EndDialog with re-detection between steps, and a new codeloop_kill_modal_window tool for PostMessage(WM_CLOSE) → TerminateProcess escalation when all 4 fail), E2 (cycle_issues.jsonl evidence channel + new cycle_issues_acknowledged blocker gate that fails until every recorded issue has a sibling resolution OR the agent's gate response enumerates each one — extended C6 anti-rationalisation phrases ban 'all gates green' / 'everything looks good' boilerplate when unresolved cycle issues exist), E3 (codeloop_interact click-effect verification — when intent / description / purpose / step contains close/dismiss/cancel keywords, re-detect the modal post-click and override success=false + record click_missed_target when the modal is still up), E4 (codeloop_start_recording compares target_app binary mtime against the newest source mtime — emits HARD `BINARY MISMATCH` directive + binary_mismatch cycle issue when the binary lags by > 60s), E5 (dev_report + interaction_coverage filter non-interaction log entries — replay-frame markers, pure console-error rollups, runtime-log entries — and coerce missing actions to `unclassified` so the action breakdown is honest), E6 (depth gate appends a high-failure-rate warning + high_failure_rate cycle issue when failed/(failed+successful) > 10%, signalling 'your clicks aren't landing where you think' instead of letting depth pass quietly with 31 silent failures), and E7 (change_coverage_evidence gate now always surfaces 'Credited X/Y manifest entries (kind breakdown + sample exercised names)' on PASS so the agent has something concrete to cite in its summary instead of slipping into 'all gates green').",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
min_version: "0.1.55",
|
|
81
|
+
reason: "Stuck-modal recurrence closure — 0.1.54 plugged the cycle-issues channel but the recurrence path could STILL bypass it. Re-audit of Photometry-DB E2E #11 revealed three remaining gaps: (a) E3 click-effect verification only fired when the agent's `intent` field contained close/dismiss keywords, but most coordinate-only clicks against the stuck OpenFolderDialog had NO intent set (the workflow check itself flagged 'coordinate-only clicks without clear intent'), (b) when the agent skipped codeloop_handle_modal entirely and used raw codeloop_interact clicks against the X button or raw PowerShell Stop-Process, NOTHING wrote modal_close_failed / app_restart cycle issues — so the new cycle_issues_acknowledged blocker passed trivially even when the stuck-modal cycle had happened, (c) E4 binary_freshness only checked publish/<appName> at the top level, but the Photometry-DB binary lived at publish/PhotometryDB-Beta/Photometry DB.exe (subfolder) so the BINARY MISMATCH directive silently never fired for the exact path it was built to catch. 0.1.55 ships F1 (codeloop_interact runs post-action detectModal on EVERY desktop click / double-click / right-click / escape-keystroke regardless of intent, tracks per-app modal-description persistence in-process, attaches modal_present_after to the log entry on detection, and writes click_missed_target the moment the same modal description survives 2+ consecutive interactions), F2 (binary_freshness walks depth=1 children of bin/Release / bin/Release/net8.0-windows / publish / dist / out / build/<flutter|macos|linux paths> so publish/PhotometryDB-Beta/<App>.exe is detected — closes the actual recurrence path E4 was meant to catch), F3 (3+ consecutive same-modal persistences write a modal_close_failed cycle issue automatically — the agent doesn't have to call codeloop_handle_modal for the gate to know there's a stuck modal), F4 (HARD F4 directive appended to the codeloop_interact postscript when a modal is currently persisting, naming the specific modal description and pointing the agent at codeloop_handle_modal / codeloop_kill_modal_window — replaces the soft H11 reminder with an action-required instruction), and F5 (codeloop_generate_dev_report response now carries cycle_issues_summary + per-issue summaries + a HARD cycle_issues_directive that requires the generated DEVELOPMENT_LOG.md to enumerate every recurrence-class issue under 'Bugs Found & Fixed', so a clean 'all gates green' final summary is no longer producible when issues exist).",
|
|
82
|
+
},
|
|
75
83
|
];
|
|
76
84
|
//# sourceMappingURL=critical_floors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"critical_floors.js","sourceRoot":"","sources":["../../src/auth/critical_floors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AASH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,ufAAuf;KAC1f;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,4hBAA4hB;KACriB;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,yvBAAyvB;KAClwB;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,kxBAAkxB;KACrxB;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,0/BAA0/B;KAC7/B;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,0iCAA0iC;KAC7iC;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,gqDAAgqD;KACnqD;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,uqDAAuqD;KAC1qD;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"critical_floors.js","sourceRoot":"","sources":["../../src/auth/critical_floors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AASH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,ufAAuf;KAC1f;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,4hBAA4hB;KACriB;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,yvBAAyvB;KAClwB;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,kxBAAkxB;KACrxB;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,0/BAA0/B;KAC7/B;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,0iCAA0iC;KAC7iC;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,gqDAAgqD;KACnqD;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,uqDAAuqD;KAC1qD;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,w+EAAw+E;KAC3+E;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,MAAM,EACJ,88EAA88E;KACj9E;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anti_rationalisation.d.ts","sourceRoot":"","sources":["../../src/evidence/anti_rationalisation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"anti_rationalisation.d.ts","sourceRoot":"","sources":["../../src/evidence/anti_rationalisation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA4CzE,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,kBAAkB,EAAE,CAQxF;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,kBAAkB,EAAE,GACzB,MAAM,CAyBR"}
|
|
@@ -45,6 +45,21 @@ export const C6_FORBIDDEN_PHRASES = [
|
|
|
45
45
|
regex: /\bgrid (is )?empty\b.*\b(can'?t|cannot|unable to)\s+(test|verify|exercise)\b/i,
|
|
46
46
|
reason: "Empty grid is the C4 directive's exact case — seed data, then exercise. Do not skip the entry.",
|
|
47
47
|
},
|
|
48
|
+
// 0.1.54 E2 — "All N quality gates green" / "all gates passed" boilerplate
|
|
49
|
+
// hides mid-cycle cycle_issues. Photometry-DB E2E #11 shipped at 100%
|
|
50
|
+
// confidence with three unresolved issues buried in the dev log because
|
|
51
|
+
// the agent's final summary opened with "All quality gates green".
|
|
52
|
+
// The cycle_issues_acknowledged blocker fails when these patterns appear
|
|
53
|
+
// alongside any unresolved cycle issue, forcing the agent to enumerate
|
|
54
|
+
// each issue explicitly before claiming completion.
|
|
55
|
+
{
|
|
56
|
+
regex: /\ball\s+(?:\d+\s+)?(?:quality\s+)?gates?\s+(?:are\s+)?(?:green|passing|passed|ok|clean)\b/i,
|
|
57
|
+
reason: "Generic 'all gates green' summary skips cycle_issues. Enumerate each entry from cycle_issues.jsonl (modal_close_failed / binary_mismatch / click_missed_target / app_restart / high_failure_rate) and how it was resolved before declaring completion.",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
regex: /\b(everything|all\s+checks)\s+(?:looks\s+)?(?:good|clean|green|passing|ok)\b/i,
|
|
61
|
+
reason: "Vague 'everything looks good' summary. Cite per-gate evidence + cycle_issue resolutions, not adjectives.",
|
|
62
|
+
},
|
|
48
63
|
];
|
|
49
64
|
export function scanRecentThinking(text) {
|
|
50
65
|
if (!text || typeof text !== "string")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anti_rationalisation.js","sourceRoot":"","sources":["../../src/evidence/anti_rationalisation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAA6C;IAC5E;QACE,KAAK,EAAE,mFAAmF;QAC1F,MAAM,EAAE,2JAA2J;KACpK;IACD;QACE,KAAK,EAAE,0IAA0I;QACjJ,MAAM,EAAE,mIAAmI;KAC5I;IACD;QACE,KAAK,EAAE,+HAA+H;QACtI,MAAM,EAAE,8HAA8H;KACvI;IACD;QACE,KAAK,EAAE,qJAAqJ;QAC5J,MAAM,EAAE,yGAAyG;KAClH;IACD;QACE,KAAK,EAAE,qHAAqH;QAC5H,MAAM,EAAE,gFAAgF;KACzF;IACD;QACE,KAAK,EAAE,4GAA4G;QACnH,MAAM,EAAE,sEAAsE;KAC/E;IACD;QACE,KAAK,EAAE,+EAA+E;QACtF,MAAM,EAAE,gGAAgG;KACzG;CACF,CAAC;AAOF,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACjD,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAC/C,IAA0B;IAE1B,MAAM,MAAM,GAAG;QACb,qGAAqG;QACrG,gEAAgE;QAChE,4DAA4D;QAC5D,iFAAiF;QACjF,oFAAoF;QACpF,8EAA8E;QAC9E,gDAAgD;QAChD,qQAAqQ;KACtQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC,CAAC,EAAE,EAAE,CACJ,gBAAgB,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC,MAAM,EAAE,CAClD,CAAC;IACF,OAAO,CACL,MAAM;QACN,MAAM;QACN,0BAA0B,IAAI,CAAC,MAAM,kDAAkD;QACvF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACnB,oFAAoF,CACrF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"anti_rationalisation.js","sourceRoot":"","sources":["../../src/evidence/anti_rationalisation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAA6C;IAC5E;QACE,KAAK,EAAE,mFAAmF;QAC1F,MAAM,EAAE,2JAA2J;KACpK;IACD;QACE,KAAK,EAAE,0IAA0I;QACjJ,MAAM,EAAE,mIAAmI;KAC5I;IACD;QACE,KAAK,EAAE,+HAA+H;QACtI,MAAM,EAAE,8HAA8H;KACvI;IACD;QACE,KAAK,EAAE,qJAAqJ;QAC5J,MAAM,EAAE,yGAAyG;KAClH;IACD;QACE,KAAK,EAAE,qHAAqH;QAC5H,MAAM,EAAE,gFAAgF;KACzF;IACD;QACE,KAAK,EAAE,4GAA4G;QACnH,MAAM,EAAE,sEAAsE;KAC/E;IACD;QACE,KAAK,EAAE,+EAA+E;QACtF,MAAM,EAAE,gGAAgG;KACzG;IACD,2EAA2E;IAC3E,sEAAsE;IACtE,wEAAwE;IACxE,mEAAmE;IACnE,yEAAyE;IACzE,uEAAuE;IACvE,oDAAoD;IACpD;QACE,KAAK,EAAE,4FAA4F;QACnG,MAAM,EAAE,wPAAwP;KACjQ;IACD;QACE,KAAK,EAAE,+EAA+E;QACtF,MAAM,EAAE,0GAA0G;KACnH;CACF,CAAC;AAOF,MAAM,UAAU,kBAAkB,CAAC,IAA+B;IAChE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACjD,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;QACrD,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iCAAiC,CAC/C,IAA0B;IAE1B,MAAM,MAAM,GAAG;QACb,qGAAqG;QACrG,gEAAgE;QAChE,4DAA4D;QAC5D,iFAAiF;QACjF,oFAAoF;QACpF,8EAA8E;QAC9E,gDAAgD;QAChD,qQAAqQ;KACtQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC,CAAC,EAAE,EAAE,CACJ,gBAAgB,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC,MAAM,EAAE,CAClD,CAAC;IACF,OAAO,CACL,MAAM;QACN,MAAM;QACN,0BAA0B,IAAI,CAAC,MAAM,kDAAkD;QACvF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACnB,oFAAoF,CACrF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface BinaryFreshnessResult {
|
|
2
|
+
/** True when the binary appears stale relative to the latest source edit. */
|
|
3
|
+
stale: boolean;
|
|
4
|
+
/** Resolved absolute path of the binary (when found). */
|
|
5
|
+
binary_path?: string;
|
|
6
|
+
/** ISO mtime of the binary, when it could be statted. */
|
|
7
|
+
binary_mtime?: string;
|
|
8
|
+
/** Absolute path of the newest source file we found. */
|
|
9
|
+
newest_source_path?: string;
|
|
10
|
+
/** ISO mtime of the newest source file. */
|
|
11
|
+
newest_source_mtime?: string;
|
|
12
|
+
/** Lag in seconds (positive = source is newer than binary). */
|
|
13
|
+
lag_seconds?: number;
|
|
14
|
+
/** Human-readable reason; empty when stale=false. */
|
|
15
|
+
reason?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function checkBinaryFreshness(opts: {
|
|
18
|
+
app_name?: string;
|
|
19
|
+
cwd: string;
|
|
20
|
+
}): BinaryFreshnessResult;
|
|
21
|
+
//# sourceMappingURL=binary_freshness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary_freshness.d.ts","sourceRoot":"","sources":["../../src/evidence/binary_freshness.ts"],"names":[],"mappings":"AAmIA,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,KAAK,EAAE,OAAO,CAAC;IACf,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,qBAAqB,CAqCxB"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { existsSync, readdirSync, statSync } from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { newestSourceMtime } from "./evidence_freshness.js";
|
|
4
|
+
/**
|
|
5
|
+
* 0.1.54 E4 — Binary-vs-source mtime check.
|
|
6
|
+
*
|
|
7
|
+
* Photometry-DB E2E #11 had the agent build `bin/Release/PhotometryDB.exe`
|
|
8
|
+
* but record against `publish/PhotometryDB-Beta/PhotometryDB.exe` — the
|
|
9
|
+
* Beta publish folder had stale DLLs from a previous build, so the new
|
|
10
|
+
* XAML never loaded into the running app and the recording captured
|
|
11
|
+
* pre-fix UI. The gate accepted the recording because nothing in
|
|
12
|
+
* codeloop_start_recording compared the running binary's mtime against
|
|
13
|
+
* the latest source edit.
|
|
14
|
+
*
|
|
15
|
+
* This helper runs at the start of codeloop_start_recording for desktop
|
|
16
|
+
* targets. When the resolved binary's mtime is more than 60s OLDER than
|
|
17
|
+
* the newest source-file mtime, we surface a HARD directive telling the
|
|
18
|
+
* agent to rebuild before recording AND record a `binary_mismatch`
|
|
19
|
+
* cycle issue so the gate can later block ready_for_review.
|
|
20
|
+
*
|
|
21
|
+
* The 60s buffer absorbs filesystem clock jitter + the typical
|
|
22
|
+
* incremental build window where the binary is being written while a
|
|
23
|
+
* source file was just saved (mtime updates are not always strictly
|
|
24
|
+
* ordered).
|
|
25
|
+
*/
|
|
26
|
+
const FRESHNESS_BUFFER_SECONDS = 60;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the absolute path to the binary that the recording will run
|
|
29
|
+
* against, OR undefined when we can't sensibly resolve one. We accept
|
|
30
|
+
* paths to .exe / .app / .dmg / .apk / .ipa; for .app bundles on macOS
|
|
31
|
+
* we look at the bundle's Info.plist mtime as a stand-in (the .app dir
|
|
32
|
+
* itself updates too eagerly — Spotlight, Gatekeeper, etc. — to be a
|
|
33
|
+
* reliable signal).
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* 0.1.55 F2 — bounded depth-2 walker for nested publish / bin / dist
|
|
37
|
+
* variants. Photometry-DB E2E #11 had the binary at
|
|
38
|
+
* <cwd>/publish/PhotometryDB-Beta/Photometry DB.exe
|
|
39
|
+
* and the 0.1.54 lookup only checked <cwd>/publish/<appName>, so the
|
|
40
|
+
* mismatch warning silently never fired. We now check direct paths
|
|
41
|
+
* first, then walk the immediate children of each candidate parent
|
|
42
|
+
* directory exactly one level deep — no recursive whole-tree search.
|
|
43
|
+
*
|
|
44
|
+
* The walk is keyed on the parent directories that real .NET / Flutter
|
|
45
|
+
* / Tauri build pipelines emit, never on user-named arbitrary folders,
|
|
46
|
+
* so we don't risk picking up a stray copy that lives in some other
|
|
47
|
+
* unrelated subdirectory.
|
|
48
|
+
*/
|
|
49
|
+
const BUILD_PARENT_DIRS = [
|
|
50
|
+
["bin", "Release"],
|
|
51
|
+
["bin", "Debug"],
|
|
52
|
+
["bin", "x64", "Release"],
|
|
53
|
+
["bin", "x64", "Debug"],
|
|
54
|
+
["bin", "x86", "Release"],
|
|
55
|
+
["bin", "Release", "net8.0-windows"],
|
|
56
|
+
["bin", "Release", "net8.0"],
|
|
57
|
+
["publish"],
|
|
58
|
+
["dist"],
|
|
59
|
+
["out"],
|
|
60
|
+
["build", "windows", "x64", "runner", "Release"],
|
|
61
|
+
["build", "macos", "Build", "Products", "Release"],
|
|
62
|
+
["build", "linux", "x64", "release", "bundle"],
|
|
63
|
+
];
|
|
64
|
+
function tryBinaryFile(p) {
|
|
65
|
+
if (existsSync(p))
|
|
66
|
+
return p;
|
|
67
|
+
if (existsSync(`${p}.exe`))
|
|
68
|
+
return `${p}.exe`;
|
|
69
|
+
if (existsSync(`${p}.app`))
|
|
70
|
+
return `${p}.app`;
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
function findInChildren(parent, appName) {
|
|
74
|
+
if (!existsSync(parent))
|
|
75
|
+
return undefined;
|
|
76
|
+
let entries;
|
|
77
|
+
try {
|
|
78
|
+
entries = readdirSync(parent, { withFileTypes: true });
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
for (const ent of entries) {
|
|
84
|
+
if (!ent.isDirectory())
|
|
85
|
+
continue;
|
|
86
|
+
const child = path.join(parent, ent.name);
|
|
87
|
+
const hit = tryBinaryFile(path.join(child, appName));
|
|
88
|
+
if (hit)
|
|
89
|
+
return hit;
|
|
90
|
+
}
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
function resolveBinaryPath(appName, cwd) {
|
|
94
|
+
if (!appName)
|
|
95
|
+
return undefined;
|
|
96
|
+
// If the caller passed an absolute path, prefer it.
|
|
97
|
+
if (path.isAbsolute(appName) && existsSync(appName))
|
|
98
|
+
return appName;
|
|
99
|
+
// Direct paths first — fastest and keeps the existing 0.1.54 contract.
|
|
100
|
+
const directCandidates = BUILD_PARENT_DIRS.map((segs) => path.join(cwd, ...segs, appName));
|
|
101
|
+
directCandidates.unshift(path.join(cwd, appName));
|
|
102
|
+
for (const c of directCandidates) {
|
|
103
|
+
const hit = tryBinaryFile(c);
|
|
104
|
+
if (hit)
|
|
105
|
+
return hit;
|
|
106
|
+
}
|
|
107
|
+
// 0.1.55 F2 — fallback: walk depth=1 under each build-parent directory.
|
|
108
|
+
// Catches `publish/PhotometryDB-Beta/<appName>`, `bin/Release/net8.0-windows/<variant>/<appName>`,
|
|
109
|
+
// `dist/<flavour>/<appName>`, etc. Limited to known build parents so
|
|
110
|
+
// we never leave the build output tree.
|
|
111
|
+
for (const segs of BUILD_PARENT_DIRS) {
|
|
112
|
+
const parent = path.join(cwd, ...segs);
|
|
113
|
+
const hit = findInChildren(parent, appName);
|
|
114
|
+
if (hit)
|
|
115
|
+
return hit;
|
|
116
|
+
}
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
function binaryMtime(p) {
|
|
120
|
+
try {
|
|
121
|
+
if (p.toLowerCase().endsWith(".app")) {
|
|
122
|
+
const plist = path.join(p, "Contents", "Info.plist");
|
|
123
|
+
if (existsSync(plist))
|
|
124
|
+
return statSync(plist).mtimeMs;
|
|
125
|
+
}
|
|
126
|
+
return statSync(p).mtimeMs;
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return 0;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
export function checkBinaryFreshness(opts) {
|
|
133
|
+
if (!opts.app_name)
|
|
134
|
+
return { stale: false };
|
|
135
|
+
const binPath = resolveBinaryPath(opts.app_name, opts.cwd);
|
|
136
|
+
if (!binPath)
|
|
137
|
+
return { stale: false };
|
|
138
|
+
const binMs = binaryMtime(binPath);
|
|
139
|
+
if (binMs === 0)
|
|
140
|
+
return { stale: false };
|
|
141
|
+
const newest = newestSourceMtime(opts.cwd);
|
|
142
|
+
if (!newest)
|
|
143
|
+
return { stale: false };
|
|
144
|
+
const lagSeconds = Math.round((newest.mtimeMs - binMs) / 1000);
|
|
145
|
+
if (lagSeconds <= FRESHNESS_BUFFER_SECONDS) {
|
|
146
|
+
return {
|
|
147
|
+
stale: false,
|
|
148
|
+
binary_path: binPath,
|
|
149
|
+
binary_mtime: new Date(binMs).toISOString(),
|
|
150
|
+
newest_source_path: newest.path,
|
|
151
|
+
newest_source_mtime: new Date(newest.mtimeMs).toISOString(),
|
|
152
|
+
lag_seconds: lagSeconds,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
const lagMin = Math.floor(lagSeconds / 60);
|
|
156
|
+
return {
|
|
157
|
+
stale: true,
|
|
158
|
+
binary_path: binPath,
|
|
159
|
+
binary_mtime: new Date(binMs).toISOString(),
|
|
160
|
+
newest_source_path: newest.path,
|
|
161
|
+
newest_source_mtime: new Date(newest.mtimeMs).toISOString(),
|
|
162
|
+
lag_seconds: lagSeconds,
|
|
163
|
+
reason: `BINARY MISMATCH — the running app at ${binPath} was built ${lagMin} minute(s) before your latest source edit ` +
|
|
164
|
+
`(${path.basename(newest.path)} @ ${new Date(newest.mtimeMs).toISOString()}). ` +
|
|
165
|
+
`Rebuild and re-deploy before recording. Re-running codeloop_start_recording without rebuilding will produce evidence against stale code.`,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=binary_freshness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binary_freshness.js","sourceRoot":"","sources":["../../src/evidence/binary_freshness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC;;;;;;;GAOG;AACH;;;;;;;;;;;;;GAaG;AACH,MAAM,iBAAiB,GAAG;IACxB,CAAC,KAAK,EAAE,SAAS,CAAC;IAClB,CAAC,KAAK,EAAE,OAAO,CAAC;IAChB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;IACzB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC;IACvB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;IACzB,CAAC,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC;IACpC,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC5B,CAAC,SAAS,CAAC;IACX,CAAC,MAAM,CAAC;IACR,CAAC,KAAK,CAAC;IACP,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;IAChD,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;IAClD,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;CAC/C,CAAC;AAEF,SAAS,aAAa,CAAC,CAAS;IAC9B,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAC9C,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAC9C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,OAAe;IACrD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAA4D,CAAC;IACjE,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAA8B,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;YAAE,SAAS;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrD,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,GAAW;IACrD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,oDAAoD;IACpD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAEpE,uEAAuE;IACvE,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACtD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,CACjC,CAAC;IACF,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IAED,wEAAwE;IACxE,mGAAmG;IACnG,qEAAqE;IACrE,wCAAwC;IACxC,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,IAAI,CAAC;QACH,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YACrD,IAAI,UAAU,CAAC,KAAK,CAAC;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;QACxD,CAAC;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAmBD,MAAM,UAAU,oBAAoB,CAAC,IAGpC;IACC,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAE5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAEtC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAEzC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAErC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/D,IAAI,UAAU,IAAI,wBAAwB,EAAE,CAAC;QAC3C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,OAAO;YACpB,YAAY,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;YAC3C,kBAAkB,EAAE,MAAM,CAAC,IAAI;YAC/B,mBAAmB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;YAC3D,WAAW,EAAE,UAAU;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IAC3C,OAAO;QACL,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,OAAO;QACpB,YAAY,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;QAC3C,kBAAkB,EAAE,MAAM,CAAC,IAAI;QAC/B,mBAAmB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;QAC3D,WAAW,EAAE,UAAU;QACvB,MAAM,EACJ,wCAAwC,OAAO,cAAc,MAAM,4CAA4C;YAC/G,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK;YAC/E,0IAA0I;KAC7I,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change_coverage.d.ts","sourceRoot":"","sources":["../../src/evidence/change_coverage.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,oGAAoG;IACpG,SAAS,EAAE,MAAM,CAAC;IAClB,0FAA0F;IAC1F,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAI5C,CAAC;AAUF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gGAAgG;IAChG,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,wBAAwB;IACxB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;CACnB;AA0TD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,oBAAqD,GAC5D,qBAAqB,
|
|
1
|
+
{"version":3,"file":"change_coverage.d.ts","sourceRoot":"","sources":["../../src/evidence/change_coverage.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,oGAAoG;IACpG,SAAS,EAAE,MAAM,CAAC;IAClB,0FAA0F;IAC1F,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,8BAA8B,EAAE,oBAI5C,CAAC;AAUF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gGAAgG;IAChG,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,wBAAwB;IACxB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;CACnB;AA0TD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,MAAM,GAAE,oBAAqD,GAC5D,qBAAqB,CA+GvB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,OAAO,GACX,oBAAoB,CAgBtB;AAED,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -368,7 +368,28 @@ export function evaluateChangeCoverage(cwd, runId, config = DEFAULT_CHANGE_COVER
|
|
|
368
368
|
let reason;
|
|
369
369
|
let nextStep = "";
|
|
370
370
|
if (passed) {
|
|
371
|
-
|
|
371
|
+
// 0.1.54 E7 — Always surface the credit detail on PASS, including a
|
|
372
|
+
// breakdown by entry kind and up to 3 sample exercised display names.
|
|
373
|
+
// Photometry-DB E2E #11 had `change_coverage_evidence: PASS` with an
|
|
374
|
+
// empty reason; the agent's gate-response summary then had nothing
|
|
375
|
+
// to cite, so it slipped into "all gates green" boilerplate.
|
|
376
|
+
const kindBreakdown = considered.reduce((acc, p) => {
|
|
377
|
+
const k = p.entry.kind;
|
|
378
|
+
acc[k] = (acc[k] ?? 0) + 1;
|
|
379
|
+
return acc;
|
|
380
|
+
}, {});
|
|
381
|
+
const breakdownStr = Object.entries(kindBreakdown)
|
|
382
|
+
.map(([k, n]) => `${k}: ${n}`)
|
|
383
|
+
.join(", ");
|
|
384
|
+
const sampleNames = exercised.slice(0, 3).map((p) => p.display_name).join("; ");
|
|
385
|
+
const detailParts = [
|
|
386
|
+
`Credited ${exercised.length}/${considered.length} manifest entries (>= ${(config.threshold * 100).toFixed(0)}% threshold).`,
|
|
387
|
+
];
|
|
388
|
+
if (breakdownStr)
|
|
389
|
+
detailParts.push(`By kind: ${breakdownStr}.`);
|
|
390
|
+
if (sampleNames)
|
|
391
|
+
detailParts.push(`Sample exercised: ${sampleNames}.`);
|
|
392
|
+
reason = detailParts.join(" ");
|
|
372
393
|
}
|
|
373
394
|
else {
|
|
374
395
|
reason =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change_coverage.js","sourceRoot":"","sources":["../../src/evidence/change_coverage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"change_coverage.js","sourceRoot":"","sources":["../../src/evidence/change_coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 0.1.54 E2 — cycle_issues.jsonl
|
|
3
|
+
*
|
|
4
|
+
* Photometry-DB E2E #11 shipped at 100% confidence with `ready_for_review`
|
|
5
|
+
* even though three real recurrence-class issues happened mid-cycle:
|
|
6
|
+
* 1. Stuck OpenFolderDialog modal that no close strategy could clear.
|
|
7
|
+
* 2. Build/runtime binary mismatch (bin/Release vs publish/PhotometryDB-Beta).
|
|
8
|
+
* 3. Hard restart of the recorded app to drain the modal stack.
|
|
9
|
+
*
|
|
10
|
+
* They were buried in the dev log Markdown but never surfaced to the
|
|
11
|
+
* user. This module provides a structured evidence channel — one JSONL
|
|
12
|
+
* line per issue under <run>/logs/cycle_issues.jsonl — that the gate
|
|
13
|
+
* check can read and BLOCK on until the agent enumerates them in its
|
|
14
|
+
* gate response (see the new `cycle_issues_acknowledged` blocker gate).
|
|
15
|
+
*
|
|
16
|
+
* The file is append-only across a single run. Resolutions are written
|
|
17
|
+
* to a sibling cycle_issue_resolutions.jsonl by the agent (or by other
|
|
18
|
+
* tools that fix the issue, e.g. when a subsequent kill_modal_window
|
|
19
|
+
* succeeds it implicitly resolves the original modal_close_failed).
|
|
20
|
+
*/
|
|
21
|
+
export type CycleIssue = {
|
|
22
|
+
kind: "click_missed_target";
|
|
23
|
+
selector?: string;
|
|
24
|
+
coords?: [number, number];
|
|
25
|
+
description?: string;
|
|
26
|
+
modal_kind?: string;
|
|
27
|
+
timestamp: string;
|
|
28
|
+
} | {
|
|
29
|
+
kind: "modal_close_failed";
|
|
30
|
+
modal_kind: string;
|
|
31
|
+
modal_description?: string;
|
|
32
|
+
strategies_tried: string[];
|
|
33
|
+
hwnd?: string;
|
|
34
|
+
timestamp: string;
|
|
35
|
+
} | {
|
|
36
|
+
kind: "app_restart_during_recording";
|
|
37
|
+
reason: string;
|
|
38
|
+
hwnd?: string;
|
|
39
|
+
pid?: number;
|
|
40
|
+
timestamp: string;
|
|
41
|
+
} | {
|
|
42
|
+
kind: "binary_mismatch";
|
|
43
|
+
target_app: string;
|
|
44
|
+
binary_mtime: string;
|
|
45
|
+
newest_source_mtime: string;
|
|
46
|
+
newest_source_path?: string;
|
|
47
|
+
lag_seconds: number;
|
|
48
|
+
timestamp: string;
|
|
49
|
+
} | {
|
|
50
|
+
kind: "high_failure_rate";
|
|
51
|
+
failed: number;
|
|
52
|
+
successful: number;
|
|
53
|
+
total: number;
|
|
54
|
+
ratio: number;
|
|
55
|
+
timestamp: string;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Distribute Omit across the discriminated union so each variant keeps
|
|
59
|
+
* its discriminator. A naive Omit<CycleIssue, "timestamp"> collapses the
|
|
60
|
+
* union to the intersection of the variants and TS rejects every
|
|
61
|
+
* variant-specific field at the call site.
|
|
62
|
+
*/
|
|
63
|
+
type DistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K & keyof T> : never;
|
|
64
|
+
export type CycleIssueInput = DistributiveOmit<CycleIssue, "timestamp">;
|
|
65
|
+
export interface CycleIssueResolution {
|
|
66
|
+
issue_kind: CycleIssue["kind"];
|
|
67
|
+
resolved_by?: string;
|
|
68
|
+
note?: string;
|
|
69
|
+
timestamp: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Append a cycle issue to <run>/logs/cycle_issues.jsonl. Best-effort —
|
|
73
|
+
* if no run directory exists yet (caller fired before
|
|
74
|
+
* codeloop_start_recording set one up), the call is a silent no-op.
|
|
75
|
+
*/
|
|
76
|
+
export declare function recordCycleIssue(workspaceRoot: string, issue: CycleIssueInput): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Append a resolution. Used both by the agent (via gate_check
|
|
79
|
+
* acknowledgment) and implicitly by tools (e.g. kill_modal_window
|
|
80
|
+
* succeeding clears modal_close_failed).
|
|
81
|
+
*/
|
|
82
|
+
export declare function recordCycleIssueResolution(workspaceRoot: string, resolution: Omit<CycleIssueResolution, "timestamp">): Promise<void>;
|
|
83
|
+
export interface LoadedCycleIssues {
|
|
84
|
+
issues: CycleIssue[];
|
|
85
|
+
resolutions: CycleIssueResolution[];
|
|
86
|
+
/** Issues that have NOT been resolved (no matching resolution kind). */
|
|
87
|
+
unresolved: CycleIssue[];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Load cycle_issues + resolutions from the latest run. Used by the
|
|
91
|
+
* gate_check `cycle_issues_acknowledged` blocker.
|
|
92
|
+
*/
|
|
93
|
+
export declare function loadCycleIssues(workspaceRoot: string): Promise<LoadedCycleIssues>;
|
|
94
|
+
/**
|
|
95
|
+
* Render a one-line summary of an issue for the gate-check directive.
|
|
96
|
+
*/
|
|
97
|
+
export declare function summariseCycleIssue(issue: CycleIssue): string;
|
|
98
|
+
export {};
|
|
99
|
+
//# sourceMappingURL=cycle_issues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cycle_issues.d.ts","sourceRoot":"","sources":["../../src/evidence/cycle_issues.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,8BAA8B,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEN;;;;;GAKG;AACH,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,OAAO,GAC/D,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,GACpB,KAAK,CAAC;AACV,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAExE,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAaD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC,CAYf;AAsBD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,wEAAwE;IACxE,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAkB5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAa7D"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { getArtifactsBaseDir, getRunDir, listRuns } from "./artifacts.js";
|
|
4
|
+
function findLatestRunDir(workspaceRoot) {
|
|
5
|
+
const base = getArtifactsBaseDir(workspaceRoot);
|
|
6
|
+
const runs = listRuns(base);
|
|
7
|
+
if (runs.length === 0)
|
|
8
|
+
return undefined;
|
|
9
|
+
return getRunDir(runs[0], base);
|
|
10
|
+
}
|
|
11
|
+
const CYCLE_ISSUES_FILE = "cycle_issues.jsonl";
|
|
12
|
+
const CYCLE_RESOLUTIONS_FILE = "cycle_issue_resolutions.jsonl";
|
|
13
|
+
async function resolveLogsDir(workspaceRoot) {
|
|
14
|
+
const runDir = findLatestRunDir(workspaceRoot);
|
|
15
|
+
if (!runDir)
|
|
16
|
+
return undefined;
|
|
17
|
+
const logsDir = path.join(runDir, "logs");
|
|
18
|
+
await fs.mkdir(logsDir, { recursive: true });
|
|
19
|
+
return logsDir;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Append a cycle issue to <run>/logs/cycle_issues.jsonl. Best-effort —
|
|
23
|
+
* if no run directory exists yet (caller fired before
|
|
24
|
+
* codeloop_start_recording set one up), the call is a silent no-op.
|
|
25
|
+
*/
|
|
26
|
+
export async function recordCycleIssue(workspaceRoot, issue) {
|
|
27
|
+
try {
|
|
28
|
+
const logsDir = await resolveLogsDir(workspaceRoot);
|
|
29
|
+
if (!logsDir)
|
|
30
|
+
return;
|
|
31
|
+
const file = path.join(logsDir, CYCLE_ISSUES_FILE);
|
|
32
|
+
const line = JSON.stringify({ ...issue, timestamp: new Date().toISOString() }) + "\n";
|
|
33
|
+
await fs.appendFile(file, line, "utf-8");
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// intentional: never let evidence writes throw out of a tool path.
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Append a resolution. Used both by the agent (via gate_check
|
|
41
|
+
* acknowledgment) and implicitly by tools (e.g. kill_modal_window
|
|
42
|
+
* succeeding clears modal_close_failed).
|
|
43
|
+
*/
|
|
44
|
+
export async function recordCycleIssueResolution(workspaceRoot, resolution) {
|
|
45
|
+
try {
|
|
46
|
+
const logsDir = await resolveLogsDir(workspaceRoot);
|
|
47
|
+
if (!logsDir)
|
|
48
|
+
return;
|
|
49
|
+
const file = path.join(logsDir, CYCLE_RESOLUTIONS_FILE);
|
|
50
|
+
const line = JSON.stringify({ ...resolution, timestamp: new Date().toISOString() }) +
|
|
51
|
+
"\n";
|
|
52
|
+
await fs.appendFile(file, line, "utf-8");
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
/* swallow */
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function readJsonl(filePath) {
|
|
59
|
+
try {
|
|
60
|
+
const raw = await fs.readFile(filePath, "utf-8");
|
|
61
|
+
return raw
|
|
62
|
+
.split("\n")
|
|
63
|
+
.map((line) => line.trim())
|
|
64
|
+
.filter((line) => line.length > 0)
|
|
65
|
+
.map((line) => {
|
|
66
|
+
try {
|
|
67
|
+
return JSON.parse(line);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
})
|
|
73
|
+
.filter((entry) => entry !== null);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Load cycle_issues + resolutions from the latest run. Used by the
|
|
81
|
+
* gate_check `cycle_issues_acknowledged` blocker.
|
|
82
|
+
*/
|
|
83
|
+
export async function loadCycleIssues(workspaceRoot) {
|
|
84
|
+
const runDir = findLatestRunDir(workspaceRoot);
|
|
85
|
+
const empty = { issues: [], resolutions: [], unresolved: [] };
|
|
86
|
+
if (!runDir)
|
|
87
|
+
return empty;
|
|
88
|
+
const logsDir = path.join(runDir, "logs");
|
|
89
|
+
const issuesFile = path.join(logsDir, CYCLE_ISSUES_FILE);
|
|
90
|
+
const resolutionsFile = path.join(logsDir, CYCLE_RESOLUTIONS_FILE);
|
|
91
|
+
const [issues, resolutions] = await Promise.all([
|
|
92
|
+
readJsonl(issuesFile),
|
|
93
|
+
readJsonl(resolutionsFile),
|
|
94
|
+
]);
|
|
95
|
+
// Resolution match is by kind. We deliberately stay simple — one
|
|
96
|
+
// resolution of kind X clears all currently-recorded issues of kind X.
|
|
97
|
+
// The gate's directive tells the agent to acknowledge each kind
|
|
98
|
+
// explicitly, which makes per-instance tracking unnecessary.
|
|
99
|
+
const resolvedKinds = new Set(resolutions.map((r) => r.issue_kind));
|
|
100
|
+
const unresolved = issues.filter((i) => !resolvedKinds.has(i.kind));
|
|
101
|
+
return { issues, resolutions, unresolved };
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Render a one-line summary of an issue for the gate-check directive.
|
|
105
|
+
*/
|
|
106
|
+
export function summariseCycleIssue(issue) {
|
|
107
|
+
switch (issue.kind) {
|
|
108
|
+
case "click_missed_target":
|
|
109
|
+
return `click_missed_target — ${issue.description ?? issue.selector ?? `coords ${JSON.stringify(issue.coords ?? null)}`}${issue.modal_kind ? ` (modal_kind=${issue.modal_kind})` : ""}`;
|
|
110
|
+
case "modal_close_failed":
|
|
111
|
+
return `modal_close_failed — kind=${issue.modal_kind}, tried=[${issue.strategies_tried.join(", ")}], hwnd=${issue.hwnd ?? "n/a"}`;
|
|
112
|
+
case "app_restart_during_recording":
|
|
113
|
+
return `app_restart_during_recording — ${issue.reason}`;
|
|
114
|
+
case "binary_mismatch":
|
|
115
|
+
return `binary_mismatch — target=${issue.target_app}, binary mtime=${issue.binary_mtime}, source mtime=${issue.newest_source_mtime} (lag=${issue.lag_seconds}s)`;
|
|
116
|
+
case "high_failure_rate":
|
|
117
|
+
return `high_failure_rate — ${issue.failed}/${issue.total} attempts failed (${(issue.ratio * 100).toFixed(1)}%)`;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=cycle_issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cycle_issues.js","sourceRoot":"","sources":["../../src/evidence/cycle_issues.ts"],"names":[],"mappings":"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"}
|