ECC/tests/lib
Hiroshi Tanaka c2950121c9
feat(session): LLM-powered session summary via claude -p (#2388)
Replace mechanical text extraction in session-end.js and pre-compact.js
with LLM-generated summaries using `claude -p`. Summaries now capture
design decisions, resolved bugs, changed files, and carry-over context
rather than just truncated user message snippets.

- Add scripts/lib/llm-summary.js: generateSessionSummary, extractConversationText,
  getContextRemainingPct, getContextThreshold, getLLMModel
- Update scripts/hooks/session-end.js: trigger LLM when context < 20% or
  every 50 messages (env-configurable via ECC_LLM_SUMMARY_*)
- Update scripts/hooks/pre-compact.js: generate LLM summary right before
  compaction and write it to the active session .tmp file
- Add tests/lib/llm-summary.test.js: 18 unit tests
- Update tests/hooks/hooks.test.js: 3 integration tests for new behaviour

Recursion guard: sets ECC_SKIP_LLM_SUMMARY=1 in subprocess env so Stop
hooks fired by the claude -p subprocess do not re-enter summarisation.
Requires no ANTHROPIC_API_KEY — reuses Claude Code's own authentication.

Co-authored-by: Hiroshi Tanaka <hiroshi_tanaka@MBAM3.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 15:55:01 -07:00
..
agent-compress.test.js chore: reconcile publish/agent surfaces after PR batch 2026-06-15 14:21:28 -04:00
agent-data-home.test.js feat: Cursor-independent ECC memory via ECC_AGENT_DATA_HOME (#2066) 2026-06-07 13:27:00 +08:00
agent-proximity.test.js feat(layer4): line-range channel + trigger firing 2026-06-20 17:30:52 -04:00
changed-files-store.test.js fix: port safe ci cleanup from backlog 2026-04-01 16:09:54 -07:00
command-plugin-root.test.js fix(commands): resolve active plugin root in /instinct-status (#2037) (#2059) 2026-06-07 13:27:05 +08:00
control-pane-actions.test.js feat: add ECC2 local control pane (#2131) 2026-06-03 21:54:30 +08:00
control-pane-message-sink.test.js feat(layer4): live messages-table wiring for proximity triggers 2026-06-20 20:49:17 -04:00
control-pane-proximity.test.js feat(layer4): live messages-table wiring for proximity triggers 2026-06-20 20:49:17 -04:00
control-pane-state.test.js feat(control-pane): add agent+human JIT assignment view to the work-items board 2026-06-18 16:59:30 -04:00
cost-estimate.test.js feat: add ECC statusline observability hooks 2026-05-11 23:44:06 -04:00
dry-run.test.js feat: add dry-run mode for hook execution (#2116) (#2188) 2026-06-15 14:01:21 -04:00
github-coordination.test.js fix: address second round of code-review findings 2026-06-11 14:25:58 -04:00
inspection.test.js feat: agent compression, inspection logic, governance hooks (#491, #485, #482) (#688) 2026-03-20 01:38:13 -07:00
install-config.test.js feat: add install catalog and project config autodetection 2026-03-27 05:56:39 -04:00
install-executor.test.js feat: add Ruby and Rails rules 2026-05-13 06:27:08 -04:00
install-lifecycle.test.js test: cover install lifecycle edge paths 2026-04-29 17:56:25 -04:00
install-manifests.test.js feat: add zed install target 2026-05-17 07:06:49 -04:00
install-request.test.js fix(installer): harden locale docs install 2026-05-17 20:46:04 -04:00
install-state.test.js fix: harden release surface version and packaging sync (#1388) 2026-04-12 22:33:32 -07:00
install-targets.test.js fix: retire rules/zh from the always-loaded default rules install (#2170) 2026-06-07 13:25:56 +08:00
llm-summary.test.js feat(session): LLM-powered session summary via claude -p (#2388) 2026-06-29 15:55:01 -07:00
locale-install.test.js docs(i18n): add German localization scout (#2029) 2026-05-25 14:12:01 -04:00
mcp-config.test.js feat: support disabling bundled mcp servers 2026-04-05 14:37:28 -07:00
mcp-inventory.test.js feat: MCP inventory (ecc.mcp.v1) — unified cross-harness MCP config view (#2146) 2026-06-06 03:55:17 +08:00
observer-sessions.test.js fix: port continuous-learning observer fixes 2026-05-11 03:35:42 -04:00
orchestration-session.test.js fix: retire legacy command shims from default surface 2026-04-29 23:56:40 -04:00
package-manager.test.js fix: harden Trae install ownership (#1013) 2026-03-30 02:01:54 -04:00
path-safety.test.js fix(security): contain install-state file ops to trusted root — RCE fix (GHSA-hfpv-w6mp-5g95) 2026-06-18 19:54:22 -04:00
project-detect.test.js fix(project-detect): match packageKeys on boundaries, not substrings (#2181) 2026-06-07 13:25:34 +08:00
resolve-ecc-root.test.js fix: salvage remaining stale queue fixes (#1754) 2026-05-11 16:41:08 -04:00
resolve-formatter.test.js fix: harden Trae install ownership (#1013) 2026-03-30 02:01:54 -04:00
selective-install.test.js test: normalize zed install path assertion 2026-05-17 07:27:05 -04:00
session-adapters-codex.test.js feat: extend session-adapter layer with codex-worktree + opencode adapters (#2145) 2026-06-06 03:55:00 +08:00
session-adapters-opencode.test.js feat: extend session-adapter layer with codex-worktree + opencode adapters (#2145) 2026-06-06 03:55:00 +08:00
session-adapters.test.js test: cover session adapter edge cases 2026-04-29 18:21:31 -04:00
session-aliases.test.js test: skip chmod-based permission tests when running as root (#2171) 2026-06-07 13:25:53 +08:00
session-bridge.test.js test(lib): make concurrent-write test actually concurrent + use regex matcher for assert.throws 2026-05-19 04:57:10 -04:00
session-manager.test.js test: skip chmod-based permission tests when running as root (#2171) 2026-06-07 13:25:53 +08:00
shell-split.test.js fix(hooks): allow tmux-wrapped dev server commands (#321) 2026-03-07 14:47:49 -08:00
skill-dashboard.test.js test: cover skill dashboard edge paths 2026-04-29 19:15:47 -04:00
skill-evolution.test.js test: cover skill tracker edge paths 2026-04-29 19:21:03 -04:00
skill-improvement.test.js feat: self-improving skills loop — observe, inspect, amend, evaluate 2026-03-14 23:21:18 -07:00
state-store.test.js feat: sync GitHub queue into work items 2026-05-11 13:07:29 -04:00
tmux-worktree-orchestrator.test.js fix: retire legacy command shims from default surface 2026-04-29 23:56:40 -04:00
transcript-context.test.js fix: resolve four bug reports (#2290, #2282, #2276, #2272) 2026-06-18 16:49:58 -04:00
utils.test.js feat: Cursor-independent ECC memory via ECC_AGENT_DATA_HOME (#2066) 2026-06-07 13:27:00 +08:00
worktree-lifecycle.test.js feat: worktree-lifecycle service (deterministic conflict prediction + safe GC) (#2164) 2026-06-07 13:00:08 +08:00