Commit Graph
530 Commits
Author SHA1 Message Date
montjeffrey 8e99eaa4e3 perf(context): load the registry once per resolution and routing index build
compileContextProfile now validates its options, loads the registry and
calls compileContextPlan(registry, options), which compiles against a
registry the caller loaded in the same call. resolveTaskContext and
routingEntries load the registry once and compile from it, so the sources
are hashed once per call instead of twice.

On this repository (full@1, Windows 11, median of 5):
resolveTaskContext 1332 ms -> 645 ms, routingEntries 1321 ms -> 721 ms.

The registry never comes from outside the call: nothing caches it or
accepts one from a caller, so a stale or forged registry cannot be passed
in. The two "Registry changed during ..." checks compared the two loads and
are gone with the second load; each call now works from one snapshot, and
skill bytes are still verified against it when read. compileContextProfile
keeps its signature, output and error order.

Split out of #2945, whose prompt hook is superseded by #3453.
2026-10-11 10:33:21 -04:00
haelyra 3d8f31285f fix: preserve rg type case and filename exclusion scope 2026-10-11 05:35:14 -04:00
haelyra bdc9f4b04e Merge verified usage display and actual Compose callback corrections 2026-10-11 03:58:18 -04:00
haelyra 3e395c6b76 fix: preserve opt-in usage data and publish networked callbacks 2026-10-11 03:53:30 -04:00
haelyra 58b704977a fix: correct late search credit and security test gates 2026-10-11 03:51:36 -04:00
haelyra 2bfee727e2 fix(install): preserve user TypeScript module scopes and retained boundaries 2026-10-11 03:32:07 -04:00
haelyra dbfd6ab009 fix: protect commands-only CommonJS runtime in Claude installs
Reuse the existing scripts boundary asset and guard for commands-core without hooks. Preflight selected helper scopes and preserve user module metadata, unowned/edited JS interpretation, and boundary ownership through uninstall. Actual installed ESM help/JSON, receipt, reinstall/uninstall and 34 focused cases pass. OpenCode boundary 8/8, adapters 51/51, manifests 43/43; focused coverage exceeds 80%. Two root-owned legacy ESM core-profile fixtures require correction; no unsupported states weakened.
2026-10-11 03:04:04 -04:00
haelyra f58f15af30 Merge branch 'steward/install-20261011' of /Users/hira/Documents/ECC/ecc-review-install-20261011 into integration/ecc-043-20261011 2026-10-11 02:14:56 -04:00
haelyra d6aab8393f Merge branch 'steward/docs-providers-20261011' of /Users/hira/Documents/ECC/ecc-review-docs-providers-20261011 into integration/ecc-043-20261011
# Conflicts:
#	manifests/context-packs/skill-triggers@1.json
2026-10-11 02:14:56 -04:00
haelyra dadfdd6691 Merge branch 'steward/security-20261011' of /Users/hira/Documents/ECC/ecc-review-security-20261011 into integration/ecc-043-20261011 2026-10-11 02:14:22 -04:00
haelyra 3add1816ea feat: offer an opt-in local Claude usage display
Scoped adaptation of PR #2716: keep compact rendering as the default and require ECC_STATUSLINE_USAGE=1. Installer registration, managed aliases and the Codex background bar remain outside this slice.
2026-10-11 02:09:06 -04:00
haelyra e611cf66d0 fix(state): serialize work-item claims and preserve existing ownership 2026-10-11 02:08:19 -04:00
haelyra 6233b648f9 fix(hooks): resolve bootstrap from selected Claude config root 2026-10-11 02:03:45 -04:00
haelyra 43febb9ada fix: preserve opt-in GateGuard contract questions from PR 3497 2026-10-11 02:00:27 -04:00
haelyra bd96347002 fix: preserve target-scoped GateGuard search credit from PR 3496 2026-10-11 01:57:34 -04:00
haelyra c9a3143aa4 fix: preserve citation intent and current routing evidence gates 2026-10-11 01:56:19 -04:00
haelyra 4f5970bf4f fix(codex): ship named CLI profile files with ownership protection
Reproduced issue #3485 on installed Codex CLI 0.162.0. Keep user legacy choices for explicit migration and verify disposable install, repair, reinstall and removal.
2026-10-11 01:55:54 -04:00
haelyra 7bcb8dabee feat: preserve passive scoped coordination receipts from PR 3128 2026-10-11 01:55:20 -04:00
Yann Roberto d9efa98bb6 fix(install): preserve locale selections during auto-update 2026-10-11 13:41:34 +08:00
montjeffrey f7f47679b6 fix(gateguard): make the external-contract question opt-in
- questionIdsFor and condensedHintFor take an optional
  { externalContract: true }; without it a code change that handles data
  asks data-schema only, and an unknown profile gets the original four
  questions and condensed hint.
- The hook reads GATEGUARD_EXTERNAL_CONTRACT_QUESTION with the same
  spellings as GATEGUARD_METRICS and passes it to the full denial, the
  condensed denial and the metrics record, so all three agree.
- The effectiveness harness's arm patch forwards the option, so an arm
  never drops it silently.

Docs: change-profile.md gains an External-contract question section and
qualifies "byte-identical to the fixed four questions"; design-notes.md,
SKILL.md (switch table, data rule, word-for-word set) and CHANGELOG say
the fifth question is opt-in; question-effectiveness.md and the harness
README note that the runner clears GATEGUARD_* variables, so a gate arm
from a current tree measures the gate without the question.
skill-triggers@1.json: registryDigest refreshed for the SKILL.md body
change; the description and triggers are unchanged.
2026-10-11 00:45:01 -04:00
montjeffrey 64d8971a64 fix(gateguard): credit only searches that could have seen the target
- Read file-type filters as include and exclusion globs: rg -t/--type
  and the Grep tool's type include ripgrep 14.1's globs for the type,
  rg -T/--type-not exclude them, fd -e/--extension includes *.<ext>.
  An unknown type name, --type-add or --type-clear is an unreadable
  filter and never credits, like --exclude-from.
- Treat a path pattern as a filter: the Glob tool's pattern must match
  the target below its root; a shell glob operand must match the target
  or a directory above it; a git pathspec matches the same way with its
  * also matching /. One operand that admits the target is enough.
- Extend "a search of the target itself gives nothing" to searches
  confined to the target's own file name: when every include, the Glob
  pattern, or every path pattern ends in that exact name, the stem never
  credits, and the closest-miss note says it was a lookup.
- Tokenize PowerShell searches with backslashes kept as path separators,
  as the read-only shell check already does; the old literal-prefix scope
  hid that src\core\*.ts reached the parser as srccore*.ts.
- Make an edit non-trivial when either text holds U+2028, U+2029 or
  U+0085, which end a JavaScript or C# line comment; the lexer splits
  lines only at \n and \r.

