ENG-2185 Move export settings out of Settings into the Export panel - #1374
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
trangdoan982
commented
Aug 31, 2026
Contributor
There was a problem hiding this comment.
Devin Review found 1 potential issue.
2 flags not posted on this PR by your GitHub settings — view them in Devin Review. (Configure)
trangdoan982
force-pushed
the
eng-2185-move-export-settings-out-of-settings-into-the-export-panel
branch
from
August 31, 2026 17:19
28c63a1 to
a2f5284
Compare
trangdoan982
changed the base branch from
roam-setting-overhaul
to
eng-2186-grammar-nodes-drill-down-and-settings-navigation-primitive
August 31, 2026 17:19
Contributor
PR size/scope checkThis PR is over our review-size guideline.
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:
|
trangdoan982
force-pushed
the
eng-2185-move-export-settings-out-of-settings-into-the-export-panel
branch
from
September 3, 2026 20:30
d528b99 to
9d3d1ae
Compare
trangdoan982
force-pushed
the
eng-2186-grammar-nodes-drill-down-and-settings-navigation-primitive
branch
from
September 3, 2026 20:30
bd1b4fe to
592a07c
Compare
trangdoan982
force-pushed
the
eng-2185-move-export-settings-out-of-settings-into-the-export-panel
branch
from
September 4, 2026 21:57
9d3d1ae to
cfba308
Compare
trangdoan982
force-pushed
the
eng-2186-grammar-nodes-drill-down-and-settings-navigation-primitive
branch
from
September 4, 2026 21:57
592a07c to
5c92bfd
Compare
trangdoan982
force-pushed
the
eng-2186-grammar-nodes-drill-down-and-settings-navigation-primitive
branch
from
September 4, 2026 22:46
5c92bfd to
92a4176
Compare
trangdoan982
force-pushed
the
eng-2185-move-export-settings-out-of-settings-into-the-export-panel
branch
from
September 4, 2026 22:46
cfba308 to
478402c
Compare
The 7 export controls were used by exactly one surface but lived in Settings, so changing an option meant leaving the Export flow, opening Settings, and coming back. Move them into a collapsed "Export options" disclosure at the bottom of the Export dialog's Export tab, and remove the Advanced > Export tab that ENG-2186 parked in Settings for this change to take out. The controls, their storage keys, and the read path in getExportSettings are unchanged, so saved values persist and export behaviour is untouched. The advancedExport tab id goes with it, and the saved "discourse-graph-export" deep link now resolves to the default tab instead of a tab that no longer renders. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The image showed the export options inside the Settings dialog, with the vertical tab list and the pre-taxonomy tab names. Both the Export tab and that chrome are gone, so the screenshot contradicted the prose above it. Removed rather than replaced: the surrounding text already names where the options live, and no fresh capture of the Export dialog is available yet. The frontmatter close-up further down is a crop of the control itself, so it stays accurate and is kept. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…eads The number and select panels in Export options defer their block-prop write behind a short timer, so an option edited a moment before clicking Export was read at its previous value. Awaited rather than fired: the commit only starts the Roam block update, so a synchronous flush would not have been enough on its own. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Review feedback on the Export dialog: the options toggle sits on the left of one row with "Exporting N results" and the discourse-context checkbox on the right, instead of taking a row of its own. The option panels are also seeded from a fresh settings read each time the section opens. Collapse unmounts them while closed, so reading once at dialog mount meant a long-lived dialog could show values that had since changed. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
trangdoan982
force-pushed
the
eng-2185-move-export-settings-out-of-settings-into-the-export-panel
branch
from
September 5, 2026 22:55
478402c to
7eaf604
Compare
Review feedback: the checkbox sits right-aligned on the line above; the line below is the Export options toggle on the left and the result count on the right. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
Reviewer brief
Export optionsdisclosure at the bottom of the Export dialog'sExporttab. The Export tab is gone from Settings. Storage keys, thegetExportSettingsread path, and export behaviour are untouched, so saved values carry over.b441825eflush inBaseTextPanel. That commit held the pending write in a ref and ran it on unmount, covering navigation away. The registry here is a superset: it also coversBaseNumberPanelandBaseSelectPanel, adds the flush-before-read the Export dialog needs, and commits exactly once — the ref version could firesyncToBlocktwice if unmount landed inside the inner 100ms window. eng-2186's separateDiscourseNodeColorSettingflush is untouched.apps/roam/src/utils/pendingSettingWrites.tsand theuseDeferredWritehook inBlockPropSettingPanels.tsx.BaseNumberPanelandBaseSelectPaneldeferred their block-prop write by 100ms and cancelled it on unmount, sochange link type → click Exportcould export the previous value andchange → Canceldropped the edit. Panels now register the pending commit next to the timer, unmount commits instead of cancelling, and the Export dialog flushes before it runs. Debouncing is deliberately kept — committing per keystroke would write to Roam on every event. This touches a component every settings panel uses, so the blast radius is the thing to check; it also fixes the same loss in Settings.ExportOptionswas moved withgit mv, so it reads as a rename. The only content changes are the import paths (it is no longer insidesettings/) and the component name.sharing-discourse-graph.mdhad a screenshot of the options inside the Settings dialog, showing the vertical tab list and the pre-taxonomy tab names. It is removed rather than replaced — the prose already names where the options live, and no fresh capture of the Export dialog exists yet, so a replacement image is worth adding once someone can grab one. The frontmatter close-up further down is a crop of the control itself and stays accurate.Verification
pnpm install --frozen-lockfilethenpnpm ci:validatefrom the repo root: exit 0.check-typesacross 12 packages, 142 tests in 23 files passing.apps/roamfile: 0 errors.Export.tsx(40) andBlockPropSettingPanels.tsx(3) report the same warning counts before and after this change (stashed and re-ran to compare), so no new ones. Oneexhaustive-depswarning this change introduced inSettings.tsxis fixed rather than left.dist/extension.jscontains the new disclosure and posthog event, and no longer contains thediscourse-graph-exporttab id.getExportTypes.ts, not at dialog mount, so live edits should apply to the next export, but that reasoning is from the code and has not been exercised.Scope check
$scope-checkagainst the ENG ticket and final diff.Done When:Three items:
BlockPropSettingPanels.tsxwrite timing, in response to a review finding. Out of the ticket'sDone When, but the move is what exposes the race — inside Settings the 100ms window was hard to hit, inside the Export dialogchange option → Exportis the primary flow. Fixing it in the shared panel was unavoidable; discussed and agreed before implementing.The Advanced > Export tab and its
advancedExportid are removed from eng-2186's taxonomy, which parked them with the commentLeaves Settings entirely in ENG-2185. The saved"discourse-graph-export"alias insettingsTabs.tsnow points at the default tab rather than a tab that no longer renders, which is what satisfies the ticket's "deep links still resolve" clause. (My earlier standaloneKNOWN_TAB_IDSfallback is gone — eng-2186'sresolveSettingsTabIddoes the job properly.)apps/website/content/roam/guides/sharing-discourse-graph.mdsaid the options live on theExporttab of the configuration, which this change makes wrong.The posthog
initialTabIdcapture now reports the resolved tab rather than the requested one, so telemetry cannot claim a tab that never opened.Local delegated full review
$dg-delegated-full-reviewwhen no other full-review workflow is available.