Commit Graph
2682 Commits
Author SHA1 Message Date
haelyra e54fd44ca5 docs: record profile PR review hardening 2026-09-08 23:58:42 -04:00
haelyra 5f9503e647 fix: bound context source directory traversal (GREEN) 2026-09-08 23:58:20 -04:00
haelyra 9b5e393435 fix: normalize global dry-run before profile parsing
GREEN: node tests/scripts/profile.test.js passes 31/31 after the c373b7fe test-only RED checkpoint. Strip the exact read-only no-op before command recognition so all argument positions preserve the same plan and validation. ESLint and syntax checks pass; independent review confirms unknown commands, missing values, duplicate controls, and immutable caller inputs remain protected.
2026-09-08 23:56:33 -04:00
haelyra ea00894d70 test: bound ECC context directory enumeration (RED) 2026-09-08 23:55:09 -04:00
haelyra c373b7fe02 test: reproduce profile global dry-run ordering
RED: node tests/scripts/profile.test.js reports 27 passed and 4 failed. Leading --dry-run prevents subcommand recognition for show, preview, and explain; parser ordering regression exercises every argument position and preserves malformed-input rejection.
2026-09-08 23:52:58 -04:00
haelyra c1da574a3b docs: record attributed scoping security prerequisite 2026-09-08 23:32:11 -04:00
mylesagnew 7787297275 fix(security): bump js-yaml 4.3.1 -> 4.3.2 (GHSA-2883-xcg3-v3hh)
js-yaml < 4.3.2 is affected by a high-severity uncontrolled-resource-
consumption issue (CWE-400 / CWE-407, CVSS 7.5): maxTotalMergeKeys does
not limit CPU use for empty merge sources, allowing a crafted YAML
document with merge keys to cause a denial of service while parsing.

js-yaml is a direct runtime dependency (it is also pinned via `overrides`
and `resolutions`), so the bump is applied in all three package.json
locations and both lockfiles are regenerated. 4.3.2 is a non-breaking
patch release; `npm audit --audit-level=high` and an immutable
`yarn install` both pass afterward.

Advisory: https://github.com/advisories/GHSA-2883-xcg3-v3hh

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
(cherry picked from commit 5674661fc3)
2026-09-08 23:29:44 -04:00
haelyra 78cbd01cfd test: make ECC-029 security fixtures portable (GREEN)
30 library, 25 CLI and 3 CI cases pass. Simulated Windows file-link denial: 17 passed, one explicit native-file-link skip; mandatory leaf and directory substitution checks retained. Hardened immutable Yarn install passes in an isolated archive. Runtime code unchanged.
2026-09-08 23:23:39 -04:00
haelyra 88f5a99637 test: require portable ECC-029 directory-link fixtures (RED)
New helper contract fails as intended: 15 passed, 1 failed. Review separately reproduced 12 passed, 3 failed with symlink permission denial.
2026-09-08 23:22:11 -04:00
haelyra 0dbe3a9434 feat: implement ECC-029 read-only context profiles (GREEN)
Validate 27 library, 25 CLI and 3 CI cases; full suite reports 4423 passed, zero failed. New-code coverage: 98.43% statements/lines, 90% branches, 100% functions. Lint and real packed offline consumer smoke pass. Preserve read-only state, source provenance, explicit target gaps and unobserved activation.
2026-09-08 20:53:40 -04:00
haelyra 254a6cc198 test: reject ECC-029 terminal control output (RED)
CLI test run reaches 24 passes and one failure: an unknown skill ID with an OSC escape reaches stderr. Also preserve coverage instrumentation and reject missing-module false positives in input-validation assertions.
2026-09-08 20:39:06 -04:00
haelyra f01d336618 test: cover ECC-029 source races and metadata controls (RED)
Core reviewer probes reproduced ancestor symlink redirection and terminal escape output. The expanded core run reported 23 passing and 3 expected failures for ancestor substitution, metadata controls, and generated-cache digest stability before the fixes. Added exact 8000/8001 boundary and bounded-source fixtures.
2026-09-08 20:38:43 -04:00
haelyra 5fcd9e089b test: require ECC-029 context profile CI gate (RED)
Three executed tests fail for missing validator, unknown-flag behavior, and absent package test registration. Validator must inspect all profile/target combinations without claiming native certification.
2026-09-08 20:32:47 -04:00
haelyra 4c1b938ba5 test: define ECC-029 context registry and compiler contracts (RED)
Node test execution fails at the intended missing context-pack-registry/context-profiles implementations. Contract cases cover deterministic digests, inert resource hashing, strict metadata and selectors, dependency closure, path safety, budget limits, and unobserved activation.
2026-09-08 20:29:25 -04:00
haelyra cd3950d32b test: add ECC-029 read-only profile CLI journeys (RED)
24 tests execute and fail on missing profile dispatch, missing profile entrypoint, and absent package inclusion. Fixtures preserve isolated user/workspace state and reject unsupported inputs. Security fixture review found no blockers.
2026-09-08 20:28:43 -04:00
Affaan Mustafa 5064474d4d fix: integrate verified ECC 2.2.1 maintenance patches (#3012)
All 48 hosted checks passed on 165074ecf4.

Fixes #2921
Fixes #2924
Fixes #2909
Fixes #2952
Fixes #2964
Fixes #2957
Fixes #2982
v2.2.1
2026-09-07 18:36:32 -04:00
haelyra 165074ecf4 test: fix Windows ownership paths and failure annotations 2026-09-07 18:09:46 -04:00
haelyra 14e731c6d5 fix: close release review gaps and expose failing CI suites 2026-09-07 17:57:26 -04:00
haelyra ba3a64a2c5 fix(setup): preserve preflight guarantees across ownership filtering 2026-09-07 16:53:53 -04:00
haelyra adb39a13c9 test: make release safety fixtures CodeQL-clean
Use literal matching for the forbidden documentation endpoint, pin lifecycle mode/content assertions to one descriptor, and inject parent races through the staged descriptor without forwarding arbitrary file-creation flags.
2026-09-07 16:51:51 -04:00
haelyra d542cbe4cd Merge Windows-safe Claude settings race regression fixtures 2026-09-07 16:51:51 -04:00
haelyra a220947fb5 test(install): exercise settings races safely on Windows
Close fixture-owned descriptors when Windows blocks a directory rename before open returns. Assert OS rejection preserves both settings files and releases staging handles. Move the rename-boundary injection after descriptor close so Windows exercises parent-identity validation without skipping race coverage.
2026-09-07 16:49:20 -04:00
haelyra 8cc31f1e5f docs(release): record reviewed 2.2.1 bug fixes and verification boundaries 2026-09-07 16:41:45 -04:00
c11753d0b9 fix(skills): replace invented autonomous harness setup instructions
Resolve #2957 using the verified MCP reference memory package, native session scheduling, supported CLI invocation and documented computer-use integration. Incorporates the corrective direction from #2977 and #2958, including package-version pinning and regression checks for executable examples.

Co-authored-by: ilkmajans-cpu <ilkmajans-cpu@users.noreply.github.com>

Co-authored-by: kavish-19 <63698788+kavish-19@users.noreply.github.com>
2026-09-07 16:41:45 -04:00
59b74901c4 fix(install): preserve user files and honor uninstall previews
Generalize PR #2981 ownership protection to every managed target. Reject mismatched target state and preserve files that appear during writes or failed-install checkpoints. Keep prior hashes for managed files a failed attempt never writes.

Integrate PR #2980 preview wording and global dry-run propagation, with PR #2956 fail-closed environment validation and CLI/legacy regression coverage.

Fixes #2964. Fixes #2952.

Co-authored-by: ilkmajans-cpu <ilkmajans-cpu@users.noreply.github.com>

Co-authored-by: wellkilo <wellkilo@foxmail.com>
2026-09-07 16:40:47 -04:00
haelyra 967a5fa4ba Merge reviewed Claude hook registration and settings containment fixes 2026-09-07 16:38:41 -04:00
haelyra 17b70f56fc Merge reviewed PowerShell enforcement fixes for 2.2.1
# Conflicts:
#	tests/hooks/gateguard-fact-force.test.js
2026-09-07 16:38:41 -04:00
haelyra 743cc6983c Merge verified observer failure retention into 2.2.1 patch 2026-09-07 16:34:57 -04:00
haelyra cf065358fb Merge pull request #2971 from wellkilo/fix/observer-analysis-completion-sentinel
fix(continuous-learning-v2): require analysis completion sentinel
2026-09-07 16:34:29 -04:00
haelyra dbe8bfbba9 fix(install): pin Claude settings parent during atomic replacement
Reject directory replacement after temporary file creation or staging, preserve unrelated files during cleanup, and retry settings edits observed before the final rename. Add three regression tests for the review findings.
2026-09-07 16:31:33 -04:00
haelyra 82bfd22578 docs(release): record reviewed patch candidates and limits 2026-09-07 16:29:28 -04:00
haelyra c85c39e01a fix(release): patch Yarn toml advisory and track 2.2.1 gates 2026-09-07 16:27:59 -04:00
haelyra e0252df02f fix: scope GateGuard exemptions to the project
Address #2921 and complete the segment-anchoring direction in #2979. Preserve explicit absolute exemptions while denying accidental matches in unrelated projects.
2026-09-07 16:27:01 -04:00
wakqasahmed fe3d82e280 fix(install): derive dependency versions from package.json, harden fixture isolation (#2822)
Addresses Greptile's review on #2994:

- missing-dependency.js no longer hardcodes a second copy of the four
  runtime dependency versions; it reads them from package.json's
  dependencies field instead, so the two can't silently drift apart.
  describeMissingDependencyError() still recognizes a tracked
  dependency even if package.json can't be read for some reason,
  just without a version-pinned install command in that case.
- The regression test now asserts no ancestor directory of its
  temp fixture has a node_modules, so a stray one wouldn't let
  Node resolve ajv/sql.js from there and mask what the test is
  actually meant to exercise. Also copies package.json into the
  fixture, matching a real plugin-marketplace git clone and what
  the version-lookup above now needs.
2026-09-07 16:26:10 -04:00
wakqasahmed ce11e8f690 fix(install): ship ajv/sql.js with the plugin install bundle (#2822)
install-plan.js and install-apply.js both require ./lib/install/config at
load time, and that module required ajv unconditionally at the top of the
file even though ajv is only actually used when validating an
ecc-install.json. When ECC is installed via the Claude Code plugin
marketplace, the marketplace directory is a bare git clone with no
node_modules, so requiring ajv crashes commands like --list-profiles that
never touch install-config validation at all.

Same root cause in scripts/lib/control-pane/state.js: sql.js and
@iarna/toml were required at module scope even though they are only used
inside openSqlDatabase() and readTomlConfig(), so control-pane.js --help
crashed too.

Make both requires lazy so they only load when the feature that actually
needs them runs. For the case where ajv/sql.js/js-yaml/@iarna-toml is
genuinely needed and still missing, add a small helper that turns the raw
MODULE_NOT_FOUND into an actionable message naming the package and the
install command, instead of a stack trace (install-apply.js) or, worse, an
unhandled crash with a usage banner tacked on that reads like a bad
argument (install-plan.js, control-pane.js). Applied the same helper to
memory-mcp.mjs, where ajv is genuinely load-bearing (it compiles every MCP
tool's JSON schema up front) so it can't be made lazy the same way.

Added a regression test that copies just scripts/, schemas/, and
manifests/ into a directory with no node_modules anywhere above it in the
filesystem, which reproduces the plugin-marketplace install exactly, and
asserts install-plan.js and control-pane.js still work.
2026-09-07 16:26:10 -04:00
haelyraandDavidHLP f2bcc00d69 fix(pi): prevent recursive compiled OMP hook execution
Forward-port #2911 for #2909 and exercise the real adapter lifecycle with a recorded process boundary, including unavailable Node and invalid overrides.

Co-authored-by: DavidHLP <lysf15520112973@163.com>
2026-09-07 16:26:10 -04:00
haelyraandjackie-cqz 20b1ba423e fix(hooks): preserve complete bounded passthrough payloads
Forward-port #2925 for #2924 and verify ASCII and multibyte over-limit input suppression. Supersedes the overlapping direct-entrypoint fix in #2978.

Co-authored-by: jackie-cqz <2557911191@qq.com>
2026-09-07 16:26:10 -04:00
haelyra bf0ac4e4b3 fix: reject late PowerShell scalar resolution 2026-09-07 16:23:30 -04:00
wellkilo f59cfd57c2 fix(install): harden Claude settings lifecycle 2026-09-07 01:57:04 +08:00
wellkilo 26d3e0038b fix(install): surface Claude settings failures 2026-09-07 01:13:20 +08:00
wellkilo 569e5a36bb feat(install): register manual Claude hooks 2026-09-07 00:53:13 +08:00
haelyra db88758cbd fix: preserve linear PowerShell tokenization 2026-09-05 17:47:26 -04:00
haelyra 99668f0ef5 fix: resolve nested PowerShell command tokens 2026-09-05 17:38:20 -04:00
haelyra cb5311222d fix: scan inline PowerShell command parameters 2026-09-05 17:29:02 -04:00
haelyra 56552d964f docs: record final ECC-039 verification 2026-09-05 16:58:31 -04:00
haelyra f43195a255 fix: expand nested PowerShell command scalars 2026-09-05 16:57:10 -04:00
haelyra 8eeac94af3 fix: preserve PowerShell expansion semantics 2026-09-05 16:32:15 -04:00
haelyra 3ad828db47 fix: address PowerShell review bypasses 2026-09-05 16:12:58 -04:00
wellkilo 63dea9c925 fix: harden observer completion handling 2026-09-06 00:01:49 +08:00
wellkilo 3a384ca698 fix: require observer analysis completion sentinel 2026-09-05 23:42:46 +08:00