-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
phase-aPhase A: Foundation + RedditPhase A: Foundation + RedditsocialSocial platform monitoringSocial platform monitoringswarm-readyIssue is ready for the automated swarm to pick upIssue is ready for the automated swarm to pick up
Description
Summary
Wire social platform adapters into the job runner to execute social-monitor runs.
Details
The social monitoring run follows the same lifecycle as answer-visibility:
POST /projects/:name/runswithkind: 'social-monitor'creates run (status:queued)- Job runner picks up via
onRunCreatedcallback - Resolves project's configured social platforms + connections from DB
- For each platform: loads
SocialPlatformAdapter, callssearchMentions()with project keywords + canonical domains - Deduplication: UPSERT on
(platform, external_id)— skip already-captured posts - Inserts new mentions into
social_mentionstable - Run status:
completed/partial/failedbased on per-platform results
Rate limiting
Reuse the ProviderQuotaPolicy pattern with a SocialQuotaPolicy equivalent per platform.
Social Platform Registry
Similar to ProviderRegistry, create a SocialPlatformRegistry that maps configured platforms to adapter instances.
Files
packages/canonry/src/job-runner.ts(extend)packages/canonry/src/server.ts(wire social adapters)packages/canonry/src/social-registry.ts(new)
Depends on
- Social contracts, DB migration, Reddit adapter issues
Acceptance Criteria
-
social-monitorruns execute through the job runner - Mentions are deduplicated by
(platform, external_id) - Run status correctly reflects partial/complete/failed
- Rate limits are respected per platform
- Tests cover the execution flow
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
phase-aPhase A: Foundation + RedditPhase A: Foundation + RedditsocialSocial platform monitoringSocial platform monitoringswarm-readyIssue is ready for the automated swarm to pick upIssue is ready for the automated swarm to pick up