Added
- Better subagent handling for Codex and Cursor (subagent tracking remains work in progress): Entire now consumes Codex's
SubagentStart/SubagentStophooks, and an agent can declare its own subagent transcript path instead of having the Claude Code layout guessed for it — which also fixes Cursor, which had parsed that path all along and dropped it. This is the in-session half only. Committed checkpoints still carry no per-subagent data for any agent, Codex does not aggregate subagent token usage, and only thread-spawned Codex subagents fire the hooks (#1958) entire repo create --object-formatselectssha1orsha256, validated client-side so a typo fails fast instead of coming back as an opaque 422 (#2043)
Changed
- The
entire searchTUI drops its Checkpoints tab and defaults to Sessions. Search now folds checkpoint hits into their owning sessions server-side, so the old default tab always showed zero results; a checkpoint stays reachable by ID viaentire checkpoint explain(#2022)
Security
redaction.openai_privacy_filter.commandis honored only from a.entire/settings.local.jsonverified to be untracked. It becomesargv[0]of an exec on every push, and was read from the version-controlled.entire/settings.jsonwith no validation — so a pull request could pair the setting with a payload committed alongside it and run code on every developer who pushes, including non-interactively in CI. A trackedsettings.local.jsonis now ignored wholesale, since.gitignoredoes not apply to an already-tracked path. Rejection downgrades to resolvingopfon$PATHrather than erroring, and the rewrite fails closed if that is missing (#2056)
Fixed
- Repo-scoped data could be read from the wrong region. Cell resolution scanned mirrors and silently fell back to the caller's home cell whenever a repo was mirrored in more than one region, so
entire trail list --repo <multi-region repo>printed "No open trails found" instead of the repo's real trails. Resolution now goes through the repo's processing placement, and every failure is a returned error instead of a silent fallback.entire agent-help's trails probe andentire enable's post-success report had the same bug against the BFF, which does not proxy trails for CLI bearers (#2046, #2047) - A repo that is not onboarded — or not visible to your login — is now named in one honest line across
entire trail,entire experts, andentire checkpoint explain --repo, instead of an anonymous "This repository" on one surface and a raw internal resolution chain on the others. Single-repo cell resolution also tolerates the same catalog gaps the multi-repo fan-out already survived, andentire enable's trails probe gets its own deadline so a slow enable report can no longer starve it (#2054) entire trail update --bodynever worked: the description was sent as a field on the metadataPATCH, a route that does not serve body writes, and the rejection arrived as a bareService Unavailable. Descriptions now go to the dedicated body route, and--body=clears one (#2055)- Cloud-mode
entire dispatchsendsentire-cli/<version>as its User-Agent instead of Go's default, so its traffic is no longer invisible to server-side CLI version gating (#2049)
Housekeeping
go-runewidthmoves to 0.0.28 and the version pin from 0.10.1 is dropped — upstream builds its width table lazily now, so startup stays at ~18ms without pinning (#2040)- Trail wire handling consumes entire-api's camelCase contract directly, dropping the remaining snake_case JSON and SSE normalization along with obsolete list-response compatibility fields (#2037)
- The Linux CI test jobs no longer
apt-get install gnome-keyring: the token store has resolved to a temp file backend under test for some time, and the step's only remaining effect was to make three PR-blocking jobs depend on an Ubuntu mirror that intermittently hung them for the full 6-hour default timeout. Those jobs now also carry a 30-minute timeout (#2072)