[dashboards] Default-visible CRM + wiki nav with setup states#404
[dashboards] Default-visible CRM + wiki nav with setup states#404alanshurafa wants to merge 7 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: 2b027d94b7
ℹ️ 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.
Allow schema-created numeric job IDs to execute
With the repo's smart-ingest schema, ingestion_jobs.id is still bigserial (schemas/smart-ingest/schema.sql), and createJob() returns that value unchanged, so dry-run responses carry numeric job IDs. This UUID-only validation rejects those IDs on /execute (the dashboard proxy added in this commit also UUID-validates), so deployments using the checked-in schema can preview an ingest job but can no longer commit it unless the schema is migrated at the same time.
Useful? React with 👍 / 👎.
| <span className="ml-auto"><FormattedDate date={note.created_at} /></span> | ||
| <InlineToggle | ||
| action={pinNote} | ||
| fields={{ note_id: note.id, pinned: note.pinned ? "false" : "true" }} |
There was a problem hiding this comment.
Pass contact ID through inline toggles
When this Pin toggle submits, the form sends only note_id and pinned; pinNoteAction reads the contact id from formData.get("id") and only calls revalidatePath when that id is present. The update can succeed while the current contact page stays stale until a manual reload, and the task/date inline toggles repeat the same pattern, so include contactId in these toggle fields or revalidate another way.
Useful? React with 👍 / 👎.
2b027d9 to
6bf4c72
Compare
Makes the CRM and wiki nav entries visible by default, with setup cards that guide installing the optional schemas and a re-check probe. Panels degrade individually when a capability is absent.
Depends on #403 (stacked; diff includes ancestors until they merge).