2.4.7 (2026-08-10)
- content: exclude common authorization subdomains from content targeting (80fc9fc)
2.4.6 (2026-08-09)
- runtime: extend recovery cadences for peer restart and lease retry (d5b9661)
2.4.5 (2026-08-09)
- appbutton: drop stale 60px comment residue in geometry owner (4f3af3f)
- appbutton: keep a fixed 60px outer-top margin on drag (e8c713b)
- appbutton: keep the largest feasible top margin below the threshold (d61db88)
- appbutton: set the collapsed top margin to 62px (a8b1f9a)
- protocol: attempt-owned rebind authority and release settlement edges (792cea1)
- protocol: attempt-owned rebind records and release-fenced deadlines (90706f4)
- protocol: current-binding selection and unprotected switch replacement (0150b5d)
- protocol: displaced-generation lifecycle and Wire-boundary dedup proof (36655c2)
- protocol: displaced-user finality and attempt-owned displaced commit facts (bcca86e)
- protocol: gate release on cleanup and fence observer grace lifecycle (070705f)
- protocol: independent displaced-leave classification and prepared slot normalization (ec83281)
- protocol: multi-source same-presence preparation precedence (e8ea20e)
- protocol: pending-gated promotion and structural rebind dedupe (5983b33)
- protocol: reconcile prepared observers on physical source departure (70f0d56)
- protocol: revoke displaced facts on departure and per-user commit finality (da1e747)
- protocol: slot-keyed current bindings and source-removal gating (23c41b6)
- protocol: source-bound rebind facts and absolute grace expiry (d8109a3)
- protocol: source-scoped prepared observer reconciliation (d57070d)
- protocol: declarative-only schemas, Pull/Push rename, write-trust, frame-bound privacy (3b0adb0)
- protocol: schema-first protocol authority with two validation boundaries (3709067)
- rename histoy message type (b996f15)
2.4.4 (2026-08-08)
- toast message overflow (58c6fce)
- protocol: cleanup job partition, end-to-end send ownership, lifetime sync fence (e194b3e)
- protocol: close admission identity, physical cleanup, terminal replay (557e9ae)
- protocol: close admission saturation, cleanup settlement, terminal fence (612ebc9)
- protocol: close cleanup ownership, atomic promotion, test controls (2f15ac7)
- protocol: close exact-history paging/identity/admission P1 controls (ea86c31)
- protocol: close exact-history state/paging/resource P1 controls (47b4bf6)
- protocol: close provider admission/successor/queue P1 controls (72572db)
- protocol: close real-codec/provider/queue P1 controls (9eb431f)
- protocol: connection-bound one-sync history with constant-size terminal binding (12aece5)
- protocol: directional bounded sync fence, cleanup fencing, real dead-page evidence (009472c)
- protocol: per-attempt supply ownership and physical-exit cancellation (e1b96c9)
- protocol: replace History with exact-ID diff sync and loading Toast (ce7edc4)
- protocol: settlement-bound cancel, exhaustion terminal, timeout failover, slot-exact release (f140d50)
- protocol: wire real supply cancellation and successor promotion after cleanup (5e009b4)
2.4.3 (2026-08-07)
- content: fence BFCache restore by generation and support repeated cycles (c610fd3)
- content: make restore visible and hide-invalidatable, add composed control (88a830d)
- content: restore hide idempotency and compose the production lifecycle owner (7155641)
- content: silence readiness feedback on departure and restore once from BFCache (9811ba0)
2.4.2 (2026-08-07)
- runtime: absorb transient recovery failures (5fe769b)
- runtime: carry sends through presence recovery (7f71048)
- runtime: drop the room id from the trusted-room invalid-message error text (e950cb8)
- runtime: exact invocation-bound connection tokens and page-owned send teardown (35fd884)
- runtime: make presence recovery handoff atomic (949575d)
- runtime: no provider-send replay, single-target reject, scoped failures (276658f)
- runtime: own content transport rejections (5d3dbb3)
- runtime: per-invocation send and connection owner results and correct release-cancel (6c468c4)
- runtime: per-operation structural lifecycle results and release step retry (32d4b36)
- runtime: preserve initial terminal rejection (3a0b611)
- runtime: recover through current-generation lifecycle (d9bb60e)
- runtime: register presence recovery before yielding (749f288)
- runtime: report superseded connection as cancelled and consume every task result (72f1ebd)
- runtime: settle native errors once (70963d3)
- runtime: single live release owner without a durable end journal (bd55864)
- runtime: strict single-owner release with World continuation and scoped errors (cb39417)
- runtime: structural lifecycle cancellation and release closure (8510dcc)
- runtime: surface terminal native errors (4eefc56)
- runtime: typed lifecycle outcomes and per-target send settlement (d393630)
2.4.1 (2026-08-05)
- message-list: release initial no-scroll message list repair (b543cb4)
2.4.0 (2026-08-04)
- app-button: settle reduced-motion identity directly (60e4fe9)
- app-status: order author updates across tabs (da63af8)
- app-status: preserve open ownership during delivery (f5e7237)
- app-status: use shared open order for deliveries (659308b)
- content: animate shell edge changes during opening (72a45a3)
- content: keep preview mounted during image switches (d69f9ed)
- content: separate shell translate ownership (446c153)
- danmaku: gate pushes by document visibility (286ffca)
- danmaku: limit presentation to visible documents (d078fa4)
- danmaku: synchronize visibility eligibility (fb50b58)
- app-button: fade launcher identity changes (4e7352c)
- content: toggle and replace image previews (82823dd)
- ui: show latest message author in launcher (36d6924)
2.3.0 (2026-08-03)
- app-button: preserve expanded shell top inset (34ab956)
- content: unify shell and launcher geometry (e3d0bc3)
- runtime: shorten error messages (231e330)
- content: highlight reactions and preview message images (e8d8ae4)
2.2.0 (2026-08-01)
- app-button: restore minimum edge margins (36d4cb3)
- app-status: centralize launcher state and projection (1c90b79)
- app-status: sync shared launcher state (b40259e)
- content: replace initialization loading toast with its error successor (71ff3d0)
- content: run Firefox persistence preparation without Web Locks (5d6aff7)
- danmaku: route app opening through private callback (19c1d43)
- notification: use focused current tab domain (bc06286)
- runtime: preserve error messages across extension transport (6ef8d74)
- notification: activate matching tab on click (4ae6bf5)
2.1.1 (2026-07-31)
- content: enforce initialization attempt deadline (c4e22ed)
- content: gate Runtime startup by attempt deadline (aef4244)
- content: keep initialization inside app shell (9eee4e9)
- content: preserve Toaster viewport placement (416c816)
- content: restore shell state before bootstrap (a245c06)
- content: restore single-shell initialization (f8b6f74)
- storage: preserve shell status on version reset (8f1f1d2)
2.1.0 (2026-07-31)
- content: defer runtime dependencies until ready (c318974)
- content: keep shell available during bootstrap (f43c151)
- content: keep shell visible through status loading (5b40948)
- content: preserve shell through runtime handoff (6f2fc86)
- persistence: use canonical IndexedDB identity (eec7195)
- runtime: settle cancelled history supplies (24dbf85)
- runtime: settle page connection completion (e661598)
- storage: lock message database deletion (b0254c2)
- storage: replace stalled preparation generations (838824b)
- storage: require cross-context preparation locks (f44f250)
- toast: preserve error default duration (34d10cf)
- reset incompatible persistence stores (e9eaead)
- storage: use version-neutral message identity (c983691)
2.0.1 (2026-07-29)
- background: select platform action API (f9efac9)
- chat-room: restore refresh after failed join (a602149)
- e2e: fence Firefox action operation inventory (1b1f6cc)
- e2e: preserve Firefox action content control (d52ae27)
- e2e: preserve Firefox tab identity across handles (d1397d3)
- runtime: fence connection feedback ownership (b8f5a4a)
- runtime: serialize exact binding release (2f60913)
2.0.0 (2026-07-27)
- feat!: release WebChat 2.0 (fff7da8)
- chat: normalize reconnect rejections (fb3d1dd)
- ci: derive Chrome context identity (5a7bb4a)
- ci: prepare isolated test workspace (a03e2d1)
- ci: prepare WXT before typecheck (56ebff5)
- fixed dependency, prevent build errors (35febaa)
- rewrite rendering displays blank (9f28641)
- service: isolate background RPC namespaces (b1fcb66)
- ui: animate notices and show reconnect feedback (d3906bb)
- ui: make reconnect feedback request-owned (a74d55b)
- ui: publish toast surface after subscription (f4d9c40)
- ui: replay active toast after remount (ce1693b)
- ui: replay active toasts after remount (6069170)
- ui: restore AppMain reconnect toast flow (4a26a59)
- ui: stop repeated readiness feedback (4f53598)
- ui: unify generic toast presentation (7f0ccd7)
- unwrap jsonr commonjs default export (1e441a0)
- WebChat 2.0 is not wire-compatible with 1.x clients.
1.9.7 (2025-10-06)
- toast: show synced message count in history sync notification (0dd074c)
1.9.6 (2025-10-04)
1.9.5 (2025-10-03)
- notification: improve notification logic and smart filtering (b2432df)
1.9.4 (2025-10-02)
- add namespace to notification proxy to prevent cross-extension conflicts (2429fd4)
1.9.3 (2025-10-01)
- add automatic IndexDB cleanup on extension update (7a1a622)
1.9.2 (2025-10-01)
- enhance site metadata extraction with more fallback selectors (71cf8af)
1.9.1 (2025-10-01)
- add URL sanitization to prevent XSS attacks (f03a679)
- optimize Virtuoso performance for message list (15e6706)
1.9.0 (2025-10-01)
- prevent setup component render before userInfo loads (cae3a08)
- add message send throttling and fix IME composition issue (2d3e6db)
- optimize drag/resize performance with RAF and prevent unnecessary re-renders (82577d0)
- optimize message sync with hash comparison (da8c411)
- use useLayoutEffect for beforeunload listener to ensure early registration (97e9574)
1.8.6 (2025-09-30)
- resolve ESLint warnings and errors (38e10ba)
- deduplicate join/leave messages to reduce spam (2782b43)
- improve virtual scroll and simplify message sending (411a38f)
- optimize app positioning and message sending performance (0bfaa07)
- optimize message sync with batched processing (f19bace)
1.8.5 (2025-05-30)
- firefox falls back to manifest v2 (943d64c)
1.8.4 (2025-05-22)
- performance optimization (dce12eb)
1.8.3 (2025-05-22)
- drag crash (54b7144)
- empty messsage focus input (403a522)
1.8.2 (2025-05-21)
- sync history message (e42f344)
1.8.1 (2025-05-21)
- z-infinity not working (192359b)
1.8.0 (2025-05-21)
- upgrade to tailwind v4 (9214708)
1.7.3 (2025-01-14)
- incomplete validation of message format (b8cf28b)
- optimize style (96f19bf)
1.7.2 (2024-11-18)
- notification type default
[@self](https://github.com/self)(7f94e37) - optimize online style (8db7959)
- optimize setup page message logic (442fc99)
- support icon click & optimize notification click logic (074fc74)
1.7.1 (2024-11-15)
- parse icon url error (7763f34)
- add number animation (eb37dd2)
- compatible with rectangular icons (b860b16)
- optimize scrollbar (c5185e4)
1.7.0 (2024-11-13)
1.6.6 (2024-11-09)
- the number of online users is inaccurate (c6301a8)
- optimize taost dark mode (00f0bd0)
- theme mode is compatible with website themes by default (6222e3f)
1.6.5 (2024-11-07)
- delete setup exit animation (d325be4)
1.6.4 (2024-11-07)
- check message format (f6864e0)
1.6.3 (2024-11-06)
- optimize image processing (9438a31)
1.6.2 (2024-11-04)
- incompatible with old data of userInfo, causing crash (d5ced07)
1.6.1 (2024-11-03)
- sooner style (7e49ec2)
1.6.0 (2024-11-03)
1.5.4 (2024-10-31)
- support reading image from the clipboard (362d7db)
1.5.3 (2024-10-30)
- insertion cursor position is incorrect (2987c2d)
1.5.2 (2024-10-30)
- optimize theme style (7b91944)
1.5.1 (2024-10-29)
- incompatibility with old data causes app to crash (bd07bdc)
1.5.0 (2024-10-29)
- support send image button (a01a93f)
1.4.0 (2024-10-28)
- delete bad z-index (bcdd435)
- optimize danmuku theme styles (4f6eb56)
- optimize header theme styles (025166e)
- optimize theme styles (2d051fe)
- reset app position when window resize (eee1735)
1.3.1 (2024-10-16)
- missing tabs permission (3cfc16c)
1.3.0 (2024-10-12)
- p2p use artico (a0a8462)
- support notification (9898718)
- notification supports clicking to open the source website (653229c)
1.2.2 (2024-10-11)
1.2.1 (2024-10-10)
- avatar is not displayed completely (de97d05)
- the text in the button is not visible in dark mode (d6652cb)
- the text in the textarea is not visible in dark mode (d75a191)
- change https://github.com/weizhenye/Danmaku to https://github.com/imtaotao/danmu (05ee49e)
- submit store flow (5235a6e)
1.2.0 (2024-10-08)
- support display of online user list (4c7137d)
1.1.6 (2024-10-04)
- it should not be sent when composing (8ee9ed6)
1.1.5 (2024-10-02)
- multiple tabs display duplicate online users (8b843ac)
1.1.4 (2024-10-02)
- firfox requestAnimationFrame error (65bf9b2)
1.1.3 (2024-10-02)
- add version link (4551ad2)
1.1.2 (2024-10-02)
- support unread status (1f44af8)
1.1.1 (2024-10-01)
- a tag use Link component (fce64b7)
1.1.0 (2024-09-30)
- support danmaku (999a55c)
1.0.29 (2024-09-29)
1.0.28 (2024-09-28)
- svg icon size (089d69a)
1.0.27 (2024-09-28)
- uniformly resizable size (3bb2b55)
- add isolate events (8fd5f04)
1.0.26 (2024-09-28)
1.0.25 (2024-09-28)
- test release flow (b10e9db)
1.0.24 (2024-09-28)
- test release flow (b4fe712)
1.0.23 (2024-09-28)
- test release flow (3d984fc)
1.0.22 (2024-09-28)
- test release flow (72137e8)
1.0.21 (2024-09-28)
- test release flow (444d24c)
1.0.20 (2024-09-28)
- test release flow (16c29e6)
1.0.19 (2024-09-28)
- test release flow (7b543bc)
1.0.18 (2024-09-28)
- test release flow (f4fb1f7)
1.0.17 (2024-09-28)
1.0.16 (2024-09-28)
1.0.4 (2024-09-27)
- add .zip to assets (273f1a3)
1.0.3 (2024-09-27)
- add packge.json & .zip to assets (8c01312)
1.0.2 (2024-09-27)
- add packge.json to assets (528b4fd)
1.0.1 (2024-09-27)
- add packge.json to assets (974b440)
- "use px units to fix small font-size in some websites root elements (1e904f1)
- css: prevent some styles from being inherited from the app (1a8d2ec)
- hasItemQuery not use get (15821ea)
- mesage time update (90253ef)
- message may not exist (59af3db)
- messageId not found (bb9eccd)
- options: fix meteors overflow (c7a3f3f)
- setup: setup page display timing is incorrect (f6277bc)
- userInfo: fixed infinite loop sync in firefox (9fca355)
- add setup page (578c79c)
- auto-growing Textarea (98268ce)
- implement join and leave prompts (ec62b11)
- message list implements virtual scrolling (c9388c7)
- peer message working! (6fb4035)
- setup: user and message sync (cc3424d)
- store message records (c029423)
- use ualy avatar (89e20a6)
- adapt to small screen (c9b60fc)
- add animation effects and add self join message (437c234)
- add custom scroll bars to scrollable content (d3fa441)
- add github link (7fb24a6)
- app show hide toggle (ca1ea11)
- AppContainer: dynamic width (3d45e46)
- custom toast style (f36ae70)
- message: user name ellipsis (8a18871)
- multiple peerRoom implementation (e373993)
- multiple Tab for the same user lead to duplicate joining issues (4205868)
- optimize avatar display (9d3a1d8)
- optimize style and update deps (e9e73bd)
- options: add meteors effect (ac165af)
- remove callbackToObserve (415b9f5)