Media management — wayfinder map #181
Labels
No labels
kind
bug
kind
enhancement
wayfinder
grilling
wayfinder
map
wayfinder
prototype
wayfinder
research
wayfinder
task
workflow
needs-info
workflow
needs-triage
workflow
ready-for-agent
workflow
ready-for-human
workflow
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rosa/vernier#181
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Destination
Every design decision locked for the two-part media-manage surface: (a) a picker in the post editor for selecting already-uploaded Media, and (b) a per-user media library page (list, upload, delete). Plan-only: the map ends when an implementation spec exists and nothing is left to decide — the build happens in ordinary sessions afterwards. (Redrawn: growing the Micropub media endpoint to full capability was originally part (c); see Out of scope.)
Reached — the spec is Media management: Library page and editor picker — implementation spec (
ready-for-agent).Notes
CONTEXT.md(Media, Photo, Library, Processing/Ready/Failed, Reconciler); relevant ADRs are 0017–0021 (media storage, capability URLs, one-create-op-behind-adapters, deferred processing, staged originals) and 0023 (space reclamation — the mechanism that makes delete actually return disk)./grilling+/domain-modeling; prototype tickets use/prototype; research tickets are resolved by a/researchsubagent capturing findings on a throwawayresearch/<name>branch.wayfinder:*label.SET NULLmachinery already exists); the picker complements inline upload, which stays; the library is strictly per-user.Decisions so far
GET ?q=source[&limit&offset]returning{"items":[{url, published, mime_type}]}newest-first (bare object for&url=lookup, 400 on unknown); delete via form-encodedPOST action=delete&url=to the media endpoint, gated ondelete+mediascopes. (The endpoint growth these shapes were for was later ruled out of scope; the findings stand on record.)/media, "Media" nav entry; newest-first square-tile grid, no pagination, tiles lazy-load the full rendition (no thumbnail pipeline); single-file upload viacreate_media; Processing tiles display-only, Failed deletable with no retry; delete via the standard confirm page listing referencing Posts (title → slug) with status, then detach-and-delete.prototype/media-picker.MediaFilenamecapture through both adapters;list_media_for,resolve_owned_photo(id-based ownership check, Micropub'sresolve_photodelegates to it),list_posts_referencing,delete_media(owner-scoped, Processing refused); repository-port additions with conformance tests; web routes/pages; docs need only a one-line CONTEXT.md deletion note, no new ADR.Not yet specified
Nothing — the way is clear. Every decision is closed and the destination is reached; implementation proceeds from the spec.
Out of scope
q=sourcelisting + delete) — Map q=source and delete onto the domain closed unresolved: Micropub's client base is too small to justify the extra protocol surface. Clients keep plain upload; listing and delete live in the web library only.Media management & full media endpoint — wayfinder mapto Media management — wayfinder mapDestination reached: the implementation spec is #188 and nothing is left to decide. All tickets closed; the build proceeds from the spec in ordinary sessions.