Subagent transcripts and support for earth's biggest monorepos
Headline this week is a new authorship notes backend built for massive monorepos. refs/notes/ai works great at most scales, but on repos landing ~1k commits/hour the fetch-merge-push cycle can lose to contention and some users' notes pushes get dropped. The new HTTP backend swaps in a commit-addressable key-value store with a local SQLite cache and async daemon flush — fully opt-in, no change for existing users.
We also extended transcript capture to subagents, finished migrating Codex hooks to inline TOML, and added a batch of new attributes on metric events for downstream analytics.
Earth's biggest monorepos
- HTTP notes backend (opt-in) — set
notes_backend.kind = "http"in~/.git-ai/config.jsonto swaprefs/notes/aifor a commit-addressable HTTP store.git pushno longer touches the notes ref, reads are local-first via SQLite, andgit pullpre-warms the cache for up to 500 commits behind new tips. git ai notes migrate— bulk-uploads existingrefs/notes/aicontent for repos moving onto the HTTP backend.- Transparent everywhere else —
log,blame,diff,show,search, rebase/amend, virtual attribution, range authorship, and stats all route through a singlenotes_apimodule that dispatches by backend kind.
Subagent transcripts
Building on last week's transcript streaming rewrite, this week was about getting more signal out of long-running sessions without a performance or memory hit.
- Incremental reads with byte-offset watermarks — the new
CopilotCliAgent(and the streaming pipeline more broadly) tracks where it last left off in each transcript file and only reads new bytes on each sweep, instead of re-parsing the whole file. Flat memory and near-constant CPU even on multi-hour sessions. - Subagent transcript sweep — when a Claude checkpoint fires, the transcript worker discovers and enqueues any subagent transcripts under the session's
subagents/directory, linking them viaexternal_parent_session_id. Full agent trees reconstruct end-to-end without re-walking everything on every checkpoint. - Per-event timestamps for every agent — agents now provide a concrete
u32timestamp per transcript event instead of falling back toSystemTime::now(), fixing ordering bugs in mixed-agent sessions and removing a wall-clock dependency from the hot path.
Codex toml migration
- Inline TOML hooks — migrated Codex from the deprecated
hooks.jsonto inline[[hooks.PreToolUse]]inconfig.toml, and fromcodex_hookstohooksunder[features]. Existinghooks.jsonentries are cleaned up at install time.