Jeff Emmett
a658b20fb1
feat(rsocials): thread editor link from campaign publish-thread nodes
...
- Add threadId config field to publish-thread nodes
- Add "Create Thread" / "Edit Thread" button in config panel
- Opens thread editor in new tab (new or edit by ID)
- Styled button matching indigo accent theme
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 00:34:34 -07:00
Jeff Emmett
347ba73942
feat(rsocials): replace campaign planner with n8n-style workflow builder
...
Add folk-campaign-workflow component with SVG canvas, node palette (12 nodes
across 4 categories: triggers, delays, conditions, actions), Bezier wiring,
config panel, drag-and-drop, pan/zoom, and REST auto-save. Includes 7 API
endpoints for CRUD + stub execution, SocialsDoc v3 migration, demo workflow
seeding, and local-first client methods.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 21:29:09 -07:00
Jeff Emmett
ec83f5c9c1
feat: replace rSocials canvas with n8n-style campaign planner
...
Add flow-based campaign planner with draggable Post/Thread/Platform/
Audience/Phase nodes, port wiring, 3 edge types (publish/sequence/
target), inline config panels, context menu, keyboard shortcuts,
touch gestures, and Automerge local-first persistence.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 18:18:30 -08:00
Jeff Emmett
a1b50eb0da
fix: Automerge undefined rejection + thread not synced to server
...
- tweetImages and imageUrl set to null instead of undefined when empty
(Automerge rejects undefined as invalid JSON)
- Updated ThreadData schema to allow null for optional fields
- This was the root cause of the 404 on image generation: saveDraft
threw on undefined, so the thread never synced to the server, and
the server-side route returned "Thread not found"
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 17:14:06 -08:00
Jeff Emmett
831c8b1c24
feat: refactor rSocials from monolith to full rApp
...
Decompose the 2,116-line mod.ts into a canonical rApp matching the
rFlows/rBooks pattern with Automerge sync, web components, and
extracted CSS.
New files:
- schemas.ts: SocialsDoc, ThreadData, Campaign types + Automerge schema
- local-first-client.ts: browser-side sync client
- lib/types.ts: shared types, DEMO_FEED, PLATFORM_LIMITS
- lib/image-gen.ts: server-only fal.ai + file upload helpers
- components/folk-thread-builder.ts: compose/preview/readonly component
- components/folk-thread-gallery.ts: thread listing grid component
- components/folk-campaign-manager.ts: campaign viewer with import modal
- components/socials.css: all extracted CSS (~550 lines)
mod.ts slimmed to ~616 lines: ensureDoc, image APIs, page routes
injecting <folk-*> web components, file→Automerge migration, seed
template, and module export. Thread/campaign CRUD moved from REST
to Automerge local-first sync.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 20:42:18 -08:00