Cap each screen's Kitty placement table #113
No reviewers
Labels
No labels
Area/ci
Area/cli
Area/client
Area/client-core
Area/daemon
Area/deps
Area/docs
Area/grid
Area/manual
Area/nix
Area/protocol
Area/pty
Area/render
Area/shaping
Area/skills
Area/transport
Area/vt
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Performance
Kind/Security
Kind/Testing
perf-regression-accepted
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Blocked
Status
Need More Info
Status
Upstream
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
felis-terminal/felis!113
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/placement-cap"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #88.
A placement costs no pixel bytes, so the image store's byte cap never bounded the placement table: repeated puts grew the daemon and every attached client's mirror for the life of the session. Each screen now keeps at most 16384 placements, direct and Unicode-placeholder together; a put past that evicts the oldest, announced like a delete, and an id-less image left without placements is deleted with it.
The table is now keyed by
(image_id, placement_id)with a per-image index and a shared sequence number, so a flood at the cap stays sublinear on the daemon. The sequence numbers survive an in-place upgrade dump, so restore evicts the same placement.