Skip to content

Draft: Matrix-backed Woltspace Chat MVP - #442

Draft
woltspace-jerpint[bot] wants to merge 2 commits into
mainfrom
feat/matrix-chat-mvp
Draft

woltspace-jerpint[bot] wants to merge 2 commits into
mainfrom
feat/matrix-chat-mvp

Conversation

@woltspace-jerpint

Copy link
Copy Markdown
Contributor

What this explores

Whether Woltspace can open as a familiar encrypted messenger while retaining the TUI as an Advanced view of the same wolt/session.

This draft adds the reusable MVP foundation:

  • /chat responsive PWA shell with wolt list, timeline, composer, tiny slash palette, details, and Advanced/TUI link
  • bundled Matrix JS SDK + Rust crypto WASM for browser E2EE
  • one-room matrix-nio wolt adapter with exact room/user/device pins
  • private durable Matrix reply outbox and notify --matrix routing
  • connector configuration validation that requires HTTPS except loopback proofs
  • device logout plus local crypto-store removal
  • decrypted-event rendering in canonical Matrix timeline order
  • repeatable disposable Synapse E2E proof

Human acceptance evidence

A phone-based disposable proof completed a real encrypted human → n00b → human round trip. The human opened one Woltspace Chat link, sent ordinary messages, and received n00b replies without entering a homeserver URL, Matrix ID, password, room ID, or invite.

The live proof exposed and closed three UI issues:

  • the mobile four-panel grid covered/squeezed the composer
  • Matrix decrypted events require a separate callback after the encrypted timeline placeholder
  • rendering in decryption-completion order scrambled the conversation; the UI now re-renders from canonical Matrix timeline order

All temporary accounts, tokens, signing keys, databases, crypto stores, tunnel processes, build cache, and proof helpers were excluded from this branch. The temporary endpoint was stopped after the proof.

Verification

  • 73 focused Python checks pass
  • 39 Node checks pass
  • JS bundle rebuild passes
  • Python compile and git diff --check pass
  • earlier repeatable disposable E2E passed encrypted inbound, encrypted reply, restart recovery, and plaintext-marker scan

Draft boundary / not ready to merge

The checked-in connector currently has an explicit advanced configuration seam. The accepted owner experience is stricter: open Chat, choose a wolt, send.

Before this becomes default-on, Woltspace must:

  • invisibly provision the human device, wolt account/device, encrypted room, and exact trust pins
  • own a loopback SQLite Synapse lifecycle
  • serve Chat and its Matrix client proxy from the existing authenticated Woltspace origin
  • land inbound Matrix routing and notify --matrix together in the installed runtime
  • add an automated no-form bootstrap acceptance test

Explicitly deferred: PostgreSQL, federation, public Matrix hosting, push, attachments, calls, account recovery UX, full menus, and automatic per-wolt account lifecycle.

@vercel

vercel Bot commented Sep 23, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
woltspace Ready Ready Preview Sep 23, 2026 4:40am UTC

This branch was successfully deployed

1 active deployment
Preview — 3acadb40 Deployed Sep 23, 2026 by vercel[bot]
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.

0 participants