Skip to content

docs: update network specification and architecture table with BitChat and Dispatch details - #36

Merged
fredporter merged 1 commit into
mainfrom
docs/network-spec-bitchat-update
Sep 14, 2026
Merged

fredporter merged 1 commit into
mainfrom
docs/network-spec-bitchat-update

Conversation

@fredporter

Copy link
Copy Markdown
Owner

Updates README.md architecture overview and UCORE_NETWORK_SPEC_2026.md to reflect the implemented BitChat service, mesh beacon transport, and sovereign dispatch engine.

Copilot AI lite review requested due to automatic review settings September 14, 2026 14:48
@fredporter
fredporter merged commit 4fb6cb1 into main Sep 14, 2026
4 checks passed
@fredporter
fredporter deleted the docs/network-spec-bitchat-update branch September 14, 2026 14:50

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Critical security and protocol-accuracy findings remain unresolved.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Updates the README architecture overview and network specification with BitChat and Dispatch details.

Changes:

  • Adds Dispatch and BitChat architecture entries.
  • Expands BitChat documentation for discovery, transport, binders, tasks, and UI routing.
File summaries
File Findings
README.md Moderate (3 votes): incorrect BitChat module locations and overstated P2P behavior. Nit (1 vote): omits Dispatch API and frontend player entry points.
docs/UCORE_NETWORK_SPEC_2026.md Critical (3 votes): incorrectly marks unauthenticated, unencrypted JSON/SQLite handling as implemented. Nit (2 votes): inaccurate binder and commit-path description. Critical (1 vote): missing default route authentication. Critical (1 vote): unvalidated binder_name permits writes outside the vault.
Review details

Suppressed comments (3)

README.md:16

  • The location column omits the public API and player that this row describes: /p/:token is served through backend/app/api/dispatch_api.py and the Tri-Mode player lives in frontend-vue/src/surfaces/dispatch/. Please list those entry points (or narrow the responsibility text), otherwise this architecture table directs readers only to service internals.
| **Sovereign Dispatch** | `backend/app/services/dispatch_*` | Ephemeral stories (`/p/:token`), Tri-Mode player, bulletproof email, and offline capsules |

docs/UCORE_NETWORK_SPEC_2026.md:67

  • Neither mDNS/Bonjour nor UDP beacon reception is implemented in mesh_transport.py: send_broadcast_beacon() only calls sendto, and start() merely flips _running without creating a listener. Devices therefore cannot discover peers as this sentence says; implement the listener/advertiser or document this as outbound announcement only.
1. **Discovery**: Devices on the same subnet discover the uCore BitChat endpoint via **mDNS / Bonjour** service advertisement (`_bitchat._tcp.local.`) and standard library UDP broadcast beacons on port `53535` (`backend/app/services/mesh_transport.py`).

docs/UCORE_NETWORK_SPEC_2026.md:74

  • convert_message_to_task() delegates to default_tasker_dir(), whose default is $UDOS_HOME/flow/tasks (with UFLOW_TASKS_DIR/UCORE_TASKER_DIR overrides), not ~/Vault/tasks. The documented path is wrong and users or integrations will look in the wrong location.
* **Convert to Task**: Chat action items can be promoted directly to sovereign `.tasker` markdown tasks in `~/Vault/tasks/inbox/` with optional Apple Reminders synchronization.
  • Files reviewed: 2/2 changed files
  • Comments generated: 5
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

---

## 3. BitChat: Local-First Private Communication
## 3. BitChat: Local-First Private Communication (Implemented)
1. **Discovery**: Devices on the same subnet discover the uCore BitChat endpoint via **mDNS / Bonjour** service advertisement (`_bitchat._tcp.local.`).
2. **Transport**: Lightweight WebSocket connection (`/api/network/bitchat/ws`).
1. **Discovery**: Devices on the same subnet discover the uCore BitChat endpoint via **mDNS / Bonjour** service advertisement (`_bitchat._tcp.local.`) and standard library UDP broadcast beacons on port `53535` (`backend/app/services/mesh_transport.py`).
2. **Transport**: Lightweight WebSocket connection (`/api/network/bitchat/ws`) and fallback REST endpoints (`/api/network/bitchat/send`, `/api/network/bitchat/messages`).
* Discussions regarding project briefs, decisions, or research can be saved with one click.
* The selected chat thread is formatted as Markdown evidence and committed to the active binder under `evidence/chats/YYYY-MM-DD-thread.md`.
### uDos Integration: "Save to Binder" & "Convert to Task"
* **Save to Binder**: Discussions regarding project briefs, decisions, or research can be saved with one click. The selected chat thread is formatted as Markdown evidence and committed to the active binder under `~/Vault/binders/<binder>/evidence/chats/YYYY-MM-DD-thread.md`.
Comment thread README.md
| **Sovereign Identity** | `backend/app/identity/` | Local profiles, keys, and headless WordPress RBAC mapping (`wordpress_mapper.py`) |
| **Network & Privacy** | `uCore-Network` | Spec: Offline local portals, BitChat LAN P2P chat, and home privacy stack |
| **Sovereign Dispatch** | `backend/app/services/dispatch_*` | Ephemeral stories (`/p/:token`), Tri-Mode player, bulletproof email, and offline capsules |
| **Network & BitChat** | `backend/app/services/mesh_*`, `bitchat_*` | Local LAN subnet beacon discovery, zero-cloud BitChat P2P messaging, and binder bridges |
* Discussions regarding project briefs, decisions, or research can be saved with one click.
* The selected chat thread is formatted as Markdown evidence and committed to the active binder under `evidence/chats/YYYY-MM-DD-thread.md`.
### uDos Integration: "Save to Binder" & "Convert to Task"
* **Save to Binder**: Discussions regarding project briefs, decisions, or research can be saved with one click. The selected chat thread is formatted as Markdown evidence and committed to the active binder under `~/Vault/binders/<binder>/evidence/chats/YYYY-MM-DD-thread.md`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants