openpencil/src
Danila Poyarkov 97e42e8102
test(collab): add deterministic browser sessions (#541)
* test(collab): add deterministic browser sessions

- Extract a typed room transport boundary around Trystero
- Add a development-only WebSocket relay transport for browser tests
- Cover two-peer edits, awareness, departure cleanup, and reconnect convergence without public network services

* fix(collab): harden browser test transport

- Scope collaboration controls to explicit development test hooks
- Validate bounded relay messages and reject duplicate action receivers
- Remove only awareness clients owned by a departing peer
- Guarantee relay and browser cleanup after setup failures

* fix(collab): strengthen browser session coverage

- Prevent remote awareness rebroadcast and track ownership by transport peer
- Guard and validate the development relay lifecycle
- Simulate a network partition with retained peers and concurrent offline edits
- Make browser and relay setup and teardown failure-safe

* test(collab): prove partitioned peer convergence

- Queue and assert traffic during a deterministic network partition
- Converge non-conflicting edits from retained host and guest sessions
- Reject relay startup failures and guard test-only browser APIs
2026-08-17 12:57:03 +03:00
..
app test(collab): add deterministic browser sessions (#541) 2026-08-17 12:57:03 +03:00
assets Fix per-character text fill colors and vector region loop direction (#95) 2026-03-12 18:28:04 +03:00
components fix(chat): match code blocks to the app theme (#542) 2026-08-17 12:18:58 +03:00
theme feat(editor): model split canvas panes (#519) 2026-08-15 10:31:52 +03:00
views test(collab): add deterministic browser sessions (#541) 2026-08-17 12:57:03 +03:00
app.css feat(code): add live JSX and HTML/CSS editing (#525) 2026-08-15 09:48:42 +03:00
App.vue feat: add Figma-style variants and component libraries (#512) 2026-08-14 19:31:41 +03:00
constants.ts refactor: standardize acronym casing 2026-08-10 15:48:16 +03:00
env.d.ts fix(mcp): report version mismatches 2026-05-19 11:12:01 +03:00
global.d.ts refactor(core): centralize Base64 encoding 2026-07-28 08:27:22 +03:00
main.ts chore(tools): harden package and dependency checks 2026-07-01 12:56:45 +03:00
markdown.d.ts chore(lint): remove unsafe test casts 2026-05-06 00:42:45 +03:00
router.d.ts Move demo to /demo route, add @unhead/vue for title management 2026-03-06 20:54:48 +03:00
router.ts feat(app): add storage workspace 2026-07-26 15:06:01 +03:00