Commit Graph
2329 Commits
Author SHA1 Message Date
Affaan MustafaandGitHub b40f11919a fix old project name delimiter 2026-07-27 13:00:46 -07:00
haelyraandGitHub 86c786e8bb Update section title from 'Why It Feels Different' to 'Why Choose ECC?' 2026-07-27 15:25:33 -04:00
haelyra b6f461a363 docs: add README install jump link 2026-07-27 15:23:38 -04:00
haelyraandGitHub 55c343571b Revise TDD section title and format
Updated section title for clarity and corrected formatting.
2026-07-27 15:20:07 -04:00
haelyraandGitHub 41441427b9 docs: refresh README for ECC 2.1 (#2579)
Refresh the main README for ECC 2.1, including the Plan Canvas demo, install paths, harness guidance, security, sponsors, and community sections.
2026-07-27 15:17:36 -04:00
536221cf7a fix(hooks): dedupe transcript usage by message.id in cost-tracker (~2.5-3x inflation) (#2483)
Claude Code writes one transcript JSONL line per content block, so a
single API response (one message.id) spans multiple assistant lines that
each repeat the same message.usage. sumUsageFromTranscript summed every
line, inflating token totals and estimated_cost_usd roughly 2.5-3x.

Verified on a real session: 704 assistant lines but only 286 unique
message.ids (2.46 lines/response on average); line-summing reported
$866.52 while the deduped total is $332.62. Usage payloads are identical
across lines of the same id (0/286 varied), so counting once per id is
equivalent to taking the last line per id.

Fix: collect usage into a Map keyed by message.id (last line wins) and
sum unique entries. Lines without a message.id (older transcript shapes)
keep the previous per-line behavior via a synthetic key, so existing
tests and old transcripts are unaffected.

Adds a regression test: a response split into 3 content-block lines with
the same message.id is counted exactly once.

Note: rows already written to ~/.claude/metrics/costs.jsonl by the old
code carry inflated token counts and estimates (except rows whose cost
came from the harness-cost cache, where cost is authoritative but token
counts are still inflated). Downstream consumers may want to annotate
history; this change intentionally does not rewrite the raw log.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-27 11:14:47 -07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ecb45c1764 chore(deps-dev): update pyyaml requirement from >=6.0 to >=6.0.3 (#2455)
Updates the requirements on [pyyaml](https://github.com/yaml/pyyaml) to permit the latest version.
- [Release notes](https://github.com/yaml/pyyaml/releases)
- [Changelog](https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES)
- [Commits](https://github.com/yaml/pyyaml/compare/6.0...6.0.3)

---
updated-dependencies:
- dependency-name: pyyaml
  dependency-version: 6.0.3
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-27 11:13:33 -07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ce11c63d86 chore(deps-dev): update pytest-mock requirement from >=3.12 to >=3.15.1 (#2454)
Updates the requirements on [pytest-mock](https://github.com/pytest-dev/pytest-mock) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.12.0...v3.15.1)

---
updated-dependencies:
- dependency-name: pytest-mock
  dependency-version: 3.15.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-27 11:13:04 -07:00
Affaan MustafaandGitHub 382060905e fix: harden local dashboard and data boundaries (#2585)
* fix: harden local data boundaries

Bind the capabilities dashboard exclusively to loopback and reject untrusted Host and Origin values. Constrain project-configured agent data paths to the Cursor data root, and harden lifecycle repair/uninstall operations against state-file traversal, symlink swaps, unsafe sources, and forged install-state destinations.\n\nCloses #2506

* fix: eliminate repair source read race

Read source bytes and mode from one no-follow file descriptor so a path replacement cannot mix metadata from one inode with content from another. Add a regression that rejects separate path-based source metadata lookup.

* fix: close dashboard hardening review gaps
2026-07-27 11:11:29 -07:00
Affaan MustafaandClaude 4da6deac18 fix(release): stage the plugins/ecc Codex manifest when bumping
update_version rewrote plugins/ecc/.codex-plugin/plugin.json on disk, but
CODEX_MARKETPLACE_PLUGIN_JSON was missing from the git add list, so the bump
was never committed. The tag then carried a 2.0.0 manifest and
plugin-manifest.test.js failed the release in CI.

Also commits the 2.1.0 value the previous run left uncommitted.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149VwNuynam6rvEfcMmiHHa
v2.1.0
2026-07-27 14:09:38 -04:00
Affaan MustafaandClaude edaf6fef94 fix(release): drop the dead OMP adapter verification step
The step ran node tests/omp/omp-plugin.test.js, which has never existed in
this repository. It was added by #2382 without the test file, so Verify
Release failed on every tag and no release could publish.

The OpenCode payload is already verified by tests/scripts/build-opencode.test.js
in the preceding step, and the plugin and marketplace manifests by
tests/plugin-manifest.test.js in Verify release metadata stays in sync.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149VwNuynam6rvEfcMmiHHa
2026-07-27 14:07:43 -04:00
Affaan Mustafa 6f452d48d2 chore: bump plugin version to 2.1.0 2026-07-27 14:05:24 -04:00
Affaan MustafaandClaude 4099794c74 fix(release): bump the claude marketplace and zh-CN heading on macOS
Two bumps were being skipped, both caught by plugin-manifest.test.js only
after the version had already been rewritten across twenty files.

.claude-plugin/marketplace.json used sed with GNU's 0,/re/ address form.
BSD sed on macOS ignores it and exits 0, so the substitution silently did
nothing. Replaced with a node first-match rewrite that fails loudly.

docs/zh-CN/README.md had its version row updated but not its release
heading, unlike the other localized READMEs.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149VwNuynam6rvEfcMmiHHa
2026-07-27 14:05:18 -04:00
Affaan MustafaandClaude 1ffaa75472 fix(release): match the ECC banner name when bumping versions
The banner regex still expected 'Everything Claude Code', but the plugin
banner in .opencode/plugins/ecc-hooks.ts reads 'ECC' since the rename, so
update_opencode_hook_banner_version aborted every bump. Accept both names.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149VwNuynam6rvEfcMmiHHa
2026-07-27 14:03:22 -04:00
Affaan MustafaandClaude b06c78cc6b docs: add 2.1.0 release notes and Plan Canvas demo assets
Packaged by Haley for the 2.1 launch. These must land on main before the
v2.1.0 tag, because the announcement and README reference the assets by
raw.githubusercontent.com URL on main.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149VwNuynam6rvEfcMmiHHa
2026-07-27 14:01:42 -04:00
Affaan MustafaandGitHub 6a9f075cd9 fix: use scalar Claude agent tools (#2583)
Normalize scalar Claude agent tool metadata across validators, adapters, dashboards, and generated surfaces with regression coverage.
2026-07-26 03:20:15 -07:00
Affaan MustafaandGitHub f3afd59045 fix: flatten Claude skill installs (#2582)
Flatten managed Claude skill destinations, preserve user-owned conflicts, and migrate legacy nested installs through the lifecycle tooling.
2026-07-26 03:20:06 -07:00
Alexis D.andGitHub 71438391e8 fix(opencode): normalize tool paths across platforms (#2459)
Normalize backslash paths for OpenCode formatting and add branch coverage for GitHub coordination behavior.
2026-07-26 03:13:49 -07:00
dependabot[bot]andGitHub 5a4777777d chore(deps): bump cargo minor and patch dependencies
Lockfile-only Dependabot Cargo group update for ecc2. Verified PR was clean/mergeable with no failing or pending checks and no unresolved review threads.
2026-07-26 03:13:43 -07:00
dependabot[bot]andGitHub a7996b03f5 chore(deps): update checkout action to v7 (#2456)
Update the final SLSA workflow checkout step to the same exact v7.0.0 SHA used across the rest of the repository.
2026-07-26 03:12:29 -07:00
dependabot[bot]andGitHub efc91870c7 chore(deps): update pinned GitHub actions (#2540)
Update actions/stale to v10.4.0 and softprops/action-gh-release to v3.0.2 while preserving exact SHA pinning.
2026-07-26 03:11:38 -07:00
Farda KarimandGitHub 1435f540ff docs: refresh command quick reference (#2533)
Align the command catalog and retired-command guidance with the current skills-first surface.
2026-07-26 03:04:21 -07:00
黄云龙andGitHub 19df41d681 test: cover shell substitution parser (#2495)
Add harness-compatible unit coverage for substitution parsing, escaped syntax, compound commands, and edge-case inputs.
2026-07-26 03:00:57 -07:00
Affaan MustafaandGitHub 4d0b501b05 feat: add cross-harness memory vault (#2581)
Add a local-first, cross-harness memory vault with CLI and MCP surfaces, bounded search and storage, harness-scoped visibility, setup guidance, and comprehensive tests.
2026-07-26 02:46:59 -07:00
Affaan MustafaandGitHub 56d9302f02 docs: map cross-harness control-plane roadmap (#2584)
Map the ECC Ultra report into ten dependency-ordered execution lanes with explicit security, consent, schema, lifecycle, testing, and distribution gates.
2026-07-26 01:46:56 -07:00
Seekers2001andGitHub ad8db87780 feat(skills): add contract-first collaboration workflow (#2567)
Add a contract-first workflow for consumer/provider collaboration, including shared artifact authority, compatibility review, generated-type and runtime verification, and safe handling of contract-driven tooling.
2026-07-26 00:05:22 -07:00
Gaurav DubeyandGitHub 5debb798c8 fix(continuous-learning-v2): honor non-git CLAUDE_PROJECT_DIR (#2488)
Honor an explicit non-git CLAUDE_PROJECT_DIR as an isolated project scope, canonicalize and hash it consistently in the shell observer and Python CLI, and preserve the global fallback for arbitrary non-git working directories.
2026-07-26 00:04:35 -07:00
JongHyeok ParkandGitHub 28b922dee3 fix(hooks): preserve Stop output through lifecycle wrappers (#2493)
Preserve complete Stop-hook stdout through lifecycle wrappers, wait for queued output to flush before exiting, bound child output with a larger explicit buffer, and add end-to-end regressions for large, multibyte, dry-run, and failure cases.
2026-07-26 00:01:57 -07:00
Gaurav DubeyandGitHub c714dc5654 fix(resolve-ecc-root): require ECC skills, not just scripts, before accepting a root (#2544) (#2577)
* fix(resolve-ecc-root): require ECC skills, not just scripts, before accepting a root (#2544)

resolveEccRoot() accepted a candidate root on script-only evidence
(scripts/lib/utils.js). A partial install that lands ECC's scripts into
~/.claude but not ECC's skills short-circuited at the standard-install
branch, so skill-resolving callers built skills/... paths against a root
where they do not exist and every command failed three layers away.

For the default probe (skill consumers, reached via INLINE_RESOLVE) a
candidate now qualifies only if it contains both the script tree and a
sentinel ECC skill; the same stricter check guards the plugin-root and
plugin-cache branches. An explicit caller probe is still honored exactly,
so script consumers (e.g. session-start-bootstrap, which probes for the
hook runner) are unaffected. Merely checking that skills/ exists is
insufficient — a user's own ~/.claude/skills/ can be present with none of
ECC's skills.

Adds a regression test for the exact partial-install scenario and updates
the resolver test fixtures to build complete roots.

* test(resolve-ecc-root): cover partial exact-plugin and cache roots; DRY skill sentinel (#2544)

Address CodeRabbit review on PR #2577:
- Extend #2544 regression coverage to the exact-plugin and versioned
  plugin-cache branches, asserting the stricter both-sentinels predicate
  rejects a scripts-only root there too (not only for ~/.claude).
- Extract the ECC_SKILL_SENTINEL constant in command-plugin-root.test.js
  and reuse it at both fixture setup sites instead of duplicating the literal.
2026-07-25 22:21:27 -07:00
Affaan MustafaandGitHub ac30ff3ea2 Use supplied Itō PNG logo (#2570)
Replace the generated Itō SVG wordmark with the supplied transparent monogram assets, keep the exact white-and-gold mark for dark mode, add a same-geometry light-mode variant, and refresh the dependency lock entry flagged by CI.
2026-07-24 17:40:49 -07:00
Affaan MustafaandGitHub abe185c6a4 Center README entry cards and correct sponsor tiers (#2569)
Center the three-card README group, remove stale $5 sponsor copy, and align sponsor docs to the current public tiers.
2026-07-24 13:40:53 -07:00
Affaan Mustafa 751874fef9 Center README entry cards 2026-07-24 16:26:50 -04:00
haelyraandGitHub 8512dc6f42 Merge pull request #2491 from gaurav0107/fix/2477-opencode-command-agent-scope
fix(opencode): resolve command agent ids to registered opencode agents
2026-07-24 12:53:30 -04:00
haelyraandGitHub 374feb7f9c Merge pull request #2536 from latreon/fix/bun-lockfile-detection
fix(scripts): detect modern bun.lock, ignore stray root lockfiles
2026-07-24 12:53:06 -04:00
haelyraandGitHub fee94fb778 Merge pull request #2516 from thejesh23/fix/dashboard-refresh-rules-commands
fix(ecc_dashboard): repopulate Rules and Commands trees on Refresh Data
2026-07-24 12:52:36 -04:00
Affaan MustafaandGitHub ce226c94b2 Merge pull request #2568 from affaan-m/agent/readme-asset-alignment-20260724
Merge the official ECC Tools favicon mark, normalized Itō Drive lockup canvas, and equal 16:9 guide cards after full CI and GitHub-render visual verification.
2026-07-24 09:17:13 -07:00
Affaan Mustafa cf1fb0125e Fix README asset alignment 2026-07-24 11:52:30 -04:00
Affaan MustafaandGitHub fb401834e5 Merge pull request #2566 from affaan-m/agent/readme-kimi-layout-20260724
Merge the aligned ECC entry cards, inline guide row, and documented Kimi/Itō self-hosting path after full CI and visual verification.
2026-07-24 01:13:12 -07:00
Affaan Mustafa 05a7695bc0 docs: align ECC entrypoints and Kimi setup 2026-07-24 03:58:50 -04:00
Affaan MustafaandGitHub e625a07736 docs: compact the sponsor logo row (#2565) 2026-07-23 23:44:42 -07:00
Affaan MustafaandGitHub 33c7dbb7d6 feat(ito): expose guarded live node qualification
Expose the canonical Itō CLI's pinned sixtytwo node-qualification path through ECC with double opt-in, explicit node/config gates, credential isolation, and no new MCP or execution authority.

Validated across the full Linux, macOS, and Windows Node/package-manager matrix, hosted coverage, CodeQL, security, lint, and focused bridge tests.
2026-07-23 22:10:57 -07:00
Affaan MustafaandGitHub 34fbe007f0 fix: reject credential-bearing Itō CLI shims (#2559) 2026-07-23 21:07:59 -07:00
Affaan MustafaandGitHub 7dc2c116e7 docs: restore sponsor contract after mainline merge (#2560)
* fix sponsor contract after mainline merge

* refine sponsor assets and placement

* tighten sponsor asset contract
2026-07-23 20:44:09 -07:00
6a2e09137c docs(sponsors): consistent sponsor treatment, Itô + Moonshot AI (Kimi) public + Atlas Cloud (#2553)
* docs: add Itô Markets GPU compute sponsor section to README

Adds a GPU compute sponsor entry under the Sponsors section: Itô Markets
logo linking itomarkets.com plus the compute dashboard at
compute.itomarkets.com, matching the framing from the merged sponsor
routing (4e341183, 8eb43383). Includes a hidden HTML-comment placeholder
for Moonshot AI (Kimi), pending countersign; nothing renders publicly
for Moonshot yet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149VwNuynam6rvEfcMmiHHa

* docs(sponsors): consistent sponsor treatment, Moonshot public, real brand assets

- Replace cropped ito.svg with the full Drive lockup; add ito-dark.svg
  (white marks) with picture/source theme switching for dark mode
- Add Moonshot AI (Kimi) as a public business sponsor: logo in the top
  sponsors table, SPONSORS.md row, placeholder comment removed
- Swap atlascloud.png for the official atlascloud.svg wordmark; add
  dark-theme variants for Atlas Cloud and Moonshot
- Rewrite the bottom Sponsors section: one consistent list, no
  Ito-only subsection or stray horizontal rule
- Point the self-host/gateway FAQ at the ito-compute skill for
  fixed-rate GPU blocks (npm CLI marked coming soon, not yet published)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149VwNuynam6rvEfcMmiHHa

* docs: drop em dash from sponsor FAQ line

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149VwNuynam6rvEfcMmiHHa

* docs(sponsors): Itô is a Partner, Moonshot AI (Kimi) are Open Source Friends

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0149VwNuynam6rvEfcMmiHHa

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 19:34:55 -07:00
Affaan MustafaandGitHub bc774282e6 feat: connect ECC to canonical Ito compute CLI (#2558) 2026-07-23 19:28:55 -07:00
Affaan MustafaandGitHub 9d54ee222d Correct README formatting and update sponsor information
Fixed formatting issue in the language section and removed redundant text
2026-07-23 18:27:19 -07:00
Affaan MustafaandGitHub 7b03a834b3 feat: add read-only Itō compute handoff (#2554)
* feat: add read-only Itō compute handoff

* fix(ito): keep handoff portable under CI

* test(ito): run npm welcome through Windows shell
2026-07-23 14:35:57 -07:00
a3130f9ebf feat(codex): add ECC navigation guide (#2525)
* feat(codex): add ECC navigation guide

* fix(codex): ship navigation guide references

---------

Co-authored-by: Haley Chen <2022hachen@gmail.com>
2026-07-22 20:44:37 -04:00
Haley Chen b6fe5a71e1 fix: harden plan canvas code scanning alerts 2026-07-22 16:28:07 -04:00
b6652335d3 fix(hooks): bound plugin shell probe timeouts (#2547)
Co-authored-by: Haley Chen <2022hachen@gmail.com>
2026-07-22 13:15:52 -04:00