-
Timmy daily-2026-10-27 — blind reviewer and adjudication ledger
Pre-ReleaseQuality gates / quality (push) Canceled after 0sreleased this
2026-10-27 12:39:09 +00:00 | 21 commits to main since this releasePrerelease for review — tag
daily-2026-10-27on commitb191d0427ddbb19f982458eeaa093aaaee31a68e(America/New_York release date 2026-10-27, built 2026-10-27T12:23:57Z).What changed
Blind reviewer and adjudication tool for corpus labels (issue #26, PR #88). The corpus manifest already said what was ingested and whether the person still allows it. This release adds the labelling control the photo data-flow threat model names, as a command line with no app screen:
scripts/review_corpus.py— a review queue that shows the proposal (Type 4 · brown · good) and withholds every model field. Blindness is structural:build_queue()takes no predictions at all, andreveal()refuses with "stays hidden until a review is committed" while appending nothing.- Disagreement is preserved, not smoothed — a review is one append-only line carrying the proposal it judged beside the human decision; a correction must actually change the proposal. An adjudication is a second reviewer's line that names the record it resolves, the overruled review stays in the ledger byte for byte, nobody adjudicates their own review, and a contribution adjudicates once.
- Withdrawal outranks everything —
active_records()gates the queue, reveal, adjudicate, and trainable paths, so a revoked contribution refuses with "was withdrawn and cannot be reviewed, revealed, or trained on".trainable_records()also drops unreviewed and excluded samples, so an unreviewed proposal is never training data. tests/corpus-review.test.py— 21 cases written first and watched fail before the module existed, then one behaviour slice at a time. Two real defects were found by tests, not review: a withdrawn contribution reported "already reviewed" because the duplicate check ran before the lifecycle check, andload_predictionscrashed reading a pretty-printed answer file line by line.- Release-level gate —
scripts/build_release.pynow runs the review suite as a release gate (like the corpus and calibration CLIs) and requires four new on-camera captions, so a future release cannot drop blindness or the withdrawal refusal silently. - Demo — the recording runs the real
queue → reveal (refused) → review → reveal → adjudicate → trainable → revokesequence against the committed synthetic sample and draws aREVIEW LEDGERcard from that actual output, labelledsynthetic answer file · no model was measured.
Scope note, stated plainly: the review tool is a command line, not a screen in the app. This release does not imply a reviewer screen; the recording runs the real commands and shows their real output.
Merge hygiene: PR #88's head failed the repo's own
check:diffgate on a trailing blank line inscripts/review_corpus.py. Fixed with a whitespace-only commit (d54665d) before merge, thencheck:diffand all suites re-verified — the gate was satisfied, not skipped.Completed ticket / PR
- Issue #26 — Build reviewer/adjudication tool for Bristol, color, quality, and exclusions (closed by this release).
- PR #88
Blind reviewer and adjudication tool for corpus labels (#26)— merged asb191d04after diff review: 10 files, +1296/−109, text only (no binaries, weights, medical imagery, or secrets),Closes #26linked to a non-human-gate issue.
Gates — 25/25 passed
npm test227/227,tests/corpus-review.test.py21/21, corpus manifest 8/8, calibration harness 19/19, mobile green path, photo-first acceptance, sleek Hermes chat, manual fallback + draft recovery, provisional suggestion state, hard-stool follow-up, vision corpus refusal, abstention quality gate, worker container receipts, worker post-load readiness, longitudinal pattern summary, grounded chat citations, training contribution consent, corpus manifest provenance, reviewer/adjudication blindness, calibration harness gates, portable backup restore, dependency audit (0 high), syntax (node/bash/python), secret scan, forbidden artifacts, demo H.264 720×1280 probe, complete MP4 decode, release delta verified painted on camera (83/83 captions).Gate note: the first gated build failed
npm testonce atmalformed and escaping base paths are rejected at startup— that test spawns 19 servers with a fixed 800 ms deadline on a busy 4-core host (load ~11). Proven host contention rather than a regression: the file passed 5/5 isolated runs, and the whole gated build was re-run end to end and passed with 227/227 and all 25 gates. The gate was re-run, not loosened or bypassed.Artifacts
- source archive
timmy-talking-turd-2026-10-27-b191d0427ddb.tar.gz— 311,861 bytes — sha256d40aa477b0aa799099d28291e264594d51f1ef68efdca6338137473dcb6e6ffa - demo video
timmy-talking-turd-2026-10-27-b191d0427ddb-demo.mp4— 25,456,205 bytes — H.264 720×1280 yuv420p, 25 fps, 408.2 s — sha2564c3601c830dfb81261a0ffcba75778e753777807212d9c61ed50dd5384899470
Model / profile
Recorded against the real app running from the built commit with
TIMMY_VISION_ENABLED=false; vision replies replay the committed synthetic corpus through the app's real analysis path. The review card is a realscripts/review_corpus.pyrun over the committed synthetic sample plus a synthetic answer file (no model was measuredon screen). No live model inference appears in the video, no real photo is used anywhere, and the fixtures are CC0 synthetic images generated byscripts/build_vision_corpus.py.Demonstrated on camera
- queue:
1 pending · proposal Type 4 · brown · good,model answer withheld from the reviewer - reveal before any review: refused, answer stays hidden
- correction committed (
5 / green / fair) with the original proposal kept beside it - model answer revealed (
Type 6 · brown · good · confidence 0.71) →DISAGREE bristolType · color · quality - second reviewer adjudicates:
2 lines · resolves record 1 · reviewer-a's review untouched trainable samples: 1→ after consent withdrawal:queue 0 · trainable 0and review/reveal/train refused
Known accuracy limitation
Open-weight VLM acceptance is proven; Bristol accuracy is not clinically validated. The calibration/abstention release receipt still reports
BLOCKEDbecause there is no candidate model until issue #31 — this release adds the reviewer control, not a measured classifier. User confirmation remains mandatory everywhere: photo analysis may suggest visible Bristol form, broad color, and image quality only, and never symptoms or a diagnosis.Downloads