Skip to content

Releases: ActiveInferenceInstitute/Generalized_Notation_Notation

GNN 4.1.0

Choose a tag to compare

@docxology docxology released this 08 Oct 17:56
9255e19

GNN 4.1.0 aligns public execution contracts, strengthens owned filesystem and process boundaries, and improves scientific presentation, diagnostics and installed-package acceptance. The 25-step workflow and supported scientific semantics are preserved.

GNN 4.1.0: one source specification through parsing, validation, rendering, supervised execution, analysis and paired interchange

Changes

  • Python, CLI, REST and MCP execution share admitted steps, frozen selections, typed backend options, run identity and current artifact receipts. Invalid executing-step requests refuse before output creation; an empty selected model view remains valid no-work. Installed APIs use explicitly configured model/output storage independently from installed code. Read the migration guide.
  • Logging, website generation and RxInfer interchange/analysis have coherent owners with preserved public consumers. Typed failure reasons retain source/path context. Logging handlers cannot mutate each other’s message; malformed native CSV rows cannot misalign valid traces. Round-trip testing uses the actual supplied source and distinct saved format artifacts, including concurrent same-name models.
  • Saved Markdown types and nested boolean arrays retain their authored values, dimensions and descriptions through both readers and JSON/XML/YAML reopening. Existing literal size/depth guards and unsupported-value recovery remain intact. GUI 1 edits preserve canonical sections and newline styles; ontology labels take precedence over bare mappings.
  • Generated Python preserves authored display strings, quoted names and JSON keywords as data. Canonical PyMDP and DisCoPy consumers retain their existing scientific contracts; separately exported generators remain separately qualified. Canonical PyMDP refuses nonfinite numeric metadata before creating or replacing generated files; the migration guide documents this finite-JSON requirement for both modes. Generated source compilation and metadata checks do not establish inference readiness.
  • Native JAX command-line streams, generated result files and saved execution logs use UTF-8, preserving authored Unicode across source, paths and outputs. Scientific algorithms, supervised process boundaries and original deadlines remain intact. Windows cancellation targets the actual direct worker and refuses unsupported descendant containment.
  • Saved JSON/YAML models retain explicit time-step sizes and canonical datatype values. Installed YAML parsing accepts leading comments and reports malformed syntax through the original failed parse result. Registry/convert refusal and the schema facade's visible Markdown recovery remain separate contracts. Formal-format saved consumers preserve authored values and provenance; this does not certify external compilers or proofs.
  • Gradio builders support the declared installed dependency and actual callbacks preserve canonical transition axes, signed/zero vectors and float values through save/reopen. Read the GUI migration guide before regenerating older rounded, malformed or transposed exports.
  • Saved current-schema ActiveInference.jl outputs recover their own CSV observations, actions and beliefs without borrowing another model’s implementation path. Malformed numeric rows are rejected as complete rows, preserving alignment and the available signed EFE artifacts. These are saved-file consumer checks, not new Julia execution or scientific equivalence claims.
  • Processing reports refuse missing or failed required outputs. Pipeline aggregation honors requested formats, retains actual partial files and preserves historical identities when replaying saved runs. MCP stdio retains fragmented/coalesced frames and drains admitted work at EOF; read failures remain failures in saved round-trip counts.
  • POSIX creation, leases and deletion use descriptor-relative operations with explicit trusted-parent limits. Cancellation verifies owned cleanup and stream drainage; unverified cleanup retains records and artifacts. Windows direct-worker cleanup is declared precisely and stronger descendant guarantees refuse before launch. These are the documented process/filesystem boundaries, not a hostile-code sandbox.
  • Scientific figures identify controls, axes, iteration/timestep bases, probability/entropy quantities and reported uncertainty. Unknown units and conventions remain explicit. Native categorical and Gaussian traces, selected animation frames, actual stored artifacts and source hashes support finite visual review.
    Canonical action planes use previous-state/next-state axes. Small correlation views use a symmetric domain derived from actual finite data; all-zero display scaling preserves the original numbers.
  • The full 552-production-image encoder comparison found 5.48% less median encoder CPU time with identical decoded pixels, dimensions and metadata, at a 3.07% file-size increase. This is encoder-stage evidence on the measured native environment, not a whole-pipeline or cross-platform speedup. Repeated, concurrent and bounded localhost distributed witnesses retain actual timings, resource observations and admission limits.
  • The .agent_rules directory is modularized into 22 guides with task-based routing and dedicated workflow, run ownership, scientific evidence, interface, CI, documentation, security and release modules. Stable paths remain available; current registries, configuration and executable gates own changing facts. Source archives exclude generated import-linter caches; archive verification binds package and documentation bytes to Git. Maintained guidance uses canonical package paths and live owners. Additional behavior tests exercise authored formats, public entrypoints, native artifacts and failure paths. Separate comprehensive coverage traces Python subprocesses while preserving existing core reports, scopes and gates.

