Add @dnd-kit packages to plugin host for production DragDropProvider singleton #277
Labels
No labels
abandoned
active
audit
blocked
data-safety
difficulty:easy
difficulty:hard
difficulty:high
difficulty:medium
docs
done
duplicate
notebook-v0
open
priority:high
ready
release-critical
safe-mode
spec
spec-backlog
subsystem:api
subsystem:backlog
subsystem:bases
subsystem:ci
subsystem:command
subsystem:configuration
subsystem:consolidate
subsystem:dependencies
subsystem:desktop-electron
subsystem:diffmerge
subsystem:docker
subsystem:docs
subsystem:fuzzy
subsystem:graph
subsystem:hotkeys
subsystem:lapis
subsystem:maint
subsystem:maintenance
subsystem:markdown
subsystem:markdown-lint
subsystem:md018
subsystem:notebook
subsystem:notifications
subsystem:opfs
subsystem:package
subsystem:plugin-markdown
subsystem:plugin-tasks
subsystem:plugins
subsystem:registry
subsystem:release
subsystem:renovate
subsystem:restore
subsystem:scripts
subsystem:search
subsystem:settings
subsystem:spec
subsystem:tasks
subsystem:testing
subsystem:ui
subsystem:web
subsystem:workspace
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lapis-notes/lapis#277
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
CI Electron production smoke fails with
getDragDropManager was called outside of a DragDropProviderwhen opening vaults that render CSV table grips. Local dev passes because Vite dedupes@dnd-kit/svelte; production builds can bundle duplicate dnd-kit context modules. A follow-up attempt to mark all plugin-host modules as Rollupexternalbroke host wrapper re-exports (bits-ui.jsbecame a side-effect-only import), causing runtimeAccordionexport errors.Goal
Production Electron builds use a single
@dnd-kit/svelteDragDropProvider context for bundled CSV/markdown table reorder, without breaking other plugin-host wrapper modules.Scope
@dnd-kit/dom,@dnd-kit/helpers, and@dnd-kit/svelte(+ package export subpaths) inplugin-host-modules.config.json.createDraggablethroughTableDragGrip(separate UI module graph); attach the parent row draggable handle directly like markdown tables.pluginSharedExternalsas Rollupexternalin the desktop renderer build.Acceptance Criteria
CI=1 pnpm --filter @lapis-notes/desktop-electron test:e2e:smokepasses (7/7).bits-uihost wrapper re-exports named exports (noAccordionimport map error).pnpm plugin-host:checkpasses.Validation Commands
pnpm plugin-host:generate && pnpm plugin-host:checkCI=1 pnpm --filter @lapis-notes/desktop-electron test:e2e:smokemake spec-lintRelated Issues
Implementation Summary
Registered @dnd-kit/dom, helpers, and svelte (+ sortable/utilities subpaths) in plugin-host-modules.config.json; fixed CSV row grip cells to attach the parent row draggable handle directly instead of TableDragGrip (avoids duplicate dnd-kit context in production bundles); reverted desktop Rollup externalization of all pluginSharedExternals that stripped bits-ui re-exports. Validated: pnpm plugin-host:check, make spec-lint, CI=1 desktop test:e2e:smoke 7/7.