Commit Graph

415 Commits

Author SHA1 Message Date
Affaan Mustafa
468c755abd test: extend insaits monitor subprocess timeout 2026-04-29 19:25:18 -04:00
Affaan Mustafa
fc96be4924 test: cover skill tracker edge paths 2026-04-29 19:21:03 -04:00
Affaan Mustafa
7ca48f376f test: cover skill dashboard edge paths 2026-04-29 19:15:47 -04:00
Affaan Mustafa
8c7e6611e0 test: cover gateguard edge paths 2026-04-29 19:08:47 -04:00
Affaan Mustafa
b5bdd9352f fix: run pre-bash linters through windows wrappers 2026-04-29 18:59:10 -04:00
Affaan Mustafa
ae02b26cf9 test: cover mcp config merge edges 2026-04-29 18:57:55 -04:00
Affaan Mustafa
cc89c40751 test: cover codex config merge edges 2026-04-29 18:51:56 -04:00
Affaan Mustafa
880c487c0f test: cover state store query edge paths 2026-04-29 18:45:20 -04:00
Affaan Mustafa
45a9bcf295 test: lift harness manifest branch coverage 2026-04-29 18:38:48 -04:00
Affaan Mustafa
ebf0d4322b test: support windows pre-bash linter shims 2026-04-29 18:36:33 -04:00
Affaan Mustafa
015b00b8fc test: stabilize mcp health crash probes 2026-04-29 18:29:02 -04:00
Affaan Mustafa
51511461f6 test: cover pre-bash commit quality edges 2026-04-29 18:28:56 -04:00
Affaan Mustafa
aaaf52fb1e test: cover session adapter edge cases 2026-04-29 18:21:31 -04:00
Affaan Mustafa
33edfd3bb3 test: cover session activity tracker edge paths 2026-04-29 18:15:51 -04:00
Affaan Mustafa
f92dc544c4 test: cover mcp health edge paths 2026-04-29 18:08:45 -04:00
Affaan Mustafa
1c2d5dd389 fix: fail open on insaits monitor errors 2026-04-29 18:03:33 -04:00
Affaan Mustafa
b40de37ccb test: cover install lifecycle edge paths 2026-04-29 17:56:25 -04:00
Affaan Mustafa
63485a26bf fix: support windows insaits python shims 2026-04-29 17:53:07 -04:00
Affaan Mustafa
fe40a3d27b test: cover hook bootstrap and InsAIts monitor 2026-04-29 17:45:22 -04:00
Affaan Mustafa
2c56c9c69f test: relax windows install apply timeout 2026-04-29 17:42:19 -04:00
Affaan Mustafa
d9d52d8b77 test: cover install executor planning 2026-04-29 17:32:37 -04:00
Affaan Mustafa
2eaafc38f6 test(ecc2): normalize release workflow newlines 2026-04-29 17:31:01 -04:00
Affaan Mustafa
c7c7d37f29 Merge remote-tracking branch 'origin/main' into feat/ecc2-rc1-preview-surface 2026-04-28 22:15:34 -04:00
Affaan Mustafa
b6b5b6d08e test: cover CI catalog validator 2026-04-28 22:14:19 -04:00
Affaan Mustafa
46aa301f1d Merge remote-tracking branch 'origin/main' into feat/ecc2-rc1-preview-surface
# Conflicts:
#	docs/fixes/HOOK-FIX-20260421-ADDENDUM.md
2026-04-28 22:11:54 -04:00
Affaan Mustafa
fd95cf6b29 fix: retry observer wait after signal 2026-04-28 22:11:47 -04:00
Affaan Mustafa
d89f8d895d fix: normalize codex skill metadata 2026-04-28 22:10:17 -04:00
Affaan Mustafa
0a87323eda feat(ecc2): finalize rc1 release surface 2026-04-28 22:10:04 -04:00
Affaan Mustafa
177b8f31da docs: clarify install and uninstall paths 2026-04-23 02:11:29 -04:00
Affaan Mustafa
4e66b2882d docs: fix plugin quick start for continuous learning v2 (#1546) 2026-04-21 18:41:36 -04:00
Affaan Mustafa
92e0c7e9ff fix: install native Cursor hook and MCP config (#1543)
* fix: install native cursor hook and MCP config

* fix: avoid false healthy stdio mcp probes
2026-04-21 18:35:21 -04:00
Affaan Mustafa
8c422a76f4 docs: separate plugin install from full manual install (#1544) 2026-04-21 18:28:52 -04:00
Affaan Mustafa
601c626b03 Merge pull request #1495 from ratorin/fix/session-end-transcript-path-isolation
fix(hooks): isolate session-end.js filename using transcript_path UUID (#1494)
2026-04-21 18:14:23 -04:00
Affaan Mustafa
14f8f66833 Merge pull request #1490 from gaurav0107/fix/1459-remove-agents-manifest-field
fix: remove unsupported `agents` field from plugin.json
2026-04-21 18:14:12 -04:00
Vishnu Pradeep
b27551897d fix(hooks): wrap SessionStart summary with stale-replay guard (#1536)
The SessionStart hook injects the most recent *-session.tmp as
additionalContext labelled only with 'Previous session summary:'.
After a /compact boundary, the model frequently re-executes stale
slash-skill invocations it finds inside that summary, re-running
ARGUMENTS-bearing skills (e.g. /fw-task-new, /fw-raise-pr) with the
last ARGUMENTS they saw.

Observed on claude-opus-4-7 with ECC v1.9.0 on a firmware project:
after compaction resume, the model spontaneously re-enters the prior
skill with stale ARGUMENTS, duplicating GitHub issues, Notion tasks,
and branches for work that is already merged.

ECC cannot fix Claude Code's skill-state replay across compactions,
but it can stop amplifying it. Wrap the injected summary in an
explicit HISTORICAL REFERENCE ONLY preamble with a STALE-BY-DEFAULT
contract and delimit the block with BEGIN/END markers so the model
treats everything inside as frozen reference material.

Tests: update the two hooks.test.js cases that asserted on the old
'Previous session summary' literal to assert on the new guard
preamble, the STALE-BY-DEFAULT contract, and both delimiters. 219/219
tests pass locally.

Tracked at: #1534
2026-04-21 18:02:19 -04:00
Taro Kawakami
01d816781e review: apply sanitizeSessionId to UUID shortId, fix test comment
- Route the transcript-derived shortId through sanitizeSessionId so the
  fallback and transcript branches remain byte-for-byte equivalent for any
  non-UUID session IDs that still land in CLAUDE_SESSION_ID (greptile P1).
- Clarify the inline comment in the first regression test: clearing
  CLAUDE_SESSION_ID exercises the transcript_path branch, not the
  getSessionIdShort() fallback (coderabbit P2).

Refs #1494
2026-04-19 14:30:00 +09:00
Taro Kawakami
93cd5f4cff review: address P1/P2 bot feedback on shortId derivation
- Use last-8 chars of transcript UUID instead of first-8, matching
  getSessionIdShort()'s .slice(-8) convention. Same session now produces the
  same filename whether shortId comes from CLAUDE_SESSION_ID or transcript_path,
  so existing .tmp files are not orphaned on upgrade.
- Normalize extracted hex prefix to lowercase to avoid case-driven filename
  divergence from sanitizeSessionId()'s lowercase output.
- Explicitly clear CLAUDE_SESSION_ID in the first regression test so the env
  leak from parent test runs cannot hide the fallback path.
- Add regression tests for the lowercase-normalization path and for the case
  where CLAUDE_SESSION_ID and transcript_path refer to the same UUID (backward
  compat guarantee).

Refs #1494
2026-04-19 14:19:29 +09:00
Taro Kawakami
a35b2d125d fix(hooks): isolate session-end.js filename using transcript_path UUID
When session-end.js runs and CLAUDE_SESSION_ID is unset, getSessionIdShort()
falls back to the project/worktree name. If any other Stop-hook in the chain
spawns a claude subprocess (e.g. an AI-summary generator using 'claude -p'),
the subprocess also fires the full Stop chain and writes to the same project-
name-based filename, clobbering the parent's valid session summary with a
summary of the summarization prompt itself.

Fix: when stdin JSON (or CLAUDE_TRANSCRIPT_PATH) provides a transcript_path,
extract the first 8 hex chars of the session UUID from the filename and use
that as shortId. Falls back to the original getSessionIdShort() when no
transcript_path is available, so existing behavior is preserved for all
callers that do not set it.

Adds a regression test in tests/hooks/hooks.test.js.

Refs #1494
2026-04-19 11:37:32 +09:00
Gaurav Dubey
c19fde229a fix: remove agents field from plugin.json manifest (#1459)
The Claude Code plugin validator rejects the "agents" field entirely.
Remove it from the manifest, schema, and tests. Update schema notes
to document this as a known constraint alongside the hooks field.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-18 23:29:47 +05:30
Affaan Mustafa
eb900ddd81 test: align hook install expectations with Claude schema 2026-04-15 19:33:34 -07:00
Affaan Mustafa
ccecb0b9f4 fix: restore string hook commands for Claude Code schema 2026-04-15 17:25:33 -07:00
Affaan Mustafa
1fabf4d2cf fix: consolidate bash hooks without fork storms 2026-04-14 21:23:57 -07:00
Affaan Mustafa
c1e7a272cc Merge pull request #1446 from affaan-m/fix/release-publish-and-migration-docs
fix: publish npm releases and clarify install identifiers
2026-04-14 20:58:20 -07:00
Affaan Mustafa
5427c27930 Merge pull request #1445 from affaan-m/fix/plugin-installed-hook-root-resolution
fix: resolve plugin-installed hook root on marketplace installs
2026-04-14 20:43:40 -07:00
Affaan Mustafa
b5c4d2beb9 fix: wire npm auth into release publish 2026-04-14 20:43:22 -07:00
Affaan Mustafa
34380326c8 fix: publish npm releases and clarify install identifiers 2026-04-14 20:42:28 -07:00
Affaan Mustafa
1b7c5789fc fix: bootstrap plugin-installed hook commands safely 2026-04-14 20:24:21 -07:00
Affaan Mustafa
cdeb837838 Merge origin/main into fix/urgent-install-and-name 2026-04-14 20:23:54 -07:00
Affaan Mustafa
c54b44edf3 test: fix harness audit env fallback 2026-04-14 20:03:57 -07:00
Affaan Mustafa
e46deb93c8 fix: harden dashboard terminal launch helpers 2026-04-14 19:44:32 -07:00