d48cda4081
CI / Test (ubuntu-latest, Node 18.x, bun) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, npm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, pnpm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, yarn) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 20.x, bun) (push) Failing after 17m13s
CI / Test (ubuntu-latest, Node 20.x, npm) (push) Failing after 18m42s
CI / Test (ubuntu-latest, Node 20.x, pnpm) (push) Failing after 15m0s
CI / Test (ubuntu-latest, Node 20.x, yarn) (push) Failing after 49m44s
CI / Test (ubuntu-latest, Node 22.x, bun) (push) Failing after 51m55s
CI / Test (ubuntu-latest, Node 22.x, pnpm) (push) Failing after 21m57s
CI / Test (ubuntu-latest, Node 22.x, npm) (push) Failing after 37m39s
CI / Test (ubuntu-latest, Node 22.x, yarn) (push) Failing after 34m7s
CI / Validate Components (push) Failing after 37m15s
CI / Python Tests (push) Failing after 10m1s
CI / Security Scan (push) Failing after 10m1s
CI / Lint (push) Failing after 17m12s
CI / Coverage (push) Failing after 20m19s
CI / Test (macos-latest, Node 18.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, yarn) (push) Has been cancelled
Memory Persistence Hooks
These lifecycle hook definitions document ECC's memory persistence contract for Claude Code plugin and manual installs.
The executable implementations live in scripts/hooks/:
session-start.jsloads bounded prior context, detects project state, and prepares session metadata.pre-compact.jscaptures state before context compaction.session-end.jspersists session-end summaries when transcript metadata is available.observe-runner.jsrecords tool-use observations for continuous learning.session-activity-tracker.jsrecords tool usage and file activity for ECC2 status and observability.
The installed hook graph is still hooks/hooks.json. This directory is the stable, human-readable lifecycle definition surface referenced by the harness audit and longform docs.
Lifecycle Contract
| Event | Hook | Purpose | Blocking |
|---|---|---|---|
SessionStart |
session:start |
Load bounded prior context and project metadata | no |
PreCompact |
pre:compact |
Save state before compaction | no |
PreToolUse |
pre:observe:continuous-learning |
Capture tool intent for learning signals | no |
PostToolUse |
post:observe:continuous-learning |
Capture tool result for learning signals | no |
PostToolUse |
post:session-activity-tracker |
Record tool and file activity for ECC2 metrics | no |
Stop |
stop:format-typecheck |
Batch quality gate after edits | yes on hook failure |
Stop |
stop:check-console-log |
Audit modified files for debug logging | warn/error by hook output |
Operator Expectations
- Keep persistence local by default.
- Avoid sending transcripts or tool traces to hosted services unless a user explicitly enables an integration.
- Bound context loaded at session start with
ECC_SESSION_START_MAX_CHARS. - Allow opt-out with
ECC_SESSION_START_CONTEXT=off. - Keep lifecycle hooks profile-gated through
ECC_HOOK_PROFILEandECC_DISABLED_HOOKS.
Related Files
hooks/hooks.jsonhooks/README.mdscripts/hooks/session-start.jsscripts/hooks/pre-compact.jsscripts/hooks/session-end.jsscripts/hooks/observe-runner.jsscripts/hooks/session-activity-tracker.jsdocs/architecture/observability-readiness.md