Verified delivery

Annotated tag v4.1.0 identifies accepted main 9255e19f951d. All 25 required source jobs in ten workflows passed on main and again at the exact tag; the actual source-bound dependency graph also passed. Independent raw coverage exceeds 80% separately on Python 3.11, 3.12 and 3.13, with 8,859 distinct selected nodes per environment. All five installed native platforms passed 163 environment-case executions with zero failures, errors or selected skips. Exact CI JUnit selections, ordinary wheel/sdist Git and RECORD parity, all 22 agent guides, outside-checkout installed imports and manuscript producer custody were verified. The macOS tag job alone was retried after a hosted-runner capacity failure; the four original passing lanes and actual producer-attempt custody are retained.

FEP main 34f8f3330dbf passed its 20 required jobs, native 168-topic Lean catalogue, declaration audit and 388-page render acceptance. GEO main c1027a9d538f passed all 23 required checks, including both native interchange matrices pinned to this GNN source. Current issues, Dependabot and code-scanning alerts are zero. Full evidence and artifact hashes are in release-verification.json and SHA256SUMS. All 13 attached release assets were downloaded from their public URLs and verified against the accepted bytes, provider digests and checksum files. The post-publication receipt records the actual publication, original public downloads and current gates.

The version-specific Zenodo DOI 10.5281/zenodo.23245091 resolves to the published 4.1.0 source archive. Its provider checksum, all 3,289 tagged Git blobs and the released manuscript were verified directly. The source-archive receipt includes exact source and manuscript hashes and ZIP metadata qualifications. This automatic source archive does not include the separately attached wheel, sdist or checksum list; full distribution archival remains E5 and requires archive-owner connected authorized access.

Remaining limits

Released THRML 0.1.4 still produces NaNs for the independent inactive-padding/structural-zero witness on both supported JAX splits; strict model rejection remains. Upstream issue closure is not a compatible released fix. The directly verified 4.1.0 version-specific source archive matches this release, while archival of the separately attached distribution assets remains an external requirement. The concept DOI does not establish distribution-asset parity. PyPI publication and major scientific/LLM extensions remain separate tasks.

Python 3.14 GUI callbacks remain blocked by an upstream Gradio deprecation under the unchanged strict warning policy. The full Python 3.11, 3.12 and 3.13 GUI lanes and Python 3.14 builders do not certify callbacks on 3.14. Theme warnings remain visible. Complete native reports independently exceed 80% on all three supported Python environments; the comprehensive guard now enforces that threshold with the original selectors, denominator and strict warning policy.

GNN 4.0.1

Choose a tag to compare

@docxology docxology released this 07 Oct 19:56
17c72cf

GNN 4.0.1 resolves the remaining issue reports and patches the sixteen known GitHub security findings carried after 4.0.0. It improves bounded GUI parsing, dependency resolution, subprocess input delivery, and source-bound documentation without changing the 25-step workflow or silently normalizing scientific examples.

GNN 4 workflow, model notation, numerical execution and evidence overview; original 4.0.0 illustration

