Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
b2f2eb2
wit: carry opaque status bytes so the host stops importing intent
mfw78 Jul 16, 2026
cdda2ba
wit: rename the intent contract to the pinned videre surface
mfw78 Jul 16, 2026
2943848
wit: normalize every package to a single 0.1.0
mfw78 Jul 16, 2026
81e7a96
wit: add quote to the videre venue faces and the client typestate
mfw78 Jul 16, 2026
8c879b4
ci: add the advisory venue-agnostic check for nexum-runtime
mfw78 Jul 16, 2026
c7f8ab2
ci: fail the crate-graph check when cargo tree errors
mfw78 Jul 16, 2026
91d673e
ci: fail the scan steps when rg errors instead of finding nothing
mfw78 Jul 16, 2026
227ec9c
ci: scan crate graph with --all-features so feature-gated venue deps …
mfw78 Jul 16, 2026
26fee09
runtime: make the egress-guard checkpoint advisory-only
mfw78 Jul 16, 2026
5803be5
runtime: charge the caller's quota on a guard-deny
mfw78 Jul 16, 2026
31e0a86
runtime: tersen the submit charge docs
mfw78 Jul 16, 2026
0271e91
venue-test: version the fixture file format
mfw78 Jul 16, 2026
df3477d
venue-test: fail conformance checks on an empty fixture set
mfw78 Jul 16, 2026
d6f4a3f
style: rustfmt the venue-test version-rejection tests
mfw78 Jul 16, 2026
399f363
runtime: bound the status-watch set with a capped, expiring policy
mfw78 Jul 16, 2026
e2dc469
feat: grow the extension seam to carry worker and provider roles
mfw78 Jul 16, 2026
ca81a60
refactor: extract world synthesis into nexum-world and de-hardcode th…
mfw78 Jul 16, 2026
0ddfa13
feat: extract the supervised-actor primitive and generic provider boot
mfw78 Jul 16, 2026
e305556
feat: make the log pipeline pluggable through the components seam
mfw78 Jul 16, 2026
a3f76a6
runtime: carry the venue registry through the services map and delete…
mfw78 Jul 16, 2026
a3e6162
feat: let a runtime preset carry extensions and pre-built backends
mfw78 Jul 16, 2026
44b6d6a
runtime: fold venue adapters into the restart and poison sweeps
mfw78 Jul 17, 2026
f21855f
feat: extract a generic launcher and split the bare and cow binaries
mfw78 Jul 17, 2026
1b9074a
feat: build the videre-host crate and register the venue platform thr…
mfw78 Jul 17, 2026
d0ec1e9
feat: refuse mismatched body-schema versions at install
mfw78 Jul 17, 2026
df0bad8
ci: align the zero-leak check to the charter symbol set
mfw78 Jul 17, 2026
16a6724
ci: flip the zero-leak gate to blocking with the echo-venue boot oracle
mfw78 Jul 17, 2026
446ee89
sdk: make the IntentBody derive no_std
mfw78 Jul 17, 2026
eb84355
sdk: emit the bind-macro fault and level conversions as From impls
mfw78 Jul 17, 2026
72923c6
sdk: put an alloy provider seam over the chain host
mfw78 Jul 17, 2026
b6208a7
sdk: rename to videre-sdk and add the keeper sweep assembler and type…
mfw78 Jul 17, 2026
35b173e
sdk: add guest seams and mocks for identity, messaging and remote-store
mfw78 Jul 17, 2026
632b7b9
sdk: split the macro crate into nexum-module-macros and videre-macros
mfw78 Jul 17, 2026
525a1f5
local-store: add contains, len and count metadata queries
mfw78 Jul 17, 2026
ca21ba6
sdk: make the venue macro the single blessed authoring path
mfw78 Jul 17, 2026
a3e1a0b
sdk: rename the conformance kit to videre-test and align mock-grant f…
mfw78 Jul 17, 2026
67f6187
sdk: add the keeper macro and the typed venue client
mfw78 Jul 17, 2026
b4bd0e5
sdk: land the alloy-grade DX polish cluster
mfw78 Jul 17, 2026
72b7b37
cow: cleave the cow venue from the composable-cow keeper
mfw78 Jul 17, 2026
6b739d7
wit: own the cow event ABIs at the bundle layer
mfw78 Jul 17, 2026
ef62240
cow: ratify the retry classification table against the upstream error…
mfw78 Jul 17, 2026
09ad5b8
docs: call out the grant-M2 contract-mods divergence in milestone rep…
mfw78 Jul 17, 2026
497ccd9
cow: settle the idempotency seam on the venue-and-body intent-id
mfw78 Jul 17, 2026
39f178a
cow: build the cow venue adapter component with timeout transport mid…
mfw78 Jul 17, 2026
fbe2eca
cow: flip the keeper run onto the typed venue client
mfw78 Jul 17, 2026
d58eed3
twap: re-point the monitor onto pool submit through the cow adapter
mfw78 Jul 17, 2026
fdbe663
cow: match the adapter manifest chain to each engine config's run
mfw78 Jul 17, 2026
e46ae5c
modules: re-point ethflow-watcher onto the pool observe path
mfw78 Jul 17, 2026
b447e35
cow: retire the legacy cow-api host cone
mfw78 Jul 17, 2026
b2c6c4d
twap: index the v2 ConditionalOrderRemoved event and drop the watch
mfw78 Jul 18, 2026
428527b
twap: grant one next-block retry before dropping on InvalidEip1271Sig…
mfw78 Jul 18, 2026
d57e9b5
docs: rewrite the platform docs as the shipped-venue source of truth
mfw78 Jul 18, 2026
ada55d3
ci: fail open when the R2 sccache secrets are absent
mfw78 Jul 18, 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
51 changes: 45 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,19 @@ env:
# Dockerfile build, and the local host sccache — one silo, zero egress cost.
# Set at the workflow env level (not the composite) because composite actions
# cannot read the `secrets` context. Keys are content-addressed on the full
# compiler input, and the sole build.rs (cow-venue) + nexum-macros are
# compiler input, and the sole build.rs (cow-venue) + the macro crates are
# deterministic, so PR builds writing to the shared bucket write correct objects
# under correct keys (no poisoning); bound storage with an R2 lifecycle-expiry
# rule on the bucket (sccache does not evict cloud backends itself).
RUSTC_WRAPPER: sccache
# Secrets do not flow to fork pull_request runs: R2_ACCOUNT_ID interpolates
# empty and the R2 backend would fail sccache server startup before anything
# compiles. Fail open on forks: an empty RUSTC_WRAPPER disables the wrapper
# (cargo treats empty as unset) and an empty SCCACHE_BUCKET drops sccache to
# its local-disk default, so the action's post-run stats step still starts a
# server. Fork PRs build uncached but green.
RUSTC_WRAPPER: ${{ secrets.R2_ACCOUNT_ID != '' && 'sccache' || '' }}
CARGO_INCREMENTAL: "0"
SCCACHE_BUCKET: shepherd-sccache
SCCACHE_BUCKET: ${{ secrets.R2_ACCOUNT_ID != '' && 'shepherd-sccache' || '' }}
SCCACHE_ENDPOINT: https://${{ secrets.R2_ACCOUNT_ID }}.r2.cloudflarestorage.com
SCCACHE_REGION: auto
SCCACHE_S3_KEY_PREFIX: ci/rust-1.94
Expand Down Expand Up @@ -78,7 +84,8 @@ jobs:
- uses: taiki-e/install-action@43aecc8d72668fbcfe75c31400bc4f890f1c5853 # v2.83.2
with:
tool: nextest
# Build all 15 guest module wasms ONCE (release/wasm32-wasip2): the single
# Build all 18 guest wasms ONCE (17 modules + the cow adapter,
# release/wasm32-wasip2): the single
# source of truth for guest buildability and the artifacts the integration
# tests load. Replaces the deleted 9-way build-module matrix, which recompiled
# the shared wasm dependency graph ~9x cold. Per-module size report folded in;
Expand All @@ -88,8 +95,13 @@ jobs:
cargo build --release --target wasm32-wasip2 --locked \
-p example -p twap-monitor -p ethflow-watcher -p price-alert \
-p balance-tracker -p stop-loss -p http-probe -p echo-venue \
-p echo-client -p clock-reader -p flaky-bomb -p fuel-bomb \
-p memory-bomb -p panic-bomb -p slow-host
-p echo-client -p echo-keeper -p clock-reader -p flaky-bomb -p flaky-venue \
-p fuel-bomb -p memory-bomb -p panic-bomb -p slow-host
# Separate invocation on purpose: unifying `cow-venue/adapter`
# into the module build would link the adapter's component
# export glue into every keeper module wasm.
cargo build --release --target wasm32-wasip2 --locked \
-p cow-venue --features cow-venue/adapter
{
echo "### module .wasm sizes"
echo "| module | bytes |"
Expand Down Expand Up @@ -143,3 +155,30 @@ jobs:
CXX_aarch64_unknown_linux_gnu: aarch64-linux-gnu-g++
AR_aarch64_unknown_linux_gnu: aarch64-linux-gnu-ar
run: cargo check --workspace --all-features --locked --target aarch64-unknown-linux-gnu

# Blocking zero-leak gate: host-layer crate graphs stay venue-free, the
# runtime Rust sources carry no charter symbol and no privileged router
# field, and nexum:host names no foreign WIT package and resolves as a
# leaf (scripts/check-venue-agnostic.sh).
venue-agnostic:
name: venue-agnostic
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: ./.github/actions/rust-setup
- uses: taiki-e/install-action@43aecc8d72668fbcfe75c31400bc4f890f1c5853 # v2.83.2
with:
tool: wasm-tools,ripgrep
- run: ./scripts/check-venue-agnostic.sh

# Blocking orderbook-only gate: the CoW venue crate carries no
# composable symbol (scripts/check-cow-orderbook-only.sh).
cow-orderbook-only:
name: cow-orderbook-only
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: taiki-e/install-action@43aecc8d72668fbcfe75c31400bc4f890f1c5853 # v2.83.2
with:
tool: ripgrep
- run: ./scripts/check-cow-orderbook-only.sh
Loading
Loading