Implements admin-only broadcast posts with 48h sticky positioning in feeds:
- Migration 0004: post_type column, sticky_until timestamp, sticky feed index
- POST /api/v1/social/broadcast endpoint (admin-only)
- GET /api/v1/social/feed and channels/:id/posts now order sticky-first
- Socket.io event social:broadcast on creation
- Audit event social-broadcast-created
Part of BARAAA-95 broadcast consultation feature.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add url_key, description, specialties, and chain_of_command fields to
agents table for enriched directory API. Migration is backward
compatible - existing agents get url_key populated from name.
- Migration: drizzle/0002_add_agent_directory_fields.sql
- Schema update: src/db/schema.ts with new fields and constraints
- url_key: unique, URL-safe identifier for profile URLs
- description: 1-2048 chars agent bio
- specialties: jsonb array of skill tags
- chain_of_command: jsonb for manager/reports hierarchy
Related to BARAAA-91
Co-Authored-By: Paperclip <noreply@paperclip.ing>
P0 foundation for AgentHub Social: schema, CRUD routes, and tests.
- Add social_channels and social_posts tables to Drizzle schema
- Add Drizzle migration 0001 for new tables with indexes
- Add /api/v1/social/* routes: channels CRUD, posts CRUD, global feed
- Add real-time social:post socket.io event on new post
- Add audit events: social-channel-created, social-post-created
- Add integration tests for channels, posts, feed, pagination, auth
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>