Skip to main content
Diagnose problems in the current repository and offer to fix them.

What Doctor Checks

Stuck Sessions

A session is considered stuck if:
  • It is in ACTIVE phase with no interaction for over 1 hour
  • It is in ENDED phase with uncondensed checkpoint data on a shadow branch
For each stuck session, you can choose to:
  • Condense: Save session data to permanent checkpoint storage
  • Discard: Remove the session state and shadow branch data
  • Skip: Leave the session as-is
Without a terminal to prompt on, such as an agent or CI, entire doctor reports each issue and points at --force instead of prompting.

doctor migrate-checkpoints

Convert the checkpoints on the entire/checkpoints/v1 branch into per-checkpoint refs under refs/entire/checkpoints/<shard>/<id>, the layout the ref-based backend uses.
Each checkpoint keeps its 12-character hex ID as the ref name, and its current tree is wrapped in a fresh commit. The command does not remap the existing branch commits and does not delete the branch. It skips checkpoints it has already converted, so re-running it after more branch activity is safe. Run it while the branch backend is still primary. Once checkpoints.primary.type is git-refs, the command reports that there is nothing to migrate and exits, because the refs are authoritative at that point. New refs are queued for push. Run interactively, the command asks whether to push them now. Run without a terminal, it leaves them queued, and they flush on the next git push once the ref-based backend is primary.
Migration is optional. See Both Backends Stay Readable for how readers resolve branch-backed checkpoints after a switch.

doctor logs

Show recent operational logs.

doctor bundle

Produce a diagnostic bundle for bug reports.

doctor trace

Show hook performance traces for debugging slow Git operations.
Hooks that take 1.5 seconds or longer are traced by default, at WARN level, so a slow hook records its own breakdown with no configuration. Set ENTIRE_PERF_SLOW_MS=0 to turn that off. A log_level above WARN also hides them.
To trace every hook, including fast ones, raise verbosity: set ENTIRE_LOG_LEVEL=DEBUG in your shell profile, or add "log_level": "DEBUG" to .entire/settings.json.