Repository navigation
Conversation
Keep the latest adjacent move for each wheel and preserve control-message boundaries. Format typed events on the output thread. Add a blocked-consumer scenario covering ordering, overflow, shutdown and writer replacement.
Minify production bundles, retain English and Chinese Electron resources, and use UDBZ compression for the macOS disk image. Preserve HEAD through the app protocol so overlay asset probes receive headers only. Exercise production overlays and custom-emote lifecycles against packaged ASAR files in both platform jobs. Build and retain the Windows installer alongside the existing macOS artifact.
Create temporary application data before launching Electron and select it before the ready event so scenario storage remains isolated.
Merge current main and keep the contribution within packaging and asset storage. Preserve input, overlay, room, and CI behavior from main. Store ping sounds as lossless FLAC, retain their extraction and consumers, minify production bundles, and restrict packaged locales to English and Chinese. Retain the independent Web Audio comparison scenario.
ZenAlexa
marked this pull request as ready for review
October 17, 2026 05:44
Restore the queue, modifier, helper configuration, resource-lifetime and asset-probe changes alongside the packaged asset optimizations. Preserve current Linux, room protocol, room controls, and kept-ping behavior. Exercise the current signed room protocol and release its per-peer ping, transfer and ballot budgets on leave. Run the packaged behavior scenario on the existing Linux CI path as well as Windows and macOS.
Preserve context-helper builds, the current dependency and resource layout, and protocol version 6 in the output lifecycle scenarios.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Reduce package size and repeated work along the input-to-overlay path. The contribution covers packaging, native output, helper configuration, overlay resource lifetimes, and asset loading on current main.
Current Linux support, signed room messages, room text and voting, and kept pings remain in place. Existing native and application behavior scenarios cover the restored runtime changes; CI is configured to run the packaged scenario for Windows, macOS, and Linux.
Validation
November 1 visible-mark lifetime update
revision
901a8120f842gives visible pings and field outlines one expiry owner. explicit clear, fade completion, and capacity eviction remove the element and cancel its pending expiry together. the existing delayed-glow queue retains ownership of outlines that have not appeared. kept marks preserve their caller-owned lifetime.bundled the complete current overlay source and exercised it in Chromium 156 with an injected IPC boundary, real DOM and timers, and served repository assets. at baseline
f4786b75d8af, 100 unkept teammate ping/clear cycles left 100 expiry timers after the elements disappeared; clearing 20 displayed field outlines left 20 expiry timers. the current revision leaves zero in both cases.the current browser scenarios also passed mixed ping/outline clear and fade, capacity eviction of outlines by a ping burst, repeated removal after clear, replacement preservation, cancellation of a delayed outline before a later outline appears, and normal expiry. the 1,000-ping burst retained 60 visible pings and 60 expiry timers, then reached zero. the packaged scenario now covers mixed clear/fade and outline eviction, and its final empty-state check waits for the existing idle-notification timer to settle.
native helper verification passed 692 helper checks, 533 context checks and 26 macOS callback checks, plus the output-queue and modifier scenarios. all 12 current FLAC files decode to the same s16le PCM bytes as current main's WAV files using FFmpeg. TypeScript syntax parsing passed for the changed source and scenario files. full dependency-aware type checks, the complete TypeScript suite, native Electron/packaged-ASAR execution and physical input/audio checks have not been repeated for this revision.
The preceding integration
f4786b75d8afincludes mainc97fe77, including the 0.6.0 teammate feature. Kept the new context helper, its native tests, the MCP/teammate build entries, PDF resources and upstream dependency versions alongside this PR's output/decision scenarios, asset handling and packaging settings. Updated the output scenario's four ready-message expectations to the current helper protocol version 6; the old expectation reproduced the integration failure before this update.Current integration checks on macOS arm64:
npm run typecheckpassed.npm testpassed 2,045 tests across 129 files; 5 tests were skipped.npm run test:helperpassed 692 helper checks, 533 context checks and 26 macOS callback checks. The output scenario passed backpressure, message boundaries, capacity, shutdown and writer-failure cases. The modifier scenario passed 2,048 held-key combinations and 28,672 toggle checks.npm run buildcompleted for main, preload and all renderer entries, including the new teammate surface.Dependencies were installed from the current lockfile with
--include=dev; the shell'sNODE_ENV=productioninitially omitted the development types. The current integration has not repeated the desktop input/audio scenarios, installer/packaged-ASAR checks or size/latency measurements. The results below remain tied to their earlier revisions.Earlier validation
Integrated main
efa3fe63in3e02f797on 2026-10-23. The upright cyan On My Way texture, extraction rule and existing regression are retained. The design table combines that upstream texture with this contribution's FLAC sounds.On macOS arm64 with Node 22.23.4 and Electron 44.5.1:
The macOS disk image, signature verification, packaged-ASAR scenarios, 44.1/48 kHz Web Audio comparison and sanitizers reported at
b7aa225aand earlier revisions were not repeated for this merge. This round used built development assets and left system permissions and the existing user profile unchanged.Please run the Windows and Linux CI jobs and verify physical input/audio and installer/upgrade behavior on the supported platforms. Those checks remain outside the current local run.
Checklist