All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Sparse metadata fetch with on-demand blob resolution for reduced memory and network cost (#680, #721)
entire tracecommand for diagnosing slow performance hooks and lifecycle events (#652)- Opt-in PII redaction with typed tokens (#397)
- Auto-discover external agents during
entire enable,entire rewind, andentire resume(#678) - Preview support for dedicated remote repository for checkpoint data, onboarded the CLI repository (#677, #732)
- E2E tests for external agents with roger-roger canary (#700, #702)
- hk hook manager detection (#657)
- Bumped go-git with improved large packfile memory efficiency (#731)
- Use transcript size instead of line count for new content detection (#726)
- Improved traversal resistance with
os.OpenRoot(#704) - Upgraded to Go 1.26.1 and golangci-lint 2.11.3 (#699)
- CLI command output consistency improvements (#709)
- Gemini CLI 0.33+ hook validation by stripping non-array values from hooks config (#714)
- Copilot checkpoint token scoping, session token backfill, and modelMetrics struct (#717)
- Cursor 2026.03.11 transitioning from flat to nested path during a session (#707)
- Rewind file path resolution when running from a subdirectory (#663)
GetWorktreeIDhandling.bare/worktrees/layout in bare repos (#669)- OpenCode over-redaction in session transcripts (#703)
- Factory AI Droid prompt fallback to script parsing when hooks don't provide it (#705)
- Resume fetching metadata branch on fresh clones where
entire/checkpoints/v1doesn't exist locally (#680) - Remote branch detection for v6 metadata merging (#662)
- Mise install detection for update command (#659)
- Cursor-cli E2E flakiness with isolated config dir (#654)
- Factory AI Droid added to all documentation (#655)
- Copilot CLI added to all documentation (#653)
- Updated Discord release message to include installation link (#646)
- Dependency bumps: actions/create-github-app-token 3.0.0, jdx/mise-action 4, gitleaks 8.30.1 (#706, #694, #689)
- Added tests for git remote related flows (#696)
- "Why Entire" section in README (#331)
Thanks to @mvanhorn for multiple contributions including hk hook manager detection, bare repo worktree ID fix, rewind subdirectory path fix, and mise install detection!
- External agent plugin system with lazy discovery, timeout protection, feature-flag gating, and stdin/stdout caps (docs, #604)
- Vogon deterministic fake agent for cost-free E2E canary testing (#619)
entire resumenow supports squash-merged commits by parsing checkpoint IDs from the metadata branch (#534, #602, #593)entire rewindnow supports squash-merged commits (#612)- Model name tracking and display in session info for Claude Code, Gemini CLI, Cursor, and Droid (#595, #581)
- Performance measurement (
perfpackage) with span-based instrumentation across all lifecycle hooks (#614) - Cursor session metrics: duration, turns, model, and attribution captured via hooks (#613)
- Commit hook perf benchmark with control baseline and scaling analysis (#549)
- Discord notifications for new releases (#624)
- Changelog-based release notes with CI enforcement (#635)
- Replaced O(N) go-git tree walks with
git diff-treein post-commit hook for faster commits (#594) - Removed
context.mdand scopedprompt.txtto checkpoint-only prompts; prompt source of truth is now shadow branch/filesystem, never transcript (#572) - Consolidated transcript file extraction behind
resolveFilesTouchedandhasNewTranscriptWork(#597) - Reconcile disconnected local/remote metadata branches automatically at read/write time and during
entire enable(#533)
entire explainshowing "(no prompt)" for multi-session checkpoints (#633)- Two-turn bug where second turn committed different files than first turn, causing carry-forward failure (#578)
- Phantom file carry-forward causing lingering shadow branches (#537)
- Spurious task checkpoints for agents without
SubagentStarthook (#577) - OpenCode session end detection via
server.instance.disposed(#584) - OpenCode turn-end hook chain for reliable checkpoints (#541)
- Cursor
modified_filesforwarding from subagent-stop and transcript position tracking (#598) - Session state with nil
LastInteractionTimecausing immortal sessions (#617) - Dispatch test leaking session state into real repo (#625)
- Error propagation in push, doctor, and post-commit paths (#533)
- Droid E2E tests stabilized for CI (#607)
- E2E tests show rerun command on failure (#621)
- Added "Git in Tests" section to CLAUDE.md (#625)
- Flaky external agent test fix with
ETXTBSYretry (#638) - E2E workflow dynamically builds agent matrix for single-agent dispatch (#609, #616)
- E2E test failure alerting on main branch (#603)
- tmux PATH propagation in E2E interactive tests (#629)
Thanks to @erezrokah for contributing to this release!
- Factory AI Droid agent integration with full checkpoint, resume, rewind, and session transcript support (#435, #552)
--absolute-git-hook-pathflag forentire enableto set up git hooks with absolute paths to the entire binary (#495)- Architecture tests enforcing agent package boundaries (#569)
- Improved TTY handling consolidated into a single location (#543)
- Simplified PATH setup message in install script (#566)
- Skip version check for dev builds instead of all prereleases (#401)
- Skip fully-condensed ENDED sessions in PostCommit to avoid redundant work (#556, #568)
- Don't update LastInteraction when only git hooks were triggered (#550)
entire explainhanging on repos with many checkpoints (#551)prepare-commit-msghook performance for large repos (#553)- Don't wait for sessions older than 120s during transcript flush (#545)
- Updated agent-integration skill docs (#555)
- Full checkpoint support for Cursor agent in IDE and CLI. Note: resume and rewind are missing for now (#392, #493, #525, #527)
- Consolidated E2E test suite moved into
e2e/with per-agent filtering, transient error retry, preflight checks, and test report generation (#474, #508, #539) - Agent integration Claude skill for multi-phase agent onboarding (#498)
- Post-commit cache to avoid redundant work on consecutive commits (#500)
entire enablenow creates local metadata branch from remote when available, preserving checkpoints on fresh clones (#511)entire --versionnow works as an alias forentire version(#526)- Mise linting to keep
mise.tomlclean; scripts moved into task files (#530) commit_linkingsetting replaces the Strategy interface abstraction, with[Y/n/a]prompt on commit (#531)
- Extracted magic numbers to named constants (#276)
- Removed auto-commit strategy entirely, making manual-commit the only strategy (#405)
- Upgraded to Go 1.26 and golangci-lint 2.10.1 (#458)
- O(depth) tree surgery replaces O(N) flatten-and-rebuild for both metadata branch and shadow branch writes (#473, #503)
- Renamed
paths.RepoRoot()topaths.WorktreeRoot()for clarity (#486) - Local and CI linting now use the same configuration (#504)
- Consistent context.Context threading through all function call chains (~25
context.Background()/context.TODO()replaced) (#507, #512) - Unified
CalculateTokenUsageinto a singleagent.CalculateTokenUsage()function (#509) - Removed backward-compatibility fallbacks for unknown agent types (#515)
- Removed Strategy interface abstraction —
ManualCommitStrategyis now used directly everywhere (#531) - Replaced
fmt.Fprintf(os.Stderr)with structured logging in agent hook paths (#538) - Moved
AgentNameandAgentTypetoagent/typespackage to break import cycle (#542)
- Carry-forward false positive when user replaces agent content before committing (#502)
- Isolate integration tests from global git config (#513)
- Using OpenCode with Codex models now correctly handle
apply_patchevents (#521) - Compaction resetting transcript offset, causing Gemini carry-forward to re-send already-condensed content (#535)
- Handle OpenCode
database is lockederrors during parallel E2E tests (#540)
- Agent integration guide and checklist updated for Cursor and OpenCode (#410, #510)
- E2E test README and debug skill (#474)
- Cursor agent documentation (#493, #525)
Thanks to @ishaan812 for contributing to this release!
Thanks to @9bany (#260) for their Cursor PR! We've now merged our Cursor integration. While we went with our own implementation, your PR were valuable in helping us validate our design choices and ensure we covered the right scenarios. We appreciate the effort you put into this!
- Commits hanging for up to 3s per session while waiting for transcript updates that were already flushed (#482)
- Updated README to include OpenCode in the supported agent list (#476)
- OpenCode agent support with resume, rewind, and session transcripts (#415, #428, #439, #445, #461, #465)
IsPreview()on Agent interface to replace hardcoded name checks (#412)- Stale session file cleanup (#438)
- Redesigned
entire statuswith styled output and session cards (#448) - Benchmark utilities for performance testing (#449)
- Refactored Agent interface: moved hook methods to
HookSupport, removed unused methods (#360, #425, #427, #429) entire enablenow uses multi-select for agent selection with re-run awareness (#362, #443)- Use Anthropic API key for Claude Code agent detection (#396)
- Don't track gitignored files in session metadata (#426)
- Performance optimizations for
entire statusandentire enable: cached git paths, pure Go git operations, reftable support (#436, #454) - Streamlined
entire enablesetup flow with display names and iterative agent handling (#440) - Git hooks are now a no-op if Entire is not enabled in the repo (#445)
- Resume sessions now sorted by creation time ascending (#447)
- Secret redaction hardened across all checkpoint persistence paths (#395)
- Gemini session restore following latest Gemini pattern (#403)
- Transcript path stored in checkpoint metadata breaking location independence (#403)
- Integration tests hanging on machines with a TTY (#414)
- Stale ACTIVE/IDLE/ENDED sessions incorrectly condensed into every commit (#418)
- Gemini TTY handling when called as a hook (#430)
- Deselected agents reappearing as pre-selected on re-enable (#443)
- UTF-8 truncation producing garbled text for CJK/emoji characters (#444)
- Git refs resembling CLI flags causing errors (#446)
- Over-aggressive secret redaction in session transcripts (#471)
- Security and privacy documentation (#398)
- Agent integration checklist for validating new agent integrations (#442)
- Clarified README wording and agent-agnostic troubleshooting (#453)
Thanks to @AlienKevin for contributing to this release!
Thanks to @ammarateya (#220), @Avyukth (#257), and @MementoMori123 (#315) for their OpenCode PRs! We've now merged our OpenCode integration. While we went with our own implementation, your PRs were valuable in helping us validate our design choices and ensure we covered the right scenarios. We appreciate the effort you put into this!
- Detect external hook managers (Husky, Lefthook, Overcommit) and warn during
entire enable(#373) - New E2E test workflow running on merge to main (#350, #351)
- Subagent file modifications are now properly detected (#323)
- Content-aware carry-forward for 1:1 checkpoint-to-commit mapping (#325)
- Consolidated duplicate JSONL transcript parsers into a shared
transcriptpackage (#346) - Replaced
ApplyCommonActionswithActionHandlerinterface for cleaner hook dispatch (#332)
- Extra shadow branches accumulating when agent commits some files and user commits the rest (#367)
- Attribution calculation for worktree inflation and mid-turn agent commits (#366)
- All IDLE sessions being incorrectly added to a checkpoint (#359)
- Hook directory resolution now uses
git --git-path hooksfor correctness (#355) - Gemini transcript parsing: array content format and trailer blank line separation for single-line commits (#342)
- Added concurrent ACTIVE sessions limitation to contributing guide (#326)
Thanks to @AlienKevin for contributing to this release!
entire explainnow fully supports Gemini transcripts (#236)
- Improved git hook auto healing, also working for the auto-commit strategy now (#298)
- First commit in the
entire/checkpoints/v1branch is now trying to lookup author info from local and global git config (#262)
- Agent settings.json parsing is now safer and preserves unknown hook types (#314)
- Clarified
--local/--projectflags help text to indicate they reference.entire/settings, not agent settings (#306) - Removed deprecated
entireIDreferences (#285)
- Added requirements section to contributing guide (#231)
- Layered secret detection using gitleaks patterns alongside entropy-based scanning (#280)
- Multi-agent rewind and resume support for Gemini CLI sessions (#214)
- Git hook installation now uses hook chaining instead of overwriting existing hooks (#272)
- Hidden commands are excluded from the full command chain in help output (#238)
- "Reference not found" error when enabling Entire in an empty repository (#255)
- Deleted files in task checkpoints are now correctly computed (#218)
- Updated sessions-and-checkpoints architecture doc to match codebase (#217)
- Fixed incorrect resume documentation (#224)
- Added
mise trustto first-time setup instructions (#223)
Thanks to @fakepixels, @jaydenfyi, and @kserra1 for contributing to this release!