8 Commits

Author SHA1 Message Date
Arseniy Klempner
e0f300d4e4
feat: add receiver2 + visual overhaul (topology, heartbeat, phase timeline, arrows) 2026-06-04 14:24:16 -06:00
Arseniy Klempner
49e5742252
fix: use logos-module-builder Qt 6.9.2 — all 4 modules load in host mode 2026-06-04 13:12:58 -06:00
Arseniy Klempner
6ec53e232f
wip: chat host — logos_core_start() blocks due to Qt version mismatch (6.11 vs 6.9.2) 2026-06-04 12:34:58 -06:00
Arseniy Klempner
bb9a2144fe
wip: chat host mode — logos_core_start() blocks, needs investigation 2026-06-04 11:38:02 -06:00
Arseniy Klempner
3f54a2e755
feat(sim-monitor): descriptive chat panels with status pills, phase bars, MSG badges 2026-06-03 23:23:45 -06:00
Arseniy Klempner
052cb11f00
feat: add sim-monitor Qt6/QML dashboard for live simulation monitoring
Standalone Qt6 app that tails the 7 sim log files (.sim_state/) and
renders a live dashboard: sequencer block counter + RPC health probe,
4 mix node dots (grey/yellow/green), gifter status, sender/receiver
chat phase progression, and scrollable chain event stream.

Supports both old (EVENT: stderr) and lgx ([timestamp] [out] [module])
log formats. Handles file rotation on --fresh restart.

Optional --host-chat mode links against liblogos_core for driving a
chat instance via UI controls (Initialize/Start/Bundle/Send).

Build: cd sim-monitor && nix develop --command bash -c \
  "cmake -B build -GNinja && cmake --build build"
Run:   ./build/sim-monitor --state-dir .sim_state --rpc-url http://127.0.0.1:3040
2026-06-03 16:08:15 -06:00
Arseniy Klempner
6a90c01668
build: update Docker image and scripts for v2 branches 2026-05-28 16:44:47 -06:00
Arseniy Klempner
29c64b340d
feat: mix+LEZ+RLN chat over the testnet via 2-phase gifter
Chat-side integration of the LEZ-backed RLN mix protocol:
- src/chat/delivery/waku_client.nim: mount waku_mix with onchain
  RLN spam protection wired to logos_core_client fetchers; gate
  the first publish on (a) gifter status confirmation, (b)
  cushion of 2 poll intervals after confirmation, and (c) proof
  root stability in the local valid_roots window; wrap mix
  lightpush in withTimeout so vanished SURB replies surface as
  Err instead of pinning the send coroutine.
- src/chat/client.nim: surface sendBytes errors via asyncSpawn
  wrapped try/except instead of discarding the future (was
  hiding every mix-publish failure).
- chat-side gifter client invocation (RLN membership service
  wire format, EIP-191 ethereum-allowlist auth).
- Background membership status watcher that reconciles the
  optimistic leaf returned by the gifter against the chain's
  authoritative leaf via the status RPC.

Simulation harness (simulations/mix_lez_chat/):
- Spin up sequencer + run_setup + 4 mix nodes (one of which
  runs the gifter service) + chat sender + chat receiver.
- SIM_NETWORK={local,testnet}, SIM_SLIM for testnet (reuses
  shipped config_account + cached payment_account), Docker
  image + GHCR for cross-platform testing.
- Strict mix-pool readiness gate, kademlia + RLN root activity
  checks, gifter EIP-191 auth fixture, slim-mode submodule
  minimization.
- TREE_ID_HEX pinned to the canonical testnet deployment.

Submodule bumps:
- vendor/nwaku to 8e6ba04 (LEZ-backed RLN mix + 2-phase gifter).
- vendor/logos-lez-rln to 950f287 (SPEL RLN program + mix sim
  infrastructure + canonical testnet deploy).

Docs:
- RUN_SLIM_TESTNET.md: slim sim recipe.
- cleanup/MODE_A_GIFTER_SLOT_BUG.md: per-signer nonce collision
  postmortem driving the queue+worker fix.
2026-05-28 10:53:36 -06:00