iris: drop bundled Noto Sans, match Compose's platform-font fonts
Iris's call: "remove the font for now; just match what compose does." Removes the six embedded Noto Sans/Noto Sans Mono TTFs (3.6 MB) that TextData::default used to register ahead of the platform's own fonts; fontique's system font discovery was already on by default and now runs unshadowed (Roboto/Roboto Flex on Android, fontconfig on the desktop). .so -3,748,136 bytes (11,193,608 -> 7,445,472), matching the estimate. Verified fallback still lands on visible tofu for CJK/emoji rather than blank, and flagged (not fixed) a fontique Android backend gap that leaves Monospace unresolved -- see RUST.md's "Platform fonts (2026-09-07)" and DECISIONS.md/IRIS.md's dated entries.
This commit is contained in:
1 parent
690161e5e9
commit
896c93a59a
12 files changed
+193
-312
No files matched your search
@@ -5,6 +5,40 @@ they can be judged and reversed later. Detail lives in RUST.md (and IRIS.md
|
||||
for iris API changes); this file is only the summary. Newest first. Items
|
||||
marked **DEFERRED** are ones the agent chose not to decide alone.
|
||||
|
||||
## 2026-09-07 (platform fonts, not bundled ones)
|
||||
|
||||
- **Iris's own decision, carried out as directed**: removed the 3.6 MB of
|
||||
bundled Noto Sans/Noto Sans Mono TTFs from `iris-core` and load text
|
||||
from the platform's own font collection instead (`fontique`'s system
|
||||
discovery, already on by default). Matches what the Compose app does --
|
||||
it takes body text from `FontFamily.Default` and code text from
|
||||
`FontFamily.Monospace`, both platform-resolved, and ships no text font
|
||||
of its own. Rejected alternative (the one this pass had left open
|
||||
2026-09-06): subsetting the bundled Noto Sans to Latin/common
|
||||
punctuation instead of removing it outright, which would have kept
|
||||
identical rendering across devices for a smaller (not zero) size cost;
|
||||
Iris chose to match Compose instead.
|
||||
- `.so` **-3,748,136 bytes** (11,193,608 -> 7,445,472), matching the
|
||||
original 3.6 MB estimate. Fallback still lands on the platform's own
|
||||
tofu for a codepoint no resolved face has (checked with CJK + emoji on
|
||||
desktop) rather than blank space, so the UI_RULES unknown-glyph rule
|
||||
still holds.
|
||||
- **Flagging for Iris, not blocking on it**: this fontique version's
|
||||
Android backend never resolves the `Monospace` generic family at all
|
||||
(confirmed on this checkout's emulator, `mono=None` in the startup
|
||||
diagnostic) -- a pre-existing ordering bug in fontique's own
|
||||
`fonts.xml` parsing, not something this change introduced, but this
|
||||
change is what stopped masking it (the bundled mono font used to be
|
||||
registered ahead of the broken platform lookup, so it always won).
|
||||
Effect: code blocks and the tool-card chevron marks fall through to
|
||||
the same face as body text on Android instead of a genuinely
|
||||
monospaced one -- still visible, not blank, just not monospaced.
|
||||
Compose does not share this gap; it resolves `FontFamily.Monospace`
|
||||
through Android's own `Typeface.MONOSPACE`, not through fontique.
|
||||
docs/RUST.md's "Platform fonts (2026-09-07)" has the full account and
|
||||
why a fix (an OEM-specific named-family pin, or patching around
|
||||
fontique) is left as a follow-up rather than done in this pass.
|
||||
|
||||
## 2026-09-06 (how a tool call looks, P1b)
|
||||
|
||||
- **A card that never got a result says "no result", in yellow, and it is
|
||||
|
||||
Reference in new issue
Block a user