Generated and pasted board backgrounds move into .backgrounds/ — the board root stops collecting the app's own pictures
New app-written background images (Theme tab ▸ Pattern, and Edit ▸ Paste as Board Background) now land in a hidden `.backgrounds/` folder at board root instead of beside index.md, matching the `.trash/` app-managed pattern. `background.image` stores the qualified relative reference (`.backgrounds/facets.png`); the resolver needed no change at all, since it already accepted any relative path inside the board root — the same mechanism that already resolved `art/backdrops/sunset.png` resolves the new location for free. `BoardWriter.writeBoardImage` now creates its destination folder if missing, since `.backgrounds/` won't exist until a board's first generated or pasted background. The Finder collision-ladder (`BoardStore.boardImageName`) is rescoped to `.backgrounds/`'s own contents, and its overwrite-in-place check now recognizes only the qualified form as "ours" — a legacy bare `background.image: facets.png` from before this change is read as a foreign reference rather than migrated, so a regeneration writes a fresh `.backgrounds/` file and orphans the old one in place, per the no-migration ruling. The Theme tab's Pattern/Solid mode-detection was updated to recognize both the legacy and current spellings as the generator's own output. The board loader needed no change: `.backgrounds/` is a hidden, non-UUID-shaped name, and `.skipsHiddenFiles` already keeps every hidden entry off the lane walk before any name-based exclusion is consulted — pinned with a new loader test. Deliberately did not add `.backgrounds` to IntegrityRules' claimed-name/squatter-displacement table: that table mirrors a specific existing DESIGN ruling this card doesn't amend. Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
@@ -67,9 +67,11 @@ extension FrontmatterDocument {
|
||||
///
|
||||
/// The doc comment above says "There is no image picker and none is planned"; that sentence held
|
||||
/// until generated backgrounds (DESIGN/explorations/board-backgrounds.md), which do not make one
|
||||
/// either. What the generator writes is a *file it just created in the board folder* and the name
|
||||
/// it wrote it under — the app is not browsing the user's pictures, it is naming its own output —
|
||||
/// so the hand-written path stays the escape hatch it always was, and this write preserves it the
|
||||
/// either. What the generator writes is a *file it just created* — in `.backgrounds/`
|
||||
/// (`BoardBackdrop.backgroundsFolderName`, ruled 2026-08-09), never the board root, for every new
|
||||
/// write — and the relative reference to it, which is still simply a path the reader was already
|
||||
/// able to resolve; the app is not browsing the user's pictures, it is naming its own output — so
|
||||
/// the hand-written path stays the escape hatch it always was, and this write preserves it the
|
||||
/// same way the colour write preserves an image: by subkey.
|
||||
///
|
||||
/// Everything else is `setStyleValue`'s, deliberately shared rather than restated: the same
|
||||
|
||||
Reference in New Issue
Block a user