Created
Jun 26, 18:30
Started
Jun 26, 18:43
DevOps handoff
Type
Feature
Shape
ui+db
Worktree Slug
rolio-enrich-notes-cadence
Repositories
rolio
Local URL
—
QA URL
—
Production URL
—
Acceptance Criteria
Expected Test Plan
No expected checks recorded.
Checks Run
Agent Context
Wave 1 of the Rolio Monday-demo golden path. Depends on rolio-demo-seed-cache. Shares one worktree/branch feat/rolio-demo. T3: merge SocialFinder + Enrich into ONE shared service, served from the DB cache. T4: Fathom-styled notes import that applies cached structured extraction (location/family/sports-fav/sports-disposition/hobbies/musicians). T5: per-contact cadence indicator (opt-in Yes/No + how-often) that later feeds the outreach score. See memory project_rolio_v2_outreach_plan.
Stage Timeline
Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. — means the agent didn't report that metric.
Conversation
QA review feedback, agent handoffs, and follow-up notes for this task.
Senior review -> APPROVED (2/2) for PR #16 (the 3-task rolio-demo bundle). Reviewers: Steffon (backend heavy) + Shannon (UI light), both high confidence. Backend verified end-to-end with ANTHROPIC_API_KEY UNSET: db:migrate + seed + warm rake + 70+52 tests green, deterministic (identical payload SHA across reseeds), idempotent; one shared EnrichmentService; migrations additive/reversible. UI demo-ready (admin group-by-kind + counts, socials handles, editable cadence with no-JS fallback, Fathom taxonomy). SHIP HAZARD (Steffon, major): GitHub PR #16 = origin/feat/rolio-demo at 137c1ca (43 files, REVIEWED). The LOCAL feat/rolio-demo is 2 commits AHEAD (a88fc48 + 5df4214) -- an un-reviewed Wave-2 Event Hub stacked on the SAME branch, on NO remote. Merge PR #16 from origin at 137c1ca ONLY; do NOT push the local feat/rolio-demo branch (would balloon #16 from 43 to 57 files with un-reviewed code). Move Wave 2 onto its own branch and PUSH it (currently unpushed = loss risk). Non-blocking polish: ai_cache.rb fetch TOCTOU (rescue RecordNotUnique / upsert); 20s post-import sync spinner -> shorten to ~5-8s for stage; seeds.rb header reword; admin find-by-PK vs public_id. -> reviewed.
PR #16 current head 9ff8f81 needs rework before merge. EnrichmentService.note_taxonomy caches note_extraction by contact only, so a second Fathom transcript/summary for the same contact reuses the first extraction; reproduced Denver/Broncos sample then Austin/Lakers still returning Denver/Broncos. Fix cache key/invalidation so reviewed taxonomy matches the current paste, then update PR body to include all 7 task URLs and current 231-test proof. Local review: rails test green; db:prepare/seed green; route smoke green.
PR #16 rework is pushed at current head df7f678. The stale Fathom taxonomy cache blocker is fixed by transcript-digest note_extraction keys in 2cb0e59; current branch also includes the later enrich-tags split. Verification on current head: bin/rails test -> 233 runs, 907 assertions, 0 failures. Ready for re-review.
PR #16 is not ready for QA approval yet. The admin Prompts catalog claims the enrich prompt returns facts plus public profiles, but Llm::ClaudeProvider still asks for facts only and explicitly excludes profiles. Also, PR #16 includes rolio-enrich-tags while that task is still building/claimed, and the PR targets main because Rolio has no release branch. Align the prompt/provider contract and PR scope/base before resubmitting.
QA rework pushed in PR #16 at 23b9fbb: enrich prompt catalog is facts/tags-only, includes required fact keys, and leaves public profiles in SocialFinder/social cache. Full local suite and latest GitHub Actions CI passed.
QA approved PR #16 at head 23b9fbb. Local bin/rails test passed (239 runs, 952 assertions, 0 failures), latest GitHub Actions CI run 28274558968 passed, PR is CLEAN, and main base is intentional for standalone Rolio. PR body was updated to include rolio-enrich-polish2.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
LARGE
Dev
LARGE
Actual
—
We emailed a one-tap sign-in link to . It expires shortly and can only be used once.
No email? Check spam, or close this and try again.