-
Notifications
You must be signed in to change notification settings - Fork 251
Description
Problem or use case
When working on public or shared repositories, the entire/checkpoints/v1 branch is automatically pushed alongside code on git push. This branch contains full session transcripts, prompts, token usage, and tool calls — data that teams may want to keep private even when the code itself is public.
GitHub does not support per-branch visibility — all branches in a repo are visible to anyone with repo access. There is currently no way to use Entire on a public repo without exposing session data to all collaborators/viewers.
Related: #645 (stealth mode) covers the broader case of hiding all Entire traces. This issue is specifically about allowing checkpoint data to be pushed to a separate private repo.
Desired behavior
# Configure a separate remote for checkpoint pushes
entire config set checkpoint_remote entire-private
# Or via config file (.entire/settings.json)
# { "checkpoint_remote": "entire-private" }
# Normal workflow — code pushes to origin, checkpoints push to entire-private
git push origin main
# → entire/checkpoints/v1 is pushed to entire-private instead of originOptionally, also support disabling checkpoint push entirely:
entire config set push_checkpoints falseProposed solution
Add a configuration option (checkpoint_remote) that specifies an alternate Git remote for pushing the entire/checkpoints/v1 branch.
Behavior:
- When set, Entire pushes
entire/checkpoints/v1to the configured remote instead oforigin - When unset, current behavior is preserved (push to
origin) - The configured remote must already exist (user runs
git remote add <name> <url>beforehand) - A secondary option
push_checkpoints: falsecould disable checkpoint push entirely for local-only usage
Use cases:
- Public repos where session data should remain private
- Enterprise teams wanting checkpoints in an internal repo while code lives in a client-facing repo
- Developers who want local-only checkpoints without remote backup
Alternatives or workarounds
Current workaround using Git refspec config:
# Block entire branches from pushing to origin
git config --add remote.origin.push 'refs/heads/*:refs/heads/*'
git config --add remote.origin.push '!refs/heads/entire/*'
# Add a separate remote for checkpoint data
git remote add entire-private git@github.com:user/private-checkpoints.git
git push entire-private entire/checkpoints/v1This works but is fragile, not discoverable, and easy to misconfigure. A first-class config option would be more reliable and user-friendly.