Repository navigation
Featherframe Cloud: a picture already drawn is shown without composing it again (W-1012) - #362
Merged
wr merged 1 commit intoOct 7, 2026
Conversation
Base automatically changed from
wells/w-1013-featherframe-cloud-naming-a-frames-output-no-longer-imports
to
main
October 7, 2026 20:25
…g it again (W-1012) Most Cloud wakes switch the frames to a picture already in the drawn store, yet each composed the sheet again to learn its ETag: the library crop fetched and decoded, the type set, ~0.3 CPU-s on Cloud. Each kept single sheet is now found by what it was drawn from: the spec but its art (_drawn_from), the art's ref, SHEET_VERSION and the libraries. Every provider names its art without loading or buying it (ArtProvider.ref): a library plate by its crop key and caption, a scan by its crop, a kept illustration by its sidecar, "" for none, None when it cannot say (which composes as before). A sheet is kept under a key only when the art it was drawn with is the art the key named. A new SHEET_VERSION is held by test_drawn_versions like COLOR_VERSION and FINISH_VERSION. Refs: W-1012
wr
force-pushed
the
wells/w-1012-featherframe-cloud-a-picture-already-drawn-is-shown-without
branch
from
October 7, 2026 20:25
3c20a55 to
adc8cef
Compare
wr
enabled auto-merge (squash)
October 7, 2026 20:25
wr
deleted the
wells/w-1012-featherframe-cloud-a-picture-already-drawn-is-shown-without
branch
October 7, 2026 20:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Most Cloud wakes switch the frames to a picture already in the drawn store: 14 of 18 on 7 Oct 2026 (W-1008). Each still composed the sheet to learn its ETag, which meant fetching and decoding the library crop and setting the type. That's about 0.3 CPU-s a wake on Cloud. Now each kept single sheet is found by what it was drawn from.
Stacked on #361. GitHub retargets this to
mainwhen that merges.What changed
Art names itself.
ArtProvider.ref(common, scientific)returns the ref of the artartwork()would give, without loading or buying it:""for none,Nonewhen it can't say (that composes as before). The ref covers:fallbackArtwork.refcarries the same string.The drawn store remembers sheets. It keeps
sheets: {key: {etag, art}}in its kv row, keyed bydrawn.sheet_key:_drawn_from(spec), the art's ref,compose.SHEET_VERSIONand the libraries. The pruner forgets a key once its ETag goes._render_singleuses it. A kept, whole sheet is committed by ETag with no pixels, and then finds its outputs, twin and views as before. Otherwise the sheet is composed, and kept under its key only if the art drawn has the ref the key named. The owner's Refresh always composes._committakes a kept sheet. It acceptsetagplus the art's signature in place ofsheet. History draws a missing thumbnail from the kept sheet.SHEET_VERSIONis held bytest_drawn_versions.pylikeCOLOR_VERSIONandFINISH_VERSION. AGENTS.md is updated.Verified
pytestpasses. New tests:SHEET_VERSION, a ref the art doesn't match, a provider that can't say, Refresh, and a missing sheet file all compose againtests/fixtures/drawn-versions.json. Existing hashes are unchanged.Left
hosted: stoplines (W-1008).Refs W-1012