Skip to content

ocbrain v0.3.2

Choose a tag to compare

@jonathangu jonathangu released this 10 Jul 14:31

ocbrain v0.3.2

This patch closes two acceptance gaps found after v0.3.1: a large reviewed
session could still exceed the two-second writer target, and the local judge
gate treated machine-authored expected winners as if they were human truth.

Post-turn review now uses explicit transactions bounded by 50 mutating units or
two seconds inside each session. It still flushes the session watermark before
the lazy transcript iterator advances. The ledger reports measured wait, total,
and maximum writer-lock time rather than a conservative whole-session estimate.
A separate-connection regression test proves the writer slot becomes available
inside one large session as well as between sessions.

The same audit found that a persona example's redaction, serialization, quality
rules, and dedup lookup still ran after the batch acquired SQLite's writer slot.
A live heavy run exposed the flaw with a 27.457-second maximum and 4,052.699
seconds of cumulative persona writer ownership. Those preparation steps now run
before the transaction, and evidence plus each final example insert commit
before the next candidate is parsed or scored.

Post-fix stress runs used fresh SQLite databases and the release source. Two
hundred large persona examples committed in 201 transactions with a 0.001128s
maximum writer hold and 0.024447s total writer ownership. One 200-tool-turn
review session committed five bounded batches with a 0.000863s maximum and
0.003255s total writer ownership.

Judge calibration now requires a separate label file that exactly covers the
case ids and names the human labeler. Expected winners embedded in case files
are ignored. A new --calibration-only mode stops before blind pairs are read,
and calibration reports retain the judge's explanation for each miss.

The dated private human calibration first reclassified the existing judge as a
failure at 6/8. After the evaluator prompt was aligned to the operator's stated
preferences—truth and privacy before style, concise reasoning, preserved
optionality under noisy evidence, and useful estimates without fake
precision—it passed 7/8 (87.5%). The remaining miss is preserved: the judge
still prefers a longer answer with reasons over the operator's terse answer
that needs one reason added. No blind pair was rerated and the v0.3.0 model
result remains 7 candidate preferences to 13 references.

Runtime documentation was checked against the installed command surfaces for
OpenClaw 2026.6.11, Claude Code 2.1.206, and Codex CLI 0.144.1. OpenClaw matched
the registry version. The guide now distinguishes standalone Claude Code login
from the OpenClaw Anthropic CLI profile import required for OpenClaw-hosted
Claude.

No corpus text, human label, prompt, reference, rating, database, local config,
credential, model weight, or adapter is part of this release. Public artifacts
contain only source, tests, documentation, and aggregate evidence.

Verification

  • 482 source tests, Ruff, changed-file formatting, compileall, and package build
  • focused human-label provenance and fail-closed calibration tests
  • focused within-session and between-session SQLite writer-slot tests
  • 200-example persona and 200-tool-turn review writer stress runs
  • live SQLite quick_check=ok
  • configured MCP entries verified for Codex/ChatGPT, Claude Code, and OpenClaw
  • tracked-tree and outgoing-diff public-safety checks