Bump Vite 8, matrix-js-sdk, and related deps; fix immer/vanilla-extract imports for new majors. Replace blocking sync error dialog with background recovery on wake/offline, and disable Vite auto-open in dev. Add feature handoff documentation index.
2.1 KiB
2.1 KiB
Developer tools — handoff
Summary
Power-user tools for debugging Matrix state: view/edit account data, send custom room events, and inspect raw JSON. Available in user settings and room/space common-settings.
User-facing behavior
- Settings → Developer tools: account data viewer
- Room settings → Developer tools: send state events, room account data
- Raw JSON editors with validation warnings
Architecture
settings/developer-tools/
DevelopTools.tsx, AccountData.tsx
common-settings/developer-tools/
DevelopTools.tsx, StateEventEditor.tsx, SendRoomEvent.tsx
Key files
| Path | Role |
|---|---|
cinny/src/app/features/settings/developer-tools/DevelopTools.tsx |
User-level dev tools |
cinny/src/app/features/settings/developer-tools/AccountData.tsx |
Account data viewer |
cinny/src/app/features/common-settings/developer-tools/DevelopTools.tsx |
Room dev tools entry |
cinny/src/app/features/common-settings/developer-tools/StateEventEditor.tsx |
Edit state events |
cinny/src/app/features/common-settings/developer-tools/SendRoomEvent.tsx |
Send events |
Data model
Direct read/write to Matrix account data and state events — production danger.
Dependencies
- matrix-js-sdk low-level APIs
Integration points
- user-settings: developer tab
- common-settings: per-room tools
Testing
Manual
- View account data keys on staging account.
- Send harmless custom state event in test room.
- Verify permission denied without power level.
Automated
- None
Known issues & gotchas
- No guard rails — can break rooms with bad state events
- Should be hidden or disabled in production builds for normal users (currently settings-gated only)
- Typo
DevelopToolsvsDeveloperToolsin filenames
Future work
- Feature flag via client config
- Event diff viewer
Related docs
Add your extra things here
- Only use on test homeservers — document internal MSC event types here when experimenting