All notable changes to iseriser will be documented in this file.
This format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
<iser>-regen.ymlno longer reproduces the estateboj-build.ymldefects (hyperpolymath/standards#331). The emitted dispatch step now builds its JSON payload withjqinstead of hand-escaping it (the estate shape shipped a stray backslash-brace pair and failed JSON parse in every deployed copy); takes its endpoint from aBOJ_SERVER_URLsecret or variable instead of an unresolvable mDNS host; requires anhttpsscheme at run time; POSTs to the singular/cartridge/<name>/invokeroute rather than the plural LIST endpoint; and no longer carries step-level error suppression, so a dispatch that is attempted and fails now fails the job. An unsetBOJ_SERVER_URLreports and stops rather than erroring: boj-server binds loopback and has no routable name until the http-capability-gateway ships (ADR-0004 tier-2 / standards#91). Caller-controlled expression values reach the script through the environment, never by interpolation into its text. -
Scaffolded cartridges vendor the ADR-0006 invoke-shim at
ffi/cartridge_shim.zigand no longer reference../../../ffi/zig/src/cartridge_shim.zig. boj-server’s in-treecartridges/bundle has been retired — cartridges now live in thehyperpolymath/boj-server-cartridgesregistry, where all 118 of them vendor a byte-identical copy of the shim — so the old relative path resolved nowhere and the emitted cartridge could not build. -
Scaffolded
cartridge.jsondeclares the requiredcategoryproperty. Without it, cartridge schema v1 rejects the manifest and boj-server’s catalog drops the cartridge on boot.
-
generatenow emits the -iser’s boj-server cartridge — the unified transaction-gated adapter and its SSE surface, modelled on the k9iser-mcp pilot (boj-server#73) — as a sibling<output>/<iser>-mcp/tree, so every new -iser carries the pattern by construction (hyperpolymath/standards#90). The cartridge stays outside the -iser repo, preserving the topology PR #23 established.--no-cartridgeemits the repository alone. -
Tests pinning the above: the four standards#331 defects plus the wrong cartridge path are asserted absent from the emitted workflow; the emitted
jqprogram is executed and its output parsed as JSON, with a hostile ref name carried through as data; the vendored shim is asserted byte-identical to the registry copy;cartridge.jsonis checked against cartridge schema v1’s required properties and closed enums; and a scaffolded cartridge’sffi/andadapter/are built withzig build testfrom wherever they were written. Thejqandzigtests are no-ops where those tools are absent, matching the existingidris2test.
-
cartridgesubcommand — scaffolds a complete boj-server cartridge skeleton (<iser>-mcp/) from aniseriser.tomlmanifest. Emits 13 files: top-level (README + cartridge.json + mod.js + panels/manifest.json), Idris2 ABI (README +<iser>-mcp.ipkg+<Iser>Mcp/Safe<Iser>.idrwith the exposure-gate contract), Zig FFI (README +build.zig+<iser>_ffi.zigimplementing the ADR-0006 5-symbol C ABI), and the unified gated adapter (README +build.zig+<iser>_adapter.zigrouting REST/SSE/GraphQL/gRPC-compat behind the transaction gate). Modelled on the k9iser-mcp pilot (boj-server#73). Verified end-to-end:idris2 --build,zig build teston bothffi/andadapter/. Implements hyperpolymath/standards#89 Phase 2b. (PR #24)
-
Scaffolder no longer emits
adapter/<name>_adapter.ziginto new -iser repos. The unified transaction-gated adapter belongs to the boj-server cartridge for the -iser (boj-server/cartridges/<name>-mcp/adapter/), not to the -iser repo itself. Use the newcartridgesubcommand to scaffold the cartridge. (PR #23, reverts the wrong-place emission added in #12.) -
Cartridge scaffolder emits
depends = base, contribon the generated.ipkgto match the pilot convention and ensure cartridge authors haveData.List/Data.Stringhelpers available out of the box. (PR #25, corrects an inadvertent omission in #24.)
-
Initial project scaffold from rsr-template-repo
-
CLI with subcommands (init, validate, generate, build, run, info)
-
Manifest parser (
iseriser.toml) -
Codegen engine (stubs — target-language-specific implementation pending)
-
ABI module (Idris2 proof type definitions)
-
Library API for programmatic use
-
Full RSR template (17 CI workflows, governance docs, bot directives)
-
README.adoc with architecture overview and value proposition