Add missing database schema for email feeds and RSS processing#431
Merged
Add missing database schema for email feeds and RSS processing#431
Conversation
Two production errors occurred because code was merged without corresponding migrations: 1. perspectives.body column - createEmailPerspective() in industry-feeds-db.ts references this column (added in 158c48e) but migration was missing 2. addie_knowledge.source_url unique index - createOrUpdateRssKnowledge() in content-curator.ts uses ON CONFLICT (source_url) (added in 45450b2) but the constraint wasn't created This adds migration 068 with both schema changes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
bokelley
added a commit
that referenced
this pull request
Apr 7, 2026
Add five new storyboards and fix comply() performance for storyboard evaluations. Storyboard coverage: - capability_discovery: get_adcp_capabilities validation (#429) - campaign_governance_denied: hard denial with no escalation (#430) - campaign_governance_conditions: conditional approval flow (#430) - campaign_governance_delivery: delivery drift monitoring (#430) - creative_lifecycle: multi-format sync, list, build, preview (#431) Comply performance (#433): - extractScenariosFromStoryboard() extracts comply_scenario values from YAML - filterToKnownScenarios() validates scenario names against TRACK_SCENARIOS - Storyboard run endpoint now passes only referenced scenarios to comply(), reducing calls from 30+ to 2-5 per storyboard evaluation Track changes: - Add campaign_governance track with 5 scenarios - Add creative_lifecycle to creative track Closes #429, #430, #431, #433. Partial progress on #432. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6 tasks
bokelley
added a commit
that referenced
this pull request
Apr 8, 2026
Add five new storyboards and fix comply() performance for storyboard evaluations. Storyboard coverage: - capability_discovery: get_adcp_capabilities validation (#429) - campaign_governance_denied: hard denial with no escalation (#430) - campaign_governance_conditions: conditional approval flow (#430) - campaign_governance_delivery: delivery drift monitoring (#430) - creative_lifecycle: multi-format sync, list, build, preview (#431) Comply performance (#433): - extractScenariosFromStoryboard() extracts comply_scenario values from YAML - filterToKnownScenarios() validates scenario names against TRACK_SCENARIOS - Storyboard run endpoint now passes only referenced scenarios to comply(), reducing calls from 30+ to 2-5 per storyboard evaluation Track changes: - Add campaign_governance track with 5 scenarios - Add creative_lifecycle to creative track Closes #429, #430, #431, #433. Partial progress on #432. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
bokelley
added a commit
that referenced
this pull request
Apr 8, 2026
* feat: storyboard coverage and comply() scenario filtering Add five new storyboards and fix comply() performance for storyboard evaluations. Storyboard coverage: - capability_discovery: get_adcp_capabilities validation (#429) - campaign_governance_denied: hard denial with no escalation (#430) - campaign_governance_conditions: conditional approval flow (#430) - campaign_governance_delivery: delivery drift monitoring (#430) - creative_lifecycle: multi-format sync, list, build, preview (#431) Comply performance (#433): - extractScenariosFromStoryboard() extracts comply_scenario values from YAML - filterToKnownScenarios() validates scenario names against TRACK_SCENARIOS - Storyboard run endpoint now passes only referenced scenarios to comply(), reducing calls from 30+ to 2-5 per storyboard evaluation Track changes: - Add campaign_governance track with 5 scenarios - Add creative_lifecycle to creative track Closes #429, #430, #431, #433. Partial progress on #432. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: add empty changeset Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: storyboard-based comply() routing and full protocol coverage Five new storyboards covering uncovered protocol domains: - social_platform: accounts, audiences, native creatives, events, financials - si_session: SI offering discovery, session lifecycle - brand_rights: identity, rights licensing, creative approval - property_governance: property list CRUD, delivery validation - content_standards: standards CRUD, calibration, delivery validation comply() migration from track-based to storyboard-based routing: - PLATFORM_STORYBOARDS maps each platform type to recommended storyboards - comply() accepts storyboards option (priority: scenarios > storyboards > tracks) - evaluate_agent_quality uses PLATFORM_STORYBOARDS when no explicit tracks - Heartbeat job uses storyboard routing when agent has a registered platform type - Compare endpoint now filters to storyboard scenarios Fixed comply_scenario annotations across all original storyboards: - Replaced phantom names (account_setup, governance_setup, media_buy_flow) with real TestScenario values (full_sales_flow, create_media_buy, etc.) - Added comply_scenario to all 7 storyboards that had none - 20/21 storyboards now have test coverage (brand_rights pending #1993) Validation against training agent filed as issues: - #1990: capability_discovery creative validation failure - #1991: creative_ad_server SSE/rate limit errors - #1992: 15 storyboards skip (agent tool discovery gap) - #1993: Brand protocol needs @adcp/client scenarios - #1994: Bulk validation needs backoff Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: add compliance to training agent supported_protocols The capability_discovery scenario fails with "Tools suggest unreported protocols: compliance (has: [comply_test_controller])" because the training agent exposes comply_test_controller but doesn't declare compliance in supported_protocols. Task retrieval failures (callToolStream over stateless HTTP) tracked separately in adcontextprotocol/adcp-client#442. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: bump @adcp/client to 4.22.1 Picks up the serve() task store fix (adcp-client#443) and skip counting fix (adcp-client#441). Local validation shows 20/20 storyboards passing against the training agent. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes two production errors caused by code that was merged without corresponding database migrations:
perspectives.bodycolumn -createEmailPerspective()inindustry-feeds-db.ts(added in 158c48e) references this column for storing email newsletter content, but the migration was missingaddie_knowledge.source_urlunique index -createOrUpdateRssKnowledge()incontent-curator.ts(added in 45450b2) usesON CONFLICT (source_url)but the unique constraint wasn't createdRoot cause
Both commits were likely tested locally with a database that had these schema changes applied manually, but the migrations weren't included in the commits.
Test plan
🤖 Generated with Claude Code