Commit Graph
35 Commits
Author SHA1 Message Date
haelyra e9f95e394f fix: reconcile profile projections and selected-model fallback checks 2026-10-11 03:05:59 -04:00
haelyra 807c98aff6 fix: preserve cheap native context routing from PR 2740 2026-10-11 02:02:55 -04:00
haelyra a4bf7a45ca fix(sanitizer): integrate unreadable audit with portable filename quoting 2026-10-10 17:36:33 -04:00
haelyra b79346d16b feat(frontend): integrate rendered evidence contract from PR 2814 2026-10-10 17:35:32 -04:00
haelyra 5981dd7092 fix: complete reviewed integration workflows and safety checks 2026-10-09 18:54:39 -04:00
haelyra b6e0261903 merge: preserve static MCP dependency review source 3239 2026-10-09 17:04:33 -04:00
haelyra 0aebb36af2 merge: preserve cache guidance source 3173 with measured cost boundaries 2026-10-09 16:27:29 -04:00
haelyra d5abc5c8fc merge: preserve reviewed plan registry source 2914 2026-10-09 16:27:02 -04:00
Tom Elias 05c6b017e1 fix: cover Docker and Python MCP dependency selectors 2026-10-04 09:48:28 +03:00
Tomelias de10a2aca8 fix: sync MCP review skill with upstream and clarify trust boundary 2026-10-04 09:32:20 +03:00
D. Michael Piscitelli b10ed932e6 fix(agents): flag a failed signature read and a missing tally
A signature read that failed after one byte looked like a one-byte text
file and was skipped. The pipeline now runs under pipefail, so the file is
listed as unverified instead.

When cut, sort or uniq is missing, Step 7 says the tally is unavailable.
The count does not depend on them.
2026-10-04 08:04:07 +02:00
D. Michael Piscitelli 39450c9be2 fix(agents): list files the sanitizer cannot read
Step 1 skipped binaries while the role promised to verify the whole project,
so a credential in a spreadsheet, a PDF or an embedded database got a clean
PASS and never showed up in the report.

Step 7 now lists every file that doesn't read as text, plus any directory it
can't enter, and the pipeline stops on that list until a person confirms. On
this repo that's a few dozen files, all images and video, which is why they're
warnings and not failures. It doesn't try to extract or scan them: that needs
nested-archive recursion and size bounds, and I'd rather list a file than
half-scan it.

Detection is a first-byte signature check plus a whole-file NUL/control-byte
test, with file(1) only widening the list. If a detector fails, the file is
listed as unverified.

Filenames are untrusted, so Step 7 writes the paths to a manifest beside the
project directory, for a person to open, and keeps them out of its stdout
and its report section. Beside and not inside, so a re-run's text scans
can't read it back. The script prints the count itself as its last line. A
scan problem, a failed write, a walk that dies early or a run that never
reaches that line gives an unknown count, and the gate treats unknown as a
stop, not as zero.

Step 1 no longer skips *.min.js.

Tests in tests/skills/sanitizer-unreadable.test.js. Editing SKILL.md changes
the skill registry digest, so skill-triggers@1.json carries the new value.
2026-10-04 07:30:24 +02:00
Seekers2001 9909e9e05e fix(docs): clarify Pi router prerequisites 2026-10-02 17:34:13 +08:00
Seekers2001 b43a6770ab Merge upstream/main into codex/docs-governance-audit-foundation 2026-09-30 17:33:07 +08:00
Santhi Prakash c4c5170654 Merge branch 'main' into fix/plan-orchestrate-retired-orchestrate
- Problem: main d30588f9 (integrate-reviewed-followups) added a skill and
  bumped the skill-triggers registryDigest, conflicting with this branch's
  own digest refresh for the plan-orchestrate SKILL.md edit.
- Fix: take main's manifest and recompute registryDigest over the merged
  tree via scripts/lib/context-pack-registry.js; triggers, triggersDigest
  and generatedAt untouched.
- Verification: environment reproduces both sides' committed digests on
  their own trees; merged-tree digest a6b6bce7...; validate-context-profiles
  293 skills OK; plan-orchestrate registry fixtures 8/8; full
  node tests/run-all.js = 704 passed / 0 failed.
2026-09-29 23:41:25 +00:00
Santhi Prakash 8937dde67e Merge branch 'main' of https://github.com/affaan-m/ECC into HEAD 2026-09-28 23:19:24 +00:00
Santhi Prakash 8a6e52c990 test(skills): assert COMMAND-REGISTRY.json is fresh in plan-orchestrate fixtures
- Problem: the registry fixtures validated SKILL.md against the committed docs/COMMAND-REGISTRY.json but nothing in the file asserted the registry itself was fresh, so a standalone run passed against a stale registry (npm test does run command-registry:check first, but this file is also run on its own).
- Fix: rebuild the registry in memory via the exported generateRegistry() and assert deep equality with the committed JSON so drift fails as a regenerate hint with a field diff instead of passing silently; add one sentence to SKILL.md stating that a command retired from commands/ fails closed with the BLOCKED marker like a no-argument command.
- Verification: node tests/skills/plan-orchestrate-registry.test.js passes with the new check 8 (8/8); sabotage with a mutated registry description fails check 8 with the regenerate hint and a field diff.
2026-09-28 17:23:39 +00:00
affaan-m 13b3c5989b test(observer): dispatch status through a fixed private wrapper
Preserve contributor history while applying the exact reviewed current-main repair.

Source-PR: https://github.com/affaan-m/ECC/pull/2878
Source-Parent: 57da51c74b
Review-Manifest-SHA256: a9ff9a500e307cc9031349f086a0d754c3c72fddf999bb97dfbc9c6d7a7b04bd
2026-09-28 03:47:31 -04:00
affaan-m 57da51c74b fix: count observer instinct files using loader eligibility
Preserve contributor intent while handling regular-file symlinks and newline filenames, with private bounded status fixtures.

Source-PR: https://github.com/affaan-m/ECC/pull/2878
Source-Head: e3ab97915f
Integration-Base: d3b8a3e908
2026-09-28 00:20:49 -04:00
Tomelias 8f6b4d6133 test(skills): add MCP dependency review regression coverage 2026-09-25 13:08:55 +03:00
Samuel Bushi 980e637c3c fix: normalize viewport evidence labels 2026-09-25 09:13:36 +02:00
Samuel Bushi c770b08eef fix: require rendered evidence for every target viewport 2026-09-24 12:37:05 +02:00
Samuel Bushi 90481d5e4a fix: consolidate UI evidence gate into frontend design direction 2026-09-24 11:29:32 +02:00
Seekers2001 4da6ae22ec Merge remote-tracking branch 'origin/main' into fix-pr-2943-shortcut-reference
# Conflicts:
#	.claude-plugin/marketplace.json
#	.claude-plugin/plugin.json
#	AGENTS.md
#	README.md
#	README.zh-CN.md
#	docs/tr/AGENTS.md
#	docs/zh-CN/AGENTS.md
#	docs/zh-CN/README.md
2026-09-12 16:36:03 +08:00
f8640355e4 Consolidate recovered eval framework and operator workflows (#3040)
* feat: consolidate offline eval and operator workflows

Compose the retained framework, operator skill, roadmap and cleanup ranges on current main. Preserve current release dependencies and keep candidate execution disabled pending OS containment. Repair draft/DOCX behavior, obligation uniqueness, trusted send and audience guidance, runner provenance and eval diagnostics.

Source-PR: 2930 0abe3727d2b500c6e4830bdeb47ed67cae3f4785
Source-PR: 2931 992b49c44ed872def49675b791168b8fcd091df6
Source-PR: 2932 4a193dd13041cb7a6bebf4d2e910a0cd32bcc797
Source-PR: 2933 59cdfe500a91949ba1415f1edd7279620f21e804
Source-Base: ca185ef5f7

* fix: repair foundation CI and update js-yaml

* fix: reconcile pending-delete capsule locks after close

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 13:20:52 +01:00
Seekers2001 06e67e3a2c fix(skills): harden docs governance audit 2026-09-03 12:33:52 +08:00
Seekers2001 1ea94397b5 feat(skills): add read-only docs governance audit 2026-09-03 10:00:25 +08:00
Santhi Prakash 5bf96bab17 fix(skills): reduce plan-orchestrate to a truthful command router
- Problem: the emitted command does not consume the advertised agent chain
  (each command owns its own execution behavior), and steps mapped to
  argument-less commands were emitted as bare commands with no
  machine-readable link to the intended step.
- Fix: adopt the small-router role — emit only commands whose documented
  argument form can carry the [Plan: <path>#step-<id>] scope marker
  (orch-*, /plan), fail closed with a BLOCKED entry and a manual-use note
  for every other command, derive quoted argument forms from the command
  files instead of an authoritative hand-written table, and drop the
  agent-chain machinery entirely. Adds
  tests/skills/plan-orchestrate-registry.test.js, which validates every
  command the skill names against commands/<name>.md and
  docs/COMMAND-REGISTRY.json and fails when they drift.
- Verification: node tests/skills/plan-orchestrate-registry.test.js (7
  fixture groups pass; sabotage-checked against chain reintroduction,
  wrong scope-carrying claim, and retired-command reference).
2026-09-02 22:08:04 +00:00
Nguyen Thanh Dat e3ab97915f test(observer-status): set process.exitCode so the summary always flushes
Review feedback on #2878. stdout is async when it is a pipe, which is exactly
how tests/run-all.js runs these files, and process.exit() does not wait for
pending writes — so exiting that way can drop the Passed:/Failed: lines the
aggregator totals, defeating the previous commit. The sibling
tests/ci/ito-*-skill.test.js files already use process.exitCode.

Still exits 1 on a broken counter (Passed: 4, Failed: 7) and 0 when clean.
2026-08-25 18:37:00 +07:00
Nguyen Thanh Dat ed6e5a42ee test(observer-status): report every case, not just the first failure
Review feedback on #2878: the static assertions ran at the top level, so a
failure exited the process before the `Passed:`/`Failed:` lines. tests/run-all.js
totals those tokens, so the per-case counts were lost — it still went red via the
non-zero exit, but the granular numbers were not in the totals.

Route every case through the same `runTest()` wrapper the file already used for
the integration cases, and build the case list inside a try so a missing or
renamed `instinct-cli.py` / `start-observer.sh` is a reported failure rather than
a crash.

Reverting the fix now prints `Passed: 4, Failed: 7` and exits 1, naming all seven
broken expectations instead of stopping at the first.
2026-08-25 18:03:35 +07:00
Nguyen Thanh Dat 9af6606142 fix(continuous-learning-v2): count every instinct extension in observer status (#2859)
`start-observer.sh status` globbed `*.yaml`, but the observer prompt tells the
analyzer to write `${INSTINCTS_DIR}/<id>.md` and the loader accepts
`.yaml`, `.yml`, and `.md` (ALLOWED_INSTINCT_EXTENSIONS in
scripts/instinct-cli.py). The one command an operator runs to confirm that
learning works therefore reported `Instincts: 0` on a healthy install — which
is indistinguishable from a silently dead observer, exactly the failure the
status check exists to surface.

Match the loader instead of one of its three extensions, and match how it
enumerates them: `Path.iterdir()` is top level only and `is_file()` skips
directories, so `-maxdepth 1 -type f`; `suffix.lower()` makes the comparison
case-insensitive, so `-iname`. `tr` drops the column padding BSD `wc` emits,
which is why the reported output read `Instincts:        0`.

Verified end to end against the shipped script with 3 `.md`, one `.yaml`, one
`.yml`, one `.YAML`, a `notes.txt`, and a nested `.md`: 1 before, 6 after —
the same six files the loader picks up.
2026-08-25 17:12:08 +07:00
1db5c8ab4a fix(install): harden ECC installer lifecycle
Make Antigravity 2.0 installs native and safely migrate legacy state. Ensure doctor, repair, status projection, repeat installs, legacy Codex sync, and uninstall converge without losing user files. Exclude Python bytecode and harden repo-scan bootstrap guidance.

Gate publishing and pull-request merges on one exact packed artifact completing install, repeat, drift, repair, status, and uninstall across Linux, macOS, and Windows.

Co-authored-by: lorencifernando-coder <lorenci.fernando@gmail.com>

Co-authored-by: Suliman Abdulrazzaq <suliman9000a@gmail.com>

Co-authored-by: Wu Shuwen <mikewushuwen@outlook.com>
2026-08-13 16:42:51 -04:00
haelyra 6ab6cfd9b4 fix: route context checks to native meters 2026-08-09 17:32:15 -04:00
52a3babd5d feat(skills): add secure terminal opener (#2650)
* test(skills): define terminal opener contract

* feat(skills): add secure terminal opener

* fix(skills): report detached terminal errors

* docs: sync terminal opener skill count

* fix(security): require explicit terminal launch

* test(skills): cover terminal opener review findings

* fix(skills): bound terminal launch waits

* test(skills): cover terminal fallback output

* fix(skills): report terminal mux fallback

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 17:24:34 -04:00
haelyraandGitHub d791457aca feat(docker): add hardened CLI test harness (#2625)
* feat(install): add hardened Docker test harness

* feat(docker): complete isolated CLI session lifecycle

* fix(docker): exercise packed public CLI offline

* fix(docker): close hardened harness review gaps

* test(docker): bound harness subprocesses
2026-08-06 16:52:39 -04:00