Week 36, 2026 (September 7, 2026)
Messaging API now supports Mix through the AnonymityLevel flag — sender anonymity via mix landed in logos-delivery #4180.
LIP-243 segmentation merged with a simplified wire format, implemented as the standalone nim-segmentation library and queued for integration into the Reliable Channel API.
status-go now advertises WakuMessage version=0 on send, completing phase 2 of the Messaging API integration; functional and e2e fleets being migrated to logos-delivery images.
Logos Mix Network LIP published — specifies the Logos-specific mix protocol stack and opinionated configuration.
Poseidon2 circuit implementation completed in Circom with a benchmark report; Poseidon2 examples and FFI/WASM support added to Zerokit.
Standalone service discovery module now plugs into Logos Delivery — discovery plugin header PR opened and verified locally against Delivery nodes.
A module load now reports a verdict — spawned, loaded and ready became three distinct facts across a four-repo chain, so a plugin that never loaded is no longer announced as loaded.
Protocol 0.9 makes a provider restart observable — a liveness watchdog, generation counter and status channel, keyed by target module and carried into all three SDKs.
The EVM signer became usable — evm.signing.approve brings the approver forward with the request, calldata is decoded on the device that displays it, and account mutation is the custodian's alone.
Mix transport gained retransmissions, push-based SURB replenishment and remote session cleanup — and works under adverse-network testing.
Research on time-based path selection for hidden services published, and the strategy folded into the draft path selection spec. Storage Module & UI v2.1.3 are out.
Node 0.3.0 release candidates published for internal devnet testing 0.3.0-rc.1, 0.3.0-rc.2
Transaction typestate refactor merged #3383
nimble.lock directly, so most of the resolution harness goes awayIntent routing completes the round trip — a caller that raises an intent is routed back once the provider finishes; the PMUI install/uninstall/upgrade ack handshake is gone now that modules_state reports lifecycle directly; mock backends and a mock logos core make the app drivable without a live stack; the MCP-driven UI test layer grew; Windows CI moved to the self-hosted pool.
New designs across the app — a section nav over dashboard, blocks, accounts and node views, stat tiles, node and validator status cards, chain-stats and Cryptarchia-info views, and a new icon set.
A container can now report whether a module's plugin actually loaded — the vocabulary (LoadVerdict / ModuleContainer::awaitLoad) reported over the stdout it already reads, no fourth pipe.
Answers whether a launched module actually loaded, and spawns with posix_spawn so the child cannot deadlock before exec — which also brought fd hygiene.
LpClient::subscribeEx surfaces subscription transitions, then re-keyed by target module — guarded on protocol ≥ 0.9 so it merged as a no-op before the protocol side.
Progress-bar API fixed to support end-to-end download progress, and a dot matrix added.
Content-addressed screenshot files landed and were then reverted — the split grew the branch and broke consumers.
Optional light-client verified routing, per chain — off (default) is today's behaviour exactly, required refuses on failure, and there is no preferred mode; only proof-backed reads are classed verified.
Made to follow our module-builder, and now diffs a fingerprint of the served rows so a list that stops resolving cannot empty its chains in silence.
Tier D — account mutation belongs to the custodian alone. The gate runs before arguments are parsed and every secret a refused call carried is zeroized; gating delete_account closed an unmetered password oracle. The decision moved into a pure gate.rs.
evm.signing.approve provided (the intent is a doorbell, not a courier), and the signer decodes the calldata it is about to show — offline, self-labelling, only VERIFIED for an address the decoder can identify.
A token list that works offline — 1709 tokens across 25 chains compiled in, with a PROVENANCE.md recording URL, fetch date, version, byte count and sha256 so the blob is re-derivable rather than trusted.
send_generic_public_transaction corrected to a byte-string instruction IPC type.
The load-verdict consumer: the load waits for the verdict and reports it; a crash stopped being described by a stale teardown; the snapshot reports each module's real type and version; concurrent per-module loading; then relocked onto the fork-safe container and relative---path host.
A Nim cdylib authoring path (codegen.nim) so a module can be authored with a Nim core behind its .lidl contract — verified end to end — plus the relock train onto the protocol 0.9 revision.
The host reports whether the plugin loaded and why it did not, and resolves a relative --path.
Storage updated to 2.1.3 through the release set, and the AMM modules added.
error documented as also covering a load that failed, not only a crash.
Download progress drawn in PMUI (closing #57 and #61), with flake hygiene alongside.
Relocked onto the protocol 0.9 revision; the consumer-admission bound raised 8 → 9 and then its note corrected — the bound stays at 9.
Protocol 0.9 — subscription continuity, keyed by target module. A liveness watchdog, generation counter and status channel make a provider restart observable; the silent re-arm was kept deliberately but made observable; plus CI bars a loaded runner can meet, and the mock re-reads LOGOS_MOCK_FIXTURE.
Subscription state keyed by target module; moved to protocol 0.9 and the raised consumer-admission bound; and nine stale tests corrected.
watch() stopped hanging silently — when module() returned null, a type mismatch default-constructed a call whose isFinished() is never true, so no callback fired and nothing was logged, across all 82 call sites.
producer checked against the L1 inscription #816 and FFI fixes #825eth/net/nat and NatConfig removed in favor of Logos-native reachability and AutoNAT v2 nimbos#176