Your agents work like your best engineers — observable.
Every agent runs on its own thread. Every state carries its author. The
reasoning survives the session so the next agent picks up where the last
one left off.
feature/auth-middlewarewriting tests for scope denial
running
7
11m 04s
noriclaude-sonnet-4.6
chore/structured-loggingrefactoring log handler
running
4
08m 22s
umeclaude-opus-4.7
fix/migration-0042awaiting signature
ready to merge
12
24m 58s
hakuclaude-haiku-4.5
docs/agents-api-referencewaiting for review feedback
idle
2
02m 17s
Isolated worktrees
One repo. Many agents. No lock contention.
Each worktree is a lightweight pointer into the shared object store.
Any agent gets an independent working directory backed by the full
history. Isolation is structural — not coordinated, not negotiated.
heddle start feature/auth --agent claude-opus-4.7
Attribution
Every action carries its author.
The agent registry records ID, provider, model, and status at spawn
time. That metadata is structural — threaded into the object model
from the first write. When work is merged, attribution from every
agent is preserved.
You always know what each agent did, under which model, with what
authorization. The record survives the merge.
statelm-a8f3c1d7
actoragent mochi
modelclaude-opus-4.7 · anthropic
confidence 0.94
signatureed25519:a8f3…c1d7 ✓
Multi-agent coordination
Parallel threads. Merged with attribution intact.
Each agent works on its own worktree with independent state.
Snapshot isolation is structural — the worktree holds its own view,
the shared object store keeps the record consistent.
Merge when the work is ready. Attribution from every agent is
preserved through the merge. You always know who contributed which
state.
Two agents, two threads, one merge. Attribution preserved per state.
Context annotations
The reasoning outlasts the work.
Constraints, invariants, and design rationale attach directly to the
code they govern — scoped to a file, a symbol, or a line range. When
the next agent opens the same function, the annotation is already
there.
Empty token scope must return `Deny::NoScope`. Never fall through to the role check — role resolution assumes a non-empty scope and will panic on the first index access.
lm-a8f3c1d7enforcestest_empty_scope_denial
src/store/state.rs·struct State·module
Invariant
The state DAG is append-only. A state's id (BLAKE3 content hash) is immutable once written. Rebase and collapse create new states; originals are never mutated and remain reachable from their original refs.
Thread resolution walks the DAG upward to the most recent common ancestor rather than the named head. Agents that forked earlier keep a stable view even after the parent rebases — no silent drift during long-running sessions.
ADR-0007·lm-d21f9e0afollowsincident 2026-01-15
Foundations for annotations ship today in the object model; the
editing surfaces are on the roadmap. Clearly labeled throughout.
A codebase that remembers
Every decision recorded. Always at the right scope.
Constraints and rationale live beside the code they govern — not in a
wiki that falls behind, not in a channel that scrolls away. Scoped to
the file, the symbol, or the line. Carried forward on every snapshot.
When something is about to change, the context is already there.