Skip to content

FEE-840 Add schema export for Obsidian#1163

Open
trangdoan982 wants to merge 2 commits into
mainfrom
fee-840-export-schema
Open

FEE-840 Add schema export for Obsidian#1163
trangdoan982 wants to merge 2 commits into
mainfrom
fee-840-export-schema

Conversation

@trangdoan982

@trangdoan982 trangdoan982 commented Jun 26, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds an Export discourse graph schema command and settings entry point
  • Users can select node types, relation types, relation triples, and templates to include; the selection panel enforces dependency constraints (selecting a relation triple locks in its source/destination node types and relation type)
  • Saves the selection to a dg-schema-<vault>.json file via the Electron native save dialog
  • Includes the shared foundation that the import PR builds on: ReactRootModal, useSchemaSelection, SchemaSelectionPanel, SchemaSelectionModalBody, specValidation, and nativeJsonFileDialogs

Test plan

  • pnpm --filter @discourse-graphs/obsidian check-types
  • Open Export schema modal from command palette
  • Open Export schema modal from Settings
  • Verify dependency enforcement: selecting a relation triple locks the related node/relation types
  • Export to a custom filesystem location via native save dialog
  • Verify the saved JSON contains the expected dg-schema-<vault>.json structure

Stack

This is PR 1 of 2. PR 2 (import) will be stacked on this branch.

Made with Cursor


Open in Devin Review

Adds an Export discourse graph schema command and settings entry that lets users
select node types, relation types, relation triples, and templates and saves them
to a dg-schema-<vault>.json file via the Electron save dialog. Includes the shared
selection panel, modal shell, file dialog utility, and Zod validation schema that
the upcoming import feature will also build on.

Co-authored-by: Cursor <cursoragent@cursor.com>
@linear-code

linear-code Bot commented Jun 26, 2026

Copy link
Copy Markdown

FEE-840

@supabase

supabase Bot commented Jun 26, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project zytfjzqyijgagqxrzbmz because there are no changes detected in packages/database/supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@vercel

vercel Bot commented Jun 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
discourse-graph Skipped Skipped Jun 26, 2026 7:51pm

Request Review

@graphite-app

graphite-app Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

PR size/scope check

This PR is over our review-size guideline.

  • Recommended: ~200 lines changed
  • Acceptable limit: up to 400 lines when well-scoped/self-contained
  • Preferred file count: fewer than 5 files

Please split this into smaller PRs unless there is a clear reason the changes need to land together.

If keeping it as one PR, please add a brief justification covering:

  • What single problem this PR solves
  • Why the files/changes are coupled

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Devin Review found 2 potential issues.

Open in Devin Review

Comment thread apps/obsidian/src/components/ExportSpecsModal.tsx Outdated
Comment thread apps/obsidian/src/utils/specValidation.ts
…n export

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant