# Grapheme shortening: independent source review Codex-ytr83r /root/wsl_startup_review, 2026-09-11. Read-only review against HEAD `108b1dd` in `.local/canvas-union-ytr83r-20260911`; scope exactly `crates/oa-desktop/src/views.rs`, `crates/oa-desktop/Cargo.toml`, and `Cargo.lock`. Root owns lock resolution and all execution gates. **Final verdict: no remaining actionable finding in the three reviewed files.** The initial dependency-record finding was resolved by root and independently reread. The shortening implementation and test expectations show no additional actionable defect in this bounded source review. No tests/compiler, Cargo, native UI, source edits, Git/index or WSL actions were performed by the reviewer. ## Finding and root correction boundary The initial formatted candidate adds `unicode-segmentation = "1.13.3"` to desktop Cargo.toml, but its Cargo.lock was unchanged from HEAD and lacked the direct desktop dependency edge. The package itself already existed at locked version 1.13.3 with checksum `c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8`. An existing transitive package entry does not record the newly declared direct edge. Root confirmed the finding; offline no-deps metadata had not resolved it. This needed correction before locked gates and a final input freeze. Root preserved the premature input freeze identified by `6c41f7ea` as pre-resolution history and reported that no tests/build executed against it. Full offline metadata with an explicit Windows target filter completed at 20:41:05 UTC, exit 0. Independent final three-file diff/readback confirms Cargo.lock changes by exactly one added `"unicode-segmentation"` entry under oa-desktop; no package, version, checksum or unrelated dependency changes occurred. Views/Cargo.toml hashes remain unchanged. Root creates a separate corrected input freeze. The reviewer did not edit the lockfile. ## Shared shortening semantics and test review `short` retains exactly its existing `split_whitespace().collect::>().join(" ")` normalization. It changes the length unit and retained prefix from Unicode scalars to extended grapheme clusters, via `graphemes(true)`. Both the count and prefix use the same segmentation. The cached locked library's `UnicodeSegmentation::graphemes` documentation explicitly defines `true` as extended grapheme boundaries; its primary source is `.local/toolchain/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/unicode-segmentation-1.13.3/src/lib.rs`. Unshortened normalized text is returned without Unicode normalization or rewriting. Over-limit output retains `limit.saturating_sub(1)` whole clusters plus one ellipsis. ASCII and single-scalar CJK behavior are unchanged. Empty/all-whitespace input stays empty, even at limit 0. Nonempty input at limit 0 remains the historical ellipsis. At limit 1 a single cluster is preserved; longer text yields an ellipsis. Preserving a multi-scalar single cluster at limit 1 is the intended Unicode correction, not scalar-byte compatibility. The native checkpoint names exactly match the tests: - OA `abcdefghijklmnope\u{0301}尾`: 16 ASCII clusters, one accented e cluster, then 尾, totaling 18. Limit 17 correctly returns the 16 ASCII characters plus ellipsis; 18 and 19 return the original accented name. - SA `abcdefghijklmnop👩\u{200d}🔬 tail`: 16 ASCII clusters, one joined emoji, a space, and four tail letters, totaling 22. Limits 17/18/19 correctly retain respectively the ASCII prefix, that prefix plus the complete emoji, and that prefix/emoji/space, followed by ellipsis. Limit 22 returns the full original. The added tests exercise both sides of the cutoff for combining acute, ZWJ emoji, skin-tone modifier and regional-indicator flag clusters. ASCII/CJK exact and below/above limits, tab/CRLF/em-space collapse, empty strings and limits 0/1 are covered. These checks substantiate the actual defect and compatibility policy; this review does not claim their execution. This shared helper affects presentation summaries across callers, not stored names, model IDs or source contents. No other production statement in views.rs changes beyond the import and helper; four focused tests are added. The dependency declaration adds no feature override and resolves to the already locked package version, with its direct edge now present. ## Rendering limits Grapheme-safe prefixes do not measure shaped pixel width or ensure a font renders a joined sequence as one glyph. Fixed clips may still cut a complete retained cluster, and the final ellipsis can lie outside the clip. Existing clip/transform behavior is unchanged. Corrected native appearance, width containment and fallback-font behavior require the matching new GUI's checks; source-level cluster correctness and source preservation cannot replace those observations. ## Initial reviewed identities | Path | Bytes | SHA256 | | --- | ---: | --- | | crates/oa-desktop/src/views.rs | 50449 | `FAFF0E813A12F89C32034A5AA6D0A83B8ADCF19CB68369B948760CFF195E0098` | | crates/oa-desktop/Cargo.toml | 874 | `E4FC5D2C14D9AA84EC493D0C6BEF47A1046B4929CA502E4BD096C27D4FE22587` | | Cargo.lock, missing direct edge | 119453 | `2B960242C33EB839FF008D01731F6D5CDB4E047CA8CD6E13151CBF9C09913510` | ## Final reviewed identities | Path | Bytes | SHA256 | | --- | ---: | --- | | crates/oa-desktop/src/views.rs | 50449 | `FAFF0E813A12F89C32034A5AA6D0A83B8ADCF19CB68369B948760CFF195E0098` | | crates/oa-desktop/Cargo.toml | 874 | `E4FC5D2C14D9AA84EC493D0C6BEF47A1046B4929CA502E4BD096C27D4FE22587` | | Cargo.lock, corrected direct edge | 119478 | `78B405543FB7B66287457E9476CA1E555838FCDADADE114AEAB9B76597726787` | Final scoped diff whitespace checking passed. This signoff identifies source and dependency-record correctness within the bounded review; root's later tests/build/native results remain separate evidence.