Extracting applyLongFilter, grepDetail and stemCredits leaves every
touched function at or below its complexity on main.
2026-10-10 23:38:47 -04:00
haelyra f614e82ae5 fix(session): preserve alias identity when its store is unreadable 2026-10-10 20:38:40 -04:00
haelyra 0a181df218 fix(session): preserve optional startup context and independent history reads 2026-10-10 20:14:22 -04:00
haelyra 15834ef199 fix(state): remove the superseded filesystem import 2026-10-10 19:54:44 -04:00
haelyra 068d93251e fix(state): retry Windows sharing reads without dropping published aliases 2026-10-10 19:54:09 -04:00
haelyra 24de70a507 fix(fs): retry bounded Windows atomic rename sharing failures 2026-10-10 18:58:54 -04:00
haelyra 74aace4071 fix(opencode): preserve CommonJS runtime scope and user script ownership 2026-10-10 18:53:22 -04:00
haelyra fa26ba0673 fix(qwen): reject unrepresentable empty tool authority before writes 2026-10-10 18:23:42 -04:00
haelyra be230bd85c feat: integrate reviewed adapters, conversion and GateGuard improvements 2026-10-10 17:53:23 -04:00
haelyra 113f58d8e6 fix(install): reconcile obsolete managed files without deleting edits (#3256) 2026-10-10 17:50:41 -04:00
haelyra 38c40cda73 fix: integrate fourteen reviewed runtime and hook PRs 2026-10-10 17:50:39 -04:00
haelyra 3b24eca2e6 feat(dsh): integrate version-scoped hook setup and distribution wiring 2026-10-10 17:49:37 -04:00
haelyra e9f8c3ca66 Merge PR #3256: reconcile obsolete managed installer files safely
Preserve main OpenCode lease and activation gates and native Claude namespace receipts. Detect same-size in-place edits using bigint modification and change times during hashing and before deletion; verify both races and actual public CLI reinstall lifecycles.
2026-10-10 17:49:10 -04:00
haelyra 2a69663c5c feat: integrate twelve reviewed catalog and documentation PRs 2026-10-10 17:48:53 -04:00
haelyraandmontjeffrey cc48be3c52 fix(context): bind advisory receipts and apply suggestion evidence floors
Port the evidence floor from PR #3480 onto the canonical generation-bound index; preserve policy-v5 anchors and the source PR attribution. Harden PR #3453 receipt metadata and pointer byte bounds.

Co-authored-by: montjeffrey <montjeffrey@gmail.com>
2026-10-10 17:48:20 -04:00
haelyra 603164ae79 feat(review): integrate consent-gated independent Codex review 2026-10-10 17:47:27 -04:00
haelyra a3e9ddfde7 feat(gateguard): integrate evidence-aware first-touch questions 2026-10-10 17:46:23 -04:00
haelyra 810e5c0176 feat(context): integrate generation-bound advisory suggestions (#3453) 2026-10-10 17:44:29 -04:00
haelyra 9d09febe5d fix(skills): scope host compatibility to target projections 2026-10-10 17:44:28 -04:00
haelyra d05a507c8b Merge PR #3490: reserve lifecycle time for Stop persistence
Isolate deadline fixtures from inherited dry-run/disabled hook flags. Remove an unapproved emoji from the new routing regression to satisfy Unicode validation.
2026-10-10 17:43:46 -04:00
haelyraandalizahidraja eb7ffd8d64 feat(agents): integrate isolated Pi conversion foundation from PR 3022
Carry the canonical IR, Pi emitter and source-schema doctor from https://github.com/affaan-m/ECC/pull/3022. Cursor and OpenCode emitters remain with the open source PR pending capability fixes.

Co-authored-by: alizahidraja <alizahidrajaa@gmail.com>
2026-10-10 17:43:18 -04:00
haelyra bb15240c9c fix(install): preserve native Claude names through repair receipts 2026-10-10 17:42:43 -04:00
haelyra b8d34fd134 feat(context): integrate verified isolated Claude generations (#3452) 2026-10-10 17:42:10 -04:00
haelyra c7f2c2f702 fix(context): integrate anchored implicit skill admission (#3451) 2026-10-10 17:40:07 -04:00
haelyra ecf2f31cb7 Merge PR #3476: select native Windows shell paths 2026-10-10 17:39:48 -04:00
haelyra 07c18210eb fix(qwen): adapt managed agents before ownership receipts 2026-10-10 17:38:07 -04:00
haelyra 4b612a73f3 Merge PR #3462: add Arabic locale while preserving Bengali distribution 2026-10-10 17:38:04 -04:00
haelyra 54a9278560 Merge PR #3464: identify hooks by their input sessions 2026-10-10 17:38:00 -04:00
haelyra 41ce11d889 Merge PR #3456: adapt manual Claude component references 2026-10-10 17:37:42 -04:00
haelyra 27875bfd02 Merge PR #3444: track OpenCode skill runs and report measurement gaps 2026-10-10 17:37:11 -04:00