Skip to content

ocbrain v0.3.1

Choose a tag to compare

@jonathangu jonathangu released this 10 Jul 05:29

ocbrain v0.3.1

This patch closes the last long transaction found by the v0.3.0 live runtime
probe.

Post-turn review consumes transcript sessions lazily. Before this patch, the
first reviewed session opened a write transaction and the iterator parsed every
later transcript before the runner's stage-level commit. Review now commits each
fully processed session and its watermark together before requesting the next
session. The run ledger reports the batch count plus conservative total and
maximum writer-lock upper bounds.

The same live probe found hosted judge/embedding I/O waiting on TLS after
writing an egress audit but before committing. Each audit now commits before
dispatch, so network latency never owns SQLite's writer slot; verdict/vector
results and run accounting commit once per completed provider batch.

Regression tests prove another SQLite connection can acquire the writer slot
between two lazily yielded sessions and from inside simulated judge/embedding
network calls. The full release keeps the v0.3.0
Apache-2.0 license, frozen second-pilot evidence, privacy boundary, and bounded
dataset/autolabel transactions.

The passive stall watcher follows the same rule: it commits deadman evidence
before optional Telegram paging, then records delivery state afterward.
Persona mining also releases its evidence batch before invoking Git for the next
commit candidate.
FTS attribution now consumes only the autolabel stage's remaining time budget,
so the light profile can stop cleanly and resume on its next watermark-safe run.
Promotion completes expensive scoring and eligibility reads before opening its
bounded update batches. Tripwires commit each fired quarantine before evaluating
the next row.
The heavy harvester commits each history or doctrine file before reading the next.

No corpus text, prompt, reference, rating, database, local config, credential,
or model weight is part of this release.

Verification

  • 477 tests, Ruff, compileall, and package build
  • review: 39/40 live writer probes succeeded; maximum per-session lock upper
    bound 0.347 seconds across 1,663 committed sessions
  • tripwires: 40/40 live writer probes succeeded during a 285.4-second scan
  • promotion: 40/40 live writer probes succeeded; maximum measured writer hold
    0.019 seconds, and stage elapsed time fell from 75.35 to 10.56 seconds
  • SQLite quick_check=ok; safe checkpoints returned busy=0