Reports for each of the 8 cleanup agents (DRY, types, unused, cycles,
weak-types, try/except, legacy, slop) recording verdicts + applied
changes + deferred items, plus the consolidated SUMMARY.md.
End-of-pass local sim ALL 15 PASSED.
- Bumps vendor/nwaku to d08083c5 (bytesToHexUpper extraction).
- Adds cleanup/01-dry.md report for the DRY pass.
Code change deduplicates three identical hex-encoding loops in the
gifter section of node_factory.nim. Net -4 lines.
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.
Add rust-bundle, a single staticlib crate that depends on both libchat
and rln as rlibs. This ensures rustc links Rust std exactly once,
eliminating duplicate symbol errors on all platforms. Nim targets link
against liblogos_chat_bundle.a; Nix uses a bundleDrv instead of
separate libchat and rln derivations.
Reference: https://doc.rust-lang.org/reference/linkage.html#mixed-rust-and-foreign-codebases
* ci: run nix build on ubuntu and macos
* ci: use DeterminateSystems/nix-installer-action
* fix: wrong extension for mac
---------
Co-authored-by: pablo <p.lopez.lpz@gmail.com>
* fix: mac build
- fix error: `error: darwin.apple_sdk_11_0 has been removed as it was a legacy compatibility stub`
- fix librln hash
- bumped nim-ffi
* fix: typo
- Consolidate build and test into a single job to avoid duplicate builds;
artifact sharing across jobs proved too complex to justify
- NBS was the main bottleneck; this change improves CI duration beyond that
- Add caching for Cargo registry, git sources, and libchat's target
- Consolidate build and test into a single job to avoid duplicate builds;
artifact sharing across jobs proved too complex to justify
- NBS was the main bottleneck; this change improves CI duration beyond that
- Add caching for Cargo registry, git sources, and libchat's target
src/naxolotl was deleted in #68 but test_naxolotl.nim and its
entry in all_tests.nim were left behind, causing make tests to
fail with "cannot open file: ../src/naxolotl".
`requires` in the nimble file alone is not sufficient, NBS never calls
`nimble install` or clones URLs from the `requires` block at build time.
The package must be present as a git submodule for NBS to discover and
link it.
Migrating to `nimble install` is a separate task.
* chore: add smoke test and redesign CI workflow (#62)
Add a smoke test that validates the binary links all dependencies
at runtime by instantiating a client without networking. Redesign
CI into separate build and test jobs, with test gated on build.
* Add libchat module
* Add Context
* Add libchat
* Update to latest libchat
* Remove stale files
* Bump to latest Libchat
* Update imports
* Update client
* Update library to work with Libchat
* Fix examples
* Remove Tui Examples - Replace with logos-core
* Add Indentity Todo
* fix: add `build-libchat` as dependency for examples, tests, and library (#59)
The Rust liblogos_chat.so was not being built automatically, causing
runtime failures when loading the shared library.
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add Todo for Sender data
* Updated error log
---------
Co-authored-by: osmaczko <33099791+osmaczko@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Add a smoke test that validates the binary links all dependencies
at runtime by instantiating a client without networking. Redesign
CI into separate build and test jobs, with test gated on build.
* chore: log build files.
* chore: update nwaku
* chore: use rln 0.9.0
* chore: fix file name
* chore: fix path
* chore: log the released file
* chore: test log
* chore: splite windows test ci
* chore: splite windows test
* chore: update nwaku
* chore: update nwaku
* chore: update windows ci deps
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci
* chore: update ci