Priority: P2
Evidence: Source-supported performance investigation; no release speedup measured
Baseline: v0.23.0 source 37933f9, audited 2026-09-05. Native execution/compile probes used Rust 1.98.0 on aarch64 macOS unless explicitly stated otherwise.
Problem and Reproduction
Each frame clones the line vector and builds a visual map; accepted paste repeatedly counts/indexes the growing line per grapheme. Undo retains bounded-count full-document snapshots. #95's no-second-wrap-on-unchanged-frame branch is present; the remaining costs are not the old double-wrap claim.
src/context/widgets_input/textarea_progress.rs:68 · src/context/widgets_input/textarea_progress.rs:317 · src/widgets/input.rs:1077
Scope
- Benchmark idle/edit/end-vs-middle paste on1KB/100KB/1MB ASCII/CJK/ZWJ documents.
- Consider bulk insert, versioned/lazy visual indexing and byte-aware/delta history only where justified.
- Preserve externally mutable text state, cursor/grapheme behavior and response.changed semantics.
Expected Effect
Reduce latency and memory copies for large editors while retaining exact editing and undo behavior.
Acceptance Criteria
Boundaries and Dependencies
Do not substitute a naive dirty flag that changes net-result or public-mutation semantics, or mandate rope/arena adoption without evidence.
Related closed work: #94, #95, #91. This is a scoped follow-up at the audit baseline, not a claim that every prior fix is absent.
Tracking: #366. This issue records unresolved work, not an implemented fix.
Priority: P2
Evidence: Source-supported performance investigation; no release speedup measured
Baseline: v0.23.0 source 37933f9, audited 2026-09-05. Native execution/compile probes used Rust 1.98.0 on aarch64 macOS unless explicitly stated otherwise.
Problem and Reproduction
Each frame clones the line vector and builds a visual map; accepted paste repeatedly counts/indexes the growing line per grapheme. Undo retains bounded-count full-document snapshots. #95's no-second-wrap-on-unchanged-frame branch is present; the remaining costs are not the old double-wrap claim.
src/context/widgets_input/textarea_progress.rs:68 · src/context/widgets_input/textarea_progress.rs:317 · src/widgets/input.rs:1077
Scope
Expected Effect
Reduce latency and memory copies for large editors while retaining exact editing and undo behavior.
Acceptance Criteria
Boundaries and Dependencies
Do not substitute a naive dirty flag that changes net-result or public-mutation semantics, or mandate rope/arena adoption without evidence.
Related closed work: #94, #95, #91. This is a scoped follow-up at the audit baseline, not a claim that every prior fix is absent.
Tracking: #366. This issue records unresolved work, not an implemented fix.