Repository navigation
fix(ui): align connection settings and correct dark render background - #174
Merged
Merged
Conversation
Lucas1479
marked this pull request as ready for review
October 10, 2026 16:15
This was referenced Oct 10, 2026
Lucas1479
added a commit
that referenced
this pull request
Oct 10, 2026
Prepare the source prerelease `v0.16.0-alpha.0` after #174, comparing against `v0.15.2-alpha.0`. Synchronize Python/Electron versions, release notes and source-package guides; run packaged settings-upgrade checks against the previous release. Release tracker: #176. Publication and final asset verification are tracked separately from merging this PR. Update compatible Electron tooling dependencies identified by the release audit: concurrently/shell-quote, http-cache-semantics and joi. Preserve the real Codex permission probe's terminal failure evidence and correct its evidence note type. Validation: 388 Electron tests and build; 11/11 native model-less desktop checks; 17/17 extended role GUI checks; previous-release native encrypted settings upgrade; native composer/startup settings GUI; 13 Windows lifecycle contracts; real Codex allow/deny (8/8 each) and ongoing Chat/Work status/amendment (10/10); real Electron AUIP full game/restart/resign/leave/history (37/37); four real GPU voice replies with nonzero physical device writes. All 17 checks on the first candidate passed, including three full Python shards, platform/profile checks and extracted-source package startup. Final-head checks run after recording acceptance and repairing obsolete probe observations. The local full Python run retained two asset-junction setup failures; the junctions were removed and affected suites passed on clean recheck. This is not relabeled as a passing full local invocation. Full clean CI is separate evidence. The Work probe now opens its Project through the Session API and checks durable input receipts instead of the retired steer_queued event; the audio probe observes the actual PortAudio stream write boundary for complete and streaming playback. No production routing, permissions or voice code was changed for these test repairs. Outstanding dependency review: Pi 0.86.1's upstream shrinkwrap still installs brace-expansion 5.0.9. A lockfile-only repair did not change the installed version and was discarded. Remaining Electron moderate findings are in the build tooling chain. Neither audit is described as clean. No uncommitted local voice configuration, credentials, runtime sessions or external media are included. `docs/alpha-0.16-acceptance.md` records failed attempts, corrections, outcomes and limits. Microphone/listening, long-run stability and matched previous-release latency A/B are not claimed. Publication uses a clean merged commit, source manifest and verified SHA-256 assets.
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
ACP and MCP editors used separate layouts from the rest of Settings. The dark-theme Render pane also composited its transparent character document over a white canvas because the embedding iframe and its document used different color schemes. Editing an ACP name and opening another agent silently discarded the draft, and switching from a long settings section opened the next section at the old scroll position.
Align both editors with the existing Settings field rows, cards, theme tokens and status pills. Group low-frequency options, associate every field label, localize the guidance, and give save/cancel/remove distinct actions. Pending writes lock the form; unsaved edits require a discard decision before changing editors or leaving through Settings/app navigation. ACP removal has an inline confirmation. Section navigation starts at the top. The embedded Render pane now matches the unthemed render document’s color scheme and composites over a pure black stage in the dark theme, while retaining the light-theme background.
Linked Issue for product-semantic or public-contract changes: none; this is the requested repair of existing Settings presentation and editing behavior.
Change class
Owning layer: Electron renderer and its embedded Render surface styling. Shared primitives own presentation; ACP/MCP still own their drafts and complete-record saves. The app shell consults the Settings navigation decision before user navigation or projection toggles.
User-visible effects:
#000000) character backdrop in the dark theme, without changing character pixels, alpha, wallpaper rendering or reloading the frame when the theme changes.Compatibility: no changes to stored schemas, defaults, launch behavior, credential references, encrypted MCP values, Provider-only bindings or backend-restart application. The default theme remains
wallpaper-slice(dark). The change does not introduce field-by-field autosave. OS-window-close handling and unrelated character-editor drafts are outside this scope.Evidence
npm test: 388 passed at2b2b38c.npm run build: passed, including TypeScript and generated-configuration checks. The existing bundle-size advisory remains.git diff --check: passed.rgb(0, 0, 0), lightrgb(246, 247, 249), and live theme switching after matching the iframe’s normal color scheme. The render engine and its transparent canvas are unchanged. See the CSS color-scheme compositing rule.2026.10.07-color-crop-v3) in the production render page with production Electron CSS and synthetic render events. Visually checked idle, wind/hair and speaking clips against black; dark → light → dark retained the same iframe (one load), with animation progressing and no console warnings/errors. Local screenshots captured. This verifies asset rendering/compositing, not a live voice conversation or other character backends.No Python, dependency or live-service behavior changed. No live ACP agent or MCP server was launched during visual verification.
Final check