|
11 | 11 | </p> |
12 | 12 |
|
13 | 13 | <p align="center"> |
14 | | - <img src="https://img.shields.io/badge/version-0.6.27-blue" alt="Version 0.6.27"> |
| 14 | + <img src="https://img.shields.io/badge/version-0.6.32-blue" alt="Version 0.6.32"> |
15 | 15 | <img src="https://img.shields.io/badge/python-3.10%2B-blue" alt="Python 3.10+"> |
16 | 16 | <img src="https://img.shields.io/badge/license-Apache%202.0-green" alt="Apache 2.0 License"> |
17 | 17 | <img src="https://img.shields.io/badge/encryption-ChaCha20--Poly1305-blueviolet" alt="ChaCha20-Poly1305"> |
@@ -102,6 +102,9 @@ Recent end-user improvements reflected in the app and docs: |
102 | 102 | - **Preview-only review before sync** — first contact can connect for review while channels and history stay paused until an admin explicitly approves peer or mesh sync from the Trust page. |
103 | 103 | - **Safer cross-mesh review** — invite import can keep a mismatched peer connected long enough for an admin to decide whether to treat it as the same mesh or keep an intentional bridge. |
104 | 104 | - **Device Profile now drives peer-facing identity** — the name, avatar, and node hint shared during connection review now come from **Settings -> Device Profile**, and preview-only peers can refresh stale identity hints without approving sync. |
| 105 | +- **Admin transport setup is now first-class** — instance admins can configure self-signed TLS, provided certificate paths, or an external `wss://` terminator from the Admin UI and see whether secure invite generation is actually ready before sharing a public endpoint. |
| 106 | +- **Sidebar peer navigation is more useful** — connected peers in the left rail now open the matching Trust card, and the header peer count jumps directly to the Connected Peers section on Connect instead of dropping you at a generic page top. |
| 107 | +- **Remote meshspace introductions are now visually separated on Connect** — peers introduced through your contacts but advertising a different meshspace now appear in an explicit review section and require an intentional admin-approved bridge action instead of looking like routine same-mesh introductions. |
105 | 108 | - **Meshspaces for safer local multi-mesh operation** — One Canopy install can now manage multiple isolated local Meshspaces with separate runtimes, ports, and operator controls instead of relying on manual repo clones or copied data directories. |
106 | 109 | - **Bookmarks for durable memory** — Save important channel messages, feed posts, and DMs as private local bookmarks with notes and tags, then jump back to the original source later. |
107 | 110 | - **Reposts and lineage variants** — Bring high-value sources forward again or publish a derivative version while preserving provenance back to the original instead of copying content blindly. |
@@ -361,7 +364,7 @@ Agent account first-run guide: [docs/AGENT_ONBOARDING.md](docs/AGENT_ONBOARDING. |
361 | 364 | Each Canopy instance is a self-contained node: it holds its own encrypted database, runs a local web UI and REST API, and connects directly to peer instances over encrypted WebSockets. There is no central server because the network is the peers themselves. |
362 | 365 |
|
363 | 366 | - Direct connections: peers on the same LAN can discover and connect automatically. |
364 | | -- Remote connections: use invite codes to link peers across networks and port-forward mesh port `7771` when needed. |
| 367 | +- Remote connections: use invite codes to link peers across networks and port-forward mesh port `7771` when needed. Public VPS/tunnel endpoints can be advertised as `wss://...`; explicit `wss://` endpoints are not silently downgraded to plain `ws://` if TLS fails, and same-host public plain fallback is opt-in rather than automatic. |
365 | 368 | - Relay routing: when no direct path exists, a mutually trusted peer can relay targeted traffic. |
366 | 369 | - Inside each node, the web UI, REST API, local database, file storage, and P2P engine all live together as one local-first application surface. |
367 | 370 |
|
@@ -517,6 +520,7 @@ Full reference: [docs/API_REFERENCE.md](docs/API_REFERENCE.md) |
517 | 520 | | A peer shows as preview-only after first connect | Transport is up, but sync/history are intentionally paused until review is complete. | Open **Trust** and decide whether to allow peer sync, allow mesh sync, or keep the peer pending. | |
518 | 521 | | Cross-mesh warning during invite review | The remote peer advertises a different mesh identity than the current workspace. | An instance admin should connect it for review, then choose **Treat as same mesh** or **Keep bridge** in **Trust**. | |
519 | 522 | | You are behind a router and peers are remote | LAN `ws://` endpoints are not directly reachable from the internet. | Port-forward mesh port `7771`, then use **Regenerate** with your public IP or hostname. | |
| 523 | +| You need to prove an invite uses WSS | The Connect page **Transport security** panel shows the mesh listener, certificate mode, outbound verification mode, and secure/plain advertised endpoint counts. | Use a full `wss://...` external endpoint backed by a real TLS tunnel, reverse proxy, or TLS mesh listener. | |
520 | 524 | | "API key required" or auth error popup on Connect | Usually browser session expiry or auth mismatch. | Reload, sign in again. For scripts and CLI, include `X-API-Key`. | |
521 | 525 | | Peer imports invite but cannot connect | Endpoint not reachable because of NAT, firewall, or offline peer. | Verify port forwarding, firewall rules, peer online status, or use a relay-capable mutual peer. | |
522 | 526 |
|
|
0 commit comments