Placeholder tiles are content: printing over the cell removes the tile - #156
Placeholder tiles are content: printing over the cell removes the tile#156tomlm wants to merge 1 commit into
Conversation
A Unicode-placeholder tile exists because its cell holds the placeholder character; the protocol offers no command to remove one tile, because overwriting the cell IS the removal. The tiles were stored as classic Kitty overlay runs, which text never modifies, so an application that drew a dialog across a picture kept the picture on top of it permanently and navigating away could not erase it. A third PlacementKind, Placeholder, carries the content semantics: the split that printing performs on Sixel runs now takes placeholder runs too (a one-column run simply goes), while classic Kitty placements keep their overlay behaviour and z-ordering untouched. Writing a placeholder cell also clears any stale tile another picture left there, since the cell write itself now splits. The test asserting the old behaviour encoded the bug rather than the protocol and now asserts the removal; classic-overlay survival under text is pinned by its own new test so the two semantics cannot be conflated again. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CxS1BnzZ6BhuGovMLNtRQH
Perf comparison — this change, against its base3 run(s) of each side, alternating on one machine. Allocation is a count and is gated exactly. Time is a measurement, so its gate is derived from the spread this job just observed in itself rather than fixed in advance.
Each corpus is gated at assemblies measured
Perf comparison — cumulative, everything since 2.0.03 run(s) of each side, alternating on one machine. Allocation is a count and is gated exactly. Time is a measurement, so its gate is derived from the spread this job just observed in itself rather than fixed in advance.
Each corpus is gated at assemblies measured
|
A Unicode-placeholder tile exists because its cell holds the placeholder character; the protocol has no command to remove one tile, because overwriting the cell IS the removal. Tiles were stored as classic Kitty overlay runs, which text never modifies, so anything drawn across a placeholder picture (a dialog, a new screen) kept the picture on top of it permanently.
Perf: the only hot-path-adjacent change is the kind test inside SplitPlacementsAt, which flipped from
!= Sixelto== Kitty— same single compare, and the method only runs on lines that hold placements.Found from the consumer side: Consolonia's kitty renderer overwrites occluded placeholder cells exactly as the spec prescribes, and the pictures stayed on top of its dialogs.
🤖 Generated with Claude Code
https://claude.ai/code/session_01CxS1BnzZ6BhuGovMLNtRQH