[integrations] wiki-profile consolidation worker + regenerate flow#405
[integrations] wiki-profile consolidation worker + regenerate flow#405alanshurafa wants to merge 8 commits into
Conversation
The integration was ported from a bigint-id codebase and parsed thought and job ids as numbers. On Open Brain (UUID primary keys) that breaks at runtime: upsert_thought returns a UUID that extractThoughtId rejects as "no thought_id", /execute 400s on a UUID job_id, and the pro dashboard's ingest routes reject every UUID with a positive-integer guard. Convert every ingestion id field (integration + both dashboards) from number to string, validate job ids as UUIDs, and replace the 0 "no id" sentinel with an empty string. Pairs with the smart-ingest-tables schema so a job completes end to end on a fresh UUID install. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Post-UUID conversion, the integer job_id examples return 400 ("must be a UUID"). Align the docs with the handler's UUID_RE check.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
OB1 PR Gate✅ Folder structure — All files are in allowed directories Result: All 15 checks passed! Ready for human review. Post-Merge TasksThese don't block merge — they're reminders for admins after this PR lands.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 063d50fc0a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const jobId = typeof body.job_id === "string" && UUID_RE.test(body.job_id.trim()) | ||
| ? body.job_id.trim() | ||
| : ""; | ||
| if (!jobId) return json({ error: "job_id is required (must be a UUID)" }, 400); |
There was a problem hiding this comment.
Keep smart-ingest job IDs compatible with the schema
The checked-in smart-ingest installer still creates ingestion_jobs.id as bigserial and ingestion_items.job_id as bigint in schemas/smart-ingest/schema.sql, and createJob() inserts into that table and returns the generated numeric id. With this UUID-only gate, a normal dry-run job such as 1 is rejected by /execute before any DB lookup (the dashboard ingest [id] routes were changed the same way), so users on the current documented schema cannot inspect or execute dry-run ingests. Either migrate the schema to UUIDs in the same change or continue accepting numeric job ids.
Useful? React with 👍 / 👎.
063d50f to
3ff84da
Compare
Adds
integrations/consolidation-workers/wiki-profile: a worker that consolidates a per-entity wiki profile, plus a dashboard-pro regenerate flow.Depends on #404 (stacked; the dashboard regenerate UI builds on the wiki surface). Runtime dependencies: wiki schema #365 and wiki REST routes #400.