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.
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.
| Axis | Current | What it covers |
|---|---|---|
| Language grammar | v0.6.2 | The 32-atom catalog, operators, canonical_id, and the .srml notation the spec defines. |
| Conformance corpus | v0.6.2 | The fixtures a validator must pass to claim conformance. |
| Package suite | 0.7.2 | scholialang 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.