docs: complete Phase 522 attachments depth, plan Phase 523 (v0.8.485)

Mark P522 complete with changelog; add 50-item Phase 523 embeds depth
plan and update ATTACHMENTS.md, EMBEDS.md, and AGENTCTL.md bundles.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-05-24 11:03:26 -04:00
co-authored by Cursor
parent dbed919115
commit d8bb867189
4 changed files with 125 additions and 52 deletions
+9
View File
@@ -289,6 +289,15 @@ PEARCORD_SKIP_MESH_ROUNDTRIP=1 npm run test:agentctl-phase510-permissions
Extends `test:phase485-roles` with split permissions guild-loading compositor (`syncPermissionsPanelsDuringGuildLoading`: role filter/editor, list panel/items, channel overwrite chrome/controls/rows), platform `role.update`/`permission.overwrite`/`permission.eval` span metadata, clipboard `permissionsGuildLoading`/`lastRoleRowId`/`lastChannelOverwriteKey`, extended `#composer-roles-hint`, and Phase 509 discovery regression. Agentctl: `test:agentctl-phase485-roles` alias.
**Attachments depth (v0.8.485):** Primary Phase 522 verification — combined bundle:
```bash
npm run test:phase522-attachments
PEARCORD_SKIP_MESH_ROUNDTRIP=1 npm run test:agentctl-phase522-attachments
```
Extends `test:phase521-reactions` regression with attachment compositor split (`syncAttachmentControlsDuringGuildLoading`, `syncAttachmentPanelLiveDuringGuildLoading`, drag-drop guard), `spanKind` on `attachment.stage` / `attachment.read` / `embed.gossip`, anchored **attachment-errors** filter, clipboard `attachButtonBusy`/`stagingBarBusy`, upload queue `aria-current=location`, ui-flow composer focus after `stage-attachment`, and headless `stageGuildAttachment`/`sendGuildMessageWithAttachments`. Agentctl: `test:attachments` + `test:agentctl-phase481-attachments` + `smoke-agentctl-attachments-phase522`.
**Reactions depth (v0.8.484):** Primary Phase 521 verification — combined bundle:
```bash
+2
View File
@@ -13,6 +13,8 @@ P2P-safe file sharing starts with **local staging** and **metadata gossip**; blo
HyperDB `@pearcord/attachments` schema is built for a future release when Rocks sync is validated end-to-end.
**v0.8.485 (Phase 522):** Extended split guild-loading attachment compositor: `syncAttachmentControlsDuringGuildLoading`, `syncAttachmentPanelDuringGuildLoading`, `syncAttachmentDragDropDuringGuildLoading`, `syncAttachmentPanelLiveDuringGuildLoading`. Platform `spanKind` on `attachment.stage`, `attachment.read`, and `embed.gossip`. Anchored **attachment-errors** filter (`^attachment.(stage|read) error$`). Dev-log clipboard: `attachButtonBusy`, `stagingBarBusy`, `lastUploadQueueLocalId`. Upload queue rows use `aria-current="location"`. `pearcord-ui-flow` emits `composer-focus-channel` after `stage-attachment`. Agentctl: `stageGuildAttachment`, `sendGuildMessageWithAttachments`. Bundle: `npm run test:phase522-attachments`; agentctl: `npm run test:agentctl-phase522-attachments`.
**v0.8.466 (Phase 503):** Embed guild-loading compositor split — see [EMBEDS.md](./EMBEDS.md). Bundle: `npm run test:phase503-embeds`.
**v0.8.465 (Phase 502):** Split attachment guild-loading compositor (`syncAttachmentFileInputDuringGuildLoading`, `syncAttachmentUploadQueueDuringGuildLoading`, `syncAttachmentPreviewDuringGuildLoading`); platform `attachment.stage` `filenameLen`; `attachment.read` `attachmentId`/`isImage`; `embed.gossip` span + `embed.resolve` `gossipSent`; clipboard `attachmentsGuildLoading`/`uploadQueueBusy`. Bundle: `npm run test:phase502-attachments`; agentctl: `npm run test:agentctl-phase502-attachments`.
+2
View File
@@ -8,6 +8,8 @@ See [LINK_PREVIEWS.md](./LINK_PREVIEWS.md) for fetch/cache/gossip. UI renders `l
## Platform logging (v0.8.423 Phase 460, v0.8.413 Phase 450)
**v0.8.485 (Phase 522):** Platform `spanKind` on `embed.gossip` (with attachment staging) — see [ATTACHMENTS.md](./ATTACHMENTS.md). Bundle: `npm run test:phase522-attachments`.
**v0.8.466 (Phase 503):** `syncEmbedPanelsDuringGuildLoading` splits embed cards, collapse toggles, and spoiler link controls; `embed.resolve` `hasDescription`; `embed.gossip` `hasTitle`/`hasImage`; **embed-errors** includes `embed.gossip`; `#composer-embed-hint`; `setEmbedToggleCurrent`. Dev-log clipboard: `embedsGuildLoading`, `collapsedEmbedCount`, `lastEmbedToggleMessageId`. Bundle: `npm run test:phase503-embeds`; agentctl: `npm run test:agentctl-phase503-embeds`.
**v0.8.465 (Phase 502):** `embed.gossip` span on link-embed mesh fanout; `embed.resolve` `gossipSent` metadata. Split attachment/embed guild-loading guards — see [ATTACHMENTS.md](./ATTACHMENTS.md). Bundle: `npm run test:phase502-attachments`.
+112 -52
View File
@@ -12283,62 +12283,121 @@ Fix guild switching, session boot gating, and theme/prefs application before mic
---
### Phase 522 — Attachments depth (v0.8.485)
### Phase 522 — Attachments depth (v0.8.485)
| ID | Item | Status |
|----|------|--------|
| P522-1 | Attachments: stage file roundtrip re-verify | [ ] |
| P522-2 | Attachments: upload queue roundtrip re-verify | [ ] |
| P522-3 | Attachments: read attachment roundtrip re-verify | [ ] |
| P522-4 | UI: split attachment guild-loading compositor extend | [ ] |
| P522-5 | UI: staging bar guild-loading guard extend | [ ] |
| P522-6 | UI: attach button guild-loading guard extend | [ ] |
| P522-7 | UI: drag-drop zone guild-loading guard extend | [ ] |
| P522-8 | Platform: `attachment.stage` span metadata extend | [ ] |
| P522-9 | Platform: `attachment.read` span metadata extend | [ ] |
| P522-10 | Platform: `embed.gossip` span metadata extend | [ ] |
| P522-11 | Logging: dev-log **attachment-errors** filter tighten | [ ] |
| P522-12 | Logging: dev-log clipboard attachment meta extend | [ ] |
| P522-13 | Agentctl: stage attachment headless re-verify | [ ] |
| P522-14 | Agentctl: send with attachment headless re-verify | [ ] |
| P522-15 | Agentctl: combined phase522 attachments bundle | [ ] |
| P522-16 | Smoke: attachment-panels-guild-loading-extend-522 | [ ] |
| P522-17 | Smoke: dev-log-attachment-errors-tighten-extend-522 | [ ] |
| P522-18 | Smoke: dev-log-clipboard-attachment-meta-extend-522 | [ ] |
| P522-19 | UI: composer attach hint extend | [ ] |
| P522-20 | UI: upload queue aria-current polish | [ ] |
| P522-21 | UI: staging cap hint re-verify | [ ] |
| P522-22 | UI: attachment panel live region re-verify | [ ] |
| P522-23 | UI: image preview keyboard re-verify | [ ] |
| P522-24 | UI: composer autofocus after attach send re-verify | [ ] |
| P522-25 | Mesh: attachment gossip roundtrip re-verify | [ ] |
| P522-26 | Mesh: hyperdrive read roundtrip re-verify | [ ] |
| P522-27 | Attachments: spoiler tag roundtrip re-verify | [ ] |
| P522-28 | Attachments: multiple file stage re-verify | [ ] |
| P522-29 | Docs: `ATTACHMENTS.md` refresh | [ ] |
| P522-30 | Docs: `EMBEDS.md` cross-link refresh | [ ] |
| P522-31 | Docs: `AGENTCTL.md` phase 522 bundle | [ ] |
| P522-32 | Regression: reactions phase 521 smokes still pass | [ ] |
| P522-33 | Regression: messaging phase 520 smokes still pass | [ ] |
| P522-34 | Boot: session ready gate | [ ] |
| P522-35 | Boot: pear run gate | [ ] |
| P522-36 | Module: `pearcord-attachments` README accuracy | [ ] |
| P522-37 | Module: `pearcord-platform` README attachments section | [ ] |
| P522-38 | Smoke: platform-attachment-span-metadata-extend-522 | [ ] |
| P522-39 | UI: attachment modal escape focus re-verify | [ ] |
| P522-40 | UI: file input guild-loading re-verify | [ ] |
| P522-41 | UI: companion attachment defer re-verify | [ ] |
| P522-42 | UI: dev-log clipboard staging bytes extend | [ ] |
| P522-43 | UI: thread attachment scope re-verify | [ ] |
| P522-44 | UI: forum post attachment scope re-verify | [ ] |
| P522-45 | UI: DM attachment scope re-verify | [ ] |
| P522-46 | UI: attachment hub cross-link re-verify | [ ] |
| P522-47 | UI: attach-files permission toast re-verify | [ ] |
| P522-48 | UI: embed-failed toast re-verify | [ ] |
| P522-49 | UI: attachment audit log entries re-verify | [ ] |
| P522-50 | Phase 523 embeds depth (v0.8.486) | [ ] |
| P522-1 | Attachments: stage file roundtrip re-verify | [x] |
| P522-2 | Attachments: upload queue roundtrip re-verify | [x] |
| P522-3 | Attachments: read attachment roundtrip re-verify | [x] |
| P522-4 | UI: split attachment guild-loading compositor extend | [x] |
| P522-5 | UI: staging bar guild-loading guard extend | [x] |
| P522-6 | UI: attach button guild-loading guard extend | [x] |
| P522-7 | UI: drag-drop zone guild-loading guard extend | [x] |
| P522-8 | Platform: `attachment.stage` span metadata extend | [x] |
| P522-9 | Platform: `attachment.read` span metadata extend | [x] |
| P522-10 | Platform: `embed.gossip` span metadata extend | [x] |
| P522-11 | Logging: dev-log **attachment-errors** filter tighten | [x] |
| P522-12 | Logging: dev-log clipboard attachment meta extend | [x] |
| P522-13 | Agentctl: stage attachment headless re-verify | [x] |
| P522-14 | Agentctl: send with attachment headless re-verify | [x] |
| P522-15 | Agentctl: combined phase522 attachments bundle | [x] |
| P522-16 | Smoke: attachment-panels-guild-loading-extend-522 | [x] |
| P522-17 | Smoke: dev-log-attachment-errors-tighten-extend-522 | [x] |
| P522-18 | Smoke: dev-log-clipboard-attachment-meta-extend-522 | [x] |
| P522-19 | UI: composer attach hint extend | [x] |
| P522-20 | UI: upload queue aria-current polish | [x] |
| P522-21 | UI: staging cap hint re-verify | [x] |
| P522-22 | UI: attachment panel live region re-verify | [x] |
| P522-23 | UI: image preview keyboard re-verify | [x] |
| P522-24 | UI: composer autofocus after attach send re-verify | [x] |
| P522-25 | Mesh: attachment gossip roundtrip re-verify | [x] |
| P522-26 | Mesh: hyperdrive read roundtrip re-verify | [x] |
| P522-27 | Attachments: spoiler tag roundtrip re-verify | [x] |
| P522-28 | Attachments: multiple file stage re-verify | [x] |
| P522-29 | Docs: `ATTACHMENTS.md` refresh | [x] |
| P522-30 | Docs: `EMBEDS.md` cross-link refresh | [x] |
| P522-31 | Docs: `AGENTCTL.md` phase 522 bundle | [x] |
| P522-32 | Regression: reactions phase 521 smokes still pass | [x] |
| P522-33 | Regression: messaging phase 520 smokes still pass | [x] |
| P522-34 | Boot: session ready gate | [x] |
| P522-35 | Boot: pear run gate | [x] |
| P522-36 | Module: `pearcord-attachments` README accuracy | [x] |
| P522-37 | Module: `pearcord-platform` README attachments section | [x] |
| P522-38 | Smoke: platform-attachment-span-metadata-extend-522 | [x] |
| P522-39 | UI: attachment modal escape focus re-verify | [x] |
| P522-40 | UI: file input guild-loading re-verify | [x] |
| P522-41 | UI: companion attachment defer re-verify | [x] |
| P522-42 | UI: dev-log clipboard staging bytes extend | [x] |
| P522-43 | UI: thread attachment scope re-verify | [x] |
| P522-44 | UI: forum post attachment scope re-verify | [x] |
| P522-45 | UI: DM attachment scope re-verify | [x] |
| P522-46 | UI: attachment hub cross-link re-verify | [x] |
| P522-47 | UI: attach-files permission toast re-verify | [x] |
| P522-48 | UI: embed-failed toast re-verify | [x] |
| P522-49 | UI: attachment audit log entries re-verify | [x] |
| P522-50 | Phase 523 embeds depth (v0.8.486) | [x] |
**Next:** P522-1P522-49.
**Next:** ~~Phase 522~~ (complete). Split attachment compositor (`syncAttachmentControlsDuringGuildLoading`, `syncAttachmentPanelLiveDuringGuildLoading`, `syncAttachmentDragDropDuringGuildLoading`); `spanKind` on `attachment.stage` / `attachment.read` / `embed.gossip`; anchored **attachment-errors** (`$`); clipboard `attachButtonBusy`/`stagingBarBusy`; upload queue `aria-current=location`; ui-flow composer focus after `stage-attachment`; agentctl `stageGuildAttachment`/`sendGuildMessageWithAttachments`; bundle `npm run test:phase522-attachments`. Phase 523 planned (50 items).
---
### Phase 523 — Embeds depth (v0.8.486)
| ID | Item | Status |
|----|------|--------|
| P523-1 | Embeds: link resolve roundtrip re-verify | [ ] |
| P523-2 | Embeds: gossip fanout roundtrip re-verify | [ ] |
| P523-3 | Embeds: spoiler link toggle roundtrip re-verify | [ ] |
| P523-4 | UI: split embed guild-loading compositor extend | [ ] |
| P523-5 | UI: embed card guild-loading guard extend | [ ] |
| P523-6 | UI: embed toggle guild-loading guard extend | [ ] |
| P523-7 | UI: link preview guild-loading guard extend | [ ] |
| P523-8 | Platform: `embed.resolve` span metadata extend | [ ] |
| P523-9 | Platform: `embed.gossip` span metadata extend | [ ] |
| P523-10 | Platform: embed cache hit metadata extend | [ ] |
| P523-11 | Logging: dev-log **embed-errors** filter tighten | [ ] |
| P523-12 | Logging: dev-log clipboard embed meta extend | [ ] |
| P523-13 | Agentctl: embed message headless re-verify | [ ] |
| P523-14 | Agentctl: embed resolve headless re-verify | [ ] |
| P523-15 | Agentctl: combined phase523 embeds bundle | [ ] |
| P523-16 | Smoke: embed-panels-guild-loading-extend-523 | [ ] |
| P523-17 | Smoke: dev-log-embed-errors-tighten-extend-523 | [ ] |
| P523-18 | Smoke: dev-log-clipboard-embed-meta-extend-523 | [ ] |
| P523-19 | UI: composer embed hint extend | [ ] |
| P523-20 | UI: embed toggle aria-current polish | [ ] |
| P523-21 | UI: embed card keyboard re-verify | [ ] |
| P523-22 | UI: embed panel live region re-verify | [ ] |
| P523-23 | UI: embed collapse expanded state re-verify | [ ] |
| P523-24 | UI: composer autofocus after embed toggle re-verify | [ ] |
| P523-25 | Mesh: embed gossip roundtrip re-verify | [ ] |
| P523-26 | Mesh: unfurl timeout handling re-verify | [ ] |
| P523-27 | Embeds: video embed roundtrip re-verify | [ ] |
| P523-28 | Embeds: image-only preview roundtrip re-verify | [ ] |
| P523-29 | Docs: `EMBEDS.md` refresh | [ ] |
| P523-30 | Docs: `ATTACHMENTS.md` cross-link refresh | [ ] |
| P523-31 | Docs: `AGENTCTL.md` phase 523 bundle | [ ] |
| P523-32 | Regression: attachments phase 522 smokes still pass | [ ] |
| P523-33 | Regression: reactions phase 521 smokes still pass | [ ] |
| P523-34 | Boot: session ready gate | [ ] |
| P523-35 | Boot: pear run gate | [ ] |
| P523-36 | Module: `pearcord-embeds` README accuracy | [ ] |
| P523-37 | Module: `pearcord-platform` README embeds section | [ ] |
| P523-38 | Smoke: platform-embed-span-metadata-extend-523 | [ ] |
| P523-39 | UI: embed context menu escape focus re-verify | [ ] |
| P523-40 | UI: message embed scope re-verify | [ ] |
| P523-41 | UI: companion embed defer re-verify | [ ] |
| P523-42 | UI: dev-log clipboard collapsed embed count extend | [ ] |
| P523-43 | UI: thread embed scope re-verify | [ ] |
| P523-44 | UI: forum post embed scope re-verify | [ ] |
| P523-45 | UI: DM embed scope re-verify | [ ] |
| P523-46 | UI: embed hub cross-link re-verify | [ ] |
| P523-47 | UI: embed-failed toast re-verify | [ ] |
| P523-48 | UI: embed permission toast re-verify | [ ] |
| P523-49 | UI: embed audit log entries re-verify | [ ] |
| P523-50 | Phase 524 voice depth (v0.8.487) | [ ] |
**Next:** P523-1P523-49.
---
@@ -13789,6 +13848,7 @@ Absorbed into Phase 273 (P273-5P273-8, P273-11P273-12). See Phase 274 for
- **2026-05-24** — v0.8.479: Phase 516 — split contacts guild-loading compositor; `contacts.request`/`accept`/`decline` span metadata; dev-log contacts-errors filter + clipboard contacts meta; bundle `test:phase516-contacts`. Phase 517 planned.
- **2026-05-24** — v0.8.478: Phase 515 — split DMs guild-loading compositor; `dm.open`/`dm.send`/`dm.group.create` span metadata; dev-log dm-errors filter tighten + clipboard DM meta; bundle `test:phase515-dms`. Phase 516 planned.
- **2026-05-24** — v0.8.477: Phase 514 — split invites guild-loading compositor; `guild.invite`/`invite.join`/`invite.revoke` span metadata; dev-log invite-errors filter + clipboard meta; bundle `test:phase514-invites`. Phase 515 planned.
- **2026-05-24** — v0.8.485: Phase 522 — split attachment compositor; `spanKind` on `attachment.stage` / `attachment.read` / `embed.gossip`; anchored **attachment-errors**; clipboard `attachButtonBusy`/`stagingBarBusy`; upload queue `aria-current=location`; ui-flow composer focus after `stage-attachment`; agentctl `stageGuildAttachment`/`sendGuildMessageWithAttachments`; bundle `test:phase522-attachments`. Phase 523 planned (50 items).
- **2026-05-24** — v0.8.484: Phase 521 — split reaction compositor (`syncReactionControlsDuringGuildLoading`, `syncReactionPanelLiveDuringGuildLoading`); `spanKind` on `reaction.toggle` / `reaction.gossip`; anchored **reaction-errors**; clipboard `reactionPickerBusy`; pill `aria-current=location`; ui-flow composer focus after `toggle-reaction`; agentctl `toggleGuildReaction`; bundle `test:phase521-reactions`. Phase 522 planned (50 items).
- **2026-05-24** — v0.8.483: Phase 520 — split messaging compositor (`syncReplyBarDuringGuildLoading`, `syncSlowmodeComposerDuringGuildLoading`, `syncMessageListLiveDuringGuildLoading`); `spanKind` on `message.edit` / `message.delete`; anchored **message-errors**; clipboard `messageComposerBusy`/`replyBarOpen`; message row `aria-current=location`; ui-flow composer focus after send/edit/delete; agentctl `sendGuildMessage`/`editGuildMessage`/`deleteGuildMessage`; bundle `test:phase520-messaging`. Phase 521 planned (50 items).
- **2026-05-24** — v0.8.482: Phase 519 — split search compositor (`syncSearchRecentChipsDuringGuildLoading`, `syncSearchMeshChipDuringGuildLoading`, `syncSearchPanelLiveDuringGuildLoading`); `spanKind` on `guild.search` / `.cache` / `.mesh`; anchored **search-errors**; clipboard `lastSearchHitMessageId`/`searchBarBusy`; search hit `aria-current=location`; ui-flow composer focus after `jump-to-message`; agentctl `searchGuildMessages`/`setSearchScope`; bundle `test:phase519-search`. Phase 520 planned (50 items).