Fixes

  • GUI1 replaces the four polynomial markdown regex sites with a linear scanner, limits admitted input to 8,388,608 characters, and rejects oversized exports before replacing the previous file. Differential, hostile-growth and bound callback checks support the change; CodeQL confirms the four findings fixed on main.
  • The lock upgrades fsspec 2026.6.0, jupyterlab 4.6.4, multidict 6.9.1, tornado 6.5.9 and virtualenv 21.7.13, plus its required python-discovery 1.6.1 dependency. All 346 unrelated locked package records are unchanged. Transitive security floors are UV resolver constraints, so ordinary pip does not consume them.
  • Slow-reading children receive complete UTF-8 input through an owned private temporary descriptor, with cleanup preserved on cancellation, timeout and close errors. LLM summaries now report selected/discovered sources, prompts N/M, unfinished work, model, provider and budgets, and distinguish structural output from native response completion.
  • The six corrected probability examples have retained literal-value round trips and independent numerical witnesses. The manifest/index and manuscript now describe the declared hierarchical and contingent T-maze JAX contracts accurately, with unsupported backends explicit.
  • Duplicate Step 16 global analysis dispatch is resolved. The former 10×/identical-output acceptance target is retired: current analysis produces additional numerical and visual evidence, and the recorded contemporary comparison is slower. No speed improvement is claimed.

Verified delivery

Release source: 17c72cf0f98d7d3bbf0159d1b1cce8c77c4e4daf; annotated tag v4.0.1.

All required GNN, FEP and GEO hosted checks passed at the exact revisions recorded in verification.json. The full local GNN suite passed 7,789 cases plus 10 subtests with 57 optional-tool skips; the hosted default matrix, pipeline/MCP selections and extras gates are recorded separately and overlap. The 31-page manuscript and all seven figures passed custody, numerical-source, font, reference and finite visual review. Wheel and source archive contents were compared byte-for-byte to Git; assets and checksums are retained below.

Issues #236, #241 and #250 include their individual acceptance receipts and qualifications. GitHub reports zero open issues, zero open Dependabot alerts and zero open CodeQL alerts after the maintenance merge. Secret scanning is disabled in this repository; no settings or credentials were changed.

Scope retained

The configured smollm2:135m-instruct-q4_K_S completed the bounded N4 specimen, while exact larger-source requests exceed its 4096-token runtime context. The 38-source missing-model control correctly reports 0/342 native prompts and unfinished work. Full-corpus native LLM completion remains future capability S1; source truncation, model substitution and paid-provider execution are not claimed. Generic posterior checks cover float32/64; the three semantic-contract native runs use float64. FEP source-pair drift checks, native Lean theorem statements and generated-runner execution remain separate evidence planes.

The original 4.0.0 tag, release assets and image remain intact. This is a GitHub release; no PyPI upload, paid service or new archival DOI is claimed.

GNN 4.0.0 — Current-run Reliability

Choose a tag to compare

@docxology docxology released this 07 Oct 14:07
1bc3a76

GNN 4.0.0

Conceptual overview of GNN 4.0.0: Generalized Notation Notation connects generative-model specification, validation, rendering, execution and reporting with frozen selections, bounded execution, current-run evidence and FEP/GEO interchange.

GNN 4.0.0 binds model selection, source identity, artifacts and execution budgets to each pipeline invocation. It preserves the 25-step pipeline and canonical gnn.* Python namespace.

  • Collision-safe model IDs, frozen selections, current-run summaries and exclusive output ownership.
  • Strict probability/Gaussian validation, round-trippable literals and value-bound scientific evidence.
  • Shared execution deadlines, retained partial outcomes and bounded observed-process cleanup.
  • urllib3 2.8.0 security floor and lock for the chunked Deflate streaming advisory (GHSA-gh4c-6fx4-qh6g), preserving unrelated package pins during that security update.
  • Full-corpus LLM scheduling with request-bound checkpoints and explicit incomplete results.
  • Shared readiness/configuration contracts and typed distributed cancellation/results.
  • Experimental ordinary-wheel THRML categorical smoothing and cpomdp continuous control with explicit admission limits.
  • Regenerated manuscript and source-bound paired FEP/GEO interchange checks.

See the changelog and migration guide for migration details. The verification receipt identifies exact source/check/artifact epochs. Repository documentation records a prepublication snapshot; the post-publication receipt supplies the actual publication identities and date.

Scientific and security scope remains explicit: proposal-only autonomous mode; no universal backend, measured speedup, convergence or hardware-execution claim; no completed long-context LLM acceptance; no atomic confinement against hostile concurrent filesystem mutation. Issues #236/#241/#250 and separate GUI complexity alerts remain open. No PyPI upload or version-specific DOI is claimed.

Source-binding identifies the wheel/source contents; SHA256SUMS supplies artifact checksums. The post-publication receipt records final repository identities, publication date and direct download verification.

v3.6.0 — Composability & Offline Truth

Choose a tag to compare

@docxology docxology released this 27 Sep 01:58

GNN v3.6.0 — Composability & Offline Truth

The step-20 website is now a composable library and a truthful offline artifact:

  • Per-model detail pages at model/<slug>.html with the model's full GNN source (no truncation), breadcrumbs in every page shell, and client-side search (search-index.json + inline vanilla-JS filter) — all offline-true.
  • Pure-dict render mode: generate_website(..., filesystem=False) renders a complete site with zero disk collection; the step catalogue moves to a dependency-free leaf module (website/steps.py).
  • Fully offline generated pages: system font stack (no CDN), JSON-LD + meta description per page, atomic manifest write.
  • Complexity estimator subpackage with benchmark/estimate CLI subcommands; the dashboard folds into MCP artifact tools.
  • All six website dead-seams wired-or-removed (the website_html_filename knob is gone end-to-end).
  • Band splits: render/pomdp_processor/, render/processor/, and execute/processor/ packages — facade surfaces byte-exact, behavior verified byte-identical (normalized determinism receipts).
  • GEO-INFER consumer conformance pinned by a dedicated test suite (tests/export/test_geo_infer_consumer_compat.py).

Also: the validate_gnn* alias-retirement wiring cleanup, matrix_provenance["B"]["declared_order_explicit"], and the B-orientation refusal's exact-evidence reporting. Full details in CHANGELOG.md §3.6.0.

Battery at the release tip: 6629 tests passed / 25 skipped, mypy clean, ruff clean, manuscript token/citation integrity clean.

GNN v3.5.0 — Surface Truth & Integration

Choose a tag to compare

@docxology docxology released this 22 Sep 02:15

GNN v3.5.0 — Surface Truth & Integration

This release makes the package's outward surfaces honest and connected. The
website dashboard reads step statuses from the recorded pipeline execution
summary instead of guessing from directories; MCP clients speak the standard
2024-11-05 protocol in both transports, with three new tools (extract_pomdp,
generate_dependency_graph, template.pull) and a gnn_delete_run parity
tool. DELETE /api/v1/runs/{run_hash} now gives the API full run control —
proper cancellation with process-group teardown, artifact removal, and honest
status on timeout. The GUI estate got a truth pass: launches are verified over
HTTP instead of assumed, status artifacts share one schema, gui_1/gui_2/gui_3
and oxdraw gained dozens of UX and round-trip fidelity fixes, and a new
gnn gui subcommand puts the interactive stack on the CLI. Under the hood,
one canonical framework tuple drives every framework list (fixing the
--frameworks stan abort and silent lean filtering), step 24 gains
content-addressed LLM response caching, LSP diagnostics track in-editor
edits, and visualization imports got ~30% faster by making seaborn/scipy load
lazily.

Release stabilization (2026-09-22): after the initial tag, the CI matrix
surfaced a chain of green-gate fixes that are part of this release: the
version-literal reconciliation (gnn.__version__, api.MODULE_VERSION,
version-consistency tests), cross_framework runtime threading beside the new
timeout parameter, a flax marker-gate (flax 0.12.9 for the jax-0.11.2
py3.12 splits — 0.12.6 calls a jax API removed in 0.11.0), the mypy target
moved to 3.12 (numpy 2.4.x stubs), the executor lazy-loader reconciliation
carrying the ngclearn spec row, and a seaborn center= fix that routed the
correlation heatmap through a warning-raised Colormap.set_bad(). The tag
now points at the fully green tip.

GNN v3.4.0 — Model-Kind Truth

Choose a tag to compare

@docxology docxology released this 17 Sep 21:08

[3.4.0] — 2026-09-17

Model-Kind Truth. The documentation and manuscript surfaces now describe
discrete, continuous, and multi-agent models as first-class kinds across the
~110-doc corpus, and the manuscript is rebuilt around them with auto-injected
version/count tokens so no hard-coded numbers can drift. Alongside it: the
gnn doctor capability probe, the bnlearn Step 12 executor, Step-6
B-orientation diagnostics, and the cover-page graphical abstract.

Added (2026-09-16/17 — docs model-kind wave + token auto-injection)

  • Package-wide docs model-kind generalization. A discrete/continuous/
    multi-agent truth pass over the ~110-file documentation corpus replaced
    PyMDP-only framing with model-kind-aware language; the manuscript was
    rewritten around model kinds with auto-injected tokens
    (GNN_VERSION, GNN_MODULE_COUNT, GNN_TOOL_COUNT, GNN_TEST_COUNT),
    exemplar-kind split, and framework+kind capability tables — zero hard-coded
    counts remain.

Manuscript

  • Review PDF: attached (GeneralizedNotationNotation-manuscript-2026-09-17.pdf) — cover artwork, model-kind-generalized, all counts auto-injected from the snapshot token census at this release's HEAD.

v3.2.0 — Exemplar Gold Standard

Choose a tag to compare

@docxology docxology released this 02 Sep 18:35
fa06d80

Compare: v3.1.0...v3.2.0

Exemplar Gold Standard. Every exemplar GNN file renders and executes on
every framework that can represent it and is explicitly flagged unsupported
(not faked, not failed) on the ones that cannot. Continuous-state exemplars
are genuinely continuous (linear-Gaussian) with native JAX / NumPyro /
PyTorch / Stan / RxInfer.jl backends; the Stan renderer is rewritten from a
non-compiling stub into runnable HMM and LGSSM programs with a cmdstanpy
executor; Step 12 summaries merge across input folders; the Julia pre-exec
gate no longer blocks scripts on a toolchain-less launcher.

Verified end to end on macOS with Julia 1.12.7 (RxInfer 5.5.0,
ActiveInference.jl 0.1.2), CmdStan 2.39 and an ephemeral torch: 29 files,
249 renders OK / 0 failed / 12 unsupported; 194 executions OK / 0 failed /
55 dependency skips (torch, bnlearn); PyTorch 29/29 via
uv run --with torch; pytest 3120 passed.

Changed (2026-09-01 — exemplar gold standard: continuous models are continuous, Stan is real)

  • Continuous exemplars are now genuinely continuous. The three files under
    input/gnn_files/continuous/ declare only the linear-Gaussian state-space
    model (x, y, optional u, F/H/Q/R, prior_mean/prior_cov, optional
    goal_mean/control_gain) — the discretized POMDP stand-ins introduced on
    2026-08-03 are gone. continuous_navigation is a closed-loop navigator
    (u_t = 0.3 · (goal − μ_t)); the other two are passive. Extractor
    (gnn/pomdp_extractor.py) reads dimensions from F/H and sets
    model_kind = "continuous"; the render processor passes the block through
    verbatim instead of building canonical A/B/C/D.
  • unsupported is a first-class render status. Frameworks that cannot
    represent a model kind (PyMDP, ActiveInference.jl, DisCoPy, bnlearn on continuous
    models) return {"unsupported": true, "status": "unsupported"} with the
    reason "continuous-state model: … supports discrete POMDPs only". They are
    excluded from the success denominator, listed under
    unsupported_framework_renderings, and never handed to Step 12.
    framework_registry entries carry supports_continuous.
  • Native continuous backends. JAX, NumPyro, PyTorch and Stan render and
    execute the LGSSM (online Kalman filter, Joseph-form update, closed-loop
    control) via the shared generator render/continuous_script.py; NumPyro
    additionally fits the same model with NUTS (mcmc_posterior_means,
    mcmc_r_hat_max). RxInfer.jl's existing continuous strategy is reached
    without the A/B/C/D canonicalisation guard. Verified end to end on this
    machine for all five.
  • Stan renderer rewritten (render/stan/stan_renderer.py). The previous
    generator emitted target ~ normal(source, 1.0) per edge with undeclared
    variables and could not compile. Discrete models now render an HMM whose
    latent chain is marginalised with the forward algorithm and whose per-state
    observation distributions carry Dirichlet priors centred on the declared
    A; continuous models render the explicit Kalman marginal likelihood. Each
    render emits <stem>_stan.stan plus a cmdstanpy driver <stem>_stan.py.
    New execute/stan/ runner, stan added to Step 12 discovery and to
    utils.framework_availability (skips with uv sync --extra stan), new
    optional extra stan = ["cmdstanpy>=1.2"]. render_stan() remains as a
    declaration-only sketch.

Fixed (2026-09-01)

  • Step 12 summary no longer overwritten per input folder.
    execute/processor.py merges the prior execution_summary.json (details
    keyed by script path; counts, per-framework status and overall status
    recomputed) so the durable summary covers every folder, mirroring Step 11.
  • Julia pre-exec gate false positive. A julia launcher without a
    working toolchain made Meta.parseall return a non-zero exit with no
    GNN_PARSE_FAIL marker; the gate treated that as malformed code and blocked
    every Julia script. The probe now degrades to the advisory regex sweep
    unless the parser itself reported a failure.
  • INDEX.md excluded from model discovery (gnn/discovery.py), fixing
    four tests that counted 30 exemplars instead of 29.
  • CI hygiene. ruff format drift across 45 files cleared; Bandit B108
    (hard-coded /tmp in the CLI models command) replaced with
    tempfile.gettempdir(); the two Julia-live test modules now skip when the
    committed Julia project environments are not instantiated (CI ships julia
    without RxInfer/ActiveInference.jl); the framework-availability test honours
    toolchain probes; repository-terminology audit clean.
  • ActiveInference.jl precompile on Julia 1.12. Distributions pinned to
    0.25.100 – 0.25.125 in src/execute/activeinference_jl/Project.toml
    (DistributionsAD 0.6.58's ReverseDiff extension breaks against the
    @check_args change in 0.25.126); Manifest re-resolved.

GNN v3.0.0 — Long-Running Orchestration

Choose a tag to compare

@docxology docxology released this 21 Jun 01:29

GNN v3.0.0 — Long-Running Orchestration

GeneralizedNotationNotation v3.0.0 adds safe-by-design long-running orchestration on top of the GNN text language and 25-step processing pipeline. Every new module generates, validates, replays, or plans data only — no live infrastructure is ever mutated (no container is executed, no cluster or device is touched).

Highlights — three orchestration contracts (src/pipeline/)

  • Durable observation streams (durable_streams.py) — content-checksummed file/array StreamManifests and replayable ExecutionTraces, so an extended run can be observed, paused, and re-derived deterministically before any live sensor or device-backed stream is introduced. Cross-architecture-deterministic checksums, injective stream ids, and trace meaning re-bound to ground truth on verify.
  • Resumable run sessions (run_session.py) — RunSession manifests with atomic checkpoint/resume, status inspection, and path-escape-safe, idempotent cancellation cleanup, so an extended model-family acceptance run can be interrupted and resumed without corrupting partial state.
  • Auditable container plans (container_plan.py) — hardened plan generation (non-root, read-only rootfs, cap-drop ALL, digest-pinned images, resource limits), a static security_review (privileged / root / unpinned-image / plaintext-secret / sensitive-host-mount / host-namespace / dangerous-capability findings), rollback descriptors, and deterministic plan hashes — without ever touching a real cluster.

Additive live wiring (no change to the 25-step critical path)

  • session_acceptance.py — resumable, checkpoint-after-each model-family acceptance.
  • run_manifest.py — emit durable StreamManifests + a replayable ExecutionTrace from a completed run's output/ (verified on a real run: 105 manifests + a 25-event trace).
  • pipeline_container_plan.py — a security_review-clean container plan generated from the real input/config.yaml.
  • A strict, fail-closed acceptance gate: scripts/run_v3_orchestration_acceptance.py (--inject-defect exits non-zero).
  • Three new Model Context Protocol tools (tool total 137 to 140).

Release evidence

The standing release gates were re-run green for all 9 model families: semantic fidelity (run_semantic_fidelity_gate.py), cross-framework reliability (run_cross_framework_reliability.py, GridWorld compared across PyMDP, RxInfer, and ActiveInference.jl), and model-family acceptance (run_model_family_acceptance.py). The orchestration foundation ships without regressing the v2.0.0 reliability surface. The CI matrix is green (ruff format/check, four documentation audits, and mypy src), and the long-standing tool-version drift in the matrix was cleaned up as part of this release.

Documentation, manuscript & visualizations

  • README, AGENTS, DOCS, ARCHITECTURE, and the doc/ entry points brought current to v3.0.0; new reference page doc/pipeline/v3_orchestration.md.
  • The auto-injected manuscript gained a "Long-Running Orchestration Contracts" methods section and a new architecture figure; every quantitative value is a token resolved from the live repository.
  • Visualizations improved: a clean layered pipeline DAG and a new orchestration-architecture diagram.

Next

v4.0.0 — bounded autonomy and reviewed self-editing workflows, gated behind this orchestration work.

Full details: see CHANGELOG.md and TO-DO.md.

v2.0.0

Choose a tag to compare

@docxology docxology released this 12 Jun 19:24
11a89f0

Added

  • Semantic fidelity release gate: scripts/run_semantic_fidelity_gate.py writes gnn_semantic_fidelity_ledger_v1 artifacts for maintained model families.
  • Strict semantic contracts: representative fixtures now preserve model identity, variables, edges, dimensions, parameter shapes, equations, time, and ontology mappings across JSON parse/serialize/parse checks.
  • Cross-framework reliability release gate: scripts/run_cross_framework_reliability.py writes gnn_cross_framework_reliability_ledger_v1 artifacts with compatible, required, and unsupported backend statuses.
  • GridWorld three-backend comparison: GridWorld is profiled for PyMDP, RxInfer, and ActiveInference.jl, including seed, trace length, matrix-shape, and matrix-provenance parity.

Changed

  • GridWorld model-family acceptance now requests PyMDP, RxInfer, and ActiveInference.jl for the v2 comparison fixture instead of a PyMDP-only profile.
  • Roadmap next target moves to v3.0.0 for durable streams, long-running sessions, and auditable container plans.

Fixed

  • JSON serialization now emits equation objects instead of lossy stringified dataclasses, preventing silent semantic round-trip drift.
  • Cross-framework reliability no longer certifies aggregate Step 12 success without successful non-skipped execution-detail rows and current simulation payloads for required backends.

v1.9.0

Choose a tag to compare

@docxology docxology released this 12 Jun 17:20
6d830e5

[1.9.0] — 2026-06-12

Added

  • Model-family acceptance release gate: manifest-driven all-family strict acceptance for basics, discrete, continuous, hierarchical, multi-agent, precision, structured, gridworld, and scaling-study fixtures.
  • Cross-step evidence ledger: release ledger now links Step 3/5/6/11/12/15/16/23 statuses, artifact links, telemetry presence, renderer/execution status, and concrete skip reasons per family.
  • Interpretability summaries: per-family summaries now include variable/edge inventories, matrix-shape tables, telemetry presence, optional trace previews, renderer/execution status, and artifact links.

Changed

  • Continuous and hierarchical Step 11/12 outcomes are explicit profiled unsupported skips with concrete reasons, not raw render/execute failures accepted by profile math.
  • v1.7.0 is retired as a foundation-only track; unfinished runtime-depth ambitions move forward into v2+ reliability and orchestration milestones.
  • Current test evidence updated to 2,399 collected tests; final full-suite release evidence is recorded in TO-DO.md, README.md, and test documentation after the v1.9 release gate rerun.

Fixed

  • Removed the model-family acceptance reason-pattern fallback that could reclassify failed renderer/executor steps as unsupported success.
  • Hardened strict acceptance so profiled unsupported steps must be skipped before execution and failed Step 11/12 summaries fail closed.
  • Prevented cross-framework analysis from reading stale repo-tracked output/ artifacts during isolated /tmp acceptance runs.
  • Relaxed an environment performance smoke threshold to match other slow module smoke tests and avoid full-suite load false negatives.

Validation

  • PR #12 checks passed: Bandit, CodeQL, analyze (python), dependency-review, markdown-audit, security, test (3.11), test (3.12), test (3.13).
  • Local full suite: 2381 passed, 17 skipped, 1 xfailed with Ollama integration tests ignored.
  • Local collect-only: 2,399 collected tests with Ollama integration tests ignored.
  • All-family strict acceptance: passed for 9 manifest families; continuous and hierarchical Step 11/12 are explicit profiled unsupported skips with concrete reasons and no raw failed Step 11/12 counts.