Phase 466 complete; plan Phase 467 voice (v0.8.429)
Roadmap, ATTACHMENTS, EMBEDS, and AGENTCTL docs for attachment depth; 50-item Phase 467 voice plan for v0.8.430. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -206,6 +206,15 @@ PEARCORD_SKIP_MESH_ROUNDTRIP=1 npm run test:agentctl-phase444-notifications
|
||||
|
||||
Chains notification/inbox smokes, platform `notification.markRead`/`notification.markAll`/`inbox.mark-read` error logs, dev-log **notification-errors** + **inbox-errors** filters (tightened span match), notification row `aria-current`, mark-all banner Escape, body truncation, forum notif place context, composer autofocus after mark-all/open-notification (`composer-focus-channel` IPC), `notificationInboxCount` clipboard meta, server-rail guild-loading aria-label, threads panel unread total badge, and Phase 443 threads regression.
|
||||
|
||||
**Attachments & embeds (v0.8.429):** Primary Phase 466 verification — combined bundle:
|
||||
|
||||
```bash
|
||||
npm run test:phase466-attachments-embeds
|
||||
PEARCORD_SKIP_MESH_ROUNDTRIP=1 npm run test:agentctl-phase466-attachments
|
||||
```
|
||||
|
||||
Extends Phase 460 bundle with attachment panel guild-loading guards, staging size hints, composer attach hint, `byteLength`/`urlHost` platform spans, clipboard `stagingBytesTotal`, embed collapse/image-preview keyboard smokes, Phase 465 messaging regression.
|
||||
|
||||
**Messaging & reactions (v0.8.428):** Primary Phase 465 verification — combined bundle:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -59,6 +59,8 @@ Optional: install `corestore` + `hyperdrive` in `modules/pearcord-drive` for hex
|
||||
|
||||
## Platform logging (v0.8.423 Phase 460, v0.8.413 Phase 450)
|
||||
|
||||
**v0.8.429 (Phase 466):** `attachment.read` span.end includes `byteLength`; extended guild-loading guard disables composer, file input, and in-message attachment/embed controls. Staging chips show file size; upload progress uses `aria-live="polite"`; `#composer-attach-hint` shows drop hint (8 MB max). Dev-log clipboard adds `stagingBytesTotal`. Bundle: `npm run test:phase466-attachments-embeds`.
|
||||
|
||||
`stageAttachment` and `readAttachmentPreview` emit `attachment.stage` / `attachment.read` spans with `guildId` + `channelId` metadata and `attachment.* error` on failure (including empty file, size limit, read-only attach gate). Dev-log filter **attachment-errors** matches `/attachment\.(stage|read)/` platform lines.
|
||||
|
||||
UI: `syncAttachmentStagingDuringGuildLoading` during guild switch (staging bar `aria-busy`, `#btn-attach` disabled). Composer autofocus after removing a staged attachment chip.
|
||||
|
||||
@@ -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.429 (Phase 466):** `embed.resolve` span.end includes `urlHost`; guild-loading disables embed collapse/spoiler toggles in messages. Bundle: `npm run test:phase466-attachments-embeds`; agentctl: `npm run test:agentctl-phase466-attachments`.
|
||||
|
||||
`_queueLinkEmbed` logs `embed.resolve` spans with `guildId` + `channelId` (falls back to active guild/channel when message row omits them) and `embed.resolve error` on fetch failure; worker forwards `link-embed-failed` to UI toast (thread-aware copy). Dev-log filter **embed-errors** matches `/embed\.resolve/` platform lines; clipboard meta includes `embedCount`.
|
||||
|
||||
```bash
|
||||
|
||||
+112
-52
@@ -8975,7 +8975,7 @@ Fix guild switching, session boot gating, and theme/prefs application before mic
|
||||
| P465-49 | UI: failed send retry toast polish | [x] |
|
||||
| P465-50 | Phase 466 attachments depth (v0.8.429) | [x] |
|
||||
|
||||
**Next:** ~~Phase 465~~ (complete). `syncMessagingPanelsDuringGuildLoading`; message list pagination; reply collapse; send-draft restore; tightened message/reaction error filters; bundle `test:phase465-messaging-reactions`. Phase 466 planned (50 items).
|
||||
**Next:** ~~Phase 465~~ (complete). `syncMessagingPanelsDuringGuildLoading`; message list pagination; reply collapse; send-draft restore; tightened message/reaction error filters; bundle `test:phase465-messaging-reactions`. ~~Phase 466~~ complete (v0.8.429).
|
||||
|
||||
---
|
||||
|
||||
@@ -8983,58 +8983,117 @@ Fix guild switching, session boot gating, and theme/prefs application before mic
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P466-1 | Attachments: stage/read roundtrip re-verify | [ ] |
|
||||
| P466-2 | Attachments: download roundtrip re-verify | [ ] |
|
||||
| P466-3 | Embeds: resolve roundtrip re-verify | [ ] |
|
||||
| P466-4 | UI: staging bar polish re-verify | [ ] |
|
||||
| P466-5 | UI: image preview keyboard re-verify | [ ] |
|
||||
| P466-6 | UI: staging remove chip autofocus re-verify | [ ] |
|
||||
| P466-7 | UI: embed collapse keyboard re-verify | [ ] |
|
||||
| P466-8 | UI: guild-loading attachment guard extend | [ ] |
|
||||
| P466-9 | Platform: `attachment.stage` span extend | [ ] |
|
||||
| P466-10 | Platform: `attachment.read` span extend | [ ] |
|
||||
| P466-11 | Platform: `embed.resolve` span extend | [ ] |
|
||||
| P466-12 | Logging: dev-log **attachment-errors** filter tighten | [ ] |
|
||||
| P466-13 | Logging: dev-log **embed-errors** filter tighten | [ ] |
|
||||
| P466-14 | Logging: clipboard `attachmentCount` meta extend | [ ] |
|
||||
| P466-15 | Agentctl: attachment upload headless re-verify | [ ] |
|
||||
| P466-16 | Agentctl: embed resolve headless re-verify | [ ] |
|
||||
| P466-17 | Agentctl: combined phase466 attachments bundle | [ ] |
|
||||
| P466-18 | Smoke: attachment smokes family | [ ] |
|
||||
| P466-19 | Smoke: embed smokes family | [ ] |
|
||||
| P466-20 | Mesh: attachment gossip roundtrip re-verify | [ ] |
|
||||
| P466-21 | UI: spoiler toggle polish | [ ] |
|
||||
| P466-22 | UI: link embed failed toast polish | [ ] |
|
||||
| P466-23 | UI: attachment empty hints polish | [ ] |
|
||||
| P466-24 | Permissions: attach files toast polish | [ ] |
|
||||
| P466-25 | Docs: `ATTACHMENTS.md` refresh | [ ] |
|
||||
| P466-26 | Docs: `EMBEDS.md` refresh | [ ] |
|
||||
| P466-27 | Docs: `AGENTCTL.md` phase 466 bundle | [ ] |
|
||||
| P466-28 | Regression: messaging phase 465 smokes still pass | [ ] |
|
||||
| P466-29 | Regression: roles phase 464 smokes still pass | [ ] |
|
||||
| P466-30 | UI: upload progress aria-busy polish | [ ] |
|
||||
| P466-31 | Boot: session ready gate | [ ] |
|
||||
| P466-32 | Boot: pear run gate | [ ] |
|
||||
| P466-33 | Module: `pearcord-platform` README attachments section | [ ] |
|
||||
| P466-34 | Module: `pearcord-attachments` README accuracy | [ ] |
|
||||
| P466-35 | Smoke: platform attachment span metadata | [ ] |
|
||||
| P466-36 | Smoke: dev-log-attachment-errors-tighten | [ ] |
|
||||
| P466-37 | UI: composer autofocus after attach remove | [ ] |
|
||||
| P466-38 | Agentctl: attachment deny headless re-verify | [ ] |
|
||||
| P466-39 | Smoke: attachment-guild-loading-extend | [ ] |
|
||||
| P466-40 | UI: embed card aria-label polish | [ ] |
|
||||
| P466-41 | UI: NSFW attachment gate re-verify | [ ] |
|
||||
| P466-42 | UI: read-only attach guard re-verify | [ ] |
|
||||
| P466-43 | Search: attachment filename filter re-verify | [ ] |
|
||||
| P466-44 | UI: embed collapse per-channel smoke extend | [ ] |
|
||||
| P466-45 | Agentctl: large file deny headless re-verify | [ ] |
|
||||
| P466-46 | Smoke: composer-autofocus-after-staging-clear | [ ] |
|
||||
| P466-47 | Module: `pearcord-guild` README attachment gossip | [ ] |
|
||||
| P466-48 | UI: drag-drop hint polish | [ ] |
|
||||
| P466-49 | UI: attachment size hint polish | [ ] |
|
||||
| P466-50 | Phase 467 voice & stage depth (v0.8.430) | [ ] |
|
||||
| P466-1 | Attachments: stage/read roundtrip re-verify | [x] |
|
||||
| P466-2 | Attachments: download roundtrip re-verify | [x] |
|
||||
| P466-3 | Embeds: resolve roundtrip re-verify | [x] |
|
||||
| P466-4 | UI: staging bar polish re-verify | [x] |
|
||||
| P466-5 | UI: image preview keyboard re-verify | [x] |
|
||||
| P466-6 | UI: staging remove chip autofocus re-verify | [x] |
|
||||
| P466-7 | UI: embed collapse keyboard re-verify | [x] |
|
||||
| P466-8 | UI: guild-loading attachment guard extend | [x] |
|
||||
| P466-9 | Platform: `attachment.stage` span extend | [x] |
|
||||
| P466-10 | Platform: `attachment.read` span extend | [x] |
|
||||
| P466-11 | Platform: `embed.resolve` span extend | [x] |
|
||||
| P466-12 | Logging: dev-log **attachment-errors** filter tighten | [x] |
|
||||
| P466-13 | Logging: dev-log **embed-errors** filter tighten | [x] |
|
||||
| P466-14 | Logging: clipboard `attachmentCount` meta extend | [x] |
|
||||
| P466-15 | Agentctl: attachment upload headless re-verify | [x] |
|
||||
| P466-16 | Agentctl: embed resolve headless re-verify | [x] |
|
||||
| P466-17 | Agentctl: combined phase466 attachments bundle | [x] |
|
||||
| P466-18 | Smoke: attachment smokes family | [x] |
|
||||
| P466-19 | Smoke: embed smokes family | [x] |
|
||||
| P466-20 | Mesh: attachment gossip roundtrip re-verify | [x] |
|
||||
| P466-21 | UI: spoiler toggle polish | [x] |
|
||||
| P466-22 | UI: link embed failed toast polish | [x] |
|
||||
| P466-23 | UI: attachment empty hints polish | [x] |
|
||||
| P466-24 | Permissions: attach files toast polish | [x] |
|
||||
| P466-25 | Docs: `ATTACHMENTS.md` refresh | [x] |
|
||||
| P466-26 | Docs: `EMBEDS.md` refresh | [x] |
|
||||
| P466-27 | Docs: `AGENTCTL.md` phase 466 bundle | [x] |
|
||||
| P466-28 | Regression: messaging phase 465 smokes still pass | [x] |
|
||||
| P466-29 | Regression: roles phase 464 smokes still pass | [x] |
|
||||
| P466-30 | UI: upload progress aria-busy polish | [x] |
|
||||
| P466-31 | Boot: session ready gate | [x] |
|
||||
| P466-32 | Boot: pear run gate | [x] |
|
||||
| P466-33 | Module: `pearcord-platform` README attachments section | [x] |
|
||||
| P466-34 | Module: `pearcord-attachments` README accuracy | [x] |
|
||||
| P466-35 | Smoke: platform attachment span metadata | [x] |
|
||||
| P466-36 | Smoke: dev-log-attachment-errors-tighten | [x] |
|
||||
| P466-37 | UI: composer autofocus after attach remove | [x] |
|
||||
| P466-38 | Agentctl: attachment deny headless re-verify | [x] |
|
||||
| P466-39 | Smoke: attachment-guild-loading-extend | [x] |
|
||||
| P466-40 | UI: embed card aria-label polish | [x] |
|
||||
| P466-41 | UI: NSFW attachment gate re-verify | [x] |
|
||||
| P466-42 | UI: read-only attach guard re-verify | [x] |
|
||||
| P466-43 | Search: attachment filename filter re-verify | [x] |
|
||||
| P466-44 | UI: embed collapse per-channel smoke extend | [x] |
|
||||
| P466-45 | Agentctl: large file deny headless re-verify | [x] |
|
||||
| P466-46 | Smoke: composer-autofocus-after-staging-clear | [x] |
|
||||
| P466-47 | Module: `pearcord-guild` README attachment gossip | [x] |
|
||||
| P466-48 | UI: drag-drop hint polish | [x] |
|
||||
| P466-49 | UI: attachment size hint polish | [x] |
|
||||
| P466-50 | Phase 467 voice & stage depth (v0.8.430) | [x] |
|
||||
|
||||
**Next:** P466-1–P466-49.
|
||||
**Next:** ~~Phase 466~~ (complete). Extended guild-loading guards for attachment panels; `attachment.read` `byteLength` + `embed.resolve` `urlHost`; staging size hints + `aria-live` upload progress; composer attach hint; clipboard `stagingBytesTotal`; bundle `test:phase466-attachments-embeds`. Phase 467 planned (50 items).
|
||||
|
||||
---
|
||||
|
||||
### Phase 467 — Voice & stage depth (v0.8.430)
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P467-1 | Voice: join/leave roundtrip re-verify | [ ] |
|
||||
| P467-2 | Voice: mute/deafen roundtrip re-verify | [ ] |
|
||||
| P467-3 | Stage: join/speaker roundtrip re-verify | [ ] |
|
||||
| P467-4 | Screen share: start/stop roundtrip re-verify | [ ] |
|
||||
| P467-5 | UI: voice bar polish re-verify | [ ] |
|
||||
| P467-6 | UI: stage panel keyboard re-verify | [ ] |
|
||||
| P467-7 | UI: voice channel list polish re-verify | [ ] |
|
||||
| P467-8 | UI: guild-loading voice guard extend | [ ] |
|
||||
| P467-9 | Platform: `voice.join` span extend | [ ] |
|
||||
| P467-10 | Platform: `voice.leave` span extend | [ ] |
|
||||
| P467-11 | Platform: `stage.join` span extend | [ ] |
|
||||
| P467-12 | Logging: dev-log **voice-errors** filter tighten | [ ] |
|
||||
| P467-13 | Logging: dev-log clipboard `voiceChannelId` meta extend | [ ] |
|
||||
| P467-14 | Agentctl: voice join headless re-verify | [ ] |
|
||||
| P467-15 | Agentctl: stage speaker headless re-verify | [ ] |
|
||||
| P467-16 | Agentctl: combined phase467 voice bundle | [ ] |
|
||||
| P467-17 | Smoke: voice smokes family | [ ] |
|
||||
| P467-18 | Smoke: stage smokes family | [ ] |
|
||||
| P467-19 | Mesh: voice state gossip roundtrip re-verify | [ ] |
|
||||
| P467-20 | UI: self-deafen instant roster polish | [ ] |
|
||||
| P467-21 | UI: stage request-to-speak polish | [ ] |
|
||||
| P467-22 | UI: screen share popout autofocus re-verify | [ ] |
|
||||
| P467-23 | UI: voice empty hints polish | [ ] |
|
||||
| P467-24 | Permissions: connect/speak toast polish | [ ] |
|
||||
| P467-25 | Docs: `VOICE.md` refresh | [ ] |
|
||||
| P467-26 | Docs: `STAGE.md` refresh | [ ] |
|
||||
| P467-27 | Docs: `AGENTCTL.md` phase 467 bundle | [ ] |
|
||||
| P467-28 | Regression: attachments phase 466 smokes still pass | [ ] |
|
||||
| P467-29 | Regression: messaging phase 465 smokes still pass | [ ] |
|
||||
| P467-30 | UI: voice bar aria-busy polish | [ ] |
|
||||
| P467-31 | Boot: session ready gate | [ ] |
|
||||
| P467-32 | Boot: pear run gate | [ ] |
|
||||
| P467-33 | Module: `pearcord-platform` README voice section | [ ] |
|
||||
| P467-34 | Module: `pearcord-voice` README accuracy | [ ] |
|
||||
| P467-35 | Smoke: platform voice span metadata | [ ] |
|
||||
| P467-36 | Smoke: dev-log-voice-errors-tighten | [ ] |
|
||||
| P467-37 | UI: composer autofocus after voice disconnect | [ ] |
|
||||
| P467-38 | Agentctl: voice deny headless re-verify | [ ] |
|
||||
| P467-39 | Smoke: voice-guild-loading-extend | [ ] |
|
||||
| P467-40 | UI: stage audience mute polish | [ ] |
|
||||
| P467-41 | UI: NSFW voice channel gate re-verify | [ ] |
|
||||
| P467-42 | UI: read-only voice connect guard re-verify | [ ] |
|
||||
| P467-43 | Search: voice channel name filter re-verify | [ ] |
|
||||
| P467-44 | UI: stream quality hint smoke extend | [ ] |
|
||||
| P467-45 | Agentctl: screen share headless re-verify | [ ] |
|
||||
| P467-46 | Smoke: composer-autofocus-after-voice-leave | [ ] |
|
||||
| P467-47 | Module: `pearcord-guild` README voice gossip | [ ] |
|
||||
| P467-48 | UI: push-to-talk hint polish | [ ] |
|
||||
| P467-49 | UI: voice activity indicator polish | [ ] |
|
||||
| P467-50 | Phase 468 discovery & DM depth (v0.8.431) | [ ] |
|
||||
|
||||
**Next:** P467-1–P467-49.
|
||||
|
||||
---
|
||||
|
||||
@@ -10480,6 +10539,7 @@ Absorbed into Phase 273 (P273-5–P273-8, P273-11–P273-12). See Phase 274 for
|
||||
|
||||
### Changelog
|
||||
|
||||
- **2026-05-24** — v0.8.429: Phase 466 — Extended `syncAttachmentStagingDuringGuildLoading` (composer `aria-busy`, embed/attachment preview guards); `attachment.read` `byteLength` + `embed.resolve` `urlHost`; staging size hints + upload `aria-live`; composer attach hint; clipboard `stagingBytesTotal`; bundle `test:phase466-attachments-embeds` + agentctl (+6 smokes). Phase 467 planned (50 items).
|
||||
- **2026-05-24** — v0.8.428: Phase 465 — `syncMessagingPanelsDuringGuildLoading`; message list pagination (load older); reply preview collapse; `(edited)` badge; send-draft restore on permission deny; toolbar Home/End; tightened **message-errors**/**reaction-errors** filters; clipboard `channelMessageCount`; bundle `test:phase465-messaging-reactions` + agentctl (+8 smokes). Phase 466 planned (50 items).
|
||||
- **2026-05-24** — v0.8.427: Phase 464 — Role filter chips (All/Custom/Admin); `syncRolesPanelDuringGuildLoading`; channel overwrite pagination + @everyone row highlight; admin badge CSS; `role.update`/`permission.overwrite*` span.end metadata; tightened **permission-errors** filter; clipboard `rolesPanelFilter`; bundle `test:phase464-roles-permissions` + agentctl permissions (+6 smokes). Phase 465 planned (50 items).
|
||||
- **2026-05-24** — v0.8.426: Phase 463 — `audit.append` / `audit.export` (end `guildId`) / `compliance.snapshot` spans; tightened **audit-errors** filter; `syncAuditPanelsDuringGuildLoading`; audit modal pagination, action badges, export progress + live region; clipboard `auditExportFilter` meta; bundle `test:phase463-audit-compliance` + agentctl audit (+8 smokes). New `COMPLIANCE.md`. Phase 464 planned (50 items).
|
||||
|
||||
Reference in New Issue
Block a user