Commit Graph
3090 Commits
Author SHA1 Message Date
haelyra e63809ccc1 chore: refresh context registry digest 2026-10-01 12:24:51 -04:00
haelyra 077d74764f test(ecc2): assert isolated config roots 2026-10-01 12:09:57 -04:00
haelyra 5e170e4886 fix(bengali): preserve decimal tokens 2026-10-01 12:04:10 -04:00
haelyra 3c17f41a43 docs: resolve integration review findings 2026-09-30 18:58:26 -04:00
haelyra f0bbac057d chore: refresh context registry digest 2026-09-30 18:19:39 -04:00
haelyra 5af55fad0a docs: preserve intent in language and query guidance 2026-09-30 18:02:22 -04:00
haelyra 85b4e4eea3 test: make Bengali syntax check byte exact 2026-09-30 17:23:37 -04:00
haelyra c1e57bed74 docs: sync Turkish catalog counts 2026-09-30 16:58:37 -04:00
haelyra c9560d13bd fix: classify new skills for pi core 2026-09-30 16:57:06 -04:00
haelyra 5ea629876e fix: reconcile stewardship batch on current main
Preserve the Bengali and MyBatis catalog additions, keep Laravel storage examples disk-consistent, isolate ECC 2 test configuration with private permissions, and verify every command-referenced runtime script is published.
2026-09-30 13:29:20 -04:00
haelyra 23cdcbd633 Merge remote-tracking branch 'refs/remotes/pr/3257' into maint/stewardship-batch-2026-09-30
# Conflicts:
#	manifests/context-packs/skill-triggers@1.json
2026-09-30 13:21:34 -04:00
haelyra ab748ffe7f Merge remote-tracking branch 'refs/remotes/pr/3278' into maint/stewardship-batch-2026-09-30 2026-09-30 13:21:12 -04:00
haelyra c4c73c85f3 Merge remote-tracking branch 'refs/remotes/pr/3277' into maint/stewardship-batch-2026-09-30 2026-09-30 13:21:12 -04:00
haelyra 4993147de5 Merge remote-tracking branch 'refs/remotes/pr/3269' into maint/stewardship-batch-2026-09-30
# Conflicts:
#	manifests/context-packs/skill-triggers@1.json
2026-09-30 13:21:12 -04:00
haelyra 7c03203dd8 Merge remote-tracking branch 'refs/remotes/pr/3267' into maint/stewardship-batch-2026-09-30 2026-09-30 13:21:01 -04:00
haelyra fe1c973ca3 Merge remote-tracking branch 'refs/remotes/pr/3265' into maint/stewardship-batch-2026-09-30 2026-09-30 13:21:01 -04:00
haelyra cc9d2c3b65 Merge remote-tracking branch 'refs/remotes/pr/3255' into maint/stewardship-batch-2026-09-30 2026-09-30 13:21:01 -04:00
haelyra d9f250c7c8 Merge remote-tracking branch 'refs/remotes/pr/2689' into maint/stewardship-batch-2026-09-30 2026-09-30 13:20:49 -04:00
haelyra c965a61da5 Merge remote-tracking branch 'refs/remotes/pr/2655' into maint/stewardship-batch-2026-09-30
# Conflicts:
#	.claude-plugin/marketplace.json
#	.claude-plugin/plugin.json
#	AGENTS.md
#	README.md
#	README.zh-CN.md
#	docs/de-DE/README.md
#	docs/es/README.md
#	docs/ja-JP/README.md
#	docs/ko-KR/README.md
#	docs/pt-BR/README.md
#	docs/ru/README.md
#	docs/th/README.md
#	docs/tr/AGENTS.md
#	docs/tr/README.md
#	docs/uk-UA/README.md
#	docs/ur/README.md
#	docs/vi-VN/README.md
#	docs/zh-CN/AGENTS.md
#	docs/zh-CN/README.md
#	docs/zh-TW/README.md
#	scripts/lib/install-manifests.js
2026-09-30 13:20:41 -04:00
drakeo338andClaude Sonnet 5.5 b802ec80a6 test(hooks): compare project sharing path against the canonical temp dir
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 16:06:15 +00:00
Toni AlataloandClaude Sonnet 5.5 708d621372 fix(ecc2): also sandbox the legacy ~/.claude/ecc2.toml path under cfg(test)
Addresses review feedback on #3277: the previous commit sandboxed the
primary config path, but Config::global_config_paths() also reads the
legacy $HOME/.claude/ecc2.toml. A test that called Config::load() would
pick up (or fail on a malformed) developer-local legacy config.

Under cfg(test), legacy_global_config_path() now resolves inside the same
per-test-thread scratch root as config_path().

Proof of red (new test, before the fix):

$ cargo test legacy_config_path_under_test
    running 1 test
    test config::tests::legacy_config_path_under_test_is_sandboxed_away_from_user_home ... FAILED
    failures:
    ---- config::tests::legacy_config_path_under_test_is_sandboxed_away_from_user_home stdout ----
    tests must never read the real legacy user config, got /Users/<me>/.claude/ecc2.toml
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    failures:
        config::tests::legacy_config_path_under_test_is_sandboxed_away_from_user_home
    test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 491 filtered out; finished in 0.00s
    error: test failed, to rerun pass `--bin ecc-tui`

After the fix:

$ cargo test legacy_config_path_under_test
    test config::tests::legacy_config_path_under_test_is_sandboxed_away_from_user_home ... ok
    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 491 filtered out

$ cargo test   # full suite
    test result: ok. 491 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out

Refs #3276

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Y54kLgLGzLGqAxwLMFEc9
2026-09-30 23:08:55 +09:30
Toni AlataloandClaude Sonnet 5.5 6f141fe5a2 fix(ecc2): sandbox Config::config_path() under cfg(test)
Dashboard tests that spawn sessions reach Config::save() through
auto_split_layout_after_spawn, which wrote to the developer's real
~/Library/Application Support/ecc2/config.toml. The fixture's db_path
pointed at a deleted temp dir, so the next `cargo run` failed with
"unable to open database file".

Under cfg(test), config_root() now returns a per-test-thread scratch
directory that is removed when the thread exits, so no test can reach
the real user config.

Fixes #3276

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011Y54kLgLGzLGqAxwLMFEc9
2026-09-30 22:50:52 +09:30
Yi-111-a b09a26aaad fix(package): publish scripts/github-coordination.js for the /epic-* commands
`package.json` `files[]` enumerates each top-level `scripts/*.js` by hand, and
`scripts/github-coordination.js` was never added. npm therefore drops it from
the tarball while `scripts/lib/` still ships wholesale, so only the CLI entry
disappears.

All seven `/epic-*` commands ship in `commands/` and each instructs the agent
to run:

    node scripts/github-coordination.js <command> <issue> --repo <owner/repo>

so anyone who installs from npm -- including the documented
`npm i -g ecc-universal` path -- gets seven commands that cannot run:

    Error: Cannot find module '.../ecc-universal/scripts/github-coordination.js'

It works from a git clone, which is what masked it locally.

Add the missing `files[]` entry, the matching publish-surface allowlist entry in
`tests/scripts/npm-publish-surface.test.js` (CONTRIBUTING asks for both), and a
guard test that fails when any published command invokes a `scripts/*.js` that
the publish surface does not cover. The guard reproduces this exact bug: with
`package.json` reverted it fails naming only `github-coordination.js`.

Refs #3270
2026-09-30 21:09:38 +08:00
drakeo338andClaude Sonnet 5.5 334b7847bd fix(hooks): keep ~/.claude eligible as project sharing root with CLAUDE_CONFIG_DIR
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-30 12:43:02 +00:00
rhmatzeka eb30409fc5 fix(skills): authorize laravel-security download on the model before signing a URL
The secure-storage example authorized `download` against a raw path string
taken from the request and generated the temporary URL before the check.
A string argument never resolves to a policy, and authorizing a
client-supplied path teaches an IDOR-prone pattern.

Bind a model (Document), authorize against it first, then sign the URL for
the stored path on the s3 disk configured just below. pi/core regenerated
via scripts/build-pi-core.js; skill-triggers registryDigest rebound.
2026-09-30 11:32:33 +07:00
drakeo338 01c9a670de fix(hooks): honor CLAUDE_CONFIG_DIR for the default agent data home
getDefaultClaudeAgentDataHome ignored CLAUDE_CONFIG_DIR and always returned ~/.claude, so sessions with a relocated Claude config dir wrote ECC data to the wrong place when ECC_AGENT_DATA_HOME was unset. Fixes #3266.
2026-09-30 03:06:16 +00:00
Gunwoo 840eb53efd chore: sync MyBatis skill triggers with current catalog 2026-09-30 10:54:59 +09:00
Affaan MustafaandGitHub 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
dependabot[bot]andGitHub f3db4eb2e9 build(deps): bump undici in the npm-security group across 1 directory
Bumps the npm-security group with 1 update in the / directory: [undici](https://github.com/nodejs/undici).


Updates `undici` from 6.28.0 to 6.29.0
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.28.0...v6.29.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.29.0
  dependency-type: indirect
  dependency-group: npm-security
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-29 23:06:10 +00:00
haelyraandGitHub 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
haelyraandGitHub 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
haelyraandGitHub dc3f44ad5a Merge branch 'main' into affaan/integrate-reviewed-followups-20260928 2026-09-29 18:13:54 -04:00
Santhi PrakashandGitHub 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
haelyraandGitHub 97d3c73257 Merge branch 'main' into feat/bengali-language-support 2026-09-29 14:58:53 -04:00
haelyraandGitHub b6e3915132 Merge branch 'main' into agent/add-mybatis-patterns 2026-09-29 14:58:53 -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
Roli Bosch d62eb30de0 docs(skills): fix broken bar chart example link in remotion charts rule 2026-09-28 21:13:13 -04:00
haimingZZ 23939c637e fix(gateguard): strip SOFT HYPHEN (U+00AD) from sanitizePath 2026-09-29 01:17:25 +08: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 423b2158a9 docs(ja): match the canonical command count
Preserve the original contributor histories and apply the exact independently reviewed repair.

Source-Parent: e41c9241f5
Review-Manifest-SHA256: df9ec6b308f1935e55f13af1845a99b87a0fc921fb30b16e52fbf70d5120ee81
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 aa0ea42882 docs: align composed catalog counts with i18n skill
Update four stale skill totals to the293 canonical entries verified by the existing catalog checker.

Reviewed-Parent: 5d4cca811d
Source-Manifest-SHA256: 5281891022c3405cfa0549bb15a15ce4b1df101b7c64780da9cbbd839df3d971
2026-09-28 06:21:25 -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 b5406da674 Merge reviewed optional skill-editor documentation PR2990
Source-PR: https://github.com/affaan-m/ECC/pull/2990
Source-Head: 154fa123d8
2026-09-28 05:36:38 -04:00