Repository navigation
The monitor face and the Mac app, identity labels and many strands in one monitor, and the OpenClaw plugin probbit-stance 0.2.0. A persona without the new display block gives every document byte for byte as 0.12.1 (the P0 corpus, 653 recorded outputs, 0 differ).
What changed
- Monitor face (#70, #72). The monitor page's top bar shows the stance's glyph, two mood meters with every level's odds, a "why this glyph" panel (the inputs the event carried, the habits in force, the surprise reading, the stance line) and a settle strip that steps through the event's exact trajectory.
- Display glyphs (#65, #67). An opt-in
display.glyphspersona block (docs/persona.md §2.18) maps each stance to one emoji by a fixed rule order: a habit in force, else the mood table cell, then a surprise modifier. The stance document carriesglyphandglyph_why, the strand logs the glyph andprobbit live verifyrecomputes it. - probbit Monitor for macOS (#74). The monitor page in its own Mac window around a bundled probbit: open a
.strandfrom Finder, the Dock or File → Open, or try the demo. Universal (Apple silicon and Intel), macOS 13 or later, signed ad-hoc: the first launch of a downloaded copy needs one confirmation (docs/monitor-app.md says how). - Identity labels and many strands (#75). A
NAME.labels.jsonsidecar beside each strand says which agent, host, lane and session it is, outside the strand and its digests, so a labelled strand verifies under every engine.probbit live --label k=v;probbit monitor A.strand B.strand --serveor--dir DIR --serveserves many strands with a switcher rail. The Claude Code hook, the OpenClaw plugin, the Python host and the framework examples write labels. - OpenClaw plugin
probbit-stance0.2.0 (npm). TheMood glyph:line in the stance block (#65, #67), the senses feed for tempo, tool failures and time pressure, shadow first (#69), per-lane labels for the monitor (#75), and a hard requirement: it checks the binary at load and runs no event with a probbit older than 0.13.0 (one warning names both versions). - Reproduction (#68).
rerun.shandrerun_e3.shprintMATCHorDIFFERSper table against the committed files and exit non-zero on a difference; a guard for the numpy wheel range (Python 3.9 to 3.12); the strand archive repacked without extended attributes (GNU tar extracts it without warnings). The lab tables behind Result 2 are reproduction kits underbench/lab/0.11/(#64); REPRODUCE.md has four tiers. - Documentation.
CITATION.cff(#71); fixes from two dress rehearsals of the published 0.12.1 artifacts (#66, #73).
Upgrade notes
probbit-stance0.2.0 needs probbit 0.13.0 or later. With probbit 0.12.x keepprobbit-stance0.1.0. The example entryinstall/openclaw-entries.jsonsetssensesMode, a 0.2.0 key.- probbit 0.12.1 and earlier refuse a persona with a
displayblock (display: unknown field, exit 2). rerun.sh's lineidenticalnow readstwo passes identical; the script exits non-zero on anyDIFFERS, and a Python outside 3.9 to 3.12 is refused unlessPYTHON=<python>is set.- Every other document, exit code and strand is as in 0.12.1.
Install
curl -fsSL https://raw.githubusercontent.com/BitmapAsset/probbit/main/install.sh | sh
npm i -g probbit
openclaw plugins install npm:probbit-stance --accept-capabilitiesAssets
15 files: six archives (macOS arm64 and x86_64, Linux x86_64 glibc and musl, Linux arm64 musl, Windows x86_64), probbit-Monitor-v0.13.0-macos.zip (the Mac app, universal), a .sha256 beside each of those seven, and the manual page probbit.1. Check an archive with shasum -a 256 -c <asset>.sha256.
Reproduce a number: REPRODUCE.md. Full list: CHANGELOG.md.