Skip to content

[integrations] wiki-profile consolidation worker + regenerate flow#405

Open
alanshurafa wants to merge 8 commits into
NateBJones-Projects:mainfrom
alanshurafa:upstream/wiki-profile-worker
Open

[integrations] wiki-profile consolidation worker + regenerate flow#405
alanshurafa wants to merge 8 commits into
NateBJones-Projects:mainfrom
alanshurafa:upstream/wiki-profile-worker

Conversation

@alanshurafa

Copy link
Copy Markdown
Collaborator

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.

alanshurafa and others added 3 commits June 13, 2026 14:38
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>
@github-actions github-actions Bot added dashboard Contribution: frontend template integration Contribution: MCP extension or capture source recipe Contribution: step-by-step recipe labels Jul 6, 2026
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown

OB1 PR Gate

Folder structure — All files are in allowed directories
Required files — README.md and metadata.json found in all contribution folders
Metadata valid — All metadata.json files passed JSON Schema validation
No credentials — No API keys, tokens, or secrets detected
SQL safety — No destructive SQL or core table modifications
Category artifacts — Required file types present for each category
PR format — Title follows [category] Description format
No binary blobs — No oversized or binary files
README completeness — All READMEs include Prerequisites, Steps, and Expected Outcome
Contribution dependencies — All declared skill and primitive dependencies exist and are linked in README
LLM clarity review — Covered by Claude PR Review workflow
Remote MCP pattern — No local MCP server patterns detected — uses remote MCP correctly
Tool audit link — Extensions/integrations link to the MCP Tool Audit guide
Scope check — All changes are within the contribution folder(s)
Internal links — All relative links in READMEs resolve to existing files

Result: All 15 checks passed! Ready for human review.


Post-Merge Tasks

These don't block merge — they're reminders for admins after this PR lands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +904 to +907
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);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

@alanshurafa alanshurafa force-pushed the upstream/wiki-profile-worker branch from 063d50f to 3ff84da Compare July 6, 2026 01:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dashboard Contribution: frontend template integration Contribution: MCP extension or capture source recipe Contribution: step-by-step recipe

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant