Repository navigation
Releases
SEMAPRAX v0.10.1
SEMAPRAX v0.10.1 is beta software.
Install
SEMAPRAX v0.10.1 (beta).
Download the archive for your computer:
| Your computer | Download |
|---|---|
| Linux, x86_64, glibc 2.35+ (Ubuntu 22.04+) | semaprax-v0.10.1-x86_64-unknown-linux-gnu.tar.gz |
| Linux, arm64, glibc 2.35+ (Ubuntu 22.04+) | semaprax-v0.10.1-aarch64-unknown-linux-gnu.tar.gz |
| macOS, Apple Silicon (arm64), macOS 11+ | semaprax-v0.10.1-aarch64-apple-darwin.tar.gz |
| macOS, Intel (x86_64), macOS 10.12+ | semaprax-v0.10.1-x86_64-apple-darwin.tar.gz |
| Windows, x64, Windows 10 1809+ / Server 2019+ | semaprax-v0.10.1-x86_64-pc-windows-msvc.zip |
Or install with one command:
macOS and Linux:
curl -fsSL https://github.com/wavect/semaprax/releases/download/v0.10.1/install.sh | sh -s -- --version v0.10.1Always the latest stable release:
curl -fsSL https://github.com/wavect/semaprax/releases/latest/download/install.sh | shWindows PowerShell:
powershell -ExecutionPolicy Bypass -c "& ([scriptblock]::Create((irm https://github.com/wavect/semaprax/releases/download/v0.10.1/install.ps1))) -Version v0.10.1"Always the latest stable release:
powershell -ExecutionPolicy Bypass -c "irm https://github.com/wavect/semaprax/releases/latest/download/install.ps1 | iex"Full instructions, the first-project walkthrough and uninstall steps: Install SEMAPRAX.
After installation, open a new terminal and run:
semaprax new first-semaprax
semaprax check first-semaprax/semaprax.toml
semaprax test first-semaprax/semaprax.toml
semaprax run first-semaprax/semaprax.tomlThe last command prints 42. The same commands work in PowerShell.
Only the semaprax-<tag>-<target> archives are runnable programs. GitHub's "Source code" downloads are automatic repository snapshots, and SHA256SUMS, release-*.json, *.bundle and trusted_root.jsonl are verification metadata.
To verify a download, compare it with SHA256SUMS and check its attestation as described in the release process.
Full changelog for v0.10.1
Changes
-
Replace the stalled Azure Ubuntu APT mirror in hosted CI with the canonical
HTTPS mirror, bound network waits, and cap dependency-provisioning steps. -
Merge the v0.10.1 development work and prepare matching compiler, toolchain,
consumer manifests, lockfiles, and CLI version contracts. -
Repair cross-platform source-history authentication, path handling, closed
scalar purity, and host-profile controls while retaining their original
rejection tests and historical evidence. -
Refresh the generated agent skill bundle and make read-only custody checks
detect stale source-authority manifests and derived domain hashes. -
Add an explicit hash-bound current reference-qualification input to the matched webapp v2 campaign, preserving historical qualification and all 912 obligations; live execution remains pending.
-
Add a smaller paid no-growth sequencing header while preserving the first work frontier and complete predecessor controls (#858). Private source-only candidate; paid/heap gains and unfavorable cases await scoped qualification.
-
Share complete cleanup inventory validation with the ordinary schema summary receiver, avoiding discarded inventory storage while retaining the original materializer as an executable control. Source-only candidate; scoped runtime qualification remains pending.
-
Bind dependent invalid owned-record pattern recovery to the original declaration diagnostic, preserving independent body/mode/declaration errors. Source-only #859 candidate; focused qualification pending.
-
Source-only #808 moves an owned prefix into the sole HIR suffix or final
two-edge plan sibling when its existing buffer has spare capacity. Original
logical work, multiplicities and failure selection remain; complete old
receivers and the earlier inline-fusion footprint claim stay independent.
New whole-owner/capacity/removed-buffer and refusal/Drop controls are pending
execution. Full-capacity plan growth remains unchanged; no application-fit,
allocation-total or peak-memory improvement is claimed. -
Source-only #836 adds consuming
vec_update_field<Row>(rows,index,value,"field")
for exact Copy scalar slots of invariant-free flat owned-leaf records, with
independent source/HIR/graph/cache checks, ordinary sticky preflight cleanup,
interpreter/native/Wasm paths, typed ShiftSim Worker adoption and an unrelated
inventory example. Owning gates remain pending; no efficiency result is claimed. -
Source correction for #780: ordinary and retained loan candidate discovery use the paid contextual byte slot before plan selection; preserve complete strict v1 candidate controls, typed child-ledger refusal, external setup observations and unreachable-fixture diagnostics. Executable qualification remains pending.
-
Source-only nested record-pattern validation now streams exact binding paths
from its existing depth-first continuation indices, removing owned root/field/
record labels without another directory or quota. The complete old receiver
remains saved for both full main oracles; Copy/Own/Borrow diagnostic, scope,
decimal/depth and actual complete-drop controls are authored but unexecuted. -
Source-only HIR expected child labels now borrow authenticated parent text and
stream static suffixes/indices into exact identity comparison. Saved full
owned iterative and recursive oracles, frame bounds and forecasts remain;
new byte/debit/allocation/hostile parity controls are authored but unexecuted. -
Compare complete canonical loan plans during their existing independent build,
retaining an exact-program deferred mismatch for the original final validation
boundary. Public standalone validation and diagnostic priority remain intact;
owning qualification is pending. -
Add explicit named
string_takeowner transfer while preserving cloning
reads, canonical argument staging, source move checks and backend forwarding.
Owning qualification of this consolidated batch remains pending. -
Fund caller-owned canonical loan lookup storage before growth, borrow current
identity keys, and reuse inserted declaration identities and closed Vec/Box
compiler constants. Initial dynamic identity and loan-builder funding remain
separate open work; no compiler budget or forecast is increased. -
Scope diagnostic attribution to one invocation and initialize exact byte-array
literals directly in their binding slots. Preserve assignment/block-result
copies and the fixed-array loop refusal, with repeated-call reinitialization
controls. Owning qualification remains pending. -
Optimize changed HIR scope publications by cloning only changed/new bindings,
preserving exact nested state and saved full-map publication controls. -
Author public
std.patternacceptance gates for #706: four compile-once fixtures independently exhaust ASCII bytes in header/KV key and value positions, plus four 8192-byte valid/nonmatching records under the unchanged 1,000,000-step interpreter default. The same authenticated project snapshot supplies native-O0/-O2capture results, four-invocation physical settlement and repeated Core Wasm settlement with adjacent arena refusal. These gates are unexecuted; the full issue, long-input usefulness and performance claims remain pending. -
Add phase-owned borrowed function and exact expression-ID directories to byte
helper ModuleIndex queries (#738), retaining independent unseen-target proof,
original census order and pointer authority. Fixed-pass radix work avoids
allocator-address-dependent refusal; constructor-only textual ID discovery
retains the first linear winner with actual byte and merge-copy debits. Sparse-module parity, logarithmic
zero-backing queries, duplicate-ID and exact/one-short controls are authored;
execution qualification remains pending. -
Retain one callee inventory and cumulative replay work ledger across captured primitive lexical module members; reconstruct each function lease independently. Executable qualification pending.
-
Factor ShiftSim Copy-state scans and metric decisions into checked helpers, retaining the original semantic path-budget refusal and all 15 wire cases; qualification pending.
-
Precharge geometric selected-replay FIFO frontier growth in full before allocation, preserving wrapped order, sticky refusal and the ordinary route; actual-layout regression definitions await qualification.
-
Correct Catalog sorted-owner names, preserve canonical prefixed codec-plan digests, and reuse the canonical command manifest for the full 264-value UTF-8 oracle. Source-only Bytes writer imports independently authenticate their current nonallocating provider before forwarding an owner; public export profiles are unchanged.
-
Generated identifier-view JSON encoders renew one String prefix through ordinary consuming append, avoiding scope-long immutable prefix owners without changing wire bytes or limits. The codec-plan regression now authenticates unchanged dependency bytes and SHA-256 separately from canonical generated members, and checks canonical idempotence for every candidate.
-
Authored finite owned-iterator Bytes scratch capacity repla...
SEMAPRAX v0.9.0
SEMAPRAX v0.9.0 is beta software.
Install
SEMAPRAX v0.9.0 (beta).
Download the archive for your computer:
| Your computer | Download |
|---|---|
| Linux, x86_64, glibc 2.35+ (Ubuntu 22.04+) | semaprax-v0.9.0-x86_64-unknown-linux-gnu.tar.gz |
| Linux, arm64, glibc 2.35+ (Ubuntu 22.04+) | semaprax-v0.9.0-aarch64-unknown-linux-gnu.tar.gz |
| macOS, Apple Silicon (arm64), macOS 11+ | semaprax-v0.9.0-aarch64-apple-darwin.tar.gz |
| macOS, Intel (x86_64), macOS 10.12+ | semaprax-v0.9.0-x86_64-apple-darwin.tar.gz |
| Windows, x64, Windows 10 1809+ / Server 2019+ | semaprax-v0.9.0-x86_64-pc-windows-msvc.zip |
Or install with one command:
macOS and Linux:
curl -fsSL https://github.com/wavect/semaprax/releases/download/v0.9.0/install.sh | sh -s -- --version v0.9.0Always the latest stable release:
curl -fsSL https://github.com/wavect/semaprax/releases/latest/download/install.sh | shWindows PowerShell:
powershell -ExecutionPolicy Bypass -c "& ([scriptblock]::Create((irm https://github.com/wavect/semaprax/releases/download/v0.9.0/install.ps1))) -Version v0.9.0"Always the latest stable release:
powershell -ExecutionPolicy Bypass -c "irm https://github.com/wavect/semaprax/releases/latest/download/install.ps1 | iex"Full instructions, the first-project walkthrough and uninstall steps: Install SEMAPRAX.
After installation, open a new terminal and run:
semaprax new first-semaprax
semaprax check first-semaprax/semaprax.toml
semaprax test first-semaprax/semaprax.toml
semaprax run first-semaprax/semaprax.tomlThe last command prints 42. The same commands work in PowerShell.
Only the semaprax-<tag>-<target> archives are runnable programs. GitHub's "Source code" downloads are automatic repository snapshots, and SHA256SUMS, release-*.json, *.bundle and trusted_root.jsonl are verification metadata.
To verify a download, compare it with SHA256SUMS and check its attestation as described in the release process.
Full changelog for v0.9.0
Changes
- Installation: one-command per-user installers.
install.sh(macOS and
GNU/Linux) andinstall.ps1(Windows PowerShell 5.1 and 7) resolve a
release once, download only the selected archive and its verification
material, check it againstSHA256SUMSand the release manifest, verify
the publisher attestation withgh attestation verifywhen available
(reported separately from checksum-only), smoke the staged binary, then
activate atomically with a receipt, version pinning, upgrade, downgrade
and receipt-scoped uninstall (docs/INSTALLER-V1.md; #552, #553). - Releases: five native targets (
aarch64-unknown-linux-gnuand
x86_64-apple-darwinjoin the existing three). Linux archives are built in
anubuntu:22.04container and rejected aboveGLIBC_2.35, macOS
deployment targets are pinned and checked, and every archive records its
runtime requirements (#555, #560). Installers are explicit release assets
inSHA256SUMSand the manifest's new optionalinstallersinventory, and
doctor verify-releasere-hashes them. - Releases are published only after every target's exact attested archive
passes the installer journey (fresh prefix with a space, beginner
project printing 42, daemon handshake, reinstall, damaged-archive control,
uninstall) on its native host, Linux inside the glibc 2.35 baseline; the
publishedSHA256SUMSand manifest must equal the tested candidate. The
provisioned archive harness matches the current starter contract (#556). - Release pages lead with an install table and the next command; the
changelog is collapsed. ArchiveREADME.mdfiles are rendered per
platform with tag-pinned links and the first-project journey (#554). - The handbook install page is the prebuilt-first beginner guide, with
selected-archive checksums, PATH setup and a checkout-free first project;
release-reconcile.pychecks install claims against
packaging/channels.json(#551). Homebrew:brew install wavect/tap/semaprax(Apple Silicon; #557). WinGet manifests are generated
from release metadata (#558). - VS Code: SEMAPRAX: Configure Compiler and a compiler status item
select, probe and repair the compiler without editing settings JSON
(#559); hot-reload stdin failures end the session cleanly (#571) and
stdout is framed as LF-delimited bytes with strict UTF-8 (#572). - Fixed: native code keeps an earlier operand's read of a
let mutCopy
value when a later operand assigns it (#561). - Harness fixes: update-state writers are serialized so a stale check cannot
erase a revocation (#563); strict update ranges with zero-major caret
rules (#575); terminal Python adapter cancellation and a conformance suite
that enforces it (#564); bounded bridge backpressure (#565); idle protocol
violations stay quarantined (#566); strict chunked HTTP framing (#570);
qualified evidence before the cost ladder narrows the model pool (#569);
budget-fitted Graft envelopes (#573); request-scoped Graphify results (#574). - The
SPX-U101parameter hint no longer suggestslet mut value = value;,
which shadowed the parameter and failed withSPX-T209; it names a new
local. New help formutparameters (SPX-U103), a-> strresult
(SPX-O116), and methods called on scalars. - Type-mismatch help:
string_concat("n=", 5)namesstring_from_i64,
SPX-T207names both operand types (and the literal suffix when one side
is a literal), ani64passed to a narrower parameter names the suffix,
format!/println!explain there are no macros, and reusing a moved
stringorBytes(SPX-O101) names the borrow or copy route. - More one-step fixes for agents. An unknown function that a listed project
module declares gets the exactuse function @id("…") from … as …;line,
and a standard-library name gets its signature plus the exact dependency
anduselines (an exact library name now outranks a near local spelling,
sominno longer suggestsmain). New hints forto_string,assert,
if let,0..=5patterns,i++/i--, and a missing comma between match
arms; an interpreter admission refusal (SPX-F102) namesrun --native. - Cut edit-check round trips for agents writing SEMAPRAX. New
help:fixes for
c ? a : b,break/continue,ascasts,and/or,|x|closures,
use std::…,println(…);,[1, 2, 3],Circle(i64), string+(SPX-T250),
shadowing (SPX-T209), unsuffixed narrow literals and foreign type names in
let(SPX-T232),main -> bool(SPX-T104),?outside a
Resultfunction (SPX-T218), alet mutforsource (SPX-T284), an
emptyforbody, and missingpermit/uses(SPX-E101,SPX-E102, now
naming both edits). View hints no longer suggest the rejected nested
str_as_bytes(string_as_str(x)). Single-filerunfalls back tofn main
under any@idand names runtime statuses (… (division by zero)); bare
semaprax help diagnosticlists the indexed codes instead of failing. The quick reference gains a checkedliststopic for
Vec<T>, recommends onefmt && runcall with plain output, and drops a
stale row; the scaffoldedAGENTS.mdpoints agents at one language topic
instead of the whole 33 KB card. - MR-00..MR-15: model routing and runtime choice over pluggable decision
adapters.decision.evaluatev2/v3 with disclosure, score semantics and
call identity (MR-01..MR-03, MR-15); one shared decision core
(semaprax::model_routing,semaprax-decision-core, MR-07); Jev, Laya,
Mini Jev, hosted Clef/Clef-Flash and local Clef adapters plus a copyable
SDK starter (MR-04..MR-06, MR-15); harness phase role routing and session
decision reuse (MR-08, MR-12); runtime routing over approved deployment
profiles with turn re-routing, handoff and delegation (MR-09, MR-10);
choice-select/v1typed agent and tool selection with deployment-grant and
specialist-registry candidate sets, an authorize-stage recheck
(SPX-HPJ026) and two runnable examples (examples/support-routing-project,
examples/tool-choice-project, MR-11); matched routing evidence
(bench routing-matrix, MR-13: not evaluated, rules stay active); and
routing setup, explainability and end-to-end examples (MR-14):
harness status --routingprofiles with a non-billable--checkand an
announced, metered--probe,route.explainin reports, parent-model
ownership in the bridge handshake, service upstreams that adopt and trust
from the checkout, an end-to-end routing CI lane and a dated current support
matrix. No learned decision adapter is live-tested on this host. - MF-01..MF-06, MC-01..MC-06: harden Graft/Graphify cache adoption.
- Resolve the conformance fixture's Node interpreter to an absolute host path
on Unix CI, and refresh the pinned agent skill bundle after the diagnostic
inventory changed. - Align Windows standalone-lockfile dependency prefetch with the same harness
exclusion used by its test shard, so the offline lockfile gate sees every
required package. - Keep CI workflow contract checks aligned with the Windows harness exclusion,
and give the local TLS provider enough time to acc...
SEMAPRAX v0.8.0
SEMAPRAX v0.8.0 is beta software.
Changes
-
Re-pin all three generated Rust ownership caller digests to the 0.8.0
package identity after the physical moves, allocating, and nested-moves
controls passed on the current source. Release manifests and GitHub
publication now mark beta builds as regular releases. -
Re-pin the private Wasmtime Component runner's four independent known-answer
sets to the 0.8.0 package identity. The owning contract test now reports
all mismatches together; unchanged source descriptor digests stay pinned. -
LAW-16: retain pinned Bend U32 universal insertion-sort verdict/kernel
evidence and pinned SEMAPRAX LAW15 Lean sortedness/permutation/multiplicity
evidence over the U32 subset. A versioned guarded-i64 profile records their
matched semantic laws, separate source identities and trust boundaries;
bounded balance controls and source-Z3 obligations remain separate. Agent
token events are authenticated across ten Boolean pairs, while monetary
cost events and cache-isolated cold measurements remain unavailable. The
original checked-u32 cells and LAW-16 closure remain open. -
RI-13: retain clean locked offline macOS arm64 and Linux x86_64 guest
M1/M2/M3 application receipts. Each has 22 passed, 0 failed, 0 skipped
stages/measurements and 44 verified raw streams. The linked consumer,
copy/friction ledgers, and adverse-throughput investigations are published.
Exact target checks refuse unsupported M1/M3 Wasm routes while the separate
M2 scalar Project builds; generated Rust Serde/iterator adapters are not
claimed on Wasm. Linux performance remains guest evidence. -
Repaired current-main CI regressions in command help, task-service semantic
fixture setup, source-local manifest refusals, standalone generated-package
lockfile classification, SMT proof guards, review digests, and Windows durable
writer contention. The network handle-capacity test now splits its source
across bounded helper calls while still exercising the ninth-handle refusal. -
Pinned native tool setup to the real Linux Clang image, scoped the checked-in
macOS arm64 Regex/URL registry envelopes to their host, and checked both
carrier-specific generated context names. Linux service packaging acceptance
now builds and supplies a static service executable. -
Fixed the patch-receipt evidence pagination regression to exercise a
renameable declaration in the app module; the fixture now preserves its
cross-file identity check without attempting to renamemain. Both renamed
functions now carry contracts so the contract-delta page checks their IDs. -
Made the paired affine callback's flipped-source control change the paired
return expression, so its physical consumer detects the substitution. -
Recorded the durable job writer's harness-aware child selector in the
self-invocation inventory. -
Added the explicitly bounded SMT solver process module to the audited unsafe
quarantine inventory, including its production and test-only Unix calls. -
RI-08: admit one synchronous parameter-rooted borrowed-text source capture.
Source/HIR scope validation rejects aliases and escape; interpreter, native C
and Core Wasm preserve the borrowed descriptor. The generated Rust scope
executes the actual source closure under an RI-06 URL owner-view guard, with
real iterator, pointer/copy controls, contract and lifetime regression gates. -
HR-07: complete the macOS arm64 cross-layer hot reload evidence at
9a9db7a81. Twenty-two exact selectors and a real installed VS Code
Extension Host gate pass; 11 raw samples distinguish save-to-ack, full
restart, and authenticated warm restart. The observed interpreter reload is
slower than full restart on this fixture. Other platforms, native/Wasm state
swap, and production rollout remain unclaimed. -
RI-08: admit the narrow noncopyable
FnMutI64(i64) -> i64receiver with the
specified direct transition literal. Source/HIR ownership and alias refusals,
success-only state commit, interpreter/native/Core Wasm parity, generated Rust
FnMut consumers and failure/drop controls cover the transactional profile. -
RI-08: stage the transactional scalar mutable carrier across HIR, interpreter,
native C, Wasm and the generated Rust owner. State commits only on checked
success; internal guard/copy tests and Rust borrow/thread-bound negatives
cover the carrier seams. Source and retained-HIR admission stay closed. -
RI-08: reserve distinct
FnMutI64(i64) -> i64andmut fnsyntax with
canonical source preservation, private AST/HIR codec tags, exhaustive leaf
classifications and independent source/HIR refusal. The mutable runtime
remains unadmitted; this foundation does not claim stateful execution. -
RI-08: permit a direct mutable
i64binding as the scalar half of the
private retainedFnOnceI64() -> i64profile. Construction copies the value
into the existing environment, so later source mutation cannot alias the
callback; interpreter, C, Core Wasm and generated Rust regressions cover the
snapshot boundary. -
Add an RI-13 combined application measurement gate. It runs the existing
locked M1 Regex/Url, M2 Serde record/iterator callback, and M3 local HTTP
generated consumers in one ordered receipt; it separately records each
Cargo build-and-run stage, M3 route timing and M3 allocator requests. The
receipt explicitly preserves the separate source-profile boundary and does
not claim copied bytes, a nontrivial batch result, Linux evidence, or one
linked M1/M2/M3 Project. -
Add the LAW-16 Bend 2 benchmark harness. It pins Bend's reviewed revision,
keeps ordinary and--verdictexecution separate, requires separately
declared SEMAPRAX SMT/Lean/runtime paths, and retains raw cold/warm timing
and seeded law-gaming controls under exact local source/environment inputs.
No Bend fixture or result is claimed: missing, drifted, timed-out, or
semantically mismatched cells remain unavailable or failed. -
Bind six checked-
u32semantic fixture corpora into LAW-16 benchmark
results, including distinct acceptance and law-gaming inputs. SEMAPRAX's
admitted scalar profile lacksu32, so ani32substitute is explicitly
unavailable rather than represented as an equal implementation. -
RI-08: add a distinct private
FnOnceI64() -> i64source profile for retained
owned Bytes plus immutable i64 captures, with graph v63, versioned cleanup
identities, and aligned interpreter, C, Core Wasm and generated Rust carriers. -
Add a bounded RI-08 same-thread foreign-registration lease to the generated
affine FnOnce() -> i64 Rust projection. A physical Rust consumer retains
the source-created environment inside a stateful safe registry, dispatches it
once, and proves unregister drops an uncalled owner before later dispatch
reaches callback state. The generated lease remains !Send and reports a
closed registration rather than entering C after teardown. Mutable, borrowed
and mixed source capture modes remain open. -
Save an RI-13 M1 mixed Regex/Url application. One held, canonical Project
source authenticates four selected imports and two exports, then generates
separate source-bound SDK carriers with distinct C owner symbols. Exact
admission and stale-lock/source controls pass 1/1; locked offline prepare
and a single-process Rust/C consumer pass locally on macOS arm64. The
general Project SDK CLI, fresh-checkout/Linux run, and wider RI-13 acceptance
remain open. -
Repair main CI's current constructor and discovery contracts, frozen help
snapshot, source-locked coverage, standalone lockfile checks, and selected
project fixtures. Keep native Rust interop replay on its wire ABI, scope
real registry evidence to its recorded target, and make the local benchmark
daemon's integrity fault deterministic. Format the new Rust and collection
sources, export the project hot-reload lifecycle, and preserve fail-closed
repair receipt recovery after malformed candidate observations. Restore the
Windows checkpoint API, documentation catalog and editor activation snapshot,
and split over-budget source modules while retaining source-locked coverage.
Cover the checkpoint-waiting branch in the source-agent handoff test fixture.
Keep the native Regex/Url lint allowance valid under non-Clippy builds with
warnings denied. Canonicalize Rust formatting after the merged v0.8.0 work.
Repair the durable-job recovery fixture's byte request and the list-proof
fixture's borrowed evidence slices. Keep the source-local Future Project
fixtures free of Clippy warnings without changing their runtime checks.
Scope physical Url test helpers to their supported target and document the
independent fixture inputs used by the guarded foreign-law repair test.
Align verifier-hint and CLI help fixtures with admitted lists and the public
devcommand. Mark the list sort proof's type spelling as code so rustdoc
accepts the module documentation with warnings denied. Catalog the RI-13
indexed Rust Future profile and state its intended audience. -
Repair the current main CI fixtures for owned-byte Wasm imports, constructor
schema counts, the pinned iOS action, and authenticated Everyday Agent
examples. Regenerate the Agent skill bundle, refresh exact workspace
artifact digests, and keep Rust modules within their size budgets. Correct
owned-wait test fixtures and platform-specific host/compiler assertions. -
Keep explorer response branch schemas under the root document identity so
generated clients can normalize them, and trim generated Rust source
indentation to keep the selected client within its byte limit. Complete
documentation metadata and catalog navigation, align VS Code syntax and
activation checks with the manifest, fix a Unix-only proof import on
Windows, quote container types in native interop Rustdoc, and supply the
owned-byte interval imports in the iterato...
SEMAPRAX v0.7.0
SEMAPRAX v0.7.0 is alpha research software.
Changes
This alpha candidate gathers development work since v0.5.0: checked session
endpoints, private owned-Agent continuation and cleanup, local package and
resolver work, and host/tooling repairs. The completion matrix remains the
authority for executable support; local or private evidence does not become
public support through a release tag.
-
Preserve the selected host failure and physical authority-loss retirement
when cancellation and lease corruption coincide during continued
owned-effect dispatch. Keep the
refused authorization proposal fixture in canonical wire order, and check
failed cleanup against its own reserved capacity edge. -
Repair main CI regressions in the example index, Rust formatting and module
budget, Unix-only owned-wait test selection on Windows, the desktop linker
pin, generated-package Cargo coverage, generic Wasm entry-wrapper count,
and sanitizer omission-control cleanup. Keep the browser fixture's exact
revision mismatch visible for the next hosted run. Follow up on hosted Clippy
diagnostics for owned-wait context matching and private phase visibility.
Restore the owned-wait outcome visibility required by parent modules and
accept the three exact linker builds observed on hosted Windows runners.
Keep platform-independent owned-wait tests active on Windows while limiting
tests that require the Unix physical lease fixture to Unix; resolve the
hosted Clippy diagnostics in workspace and catalog acceptance tests.
Retain cross-platform settlement test helpers, refresh the browser
baseline's exact graph digest, and admit the shared workspace fixture in
the offline package test harness.
Resolve native-host rustdoc links on Windows and remove redundant explicit
targets from the reference-service documentation.
Keep the generated TypeScript fixture aligned with its ABI-version field,
and send large native parity inputs through bounded stdin framing so the
full 64 KiB cases run without exceeding process argument limits.
Select the native ASan/UBSan hostile corpus only on its documented local
macOS arm64 target; the hosted sanitizer lanes keep their separate gates.
Refresh the browser rename fixture's exact graph digest after hosted
generation exposed its current known answer.
Index the Kernel-0 accepted-revision validation document and highlight the
session-protocolendpointkeyword in the VS Code grammar.
Give the Source Agent owned-wait contract a separate audience field and
catalog entry so the documentation gate covers it.
Use a checked length conversion for the native parity probe's bounded
stdin frame on 64-bit hosts. -
Refresh workspace artifact known answers for the current deterministic
projections. Correct the bounded complete Semantic Impact JSON so embedded
workspace review evidence matches the direct single-file report exactly. -
Repair Windows unit CI fixtures: gate native stage parity tests on the
supported process hosts, use the current snapshot and JSON-event host
adapters, retain the source entry in the checked-cache reuse test, and
refresh the pinned agent skill bundle for the current diagnostic catalog.
Resolve the compact CLI's plain-project test fixture from either package
manifest so the root and full-toolchain binaries test the same project. -
Add a closed acceptance-record format for #328's Kernel-0 rung-2 decision.
It requires every local receipt to bind to one selected revision or an exact
unchanged subject, keeps all rows pending, and separates an eventual reviewer
decision from historical local counts and hosted evidence. No gate was run,
and rung 1 remains the only accepted rung. -
Connect actual continued owned-Agent Decision cleanup to the existing v8
fixed append and physical release path (#330). Preserve the same State,
reservation hold and accounting across Started/Settled, cancellation and
observed release failure. Continued Outcome/Reduce, public execution and
restart recovery remain unfinished. Compilation passed; bounded test runs
were interrupted without completed results, so this increment is unverified. -
Add partial signed-image checks to the standalone Windows doctor spawn using
held NTFS file/path guards and a retained advisory read oplock (#333).
Preserve the ten historical native cases and add six substitution/settlement
cases. Writable-section mutation can still race; exact binding acceptance,
native Windows execution and request/bundle transport remain open. No
production or release-trust support is promoted. -
Retain catalog-normalizer's 100,000,000-step maximal-response requirement
(#324) in the complete application selector. Its one-call scalar phase
encoder omits redundant per-byte token-length arguments and selects the
plain or enriched terminal phases without a second per-byte function call.
Record the 160,000,000-step library ceiling only as the current execution
capacity and retain the separate 2,000,000-step source-suite bound. The
frozen oracle, corpus, response capacity, mutation controls and backend
lanes are unchanged. -
Add the explicit
endpoint Bytessession profile, connecting checked protocol
order to a unique source carrier through local moves and terminal consumption.
Refuse stale aliases, use after close, replacement carriers and escapes before
backend emission; preserve the existing declaration-only profile. -
Pass all eight source/HIR/graph/cache and interpreter/native O0/O2/generated
Wasm endpoint success and terminal-failure settlement tests locally at
c714e7c6con 2026-09-30. Endpoint/compiler/backend paths remain unchanged
throughe9019e9e1; that later comparison is source equivalence, not a new
execution receipt. Session Protocol Types v1
records the command, scope, and separately pending legacy preservation and
broader integration evidence. -
Add an opt-in local Ollama specialization runner for #326 around the frozen
control schedule and scorer, with public-only prompt projection, exact model
pins, explicit independent-review gates and immutable outcome receipts.
Keep the unresolved discount cells unavailable; synthetic tests and offline
receipt checks are not actual model execution or experiment acceptance. -
Add #326 read-only specialization cell accounting using the existing v1
protocol. Retain the original 81-cell inputs byte-for-byte fromebe4235e,
distinguish today's nine added cells and oracle drift, and report every
missing authority, unexecuted outcome and unrecorded independent review.
No provider or training work is dispatched; the experiment remains blocked. -
Resolve comparison-adapter scope #322 through explicit exclusions: retain
only the already-admitted official TypeScript v3 lane, without promoting
local fixtures. Add a read-only, source/correction-bound support inventory
and offline regression gate preserving all 182 task/adapter rows. Correct
stale status prose while retaining the original 54/54 execution subject.
No executor, scorer, frozen source, wire profile or resource bound changes. -
Reconcile generated-package support decision #325 with ADR 0003: retain
ordinary owned-data Rust-only maintenance, the fixed unpublished preview
identity and five-target boundary, and real SemVer before any future publish.
Distinguish genuine Rust/npm consumer and exact local MSRV evidence from npm
maintenance, public promotion, publisher identity and release provenance.
npm remains deferred to its own ADR; no publication or machinery change. -
Add private continued Transfer and Authorize transport into actual Granted or
Refused Staged outcomes, retaining the same token, ledger and measured source
consumption. Owning runtime gates and full public execution remain pending. -
Add private continued model SDK settlement and Resume transport through actual
durable ACKs, retaining authenticated accounting and the same spent token.
Owning runtime gates, next authorization and full public execution remain pending. -
Add private fresh-cell acquisition certificates and native host custody,
rollback and retirement on the existing owner registry. Owning runtime gates
are pending; source endpoints and interpreter/Wasm admission remain unfinished. -
Add private continued Start and Prepared ACK transport around the actual
retained owner and existing evaluator, preserving its ledger and hold.
Owning runtime verification and the next real SDK exchange remain pending. -
Add private actual failed-Observe State cleanup ownership, per-action release
capture and fixed durable ACK transport. Owning runtime verification and
public lifecycle acceptance remain pending. -
Add private actual Decision-observer State cleanup through a monotonic seal
and fixed ACKs, plus retained continuation preparation foundations.
Integrated runtime verification and public lifecycle acceptance are pending. -
Add private initial and continued Observe settlement producers with actual
State provenance, evaluator consumption and fixed durable ACKs. Owning
integration verification and cumulative lifecycle execution remain pending. -
Add private actual Continue State/Observe ACK carry and irreversible observer
cleanup-seal foundations; retain static Reduce capacity templates per exact
Context. Cumulative physical execution and integration gates remain pending. -
Retain immutable checked Reduce proof per invocation and add private actual
failed-target State disposal through fixed durable ACKs with unchanged
accounting. Focused integration verification remains required. -
Add private owned-wait v8 authenticated effect history, retained-container
append checks and physical effect/reducer ownership foundations. Fresh
initialization uses exact typed Task and acknowledged stage reservations;
historical data ...
SEMAPRAX v0.6.0
SEMAPRAX v0.6.0 is alpha research software.
Changes
-
Keep the frozen private Component v7 WIT identity at
0.5.0while the crate
advances to0.6.0, and repin the version-bound public-generic Component
known answers against independently emitted success and contract-failure
fixtures. The four exact Component CI contract tests pass locally; hosted
release evidence remains pending. -
Pin the Wavect GmbH release verifier to GitHub's immutable owner/repository
OIDC subject and require matching subject and ID extensions in the verified
Fulcio certificate. This is local offline verification, not hosted signature
evidence until the authorized v0.6.0 tag gate publishes immutable assets. -
Observe Core Wasm record-
Bytescopy-out only after the generated Node
facade returns owned bytes from its settled JS arena, with strict transport
refusal controls. Physical Wasm free, instruction-fuel parity and hosted
target acceptance remain open. -
Project a frozen malformed-result carrier recipe through generated TypeScript
against the compiler-produced checked Wasm provider, alongside exact
descriptor/binding and once-only result-release controls. This is local
compiled-provider evidence, not the full hostile or hosted R06 matrix. -
Bridge explicit held signed root/leaf generations into the existing resolver
subject cache after fresh lock-bound artifact reads. CLI lock-bound fetch and
the bridge share the extracted held cache writer; copied subjects carry no
persistent signature/freshness authority and failures retain uncertain prefixes. -
Add explicit offline artifact reads from a held signed Registry-v3 generation,
bound to exact Lock-v3 and independently admitted manifests. Reads replay
trusted-time freshness and recheck ACTIVE before returning immutable bytes;
no reusable bearer token, ambient path read or execution authority is added. -
Add an explicit local Registry-v3 generation store coordinating signed trust,
full root/leaf Lock-v3 selection and exact core artifacts, with one-way v1
migration and exact interrupted-commit recovery. Receipts remain evidence;
no fetch/read/execution capability or hosted registry support is added. -
Add pure offline signed metadata-v2 verification for producer-backed
Registry-v3 linked roots and leaves, exact lock/artifact checks, and a one-way
Checkpoint-v2 protocol floor preserving prior version/digest high-water marks.
Candidates remain non-authoritative; managed-host/fetch integration is separate. -
Add independently verified dependency-free Build-v1 leaf manifests and an
additive producer-backed Registry-v3. A real linked root/leaf catalog now
reproduces Lock-v3 bytes and checks exact source/report/dependency closure;
focused tamper, yank, missing-leaf and API-claim controls pass locally.
Existing profiles remain unchanged; trusted v3 distribution is separate. -
Add a separate private authenticated-native-allocating.v1 handoff for a
closed checked Bytes body/callee subset. An explicit-context reservation,
canonical lease settlement and all-leaf result preflight preserve sticky
failure through generated C11/C++17 callers. Focused controls cover real
allocating callees, reservation/body/postcondition refusals, oversized
results and missing-drop/dispatch controls; the actual legacy runtime
emitter retains its frozen bytes. General-body, cross-backend, hosted and
public acceptance remain open. -
Add a separate private authenticated-native-moves.v1 handoff that executes
checked flat-Bytesrecord movement bodies through generated C11/C++17
callers. Focused physical controls cover both branches, malformed/legacy
refusals, identity-body omission, and postcondition-failure settlement;
allocating/status-producing bodies and public acceptance remain open. -
Add an explicit local registry trust host with held owner-private storage,
independently pinned bootstrap, immutable signed-evidence/checkpoint and
selected-artifact generations, one durableACTIVEpivot, and exact
fail-stop recovery. Focused local crash-point and hostile-state tests pass;
this adds no fetch/network authority or physical power-loss claim. -
Correct catalog-normalizer JSON control escapes at
\\u0010–\\u001f
and exercise ten oracle-frozen controls across interpreter, native C and
Core Wasm. The maximal 65,536-byte response still exhausts the unchanged
100M-step fuel bound, so the catalog acceptance milestone remains open. -
Add a TUF-style local registry verifier with independently installed roots,
namespace-delegated Ed25519 thresholds, dual-threshold root rotation, exact
registry/manifest bindings, freshness, rollback and yank checks. Results are
non-authoritative checkpoint candidates; the managed durable host above is
separate, and trusted distribution remains open. -
Compact catalog-normalizer scalar projection helpers and avoid a repeated
label walk when summing accepted record quantities. The 18-case focused
interpreter/native C O0/O2/Core Wasm oracle selector passes, but the exact
65,536-byte/256-record plain response still exhausts 100M fuel; enriched
maximal output and the full owning gate remain unverified (#286 open). -
Add a dispatch-only Windows confinement runtime gate that requires nonzero
execution of restricted-token child launch, job limit/membership, scratch
DACL, descendant refusal and test-owned descendant timeout, normal/nonzero
settlement, timeout cancellation, and filesystem-stage refusal with
handle-count cleanup. The gate uses
test-key-signed capsule fixture bytes (not a release trust anchor), requires
successfultaskkill /Tand direct Cargo PID absence on
timeout, and checks exact marker/scratch cleanup. Descendant quiescence is
not independently enumerated. The original two-test slice passed on exact
checkoutc6bf9902; the historical five-test selector passed in hosted
Windows run35988348061at3d4220b6. Current source uses the shared
signed-capsule verifier and capsule-v1 architecture codes 3/4 for Windows,
with a historical nine-test selector (six runtime cases plus three admission refusals).
That selector passed on exact checkoutc608b8d8in hosted Windows Server
2025 run35992373373(9 passed, 0 failed, 0 ignored). Artifact-byte binding and production
support remain unverified. A tenth selected Windows case now exercises a
real inheritable broad ACE on a private parent and requires the created
scratch DACL to stay protected with only its intended explicit ACE; the
expanded selector passed atf4d3291fin hosted Windows Server 2025 run
35993882814(10 passed, 0 failed, 0 ignored). -
Harden additive lock-bound offline fetch with held-directory authority,
bounded retained inputs, private staging and no-replace cache publication.
Failures retain stages or a published prefix for explicit reconciliation,
without pathname rollback or a misleading success receipt; unsupported
hosts refuse before cache effects. -
Re-pin exact Semantic Workspace Change and Operations artifact/evidence/receipt
KATs to the expanded Project graph and serialized limits while retaining
domain, reference, API/CLI parity, tamper, replay, budget, and stale/no-write
assertions. -
Keep the standalone compiler archive independent of unpublished crates by
moving the private OCI emitter and all hostile tests into one internal
compiler module. Preserve the typed input boundary, exact artifact bytes,
credential refusal, and unchanged no-signing/no-registry-publication scope. -
Keep the private public-generic Component runtime inside its ambient-authority
source contract: acquire a checked-in canonical project explicitly, replay
against pinned identities, and authenticate exact Component bytes before
typed execution. This does not widen public Component support. -
Generate canonical descriptor-bound TypeScript/Wasm carrier frames and run
the generated package against the compiler-owned provider lifecycle. Add the
privatesemaprax.authenticated-native-identity.v1C profile, which rejects
malformed or drifted frame metadata before physical work and invokes one
compiler-checked flat owned-Bytesidentity endpoint across C, C++, and Rust.
These are local, unpublished profiles; broader shapes, shared-corpus and
hosted acceptance remain open. -
Settle borrowed arguments and returned
Bytesat the native Agent stage
boundary, retaining sticky failure and strict post-drop receipts. Local
controls cover success, contract failure, cancellation, omitted drops,
malformed receipts, and duplicate calls; native instruction fuel, complete
finalizer accounting, compound cleanup failures, and Wasm parity remain open. -
Emit the internal
public-generic-wasm-provider.v1endpoint as a
deterministic zero-import Core Wasm module with exact descriptor/binding
replay, normalized artifact binding, canonical carrier SHA-256 validation,
module-owned scratch and opaque lifecycle handles, checked HIR invocation,
two-pass result export, and explicit release/close operations. The generated
TypeScript runtime now delegates provider lifecycle to those exports. The
subsequent canonical carrier migration makes that package interoperable;
#229 and the broader #162 matrix remain open for their larger acceptance
scope. -
Add the internal
public-generic-wasm-provider.v1Project profile as the
first compiler-owned target foundation for #229. Package Manifest v1 now
selects exactly one concrete checked generic owned-record endpoint, derives
its Public Generic Descriptor v1, independently replays it against the exact
linked program and project revision, and binds the verified digest into
Project Lock v1. Web, npm, native, and Agent Transport artifact routes remain
fail-closed until the Core Wasm provider emitter exists. The #162 native
generated-caller settlement gate now shares this compiler-d...
SEMAPRAX v0.5.0
SEMAPRAX v0.5.0 is pre-alpha research software.
Changes
-
Bind effect-free retained source job handlers to persisted deployment
descriptors before claim, using the existing durable job runtime and
checked interpreter; refuse stale roots and handler substitutions (#192). -
Complete the ten-row feature-composition inventory, exact ownership-profile
refusal regression, and provisioned strict differential campaign route
with explicit CI selections and nonzero-case enforcement (#103). -
Add exact SDK-envelope byte reservations to durable retries with frozen V2
journal preservation, canonical V3 recovery, and post-poll cancellation
checks (#179). Tighten provider conformance around request admission,
completion, final bytes, and usage regressions with corpus V2 (#181). -
Add a checked two-call offline repair loop and private CLI demo with
bounded candidate edits, diagnostic feedback, read-only review evidence,
and terminal journal replay (#116). Extend imported owned cursor failure
composition with exact Wasm cleanup-order and sticky-status controls (#103). -
Account compact workspace validation clones before allocation and schedule
the final uncached graph phase by temporary HIR overhead without raising
its cap (#124). Add decoded ID bounds and allocation-free token equality
to the catalog helper application with cross-backend oracle checks. -
Add generic durable retry/failover with acknowledged attempt journals,
exact retained execution/schema/model bindings, non-widening source and
deployment limits, request-seed checks, and conservative recovery (#179).
This is local host composition; checkpoints do not prove provider identity
or billing. -
Add V6 durable source-model quote accounting with nonrefundable observed and
unknown usage, absolute deadlines, cumulative migration carry, and optional
request/response byte ceilings (#113). Retain observed quote overages in
ordinary source-model admission as well. -
Retain exact generic model request/response reservations in the additive
priced I/O envelope, cross-bind successor carry, and reject noncanonical
recovery requests (#113). Add store-backed typed source-model execution with
acknowledged intents, exact raw settlements, and no uncertain redispatch
(#177). Release full sequential workspace HIR after compact validation facts
and selected output carriers are extracted (#124). -
Pair generic live work reservations with durable monetary accounting (#113),
and enforce opt-in source-model ceilings before adapter construction (#177,
#179). Add a final uncached graph retry that charges retained output vectors
while preserving earlier successful budget receipts (#124). -
Bind typed live model operations to deployment selection and commit their
redacted attempt evidence in an additive execution root (#177). Propagate
remaining host deadlines and distinguish reserved, observed and unknown
provider charges in a separate Runtime v1 receipt (#113). -
Add counterbalanced pilot scheduling, isolated MCP tools for both comparison
lanes, retained candidate source bytes and exact transport archives (#105).
Trial capture remains separate from eligible observations and review. -
Preserve pre-dispatch OpenCode cancellation as a zero-call cancellation
failure (#113). A changed journal or claimed dispatch without a receipt
remains a model failure; unresolved attempts cannot become clean refusals. -
Add direct owned String variant payloads (#216), with canonical String
lifecycle replay, own/borrow matching and backend cleanup. Scalar-match guard
and arm temporaries settle through exact cleanup regions. Generic String
substitutions and nested owned-record variant payloads remain restricted. -
Add explicit Rust-host Argon2id password hashing, authenticated sessions and
signup/login/logout composition (#191). Persist job cancellation and recurring
schedule advancement with checked arithmetic and replay evidence (#192). -
Add checked-source HTTPS POST across explicit provider, native C11 and
Core-Wasm/npm fixture paths (#193), with bounded body/response bytes, explicit
destination authorization and no automatic retry or redirect for POST. -
Add an explicit native HTTPS transport for provider adapters (#181), with
injected credentials, bounded buffered responses and conservative dispatch
uncertainty. Extend compact task context with ordered seeds, revision binding
and selectable token accounting (#197). Add a host-driven single-job
checkpoint runtime and evidence-based recovery (#192). -
Drive bounded retries and ordered failover through injected provider adapters
(#179), preserving charged attempts and stopping on uncertain outcomes.
Add host-transport protocol adapters for Responses and Messages (#181).
Recheck cancellation and deadlines when streaming settlement returns.
Add an eighth cross-language task family exercising owned byte mapping and
hidden-oracle rejection in Rust, TypeScript and SEMAPRAX (#106). -
Import bounded provider invoice evidence through explicit verifiers and retain
reconciliation results (#180). Enforce source usage consistency and complete
audit-view disclosure, payload association and truthful privacy claims; add
canonical audit replay and direct receipt emission from live run evidence. -
Decode canonical model receipts with strict bounds and enrich actual generic
and source attempt journals using retained root, request and host metadata (#180).
Join explicit adapter observations and provider usage without inventing
missing measurements; preserve failure and unresolved lifecycle evidence. -
Capture ordered provider adapter attempts and replay retained chunks against
actual generic/source runtime schemas (#178/#180). Bind generic settlements
to validated journal requests and responses; compare provider token and cost
observations independently during invoice reconciliation. -
Validate streamed nested Proposal fields, variant cases, exact scalars and
text/byte bounds from compiled type tables before final decode (#178).
Expose read-only grammar states and bounded work counters; extend the
generated TypeScript/Python/Rust client harness with adversarial chunking. -
Add versioned selective-dictionary model-text projections to CLI, retained
service and compatibility negotiation (#201). Connect streaming proposals to
Direct Runtime v2 typed effects and reject mismatched compiled schema envelopes
while streaming (#178); nested semantic admission remains in the full decoder. -
Expose compact projections through CLI replay and retained service/MCP routes,
with explicit format/profile negotiation and offline model-token measurement
tooling (#201). Introduce Rust embedding API v2 for mandatory analysis/execution input caps, add
cooperative request cancellation, and verify opaque session release (#203). -
Add authoritative task-context, Project API, candidate-diff, and Agent graph
compact profiles with regeneration-bound replay (#201). Extend Rust embedding
negotiation, cancellation, and the external consumer (#203). Connect the
source Proposal grammar to incremental decoding and an explicit per-attempt
provider adapter factory with bounded iterative context (#178). -
Connect the streaming Proposal decoder to the provider adapter and generic
live-kernel seams (#178), and compose token/cost/call policy with the live
work-budget hook (#179). Extend the embedding facade with opaque in-memory
Project sessions, atomic refresh, semantic query, and candidate replay (#203). -
Add journal-derived model-call receipts (#180) for generic live runs and
authenticated source checkpoints, including exact replay and Audit Capsule
object references. Unrecorded timing and billing stay unknown. Harden enriched
receipt replay against contradictory response states and decode refusals.
Extend the Rust source embedding facade (#203) with bounded context v1/v2
queries and explicitly authorized, cancellable, fuel-bounded interpretation. -
Implement additive Project Assurance Manifest v1 (#214): a canonical,
integrity-bound envelope bound to one retained Project, workspace
revision, ProgramRoot, and complete ordered source inventory. The profile
deduplicates shared entry/public/test HIR obligations, records explicit
unselected coverage, and admits only heldforbid_reachesarchitecture laws;
the existing single-file Assurance Manifest v1 bytes remain unchanged. -
Add additive source-journal I/O v5 accounting and private CLI config/receipt
v3 (#113). Authenticated attempt rows reserve exact prompt bytes and bounded
response capacity cumulatively; recovery and compatible migration retain
reservations without profile conversion. Legacy source journal and CLI
profiles remain unchanged. Add #103's result-allocation rejection case with
ordered input release in interpreter/Wasm and status/resource parity in
native C11 O0/O2, including a wrong-order oracle control. -
Extend #113's priced adapter regressions with exact retained retry I/O,
invalid quote preflight, and deadlines reached at journal acknowledgements.
Add #103's importedstd.bytesview-composition oracle across the Project
interpreter, native C11 O0/O2, and Core Wasm, including temporary cleanup. -
Add an explicit priced source-journal v4 route and private CLI config/receipt
v2 (#113). Integer currency-bound reservations remain separate from work
quotas and provider observations; replay retains unknown exposure and refuses
quote drift. Add the private CLI's one-hop priced-to-priced migration carry,
preserving cumulative reservations, observations, overage, and global money
ordinals under a non-widening compatible quote. Legacy source profiles remain
unchanged; unsupported profile conversion is refused. -
Construct ordinary imported function stubs from signatures without cloning
discarded bodies (#124). Preserve f...
SEMAPRAX v0.4.1
SEMAPRAX v0.4.1 is pre-alpha research software.
Changes
-
Fix a temporary-path collision between two copies of the same owned-data
native test helper.owned_vec_bytes_runtime/native.rsis
#[path]-included by two modules of one test binary, so it is compiled
twice and each copy owns a separate case counter starting at zero - while
both named their scratch files from the process id and that counter alone.
Two tests in the same process therefore shared a.cpath and a binary
path, which is exactly what the hosted shard reported twice: one run could
not execute a binary a concurrentclangstill held open (ETXTBSY), the
next could not read a.cfile the other copy's cleanup had already
removed. The name now includes the module path, so the two copies cannot
collide. The generated public generic consumer gate, which also compiles
and then executes, retries a launch refused withETXTBSYrather than
adding another way for a foreign fork to redden an unrelated shard. -
Make the generated C and C++ public generic consumers build on Windows.
The hosted leg found two things a Unix-only run could not: the UCRT marks
the standardfopendeprecated in favour of its ownfopen_s, which a
-Werrorbuild turns into an error, and a compiled consumer needs the
host's executable name because Windows resolves a bareconsumerby
looking forconsumer.exe. The generated sources now opt out of that
deprecation, and the gate names the executable per host.
The C++ consumer also dropsstd::span, which it used only to carry a
pointer and a length together: a pointer and a size are the same
information, so the generated artifact no longer needs a C++20 library
header and builds under C++17. The compile check now fails on a warning
or an error in the toolchain's output rather than on any output at all,
because "compiles warning-free" is the claim; a linker note about
something else is not evidence about the generated code. -
Make generated public generic consumers independent of the checkout that
produced them. The fixed part of each consumer is an included template,
and a Windows checkout delivers.txtwith CRLF, so every placeholder
whose match included its newline silently stopped substituting: the
generated files kept their literal placeholders and lost both their type
declarations and their embedded metadata. Templates are now normalized at
generation time,.gitattributespins.txtto LF like every other
embedded text asset, and the generator itself asserts that no generated
file carries a carriage return or a surviving placeholder — so this class
fails where it happens rather than as a downstream expectation on one
platform. A generator that only worked because of a checkout setting was
not the deterministic generator the milestone claims. -
Guard the Windows checkout of the public generic ownership milestone job.
Its first hosted run failed onwindows-latestbefore any gate executed:
the checkout itself cannot write this repository's retained evidence paths
withoutcore.longpaths, which every other Windows job already sets. The
cross-platform leg was therefore reporting a checkout limit, not a
milestone result. -
Add Public Generic Candidate Delta v1, milestone gate PG-4: a
candidate-bound delta that describes the selected exports of an immutable
Project candidate's base and final revisions over the public generic
grammar, classifies the pair with the PG-3 rules, and binds the candidate
digest, both Project and workspace revisions, both graph digests and a
domain-separated facts digest. Inclusion is grammar-strict, so an entry in
the delta is exactly a candidate public generic signature: no admitted
export has one today, which makes the generic fixture all-excluded with
the closed reasonborrowed_byte_view- and the gate asserts its rendered
bytes carry no template identity, instance term, record identity, or even
the grammar's instance sigil. The substantive evidence rides on a Project
v9 record-returning export, where a realadd_record_fieldchange is
breakingwith the finding on the record that changed and ordered
arguments, substituted fields and owned leaves retained across mutation,
recovery-capsule restoration and byte-exact independent replay
(SPX-PG301-SPX-PG303).
The grammar now also exposesRejection::ALLandRejection::of, so a
consumer recovers a typed reason from the owning artifact instead of
re-spelling its message, and the compatibility report exposes its digest. -
Add Public Generic Settlement Obligations v1: for one owned admitted
instance parameter, which owned leaves a boundary is accountable for, in
which order, how each is discharged, and what is released when a transfer
fails part way - each fact bound to the compiler's own cleanup facts
rather than derived beside them. The grammar's owned-leaf paths must equal
the inventory's structural leaf order; each obligation is paired with its
liveness flag in flag order and carries that flag's checked drop
lifecycle, because an obligation whose flag does not match it has no
stated way to be discharged; and the transfer unit is the cleanup plan's
single whole live owned place, since reading leaves out of the plan would
invent a per-leaf transfer the compiler never performs. Release order is
the exact reverse of the canonical order, and every disagreement is a
refusal (SPX-PG501,SPX-PG502) rather than a sort or a repair.
This is the specification half of milestone gate PG-7, which stays open:
nothing here allocates, transfers, releases or observes a runtime, and
there is no public generic boundary to exercise on any engine. -
Wire the public generic ownership milestone corpus into CI as the
public-generic-ownership-milestonejob onubuntu-latest,
macos-latestandwindows-latest, and declare it a release blocker so
it cannot be satisfied vacuously. It runs the grammar, template-identity,
compatibility and metadata-consumer projections, the separation gate, the
frozen Project v9/v11 descriptor refusals of a selected generic result,
and the four-language consumer gate, and it resolves and prints the
consumer toolchains each host actually has - a language whose toolchain is
absent is skipped, which is a narrower run rather than a pass.
Milestone gate PG-8 stays open: the harness exists, the hosted evidence
does not, and the gate moves only when the owning document records a run
and job for an exact implementation commit. -
Add Public Generic Metadata Consumers v1: a Rust, TypeScript/Wasm, C11
and C++ consumer generated from a candidate public generic surface, plus
the length-framed canonical metadata format they read. Before a foreign
toolchain can call a public generic export, several of them have to agree
on what its types are and refuse everything else - and that is
falsifiable without a calling convention. All four consumers are compiled
warning-free and run for real against nine hostile documents, and each
must report the same closed refusal (malformed,term,mismatch) as
the others and as the Rust reference reader; the gate fails when no
toolchain was available rather than passing silently. Identifiers come
from term bytes rather than display names, nested instances are declared
before their holders so C and C++ never see an incomplete type, and
regeneration is byte-identical.
This closes the grammar half of milestone gates PG-5 and PG-6; both stay
open for their descriptor half, because no public generic descriptor,
carrier or calling convention exists. No generated consumer receives a
SEMAPRAX value, allocates one, frees one, or links against anything, and
every generated file says so in its own banner. -
Add Public Generic Compatibility v1, gate PG-3 of the public generic
ownership milestone: candidate surfaces over the type grammar, and a
closed thirteen-reason classification of one ordered pair of them. The
rules are deliberately stricter than source compatibility, because a
foreign consumer reads the whole substituted field tree and owned-leaf
shape of what it receives: adding a Copy field to a nested reachable
record is breaking even though no canonical term, parameter position or
owned-leaf path moves, and it is reported once on the record that changed
rather than on every position mentioning it. Presentation is never
compatibility - renaming records, type parameters, fields, exports and
parameters yieldsunchangedwith an identical surface digest - and a
parameter's value identity is excluded for the same reason the repository
excludes it elsewhere: a revision-scoped fact must not move a verdict.
A signature position that is not a data type gets its own closed
view:vocabulary instead of widening the grammar. Both artifacts are
canonical JSON with directional byte-exact replay
(SPX-PG201-SPX-PG204), and both record that no semantic-version,
support, publication or runtime conclusion follows from a verdict.
A candidate surface is a description, not an admission: no public generic
signature is admitted, and local evidence is the only evidence. -
Add Public Generic Type Grammar v1, gates PG-1 and PG-2 of the public
generic ownership milestone: a versioned, target-neutral term for the
types a public generic surface could name, plus the explicit template and
ordered argument identities derived from it. Identities are
length-prefixed in bytes, so an identity holding the grammar's own
punctuation still round trips and two distinct types can never render
alike; digests are computed over persistent identities, declared arity and
ordered parameter positions, so a record, parameter or field display
rename changes nothing while argument permutation, duplication or
substitution changes the instance identity and omission is an
...
SEMAPRAX v0.4.0
SEMAPRAX v0.4.0 is pre-alpha research software.
Changes
-
Added Universal Semantic Transaction v2 for one exact, authority-free
ReplaceExpressionover an authenticated revision-scoped body-expression
identity, including explicit monomorphicmain. Validation rebuilds the
complete Project Candidate, preserves exact source bytes outside the selected
span, and emits deterministic separately versioned result/evidence. The
persistent service adds ordinary and ProgramRoot-v2/v3 validation/replay,
with exact selection before parsing/history and no replay history append;
change preview ... replace-expressionreturns exact core output or the
Candidate structural diff without writes. V1 transaction and CLI bytes are
unchanged; contract/implicit/generic/synthetic/imported editing, composition,
commit, publication, and authority remain unavailable. -
Added the product/package contract for Owned Bounded Box v1 and the
alloc-tierstd.mempackage. Compiler-ownedBox<T>is limited to the eight
explicit Copy scalars withnew, synchronousget, consuminginto_inner,
one unique non-Copy owner, a 4,096-live-allocation bound, and sticky
allocation refusal. Additive prelude v4 is Box-selected while v1-v3 and
authored inlinerecord Box<T>programs remain frozen.std.memcontains
exactly three authenticated aliases, explicit 3-by-8 conformance,
scalar-only example/test results, and no public exports. Focused local
package, catalog, interpreter, native C11, Core-Wasm, cleanup-replay, and
hostile-carrier evidence passes; contract-failure cleanup, owned payloads,
allocator interfaces, public generic ABI, regions, arenas, ARC/shared ownership,
Iterator integration, hosted evidence, and production support remain open. -
Specified Owned Bounded Vec For Traversal v1: the source form
for item in values { body }accepts one simple immutableVec<T>binding
over the existing eight Copy scalars, snapshots its length once, visits
indices in ascending order, freezes the source, and discards each body
result. Resolver lowering reuses the existing len/get/while HIR, so this adds
no stable identity, schema, prelude or backend operation, standard-library
declaration, or public ABI. Focused local language and all-engine runtime
selectors pass; hosted evidence remains required before promotion. The
lowering has no origin marker, so ordinary HIR-node validation applies
instead of a traversal-specific canonical-shape rule. This is not Iterator
support: objects,next,
adapters, closures, associated types, lifetime inference, consuming
traversal, owned elements, andstd.iterremain open. -
Added bounded acyclic generic-to-generic forwarding between already-admitted
templates. A direct call must pass the callee exactly the caller-owned type-
parameter vector in declaration order; each concrete caller instance derives
the deterministic transitive callee-instance closure, bounded at 256 entries. The existing
direct-scalar and one-owner-identical-result relay profiles, Graph v14, and
CleanupPlan v2/v5/v7 remain the limits. Focused evidence covers
chained source/HIR identities in authored FIFO order,
interpreter/native C11-O0/-O2/Core-Wasm settlement, concrete
non-identity/permutation/cycle rejection, and missing/reordered/forged HIR
instance rejection.
This adds no inference, constraints, construction, projection, variants,
resources, effects, package signature, or public generic ABI. -
Added the exact flat generic owned-record expression-composition tranche.
One owning parameter returns the identical record while all eight explicit
Copy substitutions exercise Copy-field projection, top-level immutable
update,match borrowreturning a bound Copy field, andmatch own
reconstructing the same owner. Focused local evidence covers update and
reconstruction failure settlement, hostile HIR/backend mutation replay,
repeated interpreter, native C11-O0/-O2, and Core-Wasm execution, and
no added aggregatememory.copyagainst the direct-relay baseline. Generic
variants, nested expression-result composition, standalone constructors,
consuming projections, public generic ABI, and Graph/schema widening remain
closed or unclaimed. -
Added a dedicated Linux CI step for the additive nested generic-owned relay
and identity-forwarding tranche. It names the exact source/HIR boundary,
transitive-instance hostility, all-engine settlement, and scalar-only Project
dependency selectors, and removes their duplicate invocations from the
adjacent generic-owned step. New locally passing hostility regressions cover
all eight Copy scalars through a three-template nested relay, forged HIR
carrier and cleanup vectors, source vector changes and cycles, and the exact
256/+1 instance-closure bound. The named step is hosted green in CI run
34048713967, Ubuntu job 101528399406; the older run 34031917437 remains the
evidence for the pre-nested-relay corpus. -
Re-derived the offline doctor carrier ceiling from measured distributions.
DOCTOR_OFFLINE_INPUT_MAX_BYTESwas 536,870,912 bytes, and on a hosted
ubuntu-24.04runner the loader closures of Node v22.23.2 and Rust 1.88.0
alone encode to 462,424,370 of them, 86% of the ceiling, leaving 74,446,542
bytes for a whole Clang role. No official LLVM release that runs on 24.04 is
that small: clang 9.0.1 reaches a 568,339,434-byte carrier, 14.0.0 reaches
618,411,514 and 17.0.6 reaches 652,142,493, and Ubuntu's own clang-18 closure
is about 713,000,000. Sincerender_rowsadmits only Node 22 or newer and
Rust 1.88 or newer, the two non-Clang roles cannot shrink, so the two
real-distribution lifecycle fixtures could not be satisfied by any current
real distribution set. The ceiling is now 1,073,741,824 bytes: 1.65 times the
measured clang-17 three-role carrier, 1.51 times Ubuntu's clang-18 closure,
and still 6.25% of a hosted runner's 16 GB. It stays a hard bound and remains
a resource bound rather than an authority boundary, since seals, digests, the
release signature, the ELF contract and the closed inventory decide admission
and none of them depend on size. The delegated cgroup-v2 scope'smemory.max
moves with it, from 2 GiB to 4 GiB, and is now derived rather than
coincidental: an admitted carrier of N bytes costs 2N of unswappable
residency inside that scope -- the worker's whole-carrier snapshot, which the
root plan borrows and so cannot release before the tool children run, plus
the page-rounded tmpfs root written out of it -- whilememory.swap.maxis 0
andmemory.oom.groupis 1, so an overshoot kills the whole scope instead of
refusing cleanly. The signed capsule'sMAX_ARTIFACT_BYTES, the release
directory'sMAX_ARTIFACT_BYTESand the signed store'sMAX_FILE_BYTESare
held equal to the new ceiling because they bound the same bundle and request
bytes and the smallest of them is always the effective limit. The derivation
is recorded beside the constant and in Doctor Sealed Input v1. -
Fixed the offline doctor collector retaining its whole-carrier snapshot
across the blocking collect. Every fact the collector keeps is already an
owned copy by that point, and the launcher and provisioner both release
theirs before creating a child, so the omission left three whole carriers
resident in the confined scope at once instead of two. -
Fixed the provisioned Linux doctor gate failing before any lifecycle fixture
ran, withinput permissions or link count are unsafe. Cargo uplifts each
binary out ofdeps/as a hard link, so the artifact in the target root has
link count 2, andsemaprax-doctor-releaserefuses an input a second name
can still reach. The workflow now copies the four images to private
single-link files and asserts the link count; the packager's check is
unchanged. The gate also carries all three real roles again, which the
re-derived ceiling admits. -
Added
std.data.json.dec, the seventh JSON sibling package, which expands
JSON string escapes. All eight simple escapes,\uXXXX, and surrogate pairs
decode to their exact UTF-8 bytes; a lone or unpaired surrogate, an unknown
escape letter, a raw control byte, and an unterminated string are rejected at
the offset of the backslash or byte that opened them, in the family's
usizeresult encoding.decoded_len/decoded_sizesize the output,
token_end/emit_len/emit_atstream the decoded bytes with no allocation,
anddecoded_eqfills one owned bounded byte buffer of a fixed 256-byte
capacity through the loop-carried same-owner replacement and compares it to a
caller-supplied view. The conformance module runs on the interpreter, clang
C11-O0/-O2, and Core Wasm, where the standard-library closure now
supplies theenv.spx_bytes_zeroed/env.spx_bytes_sethost-arena imports and
asserts that the package's module reaches them, that the arena holds at most
one live entry, and that it is empty after each of four re-entries. Three
admission facts were measured rather than assumed and are recorded in the
specifications:owned-data-api.v1is the only project profile that admits
both a borrowed byte view and the buffer, the buffer must stay out of the
entry program because a public web build containing it isSPX-W115, and a
Bytesvalue does not cross a module boundary (SPX-G172), so a
caller-provided output buffer is not expressible. The package is committed at
17,620 B against a measured 18,480 B admitted / 18,653 B firstSPX-G171;
decoded_atanddecoded_samewere written, measured over that bound, and
cut. -
Added the bounded ScalarV1 internal flat generic-owned body path. Admission is
based on the exact reachable ResolvedProgram rather than source or dependency
provenance; callable and selected-public signatures remain value-scalar. One
exact project-local Su...
SEMAPRAX v0.3.5
SEMAPRAX v0.2 is pre-alpha research software.
These unsigned archives are not notarized and make no cross-host reproducible-build claim.
SHA-256 checksums are integrity facts, not signatures.
SEMAPRAX v0.3.0
SEMAPRAX v0.2 is pre-alpha research software.
These unsigned archives are not notarized and make no cross-host reproducible-build claim.
SHA-256 checksums are integrity facts, not signatures.