Add SP5 edit flow + unpublish
Resolve the "puppy problem" (Decision 0008): edit a published article in place
and unpublish it.
- updateDocument: putRecord on the SAME rkey with updatedAt, preserving
publishedAt + bskyPostRef. URL stays stable; no new Bluesky post on edit.
- unpublish: deleteRecord the document AND its companion app.bsky.feed.post.
- listMyArticles: the writer's SkyPress documents (scoped to their publication),
with stored blocks for editing.
- SkyEditor loads existing content via onLoad(parse) => parse(serialize(blocks)).
- MyArticles list (Edit / Unpublish with confirm); PublishPanel gains an update
mode; Studio lifts edit state and re-mounts per article.
- Reading page shows "updated <date>" when updatedAt is present.
- buildDocumentRecord gained optional updatedAt (unit-tested).
Verified: 37 unit tests, astro check clean, production build green. The live
edit/unpublish round-trip is pending a signed-in session (a chrome-profile reset
cleared auth mid-test); it builds on the live-proven SP2 publish path and the
same agent.com.atproto.repo.* surface (putRecord/deleteRecord).