Jeffrey Montoya
2ec52af6d0
perf(gateguard): profile a change only when used and check its window first
2026-09-30 12:13:18 -04:00
Jeffrey Montoya
d39fcd8ac3
refactor(gateguard): read the transcript tail through a small shared module
2026-09-30 12:13:10 -04:00
Jeffrey Montoya
d95aa3425e
feat(gateguard): measure hook latency in fresh processes
2026-09-30 11:35:49 -04:00
Jeffrey Montoya
eab92ed21d
perf(gateguard): skip plain character runs when lexing code
2026-09-30 11:35:49 -04:00
Jeffrey Montoya
b7f80ff012
perf(gateguard): load modules and parse searches only when a call needs them
2026-09-30 11:35:49 -04:00
Jeffrey Montoya
b15c0538f6
refactor(gateguard): split change profile and search filters into focused modules
2026-09-30 00:23:08 -04:00
Jeffrey Montoya
3055eb3746
fix(gateguard): link SARIF findings to the evaluated corpus
2026-09-30 00:04:11 -04:00
Jeffrey Montoya
1221a8727f
fix(gateguard): honour directory-qualified include globs
2026-09-30 00:04:11 -04:00
Jeffrey Montoya
216fe89c36
feat(gateguard): write scenario gate results as SARIF
2026-09-29 22:20:41 -04:00
Jeffrey Montoya
8a1f763184
test(gateguard): create file symlinks for the hard-link case on Windows
2026-09-29 21:50:27 -04:00
Jeffrey Montoya
10639a0c9e
fix(gateguard): gate NotebookEdit and hard-linked targets
...
NotebookEdit is gated as a first-touch edit of notebook_path.
A file with more than one hard link gets no credit, trivial, sibling or cap allowance.
2026-09-29 21:50:26 -04:00
Jeffrey Montoya
4e33e29005
test(gateguard): use descriptive helper and fixture names
2026-09-29 21:50:26 -04:00
Jeffrey Montoya
7a8d8437ef
test(gateguard): add comment-context and exported-member scenarios
2026-09-29 21:50:26 -04:00
Jeffrey Montoya
20eb2395e9
fix(gateguard): gate MultiEdit by its file_path and widen surface checks
...
Also refuses rg -z as read-only and never writes metrics through a symlink.
2026-09-29 21:50:26 -04:00
Jeffrey Montoya
6e677b008c
fix(gateguard): judge comment-only edits against the file they change
2026-09-29 21:50:25 -04:00
Jeffrey Montoya
82420f061a
fix(gateguard): treat directive comments and continuations as code
2026-09-29 21:50:24 -04:00
Jeffrey Montoya
42e9072136
feat(gateguard): credit test files by their module stem
...
Drop the hardcoded baseline alias from the evaluation script and refresh the results.
2026-09-29 21:50:23 -04:00
Jeffrey Montoya
21ea5f96a8
feat(gateguard): profile shell scripts and Python module constants
2026-09-29 21:50:22 -04:00
Jeffrey Montoya
0301055327
feat(gateguard): build condensed code hints from the question ids
2026-09-29 21:50:21 -04:00
Jeffrey Montoya
142ecf8fdb
test(gateguard): replay the scenario corpus as a regression test
2026-09-29 21:50:20 -04:00
Jeffrey Montoya
f7e4735cca
feat(gateguard): add scenario corpus and evaluation script
...
Replays 16 labelled sessions against the working tree and git-ref baselines.
2026-09-29 21:50:20 -04:00
Jeffrey Montoya
4c035dd834
feat(gateguard): record opt-in decision metrics
2026-09-29 21:50:20 -04:00
Jeffrey Montoya
d591999ec0
feat(gateguard): add metrics event schema and report script
2026-09-29 21:50:19 -04:00
Jeffrey Montoya
15d4f169d3
feat(gateguard): gate sensitive targets in subagents
...
A subagent's pass does not unlock the path for the parent.
2026-09-29 21:50:19 -04:00
Jeffrey Montoya
6f0fbb6bc9
feat(gateguard): keep session-keyed state for 8 idle hours
...
The project-directory fallback keeps the 30-minute window.
2026-09-29 21:50:18 -04:00
Jeffrey Montoya
77ddf9a792
feat(gateguard): pass read-only shell commands before the routine gate
...
The first command that can change something is still gated.
2026-09-29 21:50:17 -04:00
Jeffrey Montoya
c3b2a7e627
feat(gateguard): name the closest search that did not count
...
One sanitized line in the denial with a reason code, from the cached turn scan.
2026-09-29 21:50:15 -04:00
Jeffrey Montoya
ad0d9183ff
feat(gateguard): pass comment and whitespace-only edits
...
The file stays unchecked, so the next code change is still gated; counted in trivial_allows.
2026-09-29 21:50:14 -04:00
Jeffrey Montoya
10f67715b1
feat(gateguard): ask code questions that fit the change
...
Stable question ids; local call sites instead of importers when no public
declaration is touched; data question only when the change handles data.
2026-09-29 21:50:13 -04:00
Jeffrey Montoya
a7fd960b20
feat(gateguard): add change profile for first-touch edits
...
Pure, bounded analysis of Edit/Write text: public surface, data handling, and comment/whitespace-only edits.
2026-09-29 21:50:12 -04:00
Jeffrey Montoya
ea86d156fe
refactor(gateguard): move search evidence and state helpers to lib
2026-09-29 21:50:12 -04:00
Jeffrey Montoya
442a6da150
test(gateguard): cover added sensitive key and credential names
...
List id_ecdsa, id_dsa, .netrc and .pgpass as sensitive in the skill docs.
2026-09-29 21:50:12 -04:00
Jeffrey Montoya
bd12ff4cfa
fix(gateguard): recognise all PowerShell -Exclude spellings
...
Filter parameters resolve by unambiguous prefix, colon form and comma lists.
Unresolvable parameters and their values are never a stem source.
2026-09-29 21:50:11 -04:00
Jeffrey Montoya
e5b95ce921
fix(gateguard): match glob bracket classes exactly
...
Include and exclusion globs now honour class members, ranges and negation.
A malformed class admits nothing as an include and covers the target as an exclusion.
2026-09-29 21:50:11 -04:00
Jeffrey Montoya and SulimanAbdulrazzaq
e98a9da288
feat(gateguard): improve first-touch signal quality and session efficiency
...
- Ask class-specific first-touch questions (instruction, test, prose,
config, code); code questions are unchanged.
- Credit a completed Glob/Grep/LS or shell search from the current human
turn that covered the target; Read and exclusion globs never count.
- Collapse same-class new-file creations in one directory within a turn.
- Add opt-in GATEGUARD_FACT_FORCE_MAX_DENIALS session cap (from #2755 ).
- Always gate sensitive targets, judged on lexical and real paths.
- Canonicalize checked-path keys.
Closes #2608
Co-authored-by: SulimanAbdulrazzaq <suliman9000a@gmail.com >
2026-09-29 21:49:46 -04:00
haelyra and GitHub
759d841b24
merge: preserve PR #3243 rollback redraw regression
2026-09-29 18:25:59 -04:00
haelyra
51a59a1112
test(gateguard): align spawned hook timeouts
2026-09-29 18:22:26 -04:00
haelyra and GitHub
dc3f44ad5a
Merge branch 'main' into affaan/integrate-reviewed-followups-20260928
2026-09-29 18:13:54 -04:00
Santhi Prakash and GitHub
bd9402f774
fix(hooks): scope MCP health checks to MCP tools ( #2838 )
...
Anchor the PreToolUse and PostToolUseFailure MCP health-check matchers so non-MCP tool calls do not spawn the health hook.
2026-09-29 15:08:37 -04:00
pasmud
a85f43b1fa
test(control-pane): assert the rollback redraws without waiting for a resize
...
The malformed-drawing rollback test took its marker baseline before the
malformed poll but only checked it after resizeAgain(). Resize redraws
the accepted view on its own, so the test still passed with the
immediate rollback redraw removed and the canvas left blank until the
operator resized.
Record the log position alongside the baseline and assert the retained
markers are on the canvas immediately after the malformed poll, before
any resize. Scoped to the drawing case, since the events and lanes
cases fail before draw() starts and correctly do not redraw.
Mutating the implementation confirms the assertion bites: disabling the
rollback draw and removing it entirely both fail it with the message
"the rollback must redraw the retained markers immediately".
Test-only change. control-plane-view-ui 27/27, control-plane-view
13/13, control-plane-view-ui-a11y 18/18, ESLint clean on the test file.
2026-09-29 14:02:41 +00:00
affaan-m
93fca4a604
Merge reviewed Biome-filename correction from PR2835
...
Source-PR: https://github.com/affaan-m/ECC/pull/2835
Source-Head: 7ffea7091a
2026-09-28 07:07:45 -04:00
affaan-m
e10bbaa492
Merge reviewed append-assignment correction from PR2965
...
Source-PR: https://github.com/affaan-m/ECC/pull/2965
Source-Head: eca846248d
2026-09-28 07:07:45 -04:00
affaan-m
7ffea7091a
fix(hooks): distinguish Biome configs from results files
...
Preserve the original contributor histories and apply the exact independently reviewed repair.
Source-Parent: 74023e5689
Review-Manifest-SHA256: 208a6350119857df7c1e5b83a46cdba0b7f7399f58ed60167397920c7a21b454
2026-09-28 07:07:07 -04:00
affaan-m
eca846248d
fix(hooks): track append assignments in Git override checks
...
Preserve the original contributor histories and apply the exact independently reviewed repair.
Source-Parent: dee884656e
Review-Manifest-SHA256: 0c7eeef7c2722a605d049daf2dc3c2473c10dd616005afcba21049fc036d8ce9
2026-09-28 07:05:14 -04:00
affaan-m
e41c9241f5
test(installer): pass capability probe as a private script file
...
Preserve the original contributor histories and apply the exact independently reviewed repair.
Source-Parent: aa0ea42882
Review-Manifest-SHA256: 3d35033783c03f7660b6795e20c1de588fc1cd48850b208e36add955e2446ad7
2026-09-28 06:43:02 -04:00
affaan-m
5d4cca811d
test: bound installer child shutdown and preserve diagnostics
...
Keep the original wrapper assertions while supervising owned child groups through pipe closure, reporting failed capability probes, and preserving aggregate counts.
Reviewed-Base: 807f07a687
Source-Manifest-SHA256: 75176a5cfe5345cc93c20fb748ba5a1f159fdeb171b12ae7a8619979fa55edd9
Final-Source-SHA256: 691cb15f7356845a2cc4f84277ff5fd24cd6210ec9995ffefea0ab19509ba076
2026-09-28 06:10:43 -04:00
affaan-m
807f07a687
Merge reviewed Git environment scope correction for PR2965
...
Source-PR: https://github.com/affaan-m/ECC/pull/2965
Source-Head: dee884656e
2026-09-28 05:39:46 -04:00
affaan-m
dee884656e
fix(hooks): preserve Git configuration across shell command scopes
...
Preserve contributor history while applying the exact reviewed current-main repair.
Source-PR: https://github.com/affaan-m/ECC/pull/2965
Source-Parent: ec0753bc7f
Review-Manifest-SHA256: 0172e3e695e672305f9bc41b0d385d2a299d8ec520c763dd9d7f6da743f76971
2026-09-28 05:38:05 -04:00
affaan-m
6bcc31358e
Merge reviewed Plan Canvas test termination correction
...
Source-PR: https://github.com/affaan-m/ECC/pull/3241
Review-Manifest-SHA256: 281ec1d297672ff9986406c47e210b41590e00926b8da5071eceeedef8c51833
2026-09-28 05:20:21 -04:00
affaan-m
cc1539fda0
test(plan-canvas): bound stalled cleanup and flush results before exit
...
Preserve contributor history while applying the exact reviewed current-main repair.
Source-PR: https://github.com/affaan-m/ECC/pull/3241
Source-Parent: 63f30ffc36
Review-Manifest-SHA256: 281ec1d297672ff9986406c47e210b41590e00926b8da5071eceeedef8c51833
2026-09-28 05:18:12 -04:00