Skip to content

Commit 857bbbe

Browse files
naquin316claude
andcommitted
feat(queue-viewer): approve-with-where-and-when picker + full edit on pending cards
Ryan's per-simmons#1 and per-simmons#2 asks for the social front-end. Both write the fields the drain already honors (platform fan-out + scheduled_time); no drain changes needed. - Approve now opens a picker instead of firing immediately: WHERE (connected accounts as checkboxes, pre-checked to the note's platforms, crosspostable ones tagged "suggested") and WHEN ("Next free slot" default, or a datetime-local). Confirm writes approved:true + platform:"a + b" + scheduled_time (omitted for next-slot). Multi-select fans out to one Blotato post per platform via ship.ts. - Edit mode on pending cards: rewrite the copy, change platform(s), change/clear the time, swap/re-upload the photo. New /api/edit endpoint. Refuses a note the machine already owns (scheduling/scheduled) so a booked post can't be edited into false confidence. - queue.ts gains two pure, tested helpers: replaceCopySection (byte-surgical body rewrite of `## Final copy (verbatim)`, preserves a trailing **Platform version:** annotation, never a YAML round-trip — the 4f17f3f lesson) and parseCrosspostable. extractCopy now shares the annotation regex so the two can't drift. Verified live: approve endpoint writes the fan-out + time then reverts clean; edit rewrites copy + platform and reads back through extractCopy; picker + edit modals render and toggle correctly in the viewer; 0 notes left armed, Blotato 0 schedules. 119 tests pass (+8), typecheck clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ELZqqQumx2ZVpV2R84ZRjb
1 parent 04b124c commit 857bbbe

3 files changed

Lines changed: 489 additions & 18 deletions

File tree

0 commit comments

Comments
 (0)