Commit Graph

182 Commits

Author SHA1 Message Date
skylord123 bc97c564d3 Fix libolm->rust crypto migration crash on localStorage stores
matrix-js-sdk's LocalStorageCryptoStore.getEndToEndSessionsBatch()
returns olm sessions without the deviceKey/sessionId fields, since
those live only in the storage key path. initRustCrypto()'s migration
then assigns the undefined deviceKey to PickledSession.senderKey and
crashes in the WASM setter with "Cannot read properties of undefined
(reading 'length')". The IndexedDB backend embeds those fields in the
record and is unaffected, which is why this only hit installs that
were started on the legacy localStorage crypto store.

Patch the instance to re-derive deviceKey/sessionId from the
crypto.sessions/<deviceKey> keys before returning a batch, so both
the migration and its delete-after-migrate step work.
v1.0.0-beta.3
2026-05-24 14:17:30 -06:00
skylord123 5012c603aa Add Send Location example flow v1.0.0-beta.2 2026-05-23 15:46:09 -06:00
skylord123 af1067a99b Refresh README features and tagline for v1.0.0
Tagline now mentions E2EE; the beta banner is replaced with a permanent
issues/release-notes pointer. Features list gains Session management and
Send Location, expands Receive events to all 10 handled msgtypes, and
notes Markdown alongside HTML in Send & modify messages.
2026-05-23 13:51:49 -06:00
skylord123 390a5b264e Add Send Location node; expand Receive's m.location output
New matrix-send-location node publishes m.location events using
matrix-js-sdk's makeLocationContent helper, so the wire format matches
Element's "Share my location". Per-message inputs are typed inputs
(msg / flow / global / num / str), defaulting to the obvious msg.*
names.

matrix-receive's m.location handler now also sets msg.latitude,
msg.longitude, msg.altitude, msg.description, msg.assetType, and
msg.timestamp on the output (additive - msg.geo_uri / msg.payload are
unchanged), so a Receive node wired straight into Send Location resends
a byte-equivalent event.

Help docs in both nodes updated.
2026-05-23 12:36:48 -06:00
skylord123 9dc4362819 Add native Markdown format option to the Send Message node 2026-05-22 22:36:11 -06:00
skylord123 1801b49fae Set filename on the matrix-upload-file content payload 2026-05-22 19:24:19 -06:00
skylord123 72cc9cfb3b Fix repository URL casing so npm provenance validates v1.0.0-beta.1 2026-05-22 16:39:30 -06:00
skylord123 b8652a3a9a Merge remote-tracking branch 'origin/master' into dev 2026-05-22 16:35:18 -06:00
skylord123 0362fe81e8 Merge pull request #143 from Skylar-Tech/add-publish-workflow
Add npm publish workflow
2026-05-22 16:34:57 -06:00
skylord123 9ccbe4526f Add GitHub Actions workflow to publish to npm on release 2026-05-22 16:32:09 -06:00
skylord123 0c48db92a0 Publish the released commit so pre-releases can be cut from any branch 2026-05-22 16:31:15 -06:00
skylord123 3f69614ed0 Publish pre-release versions under their own npm dist-tag 2026-05-22 16:24:46 -06:00
skylord123 e3a23df6d6 Switch publish workflow to npm Trusted Publishing (OIDC) 2026-05-22 16:10:08 -06:00
skylord123 3e34dc5961 Add GitHub Actions workflow to publish to npm on release 2026-05-22 16:04:03 -06:00
skylord123 7af8891d5b Update E2EE notes: two ways to verify devices, recommend saving the recovery key 2026-05-22 15:56:12 -06:00
skylord123 939fe42b40 Set version to 1.0.0 2026-05-22 15:44:01 -06:00
skylord123 67920840e1 Add session manager and verification list to the server config editor
Adds two interactive admin tools to the matrix-server-config node so
device verification and session management can be done from the editor
without building a flow. Both open as modal dialogs and are backed by
new flows.write-protected admin endpoints.

Pending verifications
- New "Pending verification requests" button opens a modal listing
  incoming and in-progress verification requests, refreshed every 5
  seconds.
