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
ef32c8e9ee
docs(security): refresh GateGuard evidence for the latency changes
2026-09-30 11:36: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
4b02f66951
docs(gateguard): refresh evaluation and security evidence
2026-09-30 00:24:50 -04:00
Jeffrey Montoya
f19425dbf1
docs(gateguard): move change-profile notes into their own file
2026-09-30 00:23:08 -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
8438f040ac
docs(security): add AgentShield evidence for GateGuard fact-force
2026-09-29 23:30:41 -04:00
Jeffrey Montoya
a202f31b78
docs(security): add GateGuard fact-force security evidence
2026-09-29 22:20:41 -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
d4045c7370
docs(gateguard): document NotebookEdit, hard links and exempt precedence
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
bd4584b5ed
docs(gateguard): add evaluation results
2026-09-29 21:50:20 -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
979d5be822
docs(gateguard): move code rationale to design notes
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
f84d31a83f
docs(gateguard): clarify when the sibling time window applies
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 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
332d3d8fef
Update scripts/lib/gateguard-target-class.js
...
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-09-29 21:50:11 -04:00
Jeffrey Montoya
92b9d7c7be
docs(gateguard): document first-touch classes, search credit, and denial cap
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
Affaan Mustafa and GitHub
c70874fae9
feat(pi): curated pi/core skills+prompts profile, CI load test, and 2.2.2 release sync ( #3264 )
...
Adds a curated, Pi-native, skills+prompts-only profile at pi/core/ for downstream packagers that mirror GitHub Releases.
- manifests/pi-core.json: explicit include lists, per-item exclusion reasons, curation rules, safety allowlists; every root skill and command must be classified.
- scripts/build-pi-core.js regenerates pi/core deterministically (package.json from VERSION, LICENSE, README.md, CURATION.md, skills/, commands/); --check fails CI on drift. council is renamed ecc-council inside pi/core only.
- Safety checks: no callable endpoints outside the allowlist, no npx/curl|sh/pip install, no secrets, no absolute home paths, no symlinks, valid frontmatter, no duplicate names.
- CI: build + drift check and an offline Pi CLI load test of pi/core.
- Release: VERSION, package.json and pi/core/package.json at 2.2.2, CHANGELOG, tag-triggered release verification, and a two-week cadence in CONTRIBUTING.md.
pi/core: 123 of 293 skills and 24 of 94 commands; 35,006 characters of skill description text.
v2.2.2
2026-09-29 20:24:05 -05:00
haelyra and GitHub
d30588f90a
Merge pull request #3251 from affaan-m/affaan/integrate-reviewed-followups-20260928
...
fix: integrate reviewed contributor repairs and bounded installer tests
2026-09-29 19:04:47 -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