Repository navigation
0.8.2 (part A): Activity Monitor, lint unproven state, fuzz grid thresholds, installer hint - #28
Merged
Merged
Conversation
prove left a rule unknown and the default fuzz search found no counterexample:
lint used to say ok:true and exit 0. It now lists the rule under "unproven"
({id, rule, seeds_unknown, searched}), sets ok:false, says "unproven, not
broken" on stderr and exits 3. Exit 1 (a counterexample or an unresolved
contradiction) wins over 3. Docs: persona.md §5.5, README, agents.md.
Every number a rule's when or a habit's when reads on a number input is added to the search grid (as a fraction of the input's max, after the given points, each once) for persona fuzz, MCP probbit_persona_fuzz and lint's search. search.grid reports them. A rule in force only between two default grid points (stakes 0.7 to 0.8) is now reached by the random search. No schema change.
zsh -> ~/.zshrc, bash -> ~/.bash_profile on macOS and ~/.bashrc elsewhere, any other shell -> ~/.profile. POSIX sh as before; test_install_sh.sh step 8 checks each case under sh and dash. install.ps1 has no such hint.
…nd cheatsheet README keeps the no-strand tutor demo line and dates the page; the cheatsheet rows name the Activity Monitor page, --once and --demo week|drives.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part A of 0.8.2. No version bump, tag or release here; CHANGELOG entries sit under
## 0.8.2 - unreleased.1. Activity Monitor (
probbit monitor STRAND --open/--serve)A compact, read-only page for one individual: a sortable, filterable table of the persona's declared traits, moods and (when present) drive channels, event-history traces, Δ against exactly the preceding event (a gap when its document is missing), and an inspector with the full distribution, units, range, source field and the event's
why. Hold/follow, and separate states for replay divergence, stale receiver age, held view, paused/retired strand, persona-confidence hold, engine-unreleased trait and lost connection. Works for any persona read from the strand. Embedded in the binary, no external assets. Additive layout metadatacaps.prediction_error(fromexpectation.pe_cap). The terminal view is unchanged.monitor::tests, incl.drive_metadata_preserves_declared_scales), 10 integration tests (probbit-cli/tests/monitor.rs), real-browser suiteprobbit-cli/tests/monitor_browser.mjs(run by thewasmjob): sort/filter/search, keyboard, generic and traits-only personas, hold vs unreleased, declared caps, append, hold/follow, stale clock, pause/retire, disconnect/reconnect, missing documents, checkpoint bounds, identity reset, narrow layout.2.
persona lint: "unproven" state (exit 3)When
proveleaves a ruleunknownand the defaultfuzzsearch finds no counterexample, lint used to reportok: trueand exit 0. Now the document gains"unproven": [{id, rule, seeds_unknown, searched}],okis false, stderr says "unproven, not broken", and the exit code is 3. 0 = every rule held or proved; 1 = unresolved contradiction or a counterexample (wins over 3); 2 = bad input, as before. In-repo callers: no script, Python, npm, MCP or CI caller ofpersona lint; tests and docs (README, docs/agents.md, docs/persona.md §5.5/§5.6 and the command table) updated.lint_reports_an_unknown_unbroken_rule_as_unproven(unknown + unbroken → 3 with the list; proved → 0 withunproven: []; broken next to unproven → 1, both reported);lint_with_rules_proves_then_fuzzes_the_unknown_onesalso assertsunproven: [].3. Fuzz grid includes the thresholds
Every number literal in the rule's
whenand the habits'whenon a number input is added to the search grid (as a fraction of that input's max, after the given points, each once) forpersona fuzz, MCPprobbit_persona_fuzzand lint's search;search.gridreports it. No schema change. Personas whose rules and habits read no off-grid thresholds get the same search byte for byte (the pinned fuzz goldens pass unchanged).fuzz_grid_includes_the_thresholds_of_the_rule_and_the_habits. A rule in force only at stakes 0.7 to 0.8 (between the default points 0, 0.5, 1) with--beam 0: grid[0,0.5,1,0.7,0.8], counterexample[{"stakes":0.7}](before this change: grid[0,0.5,1], none found). Also covers dedup of an on-grid threshold and a max-100 input (habit 65 and rule 42 → 0.65 and 0.42).4.
install.shPATH hintWhen the install directory is not on
PATH, the hint names the rc file of the user's shell: zsh~/.zshrc; bash~/.bash_profileon macOS,~/.bashrcelsewhere; any other shell~/.profile. Still POSIX sh.install.ps1has no rc-file hint (it offers-AddToPath), so it is unchanged.scripts/bench/test_install_sh.shstep 8 checks fiveSHELLvalues (passes locally undershanddash);scripts/tests/test_install_contract.pyunchanged and passing.5. Docs
CHANGELOG
## 0.8.2 - unreleased(Added / Changed / Fixed); README monitor section keeps the no-strand demo line; cheatsheet monitor rows updated.Local:
cargo test --workspace --locked290 passed, 0 failed, 1 ignored; release build--locked; monitor browser suite ok; Python contracts 44 OK; npm wrapper 13 pass. MSRV 1.78 is checked by themsrvjob.