Skip to content

fix(web): keep Appearance font discovery responsive - #131

Merged
PsychedelicShayna merged 2 commits into
nightlyfrom
fix/appearance-freeze
Oct 22, 2026
Merged

PsychedelicShayna merged 2 commits into
nightlyfrom
fix/appearance-freeze

Conversation

@PsychedelicShayna

@PsychedelicShayna PsychedelicShayna commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Note

GPT-6.1 Sol on behalf of PsychedelicShayna

What

Keep closed monospace font pickers from classifying every installed family when Appearance opens. When a picker opens, classify fonts in cancellable, approximately 8ms batches and reuse completed measurements across pickers and remounts. Display loading status while classification runs. Saved font choices, setting writes and live previews are unchanged.

Why

Refs #126.

The existing closed-picker render filters the full installed-font catalog through a canvas probe that can perform 32 measurements per family. Already-granted font permission starts enumeration on mount, so opening Appearance enters that synchronous work without opening a picker. Remounting repeats it. The repair removes that work from closed-picker rendering and yields to input between opened-picker batches.

Testing

Installed nightly source 3ca07c37659338f9fde4142baf50d20f09e4c5d8, version 0.0.42-nightly.20261022.39742893669.1. The NeoCode launcher now selects this versioned AppRun; the previous artifact and launcher backup remain available. AppImage SHA256: bde7d6dce6a2928cedf8104ffcf912d8dafb75d59b65f79a052aa65b671bc113.

Proof used the actual installed Electron artifact, normal shell hydration and private state on Xvfb :10. The owner's live window, database and wallet were not used or restarted.

PR #131 is delivered. Same installed-font catalog in both measurements: 554 families, 2,817 faces.

Appearance navigation Before, 3c5789f Installed, 3ca07c3
Longest renderer task 7,807 ms 156 ms

This is one measured before/after case, not a general benchmark. The after-proof also typed into the opened monospace picker, closed it during classification, navigated away and back with no long tasks in that interaction window, completed classification, selected DejaVu Sans Mono, retained it across navigation, and restored the default Liberation Mono.

Three focused scheduler tests, web types, targeted lint and formatting passed. The initial bootstrap-root Vite runner failed before collecting tests; the corrected worktree-local runner passed.

Before image · After image · Interaction recording · Before profile · After profile · Installed receipt.


  • vp check and vpr typecheck pass (CI runs both; locally run only the checks for the touched scope, per AGENTS.md › Verifying). Focused checks above; no full suite.
  • Tested locally. Installed private-state proof and focused checks are recorded above.
  • Before/after images (video for motion) uploaded to GitHub for UI changes, not committed (if user-facing). Linked above.

Model: openai-codex/gpt-6.1-sol. Harness: NeoPi.

Installed integration: GPT-6 Astra in NeoPi; focused execution by GPT-6 Luna.

Stop measuring every installed font when closed monospace pickers mount. Only classify fonts after opening a picker, yield between short measurement batches, cancel on close, and reuse completed measurements across code and terminal pickers and Appearance remounts. Saved font preferences and the live previews remain unchanged.

Add isolated regression coverage for yielding to other UI work, cancellation, family order, and measurement reuse. No tests, typechecks, lint, formatters, builds, or GUI checks were run, as required by the parent assignment. Integrated verification belongs to the parent.

Model: openai-codex/gpt-6.1-sol
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
@PsychedelicShayna PsychedelicShayna added bug Something isn't working priority: p1 High value or prerequisite for several issues agent: finished The agent's part is done; not necessarily mergeable labels Oct 22, 2026
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M labels Oct 22, 2026
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ The exact PR base did not have a successful artifact. Baseline uses the latest successful main measurement shown below.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.5 KiB 13.5 KiB −26 B (−0.2%) 15.1 KiB ✅
Codex Thread snapshot wire 7.1 KiB 7.1 KiB +12 B (+0.2%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.4 KiB 6.4 KiB −38 B (−0.6%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 56.3 KiB 56.2 KiB −88 B (−0.2%) 66.4 KiB ✅
Codex Live turn messages 10 8 −2 (−20.0%) 21 ✅
Claude Total thread wire 13.5 KiB 13.5 KiB −17 B (−0.1%) 15.1 KiB ✅
Claude Thread snapshot wire 7.1 KiB 7.1 KiB 0 B (0.0%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.4 KiB 6.4 KiB −17 B (−0.3%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 57.0 KiB 57.0 KiB 0 B (0.0%) 66.4 KiB ✅
Claude Live turn messages 9 9 0 (0.0%) 21 ✅

Baseline: 3c10e1c · PR result: c1fc2fc · Source CI: failure

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Record the upstream picker change and its fork-owned scheduler in the touch ledger. Installed baseline profiling observed a 7,807 ms renderer task while opening Appearance with 554 installed font families. The repair avoids that closed-picker scan and yields during an opened picker scan.

Focused installedMonospaceFonts.test.ts passed 3 tests using the worktree-local Vite runner. Web typecheck and targeted lint/format checks passed. The first bootstrap-root runner attempt failed before collecting tests; no assertion failure was hidden. Installed after-proof follows the nightly artifact batch.

Refs #126

Model: openai-codex/gpt-6-astra
Co-authored-by: GPT-6 Astra <noreply@openai.com>
@PsychedelicShayna
PsychedelicShayna merged commit 45e70ed into nightly Oct 22, 2026
15 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent: finished The agent's part is done; not necessarily mergeable bug Something isn't working priority: p1 High value or prerequisite for several issues size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant