Highlights

  • Logos Delivery:
    • v0.39.1 released and taken up by the delivery module.
    • Offline backfill is now one topic-aware engine covering both live-delivery outages and restarts (#4468 … #4474).

Logos Delivery

Messaging API — General Availability

  • [Deliverable] Offline periods backfill

    • achieved:
      • feat(messaging): topic records for the backfill (#4468).
      • feat(messaging): backfill engine for outages of live delivery — one in-memory state machine per subscribed topic, replacing the reconnection check and the startup catch-up (#4469), with its receive tests (#4470).
      • feat(messaging): backfill the downtime of a restart from the records (#4471), with its receive tests (#4472).
      • fix(messaging): topic-aware backfill engine, landing the five PRs above (#4474).
  • [Deliverable] Integrate Mix into Messaging API

    • achieved:
      • fix(simulations): keep the mixnet simulation off the logos.dev fleet (#4409).
      • fix(chat2mix): replace the nested waitFor and runForever with await (#4410).
    • next:
      • Mix replies can fail for senders behind NAT (#4357).

Logos Chat

Chat — Beta

Status

Status: Logos Delivery Integration

Maintenance

  • achieved:
    • Releases and deployments:
      • v0.39.1 released (changelog #4427).
      • Deploy v0.39.1 in the status fleet (#4371).
      • infra: support logos-delivery v0.39.0 images (infra-role-nim-waku#54).
      • store: drop the legacy-store protocol on prod (infra-status#71).
      • chore(e2e): run the Status e2e local fleet on logos-delivery v0.39.1 (#22726).
      • fix(functional): re-enable QUIC on the test waku fleet (#7894).
    • Fixes:
      • push filter on a fresh stream to go-waku peers (#4425).
      • abort in-flight dials on stop so stop_node cannot hang (#4423).
      • don’t index empty addrs in logs and metrics (#4421).
      • library: honour the host’s logLevel (#4430).
    • REST and protocol conformance fixes:
      • REST:
        • skip unknown JSON fields (#4428).
        • report why a body cannot be decoded (#4449).
        • reject non-positive store times and negative pageSize (#4441).
        • follow the spec for ascending (#4442).
        • same HTTP status for store errors on the self and peer paths (#4445).
      • lightpush:
        • 400 for INVALID_MESSAGE and 413 for oversize (#4444).
        • pass service BAD_REQUEST through the v3 client (#4440).
      • filter:
        • UNSUBSCRIBE per-requester and all-or-nothing (#4448).
        • reject no pubsubTopic under static sharding (#4446).
      • archive:
        • do not count an already-held message as written or failed (#4447).
      • CLI:
        • merge --rate-limit entries over the default limits (#4443).
    • Review implementation of Store Sync protocol:
      • clamp the sync range to the message time retention, so retention cannot delete messages the sync window still reconciles (#4478).
      • remove the dead storeSync field from WakuConfBuilder (#4475).
    • CI and build:
      • check consumer dependency setup (#4450).
      • fail PRs that break dependency resolution for apps (#4461).
      • check nimble.lock resolution daily and on PRs (#4462).
      • retry transient Nimble download failures (#4465).
      • update the Windows build script (#3912).
    • Dependencies:
    • Cleanup:
      • refactor(rest): move REST to a top-level rest/ owned by RestService (#4477).
      • config: deprecate unused node flags, removal in v0.42.0 (#4467).
      • drop the legacy store protocol from wakucanary (#4509).
    • feat: async logos-delivery Rust crate with reliable channels, to replace logos-chat’s hand-written wrapper (rust-bindings#134).