feat(aterm): stand the role's creature in the window background #1417
No reviewers
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os!1417
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/zc49-creature-background"
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?
The seat creatures already ship as
aterm/iconsand reach only the Docktile. Every window now draws its own role's creature behind the session,
so a screen of seven fullscreen kitties reads as seven agents rather than
seven dark rectangles with different hues.
Shape
kitty alpha-blends a background image over the window background and then
draws that background back over the result at
background_tint, so onenumber decides how much art survives. 0.91 leaves the creature losing to
the session text at a glance and rewarding only a second look, picked
against the real identity card rather than in the abstract.
The art is
aterm/icons/<role>.icnsread for its largest PNG rather thana second committed copy. One art file, two consumers, and a re-drawn
creature cannot leave the background stale. No new bytes land in a public
repository for art it already carries.
kitty has no anchor for a background image, so placement is baked: the
512px art is placed once, unresampled, on an otherwise empty 16:10 plate
wide enough that
cscaledleaves it a quarter of the window, low andright of where the card and the session text sit. kitty does every scale
on the GPU, so the shipped 512px stays the only copy of those pixels and
aterm needs no resampler and no new dependency.
The plate caches under
~/Library/Caches/aterm/creaturebeside the soundsamples, written to a staging name and renamed, since kitty opens a
half-written plate as a blank window.
What cannot stop a window
The background is decoration, so every failure degrades to the flat
window that shipped before this: a role with no committed art, an icns
that will not walk, no cache directory, a cache path carrying glob
metacharacters that kitty would read as a pattern, or an encode that
fails.
--no-creatureandATERM_NO_CREATUREare the deliberate off,matching
--no-motionand--silent.Verification
go test ./...green, with coverage for the largest-entry walk, thethree malformed containers, the plate geometry and its transparent
opposite corner, cache naming across re-drawn art, the kitty options
reaching the launch plan, and the flat window passing no image at all.
just aterm-contractgreen against the live roster.pre-commit run --all-filesgreen.bgimage.slangandrendered at 16:10 and 16:9 to check the
cscaledcrop keeps the wholecreature inside the 8% inset.
one of them.
Co-authored-by: Kai Siren coilysiren@gmail.com
Co-authored-by: Claude noreply@anthropic.com
Agent-Role: frontend