# Evidence-only pinned-font remediation

Target [#23216](https://github.com/pingdotgg/t3code/pull/23216) / [#23204](https://git.cafe/pingdotgg/t3code/pulls/23204). Current clean head [8ac56474a3](https://git.cafe/pingdotgg/t3code/commit/8ac56474a31b840c4b149d58730a0a34cf98e3df); baseline [b5a226e49c](https://git.cafe/pingdotgg/t3code/commit/b5a226e49c52ecab4ddc2d678a7012d97e651a6a).

Added ONE controlled current-VM pinned-font S1 dark1440 pair from exact source commits and the final committed fixture. **This is the new reconstruction reference, not a claim to reproduce the historical font or replace its pixels. Fresh independent pass3 is pending; its auditor decides the reconstruction verdict.** No code-readiness upgrade: both reviewers' separate seeder symlink guard FIX_FIRST remains unchanged.

Pair full-frame1280×889: **9,486 changed pixels at threshold0; 4,610 at max-channel>16**. Header0/0; F1 user8661/4146; assistant control0/0; F2 code/composer/scroll control0/0; lower visible legacy-user text825/464. Differences are affected user parser output and its natural bubble width. No masking, alignment, CSS override, DOM presentation rewrite, source alteration, or pixel editing. Derived diff files are explicitly labelled.

Font preferences: Arial interface+composer, Liberation Mono code; interface16/prompt14/code13, smoothing true. Native installed faces are LiberationSans/LiberationMono regular, bold, italic and bold-italic. The bundle pins all eight asset SHA-256s, source URL, package SHA-256 and license. Package bytes were downloaded from Ubuntu's official archive and verified against published metadata; extracted fonts exactly match installed bytes. No package/global-font/config install. Final page FontFace count0. Both metadata files have matching canvas widths, viewport1440×1000, DPR2, scale1, Chrome154/Linux/UTC, dark, frozen2026-10-21T12:00Z, BODY focus, scrollTop0, two tables and closed panels. The settled scroll control is identical. The footer model is the fixture's GPT-6-Astra/Medium/Full access; no provider was invoked.

Historical original after vs current pinned after remains29,365/20,444, including old font and project-icon environment differences. The historical resolved font was not identified. Quick page-local DejaVu and Noto diagnostic attempts failed full-frame match (37039/23125 and29380/21642); these candidates were removed and are not called identical substitutes. The user's clarified proof shape avoids further font archaeology.

## Artifact index

- [Exact reconstruction recipe](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1ecd7ebc148a082c/recipe.md)
- [Reproducible evidence bundle: fonts, package, fixture, scripts, metadata, diffs, checksums, integrity and cleanup](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b960854fc93b9b75/pinned-font-reference.tar.gz)
- [Full-frame and region metrics](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c0bd1ac2fbc451a1/pair-metrics.json)
- [Font source, package and eight asset hashes](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/99bd719c08c67647/font-assets.json)
- [Before reference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/852a52452e76b7bc/before-dark-1440.png)
- [NEW AFTER reference for independent pass3](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/886fbeff9cb59338/after-dark-1440.png)
- [Diff0 absolute RGB amplified ×8](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f861d2d0a2253868/after-dark-1440-diff0-x8.png)
- [DiffT max-channel >16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3bb8f6aed94b3462/after-dark-1440-diffT16.png)

Bundle SHA256SUMS covers every included file. The public bundle contains only synthetic proof assets and font binaries/licenses, never copied .t3 state or auth. Stopped scratch homes and archives remain under `/tmp/pr-23216-font` and `/tmp/pr-23216-proof2/source`; use a new migrated scratch home for pass3, not a write to the previous capture homes. Retained source setup: before `/tmp/pr-23216-font/before-source`, after `/tmp/pr-23216-proof2/source`. Explicit isolated home is mandatory. Recipe calls out empty non-Git .t3 parent directory because seeded project icon resolution depends on workspace location.

## Fresh matrix disposition

| Evidence | Current disposition |
|---|---|
| Original four S1 static pairs | SUFFICIENT history retained; old resolved fallback identity unknown |
| Existing I1–I5/R1/C1 | SUFFICIENT reuse; no recapture |
| Existing supplemental M1/M2 | SUFFICIENT reuse; no recapture |
| Added current-VM pinned S1 dark1440 | DELIVERED controlled before/after and full-frame diffs |
| RECONSTRUCTION | NEW REFERENCE READY; fresh independent rebuild of its after pending |
| Plain mobile | Accepted maintainer EAS iOS provenance; no additional platform capture |
| Electron | Excluded; no desktop paths changed |
| Code readiness | FIX_FIRST, unchanged seeder symlink guard |

## Categorized FRICTION

- **ENVIRONMENT / historical:** default system-ui/sans-serif now resolves Liberation Mono; the old capture is proportional and recorded only a stack. Failed historical-font candidate diagnostics are retained in scratch. Current reference explicitly selects known native installed families and documents bytes; no old-font identity assertion.
- **CAPTURE / resolved:** initial before screenshot missed the real floating scroll control after too-short settling. Superseded by a recapture after100→0 scroll with150ms/700ms settling; both controls now same rectangle and opacity1. After's extra settling caused0 changed pixels. Final pair has no unexplained visible delta.
- **AUTH / resolved:** copied environment identity plus restarted-server browser auth required valid token entry in the real pairing form. Native waits timed out60000ms and15000ms while the page was pairing; one later15000ms shell wait also timed out during startup. A snapshot identified the state and real pairing/navigation recovered it. No fallback browser or provider was used. Fresh incognito tabs have independent client preference state and must be configured individually.
- **TOOL / resolved:** native evaluate rejected trailing whitespace on the copied freeze script; trimmed retry succeeded. A metadata evaluate referenced an unset scratch variable; corrected measurement uses the supported settings getter. One scratch-only apply_patch attempted delete+add of the same metadata path and was rejected; direct scratch JSON write succeeded. None affected source or final captures.
- **FIXTURE / resolved:** seeder correctly rejected a scratch home named before-home; moved to a real isolated `.t3` and reran on both stopped homes. No guard bypass or live-state access.
- **SAFETY / separate code issue:** default-home symlink guard defect remains unchanged, outside this evidence-only scope.

## Cleanup and boundaries

All owned retained server/font sessions stopped; all20 recorded PIDs absent. Ports6233/14273/7373/15413/18316 closed. All three owned native tabs closed through normal lifecycle. The pair's source hashes match every diff file at the named commit (including baseline absence of later fixture files). Worktree clean at exact requested head. No implementation edits, commits, pushes, forge comments/body edits, watches/polls, merges, provider turns or terminal sessions. Existing stopped capture homes were read/copied only; all writes were to newly owned scratch homes. Native preview itself wrote screenshots through its normal app-owned browser-artifact service; no manual writes to live T3 state.

Skills: [test-t3-app](/home/ubuntu/t3code/.agents/skills/test-t3-app/SKILL.md), [ghdrop](/home/ubuntu/.codex/skills/ghdrop/SKILL.md). Model/harness: GPT-6.1 Sol / Codex through T3 native preview. Bounded task completed in about13minutes; no delegated agent or top-level thread created.

Before — current-VM pinned-font baseline:

![Before: current-VM pinned Arial and Liberation Mono baseline](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/852a52452e76b7bc/before-dark-1440.png)

After — current-VM pinned-font final head, pass3 reference:

![After: current-VM pinned Arial and Liberation Mono final head](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/886fbeff9cb59338/after-dark-1440.png)