- Each entry shows the type (device or room), who it is from, a live
  age, and a live expiry countdown; the list is capped at the newest 20
  with a hidden-count note.
- Clicking an entry drives the SAS flow (accept, start, show emoji,
  confirm/cancel) within the modal.
- New /matrix-chat/verification endpoint with list, advance, confirm,
  mismatch, and cancel actions.
- trackVerificationRequest now records a seen-at timestamp and keeps
  finished requests for two minutes so their outcome can still be
  reported to the editor.

Sessions
- New "Manage sessions" button opens a modal listing the account's
  sessions, modelled on Element's session manager: the current session
  with a verified / not-verified status box, then other sessions, each
  with a green or red shield, last activity, and IP address.
- Clicking a session shows its details (session ID, last activity, IP),
  a Rename action, and a password-confirmed Remove. Unverified sessions
  offer a Verify action that hands off into the verification modal.
- New /matrix-chat/sessions endpoint with list, rename, remove, and
  verify actions.
2026-05-22 15:29:43 -06:00
skylord123 ebcb1eab81 Upgrade to matrix-js-sdk 41.5.0; add device verification
Upgrades matrix-js-sdk from 34.13.0 to 41.5.0. This crosses the v37
removal of the legacy libolm crypto stack, so E2EE is migrated to the
Rust crypto implementation. Also adds device verification, cross-signing
setup, and authenticated media support.

Dependencies
- Bump matrix-js-sdk ^34.13.0 -> ^41.5.0; require Node.js >= 22.
- Drop the `olm` dependency (legacy crypto only); add `fake-indexeddb`.

Rust crypto
- Replace initCrypto() with initRustCrypto(); the legacy crypto stack
  was removed upstream in v37.
- Add src/matrix-crypto-store.js: the Rust crypto store requires
  IndexedDB, absent in Node.js, so it is backed by fake-indexeddb and
  snapshotted to disk (rust-crypto-store.v8) to survive restarts.
- Migrate existing libolm crypto state into the Rust store on first run,
  and discard the stored crypto state when the device ID changes.

Homeserver discovery
- Resolve the homeserver via .well-known, so a delegating domain
  (e.g. example.org) works as the configured server URL.

Cross-signing & secure backup
- Add a secured /matrix-chat/secure-backup admin endpoint and a modal
  dialog on the server config node: check status, unlock an existing
  secure backup with its recovery key, or reset and create a new one.

Device verification (new nodes)
- matrix-verification: event source emitting verification requests and
  phase changes, with on-node filters (phase, initiated by, type,
  self-verification, user allowlist, room).
- matrix-verification-action: request, accept, start SAS, confirm,
  mismatch, or cancel an in-flight verification.

Authenticated media
- matrix-receive and matrix-crypt-file use the authenticated media
  endpoints, send a bearer token via msg.headers, and fall back between
  the v3 and v1 media endpoints on a 404.

Fixes
- Surface connection/auth errors in the log; node.error() calls were
  passed an empty msg object, which routed the error and suppressed
  console logging.
- matrix-get-user: await getProfileInfo()/getPresence().
- matrix-invite-room: pass the reason as the third invite() argument
  (the removed callback parameter was shifting it out).
- Guard the verification handlers so a throwing SDK getter cannot crash
  Node-RED.

Docs
- Add the device-verification example flow; update the READMEs and node
  help, correcting stale claims that device verification, secure backup,
  and encrypted file uploads were unsupported.
2026-05-22 14:40:00 -06:00
skylord123 68e63e5def Upgrade from matrix-js-sdk v34 to v34.13.0 2026-02-19 22:45:31 -07:00
skylord123 99909a77c3 Merge remote-tracking branch 'origin/master' into dev 2026-02-19 22:07:10 -07:00
skylord123 aadd82d820 Set version to 0.9.2 v0.9.2 2026-01-17 15:00:35 -07:00
skylord123 4e6fa50a67 Merge pull request #138 from Skylar-Tech/dev
Release v0.9.2
2026-01-17 14:57:45 -07:00
skylord123 58bf2dcb54 Set version to 0.9.2 2026-01-17 14:56:05 -07:00
skylord123 c15893bab5 Merge pull request #135 from fprotopapa/master
Remove unused TimelineWindow in server-config. Closes #134
2026-01-17 14:54:45 -07:00
Fabbio Protopapa f0af0e92fe Remove unused TimelineWindow in server-config 2025-12-23 09:45:57 +01:00
skylord123 04de0b4eb3 Merge pull request #132 from Skylar-Tech/dev
Release v0.9.1
v0.9.1
2025-02-09 22:41:41 -07:00
skylord123 8cb52112c1 Fix module compatibility with Node.js < 22 2025-02-09 22:36:52 -07:00
skylord123 54a9972bbc Merge pull request #121 from Skylar-Tech/dev
Release v0.9.0
v0.9.0
2025-02-07 20:56:40 -07:00
skylord123 ad34f018ab Merge pull request #127 from koosc/allow-unknown
Add option for allowing unknown devices in rooms
2025-02-07 20:52:10 -07:00
skylord123 20345787d2 README.md change 2025-02-07 20:50:25 -07:00
skylord123 99c19923c6 Release v0.9.0 2025-02-07 20:27:36 -07:00
skylord123 093d59893e Fix roomId and eventId inputs not saving field type correctly for get-event node 2025-02-07 20:27:19 -07:00
skylord123 913f5dfcb9 - Upgrade to matrix-js-sdk 34.11.1 to fix CVE-2024-50336
- Remove request package (no longer needed)
2025-02-05 11:59:39 -07:00
skylord123 e0947dd3bc Merge pull request #128 from wuast94/master
Add m.notice to the receive node
2025-02-03 20:54:40 -07:00
skylord123 8287f3c08a Merge pull request #130 from LokiMidgard/patch-1
Support default plaintext in msg.format
2025-02-03 20:51:43 -07:00
Patrick Kranz 2a78524a90 use hasOwn instead of keys 2025-01-09 15:28:28 +01:00
Patrick Kranz d01838ac84 Fix error 2025-01-09 15:14:50 +01:00
Patrick Kranz 2059f8455d Update matrix-send-message.js 2025-01-09 15:12:09 +01:00
skylord123 0cb8ecf8aa Updated README with a link to a guide that explains how to register users via web browser 2025-01-04 12:58:08 -07:00
Marc 77f2c4be46 Add m.notice to the receive node 2025-01-01 05:17:12 +00:00
Chris Koos cf82daf5da Add option for allowing unknown devices
Allows workaround for sending messages until verification is implemented
2024-11-10 10:57:43 -08:00
skylord123 487241e097 Merge pull request #120 from Skylar-Tech/new-nodes
New nodes
2024-09-18 22:24:25 -06:00
skylord123 3b161f1ad9 - Convert examples list examples/README.md to use collapsable github sections
- Add another example for sending an uploading file to a room
- Add form tip for Send Message node's thread reply config option
2024-09-18 22:19:49 -06:00
skylord123 45ff930518 - Update examples README to make things much easier to find
- Added examples for every node
- Fixed User Settings node requiring a roomId when it's not needed
- Fixed the documentation for Upload File node
- Get User node had unused config code that has been removed
2024-09-18 15:21:13 -06:00
skylord123 9e3b66f4aa - Fix Mark Read node not working properly and update the docs for this node #111 2024-09-18 09:32:19 -06:00
skylord123 02826e2769 - Fix Room Pagination node event data being unaccessible #28
- Add new node `Get Event` that will give you room data for a corresponding roomId and eventId #117
- Add new node `Fetch Event Relations` that can paginate through events related to another event #119
- README updates
2024-09-16 23:27:29 -06:00
skylord123 6bbd1d5119 Update README.md
Update readme
2024-09-03 21:31:39 -06:00
skylord123 5de1274def Merge pull request #96 from Skylar-Tech/dev
Release v0.8.0
v0.8.0
2024-09-03 21:03:18 -06:00
skylord123 1b54bc03eb Merge pull request #114 from squatica/fix-deprecated-login
stop using deprecated login object
2024-09-03 21:00:27 -06:00
skylord123 65edc94854 Add deprecation notice for Send File and Send Image nodes #102 2024-06-24 19:20:19 -06:00