ENG-1859 Add Roam import action for selected shared nodes#1226
Draft
sid597 wants to merge 2 commits into
Draft
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
CrossAppNodepayload only when import begins.Why
Roam could discover group-visible shared nodes, but discovery alone did not let a user pull selected Obsidian-origin nodes into the graph. The missing integration was the action that loads a selected node's full shared payload, passes it to the Roam materializer, and reports the outcome of a multi-node import.
Behavior
Selection
Import
CrossAppNodeconsumed bymaterializeObsidianNode.Results
Shared boundary
The database-to-
CrossAppNodepayload loader lives inpackages/databasebecause it is the natural cross-app boundary. The Blueprint UI, batch state, failure presentation, and ENG-1858 adapter remain Roam-specific. This PR does not refactor the existing Obsidian importer.Stack
This PR is intentionally stacked on ENG-1858 v2 / #1224:
eng-1858-materialize-obsidian-origin-markdown-into-roam-v2b977291b2cb316902774f48dThe wider dependency chain also includes ENG-1855 discovery, ENG-2019 shared discovery extraction, and ENG-1856 stable source identity.
Validation
pnpm exec turbo check-types— 8/8 workspace tasks passed, including Obsidianpnpm --filter @repo/database test:unit -- src/lib/__tests__/sharedNodes.test.ts— 1 file / 12 tests passedpnpm --filter roam test— 14 files / 63 tests passedpnpm --filter @repo/database check-types— passedpnpm --filter roam check-types— passedpnpm --filter roam build— built with 0 errorsgit diff --check— passedThe repository requests Node 22+, while the validation shell used Node 20.20.2. This produced an engine warning but no test, type-check, lint, formatting, or build failure.
Runtime demo
Loom: pending manual recording
A loadable integrated developer-extension bundle was prepared at:
/mnt/data/projects/dg-test-eng-1859The recording plan exercises the real stacked UI flow with two selected Obsidian-origin nodes:
2 imported, 0 skipped, 0 failedand identifies one updated node.Imported.Proof boundary
Automated tests cover canonical payload construction, created/updated result adaptation, sequential batching, result counts, continuing after individual failures, and actionable failure aggregation.
The pending Loom will be one manual runtime run of the real shared-persistence, Datalog, block-props, and Roam
fromMarkdownpath. It is not an automated runtime regression guard. Partial-failure continuation is unit-tested and will not be claimed as deliberately forced against live persistence unless the recording includes that scenario.Out of scope