Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
fe75c38
Add private economic agent runtime
wsdt Aug 12, 2026
03f1f27
Expose economic agent runtime
wsdt Aug 12, 2026
9b7d957
Record hosted economic agent evidence
wsdt Aug 12, 2026
979d5f0
feat: add bounded native Rust interoperability
wsdt Aug 14, 2026
7843196
fix: quote Windows rustc CI setup
wsdt Aug 14, 2026
c2abe3a
fix: close hosted interop lint gaps
wsdt Aug 14, 2026
29d25a7
fix: declare private interop dependency policy
wsdt Aug 14, 2026
adce1d9
fix: satisfy hosted strict clippy
wsdt Aug 14, 2026
a2e094c
fix: remove obsolete Windows path helpers
wsdt Aug 14, 2026
4fd025a
fix: quarantine Windows handle inheritance test
wsdt Aug 14, 2026
9dd685d
fix: expose process arena to sys tests
wsdt Aug 14, 2026
2eb9d33
fix: target-gate settlement fault variants
wsdt Aug 14, 2026
251444a
fix: stabilize hosted interop accounting
wsdt Aug 14, 2026
6f0135c
fix: close hosted interop preparation gaps
wsdt Aug 14, 2026
44bbc29
fix: bind Linux Rust static link libraries
wsdt Aug 14, 2026
dcf4cf7
fix: reserve exact Windows process arena
wsdt Aug 14, 2026
0a3b9f2
fix: satisfy Windows process arena lint
wsdt Aug 14, 2026
d8c23e4
fix: preserve held Clang path as Linux argv0
wsdt Aug 14, 2026
a276464
fix: qualify Linux executable path type
wsdt Aug 14, 2026
7a0fc03
fix: bind the Linux linker under empty environment
wsdt Aug 14, 2026
1b94edd
fix: stabilize Linux interop CI links
wsdt Aug 14, 2026
68f2e70
fix: freeze Windows toolchain environment
wsdt Aug 14, 2026
944a639
fix: discover Visual Studio environment
wsdt Aug 14, 2026
d34256c
fix: qualify Windows arena test path type
wsdt Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,23 @@ jobs:
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22
- name: Resolve the real held rustc image (Unix)
if: runner.os != 'Windows'
run: echo "RUSTC=$(rustup which rustc)" >> "$GITHUB_ENV"
- name: Resolve the real held rustc image (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
"RUSTC=$(rustup which rustc)" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Resolve the authenticated Windows SDK and MSVC environment
if: runner.os == 'Windows'
shell: cmd
run: |
for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VSINSTALL=%%i"
if not defined VSINSTALL exit /b 1
call "%VSINSTALL%\Common7\Tools\VsDevCmd.bat" -no_logo -arch=x64 -host_arch=x64
echo INCLUDE=%INCLUDE%>>"%GITHUB_ENV%"
echo LIB=%LIB%>>"%GITHUB_ENV%"
- run: cargo fmt --all --check
- run: cargo clippy --locked --workspace --all-targets --all-features -- -D warnings
- run: cargo test --locked --workspace --all-targets --all-features
Expand All @@ -75,6 +92,20 @@ jobs:
run: cargo test --locked -p semaprax --lib agent_runtime::tests -- --nocapture
- name: Require public bounded Agent Runtime injected-host evidence
run: cargo test --locked -p semaprax --test agent_runtime_v1 -- --nocapture
- name: Require private Economic Agent deterministic fake-host evidence
run: cargo test --locked -p semaprax --lib economic_agent::tests -- --nocapture
- name: Require private Economic Agent durable marker process-termination evidence
run: cargo test --locked -p semaprax --lib economic_agent::tests::economic_process_kill_markers_never_repeat_sign_or_broadcast -- --exact --nocapture
- name: Require public Economic Agent injected-host evidence
run: cargo test --locked -p semaprax --test economic_agent_v1 -- --nocapture
- name: Require private Native Rust Interop language, HIR, Graph, and Wasm preservation evidence
run: |
cargo test --locked -p semaprax --test native_rust_interop_v1 -- --nocapture
cargo test --locked -p semaprax --test native_rust_interop_ci_contract -- --nocapture
- name: Require private Native Rust Interop A+B replay, static-link, runtime, and hostile evidence
run: cargo test --locked -p semaprax-native-rust-interop -- --nocapture
- name: Require private Native Rust Interop platform authority evidence
run: cargo test --locked -p semaprax-native-rust-interop-platform --all-targets -- --nocapture
- name: Require Windows callable-v2 and private callable-v3 physical evidence
if: runner.os == 'Windows'
shell: pwsh
Expand Down Expand Up @@ -117,6 +148,13 @@ jobs:
run: |
cargo test --locked -p semaprax --lib codegen::native_callable_provider_v3::tests::authoritative_fourteen_case_graph_providers_execute_and_settle_at_o0_o2 -- --exact
cargo test --locked -p semaprax --lib codegen::native_callable_provider_v3::tests::physical_failure_injection_and_durable_settlement_boundaries_are_exact_at_o0_o2 -- --exact
- name: Require private Native Rust Interop ASan + UBSan round trip (Linux)
if: runner.os == 'Linux'
env:
SEMAPRAX_REQUIRE_NATIVE_RUST_INTEROP_SANITIZERS: "1"
ASAN_OPTIONS: detect_leaks=0:halt_on_error=1:abort_on_error=1
UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1
run: cargo test --locked -p semaprax-native-rust-interop --lib implementation::tests::linked_bridge_round_trips_rust_to_semaprax_to_rust_and_closes_failures -- --exact --nocapture
- run: cargo test --locked --workspace --all-features --doc
- run: cargo doc --locked --workspace --all-features --no-deps
env:
Expand Down Expand Up @@ -315,5 +353,8 @@ jobs:
- uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # master
with:
toolchain: "1.85"
- name: Resolve the real held rustc image (Unix)
shell: bash
run: echo "RUSTC=$(rustup which rustc)" >> "$GITHUB_ENV"
- run: cargo check --locked --workspace --all-targets --all-features
- run: cargo test --locked --workspace --all-targets --all-features
4 changes: 4 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@ proof scaffolding, not a wired native-runtime claim.
- `src/agent_runtime.rs`, `src/agent_runtime/`: bounded injected-host Agent
profile, runtime-owned streaming sinks, cancellation, Trace, and Evidence;
no built-in transport, write tool, durable memory, or economic authority.
- `src/economic_agent.rs`: public injected-host test-network/native-asset Economic Agent
policy, intent, chain-plan, approval, custody, journal, reconciliation,
Trace, and Evidence core; no built-in transport, key, or
mainnet authority.
- `src/repair.rs`: bounded read-only Diagnostic Repair v1 discovery and
instantiation plus the independently replayed Patch-v3 identity-rebase gate.
- `src/review.rs`: bounded read-only Semantic Review v1 over complete Impact-v1
Expand Down
29 changes: 24 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,36 @@
# Changelog

- Private Native Rust Interoperability v1 A+B design and local implementation
are green. The additive `import rust fn` scalar profile now resolves an
explicitly configured absolute Rust launcher only to discover one bounded
sysroot, independently holds the direct compiler at that sysroot, requires a
fixed-point sysroot check, and admits Rust artifacts only from that held
direct image. Phase B uses one pre-effect 12-use process arena whose Windows
attribute storage is queried, bounded, reserved, and materialized exactly,
prepared filesystem inventories/names, one fixed-capacity no-growth store for the four
authenticated `rustc -vV` fields, allocation-free final comparison/publication,
and fail-stop process/handle settlement. Private A now has named pre-HIR and
post-HIR retained/scratch envelopes, iterative renderer/replayer traversal,
exact persistent allocation transfers, and minimum-minus-one entry gates;
prepared Phase-B target arguments admit current-host underscore components
without opening other punctuation, and the Linux link plan freezes the
target's native-static library tail. Local builder 99/99, platform-system
22/22, platform 10/10, source-contract 6/6, strict-Clippy, formatting, and
security gates are green; Windows directory authority now excludes mutable
directory length while retaining full file identity and reparse rejection.
Windows runtime, exact-head three-OS, and Linux sanitizer evidence
remain pending. Public C remains held; compiler sysroot/dynamic-library
descendant provenance, callable v2/v3, loader/host, `SPX-B104`, and existing
wires/KATs are unchanged.

- Added Bounded Native Agent Runtime v1 A+B proof and the additive C1 injected-
host Rust API:
canonical Profile/Task/Action/Trace/Evidence, deterministic routing, injected
fake-host streaming, registered read-only typed tools, capability/effect
checks, cooperative cancellation, cumulative budgets, and independent replay.
C1 exposes opaque Agent/run/sink types and no CLI, provider transport, ambient authority, language or
backend semantics, durable memory, wallet, payment, or signing surface.
The exact `cd2f6393bb84657f7ef4f0094e1136eb5a401355` A+B matrix is hosted green
in [run 31585682213](https://github.com/wavect/semaprax/actions/runs/31585682213),
with all 12 jobs passing including Ubuntu/macOS/Windows fake-host evidence.
C1 public integration is locally green 4/4 and hosted promotion remains
pending. Totals remain 38 Partial/18 Missing.
Public Agent Runtime v1 is hosted GREEN at 8cf29aff8d1be3ccf74c36bc8c837f0c666ca067 (run 31591039261, 12/12 jobs, private and public deterministic fake-host gates on Ubuntu, macOS, and Windows). Private Economic Agent v1 A+B is exact-head hosted green at fe75c38d898b71e3ed5c57411fb46d0dbd4fc34b in run 31611748969, including both Economic gates on Ubuntu, macOS, and Windows. Public Economic Agent v1 C is exact-head hosted green at 03f1f2736de23d03b298f265f93409de89a6be95 in run 31616168124 (12/12 jobs), including the private, process-termination, and public Economic gates on Ubuntu, macOS, and Windows. Totals remain 38 Partial/18 Missing.

All notable changes to SEMAPRAX are documented here.

Expand Down
26 changes: 26 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 7 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,13 @@ keywords = ["compiler", "agents", "systems-programming", "semantic-graph"]
categories = ["compilers", "development-tools"]

[workspace]
members = ["crates/semaprax-native-host", "crates/semaprax-native-loader"]
members = [
"crates/semaprax-native-host",
"crates/semaprax-native-loader",
"crates/semaprax-native-rust-interop-platform",
"crates/semaprax-native-rust-interop-platform-sys",
"crates/semaprax-native-rust-interop-builder",
]
default-members = ["."]
resolver = "2"

Expand Down
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,14 @@ does not satisfy a broader product gate.
| Agent runtime | A bounded injected-host Rust API has hosted deterministic fake-host evidence. It is not a live provider transport, CLI agent, durable-memory system, wallet, payment, signing, or ambient-authority surface. |

The bounded public Agent Runtime v1 gate is hosted green at
[`8cf29aff`](https://github.com/wavect/semaprax/commit/8cf29aff8d1be3ccf74c36bc8c837f0c666ca067)
([12/12 CI jobs](https://github.com/wavect/semaprax/actions/runs/31591039261)).
Private Economic Agent v1 A+B work is in progress; its promotion evidence is
pending and its public surface remains held. Neither changes the matrix totals.
Public Agent Runtime v1 is hosted GREEN at 8cf29aff8d1be3ccf74c36bc8c837f0c666ca067 (run 31591039261, 12/12 jobs, private and public deterministic fake-host gates on Ubuntu, macOS, and Windows).
Private Economic Agent v1 A+B is exact-head hosted green at fe75c38d898b71e3ed5c57411fb46d0dbd4fc34b in run 31611748969, including both Economic gates on Ubuntu, macOS, and Windows. Public Economic Agent v1 C is exact-head hosted green at 03f1f2736de23d03b298f265f93409de89a6be95 in run 31616168124 (12/12 jobs), including the private, process-termination, and public Economic gates on Ubuntu, macOS, and Windows.

Private Native Rust Interoperability v1 A+B is locally green under the frozen
scalar/static-link profile; public C and exact-head Ubuntu/macOS/Windows plus
Linux-sanitizer promotion remain held. See [Native Rust Interoperability
v1](docs/NATIVE-RUST-INTEROP-V1.md).
Neither changes the matrix totals.

For precise evidence, boundaries, and non-claims, use these documents:

Expand Down
17 changes: 17 additions & 0 deletions crates/semaprax-native-rust-interop-builder/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[package]
name = "semaprax-native-rust-interop"
version = "0.1.0"
edition = "2021"
rust-version = "1.85"
publish = false
description = "Private bounded Native Rust Interop builder for SEMAPRAX"
license = "Apache-2.0"

[dependencies]
semaprax = { version = "=0.2.0", path = "../..", default-features = false }
semaprax-native-rust-interop-platform = { version = "=0.1.0", path = "../semaprax-native-rust-interop-platform" }
serde_json = "=1.0.151"
sha2 = "=0.10.9"

[lints.rust]
unsafe_code = "forbid"
Loading
Loading