Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ permissions:
contents: read
env:
CARGO_TERM_COLOR: never
TAG: v0.8.1
TAG: v0.8.2

jobs:
bench:
Expand Down
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
All notable changes to this project are documented here. The format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## 0.8.2 - unreleased
## 0.8.2 - 2026-10-14

### Added
- `probbit monitor STRAND --open` (and `--serve`) shows an Activity Monitor for one individual: a sortable, filterable table of
Expand All @@ -30,6 +30,8 @@ All notable changes to this project are documented here. The format follows
document gains `"unproven": [{id, rule, seeds_unknown, searched}]`, `ok` is false, stderr says "unproven, not broken", and the
exit code is the new **3** (0: every rule held or proved; 1: an unresolved contradiction or a counterexample, which wins over
3; 2: bad input, as before). Up to 0.8.1 the same case exited 0 with `ok: true`. docs/persona.md §5.5.
**Upgrade note:** `persona lint` now exits 3 on unproven rules, so a CI gate that treats any non-zero exit as a failure goes
red on rules that passed silently before. Accept exit 3 explicitly if unproven rules are acceptable to you.
- `persona fuzz`, MCP `probbit_persona_fuzz` and `lint`'s search add every threshold the rule's `when` and the habits' `when`
read on a number input to the grid (as a fraction of that input's max, after the given points, each once; `search.grid` lists
them). A rule in force only between two default grid points (for example stakes 0.7 to 0.8) is now reached by the random
Expand Down
10 changes: 5 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ resolver = "2"
members = ["probbit-core", "probbit-ir", "probbit-decide", "probbit-cli", "probbit-wasm"]

[workspace.package]
version = "0.8.1"
version = "0.8.2"
edition = "2021"
license = "Apache-2.0"
rust-version = "1.78"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ modes"). The tables are in [BENCHMARKS.md](BENCHMARKS.md).

## Install

One line, no sudo, the archive's SHA-256 checked before anything is installed. The current release is v0.8.1.
One line, no sudo, the archive's SHA-256 checked before anything is installed. The current release is v0.8.2.

| how | command |
|---|---|
Expand Down
2 changes: 1 addition & 1 deletion docs/CHEATSHEET.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# probbit cheat sheet (0.8.1)
# probbit cheat sheet (0.8.2)

The CLI's own help and docs, shortened; `probbit <command> --help` has every flag.

Expand Down
2 changes: 1 addition & 1 deletion docs/persona.md
Original file line number Diff line number Diff line change
Expand Up @@ -711,7 +711,7 @@ credits every learned trait with the level it took, so a reward aimed at one tra
demo below, praise for short answers also raised the light joke the tutor was making): learn the traits the feedback judges.

**The strand.** `--strand FILE` logs the life. Line 1 is the header, compact JSON:
`{"probbit_strand":1,"engine":"probbit 0.8.1","persona":{"name","version","digest"},"seed":N,"state":{...},"document":{...}}`,
`{"probbit_strand":1,"engine":"probbit 0.8.2","persona":{"name","version","digest"},"seed":N,"state":{...},"document":{...}}`,
with the initial state as canonical JSON (one individual has one header, whether it comes from `init` or from a state file) and
the persona document in its own key order (the compiled program, and `engine.program` with it, follows the document's key order).
Then one line per event, canonical JSON: `{"inputs":{...,"elapsed_hours":h},"n":k,"prev":"sha256:...","stance":"sha256:...",
Expand Down
2 changes: 1 addition & 1 deletion docs/probbit.1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.TH PROBBIT 1 "" "probbit 0.8.1" "probbit manual"
.TH PROBBIT 1 "" "probbit 0.8.2" "probbit manual"
.SH NAME
probbit \- a virtual probabilistic (p\-bit) processor: joint decisions under hard rules, with gated odds
.SH SYNOPSIS
Expand Down
6 changes: 3 additions & 3 deletions install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
# and installs probbit.exe. No administrator rights needed.
#
# irm https://raw.githubusercontent.com/BitmapAsset/probbit/main/install.ps1 | iex
# & ([scriptblock]::Create((irm https://raw.githubusercontent.com/BitmapAsset/probbit/main/install.ps1))) -Version v0.8.1
# & ([scriptblock]::Create((irm https://raw.githubusercontent.com/BitmapAsset/probbit/main/install.ps1))) -Version v0.8.2
#
# Parameters (each also read from the environment variable named after it):
# -Version PROBBIT_VERSION release tag, e.g. v0.8.1 (default: the latest release)
# -Version PROBBIT_VERSION release tag, e.g. v0.8.2 (default: the latest release)
# -InstallDir PROBBIT_INSTALL_DIR where probbit.exe goes (default: $HOME\.local\bin)
# -DownloadBase PROBBIT_DOWNLOAD_BASE the archive is fetched from <DownloadBase>/<tag>/probbit-<tag>-<target>.zip
# (default: https://github.com/BitmapAsset/probbit/releases/download); needs -Version
Expand Down Expand Up @@ -37,7 +37,7 @@ $customBase = [bool]$DownloadBase
if (-not $DownloadBase) { $DownloadBase = "https://github.com/$Repo/releases/download" }
$DownloadBase = $DownloadBase.TrimEnd('/')
if (-not $Version) {
if ($customBase) { throw 'probbit install: set -Version (or PROBBIT_VERSION), e.g. v0.8.1, together with -DownloadBase' }
if ($customBase) { throw 'probbit install: set -Version (or PROBBIT_VERSION), e.g. v0.8.2, together with -DownloadBase' }
$Version = (Invoke-RestMethod -UseBasicParsing -Uri "https://api.github.com/repos/$Repo/releases/latest").tag_name
if (-not $Version) { throw 'probbit install: no published release found (set -Version)' }
}
Expand Down
6 changes: 3 additions & 3 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
# probbit installer: fetches a prebuilt release archive, checks its SHA-256 and installs the `probbit` binary. Never uses sudo.
#
# curl -fsSL https://raw.githubusercontent.com/BitmapAsset/probbit/main/install.sh | sh
# curl -fsSL https://raw.githubusercontent.com/BitmapAsset/probbit/main/install.sh | PROBBIT_VERSION=v0.8.1 sh
# curl -fsSL https://raw.githubusercontent.com/BitmapAsset/probbit/main/install.sh | PROBBIT_VERSION=v0.8.2 sh
#
# Environment (all optional):
# PROBBIT_VERSION release tag, e.g. v0.8.1 (default: the latest release)
# PROBBIT_VERSION release tag, e.g. v0.8.2 (default: the latest release)
# PROBBIT_INSTALL_DIR where `probbit` goes (default: ~/.local/bin; never overwrites a system-wide install implicitly)
# PROBBIT_DOWNLOAD_BASE the archive is fetched from $PROBBIT_DOWNLOAD_BASE/<tag>/probbit-<tag>-<target>.tar.gz
# (default: https://github.com/BitmapAsset/probbit/releases/download); needs PROBBIT_VERSION
Expand Down Expand Up @@ -92,7 +92,7 @@ main() {

version="${PROBBIT_VERSION:-}"
if [ -z "$version" ]; then
[ -z "${PROBBIT_DOWNLOAD_BASE:-}" ] || die "set PROBBIT_VERSION (e.g. v0.8.1) together with PROBBIT_DOWNLOAD_BASE"
[ -z "${PROBBIT_DOWNLOAD_BASE:-}" ] || die "set PROBBIT_VERSION (e.g. v0.8.2) together with PROBBIT_DOWNLOAD_BASE"
version=$(latest_tag) || exit 1
[ -n "$version" ] || die "no published release found (set PROBBIT_VERSION)"
fi
Expand Down
2 changes: 1 addition & 1 deletion npm/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "probbit",
"version": "0.8.1",
"version": "0.8.2",
"description": "probbit, a virtual p-bit processor for joint decisions under hard rules: installs the prebuilt probbit CLI (JSON in, JSON out).",
"license": "Apache-2.0",
"repository": {
Expand Down
6 changes: 3 additions & 3 deletions probbit-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@ name = "probbit"
path = "src/main.rs"

[dependencies]
probbit-core = { path = "../probbit-core", version = "0.8.1" }
probbit-decide = { path = "../probbit-decide", version = "0.8.1" }
probbit-ir = { path = "../probbit-ir", version = "0.8.1" }
probbit-core = { path = "../probbit-core", version = "0.8.2" }
probbit-decide = { path = "../probbit-decide", version = "0.8.2" }
probbit-ir = { path = "../probbit-ir", version = "0.8.2" }
4 changes: 2 additions & 2 deletions probbit-decide/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ keywords = ["p-bit", "assignment", "routing", "constraints", "probabilistic"]
categories = ["algorithms", "science"]

[dependencies]
probbit-core = { path = "../probbit-core", version = "0.8.1" }
probbit-ir = { path = "../probbit-ir", version = "0.8.1" }
probbit-core = { path = "../probbit-core", version = "0.8.2" }
probbit-ir = { path = "../probbit-ir", version = "0.8.2" }
2 changes: 1 addition & 1 deletion probbit-ir/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ keywords = ["p-bit", "constraints", "gibbs-sampling", "probabilistic", "ising"]
categories = ["algorithms", "science", "mathematics"]

[dependencies]
probbit-core = { path = "../probbit-core", version = "0.8.1" }
probbit-core = { path = "../probbit-core", version = "0.8.2" }
2 changes: 1 addition & 1 deletion scripts/bench/test_install_ps1.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# installs it with -DownloadBase, then the `irm | iex` form (environment variables), then the tampered copy (must fail).
# pwsh -File scripts/bench/test_install_ps1.ps1 -Srv <dir> [-Tag v0.2.0] [-AddToPath]
# powershell -ExecutionPolicy Bypass -File scripts/bench/test_install_ps1.ps1 -Srv <dir>
param([Parameter(Mandatory = $true)][string]$Srv, [string]$Tag = 'v0.8.1', [switch]$AddToPath)
param([Parameter(Mandatory = $true)][string]$Srv, [string]$Tag = 'v0.8.2', [switch]$AddToPath)
$ErrorActionPreference = 'Stop'
"PowerShell $($PSVersionTable.PSVersion) ($($PSVersionTable.PSEdition))"
$oldPath = $env:Path
Expand Down
4 changes: 2 additions & 2 deletions scripts/tests/test_install_contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def run_fixture(self, os_name, arch, libc, **extra):
script.chmod(0o755)
env = dict(os.environ, PATH=str(root) + os.pathsep + os.environ["PATH"],
FIXTURE_OS=os_name, FIXTURE_ARCH=arch, FIXTURE_LIBC=libc,
PROBBIT_VERSION="v0.8.1", PROBBIT_INSTALL_DIR=str(root / "bin"))
PROBBIT_VERSION="v0.8.2", PROBBIT_INSTALL_DIR=str(root / "bin"))
for key in ["PROBBIT_TARGET", "PROBBIT_DOWNLOAD_BASE"]:
env.pop(key, None)
env.update(extra)
Expand All @@ -45,7 +45,7 @@ def test_supported_target_selection(self):
with self.subTest(target=target):
output = self.run_fixture(os_name, arch, libc)
self.assertIn("FIXTURE_FETCH", output)
self.assertIn("probbit-v0.8.1-" + target + ".tar.gz", output)
self.assertIn("probbit-v0.8.2-" + target + ".tar.gz", output)

def test_unsupported_architecture_never_fetches(self):
output = self.run_fixture("Linux", "riscv64", "glibc")
Expand Down
Loading