Early benchmarks: 135/135 trace-seeded replay cells matched across three model families

Release note · 2026-08-06

Scholialang 0.7.2: one version number for the suite.

scholialang and scholialang-mcp now release together on a single suite version. 0.7.1 was the first synchronized release and added the additive fingerprint= attribute; 0.7.2 hardens constraint validation and repairs canonical export, session identity, and end-of-session closure. The Scholia language grammar stays exactly where it was: v0.6.2.

scholialang v0.7.2 scholialang-mcp v0.7.2


0.7.1

Two packages, one release line.

Until now the language package and the integration package drifted: scholialang-mcp shipped 0.7.0 on its own while scholialang sat at 0.6.2, and answering "what version am I on?" meant naming two numbers. 0.7.1 closes that. scholialang skipped 0.7.0 deliberately so both packages could meet on the same number, and 0.7.1 is the first release where they move together.

The feature in 0.7.1 is the additive fingerprint= attribute: an optional <algo>:<hex> content hash on location-bearing atoms — <Observation> today — so a consumer can mechanically re-verify that a claim about code still points at the code it was written against. A new fingerprint_well_formed hard-fail rule enforces the shape: vacuous when the attribute is absent, and when present the value must match ^[a-z0-9]+:[0-9a-f]+$ and the atom must also carry a location.

The check is structural, not cryptographic — the validator confirms the fingerprint is well formed and anchored to a location. It does not recompute the digest.

fingerprint= is excluded from the canonical_id hash on purpose: it identifies the code the atom points at, not the atom itself, so adding one never changes a trace's content address. Existing traces keep validating unchanged. SCHOLIA_VALIDATOR_VERSION moves to 0.7.1; the conformance corpus stays at v0.6.2. On the integration side, scholialang-mcp 0.7.1 re-vendors the validator snapshot from scholialang 0.7.1 (commit fb4de98), pins the dependency to >=0.7.1,<0.8, raises MIN_VALIDATOR_VERSION to (0, 7, 1), and proves the referenced-not-forked claim in spec-parity CI against scholialang-spec 9c1fcfa.


0.7.2 · validator

Constraint checking stops reading articles as verbs.

The constraint_respected rule extracts forbidden actions from constraint text and then checks that later atoms do not perform them. Its extraction was too eager. Given a constraint phrased "Never a bare null." it pulled the article a out as a forbidden verb, and every subsequent atom containing that letter as a token tripped the rule. Substring matching compounded it: delete matched inside undeleted, so an atom reporting that nothing was deleted was flagged for deleting something.

0.7.2 requires complete token boundaries throughout and skips articles during extraction, so delete no longer matches undeleted while the imperative forms that carry real constraints — Never, must not, do not — keep working exactly as before. Forbidden-phrase matching is now case-insensitive, so a constraint written in sentence case still catches a violation written in lower case. Shared positive and negative conformance fixtures pin both directions, and release-version guards keep the validator version and the packaged corpus from drifting apart again.

Constraint scope stays forward-only: a constraint governs the atoms that follow it, never the ones that precede it. That was correct before and is unchanged here.


0.7.2 · integration

Export, identity, and closure repairs.

scholialang-mcp 0.7.2 is a damage-control and lifecycle-integrity release. Canonical XML exports now preserve atom attributes and translate result edges into proper nested closure instead of truncating a DAG into a document that would not validate on the way back in. The plugin-only Summary pseudo-atom — which was never part of the 32-atom catalog — is replaced with canonical atoms, unknown kinds are rejected outright rather than passed through, and the full catalog is reachable through scholia_catalog and scholia_lookup.

Session identity is no longer collapsed into a shared unknown:default bucket. Sessions are isolated by host and server runtime; explicit arguments and the SCHOLIA_SESSION_ID / CLAUDE_SESSION_ID environment variables take precedence when present; and in Claude Code, the identity bound at SessionStart now carries through to later implicit calls instead of being re-derived. At the other end of the lifecycle, SessionEnd emits a goal-closing, premise-backed <Concluding>, so a session's trace closes rather than simply stopping. The Claude Code, Codex, Ollama, and Claude Desktop adapters are updated to match.


Versioning

Two axes, labeled separately.

Scholialang versions the language and the software that implements it on separate tracks, and from 0.7.2 onward public copy labels them separately rather than reporting one number and hoping context disambiguates it. The release line moves; the grammar does not.

AxisCurrentWhat it covers
Language grammarv0.6.2The 32-atom catalog, operators, canonical_id, and the .srml notation the spec defines.
Conformance corpusv0.6.2The fixtures a validator must pass to claim conformance.
Package suite0.7.2scholialang and scholialang-mcp, now released on one number.

What this means for your traces. Nothing in the 0.7.x line changes the grammar. Traces written against v0.6.2 validate identically under 0.7.2, and fingerprint= is additive — absent, it is vacuous; present, it does not affect canonical_id. Upgrading is a software upgrade, not a migration.


Install & upgrade

Get 0.7.2.

Both packages install from PyPI. Upgrade them together — scholialang-mcp 0.7.2 requires scholialang >=0.7.1,<0.8:

pip install --upgrade scholialang scholialang-mcp

For the host plugins, dougfirlabs/scholialang-mcp is the marketplace root — both hosts add it straight from GitHub:

# Claude Code
claude plugin marketplace add dougfirlabs/scholialang-mcp
claude plugin install scholialang@scholialang-mcp

# Codex
codex plugin marketplace add dougfirlabs/scholialang-mcp
codex plugin add scholialang@scholialang-mcp

If you install the Claude Desktop bundle instead, verify the MCPB download before installing it:

6142ddf2affe77737d65260dd9ae0713cd37c1151b54b5e5c154d301f0b1e03d

Full host-by-host setup — including the Ollama recipes and the local live view — is on the plugins page.

Open the repo Plugin setup