Week 38, 2026 (September 21, 2026)
Note: Messaging, AnonComms, Logos Core, and Blockchain have reported. The Storage section will be added as its updates land.
Messaging API documentation closed — published for delivery and chat, and v0.39.0-rc.3 tagged and signed off by DST.
Logos Chat identity model landed — AccountLog (#404) and Account Profile (#426) specs merged, with the ADR and implementation.
The mix-local-reputation spec drafted (eligibility by membership attestation, no peer scores) and review comments on stake-weighted RLN DoS protection addressed.
RLN membership allocation now accepts the LEZ native asset for registration, with the module’s membership-expiry calculation fixed.
The blockchain node dashboard was rebuilt around what an operator can act on — a status hero of six states driven by the pushed processedBlock stream, tiles with ⓘ explainers, amounts in LOGOS, and a mining/claim wizard.
Provider restarts became observable and recoverable — event-driven detection on both the QtRO and plain-TCP transports, and a June use-after-free in the JSON-RPC bridge fixed (SIGSEGV 5/5 before, 602/602 green after).
A module now ships its own contract — lidl() reserved as a built-in identity method, the canonical document bundled at assets/lidl/, and a catalog can draw packages from other catalogs via includesUrl.
parsePeerInfo kept only TCP/WebSocket parts, so a QUIC-only peer could not be an entry, static or service node; circuit-relay addresses now go through the same parserconst char*basecamp:// deep links (URL scheme, single-instance guard, holding inbox, coordinator); the publishing repository shown instead of raw.githubusercontent.com; three consent-flow fixes; plus the transport-restart relock.
The node dashboard rebuilt around what an operator can act on — status hero (11 states → 6) driven by the pushed processedBlock stream, liveness three-probe-deep, uptime/CPU/memory/disk tiles each with an ⓘ explainer, amounts rendered in LOGOS with lepta kept on the wire, a mining/claim wizard, and one node-gated Wallet section.
API reference published to GitHub Pages; fork PRs build their own commit in the doc-tests.
Every POSIX child now spawns from one dedicated process-lifetime thread — PR_SET_PDEATHSIG ties the kill signal to the spawning thread, which liblogos could call off-thread, so a host died with the thread that loaded it.
The lidl() identity built-in generated; carried the protocol restart fix across the propagation waves.
The demo shows RLN state rather than collecting it (a badge reading Disabled; reads its scope back from rlnState); message source surfaced.
RLN comes from the network preset, configureRln removed; liblogos_rln_module made an optional dependency; source/messageQueued events surfaced; and the prebuilt librln reference-scanning dlopen fix.
LogosStatCard, LogosStageLane and LogosInfoButton ship with storybook pages and tests; valueColor tints a value without claiming a severity; LogosButton compact/Danger and a borderGlyph token.
A reusable chain registry, eth_feeHistory's block count kept hex on the verified leg, and account wallet provenance exposed as one ungated read; stack versioning.
estimate_bundle prices calls as the chain will find them — an earlier approve becomes an allowance state override (slot found, not assumed), tiers moved to p10/p30/p60; a failed fee read is an error, never a zero tip; a caller-set fee field is honoured.
Fee fields rendered on the screen that signs them, with a zero-priority-fee flag; an EIP-712 typed-data leg that computes its own signing hash; a displaced approval stays approvable; chain registry read.
Took logos-tx-decoder's swap reading; versioned with the EVM stack; hygiene fixes.
Reads answered while a token list downloads — declared concurrency: multi with the store behind an RwLock, list_offered measured 14.2 s → 0.2 s.
A complete quoter and encoder for any pair — V2/V3 across fee tiers in one Multicall3, a marginal-price probe for priceImpactBps, affordability and approval-first in the same batch; encoded for SwapRouter02; refusals relayed whole.
Transport-restart propagation plus a second relock for the modules it bundles; dialWithAddrs reaches forceDial.
lidl() -> tstr reserved as a built-in identity method alongside name()/version(); no-return methods made structural (an absent return clause); and a lidl CLI (json/check/fmt).
catalog ls prints the declared includesUrl with resolved catalogs nested under it; transport-restart relock; the flake-cycle lock reduction.
Contracts normalised and bundled into the package at assets/lidl/; multi-dispatch became a bounded QThreadPool; external-library staging fixes; propagation relocks.
The catalog takes its runners and cache from repo settings and merged its base repo as a real merge; lgx sign --key accepts a path.
includesUrl on the identity card — a catalog can now draw packages from other catalogs (whole catalog, named packages or pinned versions), resolved at fetch time with nothing re-hosted.
One follows = "" cut the flake-input cycle (its own lock 690 → 104); restart-fix relock.
LIDL root assets bundled into the .lgx and preserved across a merge — extractable on their own without unpacking a whole variant.
Catalog includes resolved at fetch time, folded into the including repository's listing, with origin* provenance on the entry and every version.
The Details panel follows the version picker; catalog-draw provenance shown; and two PMUI fixes (a local package's hardcoded Dependencies: None, and a version-cell tooltip).
lidl("junk") refused instead of answering null with status ok; multi-dispatch bounded to a QThreadPool; a check-build guard; propagation relocks.
Provider restarts made observable and recoverable — detection is event-driven through setState(Suspect), the generation counts establishments not subscribers, the plain TCP transport reports and redials a restart, and a timed-out facade is parked rather than freed (a June use-after-free in the JSON-RPC bridge).
The lidl() built-in; carried the restart fix across the propagation waves.
The lidl() built-in needing no trait code; no-return methods made structural.
Relocked across the restart-fix waves and the bundled-module relock.
Config migration moved into the module (it is becoming a dependency of logosctl and Basecamp); an x86_64-windows target taken from the builder's systems.
Dropped its own config-migration copy and calls refreshConfig; the plugin entry point is generated now; dropped an unused krb5 that fails a mingw host.
Carried the transport-restart fix; external-library test-build fixes (rpath joining, nested headers).
Conformance cells for the lidl() identity method landed green; restart-fix relock.
A .lgx's runtime closure is recorded now (an install-closure dlopens the plugin in a sandbox holding only that closure); WinSCard.dll added to the system-DLL list; LIDL assets carried through.
#install takes its payload's runtime closure; LIDL assets installed into the package.
ProgramId and Program clean-up merged #846