Skip to content

[dashboards] Default-visible CRM + wiki nav with setup states#404

Open
alanshurafa wants to merge 7 commits into
NateBJones-Projects:mainfrom
alanshurafa:upstream/dash-nav
Open

[dashboards] Default-visible CRM + wiki nav with setup states#404
alanshurafa wants to merge 7 commits into
NateBJones-Projects:mainfrom
alanshurafa:upstream/dash-nav

Conversation

@alanshurafa

Copy link
Copy Markdown
Collaborator

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).

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

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 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" }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

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