chore(hermes): fix fmt
Home /
Input Output /
hermes
Dec 09, 3-4 AM (0)
Dec 09, 4-5 AM (0)
Dec 09, 5-6 AM (0)
Dec 09, 6-7 AM (0)
Dec 09, 7-8 AM (0)
Dec 09, 8-9 AM (0)
Dec 09, 9-10 AM (1)
Dec 09, 10-11 AM (0)
Dec 09, 11-12 PM (0)
Dec 09, 12-1 PM (0)
Dec 09, 1-2 PM (1)
Dec 09, 2-3 PM (0)
Dec 09, 3-4 PM (0)
Dec 09, 4-5 PM (0)
Dec 09, 5-6 PM (0)
Dec 09, 6-7 PM (0)
Dec 09, 7-8 PM (0)
Dec 09, 8-9 PM (0)
Dec 09, 9-10 PM (2)
Dec 09, 10-11 PM (0)
Dec 09, 11-12 AM (1)
Dec 10, 12-1 AM (0)
Dec 10, 1-2 AM (0)
Dec 10, 2-3 AM (0)
Dec 10, 3-4 AM (0)
Dec 10, 4-5 AM (0)
Dec 10, 5-6 AM (1)
Dec 10, 6-7 AM (2)
Dec 10, 7-8 AM (2)
Dec 10, 8-9 AM (1)
Dec 10, 9-10 AM (0)
Dec 10, 10-11 AM (1)
Dec 10, 11-12 PM (0)
Dec 10, 12-1 PM (1)
Dec 10, 1-2 PM (0)
Dec 10, 2-3 PM (0)
Dec 10, 3-4 PM (0)
Dec 10, 4-5 PM (2)
Dec 10, 5-6 PM (0)
Dec 10, 6-7 PM (0)
Dec 10, 7-8 PM (0)
Dec 10, 8-9 PM (0)
Dec 10, 9-10 PM (0)
Dec 10, 10-11 PM (2)
Dec 10, 11-12 AM (0)
Dec 11, 12-1 AM (1)
Dec 11, 1-2 AM (0)
Dec 11, 2-3 AM (0)
Dec 11, 3-4 AM (0)
Dec 11, 4-5 AM (0)
Dec 11, 5-6 AM (0)
Dec 11, 6-7 AM (0)
Dec 11, 7-8 AM (0)
Dec 11, 8-9 AM (0)
Dec 11, 9-10 AM (1)
Dec 11, 10-11 AM (2)
Dec 11, 11-12 PM (3)
Dec 11, 12-1 PM (0)
Dec 11, 1-2 PM (0)
Dec 11, 2-3 PM (0)
Dec 11, 3-4 PM (0)
Dec 11, 4-5 PM (0)
Dec 11, 5-6 PM (0)
Dec 11, 6-7 PM (0)
Dec 11, 7-8 PM (0)
Dec 11, 8-9 PM (0)
Dec 11, 9-10 PM (0)
Dec 11, 10-11 PM (0)
Dec 11, 11-12 AM (0)
Dec 12, 12-1 AM (0)
Dec 12, 1-2 AM (0)
Dec 12, 2-3 AM (0)
Dec 12, 3-4 AM (0)
Dec 12, 4-5 AM (0)
Dec 12, 5-6 AM (0)
Dec 12, 6-7 AM (0)
Dec 12, 7-8 AM (0)
Dec 12, 8-9 AM (0)
Dec 12, 9-10 AM (0)
Dec 12, 10-11 AM (0)
Dec 12, 11-12 PM (0)
Dec 12, 12-1 PM (0)
Dec 12, 1-2 PM (0)
Dec 12, 2-3 PM (0)
Dec 12, 3-4 PM (0)
Dec 12, 4-5 PM (0)
Dec 12, 5-6 PM (0)
Dec 12, 6-7 PM (0)
Dec 12, 7-8 PM (0)
Dec 12, 8-9 PM (0)
Dec 12, 9-10 PM (0)
Dec 12, 10-11 PM (0)
Dec 12, 11-12 AM (0)
Dec 13, 12-1 AM (0)
Dec 13, 1-2 AM (0)
Dec 13, 2-3 AM (0)
Dec 13, 3-4 AM (0)
Dec 13, 4-5 AM (0)
Dec 13, 5-6 AM (0)
Dec 13, 6-7 AM (0)
Dec 13, 7-8 AM (0)
Dec 13, 8-9 AM (0)
Dec 13, 9-10 AM (0)
Dec 13, 10-11 AM (0)
Dec 13, 11-12 PM (0)
Dec 13, 12-1 PM (0)
Dec 13, 1-2 PM (0)
Dec 13, 2-3 PM (0)
Dec 13, 3-4 PM (0)
Dec 13, 4-5 PM (0)
Dec 13, 5-6 PM (0)
Dec 13, 6-7 PM (0)
Dec 13, 7-8 PM (0)
Dec 13, 8-9 PM (0)
Dec 13, 9-10 PM (0)
Dec 13, 10-11 PM (0)
Dec 13, 11-12 AM (0)
Dec 14, 12-1 AM (0)
Dec 14, 1-2 AM (0)
Dec 14, 2-3 AM (0)
Dec 14, 3-4 AM (0)
Dec 14, 4-5 AM (0)
Dec 14, 5-6 AM (0)
Dec 14, 6-7 AM (0)
Dec 14, 7-8 AM (0)
Dec 14, 8-9 AM (0)
Dec 14, 9-10 AM (0)
Dec 14, 10-11 AM (0)
Dec 14, 11-12 PM (0)
Dec 14, 12-1 PM (0)
Dec 14, 1-2 PM (0)
Dec 14, 2-3 PM (0)
Dec 14, 3-4 PM (0)
Dec 14, 4-5 PM (0)
Dec 14, 5-6 PM (0)
Dec 14, 6-7 PM (0)
Dec 14, 7-8 PM (0)
Dec 14, 8-9 PM (0)
Dec 14, 9-10 PM (0)
Dec 14, 10-11 PM (0)
Dec 14, 11-12 AM (0)
Dec 15, 12-1 AM (0)
Dec 15, 1-2 AM (0)
Dec 15, 2-3 AM (0)
Dec 15, 3-4 AM (0)
Dec 15, 4-5 AM (0)
Dec 15, 5-6 AM (0)
Dec 15, 6-7 AM (0)
Dec 15, 7-8 AM (0)
Dec 15, 8-9 AM (0)
Dec 15, 9-10 AM (0)
Dec 15, 10-11 AM (0)
Dec 15, 11-12 PM (5)
Dec 15, 12-1 PM (4)
Dec 15, 1-2 PM (8)
Dec 15, 2-3 PM (2)
Dec 15, 3-4 PM (0)
Dec 15, 4-5 PM (4)
Dec 15, 5-6 PM (0)
Dec 15, 6-7 PM (0)
Dec 15, 7-8 PM (0)
Dec 15, 8-9 PM (0)
Dec 15, 9-10 PM (0)
Dec 15, 10-11 PM (0)
Dec 15, 11-12 AM (0)
Dec 16, 12-1 AM (0)
Dec 16, 1-2 AM (0)
Dec 16, 2-3 AM (0)
Dec 16, 3-4 AM (0)
47 commits this week
Dec 09, 2025
-
Dec 16, 2025
chore(hermes): add newline
feat(hermes): add document to local db
feat(hermes): add sql queries for doc sync, added timestamp to wit value api
docs: improve clarity and fix clippy warnings
- Explain mesh_n, bootstrap peers (DNS analogy), and 5-step post workflow - Fix confusing DHT log: need 2+ waiting for ourselves to appear - Add backticks around PubSub and function names (clippy doc-markdown) - Simplify TROUBLESHOOTING reset (quickstart handles rebuilds) - Clarify quickstart uses existing binaries (run just build-all after code changes)
Simplify TROUBLESHOOTING.md Complete Reset:
- Remove redundant build-all/build-images steps (quickstart handles this)
- Clarify difference between nuclear option (prunes all Docker resources)
vs just clean (only removes p2p-testing volumes)
Fix DHT provider wait log (host.rs:361–372):
- Replace confusing need 2+ / 1+ messages with clear explanations - Old: got 1 provider(s), need 2+ - New: found 1 provider(s), waiting for ourselves to appear in DHT query results - The 2+ / 1+ thresholds did not match actual success conditions
docs: improve clarity of P2P networking comments
- Explain mesh_n parameter and its effect on Gossipsub operations - Add TL;DR sections to bootstrap discovery and PubSub warnings - Clarify cross-platform builds (cargo vs Earthly) and GLIBC compatibility - Add DNS analogy for bootstrap peers concept - List explicit 5-step post document workflow - Explain logging levels (debug = P2P diagnostics, info = app events)
docs: improve clarity of P2P networking comments
- Explain mesh_n parameter and its effect on Gossipsub operations - Add TL;DR sections to bootstrap discovery and PubSub warnings - Clarify cross-platform builds (cargo vs Earthly) and GLIBC compatibility - Add DNS analogy for bootstrap peers concept - List explicit 5-step post document workflow - Explain logging levels (debug = P2P diagnostics, info = app events)
docs(p2p-testing): add custom test examples and fix ANSI color output
- Add Writing Custom Tests section with examples (connectivity, resilience, throughput) - Include template and best practices for extending justfile tests - Fix ANSI escape codes not rendering (add -e flag to echo commands) - Note: proper API testing framework planned when endpoints finalized
docs(ipfs): add conceptual comments for P2P architecture and PubSub constraints
- Explain what bootstrap peers are and their role in network formation - Document retry strategy for bootstrap connections - Add critical warning: public IPFS nodes cannot be used for Hermes PubSub - Explain why DHT server mode is required for Gossipsub mesh formation - Document auto-subscription strategy to avoid cold start problem Emphasizes the key constraint that Gossipsub requires custom Hermes bootstrap peers since public IPFS nodes don't subscribe to application-specific topics.
docs(ipfs): add conceptual comments for P2P architecture and PubSub constraints
- Explain what bootstrap peers are and their role in network formation - Document retry strategy for bootstrap connections - Add critical warning: public IPFS nodes cannot be used for Hermes PubSub - Explain why DHT server mode is required for Gossipsub mesh formation - Document auto-subscription strategy to avoid cold start problem Emphasizes the key constraint that Gossipsub requires custom Hermes bootstrap peers since public IPFS nodes don't subscribe to application-specific topics.
refactor(ipfs): extract helper functions and eliminate hardcoded values
- Add env_var_or() helper to eliminate duplicate env var parsing - Extract configure_listening_address() and connect_to_bootstrap_peers() from init() - Extract constants: IPFS_DATA_DIR, KEYPAIR_FILENAME, DEFAULT_APP_NAME, DEFAULT_MESH_TOPIC - Simplify retry_bootstrap_connections() with early returns and cleaner logic
refactor: eliminate hardcoded values and code duplication
- Extract MESSAGE_PREVIEW_MAX_LEN constant and create format_message_preview() helper - Make IPFS listen port configurable via IPFS_LISTEN_PORT env var (default: 4001) - Make retry settings configurable via IPFS_RETRY_INTERVAL_SECS and IPFS_MAX_RETRIES - Document exponential backoff strategy for DHT provider queries Improves maintainability and configurability without changing behavior.
chore: add http-proxy module manifest and version files
chore: update Cargo.lock after merging main
Merge remote-tracking branch 'origin/main' into 704-task-multi-node-testing-infrastructure-for-p2p-features
docs(p2p-testing): enhance clarity and add cross-platform support
- Add TL;DR quickstart and fast restart workflows - Auto-detect platform for builds (Linux cargo, Mac/Windows Earthly) - Fix non-existent command references and outdated line numbers - Add comprehensive inline comments to docker-compose - Expand bootstrap peer discovery docs for production deployment
docs(p2p): improve docs clarity and add cross-platform build auto-detection
- Restructure README with TL;DR for minimal cognitive load - Add comprehensive comments to docker-compose.yml and Dockerfile - Auto-detect platform in build commands (Linux uses cargo, Mac/Windows uses Earthly) - Fix outdated references and broken commands - Add fast restart workflow documentation - Add GitHub Actions integration TODOs
docs(p2p): improve documentation accuracy and usability
Restructure README with TL;DR and fast restart workflows. Fix outdated command references (dashboard, test-pubsub-core) and clarify prerequisites (Rust toolchain, not Earthly). Remove duplicate entries and confusing peer ID examples. Add TODOs for GitHub Actions integration. Next task: integrate CI workflow into GitHub Actions runners for automated PR testing.
refactor(p2p): Make test-pubsub test actual propagation and add millisecond timing
Update test-pubsub to publish messages and verify reception on all nodes (minimal output for CI), matching test-pubsub-propagation functionality. Remove redundant test-pubsub-core command. Improve timing precision from seconds to milliseconds using date +%s%3N, showing actual sub-second propagation delays (0.234s instead of 0s) in visualization and final status.
refactor(p2p): Simplify testing infrastructure by removing redundant commands
Remove dashboard and health-check commands (~195 lines) since test-pubsub-propagation already validates all necessary functionality (nodes running status, mesh connectivity via message propagation, gossipsub activity via successful delivery, end-to-end P2P). Fix HTTP endpoint health check to include required Host header for Hermes gateway.