Repository navigation
v0.12.2
Bug Fixes
-
Code review fixes for antigravity-message-id
(#165,
6166b1e) -
Code review fixes for the reports consolidation
(#176,
396c22c) -
Code review fixes for the reports-consolidation review fixes
(#176,
396c22c) -
Code review fixes for timing-architecture-standardization
(#165,
6166b1e) -
Code review fixes for turn-timing-consolidation
(#165,
6166b1e) -
Reconcile the reports split with main's docs restructure
(#176,
396c22c) -
Review pass B — the tool bucket's dash survives the language boundary
(#165,
6166b1e) -
antigravity: 1/3 — give every generation a message_id
(#165,
6166b1e) -
claude-code: Subtract tool execution from the generation windows
(#165,
6166b1e) -
docs: Restore contracts the prose refactor lost or misstated
(#177,
30f78f4) -
docs: Restore the qualifier that made each absolute true
(#177,
30f78f4) -
docs: Stop asserting a tmpfs mask that no longer exists
(#177,
30f78f4) -
evalboard: 3/8 — an unbounded tool call contributes to no bucket
(#165,
6166b1e) -
lint: 1/4 — is_core_path covers the whole core layer
(#176,
396c22c) -
lint: 2/4 — declare CE044 and CE065 to ruff, and pin the id space
(#176,
396c22c) -
lint: CE004 checks reports/ — stop borrowing CE066's exemption set
(#176,
396c22c) -
lint: CE004 never fired on the relative import spelling
(#176,
396c22c) -
lint: Let CE045 globs reach .claude/*.md surfaces
(#174,
9af3db3) -
lint: Resolve a relative import against the importing file
(#176,
396c22c) -
lint: Stop the prose budget penalising usage examples
(#177,
30f78f4) -
pricing: Carry the exemption set into the generated mirror
(#176,
396c22c) -
timing: 2/8 — a published window must match its own bounds
(#165,
6166b1e) -
timing: 3/6 — a tool that closes between two windows is not model time
(#165,
6166b1e) -
timing: 3/7 — a naive/aware mix names the pair that disagreed
(#165,
6166b1e) -
timing: 5/6 — one clock basis per turn on antigravity and pi
(#165,
6166b1e) -
timing: A TurnClock for claude-code, and pi's two captured defects
(#165,
6166b1e) -
timing: Bracket the head and tail on the main thread only
(#165,
6166b1e) -
timing: Claude-code's windows tile across a tool result
(#165,
6166b1e) -
timing: Setup_ms marks from the task's start, not from _setup()
(#165,
6166b1e) -
timing: Stamp the turn bracket off the turn clock (CE064)
(#165,
6166b1e) -
timing: The bracket fixture's anchor cannot expire, and the tail is checked
(#165,
6166b1e)
Chores
-
Record two deferred harness candidates from the reports consolidation
(#176,
396c22c) -
timing: Decompose_run's dead datetime import
(#165,
6166b1e)
Documentation
-
2/7 — move timing and permissions rationale into .claude/notes
(#177,
30f78f4) -
3/7 — move agent-adapter rationale into .claude/notes
(#177,
30f78f4) -
4/4 — retarget prose that names deleted report modules
(#176,
396c22c) -
4/7 — move orchestration rationale into .claude/notes
(#177,
30f78f4) -
5/5 — retarget every reports_* reference and record the rationale
(#176,
396c22c) -
5/7 — move isolation, sandbox and CLI rationale into .claude/notes
(#177,
30f78f4) -
6/7 — move criteria, routing and judging rationale into .claude/notes
(#177,
30f78f4) -
7/7 — move reporting, harbor and telemetry rationale into .claude/notes
(#177,
30f78f4) -
Move design rationale out of src/ into .claude/notes, and gate it
(#177,
30f78f4) -
Record the four harness gaps the prose run did not close
(#177,
30f78f4) -
Restore the self-containment clause on reports_html
(#177,
30f78f4) -
Slim CLAUDE.md and split long-form rationale into .claude
(#174,
9af3db3) -
Slim CLAUDE.md, and drop a directory that never existed
(#177,
30f78f4) -
Update CLAUDE.md with communication style and development command clarifications
(#177,
30f78f4) -
harbor: Apply the branch's prose rules to the bind-mount rewrite
(#177,
30f78f4) -
harness: 3/3 — message_id is what splits the timeline
(#165,
6166b1e) -
harness: 4/8 — say what each harness's clock basis actually is
(#165,
6166b1e) -
harness: 6/6 — the timing architecture as it now stands
(#165,
6166b1e) -
harness: Claude-code's generation windows are not tool-subtracted
(#165,
6166b1e) -
harness: Record three guards the head/tail review could not close
(#165,
6166b1e) -
harness: Register that the golden corpus cannot see a timing value move
(#165,
6166b1e) -
harness: Register the message_id gaps the final review surfaced
(#165,
6166b1e) -
harness: Register what the turn-timing run could not guard
(#165,
6166b1e) -
harness: Widen the measured head/tail figures to six turns per harness
(#165,
6166b1e) -
notes: Cut the duplicated catalogue and the unbuilt design
(#177,
30f78f4) -
timing: Every harness subtracts tool time now, not two
(#165,
6166b1e)
Features
-
evalboard: 3/4 — name the harness head and tail in the timeline strip
(#165,
6166b1e) -
harbor: Bind-mount task.yaml/plugins/templates/extra_mounts instead of COPY, skip Dockerfile
when unneeded, translate pre_run (#175,
7bf8966) -
lint: 1/7 — prose budget ratchet and one home for rationale
(#177,
30f78f4) -
lint: CE067 — CLAUDE.md's tree must name every top-level package member
(#176,
396c22c) -
lint: Replace the prose baseline with two self-adjusting rules
(#177,
30f78f4) -
pricing: 1/5 — generate the evalboard rate table from pricing.py
(#176,
396c22c) -
reports: 6-7/7 — the offline report carries the buckets; a TS None-vs-0 guard
(#165,
6166b1e) -
reports: 7/8 — the buckets reach every surface through one function
(#165,
6166b1e) -
timing: 1/6 — a two-sided residual gate for the four-bucket identity
(#165,
6166b1e) -
timing: 1/7 — a committed, ms-exact magnitude sensor
(#165,
6166b1e) -
timing: 4/4 — assert the buckets in replay, and record what they contain
(#165,
6166b1e) -
timing: 4/7 — one meaning for harness_startup_ms, on all five
(#165,
6166b1e) -
timing: Book each turn's head and tail as their own buckets
(#165,
6166b1e) -
timing: Name the setup and grading phases; union a row's tool time
(#165,
6166b1e)
Refactoring
-
reports: 2/5 — two DRY fixes and hoist 18 function-local imports
(#176,
396c22c) -
reports: 3/5 — split reports_stats.py into stats, result_metrics and helpers
(#176,
396c22c) -
reports: 4/5 — reports/ package, durations.py, and CE066
(#176,
396c22c) -
reports: Generate the pricing mirror and split the reports layer
(#176,
396c22c) -
timing: 2/6 — one close_window() for the tiling reducers
(#165,
6166b1e) -
timing: 5/7 — one tool-subtraction, at the collector seam
(#165,
6166b1e) -
timing: 5/8 — one home for the rules, and a stored tool union
(#165,
6166b1e) -
timing: 6/8 — the two sensors share one selection rule
(#165,
6166b1e)
Testing
-
harness: 2/7 — OpenCode and Pi get a corpus worth replaying
(#165,
6166b1e) -
harness: No test may read the pinned timing corpus
(#165,
6166b1e) -
harness: Pin why claude-code's zero head is left as a clamp
(#165,
6166b1e) -
harness: Stamp the two codex fixtures that timed themselves with now()
(#165,
6166b1e) -
lint: 2/3 — CE060, an AssistantMessage must declare its message_id
(#165,
6166b1e) -
lint: 2/4 — widen CE058 to the turn head/tail buckets
(#165,
6166b1e) -
lint: 4/6 — CE061, a window must come from the shared helper
(#165,
6166b1e) -
lint: CE058 form 6 — the zero its guard does not vouch for
(#165,
6166b1e) -
lint: Drop a personal path and de-duplicate the isolation pin
(#176,
396c22c) -
lint: Drop two function-local json imports that shadow the module one
(#176,
396c22c) -
lint: Guard the Rationale pointer's placement, not just its target
(#177,
30f78f4) -
reports: 3/4 — cover the HTML slowest-commands truncation branch
(#176,
396c22c) -
timing: 1/8 — the bracket's SOURCE, not just its presence
(#165,
6166b1e) -
timing: Unify the fixture clocks and assert the four-bucket identity
(#165,
6166b1e)