feat(space-memory): add ingest state machine + retry reprocessor#2263
feat(space-memory): add ingest state machine + retry reprocessor#2263webguru-hypha wants to merge 30 commits into
Conversation
Import the approved PR 2248 feature set onto a clean branch while dropping transient workspace artifacts and preserving only releasable product, API, MCP, and Neon database changes. Co-authored-by: Cursor <cursoragent@cursor.com>
Add mention notification consent and delivery flows, signal-team collaboration controls, and coherence board/card UX refinements on top of the consolidated PR 2248 baseline, resolving overlap files to the latest stable behavior. Co-authored-by: Cursor <cursoragent@cursor.com>
Revert the conflicted onboarding adventure file to the known-good PR 2248 implementation so check-types passes while preserving the rest of the consolidated 2255 integration. Co-authored-by: Cursor <cursoragent@cursor.com>
…ndition Preserve bound call context whenever a room is active (including coherence threads), and start call recording/transcription on connected sessions without requiring spaceSlug at start. Resolve slug at finalize time and emit explicit error/logging when upload cannot proceed due to missing context. Co-authored-by: Cursor <cursoragent@cursor.com>
Enable edit/archive permissions for signal team members across signal cards, edit form guards, and server mutations so authorized teammates can update signals while non-members no longer see management controls. Co-authored-by: Cursor <cursoragent@cursor.com>
Move type and priority badges below the title, align edit/archive actions with the title row, and slightly increase hero height so priority overlays fully cover the image area. Co-authored-by: Cursor <cursoragent@cursor.com>
Guard nullable matrix user ids and optional slugs when evaluating signal team membership so epics check-types passes in CI. Co-authored-by: Cursor <cursoragent@cursor.com>
Reinstate dock and banner capture controls with recording status wiring, including capture mode state in group call hook and panel/overlay prop forwarding so recording controls are visible again during calls. Co-authored-by: Cursor <cursoragent@cursor.com>
Reduce spacing between signal titles and meta badges while keeping the rest of the card rhythm unchanged, and remove badge highlight fills so only icon colors convey type and priority. Co-authored-by: Cursor <cursoragent@cursor.com>
Use a stable button height and typography for the signal team Manage/Close toggle so both states render with consistent vertical size.
Keep signal cards at a board-friendly width and align metadata on a single responsive row while ensuring creator names prefer resolved member profiles over numeric ids.
Limit visible tag chips and tighten internal spacing so signal cards keep a shorter board-style height across responsive layouts.
Align signal card formatting with CI Prettier output so the Deploy Preview main job passes format:check.
Restore fixed proposal-style grid columns and gutters for signal cards while keeping mobile at one full-width card.
Wire call capture dropdown labels and status text to HumanChatPanel translations across locales, and replace the capture glyph with a clearer call-recording icon.
Reduce the Signal Team manage/done control height and prefer real member names on signal cards while labeling non-human creators as AI Agent.
Resolve authenticated user identity from the auth-scoped database, then execute signal update/delete mutations on the service database to avoid RLS-triggered 500s during authorized edits.
Replace the capture slash glyph with a stop square when capture is off, and show a clearer record circle for recording mode in both the dock button and capture dropdown.
Apply Prettier formatting to the signal card creator-name logic so Deploy Preview main format checks pass. Co-authored-by: Cursor <cursoragent@cursor.com>
Show explicit capture-off status text and require a second leave click to confirm exiting without capture so users don't assume recording occurred.
Use auto-fill signal columns for board-like responsiveness and switch metadata alignment to left when rows wrap under type/priority.
Allow recording bootstrap once call context exists and keep active call auth context synced while the same room is in session.
Keep AI conversation state when routing to another space, restore long message collapse controls, and remove ecosystem-only phrasing from navigation guidance.
Raise the default signal page size to ten and hide load-more controls when the filtered board has ten or fewer signals.
Show per-board signal totals using the combined search and board filters, and add an explicit All board tab to clear board selection. Co-authored-by: Cursor <cursoragent@cursor.com>
…ooms Include coherence-linked Matrix rooms in space discussion summaries and allow call artifact uploads for linked signal rooms, not only the main room. Co-authored-by: Cursor <cursoragent@cursor.com>
…d fails Store transcript-only captures and fall back to transcript ingest when recording upload cannot be completed, so space memory still updates. Co-authored-by: Cursor <cursoragent@cursor.com>
Aggregate matrix media from coherence-linked rooms into org memory and add structured call-artifact ingest logs plus source-specific health counters. Co-authored-by: Cursor <cursoragent@cursor.com>
Make the Neon schema-diff PR comment step non-blocking with a short timeout so transient GitHub API timeouts do not fail deploy-preview checks. Co-authored-by: Cursor <cursoragent@cursor.com>
Track call artifact ingest state transitions in Postgres, add an ops reprocessor for failed sessions, and extend retention/search indexing for recordings and transcripts so ingestion is resilient and query-ready. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Important Review skippedToo many files! This PR contains 163 files, which is 13 over the limit of 150. To get a review, narrow the scope: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (163)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
space_call_artifact_ingest_runs) and wire state transitions into call artifact upload flowPOST /api/v1/ops/space-memory/reprocess-call-artifactsto retry/requeue failed or retry-pending ingest sessionsTest plan
0052_call_artifacts_search_indexesPOST /api/v1/ops/space-memory/reprocess-call-artifactswithdry_run=trueand verify candidate listingretry_pendingPOST /api/v1/ops/space-memory/retentionin dry-run and verify call artifact counters are included/api/v1/ops/space-memory/healthexposesingest_runs_totalandingest_runs_retry_pendingMade with Cursor