From 11f412bfdfd3da685f3da8124c11e31d2331d401 Mon Sep 17 00:00:00 2001
From: Nick Gomez <122398915+nick-inkeep@users.noreply.github.com>
Date: Sun, 28 Jun 2026 00:39:24 -0700
Subject: [PATCH] docs(contributing): clean PR template + fix bug-form brand
(#2234)
Rewrite PULL_REQUEST_TEMPLATE.md to drop the internal-monorepo / mirror /
"link you won't be able to open" narration (the same leakage cleaned from the
bridge comment in #2227), keeping the checklist and a contributor-framed
closes-not-merged note. Fix "Open Knowledge" to "OpenKnowledge" in the
bug-report form.
GitOrigin-RevId: dd0982dc2ad5fb3b89ed10c43fa60f25c8f1c6d0
---
.github/ISSUE_TEMPLATE/bug_report.yml | 4 +-
.github/PULL_REQUEST_TEMPLATE.md | 11 +-
docs/scripts/generate-og-wordmark.ts | 1 -
.../app/(home)/sections/eng-specs-graphic.tsx | 1 -
.../sections/knowledge-base-graphic.tsx | 1 -
docs/src/components/copy-prompt.tsx | 3 +-
docs/src/components/ok-editor/bubble-menu.tsx | 3 +-
docs/src/components/ok-editor/drag-handle.tsx | 3 +-
.../ok-editor/preview-code-block.tsx | 1 -
docs/src/components/overview-blocks.tsx | 1 -
docs/src/components/page-markdown-actions.tsx | 3 +-
docs/src/components/tabs.test.ts | 1 -
docs/src/components/tabs.tsx | 1 -
docs/src/lib/deferred-share.ts | 1 -
docs/src/lib/share-splash.ts | 1 -
docs/src/lib/track.ts | 1 -
packages/app/playwright.a11y.config.ts | 1 -
packages/app/playwright.config.ts | 1 -
packages/app/playwright.visual.config.ts | 1 -
packages/app/src/build/app-version.ts | 3 +-
.../app/src/build/electron-mode-class.test.ts | 1 -
.../src/components/ActivityModeContent.tsx | 5 -
.../src/components/ArrayOfObjectsWidget.tsx | 1 -
.../app/src/components/AuthModal.dom.test.tsx | 1 -
packages/app/src/components/AuthModal.tsx | 10 +-
.../components/AutoSyncOnboardingDialog.tsx | 5 +-
packages/app/src/components/BetaBadge.tsx | 1 -
.../components/BottomComposer.dom.test.tsx | 3 +-
.../app/src/components/BottomComposer.tsx | 4 +-
.../ClaudeReadinessBanner.dom.test.tsx | 1 -
.../src/components/CloneDialog.dom.test.tsx | 1 -
.../ComposerContextChips.dom.test.tsx | 1 -
.../src/components/ComposerContextChips.tsx | 1 -
packages/app/src/components/ConsentDialog.tsx | 1 -
packages/app/src/components/CopyButton.tsx | 4 +-
...ojectDialog.cascade-staleness.dom.test.tsx | 1 -
.../src/components/CreateProjectDialog.tsx | 4 +-
.../components/CreateProjectMenuTrigger.tsx | 1 -
.../components/DeleteConfirmationDialog.tsx | 4 +-
.../app/src/components/DiffViewBoundary.tsx | 3 +-
.../app/src/components/DocPanel.dom.test.tsx | 1 -
.../src/components/DocumentBoundary.test.ts | 4 +-
.../app/src/components/DocumentBoundary.tsx | 1 -
.../components/DocumentErrorBoundary.test.ts | 1 -
.../src/components/EditorActivityPool.test.ts | 2 -
.../app/src/components/EditorActivityPool.tsx | 1 -
...torActivityPool.warm-skeleton.dom.test.tsx | 5 -
packages/app/src/components/EditorTabs.tsx | 7 +-
.../src/components/EmptyEditorState.test.ts | 1 -
.../app/src/components/EmptyEditorState.tsx | 3 +-
.../FileTree.showall-lazy.dom.test.tsx | 1 -
.../FileTree.showall-truncation.dom.test.tsx | 1 -
.../FileTree.superseded-refresh.dom.test.tsx | 1 -
packages/app/src/components/FileTree.tsx | 21 +-
.../app/src/components/FrontmatterRow.tsx | 1 -
...GraphPanel.external-link-open.dom.test.tsx | 1 -
packages/app/src/components/GraphPanel.tsx | 3 +-
.../InstallInClaudeDesktopDialog.tsx | 1 -
.../src/components/InteractionPropPanel.tsx | 1 -
.../app/src/components/McpConsentDialog.tsx | 1 -
.../src/components/McpConsentDialogBody.tsx | 1 -
.../src/components/MountStalledAffordance.tsx | 1 -
packages/app/src/components/NavigatorApp.tsx | 1 -
.../app/src/components/NewItemDialog.test.ts | 1 -
packages/app/src/components/ObjectWidget.tsx | 1 -
packages/app/src/components/PageHeader.tsx | 1 -
.../app/src/components/PageHeaderWidgets.tsx | 1 -
.../app/src/components/ProjectSwitcher.tsx | 1 -
.../PropertyInlineLinks.dom.test.tsx | 1 -
.../src/components/PropertyInlineLinks.tsx | 1 -
.../PropertyPanel.nested-crud.dom.test.tsx | 4 +-
.../app/src/components/PropertyPanel.test.tsx | 3 +-
packages/app/src/components/PropertyPanel.tsx | 1 -
.../src/components/PublishToGitHubDialog.tsx | 1 -
.../app/src/components/SettingsButton.tsx | 1 -
.../ShareBranchSwitchDialog.dom.test.tsx | 1 -
.../components/ShareBranchSwitchDialog.tsx | 1 -
packages/app/src/components/ShareButton.tsx | 1 -
.../app/src/components/SharingModeField.tsx | 1 -
.../src/components/SidebarSearchBar.test.ts | 1 -
.../app/src/components/SidebarSearchBar.tsx | 1 -
.../SkillEditorActions.dom.test.tsx | 1 -
.../app/src/components/SkillEditorActions.tsx | 1 -
.../components/SkillProperties.dom.test.tsx | 1 -
.../app/src/components/SyncStatusBadge.tsx | 5 -
packages/app/src/components/TemplateForm.tsx | 1 -
.../TemplateProperties.dom.test.tsx | 1 -
.../TerminalCliMissingBanner.dom.test.tsx | 1 -
.../src/components/TerminalDock.dom.test.tsx | 1 -
.../TerminalExitNotice.dom.test.tsx | 1 -
.../src/components/TerminalPanel.dom.test.tsx | 1 -
.../TerminalPanel.launch.dom.test.tsx | 1 -
packages/app/src/components/TextViewer.tsx | 1 -
packages/app/src/components/TimelinePanel.tsx | 9 +-
.../app/src/components/TrashFailureModal.tsx | 2 -
.../src/components/UpdateNotices.shared.ts | 1 -
.../app/src/components/UpdateNotices.test.ts | 9 -
.../src/components/ask-ai-composer-events.ts | 1 -
.../command-palette-flicker.test.ts | 2 -
.../components/command-palette-semantic.ts | 1 -
.../command-palette-tag-search.test.ts | 1 -
.../components/command-palette-tag-search.ts | 1 -
.../components/composer-draft-store.test.ts | 1 -
.../src/components/composer-draft-store.ts | 4 +-
.../composer-shared-draft.dom.test.tsx | 5 +-
.../app/src/components/editor-area-overlay.ts | 1 -
.../editor/SelectionAnnouncer.test.ts | 1 -
.../components/editor/SelectionAnnouncer.tsx | 1 -
.../empty-state/CopyablePromptList.tsx | 3 +-
.../CreatePromptComposer.dom.test.tsx | 1 -
.../src/components/extension-picker-utils.ts | 1 -
.../src/components/file-tree-adapter.test.ts | 1 -
.../file-tree-extension-badge.dom.test.tsx | 1 -
.../components/file-tree-extension-badge.ts | 1 -
.../app/src/components/file-tree-merge.ts | 1 -
.../src/components/file-tree-okignore.test.ts | 1 -
.../file-tree-rename-chip.dom.test.tsx | 1 -
.../src/components/file-tree-rename-chip.ts | 1 -
.../components/file-tree-rename-validation.ts | 1 -
.../app/src/components/file-tree-reveal.ts | 1 -
.../components/file-tree-trash-copy.test.ts | 1 -
.../src/components/file-tree-trash-copy.ts | 1 -
.../app/src/components/file-tree-utils.ts | 1 -
packages/app/src/components/graph-colors.ts | 1 -
.../app/src/components/graph-label-utils.ts | 1 -
.../handoff/EditWithAiPanel.dom.test.tsx | 1 -
.../handoff/EditWithAiPopover.dom.test.tsx | 1 -
.../components/handoff/EditWithAiPopover.tsx | 1 -
.../handoff/OpenInAgentContextSubmenu.tsx | 1 -
.../handoff/OpenInAgentEmptySpaceSubmenu.tsx | 1 -
.../components/handoff/OpenInAgentMenu.tsx | 1 -
.../handoff/OpenInAgentMenuItem.test.ts | 1 -
.../handoff/OpenInAgentMenuItem.tsx | 1 -
.../OpenInAgentTerminalRow.dom.test.tsx | 1 -
.../dispatch-single-entry-point.test.ts | 1 -
.../handoff/terminal-launch-events.ts | 1 -
.../handoff/useHandoffDispatch.test.ts | 1 -
.../components/handoff/useHandoffDispatch.ts | 1 -
.../handoff/useInstalledAgents.test.ts | 1 -
.../components/handoff/useInstalledAgents.ts | 1 -
.../src/components/page-header-utils.test.ts | 2 -
.../app/src/components/page-header-utils.ts | 1 -
.../app/src/components/prewarm-correlation.ts | 1 -
.../components/property-inline-link-tokens.ts | 1 -
.../components/resolve-conflict-dispatch.ts | 4 +-
.../settings/AccountSection.dom.test.tsx | 1 -
.../EmbeddingsKeySection.dom.test.tsx | 1 -
.../settings/SearchSection.dom.test.tsx | 1 -
.../settings/SettingsDialogBody.test.ts | 1 -
.../settings/SettingsDialogBodyLazy.ts | 1 -
.../settings/SettingsDialogErrorBoundary.tsx | 1 -
.../settings/SettingsDialogShell.dom.test.tsx | 1 -
.../components/settings/SharingSection.tsx | 1 -
.../settings/SkillTargetsPicker.dom.test.tsx | 1 -
.../SkillsManagerSection.dom.test.tsx | 1 -
.../settings/SkillsManagerSection.tsx | 1 -
.../components/settings/okignore-doc.test.ts | 1 -
.../src/components/settings/okignore-doc.ts | 1 -
.../components/settings/okignore-preview.ts | 1 -
.../components/settings/okignore-warnings.ts | 1 -
.../components/settings/schema-walker.test.ts | 1 -
.../src/components/settings/schema-walker.ts | 2 -
.../settings/use-config-form.test.ts | 5 -
.../components/settings/use-config-form.ts | 2 -
.../src/components/share-metadata-rows.tsx | 1 -
.../src/components/sidebar-hover-prewarm.ts | 1 -
packages/app/src/components/skill-actions.tsx | 1 -
.../src/components/template-picker-utils.ts | 1 -
.../components/terminal-session-registry.ts | 1 -
packages/app/src/components/terminal-wheel.ts | 1 -
.../src/components/text-viewer-languages.ts | 1 -
packages/app/src/components/ui/command.tsx | 1 -
packages/app/src/components/ui/form.test.ts | 1 -
.../app/src/editor/ComposerMentionInput.tsx | 1 -
packages/app/src/editor/DocumentContext.tsx | 3 +-
packages/app/src/editor/SourceEditor.tsx | 1 -
packages/app/src/editor/TiptapEditor.tsx | 4 +-
packages/app/src/editor/active-editor.ts | 1 -
.../src/editor/asset-dispatch/dispatcher.ts | 1 -
.../app/src/editor/asset-dispatch/index.ts | 1 -
.../app/src/editor/asset-dispatch/registry.ts | 1 -
.../app/src/editor/asset-dispatch/types.ts | 1 -
.../editor/binding-staleness-guard.test.ts | 9 -
.../app/src/editor/binding-staleness-guard.ts | 1 -
.../app/src/editor/block-ux/keyboard-nav.ts | 1 -
.../src/editor/branch-invalidation.test.ts | 1 -
.../app/src/editor/branch-invalidation.ts | 1 -
.../src/editor/bubble-menu/BubbleMenuBar.tsx | 3 +-
.../EditWithAiBubbleButton.dom.test.tsx | 1 -
.../bubble-menu/EditWithAiBubbleButton.tsx | 1 -
.../editor/bubble-menu/FileBubbleButtons.tsx | 1 -
.../FootnoteBubbleButton.dom.test.tsx | 1 -
.../bubble-menu/FootnoteBubbleButton.tsx | 1 -
.../bubble-menu/ImageAlignButtons.test.ts | 1 -
.../editor/bubble-menu/ImageAlignButtons.tsx | 1 -
.../app/src/editor/client-persistence.test.ts | 4 +-
packages/app/src/editor/client-persistence.ts | 4 +-
.../clipboard/clipboard-sanitize.test.ts | 2 -
.../editor/clipboard/clipboard-sanitize.ts | 3 -
.../clipboard-walker-fallback-palette.test.ts | 2 -
.../clipboard-walker-fallback-palette.ts | 1 -
.../editor/clipboard/clipboard-walker.test.ts | 5 -
.../src/editor/clipboard/clipboard-walker.ts | 4 -
.../editor/clipboard/detect-source.test.ts | 1 -
.../app/src/editor/clipboard/detect-source.ts | 1 -
.../src/editor/clipboard/handle-drop.test.ts | 1 -
.../src/editor/clipboard/handle-paste.test.ts | 1 -
.../app/src/editor/clipboard/handle-paste.ts | 1 -
packages/app/src/editor/clipboard/index.ts | 1 -
.../src/editor/clipboard/instrument.test.ts | 1 -
.../app/src/editor/clipboard/instrument.ts | 1 -
.../src/editor/clipboard/is-markdown.test.ts | 1 -
.../app/src/editor/clipboard/is-markdown.ts | 1 -
...on-portable-render-source-fallback.test.ts | 1 -
.../non-portable-render-source-fallback.ts | 1 -
.../clipboard/paste-failure-toast.test.ts | 1 -
.../editor/clipboard/paste-failure-toast.ts | 1 -
.../src/editor/clipboard/serialize.test.ts | 5 -
.../app/src/editor/clipboard/serialize.ts | 1 -
.../editor/clipboard/shift-tracker.test.ts | 1 -
.../app/src/editor/clipboard/shift-tracker.ts | 1 -
.../source-clipboard-recovery.test.ts | 1 -
.../editor/clipboard/source-clipboard.test.ts | 1 -
.../src/editor/components/Accordion.test.tsx | 1 -
.../app/src/editor/components/Accordion.tsx | 1 -
packages/app/src/editor/components/Audio.tsx | 1 -
.../src/editor/components/Callout.test.tsx | 1 -
.../app/src/editor/components/Callout.tsx | 1 -
.../CodePreviewEditModal.dom.test.tsx | 1 -
.../components/CodePreviewEditModal.tsx | 5 +-
packages/app/src/editor/components/Embed.tsx | 1 -
.../app/src/editor/components/File.test.tsx | 1 -
packages/app/src/editor/components/File.tsx | 1 -
packages/app/src/editor/components/Image.tsx | 1 -
.../app/src/editor/components/Math.test.tsx | 1 -
packages/app/src/editor/components/Math.tsx | 1 -
.../src/editor/components/Mermaid.test.tsx | 1 -
.../app/src/editor/components/Mermaid.tsx | 1 -
packages/app/src/editor/components/Mirror.tsx | 2 -
.../src/editor/components/MirrorSource.tsx | 1 -
packages/app/src/editor/components/Pdf.tsx | 7 +-
.../editor/components/PropPanel.dom.test.tsx | 1 -
.../src/editor/components/PropPanel.test.tsx | 7 -
.../app/src/editor/components/PropPanel.tsx | 7 +-
.../src/editor/components/ResizeHandles.tsx | 4 +-
.../components/SrcAutocomplete.dom.test.tsx | 1 -
.../src/editor/components/SrcAutocomplete.tsx | 1 -
.../app/src/editor/components/Tab.test.tsx | 1 -
packages/app/src/editor/components/Tab.tsx | 1 -
.../src/editor/components/Tabs.dom.test.tsx | 1 -
packages/app/src/editor/components/Tabs.tsx | 1 -
.../src/editor/components/TagDialog.test.tsx | 1 -
.../app/src/editor/components/TagDialog.tsx | 1 -
.../src/editor/components/TagView.test.tsx | 1 -
.../app/src/editor/components/TagView.tsx | 1 -
packages/app/src/editor/components/Video.tsx | 1 -
.../editor/components/jsx-host-context.tsx | 1 -
.../src/editor/components/pdf-layout.test.ts | 1 -
.../app/src/editor/components/pdf-layout.ts | 1 -
.../components/use-mirror-source.test.ts | 1 -
.../editor/components/use-mirror-source.ts | 2 -
.../composer-mention/composer-mention.ts | 2 -
.../src/editor/edit-with-ai-selection.test.ts | 1 -
.../app/src/editor/edit-with-ai-selection.ts | 1 -
packages/app/src/editor/editor-cache.test.ts | 45 +--
packages/app/src/editor/editor-cache.ts | 14 +-
packages/app/src/editor/editor-tabs.test.ts | Bin 28452 -> 28451 bytes
.../extensions/CodeBlockView.dom.test.tsx | 1 -
.../src/editor/extensions/CodeBlockView.tsx | 7 +-
.../ImageInlineZoomView.dom.test.tsx | 6 +-
.../editor/extensions/ImageInlineZoomView.tsx | 1 -
.../extensions/InternalLinkPropPanel.tsx | 1 -
.../extensions/JsxComponentView.test.ts | 2 -
.../editor/extensions/JsxComponentView.tsx | 3 -
.../editor/extensions/LinkPropPanelCopy.tsx | 1 -
.../src/editor/extensions/MathInlineView.tsx | 1 -
.../extensions/RawMdxFallbackCMView.test.ts | 3 -
.../extensions/RawMdxFallbackCMView.tsx | 1 -
.../editor/extensions/WikiLinkPropPanel.tsx | 3 -
.../src/editor/extensions/block-mover.test.ts | 3 -
.../extensions/bridge-id-plugin.test.ts | 3 -
.../src/editor/extensions/bridge-id-plugin.ts | 1 -
.../chunk-wrapper-decoration.test.ts | 2 -
.../extensions/chunk-wrapper-decoration.ts | 1 -
.../editor/extensions/code-block-languages.ts | 1 -
.../extensions/code-block-lowlight-plugin.ts | 1 -
.../src/editor/extensions/code-block-meta.ts | 1 -
.../extensions/code-block-preview-csp.test.ts | 1 -
.../app/src/editor/extensions/code-block.ts | 2 -
.../extensions/frozen-table-headers.test.ts | 1 -
.../editor/extensions/frozen-table-headers.ts | 1 -
.../extensions/link-edit-autoopen.test.ts | 1 -
.../link-resolution-decoration.test.ts | 8 -
.../extensions/link-resolution-decoration.ts | 1 -
.../editor/extensions/link-resolution.test.ts | 1 -
.../src/editor/extensions/link-resolution.ts | 1 -
.../mark-identity-decoration.test.ts | 5 -
.../extensions/mark-identity-decoration.ts | 1 -
.../editor/extensions/mark-identity.test.ts | 6 -
.../src/editor/extensions/mark-identity.ts | 4 -
.../mark-interaction-bridge.test.tsx | 9 +-
.../extensions/mark-interaction-bridge.ts | 5 -
.../editor/extensions/nested-cm-extensions.ts | 1 -
.../extensions/raw-mdx-fallback.test.ts | 3 -
.../editor/extensions/raw-mdx-nav-event.ts | 1 -
.../extensions/selection-state-plugin.test.ts | 11 +-
.../extensions/selection-state-plugin.ts | 9 +-
.../extensions/source-dirty-observer.ts | 1 -
.../editor/extensions/tab-focus-trap.test.ts | 1 -
.../src/editor/extensions/tab-focus-trap.ts | 1 -
.../extensions/table-insert-commands.ts | 1 -
.../extensions/table-insert-controls.ts | 1 -
.../src/editor/extensions/tag-click-plugin.ts | 1 -
.../editor/extensions/tag-suggestion.test.ts | 6 +-
.../src/editor/extensions/tag-suggestion.ts | 1 -
.../extensions/wiki-link-icon.dom.test.tsx | 1 -
.../src/editor/hooks/use-block-selection.ts | 1 -
packages/app/src/editor/http-client.ts | 1 -
.../editor/image-upload/current-doc-name.ts | 1 -
.../media-drop-shape-invariant.test.ts | 1 -
.../app/src/editor/interaction-layer-host.ts | 1 -
.../app/src/editor/interaction-layer.test.ts | 12 +-
packages/app/src/editor/interaction-layer.tsx | 8 -
packages/app/src/editor/is-system-doc.ts | 1 -
packages/app/src/editor/mount-promise.test.ts | 54 +--
packages/app/src/editor/mount-promise.ts | 15 +-
packages/app/src/editor/observer-sync.test.ts | 1 -
packages/app/src/editor/observers.test.ts | 17 +-
packages/app/src/editor/observers.ts | 9 +-
packages/app/src/editor/page-list-cache.ts | 1 -
.../editor/pattern-d-schema-identity.test.ts | 3 -
.../editor/pattern-d-walk-currency.test.ts | 3 -
.../src/editor/plugins/agent-flash-source.ts | 3 +-
.../editor/plugins/asset-context-menu.test.ts | 1 -
.../src/editor/plugins/asset-context-menu.ts | 1 -
.../app/src/editor/plugins/md-link-source.ts | 7 +-
.../editor/plugins/wiki-link-source.test.ts | 1 -
.../src/editor/plugins/wiki-link-source.ts | 9 +-
packages/app/src/editor/provider-pool.test.ts | 7 +-
packages/app/src/editor/provider-pool.ts | 12 +-
.../src/editor/registry/lucide-svg.test.ts | 1 -
.../resolve-descriptor-placeholder.test.ts | 1 -
.../app/src/editor/safe-navigation-url.ts | 1 -
packages/app/src/editor/selection-context.ts | 1 -
packages/app/src/editor/selection-stats.ts | 1 -
.../src/editor/selection/entry-label.test.ts | 1 -
.../app/src/editor/selection/entry-label.ts | 1 -
.../slash-command/auto-open-flag.test.ts | 1 -
.../slash-command/component-items.test.ts | 2 -
.../editor/slash-command/component-items.tsx | 1 -
.../slash-command/embed-starter-items.test.ts | 1 -
.../slash-command/embed-starter-items.tsx | 1 -
.../editor/source-polish/view-plugin.test.ts | 1 -
.../src/editor/source-polish/view-plugin.ts | 1 -
packages/app/src/editor/sync-promise.test.ts | 7 +-
packages/app/src/editor/sync-promise.ts | 2 -
packages/app/src/editor/tab-identity.ts | 1 -
.../table-controls/TableCellHandles.tsx | 1 -
.../tag-suggestion/TagSuggestionMenu.tsx | 1 -
.../app/src/editor/typing-burst-detector.ts | 1 -
.../app/src/editor/use-editor-mode.test.ts | 7 -
packages/app/src/editor/use-editor-mode.ts | 3 +-
.../editor/utils/animate-align-change.test.ts | 1 -
.../src/editor/utils/animate-align-change.ts | 1 -
.../app/src/editor/utils/editor-strings.ts | 1 -
.../editor/utils/filter-assets-by-accept.ts | 1 -
.../app/src/editor/utils/sanitize-url.test.ts | 3 +-
packages/app/src/editor/utils/sanitize-url.ts | 1 -
packages/app/src/editor/utils/severity.ts | 1 -
.../src/editor/utils/validate-css-length.ts | 1 -
.../editor/utils/validate-media-url.test.ts | 4 -
.../src/editor/utils/validate-media-url.ts | 1 -
.../editor/walk-currency-extension.test.ts | 6 -
.../app/src/editor/walk-currency-extension.ts | 1 -
.../src/editor/walk-currency-test-harness.ts | 1 -
packages/app/src/globals.alpha-aware.test.ts | 1 -
.../app/src/globals.image-zoom-dark.test.ts | 1 -
.../src/globals.reduced-transparency.test.ts | 1 -
packages/app/src/hooks/use-folder-config.ts | 1 -
packages/app/src/hooks/use-git-sync-status.ts | 1 -
.../hooks/use-selection-context.dom.test.tsx | 1 -
packages/app/src/lib/api-config.ts | 1 -
packages/app/src/lib/cc1.ts | 1 -
packages/app/src/lib/client-fetch.test.ts | 4 +-
.../lib/config-ignore-nested-error-events.ts | 1 -
.../config-provider.user-synced.dom.test.tsx | 1 -
.../app/src/lib/config-validation-events.ts | 1 -
packages/app/src/lib/consent-store.ts | 1 -
packages/app/src/lib/create-file-events.ts | 1 -
packages/app/src/lib/current-branch-store.ts | 3 +-
packages/app/src/lib/desktop-bridge-types.ts | 4 +-
packages/app/src/lib/doc-panel-width-store.ts | 3 +-
packages/app/src/lib/error-state.ts | 1 -
packages/app/src/lib/external-link.test.ts | 1 -
.../lib/file-menu-target-resolvers.test.ts | 1 -
.../app/src/lib/file-menu-target-resolvers.ts | 1 -
.../lib/file-tree-menu-action-events.test.ts | 1 -
.../src/lib/file-tree-menu-action-events.ts | 1 -
packages/app/src/lib/folder-config-api.ts | 1 -
packages/app/src/lib/folder-config-paths.ts | 1 -
.../lib/handoff/cowork-skill-install.test.ts | 1 -
.../src/lib/handoff/cowork-skill-install.ts | 1 -
packages/app/src/lib/handoff/dispatch.ts | 1 -
.../app/src/lib/handoff/install-detect.ts | 1 -
packages/app/src/lib/handoff/open-external.ts | 1 -
.../src/lib/handoff/skill-installer.test.ts | 1 -
.../app/src/lib/handoff/skill-installer.ts | 4 +-
packages/app/src/lib/handoff/targets.ts | 1 -
packages/app/src/lib/handoff/telemetry.ts | 1 -
.../use-claude-desktop-integration.test.ts | 2 -
.../handoff/use-claude-desktop-integration.ts | 1 -
.../lib/install-client-log-forwarder.test.ts | 1 -
.../src/lib/install-client-log-forwarder.ts | 10 +-
.../app/src/lib/install-deep-link-listener.ts | 1 -
.../app/src/lib/install-onboarding-toast.ts | 1 -
.../src/lib/install-server-drift-listener.ts | 1 -
.../app/src/lib/lazy-with-preload.test.ts | 1 -
packages/app/src/lib/lazy-with-preload.ts | 1 -
.../app/src/lib/managed-artifact-doc-name.ts | 2 -
packages/app/src/lib/mcp-consent-store.ts | 1 -
packages/app/src/lib/parse-api-error.test.ts | 1 -
packages/app/src/lib/parse-api-error.ts | 1 -
.../app/src/lib/parse-server-response.test.ts | 1 -
packages/app/src/lib/parse-server-response.ts | 1 -
.../perf/cold-mount-instrumentation.test.ts | 11 +-
.../lib/perf/cold-mount-instrumentation.ts | 7 +-
packages/app/src/lib/perf/collector.ts | 1 -
.../app/src/lib/perf/env-override.test.ts | 1 -
packages/app/src/lib/perf/env-override.ts | 1 -
.../app/src/lib/perf/get-pm-stats.test.ts | 8 -
packages/app/src/lib/perf/get-pm-stats.ts | 1 -
packages/app/src/lib/perf/hdr-histogram.ts | 1 -
packages/app/src/lib/perf/index.ts | 1 -
packages/app/src/lib/perf/mark.test.ts | 3 +-
packages/app/src/lib/perf/mark.ts | 4 +-
.../src/lib/perf/profiler-boundary.test.tsx | 1 -
.../app/src/lib/perf/profiler-boundary.tsx | 1 -
.../lib/perf/scheduler-polyfill-shim.test.ts | 1 -
.../src/lib/perf/scheduler-polyfill-shim.ts | 1 -
packages/app/src/lib/perf/types.ts | 1 -
packages/app/src/lib/perf/web-vitals.ts | 1 -
packages/app/src/lib/preferred-agent-store.ts | 1 -
packages/app/src/lib/project-paths.ts | 1 -
packages/app/src/lib/relaunch-store.test.ts | 1 -
packages/app/src/lib/relaunch-store.ts | 1 -
.../app/src/lib/server-info-refresh.test.ts | 1 -
packages/app/src/lib/server-info-refresh.ts | 4 +-
packages/app/src/lib/server-instance-store.ts | 1 -
.../app/src/lib/share/branch-switch-flow.ts | 1 -
.../src/lib/share/clipboard-adapter.test.ts | 1 -
.../app/src/lib/share/clipboard-adapter.ts | 1 -
.../src/lib/share/clone-controller.test.ts | 2 -
.../app/src/lib/share/clone-controller.ts | 1 -
packages/app/src/lib/share/consent-flow.ts | 1 -
.../app/src/lib/share/publish-wizard.test.ts | 2 -
packages/app/src/lib/share/publish-wizard.ts | 4 -
packages/app/src/lib/share/receive-flow.ts | 1 -
packages/app/src/lib/share/receive-store.ts | 1 -
.../src/lib/share/run-share-action.test.ts | 1 -
packages/app/src/lib/show-all-stream.ts | 1 -
packages/app/src/lib/sidebar-pin-store.ts | 3 +-
.../app/src/lib/single-file-initial-doc.ts | 1 -
packages/app/src/lib/skills-api.ts | 1 -
packages/app/src/lib/terminal-height-store.ts | 3 +-
.../transports/auth-query-transport.test.ts | 1 -
.../lib/transports/auth-query-transport.ts | 7 +-
.../app/src/lib/transports/auth-transport.ts | 4 +-
.../transports/buffered-async-stream.test.ts | 3 +-
.../lib/transports/buffered-async-stream.ts | 1 -
.../lib/transports/clone-transport.test.ts | 1 -
.../app/src/lib/transports/clone-transport.ts | 4 +-
.../transports/embeddings-key-transport.ts | 4 +-
.../app/src/lib/unified-agent-store.test.ts | 1 -
packages/app/src/lib/unified-agent-store.ts | 1 -
.../app/src/lib/update-notices-store.test.ts | 1 -
packages/app/src/lib/update-notices-store.ts | 1 -
.../app/src/lib/use-activity-panel.test.ts | 1 -
packages/app/src/lib/use-activity-panel.ts | 4 -
packages/app/src/lib/use-frontmatter-field.ts | 1 -
packages/app/src/lib/use-server-keepalive.ts | 1 -
.../app/src/lib/use-settings-route.test.ts | 1 -
packages/app/src/lib/use-settings-route.ts | 1 -
packages/app/src/lib/workspace-paths.ts | 1 -
.../PresenceBar-avatar-click.test.tsx | 1 -
packages/app/src/presence/PresenceBar.test.ts | 1 -
packages/app/src/presence/identity.ts | 1 -
packages/app/src/presence/use-presence.ts | 1 -
packages/app/src/server/agent-sim.ts | 9 +-
packages/app/src/server/api-config-handler.ts | 1 -
packages/app/src/server/hocuspocus-plugin.ts | 12 +-
packages/app/src/telemetry-impl.ts | 3 +-
.../app/tests/a11y/component-blocks.e2e.ts | 8 -
.../conversion/conversion-fidelity.test.ts | 8 -
.../_fixtures/init-load-byte-stable-corpus.ts | 1 -
.../init-load-byte-stable-snapshot.ts | 1 -
.../integration/advisory-warnings.test.ts | 1 -
.../app/tests/integration/agent-undo.test.ts | 1 -
.../api-error-envelope/agent-activity.test.ts | 1 -
.../agent-burst-diff.test.ts | 1 -
.../api-error-envelope/agent-patch.test.ts | 1 -
.../api-error-envelope/agent-undo.test.ts | 1 -
.../api-error-envelope/agent-write-md.test.ts | 1 -
.../api-error-envelope/agent-write.test.ts | 1 -
.../auth-query-transport-signout.test.ts | 1 -
.../backlink-counts.test.ts | 1 -
.../api-error-envelope/backlinks.test.ts | 1 -
.../api-error-envelope/create-folder.test.ts | 1 -
.../api-error-envelope/create-page.test.ts | 1 -
.../api-error-envelope/dead-links.test.ts | 1 -
.../api-error-envelope/delete-path.test.ts | 1 -
.../api-error-envelope/document-list.test.ts | 1 -
.../api-error-envelope/document-read.test.ts | 1 -
.../api-error-envelope/folder-config.test.ts | 1 -
.../api-error-envelope/forward-links.test.ts | 1 -
.../history-version.test.ts | 1 -
.../api-error-envelope/history.test.ts | 1 -
.../api-error-envelope/hubs.test.ts | 1 -
.../installed-agents.test.ts | 1 -
.../api-error-envelope/link-graph.test.ts | 1 -
.../local-op-auth-login.test.ts | 1 -
.../local-op-auth-repos.test.ts | 1 -
.../local-op-auth-set-identity.test.ts | 1 -
.../local-op-auth-signout.test.ts | 1 -
.../local-op-auth-status.test.ts | 1 -
.../api-error-envelope/local-op-clone.test.ts | 1 -
.../metrics-agent-presence.test.ts | 1 -
.../metrics-parse-health.test.ts | 1 -
.../metrics-reconciliation.test.ts | 1 -
.../api-error-envelope/orphans.test.ts | 1 -
.../api-error-envelope/page-headings.test.ts | 1 -
.../api-error-envelope/pages.test.ts | 1 -
.../api-error-envelope/principal.test.ts | 1 -
.../api-error-envelope/rename-path.test.ts | 1 -
.../api-error-envelope/rescue-list.test.ts | 1 -
.../api-error-envelope/rollback.test.ts | 1 -
.../api-error-envelope/save-version.test.ts | 1 -
.../api-error-envelope/search.test.ts | 1 -
.../api-error-envelope/seed-apply.test.ts | 1 -
.../api-error-envelope/seed-plan.test.ts | 1 -
.../api-error-envelope/server-info.test.ts | 1 -
.../skill-cross-scope-move-uninstall.test.ts | 1 -
.../skill-install-state.test.ts | 1 -
.../api-error-envelope/skill-install.test.ts | 1 -
.../skill-personal-scope.test.ts | 1 -
.../api-error-envelope/skill-restore.test.ts | 1 -
.../skill-scope-move.test.ts | 1 -
.../api-error-envelope/skill-targets.test.ts | 1 -
.../api-error-envelope/skill.test.ts | 1 -
.../api-error-envelope/suggest-links.test.ts | 1 -
.../sync-conflict-content.test.ts | 1 -
.../api-error-envelope/sync-conflicts.test.ts | 1 -
.../sync-resolve-conflict.test.ts | 1 -
.../api-error-envelope/sync-status.test.ts | 1 -
.../api-error-envelope/sync-trigger.test.ts | 1 -
.../api-error-envelope/tags-for-name.test.ts | 1 -
.../api-error-envelope/tags-list.test.ts | 1 -
.../api-error-envelope/template.test.ts | 1 -
.../api-error-envelope/templates-list.test.ts | 1 -
.../api-error-envelope/test-flush-git.test.ts | 1 -
.../test-rescan-backlinks.test.ts | 1 -
.../test-rescan-files.test.ts | 1 -
.../api-error-envelope/test-reset.test.ts | 1 -
.../unmatched-route.test.ts | 1 -
.../api-error-envelope/upload-asset.test.ts | 1 -
.../api-error-envelope/workspace.test.ts | 1 -
.../asset-move-rerenders-embeds.test.ts | 8 +-
...itched-with-stale-embed-resolution.test.ts | 5 +-
.../bridge-cold-load-corpus.test.ts | 4 -
.../bridge-convergence-regression.test.ts | 1 -
.../tests/integration/bridge-matrix.test.ts | 12 -
.../bridge-watchdog-multi-peer-drain.test.ts | 1 -
.../bug-a-mechanism-isolation.test.ts | 3 -
.../bug-c-real-reachability.test.ts | 3 -
...agent-undo-under-concurrent-typing.test.ts | 4 -
.../bug3-source-mode-writeback.test.ts | 1 -
.../integration/c1-concurrent-wysiwyg.test.ts | 1 -
.../integration/c10-server-restart.test.ts | 1 -
.../c12-nested-frontmatter.test.ts | 1 -
.../c13-pathb-doc-boundary.test.ts | 1 -
.../c14-indented-jsx-concurrent.test.ts | 1 -
.../c15-dual-embed-divergence.test.ts | 1 -
.../integration/c2-concurrent-source.test.ts | 1 -
.../tests/integration/c3-mixed-mode.test.ts | 1 -
.../integration/c4-agent-plus-wysiwyg.test.ts | 1 -
.../integration/c5-agent-plus-source.test.ts | 1 -
.../c6-mode-switch-mid-debounce.test.ts | 1 -
.../c7-disconnect-reconnect-burst.test.ts | 1 -
.../integration/c8-triple-concurrent.test.ts | 2 -
.../integration/c9-join-mid-debounce.test.ts | 1 -
.../tests/integration/cc1-broadcast.test.ts | 4 +-
.../integration/client-logs-endpoint.test.ts | 1 -
...lipboard-cross-app-sanitizer-proxy.test.ts | 4 -
.../clipboard-dispatcher-reorder.test.ts | 1 -
.../clipboard-walker-integration.test.ts | 1 -
...onfig-doc-server-instance-recovery.test.ts | 1 -
.../conflict-aware-write-surfaces.test.ts | 3 +-
.../conflict-resolution-delete-modify.test.ts | 13 +-
.../app/tests/integration/create-page.test.ts | 1 -
.../integration/cross-doc-stale-cache.test.ts | 1 -
.../dom-test-filename-stop-rule.test.ts | 1 -
.../tests/integration/e2e-stop-rules.test.ts | 1 -
.../empty-folder-visibility.test.ts | 3 -
.../error-envelope-coverage.test.ts | 1 -
...lscreen-overlay-safe-area-coverage.test.ts | 5 +-
.../hook-timeout-stop-rules.test.ts | 1 -
.../idle-shutdown-multi-client.test.ts | 1 -
.../ipc-exhaustiveness-coverage.test.ts | 1 -
.../integration/ipc-log-coverage.test.ts | 1 -
.../jsx-schema-narrowing-safety.test.ts | 1 -
.../integration/jsx-undo-roundtrip.test.ts | 2 -
.../keyboard-nav-catch-contract.test.ts | 1 -
.../link-authoring-contract.test.ts | 1 -
.../integration/link-graph-metadata.test.ts | 1 -
.../local-op-auth-login-cancel-reopen.test.ts | 1 -
.../loopback-bind-discipline.test.ts | 1 -
.../integration/loopback-exclusivity.test.ts | 1 -
.../managed-rename-crash-recovery.test.ts | 1 -
.../map-driven-observer-a-crdt.test.ts | 1 -
.../integration/mcp-session-identity.test.ts | 1 -
.../integration/microcopy-ellipsis.test.ts | 1 -
.../mock-module-completeness.test.ts | 2 -
.../integration/multi-agent-presence.test.ts | 1 -
.../app/tests/integration/network-control.ts | 2 -
.../no-sync-set-enabled-references.test.ts | 1 -
.../no-unportaled-editor-content.test.ts | 1 -
.../integration/per-session-um-perf.test.ts | 1 -
...istence-failure-surfacing-handlers.test.ts | 1 -
.../integration/persistence-fan-out.test.ts | 1 -
.../integration/presence-multi-tab.test.ts | 4 +-
.../integration/principal-endpoint.test.ts | 1 -
.../provider-pool-buffer-replay.test.ts | 1 -
...provider-pool-multi-client-restart.test.ts | 4 +-
.../provider-pool-reconnect.test.ts | 4 +-
.../raw-mdx-fallback-multi-client.test.ts | 3 -
.../removal-phantom-resurrection.test.ts | 4 -
.../rename-write-amplification.test.ts | 1 -
.../restart-with-embed-doc.test.ts | 2 -
.../tests/integration/selection-state.test.ts | 3 -
.../server-observer-feedback-loop.test.ts | 1 -
.../tests/integration/session-cleanup.test.ts | 1 -
.../sidebar-show-all-files.test.ts | 1 -
.../integration/single-file-mode.test.ts | 1 -
.../slash-command-extension.test.ts | 1 -
.../tests/integration/symlink-alias.test.ts | 9 -
.../integration/test-harness-origins.test.ts | 4 +-
.../tests/integration/test-harness.test.ts | 1 -
.../app/tests/integration/test-harness.ts | 36 +-
.../test-script-invariants.test.ts | 1 -
.../urn-ipc-registry-coverage.test.ts | 1 -
.../integration/vite-dedupe-parity.test.ts | 1 -
.../vite-worker-cachedir-isolation.test.ts | 1 -
.../integration/workspace-endpoint.test.ts | 1 -
.../tests/integration/worktree-boot.test.ts | 1 -
...worktree-cleanup-and-stale-pointer.test.ts | 1 -
.../integration/worktree-concurrent.test.ts | 4 +-
.../tests/integration/worktree-init.test.ts | 1 -
.../integration/worktree-test-harness.ts | 1 -
.../wysiwyg-x20-cold-reopen.test.ts | 1 -
.../y-prosemirror-import-coverage.test.ts | 1 -
...y-tiptap-schema-throw-substitution.test.ts | 1 -
packages/app/tests/lingui-macro-preload.ts | 1 -
packages/app/tests/lingui-macro-shim.tsx | 3 -
.../no-raw-html-interactive-element.test.ts | 1 -
.../no-roundtrip-identity-oracle.test.ts | 1 -
.../tests/meta/hook-timeout-semantics.test.ts | 1 -
.../meta/substrate-vocabulary-drift.test.ts | 1 -
.../cache-regime-rotation/asymmetric.ts | 1 -
.../fixtures/cache-regime-rotation/broad.ts | 1 -
.../cache-regime-rotation/generator.ts | 1 -
.../fixtures/cache-regime-rotation/index.ts | 1 -
.../fixtures/cache-regime-rotation/tight.ts | 1 -
.../fixtures/cache-regime-rotation/types.ts | 1 -
.../fixtures/cache-regime-rotation/vault.ts | 1 -
.../generate-view-count-fixtures.test.ts | 1 -
.../fixtures/generate-view-count-fixtures.ts | 7 -
packages/app/tests/perf/lib/bootstrap.ts | 2 -
packages/app/tests/perf/lib/bundle-check.ts | 1 -
.../app/tests/perf/lib/cdp-tracer.test.ts | 1 -
packages/app/tests/perf/lib/cdp-tracer.ts | 8 -
.../tests/perf/lib/cell-measurement.test.ts | 6 -
.../app/tests/perf/lib/cell-measurement.ts | 7 -
.../perf/lib/correlate-longtasks.test.ts | 1 -
.../app/tests/perf/lib/correlate-longtasks.ts | 1 -
.../app/tests/perf/lib/define-sweep.test.ts | 3 +-
packages/app/tests/perf/lib/define-sweep.ts | 1 -
packages/app/tests/perf/lib/doc-markers.ts | 1 -
packages/app/tests/perf/lib/kneedle.test.ts | 1 -
packages/app/tests/perf/lib/kneedle.ts | 2 -
.../tests/perf/lib/longtask-observer.test.ts | 1 -
.../app/tests/perf/lib/longtask-observer.ts | 4 +-
.../app/tests/perf/lib/macos-pressure.test.ts | 1 -
packages/app/tests/perf/lib/macos-pressure.ts | 1 -
.../perf/lib/node-peer-simulator.test.ts | 1 -
.../app/tests/perf/lib/node-peer-simulator.ts | 7 +-
.../app/tests/perf/lib/perf-compare.test.ts | 1 -
packages/app/tests/perf/lib/scenario.ts | 3 -
.../app/tests/perf/lib/sweep-runner.test.ts | 1 -
packages/app/tests/perf/lib/sweep-runner.ts | 5 -
packages/app/tests/perf/lib/tempo-client.ts | 5 -
.../tests/perf/lib/with-checkpoint.test.ts | 3 +-
.../app/tests/perf/lib/with-checkpoint.ts | 2 -
.../perf/probes/tiptap-destroy-leak.test.ts | 1 -
.../tests/perf/probes/tiptap-destroy-leak.ts | 11 +-
packages/app/tests/perf/profile.test.ts | 1 -
packages/app/tests/perf/profile.ts | 9 +-
.../perf/scenarios/activity-mount-sweep.ts | 3 +-
.../tests/perf/scenarios/cold-load-big-doc.ts | 1 -
.../tests/perf/scenarios/cold-pool-warm.ts | 1 -
.../scenarios/g4-profile-decomposition.ts | 4 +-
.../perf/scenarios/m2-cache-hit-reparent.ts | 1 -
.../perf/scenarios/m3-defer-mount-sweep.ts | 1 -
.../tests/perf/scenarios/memory-per-editor.ts | 4 +-
.../app/tests/perf/scenarios/mode-toggle.ts | 1 -
.../tests/perf/scenarios/outline-polling.ts | 1 -
.../scenarios/server-bridge-spans-canary.ts | 1 -
.../sweep-cache-regime.smoke.test.ts | 4 -
.../perf/scenarios/sweep-cache-regime.ts | 5 -
...nvention-cap-graduation-real-cycle.test.ts | 1 -
...ep-convention-cap-graduation.smoke.test.ts | 13 -
.../sweep-convention-cap-graduation.ts | 21 +-
.../scenarios/sweep-pool-warm-back-canary.ts | 1 -
.../perf/scenarios/warm-switch-cached.ts | 1 -
.../app/tests/perf/scenarios/warm-switch.ts | 1 -
.../app/tests/stress/_helpers/clipboard.ts | 1 -
.../tests/stress/_helpers/content-reset.ts | 1 -
.../app/tests/stress/_helpers/editor-state.ts | 1 -
.../tests/stress/_helpers/error-filters.ts | 1 -
.../app/tests/stress/_helpers/fixtures.ts | 1 -
.../stress/_helpers/global-warm-cache.ts | 1 -
packages/app/tests/stress/_helpers/graph.ts | 1 -
packages/app/tests/stress/_helpers/index.ts | 1 -
.../app/tests/stress/_helpers/provider.ts | 1 -
.../tests/stress/_helpers/server-process.ts | 10 +-
packages/app/tests/stress/_helpers/sidebar.ts | 1 -
.../app/tests/stress/_helpers/slash-menu.ts | 1 -
.../tests/stress/_helpers/upload-fixtures.ts | 1 -
.../tests/stress/agent-activity-panel.e2e.ts | 1 -
.../tests/stress/asset-click-dispatch.e2e.ts | 2 -
.../tests/stress/asset-embed-advanced.e2e.ts | 1 -
.../stress/asset-embed-real-fidelity.e2e.ts | 1 -
packages/app/tests/stress/asset-embed.e2e.ts | 1 -
.../stress/bridge-convergence.fuzz.test.ts | 22 +-
.../stress/chip-popover-positioning.e2e.ts | 3 -
...pboard-relative-url-source-fallback.e2e.ts | 1 -
.../stress/cm6-list-hanging-indent.e2e.ts | 1 -
.../stress/command-palette-flicker.e2e.ts | 1 -
.../stress/command-palette-semantic.e2e.ts | 1 -
.../stress/component-blocks.perf.test.ts | 4 -
packages/app/tests/stress/crdt-stress.e2e.ts | 1 -
.../stress/docs-open-scroll-restore.e2e.ts | 1 -
packages/app/tests/stress/docs-open.e2e.ts | 5 -
.../stress/drop-pipeline-auto-open.e2e.ts | 3 -
packages/app/tests/stress/edit-with-ai.e2e.ts | 1 -
.../stress/editor-area-viewport-resize.e2e.ts | 1 -
.../editor-mode-flip-cross-doc-bleed.e2e.ts | 1 -
.../stress/editor-mode-persistence.e2e.ts | 7 +-
...le-tree-decoration-chip-strip-repro.e2e.ts | 1 -
packages/app/tests/stress/find-replace.e2e.ts | 1 -
.../tests/stress/fixtures/handoff-mocks.ts | 13 +-
.../fr-7a-disconnect-source-mode.e2e.ts | 1 -
.../app/tests/stress/frontmatter-edit.e2e.ts | 1 -
.../tests/stress/frozen-table-headers.e2e.ts | 1 -
.../tests/stress/grip-click-nodeselect.e2e.ts | 4 -
packages/app/tests/stress/handoff.e2e.ts | 1 -
.../tests/stress/jsx-backspace-delete.e2e.ts | 8 -
.../tests/stress/jsx-halo-semantics.e2e.ts | 8 -
.../tests/stress/jsx-image-body-click.e2e.ts | 1 -
.../stress/jsx-prop-panel-placeholder.e2e.ts | 4 -
.../stress/jsx-range-encompass-halo.e2e.ts | 4 -
.../tests/stress/jsx-wildcard-convert.e2e.ts | 2 -
packages/app/tests/stress/list-keymap.e2e.ts | 1 -
.../app/tests/stress/mid-type-recovery.e2e.ts | 1 -
.../tests/stress/multi-agent-presence.e2e.ts | 2 -
.../stress/new-file-cross-doc-bleed.e2e.ts | 1 -
.../stress/ng7-rapid-nav-coherence.e2e.ts | 29 +-
.../stress/observer-a-multi-client.e2e.ts | 1 -
.../app/tests/stress/okignore-settings.e2e.ts | 14 +-
.../oracle-e-expectations.test-helper.ts | 1 -
.../tests/stress/outline-navigation.e2e.ts | 1 -
.../stress/outline-toolbar-occlusion.e2e.ts | 1 -
.../app/tests/stress/paste-fidelity.e2e.ts | 18 -
packages/app/tests/stress/prop-upload.e2e.ts | 5 -
.../tests/stress/qa-sidebar-responsive.e2e.ts | 4 +-
.../raw-mdx-fallback-onblur-upgrade.e2e.ts | 3 -
.../stress/rename-content-preservation.e2e.ts | 1 -
.../tests/stress/rename-noext-probe.e2e.ts | 1 -
.../tests/stress/selection-indicator.e2e.ts | 28 --
.../server-authoritative-stress.test.ts | 6 -
.../app/tests/stress/showall-lazy-tree.e2e.ts | 1 -
.../tests/stress/sidebar-search-pill.e2e.ts | 1 -
.../stress/slash-command-auto-open.e2e.ts | 3 -
.../app/tests/stress/slash-command.e2e.ts | 8 -
.../tests/stress/source-find-scroll.e2e.ts | 1 -
.../app/tests/stress/source-polish.e2e.ts | 9 -
packages/app/tests/stress/stress-api.ts | 5 -
packages/app/tests/stress/synthetic.ts | 1 -
.../tests/stress/tabs-component-strip.e2e.ts | 1 -
.../stress/timeline-diff-sidepane.e2e.ts | 2 -
.../app/tests/stress/ux-interactions.e2e.ts | 3 -
.../tests/stress/yjs-no-dual-import.e2e.ts | 1 -
.../app/tests/visual/component-parity.e2e.ts | 8 -
packages/app/vite.react-babel.ts | 1 -
packages/cli/src/auth/embeddings-key-store.ts | 1 -
packages/cli/src/auth/gh-detect.ts | 3 +-
packages/cli/src/auth/resolve-auth.test.ts | 5 -
packages/cli/src/auth/token-store.test.ts | 7 -
packages/cli/src/auth/token-store.ts | 16 +-
packages/cli/src/cli.ts | 1 -
.../src/commands/auth/git-credential.test.ts | 4 -
packages/cli/src/commands/auth/login.ts | 3 +-
.../cli/src/commands/bug-report-redact.ts | 1 -
packages/cli/src/commands/clean.ts | 1 -
packages/cli/src/commands/clone.ts | 4 -
packages/cli/src/commands/config.test.ts | 4 +-
packages/cli/src/commands/config.ts | 1 -
packages/cli/src/commands/cowork.test.ts | 1 -
packages/cli/src/commands/cowork.ts | 1 -
packages/cli/src/commands/desktop-dispatch.ts | 1 -
.../cli/src/commands/diagnose-bundle.test.ts | 8 -
.../diagnose-health-checks/bun.test.ts | 1 -
.../commands/diagnose-health-checks/bun.ts | 1 -
.../config-yaml.test.ts | 1 -
.../diagnose-health-checks/config-yaml.ts | 1 -
.../content-dir.test.ts | 1 -
.../diagnose-health-checks/content-dir.ts | 1 -
.../diagnose-health-checks/git.test.ts | 1 -
.../commands/diagnose-health-checks/git.ts | 1 -
.../commands/diagnose-health-checks/index.ts | 1 -
.../macos-codesig.test.ts | 1 -
.../diagnose-health-checks/macos-codesig.ts | 1 -
.../commands/diagnose-health-checks/names.ts | 1 -
.../diagnose-health-checks/runner.test.ts | 5 +-
.../commands/diagnose-health-checks/runner.ts | 4 +-
.../server-lock.test.ts | 1 -
.../diagnose-health-checks/server-lock.ts | 1 -
.../shadow-health.test.ts | 1 -
.../diagnose-health-checks/shadow-health.ts | 7 +-
.../shadow-repo.test.ts | 1 -
.../diagnose-health-checks/shadow-repo.ts | 1 -
.../commands/diagnose-health-checks/types.ts | 1 -
.../cli/src/commands/diagnose-health.test.ts | 5 +-
packages/cli/src/commands/diagnose-health.ts | 1 -
packages/cli/src/commands/diagnose.test.ts | 4 -
packages/cli/src/commands/diagnose.ts | 16 +-
.../commands/editor-targets-lockstep.test.ts | 1 -
packages/cli/src/commands/embeddings/index.ts | 1 -
packages/cli/src/commands/init.test.ts | 16 -
packages/cli/src/commands/init.ts | 16 +-
packages/cli/src/commands/lock-state.ts | 1 -
.../src/commands/mcp-chain-validation.test.ts | 3 -
.../cli/src/commands/mcp-migrate-event.ts | 1 -
packages/cli/src/commands/mcp.ts | 1 -
packages/cli/src/commands/ps.test.ts | 12 -
packages/cli/src/commands/ps.ts | 7 -
.../cli/src/commands/repair-skills.test.ts | 6 +-
packages/cli/src/commands/repair-skills.ts | 1 -
packages/cli/src/commands/seed.ts | 1 -
packages/cli/src/commands/self-spawn.ts | 1 -
packages/cli/src/commands/share/index.ts | 1 -
.../cli/src/commands/share/name-check.test.ts | 1 -
packages/cli/src/commands/share/name-check.ts | 1 -
.../cli/src/commands/share/owners.test.ts | 1 -
packages/cli/src/commands/share/owners.ts | 1 -
.../cli/src/commands/share/publish.test.ts | 5 -
packages/cli/src/commands/share/publish.ts | 10 +-
packages/cli/src/commands/sharing/index.ts | 1 -
packages/cli/src/commands/sharing/share.ts | 1 -
.../cli/src/commands/sharing/sharing.test.ts | 1 -
packages/cli/src/commands/sharing/status.ts | 1 -
packages/cli/src/commands/sharing/unshare.ts | 1 -
.../cli/src/commands/single-file-dispatch.ts | 1 -
packages/cli/src/commands/single-file-open.ts | 7 +-
packages/cli/src/commands/skills.ts | 1 -
packages/cli/src/commands/start.test.ts | 14 +-
packages/cli/src/commands/start.ts | 6 +-
packages/cli/src/commands/status.ts | 1 -
packages/cli/src/commands/stop.test.ts | 1 -
packages/cli/src/commands/stop.ts | 1 -
packages/cli/src/commands/sync.test.ts | 1 -
packages/cli/src/commands/ui-proxy.ts | 27 +-
packages/cli/src/commands/ui.test.ts | 1 -
packages/cli/src/commands/ui.ts | 15 +-
packages/cli/src/config/loader.test.ts | 5 -
packages/cli/src/config/paths.ts | 1 -
packages/cli/src/config/schema.test.ts | 2 -
packages/cli/src/config/schema.ts | 1 -
.../cli/src/diagnose/bundle-redact.test.ts | 4 -
packages/cli/src/diagnose/bundle-redact.ts | 1 -
packages/cli/src/diagnose/bundle.test.ts | 10 -
packages/cli/src/diagnose/bundle.ts | 12 -
packages/cli/src/diagnose/path-parity.test.ts | 1 -
packages/cli/src/github/folder-validator.ts | 1 -
packages/cli/src/github/visibility.ts | 1 -
packages/cli/src/index.ts | 1 -
.../project-integration-writers.test.ts | 3 -
.../project-integration-writers.ts | 3 -
.../src/integrations/resolve-project-root.ts | 1 -
.../write-project-ai-integrations.test.ts | 1 -
.../write-project-ai-integrations.ts | 1 -
.../src/integrations/write-project-skill.ts | 2 -
.../cli/src/loopback-bind-discipline.test.ts | 1 -
packages/cli/src/mcp/bundle-identity.test.ts | 2 -
packages/cli/src/mcp/bundle-identity.ts | 1 -
packages/cli/src/mcp/host-liveness.ts | 1 -
.../src/mcp/keepalive-orphan-reaping.test.ts | 7 +-
packages/cli/src/mcp/lifecycle-logging.ts | 4 +-
packages/cli/src/mcp/server.ts | 4 +-
packages/cli/src/mcp/shim.test.ts | 3 -
packages/cli/src/mcp/shim.ts | 3 +-
packages/cli/src/sharing/git-exclude.ts | 8 +-
.../cli/src/tsdown-bundle-coverage.test.ts | 1 -
packages/cli/src/utils/frontmatter.ts | 4 +-
packages/cli/src/utils/process-scan.ts | 1 -
packages/cli/tests/e2e/cli-linux-e2e.ts | 1 -
.../_helpers/config-race-worker.ts | 1 -
.../tests/integration/_helpers/lock-worker.ts | 6 +-
.../detached-spawn-lifetime.test.ts | 3 +-
.../integration/mcp-host-config-race.test.ts | 4 +-
.../integration/multi-project-locks.test.ts | 10 +-
packages/core/scripts/dump-schema.ts | 1 -
.../core/src/bridge/bind-frontmatter-doc.ts | 1 -
packages/core/src/bridge/bridge-invariant.ts | 1 -
.../core/src/bridge/doc-boundary-space.ts | 1 -
packages/core/src/bridge/merge-three-way.ts | 1 -
packages/core/src/bridge/normalize.ts | 1 -
packages/core/src/burst-grouping.ts | 1 -
packages/core/src/config/bind-config-doc.ts | 1 -
packages/core/src/config/bind-okignore-doc.ts | 1 -
.../core/src/config/inspect-config-paths.ts | 1 -
.../core/src/config/merge-layered.test.ts | 1 -
packages/core/src/config/merge-layered.ts | 1 -
.../core/src/config/read-config-safely.ts | 1 -
packages/core/src/config/schema-leaf.test.ts | 2 -
packages/core/src/config/schema-leaf.ts | 1 -
packages/core/src/config/source-locator.ts | 1 -
.../core/src/config/validate-patch-scopes.ts | 1 -
.../core/src/config/write-config-patch.ts | 1 -
packages/core/src/config/yaml-patch.ts | 1 -
packages/core/src/constants/code-languages.ts | 1 -
packages/core/src/constants/lifecycle.ts | 1 -
.../constants/preview-embed-starters.test.ts | 1 -
.../src/constants/preview-embed-starters.ts | 1 -
.../src/constants/preview-theme-tokens.ts | 1 -
packages/core/src/constants/upload.test.ts | 1 -
packages/core/src/constants/upload.ts | 1 -
.../src/extensions/blockquote-fidelity.ts | 1 -
.../src/extensions/code-block-fidelity.ts | 1 -
.../core/src/extensions/code-mark-fidelity.ts | 1 -
packages/core/src/extensions/comment-block.ts | 1 -
packages/core/src/extensions/comment-mark.ts | 1 -
.../src/extensions/emphasis-fidelity.test.ts | 1 -
.../core/src/extensions/emphasis-fidelity.ts | 1 -
packages/core/src/extensions/escape-mark.ts | 1 -
.../src/extensions/footnote-definition.ts | 1 -
.../core/src/extensions/footnote-reference.ts | 1 -
packages/core/src/extensions/frontmatter.ts | 1 -
.../src/extensions/hard-break-fidelity.ts | 1 -
.../core/src/extensions/heading-fidelity.ts | 1 -
.../src/extensions/html-block-fidelity.ts | 1 -
.../extensions/image-reference-fidelity.ts | 1 -
.../core/src/extensions/image-src-fidelity.ts | 1 -
.../core/src/extensions/link-fidelity.test.ts | 1 -
packages/core/src/extensions/link-fidelity.ts | 1 -
.../src/extensions/link-ref-def-fidelity.ts | 1 -
packages/core/src/extensions/list.test.ts | 1 -
packages/core/src/extensions/list.ts | 4 -
.../extensions/source-literal-mark.test.ts | 1 -
.../src/extensions/source-literal-mark.ts | 1 -
.../core/src/extensions/strike-fidelity.ts | 1 -
.../core/src/extensions/table-fidelity.ts | 1 -
packages/core/src/extensions/tag.ts | 1 -
.../thematic-break-fidelity.test.ts | 1 -
.../src/extensions/thematic-break-fidelity.ts | 1 -
packages/core/src/frontmatter/tags.ts | 1 -
packages/core/src/git/worktree-list-parser.ts | 1 -
packages/core/src/handoff/index.ts | 1 -
.../core/src/handoff/prompt-composer.test.ts | 8 -
packages/core/src/handoff/prompt-composer.ts | 1 -
packages/core/src/handoff/terminal-launch.ts | 1 -
packages/core/src/handoff/types.ts | 1 -
.../core/src/handoff/urn-ipc-registry.test.ts | 1 -
packages/core/src/handoff/urn-ipc-registry.ts | 1 -
packages/core/src/index.ts | 343 +++++++++---------
packages/core/src/installed-skills/schema.ts | 1 -
packages/core/src/keepalive/keepalive.test.ts | 2 -
packages/core/src/keepalive/keepalive.ts | 7 +-
packages/core/src/logging/renderer-log.ts | 1 -
.../core/src/markdown/callout-transformer.ts | 1 -
.../core/src/markdown/comment-promoter.ts | 1 -
.../src/markdown/dedent-block-jsx-close.ts | 1 -
.../markdown/details-accordion-promoter.ts | 1 -
packages/core/src/markdown/fence-regions.ts | 1 -
packages/core/src/markdown/fixtures/index.ts | 6 -
.../src/markdown/fixtures/perf/generate.ts | 5 -
.../src/markdown/guard-flanking-matrix.ts | 1 -
.../core/src/markdown/handler-shadow-audit.ts | 1 -
.../core/src/markdown/highlight-promoter.ts | 1 -
packages/core/src/markdown/html-to-mdast.ts | 4 +-
packages/core/src/markdown/image-promoter.ts | 1 -
packages/core/src/markdown/index.ts | 9 -
packages/core/src/markdown/math-promoter.ts | 1 -
.../src/markdown/mdast-to-hast-handlers.ts | 1 -
packages/core/src/markdown/mdast-to-html.ts | 1 -
packages/core/src/markdown/merged-walker.ts | 1 -
.../core/src/markdown/mermaid-promoter.ts | 1 -
.../core/src/markdown/parse-with-fallback.ts | 5 -
.../core/src/markdown/parser-drop-closure.ts | 1 -
packages/core/src/markdown/pipeline.ts | 1 -
.../core/src/markdown/position-aware-join.ts | 1 -
packages/core/src/markdown/position-slice.ts | 4 +-
.../rehype-plugins/skip-notion-whitespace.ts | 1 -
.../rehype-plugins/strip-cocoa-meta.ts | 1 -
.../rehype-plugins/strip-gdocs-wrapper.ts | 1 -
.../rehype-plugins/strip-github-hovercard.ts | 1 -
.../rehype-plugins/strip-gmail-classes.ts | 1 -
.../rehype-plugins/strip-gsheets-wrapper.ts | 1 -
.../rehype-plugins/strip-mso-styles.ts | 1 -
.../rehype-plugins/strip-slack-classes.ts | 1 -
.../rehype-plugins/strip-vscode-spans.ts | 1 -
.../core/src/markdown/resolve-image-url.ts | 1 -
packages/core/src/markdown/safe-url.ts | 1 -
.../core/src/markdown/serialize-helpers.ts | 1 -
.../markdown/single-dollar-math-promoter.ts | 1 -
.../core/src/markdown/to-markdown-handlers.ts | 1 -
.../core/src/markdown/unknown-mdast-guard.ts | 1 -
.../core/src/markdown/whitespace-char-ref.ts | 1 -
.../core/src/markdown/wiki-link-micromark.ts | 3 -
packages/core/src/metrics/parse-health.ts | 1 -
packages/core/src/registry/built-ins.ts | 8 -
.../src/registry/canonical-compat.test.ts | 2 -
packages/core/src/registry/index.ts | 1 -
packages/core/src/registry/projection.test.ts | 1 -
packages/core/src/registry/projection.ts | 1 -
packages/core/src/registry/types.ts | 4 -
.../src/registry/wiki-embed-compat.test.ts | 3 -
packages/core/src/schema-invariant.test.ts | 4 -
packages/core/src/schemas/api.type-tests.ts | 6 -
.../core/src/schemas/api/_envelope.test.ts | 2 -
packages/core/src/schemas/api/_envelope.ts | 3 -
packages/core/src/schemas/api/_shared.ts | 1 -
.../core/src/schemas/api/agent-write.test.ts | 1 -
packages/core/src/schemas/api/agent-write.ts | 1 -
packages/core/src/schemas/api/client-logs.ts | 1 -
.../src/schemas/api/document-read.test.ts | 1 -
.../core/src/schemas/api/document-read.ts | 1 -
packages/core/src/schemas/api/embed-detect.ts | 1 -
packages/core/src/schemas/api/history.ts | 1 -
packages/core/src/schemas/api/index.ts | 1 -
.../src/schemas/api/links-orphans.test.ts | 1 -
.../core/src/schemas/api/links-orphans.ts | 1 -
.../core/src/schemas/api/local-op.test.ts | 1 -
packages/core/src/schemas/api/local-op.ts | 1 -
packages/core/src/schemas/api/metrics.test.ts | 1 -
packages/core/src/schemas/api/metrics.ts | 1 -
packages/core/src/schemas/api/pages.test.ts | 1 -
packages/core/src/schemas/api/pages.ts | 1 -
packages/core/src/schemas/api/share.ts | 6 -
packages/core/src/schemas/api/sync-seed.ts | 1 -
.../core/src/schemas/api/tags-search.test.ts | 1 -
packages/core/src/schemas/api/tags-search.ts | 3 -
packages/core/src/schemas/cc1.ts | 1 -
.../workspace-search.tier-ranking.test.ts | 1 -
packages/core/src/server.ts | 1 -
packages/core/src/shadow-repo-layout.test.ts | 13 +-
packages/core/src/shadow-repo-layout.ts | 7 +-
.../core/src/sharing/candidate-selection.ts | 1 -
packages/core/src/sharing/receive-flow.ts | 1 -
packages/core/src/sharing/share-url.ts | 1 -
packages/core/src/skill-state/schema.ts | 1 -
.../editor-single-source.test.ts | 1 -
packages/core/src/skill-targets/schema.ts | 1 -
packages/core/src/util/atomic-yaml-write.ts | 19 +-
packages/core/src/util/file-lock.ts | 22 +-
.../core/src/utils/chunked-insert.test.ts | 1 -
packages/core/src/utils/chunked-insert.ts | 1 -
packages/core/src/utils/embed-url-rewrite.ts | 1 -
packages/core/src/utils/file-size.test.ts | 1 -
packages/core/src/utils/identity.test.ts | 1 -
packages/core/src/utils/identity.ts | 7 +-
packages/core/src/utils/link-targets.ts | 1 -
packages/core/src/utils/loom-embed.ts | 1 -
packages/core/src/utils/path-resolve.ts | 1 -
packages/core/src/utils/pdf-anchor.ts | 1 -
packages/core/src/utils/tag-rollup.ts | 1 -
packages/core/src/utils/vimeo-embed.ts | 1 -
packages/core/src/utils/youtube-embed.test.ts | 4 -
packages/core/src/utils/youtube-embed.ts | 1 -
packages/core/src/y-prosemirror-patch.test.ts | 7 +-
.../core/tests/contract/render-html.test.ts | 1 -
.../tests/health/parse-health-gate.test.ts | 1 -
.../core/tests/health/parse-health-gate.ts | 11 +-
.../core/tests/perf/markdown-bench.test.ts | 7 -
.../core/tests/perf/regression-gate.test.ts | 2 -
packages/core/tests/perf/regression-gate.ts | 6 -
.../core/tests/perf/run-regression-gate.ts | 1 -
packages/desktop/electron.vite.config.ts | 1 -
packages/desktop/playwright.config.ts | 1 -
packages/desktop/scripts/afterPack.mjs | 1 -
packages/desktop/scripts/afterSign.mjs | 1 -
.../desktop/scripts/ensure-node-pty-exec.mjs | 1 -
packages/desktop/scripts/launch-instances.mjs | 3 +-
.../desktop/src/main/append-okignore.test.ts | 3 +-
packages/desktop/src/main/asset-allowlist.ts | 1 -
packages/desktop/src/main/asset-menu.ts | 1 -
packages/desktop/src/main/asset-safety-net.ts | 1 -
packages/desktop/src/main/auto-updater.ts | 9 -
packages/desktop/src/main/bootstrap.ts | 1 -
.../desktop/src/main/branch-info-proxy.ts | 1 -
.../src/main/bundle-replace-detector.ts | 1 -
packages/desktop/src/main/cascade-position.ts | 1 -
.../desktop/src/main/check-target-exists.ts | 1 -
packages/desktop/src/main/claude-readiness.ts | 1 -
packages/desktop/src/main/consent-dialog.ts | 1 -
.../src/main/create-new-project.test.ts | 4 +-
.../desktop/src/main/create-new-project.ts | 2 -
packages/desktop/src/main/debug-ipc.ts | 1 -
packages/desktop/src/main/desktop-logger.ts | 3 +-
packages/desktop/src/main/dialog-helpers.ts | 1 -
.../src/main/driver-boot-smoke.test.ts | 1 -
.../desktop/src/main/driver-boot-smoke.ts | 1 -
packages/desktop/src/main/embed-referer.ts | 1 -
.../desktop/src/main/folder-admission.test.ts | 2 -
.../main/git-preflight-handler-otel.test.ts | 1 -
.../src/main/git-preflight-handler.test.ts | 5 +-
.../desktop/src/main/git-preflight-handler.ts | 1 -
packages/desktop/src/main/git-remote.test.ts | 3 +-
packages/desktop/src/main/git-remote.ts | 1 -
packages/desktop/src/main/index.ts | 16 +-
packages/desktop/src/main/ipc-handlers.ts | 9 +-
packages/desktop/src/main/ipc-log.test.ts | 1 -
packages/desktop/src/main/ipc-log.ts | 1 -
.../desktop/src/main/ipc/install-skill.ts | 1 -
.../local-op-auth-idempotent-start.test.ts | 1 -
packages/desktop/src/main/ipc/local-op.ts | 1 -
packages/desktop/src/main/ipc/seed.ts | 1 -
packages/desktop/src/main/ipc/sharing.test.ts | 1 -
packages/desktop/src/main/ipc/sharing.ts | 1 -
packages/desktop/src/main/keepalive.ts | 1 -
.../desktop/src/main/list-git-worktrees.ts | 1 -
packages/desktop/src/main/mcp-wiring.ts | 12 +-
packages/desktop/src/main/menu.ts | 1 -
packages/desktop/src/main/navigator-window.ts | 1 -
packages/desktop/src/main/ok-init.test.ts | 1 -
packages/desktop/src/main/ok-init.ts | 1 -
.../desktop/src/main/onboarding-telemetry.ts | 1 -
packages/desktop/src/main/path-install.ts | 3 +-
.../src/main/process-safety-net.test.ts | 1 -
.../desktop/src/main/process-safety-net.ts | 1 -
.../desktop/src/main/project-mcp-reclaim.ts | 1 -
.../desktop/src/main/read-git-dir-kind.ts | 1 -
packages/desktop/src/main/read-head-branch.ts | 1 -
.../src/main/reduced-transparency-handler.ts | 1 -
.../src/main/remove-git-folder.test.ts | 4 +-
.../desktop/src/main/remove-git-folder.ts | 1 -
.../src/main/renderer-console-capture.ts | 4 +-
.../desktop/src/main/resolve-share-target.ts | 1 -
.../desktop/src/main/share-handoff.test.ts | 1 -
packages/desktop/src/main/share-handoff.ts | 2 -
packages/desktop/src/main/shell-allowlist.ts | 1 -
packages/desktop/src/main/show-gate.ts | 1 -
.../desktop/src/main/skill-reclaim.test.ts | 3 +-
packages/desktop/src/main/skill-reclaim.ts | 7 +-
.../src/main/spellcheck-context-menu.ts | 1 -
packages/desktop/src/main/spellcheck-menu.ts | 1 -
packages/desktop/src/main/state-store.ts | 4 +-
.../desktop/src/main/terminal-consent.test.ts | 1 -
packages/desktop/src/main/terminal-consent.ts | 1 -
.../desktop/src/main/terminal-lifecycle.ts | 1 -
packages/desktop/src/main/terminal-manager.ts | 1 -
.../desktop/src/main/terminal-telemetry.ts | 1 -
.../desktop/src/main/theme-applied-handler.ts | 1 -
packages/desktop/src/main/theme-handler.ts | 1 -
packages/desktop/src/main/url-scheme.test.ts | 1 -
packages/desktop/src/main/url-scheme.ts | 1 -
.../desktop/src/main/userdata-migration.ts | 1 -
.../desktop/src/main/utility-fork-env.test.ts | 1 -
packages/desktop/src/main/utility-fork-env.ts | 1 -
packages/desktop/src/main/window-manager.ts | 15 +-
.../desktop/src/main/window-min-size.test.ts | 1 -
packages/desktop/src/preload/index.ts | 1 -
.../desktop/src/shared/bridge-contract.ts | 1 -
packages/desktop/src/shared/entry-point.ts | 1 -
packages/desktop/src/shared/ipc-channels.ts | 1 -
packages/desktop/src/shared/ipc-events.ts | 1 -
packages/desktop/src/shared/ipc-handler.ts | 1 -
packages/desktop/src/shared/ipc-invoke.ts | 1 -
packages/desktop/src/shared/ipc-send.ts | 1 -
packages/desktop/src/shared/labels.ts | 1 -
packages/desktop/src/utility/keyring-smoke.ts | 4 +-
packages/desktop/src/utility/pty-host.ts | 1 -
packages/desktop/src/utility/server-entry.ts | 1 -
.../tests/integration/asset-open-ipc.test.ts | 1 -
.../tests/integration/auto-updater.test.ts | 30 --
.../integration/detached-lifecycle.test.ts | 7 +-
.../tests/integration/dock-visibility.test.ts | 2 -
.../integration/ephemeral-lifecycle.test.ts | 4 +-
.../tests/integration/handoff-ipc.test.ts | 4 +-
.../ipc-channel-count-ratchet.test.ts | 1 -
.../tests/integration/m1-smoke.test.ts | 4 +-
.../no-loosely-typed-webcontents-ipc.test.ts | 1 -
.../no-resolved-value-theme-source.test.ts | 1 -
.../packaged-helper-runs-as-node.test.ts | 1 -
.../playwright-topass-budget.test.ts | 1 -
.../integration/smoke-mock-update.test.ts | 1 -
.../desktop/tests/main/asset-menu.test.ts | 1 -
.../tests/main/asset-open-handlers.test.ts | 1 -
.../tests/main/asset-safety-net.test.ts | 1 -
packages/desktop/tests/main/bootstrap.test.ts | 1 -
.../main/bundle-replace-detector.test.ts | 1 -
.../main/git-config-parser-parity.test.ts | 1 -
.../tests/main/install-skill-ipc.test.ts | 1 -
.../desktop/tests/main/ipc-handlers.test.ts | 1 -
packages/desktop/tests/main/menu.test.ts | 3 -
.../tests/main/navigator-window.test.ts | 1 -
packages/desktop/tests/main/show-gate.test.ts | 1 -
.../main/spellcheck-context-menu.test.ts | 1 -
.../tests/main/spellcheck-menu.test.ts | 1 -
.../tests/main/terminal-consent.test.ts | 1 -
.../tests/main/terminal-lifecycle.test.ts | 4 +-
.../tests/main/terminal-manager.test.ts | 1 -
.../tests/main/theme-applied-handler.test.ts | 1 -
.../desktop/tests/main/theme-handler.test.ts | 1 -
.../tests/main/update-state-handlers.test.ts | 1 -
.../tests/main/url-scheme-handler.test.ts | 1 -
.../main/window-manager-ephemeral.test.ts | 1 -
.../desktop/tests/main/window-manager.test.ts | 2 -
packages/desktop/tests/preload/bridge.test.ts | 1 -
.../tests/preload/update-listeners.test.ts | 1 -
.../smoke/_helpers/electron-cleanup.test.ts | 3 +-
.../tests/smoke/_helpers/electron-cleanup.ts | 4 +-
.../tests/smoke/_helpers/electron-stderr.ts | 1 -
.../_helpers/no-unbounded-app-close.test.ts | 1 -
.../smoke/_helpers/parse-timeouts.test.ts | 4 +-
.../tests/smoke/_helpers/parse-timeouts.ts | 1 -
.../tests/smoke/_helpers/smoke-test.ts | 4 +-
.../tests/smoke/_helpers/stale-build-guard.ts | 1 -
.../tests/smoke/_nav-empty-840x600.e2e.ts | 4 +-
.../tests/smoke/_nav-size-screenshots.e2e.ts | 4 +-
.../smoke/agent-patch-divergence-probe.e2e.ts | 3 -
.../desktop/tests/smoke/calibration.test.ts | 1 -
.../desktop/tests/smoke/consent-dialog.e2e.ts | 4 +-
.../tests/smoke/create-new-project.e2e.ts | 4 +-
packages/desktop/tests/smoke/deep-link.e2e.ts | 4 +-
.../desktop/tests/smoke/external-link.e2e.ts | 1 -
.../desktop/tests/smoke/mcp-wiring.e2e.ts | 13 +-
.../smoke/navigator-close-on-open.e2e.ts | 1 -
.../tests/smoke/qa-create-new-extended.e2e.ts | 4 +-
.../smoke/rename-divergence-probe.e2e.ts | 4 +-
.../smoke/share-receive-multi-worktree.e2e.ts | 2 -
.../sidebar-create-rename-editable.e2e.ts | 1 -
.../smoke/sidebar-pill-lockstep-fade.e2e.ts | 1 -
.../desktop/tests/smoke/terminal-dock.e2e.ts | 4 +-
.../desktop/tests/smoke/theme-sync.e2e.ts | 1 -
.../tests/smoke/window-min-size.e2e.ts | 1 -
.../unit/auto-updater-apply-channel.test.ts | 1 -
.../tests/unit/bridge-contract-types.test.ts | 1 -
.../electron-builder-cli-native-deps.test.ts | 1 -
.../unit/electron-builder-cli-pkgjson.test.ts | 1 -
.../electron-builder-node-pty-deps.test.ts | 1 -
...ectron-builder-parcel-watcher-deps.test.ts | 7 +-
.../unit/electron-cleanup-bounded.test.ts | 1 -
.../tests/unit/ensure-node-pty-exec.test.ts | 1 -
.../unit/entitlements-helper-split.test.ts | 1 -
.../unit/helper-bundle-info-plist.test.ts | 1 -
.../unit/helper-bundle-name-agreement.test.ts | 1 -
.../desktop/tests/unit/ok-wrapper.test.ts | 1 -
...ke-test-fixture-attach-conditional.test.ts | 1 -
.../unit/state-store-channel-fields.test.ts | 1 -
.../tests/unit/state-store-m3-fields.test.ts | 1 -
.../tests/utility/pty-flood.harness.ts | 17 +-
.../desktop/tests/utility/pty-flood.test.ts | 1 -
.../tests/utility/pty-host-real-io.test.ts | 1 -
.../tests/utility/pty-host-reap.test.ts | 4 +-
.../tests/utility/pty-host.real-io-harness.ts | 1 -
.../tests/utility/pty-host.reap-harness.ts | 4 +-
.../desktop/tests/utility/pty-host.test.ts | 1 -
.../tests/utility/server-entry.test.ts | 2 -
.../scripts/build-skill-bundles.test.ts | 3 +-
packages/server/src/activity-log.ts | 1 -
packages/server/src/agent-activity.test.ts | 4 -
packages/server/src/agent-activity.ts | 4 -
packages/server/src/agent-presence.test.ts | 1 -
packages/server/src/agent-sessions.ts | 1 -
...ent-write-replace-crdt-convergence.test.ts | 1 -
packages/server/src/agent-write-summary.ts | 1 -
.../server/src/api-agent-frontmatter.test.ts | 1 -
packages/server/src/api-create-page.test.ts | 7 +-
.../src/api-document-list-ready-gate.test.ts | 1 -
packages/server/src/api-extension.ts | 71 +---
.../src/api-rename-rollback-summary.test.ts | 2 -
.../src/api-search-semantic-factory.test.ts | 1 -
.../server/src/api-search-semantic.test.ts | 1 -
packages/server/src/api-search.test.ts | 2 -
.../server/src/apply-managed-rename.test.ts | 1 -
...asset-serve-middleware.integration.test.ts | 1 -
.../server/src/asset-serve-middleware.test.ts | 1 -
packages/server/src/asset-serve-middleware.ts | 1 -
packages/server/src/asset-walk.ts | 1 -
packages/server/src/backlink-index.test.ts | 7 -
packages/server/src/bash/index.ts | 1 -
packages/server/src/bash/mtime-scan.ts | 3 +-
packages/server/src/bash/parse-command.ts | 1 -
.../server/src/boot-conflict-restore.test.ts | 4 +-
.../src/boot-walk-responsiveness.test.ts | 1 -
packages/server/src/boot.test.ts | 3 -
packages/server/src/boot.ts | 9 +-
.../server/src/bridge-no-wallclock.test.ts | 1 -
packages/server/src/bridge-quiescence.test.ts | 1 -
packages/server/src/bridge-quiescence.ts | 1 -
packages/server/src/bridge-watchdog.test.ts | 8 -
packages/server/src/bridge-watchdog.ts | 4 -
packages/server/src/build-skill-zip.test.ts | 1 -
packages/server/src/build-skill-zip.ts | 2 -
.../server/src/collab-message-limit.test.ts | 3 +-
.../server/src/config-file-watcher.test.ts | 9 +-
packages/server/src/config-file-watcher.ts | 4 +-
.../server/src/config-persistence.test.ts | 7 +-
packages/server/src/config-persistence.ts | 4 +-
packages/server/src/config-telemetry.test.ts | 3 +-
packages/server/src/config/paths.ts | 1 -
packages/server/src/config/schema.test.ts | 2 -
packages/server/src/config/schema.ts | 1 -
packages/server/src/conflict-errors.test.ts | 1 -
packages/server/src/conflict-errors.ts | 1 -
.../server/src/conflict-lifecycle-seed.ts | 1 -
packages/server/src/conflict-storage.test.ts | 4 -
packages/server/src/conflict-storage.ts | 5 -
packages/server/src/content-filter.test.ts | 1 -
packages/server/src/content-filter.ts | 5 +-
packages/server/src/content/enrichment.ts | 3 +-
.../src/content/folder-frontmatter-write.ts | 4 +-
.../server/src/content/frontmatter-merge.ts | 1 -
.../server/src/content/nested-folder-rules.ts | 1 -
packages/server/src/content/skills-write.ts | 18 +-
packages/server/src/content/substitution.ts | 1 -
.../server/src/content/templates-resolver.ts | 1 -
.../server/src/content/templates-write.ts | 10 +-
packages/server/src/contributor-tracker.ts | 1 -
packages/server/src/doc-extensions.ts | 1 -
packages/server/src/doc-lineage-guard.test.ts | 1 -
packages/server/src/doc-lineage-guard.ts | 1 -
packages/server/src/document-list.test.ts | 2 -
packages/server/src/embed-probe.test.ts | 10 +-
packages/server/src/embed-probe.ts | 3 -
packages/server/src/embeddings/chunking.ts | 1 -
.../server/src/embeddings/concept-embedder.ts | 1 -
packages/server/src/embeddings/embedder.ts | 1 -
.../eval/semantic-eval.smoke.test.ts | 1 -
.../src/embeddings/eval/semantic-eval.ts | 1 -
packages/server/src/embeddings/index.ts | 1 -
.../server/src/embeddings/secrets-store.ts | 4 +-
.../server/src/embeddings/semantic-config.ts | 1 -
.../src/embeddings/semantic-search-service.ts | 1 -
.../server/src/embeddings/vector-cache.ts | 1 -
packages/server/src/error-classification.ts | 9 -
packages/server/src/external-change.ts | 1 -
packages/server/src/file-logger.test.ts | 4 +-
packages/server/src/file-logger.ts | 3 +-
packages/server/src/file-watcher.test.ts | 5 -
packages/server/src/file-watcher.ts | 12 -
.../server/src/frontmatter-malformed-error.ts | 1 -
packages/server/src/fs-traced.ts | 3 -
packages/server/src/fs/find-git-root.ts | 1 -
packages/server/src/fs/find-project-root.ts | 1 -
packages/server/src/gh-token-source.ts | 1 -
packages/server/src/git-branch-info.ts | 1 -
packages/server/src/git-checkout.ts | 1 -
packages/server/src/git-dirty.ts | 1 -
packages/server/src/git-handle.ts | 3 -
packages/server/src/git-identity.test.ts | 3 -
packages/server/src/git-identity.ts | 5 -
.../server/src/git-identity.worktree.test.ts | 3 -
packages/server/src/git-mutex.ts | 1 -
.../server/src/git-preflight-boot.test.ts | 9 +-
.../server/src/git-preflight-spawn.test.ts | 1 -
.../src/git-preflight-telemetry.test.ts | 1 -
.../server/src/git-preflight-telemetry.ts | 1 -
packages/server/src/git-preflight.test.ts | 12 -
packages/server/src/git-preflight.ts | 9 -
.../server/src/github-permissions.test.ts | 5 -
packages/server/src/github-permissions.ts | 2 -
packages/server/src/handoff-api.test.ts | 1 -
packages/server/src/handoff-api.ts | 4 +-
.../server/src/handoff-dispatch-api.test.ts | 1 -
packages/server/src/handoff-dispatch-api.ts | 1 -
packages/server/src/head-watcher.ts | 9 +-
.../server/src/http/error-response.test.ts | 1 -
packages/server/src/http/error-response.ts | 1 -
.../src/http/request-validation.test.ts | 4 +-
.../server/src/http/request-validation.ts | 1 -
.../server/src/http/success-response.test.ts | 1 -
packages/server/src/http/success-response.ts | 1 -
packages/server/src/hub-candidates.ts | 1 -
packages/server/src/idle-shutdown.test.ts | 2 -
packages/server/src/idle-shutdown.ts | 1 -
packages/server/src/init-project.ts | 1 -
.../server/src/installed-skills-marker.ts | 1 -
.../src/keepalive-presence-bootstrap.test.ts | 3 +-
.../src/keepalive-presence-cleanup.test.ts | 3 +-
packages/server/src/local-op-security.test.ts | 10 -
packages/server/src/local-op-security.ts | 5 -
packages/server/src/local-ops/auth-flow.ts | 1 -
packages/server/src/local-ops/auth-query.ts | 1 -
.../local-ops/clone-error-classify.test.ts | 1 -
.../src/local-ops/clone-error-classify.ts | 1 -
.../server/src/local-ops/clone-flow.test.ts | 1 -
packages/server/src/local-ops/clone-flow.ts | 1 -
packages/server/src/local-ops/subprocess.ts | 4 +-
packages/server/src/local-ops/types.ts | 1 -
packages/server/src/local-sink-resolver.ts | 1 -
packages/server/src/logger.ts | 2 -
.../src/loopback-bind-discipline.test.ts | 1 -
.../server/src/loopback-rig-test-helpers.ts | 1 -
.../src/managed-artifact-persistence.ts | 1 -
.../server/src/managed-artifact-watcher.ts | 1 -
.../server/src/managed-rename-rewrite.test.ts | 1 -
packages/server/src/mcp-http.test.ts | 7 +-
packages/server/src/mcp-mount.ts | 4 +-
packages/server/src/mcp/agent-identity.ts | 1 -
packages/server/src/mcp/logger.ts | 3 -
.../src/mcp/tools/advisory-warnings.test.ts | 2 -
packages/server/src/mcp/tools/config.ts | 1 -
.../server/src/mcp/tools/consolidate-body.ts | 1 -
.../server/src/mcp/tools/discover-body.ts | 1 -
packages/server/src/mcp/tools/edit.ts | 5 -
packages/server/src/mcp/tools/exec.test.ts | 1 -
.../src/mcp/tools/get-preview-url.test.ts | 1 -
.../server/src/mcp/tools/get-preview-url.ts | 4 +-
packages/server/src/mcp/tools/index.ts | 1 -
packages/server/src/mcp/tools/ingest-body.ts | 1 -
packages/server/src/mcp/tools/links.ts | 1 -
.../tools/output-schema-strictness.test.ts | 5 +-
packages/server/src/mcp/tools/palette.test.ts | 1 -
packages/server/src/mcp/tools/palette.ts | 1 -
.../src/mcp/tools/preview-url-test-helpers.ts | 1 -
.../server/src/mcp/tools/research-body.ts | 1 -
.../server/src/mcp/tools/resolve-conflict.ts | 1 -
packages/server/src/mcp/tools/search.test.ts | 1 -
packages/server/src/mcp/tools/search.ts | 1 -
packages/server/src/mcp/tools/shared.test.ts | 5 -
packages/server/src/mcp/tools/shared.ts | 4 -
.../server/src/mcp/tools/skill-target.test.ts | 1 -
packages/server/src/mcp/tools/skill-target.ts | 2 -
packages/server/src/mcp/tools/verb-schemas.ts | 3 -
packages/server/src/mcp/tools/wiki-body.ts | 1 -
packages/server/src/mcp/tools/write.ts | 4 -
packages/server/src/mermaid-validator.test.ts | 1 -
packages/server/src/mermaid-validator.ts | 1 -
.../src/mermaid-version-alignment.test.ts | 1 -
packages/server/src/metrics.ts | 1 -
.../server/src/missing-ok-config-error.ts | 1 -
packages/server/src/package-exports.test.ts | 1 -
.../src/paired-write-enforcement.test.ts | 3 -
.../server/src/paired-write-origin.test.ts | 5 +-
packages/server/src/pane-target.ts | 4 +-
...path-conditional-map-driven-origin.test.ts | 1 -
packages/server/src/path-utils.test.ts | 1 -
packages/server/src/perf-measurement.test.ts | 1 -
packages/server/src/perf-measurement.ts | 1 -
.../src/persistence-deferred-store.test.ts | 6 +-
.../server/src/persistence-fan-out.test.ts | 2 -
.../src/persistence-phantom-doc-guard.test.ts | 1 -
.../src/persistence-ytext-truth.test.ts | 5 -
packages/server/src/persistence.test.ts | 3 -
packages/server/src/persistence.ts | 14 +-
packages/server/src/process-lock.ts | 10 +-
packages/server/src/recently-removed-docs.ts | 1 -
packages/server/src/reconciliation.test.ts | 4 -
packages/server/src/reconciliation.ts | 7 -
.../server/src/removal-redirect-guard.test.ts | 13 +-
packages/server/src/removal-redirect-guard.ts | 1 -
packages/server/src/rename-log.test.ts | 1 -
packages/server/src/rename-log.ts | 17 +-
.../server/src/resolve-package-version.ts | 3 +-
.../src/rig-loopback-exclusivity.test.ts | 1 -
packages/server/src/save-version.test.ts | 6 +-
packages/server/src/seed/index.ts | 1 -
.../server/src/seed/install-pack-skill.ts | 4 +-
.../server/src/seed/okf-conformance.test.ts | 1 -
packages/server/src/seed/path-safety.ts | 1 -
packages/server/src/seed/rationale.ts | 1 -
.../src/seed/seed-frontmatter-guard.test.ts | 1 -
packages/server/src/seed/starter.ts | 11 -
packages/server/src/seed/types.ts | 1 -
.../server/src/serialize-doc-ytext.test.ts | 2 -
packages/server/src/server-factory.test.ts | 8 -
packages/server/src/server-factory.ts | 20 +-
packages/server/src/server-lock.ts | 1 -
...erver-observers-divergent-fallback.test.ts | 5 -
packages/server/src/server-observers.test.ts | 8 -
packages/server/src/server-observers.ts | 5 -
packages/server/src/shadow-branch-gc.ts | 4 +-
packages/server/src/shadow-lock.ts | 4 +-
packages/server/src/shadow-repo.test.ts | 3 -
packages/server/src/shadow-repo.ts | 56 +--
packages/server/src/share/construct-url.ts | 1 -
packages/server/src/share/git-context.ts | 1 -
.../src/share/publish.integration.test.ts | 4 -
packages/server/src/share/publish.test.ts | 1 -
packages/server/src/share/publish.ts | 11 +-
packages/server/src/showall-stream.test.ts | 2 -
packages/server/src/single-file-open.ts | 1 -
packages/server/src/skill-bundles.ts | 1 -
.../server/src/skill-install-events.test.ts | 1 -
packages/server/src/skill-install-events.ts | 1 -
packages/server/src/skill-install.test.ts | 5 +-
packages/server/src/skill-install.ts | 13 +-
.../server/src/skill-linking-contract.test.ts | 1 -
packages/server/src/skill-management.ts | 1 -
packages/server/src/skill-projection.ts | 1 -
packages/server/src/skill-reconcile.ts | 4 +-
packages/server/src/skill-reproject.ts | 1 -
packages/server/src/skill-restore.ts | 1 -
packages/server/src/skill-state.test.ts | 1 -
packages/server/src/skill-state.ts | 1 -
packages/server/src/skill-targets-store.ts | 1 -
packages/server/src/spawn-cursor-api.test.ts | 1 -
packages/server/src/spawn-cursor-api.ts | 1 -
packages/server/src/spawn-detached.test.ts | 1 -
packages/server/src/spawn-detached.ts | 4 +-
packages/server/src/sync-engine.test.ts | 23 +-
packages/server/src/sync-engine.ts | 37 +-
packages/server/src/sync-timing.test.ts | 1 -
packages/server/src/sync-timing.ts | 1 -
packages/server/src/tag-index.ts | 1 -
packages/server/src/telemetry-file-sink.ts | 14 +-
packages/server/src/telemetry.test.ts | 1 -
packages/server/src/timeline-query.ts | 22 +-
.../src/tolerance-telemetry-writer.test.ts | 3 +-
.../server/src/tsdown-bundle-coverage.test.ts | 1 -
packages/server/src/ui-lock.ts | 1 -
packages/server/src/upload-errors.test.ts | 3 -
packages/server/src/upload-errors.ts | 1 -
packages/server/src/upload-streaming.test.ts | 1 -
packages/server/src/upload-streaming.ts | 9 +-
packages/server/src/version-constants.ts | 3 +-
1536 files changed, 638 insertions(+), 3710 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 9275293c..53679ffd 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -1,5 +1,5 @@
name: Bug report
-description: Report something that isn't working in Open Knowledge
+description: Report something that isn't working in OpenKnowledge
title: "[Bug]: "
labels: ["bug"]
body:
@@ -52,7 +52,7 @@ body:
- type: dropdown
id: install-method
attributes:
- label: How did you install Open Knowledge?
+ label: How did you install OpenKnowledge?
options:
- Desktop app (DMG)
- CLI (npm / npx)
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 32877eda..2b43302e 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -15,12 +15,9 @@
---
-### How our PR flow works — please read
+### After you open this PR
-This repository is **mirrored from an internal monorepo**. After you open this PR:
+- A maintainer will review your PR. If you don't hear back within a few business days, a comment to nudge is welcome.
+- When your change is accepted, this PR closes automatically — that's how it merges, and your authorship is preserved.
-1. A bot mirrors your changes internally for review (it posts a link you won't be able to open — that's expected).
-2. Maintainer review and full CI (lint, typecheck, tests) happen internally; results are **not** posted back to this PR.
-3. Once the change lands internally and syncs back, **your PR is closed — not merged.** Your authorship is preserved.
-
-If you don't hear back within a few business days, commenting to nudge is welcome. See [CONTRIBUTING.md](../CONTRIBUTING.md) for the full flow.
+See [CONTRIBUTING.md](../CONTRIBUTING.md) for details.
diff --git a/docs/scripts/generate-og-wordmark.ts b/docs/scripts/generate-og-wordmark.ts
index a28d174c..2acc8793 100644
--- a/docs/scripts/generate-og-wordmark.ts
+++ b/docs/scripts/generate-og-wordmark.ts
@@ -1,7 +1,6 @@
import { readFileSync, writeFileSync } from 'node:fs';
import path from 'node:path';
-
const root = path.resolve(import.meta.dirname, '..');
const svg = readFileSync(path.join(root, 'public', 'ok-wordmark.svg'));
const dataUrl = `data:image/svg+xml;base64,${svg.toString('base64')}`;
diff --git a/docs/src/app/(home)/sections/eng-specs-graphic.tsx b/docs/src/app/(home)/sections/eng-specs-graphic.tsx
index c62ffde1..b208fee1 100644
--- a/docs/src/app/(home)/sections/eng-specs-graphic.tsx
+++ b/docs/src/app/(home)/sections/eng-specs-graphic.tsx
@@ -1,6 +1,5 @@
import { Code, Sparkles } from 'lucide-react';
-
const RINGS = [56, 82, 108] as const;
const RING_CENTER = { x: 80, y: 45 };
diff --git a/docs/src/app/(home)/sections/knowledge-base-graphic.tsx b/docs/src/app/(home)/sections/knowledge-base-graphic.tsx
index 1482256c..112feb5b 100644
--- a/docs/src/app/(home)/sections/knowledge-base-graphic.tsx
+++ b/docs/src/app/(home)/sections/knowledge-base-graphic.tsx
@@ -1,7 +1,6 @@
import { Sparkles } from 'lucide-react';
import type { CSSProperties } from 'react';
-
const RINGS = [56, 82, 108] as const;
const RING_CENTER = { x: 80, y: 45 };
diff --git a/docs/src/components/copy-prompt.tsx b/docs/src/components/copy-prompt.tsx
index 28ca3b40..6a74157b 100644
--- a/docs/src/components/copy-prompt.tsx
+++ b/docs/src/components/copy-prompt.tsx
@@ -26,8 +26,7 @@ export function CopyPrompt({ children }: CopyPromptProps) {
await navigator.clipboard.writeText(text);
setCopied(true);
window.setTimeout(() => setCopied(false), 2000);
- } catch {
- }
+ } catch {}
};
return (
diff --git a/docs/src/components/ok-editor/bubble-menu.tsx b/docs/src/components/ok-editor/bubble-menu.tsx
index 145b7cbe..2913be65 100644
--- a/docs/src/components/ok-editor/bubble-menu.tsx
+++ b/docs/src/components/ok-editor/bubble-menu.tsx
@@ -113,8 +113,7 @@ export function OkBubbleMenu({ editor }: { editor: Editor }) {
popup.style.left = `${x}px`;
popup.style.top = `${y}px`;
})
- .catch(() => {
- });
+ .catch(() => {});
});
};
diff --git a/docs/src/components/ok-editor/drag-handle.tsx b/docs/src/components/ok-editor/drag-handle.tsx
index da2e313d..dd451784 100644
--- a/docs/src/components/ok-editor/drag-handle.tsx
+++ b/docs/src/components/ok-editor/drag-handle.tsx
@@ -68,8 +68,7 @@ export const BlockDragHandle = Extension.create({
if (curPos < 0) return;
try {
editor.chain().focus().setNodeSelection(curPos).run();
- } catch {
- }
+ } catch {}
});
return [
diff --git a/docs/src/components/ok-editor/preview-code-block.tsx b/docs/src/components/ok-editor/preview-code-block.tsx
index 2684ed1f..0c114fd9 100644
--- a/docs/src/components/ok-editor/preview-code-block.tsx
+++ b/docs/src/components/ok-editor/preview-code-block.tsx
@@ -9,7 +9,6 @@ import {
} from '@tiptap/react';
import { Trash2 } from 'lucide-react';
-
const THEME_VARS = PREVIEW_THEME_TOKENS.map((t) => `${t.name}:${t.light}`).join(';');
const CHART_PALETTE = [
diff --git a/docs/src/components/overview-blocks.tsx b/docs/src/components/overview-blocks.tsx
index 3e563962..d5404a15 100644
--- a/docs/src/components/overview-blocks.tsx
+++ b/docs/src/components/overview-blocks.tsx
@@ -1,7 +1,6 @@
import { ArrowRight, Bot, Database, type LucideIcon, NotebookPen } from 'lucide-react';
import type { ReactNode } from 'react';
-
interface Layer {
k: string;
Icon: LucideIcon;
diff --git a/docs/src/components/page-markdown-actions.tsx b/docs/src/components/page-markdown-actions.tsx
index 73c10f4b..46d39f08 100644
--- a/docs/src/components/page-markdown-actions.tsx
+++ b/docs/src/components/page-markdown-actions.tsx
@@ -34,8 +34,7 @@ export function PageMarkdownActions({
await navigator.clipboard.writeText(await res.text());
setCopied(true);
window.setTimeout(() => setCopied(false), 2000);
- } catch {
- }
+ } catch {}
};
const prompt = `Read ${markdownUrl} so I can ask questions about it.`;
diff --git a/docs/src/components/tabs.test.ts b/docs/src/components/tabs.test.ts
index df62a0f0..60f3e2a7 100644
--- a/docs/src/components/tabs.test.ts
+++ b/docs/src/components/tabs.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { composeTabId, slugifyTabId } from './tabs.tsx';
diff --git a/docs/src/components/tabs.tsx b/docs/src/components/tabs.tsx
index 03179edf..b58677dc 100644
--- a/docs/src/components/tabs.tsx
+++ b/docs/src/components/tabs.tsx
@@ -1,6 +1,5 @@
'use client';
-
import {
Tab as FumadocsTab,
Tabs as FumadocsTabs,
diff --git a/docs/src/lib/deferred-share.ts b/docs/src/lib/deferred-share.ts
index bdba626a..298df0ad 100644
--- a/docs/src/lib/deferred-share.ts
+++ b/docs/src/lib/deferred-share.ts
@@ -1,4 +1,3 @@
-
export const PENDING_SHARE_COOKIE = 'ok_pending_share';
export const PENDING_SHARE_MAX_AGE_SECONDS = 7 * 24 * 60 * 60;
diff --git a/docs/src/lib/share-splash.ts b/docs/src/lib/share-splash.ts
index 3b94241a..47ac185c 100644
--- a/docs/src/lib/share-splash.ts
+++ b/docs/src/lib/share-splash.ts
@@ -1,4 +1,3 @@
-
import { SITE_NAME } from './site';
const SHARE_URL_VERSION_V1 = 0x01;
diff --git a/docs/src/lib/track.ts b/docs/src/lib/track.ts
index aff26e3e..f541e2cf 100644
--- a/docs/src/lib/track.ts
+++ b/docs/src/lib/track.ts
@@ -1,6 +1,5 @@
import { after } from 'next/server';
-
const POSTHOG_CAPTURE_URL = 'https://us.i.posthog.com/capture/';
const CAPTURE_TIMEOUT_MS = 3_000;
diff --git a/packages/app/playwright.a11y.config.ts b/packages/app/playwright.a11y.config.ts
index b9061eca..b7a2a09b 100644
--- a/packages/app/playwright.a11y.config.ts
+++ b/packages/app/playwright.a11y.config.ts
@@ -1,6 +1,5 @@
import { defineConfig } from '@playwright/test';
-
const isCI = !!process.env.CI;
export default defineConfig({
diff --git a/packages/app/playwright.config.ts b/packages/app/playwright.config.ts
index 910a7870..f6c9ec05 100644
--- a/packages/app/playwright.config.ts
+++ b/packages/app/playwright.config.ts
@@ -1,6 +1,5 @@
import { defineConfig } from '@playwright/test';
-
const isCI = !!process.env.CI;
export default defineConfig({
diff --git a/packages/app/playwright.visual.config.ts b/packages/app/playwright.visual.config.ts
index c522418a..e9f60626 100644
--- a/packages/app/playwright.visual.config.ts
+++ b/packages/app/playwright.visual.config.ts
@@ -1,6 +1,5 @@
import { defineConfig } from '@playwright/test';
-
const isCI = !!process.env.CI;
export default defineConfig({
diff --git a/packages/app/src/build/app-version.ts b/packages/app/src/build/app-version.ts
index 9c69e05d..8de3d072 100644
--- a/packages/app/src/build/app-version.ts
+++ b/packages/app/src/build/app-version.ts
@@ -12,8 +12,7 @@ export function resolveAppVersion(): string {
if (typeof pkg.version === 'string' && pkg.version.length > 0) {
return pkg.version;
}
- } catch {
- }
+ } catch {}
return '0.0.0-unknown';
}
diff --git a/packages/app/src/build/electron-mode-class.test.ts b/packages/app/src/build/electron-mode-class.test.ts
index c13d9303..d3e9a169 100644
--- a/packages/app/src/build/electron-mode-class.test.ts
+++ b/packages/app/src/build/electron-mode-class.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { readFileSync } from 'node:fs';
import { join } from 'node:path';
diff --git a/packages/app/src/components/ActivityModeContent.tsx b/packages/app/src/components/ActivityModeContent.tsx
index 7f8d8801..44e04f34 100644
--- a/packages/app/src/components/ActivityModeContent.tsx
+++ b/packages/app/src/components/ActivityModeContent.tsx
@@ -12,7 +12,6 @@ import { AgentIcon } from './icons/AgentIcon';
import { Button } from './ui/button';
import { Tooltip, TooltipContent, TooltipTrigger } from './ui/tooltip';
-
async function postAgentUndo(body: {
connectionId: string;
docName: string;
@@ -32,7 +31,6 @@ async function postAgentUndo(body: {
}
}
-
function hashFromDocName(docName: string): string {
return `#/${docName
.split('/')
@@ -45,7 +43,6 @@ function navigateToDoc(docName: string): void {
window.location.hash = hashFromDocName(docName);
}
-
function LoadingState(): React.JSX.Element {
return (
['data'];
status: ReturnType
['status'];
@@ -308,7 +304,6 @@ function ActivityModeBody({
);
}
-
export function ActivityModeContent({
showBackButton = true,
}: {
diff --git a/packages/app/src/components/ArrayOfObjectsWidget.tsx b/packages/app/src/components/ArrayOfObjectsWidget.tsx
index 1c9159bc..dc373f2f 100644
--- a/packages/app/src/components/ArrayOfObjectsWidget.tsx
+++ b/packages/app/src/components/ArrayOfObjectsWidget.tsx
@@ -1,4 +1,3 @@
-
import {
closestCenter,
DndContext,
diff --git a/packages/app/src/components/AuthModal.dom.test.tsx b/packages/app/src/components/AuthModal.dom.test.tsx
index ad9b4a9e..bfa5538b 100644
--- a/packages/app/src/components/AuthModal.dom.test.tsx
+++ b/packages/app/src/components/AuthModal.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, jest, test } from 'bun:test';
import { act, cleanup, render, screen } from '@testing-library/react';
import type { OkLocalOpAuthEvent, OkLocalOpAuthStatusResponse } from '@/lib/desktop-bridge-types';
diff --git a/packages/app/src/components/AuthModal.tsx b/packages/app/src/components/AuthModal.tsx
index 1b87a0f9..67ddcf0f 100644
--- a/packages/app/src/components/AuthModal.tsx
+++ b/packages/app/src/components/AuthModal.tsx
@@ -19,12 +19,10 @@ import {
} from './ui/dialog';
import { Input } from './ui/input';
-
async function copyToClipboard(text: string): Promise {
try {
await navigator.clipboard.writeText(text);
- } catch {
- }
+ } catch {}
}
interface AuthSuccessResult {
@@ -44,7 +42,6 @@ interface AuthModalProps {
queryTransport?: AuthQueryTransport;
}
-
interface DeviceFlowPanelProps {
onSuccess: (result: AuthSuccessResult) => void;
transport: AuthTransport;
@@ -205,7 +202,6 @@ function DeviceFlowPanel({ onSuccess, transport }: DeviceFlowPanelProps) {
);
}
-
interface IdentityBodyProps {
login: string;
name: string;
@@ -241,7 +237,6 @@ function IdentityBody({ login, name, onNameChange, email, onEmailChange }: Ident
);
}
-
type AuthStep = 'checking' | 'auth' | 'identity' | 'done';
const IDENTITY_PROBE_TIMEOUT_MS = 10_000;
@@ -328,8 +323,7 @@ export function AuthModal({
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name, email }),
- }).catch(() => {
- });
+ }).catch(() => {});
const result = { ...(authResult ?? { login: '' }), name, email };
setStep('done');
diff --git a/packages/app/src/components/AutoSyncOnboardingDialog.tsx b/packages/app/src/components/AutoSyncOnboardingDialog.tsx
index fcce67ea..80215913 100644
--- a/packages/app/src/components/AutoSyncOnboardingDialog.tsx
+++ b/packages/app/src/components/AutoSyncOnboardingDialog.tsx
@@ -42,10 +42,7 @@ export function AutoSyncOnboardingDialog({ open, onResolved }: AutoSyncOnboardin
}
return (
- {}}
- >
+ {}}>
diff --git a/packages/app/src/components/BetaBadge.tsx b/packages/app/src/components/BetaBadge.tsx
index 3dd7f5b6..9c227d08 100644
--- a/packages/app/src/components/BetaBadge.tsx
+++ b/packages/app/src/components/BetaBadge.tsx
@@ -1,4 +1,3 @@
-
import { Trans, useLingui } from '@lingui/react/macro';
import { useUpdateChannel } from '@/hooks/use-update-channel';
import { Badge } from './ui/badge';
diff --git a/packages/app/src/components/BottomComposer.dom.test.tsx b/packages/app/src/components/BottomComposer.dom.test.tsx
index b7829577..f57c2b35 100644
--- a/packages/app/src/components/BottomComposer.dom.test.tsx
+++ b/packages/app/src/components/BottomComposer.dom.test.tsx
@@ -265,8 +265,7 @@ beforeEach(() => {
toastErrors.length = 0;
try {
window.localStorage.clear();
- } catch {
- }
+ } catch {}
});
afterEach(() => {
diff --git a/packages/app/src/components/BottomComposer.tsx b/packages/app/src/components/BottomComposer.tsx
index 0f7d794d..02b20be0 100644
--- a/packages/app/src/components/BottomComposer.tsx
+++ b/packages/app/src/components/BottomComposer.tsx
@@ -1,4 +1,3 @@
-
import {
type TargetData,
TERMINAL_CLI_IDS,
@@ -186,8 +185,7 @@ export function BottomComposer({
if (overlap <= 0) return;
const scroller = view.dom.closest('.editor-doc-scroll');
if (scroller instanceof HTMLElement) scroller.scrollTop += overlap;
- } catch {
- }
+ } catch {}
});
};
const card = cardRef.current;
diff --git a/packages/app/src/components/ClaudeReadinessBanner.dom.test.tsx b/packages/app/src/components/ClaudeReadinessBanner.dom.test.tsx
index 2bff838d..daa5874b 100644
--- a/packages/app/src/components/ClaudeReadinessBanner.dom.test.tsx
+++ b/packages/app/src/components/ClaudeReadinessBanner.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import { act, cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react';
import type { ClaudeReadiness, OkDesktopBridge } from '@/lib/desktop-bridge-types';
diff --git a/packages/app/src/components/CloneDialog.dom.test.tsx b/packages/app/src/components/CloneDialog.dom.test.tsx
index fe93c4b0..ed5bcb30 100644
--- a/packages/app/src/components/CloneDialog.dom.test.tsx
+++ b/packages/app/src/components/CloneDialog.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
import { cleanup, render, screen } from '@testing-library/react';
import { getLastKnownSignedIn, setLastKnownSignedIn } from '@/lib/auth-state-cache';
diff --git a/packages/app/src/components/ComposerContextChips.dom.test.tsx b/packages/app/src/components/ComposerContextChips.dom.test.tsx
index 7b3f25bb..77d6f350 100644
--- a/packages/app/src/components/ComposerContextChips.dom.test.tsx
+++ b/packages/app/src/components/ComposerContextChips.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, mock, test } from 'bun:test';
import { cleanup, fireEvent, render, screen } from '@testing-library/react';
import type { ReactNode } from 'react';
diff --git a/packages/app/src/components/ComposerContextChips.tsx b/packages/app/src/components/ComposerContextChips.tsx
index 28098339..3b102c9c 100644
--- a/packages/app/src/components/ComposerContextChips.tsx
+++ b/packages/app/src/components/ComposerContextChips.tsx
@@ -1,4 +1,3 @@
-
import { useLingui } from '@lingui/react/macro';
import { X } from 'lucide-react';
import type { ReactNode } from 'react';
diff --git a/packages/app/src/components/ConsentDialog.tsx b/packages/app/src/components/ConsentDialog.tsx
index 037a8205..204a576c 100644
--- a/packages/app/src/components/ConsentDialog.tsx
+++ b/packages/app/src/components/ConsentDialog.tsx
@@ -1,4 +1,3 @@
-
import { lazy, Suspense, useSyncExternalStore } from 'react';
import { consentStore } from '@/lib/consent-store';
diff --git a/packages/app/src/components/CopyButton.tsx b/packages/app/src/components/CopyButton.tsx
index 8e9beb5d..50a7763c 100644
--- a/packages/app/src/components/CopyButton.tsx
+++ b/packages/app/src/components/CopyButton.tsx
@@ -1,4 +1,3 @@
-
import { useLingui } from '@lingui/react/macro';
import { Check, Copy } from 'lucide-react';
import { useEffect, useState } from 'react';
@@ -40,8 +39,7 @@ export function CopyButton({
.then(() => clipboardWrite(copyContent))
.then(
() => setCopyTick((n) => n + 1),
- () => {
- },
+ () => {},
);
};
diff --git a/packages/app/src/components/CreateProjectDialog.cascade-staleness.dom.test.tsx b/packages/app/src/components/CreateProjectDialog.cascade-staleness.dom.test.tsx
index d58e51f3..877e33f1 100644
--- a/packages/app/src/components/CreateProjectDialog.cascade-staleness.dom.test.tsx
+++ b/packages/app/src/components/CreateProjectDialog.cascade-staleness.dom.test.tsx
@@ -511,7 +511,6 @@ describe('CreateProjectDialog cascade staleness (Tier-3 mount)', () => {
});
test('PRD-6649: 5 s polling skips probeNonce bump while a probe is in-flight (race-prevention gate)', async () => {
-
const stub = makeStubBridge(FIRST_GIT_RESULT, PARENT);
const setIntervalSpy = spyOn(globalThis, 'setInterval');
diff --git a/packages/app/src/components/CreateProjectDialog.tsx b/packages/app/src/components/CreateProjectDialog.tsx
index bb46412a..9b56c160 100644
--- a/packages/app/src/components/CreateProjectDialog.tsx
+++ b/packages/app/src/components/CreateProjectDialog.tsx
@@ -1,4 +1,3 @@
-
import {
ALL_EDITOR_IDS,
CREATE_NEW_PROJECT_FAILURE_REASONS,
@@ -309,8 +308,7 @@ export function CreateProjectDialog({ open, onOpenChange, bridge }: CreateProjec
if (banner === null) return;
if (firedBanners.current.has(banner)) return;
firedBanners.current.add(banner);
- bridge.project.recordCreateNewBannerShown(banner).catch(() => {
- });
+ bridge.project.recordCreateNewBannerShown(banner).catch(() => {});
}, [open, cascade, bridge]);
const rawName = name;
diff --git a/packages/app/src/components/CreateProjectMenuTrigger.tsx b/packages/app/src/components/CreateProjectMenuTrigger.tsx
index eb105d7f..a4eb9e25 100644
--- a/packages/app/src/components/CreateProjectMenuTrigger.tsx
+++ b/packages/app/src/components/CreateProjectMenuTrigger.tsx
@@ -1,4 +1,3 @@
-
import { useEffect, useState } from 'react';
import { CreateProjectDialog } from '@/components/CreateProjectDialog';
import type { OkDesktopBridge } from '@/lib/desktop-bridge-types';
diff --git a/packages/app/src/components/DeleteConfirmationDialog.tsx b/packages/app/src/components/DeleteConfirmationDialog.tsx
index 75730d65..0230fda1 100644
--- a/packages/app/src/components/DeleteConfirmationDialog.tsx
+++ b/packages/app/src/components/DeleteConfirmationDialog.tsx
@@ -43,9 +43,7 @@ export function DeleteConfirmationDialog({
{customTitle ?? t`Delete ${itemName}`}
-
+
{customDescription ??
t`Are you sure you want to delete ${itemName}? This action cannot be undone.`}
diff --git a/packages/app/src/components/DiffViewBoundary.tsx b/packages/app/src/components/DiffViewBoundary.tsx
index f1329e9a..5a95e4ca 100644
--- a/packages/app/src/components/DiffViewBoundary.tsx
+++ b/packages/app/src/components/DiffViewBoundary.tsx
@@ -38,8 +38,7 @@ async function fetchConflictSides(file: string): Promise {
const payload = (await res.json()) as { detail?: unknown; title?: unknown };
if (typeof payload.detail === 'string') detail = payload.detail;
else if (typeof payload.title === 'string') detail = payload.title;
- } catch {
- }
+ } catch {}
console.warn(
JSON.stringify({
event: 'conflict-content-fetch-failed',
diff --git a/packages/app/src/components/DocPanel.dom.test.tsx b/packages/app/src/components/DocPanel.dom.test.tsx
index 48b8323d..b2567fd2 100644
--- a/packages/app/src/components/DocPanel.dom.test.tsx
+++ b/packages/app/src/components/DocPanel.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, mock, test } from 'bun:test';
import { cleanup, render, screen } from '@testing-library/react';
import type { ReactNode } from 'react';
diff --git a/packages/app/src/components/DocumentBoundary.test.ts b/packages/app/src/components/DocumentBoundary.test.ts
index 35f25d18..776e5aa0 100644
--- a/packages/app/src/components/DocumentBoundary.test.ts
+++ b/packages/app/src/components/DocumentBoundary.test.ts
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
import { HocuspocusProvider } from '@hocuspocus/provider';
import { __resetSyncPromiseCache, syncPromise } from '@/editor/sync-promise';
@@ -26,8 +25,7 @@ afterEach(() => {
for (const p of providers) {
try {
p.destroy();
- } catch {
- }
+ } catch {}
}
providers = [];
});
diff --git a/packages/app/src/components/DocumentBoundary.tsx b/packages/app/src/components/DocumentBoundary.tsx
index eaea173e..cfdb81f0 100644
--- a/packages/app/src/components/DocumentBoundary.tsx
+++ b/packages/app/src/components/DocumentBoundary.tsx
@@ -1,4 +1,3 @@
-
import type { HocuspocusProvider } from '@hocuspocus/provider';
import { type ReactNode, use } from 'react';
import { syncPromise } from '@/editor/sync-promise';
diff --git a/packages/app/src/components/DocumentErrorBoundary.test.ts b/packages/app/src/components/DocumentErrorBoundary.test.ts
index 227ebb82..0374eeb9 100644
--- a/packages/app/src/components/DocumentErrorBoundary.test.ts
+++ b/packages/app/src/components/DocumentErrorBoundary.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { MountAbortError } from '@/editor/mount-promise';
import {
diff --git a/packages/app/src/components/EditorActivityPool.test.ts b/packages/app/src/components/EditorActivityPool.test.ts
index d110f573..be046da8 100644
--- a/packages/app/src/components/EditorActivityPool.test.ts
+++ b/packages/app/src/components/EditorActivityPool.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { SYSTEM_DOC_NAME } from '@inkeep/open-knowledge-core';
import {
@@ -368,7 +367,6 @@ describe('computeEditorMountGate — invariant: at least one editor rendered', (
});
});
-
describe('shouldEmitFirstToggle — first-toggle mark gate', () => {
test('large doc, both editors rendering, not yet emitted → emit', () => {
expect(
diff --git a/packages/app/src/components/EditorActivityPool.tsx b/packages/app/src/components/EditorActivityPool.tsx
index d303ddf2..d13639d3 100644
--- a/packages/app/src/components/EditorActivityPool.tsx
+++ b/packages/app/src/components/EditorActivityPool.tsx
@@ -563,7 +563,6 @@ function ActivityEntry({
const [warmSnapshot] = useState(() => peekRenameSnapshot(entry.docName));
const warmHtml = warmSnapshot?.html ?? null;
-
const [hasEmittedFirstToggle, setHasEmittedFirstToggle] = useState(false);
useEffect(() => {
if (
diff --git a/packages/app/src/components/EditorActivityPool.warm-skeleton.dom.test.tsx b/packages/app/src/components/EditorActivityPool.warm-skeleton.dom.test.tsx
index 6f591d21..c7d8b88e 100644
--- a/packages/app/src/components/EditorActivityPool.warm-skeleton.dom.test.tsx
+++ b/packages/app/src/components/EditorActivityPool.warm-skeleton.dom.test.tsx
@@ -12,7 +12,6 @@ import {
} from '@/editor/editor-cache';
import { expectVisualClassTokens } from '@/test-utils/visual-contract';
-
function WarmContentFallbackReplica({ html }: { html: string }) {
return (
@@ -25,7 +24,6 @@ function WarmContentFallbackReplica({ html }: { html: string }) {
);
}
-
function WarmFallbackHost({ docName }: { docName: string }) {
const [warmSnapshot] = useState(() => peekRenameSnapshot(docName));
const warmHtml = warmSnapshot?.html ?? null;
@@ -49,7 +47,6 @@ function WarmFallbackHost({ docName }: { docName: string }) {
const baseSnap = (html: string): RenameSnapshot => ({ html, scrollTop: 0, selection: null });
-
describe('WarmContentFallback DOM geometry', () => {
let consoleErrorSpy: ReturnType
;
let consoleWarnSpy: ReturnType;
@@ -164,7 +161,6 @@ describe('rename-snapshot store → warm-fallback selection contract', () => {
});
});
-
describe('warm-fallback scroll restoration', () => {
let scrollContainer: HTMLDivElement;
let consoleErrorSpy: ReturnType;
@@ -221,7 +217,6 @@ describe('warm-fallback scroll restoration', () => {
});
});
-
describe('captureRenameSnapshots — scrollTop capture (DOM)', () => {
let scrollContainer: HTMLDivElement;
let consoleErrorSpy: ReturnType;
diff --git a/packages/app/src/components/EditorTabs.tsx b/packages/app/src/components/EditorTabs.tsx
index 341a55c1..2b0c2188 100644
--- a/packages/app/src/components/EditorTabs.tsx
+++ b/packages/app/src/components/EditorTabs.tsx
@@ -592,12 +592,7 @@ export function EditorTabs() {
)}
onWheel={scrollTabListOnWheel}
>
-
+
{
- });
+ .catch(() => {});
}
const messageReady = documentCount !== null;
diff --git a/packages/app/src/components/FileTree.showall-lazy.dom.test.tsx b/packages/app/src/components/FileTree.showall-lazy.dom.test.tsx
index 3d31def2..dc55c3a9 100644
--- a/packages/app/src/components/FileTree.showall-lazy.dom.test.tsx
+++ b/packages/app/src/components/FileTree.showall-lazy.dom.test.tsx
@@ -64,7 +64,6 @@ function makeFetchMock() {
});
}
-
class StubItem {
expanded = false;
selected = false;
diff --git a/packages/app/src/components/FileTree.showall-truncation.dom.test.tsx b/packages/app/src/components/FileTree.showall-truncation.dom.test.tsx
index 5247e5e5..fb028482 100644
--- a/packages/app/src/components/FileTree.showall-truncation.dom.test.tsx
+++ b/packages/app/src/components/FileTree.showall-truncation.dom.test.tsx
@@ -47,7 +47,6 @@ function makeFetchMock() {
});
}
-
class StubItem {
expanded = false;
selected = false;
diff --git a/packages/app/src/components/FileTree.superseded-refresh.dom.test.tsx b/packages/app/src/components/FileTree.superseded-refresh.dom.test.tsx
index 7bd4b06d..c8437e84 100644
--- a/packages/app/src/components/FileTree.superseded-refresh.dom.test.tsx
+++ b/packages/app/src/components/FileTree.superseded-refresh.dom.test.tsx
@@ -68,7 +68,6 @@ function makeFetchMock() {
});
}
-
class StubItem {
expanded = false;
selected = false;
diff --git a/packages/app/src/components/FileTree.tsx b/packages/app/src/components/FileTree.tsx
index c4abae0d..8c5f46ee 100644
--- a/packages/app/src/components/FileTree.tsx
+++ b/packages/app/src/components/FileTree.tsx
@@ -234,8 +234,7 @@ function focusEditorAfterRename(docName: string): void {
if (!editor || editor.isDestroyed) return;
try {
editor.commands.focus();
- } catch {
- }
+ } catch {}
});
}
@@ -293,16 +292,14 @@ const MARKDOWN_FILE_ICON_SYMBOL = `][];
function iconNodeToSvg(iconNode: IconNode): string {
- return (
- iconNode
- .map(([tag, { key: _, ...attrs }]) => {
- const attrString = Object.entries(attrs)
- .map(([k, v]) => `${k}="${v}"`)
- .join(' ');
- return `<${tag} ${attrString} />`;
- })
- .join('')
- );
+ return iconNode
+ .map(([tag, { key: _, ...attrs }]) => {
+ const attrString = Object.entries(attrs)
+ .map(([k, v]) => `${k}="${v}"`)
+ .join(' ');
+ return `<${tag} ${attrString} />`;
+ })
+ .join('');
}
function createLucideSpriteSymbol(id: string, iconNode: IconNode): string {
diff --git a/packages/app/src/components/FrontmatterRow.tsx b/packages/app/src/components/FrontmatterRow.tsx
index 6c3e19e5..ce503522 100644
--- a/packages/app/src/components/FrontmatterRow.tsx
+++ b/packages/app/src/components/FrontmatterRow.tsx
@@ -1,4 +1,3 @@
-
import { useSortable } from '@dnd-kit/sortable';
import { CSS } from '@dnd-kit/utilities';
import {
diff --git a/packages/app/src/components/GraphPanel.external-link-open.dom.test.tsx b/packages/app/src/components/GraphPanel.external-link-open.dom.test.tsx
index 07f1d30b..a49494af 100644
--- a/packages/app/src/components/GraphPanel.external-link-open.dom.test.tsx
+++ b/packages/app/src/components/GraphPanel.external-link-open.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import { act, cleanup, render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
diff --git a/packages/app/src/components/GraphPanel.tsx b/packages/app/src/components/GraphPanel.tsx
index 68e73fa2..30f4caa2 100644
--- a/packages/app/src/components/GraphPanel.tsx
+++ b/packages/app/src/components/GraphPanel.tsx
@@ -67,8 +67,7 @@ function saveBoolPref(key: string, value: boolean): void {
} else {
window.localStorage.removeItem(key);
}
- } catch {
- }
+ } catch {}
}
type FullscreenGraphMode = 'explore' | 'orphans' | 'hubs';
diff --git a/packages/app/src/components/InstallInClaudeDesktopDialog.tsx b/packages/app/src/components/InstallInClaudeDesktopDialog.tsx
index 16604938..d649a360 100644
--- a/packages/app/src/components/InstallInClaudeDesktopDialog.tsx
+++ b/packages/app/src/components/InstallInClaudeDesktopDialog.tsx
@@ -15,7 +15,6 @@ import {
import { dispatchExternalLinkClick } from '@/lib/external-link';
import { cn } from '@/lib/utils';
-
const INSTALL_COMMAND = 'npx @inkeep/open-knowledge cowork';
const DOCS_URL = 'https://openknowledge.ai/docs/integrations/claude-code';
diff --git a/packages/app/src/components/InteractionPropPanel.tsx b/packages/app/src/components/InteractionPropPanel.tsx
index f891dbe2..d880eaa6 100644
--- a/packages/app/src/components/InteractionPropPanel.tsx
+++ b/packages/app/src/components/InteractionPropPanel.tsx
@@ -1,4 +1,3 @@
-
import { autoUpdate, type VirtualElement } from '@floating-ui/dom';
import { type FC, type ReactNode, useLayoutEffect, useRef } from 'react';
import { cn } from '@/lib/utils';
diff --git a/packages/app/src/components/McpConsentDialog.tsx b/packages/app/src/components/McpConsentDialog.tsx
index 19b0f796..b0d74a6c 100644
--- a/packages/app/src/components/McpConsentDialog.tsx
+++ b/packages/app/src/components/McpConsentDialog.tsx
@@ -1,4 +1,3 @@
-
import { lazy, Suspense, useSyncExternalStore } from 'react';
import { mcpConsentStore } from '@/lib/mcp-consent-store';
diff --git a/packages/app/src/components/McpConsentDialogBody.tsx b/packages/app/src/components/McpConsentDialogBody.tsx
index e3d12df1..78115f78 100644
--- a/packages/app/src/components/McpConsentDialogBody.tsx
+++ b/packages/app/src/components/McpConsentDialogBody.tsx
@@ -1,4 +1,3 @@
-
import { Trans, useLingui } from '@lingui/react/macro';
import { useId, useState } from 'react';
import { toast as sonnerToast } from 'sonner';
diff --git a/packages/app/src/components/MountStalledAffordance.tsx b/packages/app/src/components/MountStalledAffordance.tsx
index 65a1aa09..dbfc38e3 100644
--- a/packages/app/src/components/MountStalledAffordance.tsx
+++ b/packages/app/src/components/MountStalledAffordance.tsx
@@ -1,4 +1,3 @@
-
import { Trans } from '@lingui/react/macro';
import { type ReactElement, useEffect, useState } from 'react';
import { Button } from '@/components/ui/button';
diff --git a/packages/app/src/components/NavigatorApp.tsx b/packages/app/src/components/NavigatorApp.tsx
index b48ea224..d1625713 100644
--- a/packages/app/src/components/NavigatorApp.tsx
+++ b/packages/app/src/components/NavigatorApp.tsx
@@ -1,4 +1,3 @@
-
import { Trans, useLingui } from '@lingui/react/macro';
import { FolderOpenIcon, GitBranch, Loader2Icon, PlusIcon, XIcon } from 'lucide-react';
import { useTheme } from 'next-themes';
diff --git a/packages/app/src/components/NewItemDialog.test.ts b/packages/app/src/components/NewItemDialog.test.ts
index a152013f..5103ffe7 100644
--- a/packages/app/src/components/NewItemDialog.test.ts
+++ b/packages/app/src/components/NewItemDialog.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import {
diff --git a/packages/app/src/components/ObjectWidget.tsx b/packages/app/src/components/ObjectWidget.tsx
index 16c83a6d..ba91de5a 100644
--- a/packages/app/src/components/ObjectWidget.tsx
+++ b/packages/app/src/components/ObjectWidget.tsx
@@ -1,4 +1,3 @@
-
import {
closestCenter,
DndContext,
diff --git a/packages/app/src/components/PageHeader.tsx b/packages/app/src/components/PageHeader.tsx
index 53d8f90a..14f2cb52 100644
--- a/packages/app/src/components/PageHeader.tsx
+++ b/packages/app/src/components/PageHeader.tsx
@@ -1,4 +1,3 @@
-
import type { HocuspocusProvider } from '@hocuspocus/provider';
import {
bindFrontmatterDoc,
diff --git a/packages/app/src/components/PageHeaderWidgets.tsx b/packages/app/src/components/PageHeaderWidgets.tsx
index 869d6217..7465b003 100644
--- a/packages/app/src/components/PageHeaderWidgets.tsx
+++ b/packages/app/src/components/PageHeaderWidgets.tsx
@@ -1,4 +1,3 @@
-
// biome-ignore-all lint/plugin/no-raw-html-interactive-element: matches the existing PropertyWidgets.tsx posture — raw `` is the typed-input affordance shared across every frontmatter widget; migrating to shadcn `` is the file-wide pre-rule backlog described in PropertyWidgets.tsx's top-of-file ignore comment.
import { ALLOWED_IMAGE_MIME_TYPES } from '@inkeep/open-knowledge-core';
diff --git a/packages/app/src/components/ProjectSwitcher.tsx b/packages/app/src/components/ProjectSwitcher.tsx
index 43ad1a8a..dd8f492e 100644
--- a/packages/app/src/components/ProjectSwitcher.tsx
+++ b/packages/app/src/components/ProjectSwitcher.tsx
@@ -1,4 +1,3 @@
-
import { Trans, useLingui } from '@lingui/react/macro';
import { ChevronsUpDown, FolderOpen, GitBranch, LayoutGrid, Plus, Search } from 'lucide-react';
import { useEffect, useRef, useState } from 'react';
diff --git a/packages/app/src/components/PropertyInlineLinks.dom.test.tsx b/packages/app/src/components/PropertyInlineLinks.dom.test.tsx
index 77959eac..6a4b28de 100644
--- a/packages/app/src/components/PropertyInlineLinks.dom.test.tsx
+++ b/packages/app/src/components/PropertyInlineLinks.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, test } from 'bun:test';
import { cleanup, render, screen } from '@testing-library/react';
import { PropertyInlineLinks } from './PropertyInlineLinks';
diff --git a/packages/app/src/components/PropertyInlineLinks.tsx b/packages/app/src/components/PropertyInlineLinks.tsx
index 8762d849..0e9411c9 100644
--- a/packages/app/src/components/PropertyInlineLinks.tsx
+++ b/packages/app/src/components/PropertyInlineLinks.tsx
@@ -1,4 +1,3 @@
-
import type { ReactNode } from 'react';
import { dispatchExternalLinkClick } from '@/lib/external-link';
import { cn } from '@/lib/utils';
diff --git a/packages/app/src/components/PropertyPanel.nested-crud.dom.test.tsx b/packages/app/src/components/PropertyPanel.nested-crud.dom.test.tsx
index 2686cd74..7e289356 100644
--- a/packages/app/src/components/PropertyPanel.nested-crud.dom.test.tsx
+++ b/packages/app/src/components/PropertyPanel.nested-crud.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, test } from 'bun:test';
import { HocuspocusProvider } from '@hocuspocus/provider';
import { readFmMap } from '@inkeep/open-knowledge-core';
@@ -45,8 +44,7 @@ afterEach(() => {
for (const p of providers.splice(0)) {
try {
p.destroy();
- } catch {
- }
+ } catch {}
}
});
diff --git a/packages/app/src/components/PropertyPanel.test.tsx b/packages/app/src/components/PropertyPanel.test.tsx
index a98012a6..7f3a5b43 100644
--- a/packages/app/src/components/PropertyPanel.test.tsx
+++ b/packages/app/src/components/PropertyPanel.test.tsx
@@ -28,8 +28,7 @@ afterEach(() => {
for (const p of providers.splice(0)) {
try {
p.destroy();
- } catch {
- }
+ } catch {}
}
});
diff --git a/packages/app/src/components/PropertyPanel.tsx b/packages/app/src/components/PropertyPanel.tsx
index 0c7a06c0..7ea9f989 100644
--- a/packages/app/src/components/PropertyPanel.tsx
+++ b/packages/app/src/components/PropertyPanel.tsx
@@ -92,7 +92,6 @@ export function PropertyPanel({ provider, reservedKeys }: PropertyPanelProps) {
const panelRef = useRef(null);
usePublishFrontmatterSelection(panelRef, docName);
-
function commitPatch(patch: FrontmatterPatch): PatchResult {
if (!binding) {
return { ok: false, error: t`Connecting` };
diff --git a/packages/app/src/components/PublishToGitHubDialog.tsx b/packages/app/src/components/PublishToGitHubDialog.tsx
index 1f2a1161..6f71620c 100644
--- a/packages/app/src/components/PublishToGitHubDialog.tsx
+++ b/packages/app/src/components/PublishToGitHubDialog.tsx
@@ -1,4 +1,3 @@
-
import type { SharePublishOwner } from '@inkeep/open-knowledge-core';
import { Trans, useLingui } from '@lingui/react/macro';
import { CheckCircle2, Copy, ExternalLink, Loader2, XCircle } from 'lucide-react';
diff --git a/packages/app/src/components/SettingsButton.tsx b/packages/app/src/components/SettingsButton.tsx
index f4b8510b..080da4f4 100644
--- a/packages/app/src/components/SettingsButton.tsx
+++ b/packages/app/src/components/SettingsButton.tsx
@@ -1,4 +1,3 @@
-
import { Trans } from '@lingui/react/macro';
import { Settings } from 'lucide-react';
import { type FC, useEffect, useRef } from 'react';
diff --git a/packages/app/src/components/ShareBranchSwitchDialog.dom.test.tsx b/packages/app/src/components/ShareBranchSwitchDialog.dom.test.tsx
index 96528d40..a43bb630 100644
--- a/packages/app/src/components/ShareBranchSwitchDialog.dom.test.tsx
+++ b/packages/app/src/components/ShareBranchSwitchDialog.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import type { BranchInfoResponse, CheckoutResponse } from '@inkeep/open-knowledge-core';
import { act, cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react';
diff --git a/packages/app/src/components/ShareBranchSwitchDialog.tsx b/packages/app/src/components/ShareBranchSwitchDialog.tsx
index 59ce9a98..019dc878 100644
--- a/packages/app/src/components/ShareBranchSwitchDialog.tsx
+++ b/packages/app/src/components/ShareBranchSwitchDialog.tsx
@@ -1,4 +1,3 @@
-
import { Trans, useLingui } from '@lingui/react/macro';
import { GitBranch, Loader2, MapPin } from 'lucide-react';
import { useEffect, useRef, useState, useSyncExternalStore } from 'react';
diff --git a/packages/app/src/components/ShareButton.tsx b/packages/app/src/components/ShareButton.tsx
index 9ded04d1..2ae80d77 100644
--- a/packages/app/src/components/ShareButton.tsx
+++ b/packages/app/src/components/ShareButton.tsx
@@ -1,4 +1,3 @@
-
import { Trans, useLingui } from '@lingui/react/macro';
import { CircleHelp, Share2 } from 'lucide-react';
import { useEffect, useRef, useState } from 'react';
diff --git a/packages/app/src/components/SharingModeField.tsx b/packages/app/src/components/SharingModeField.tsx
index 4dcc8552..e2fd74bb 100644
--- a/packages/app/src/components/SharingModeField.tsx
+++ b/packages/app/src/components/SharingModeField.tsx
@@ -1,4 +1,3 @@
-
import { Trans } from '@lingui/react/macro';
import { ConfigSharingInfoTooltip } from '@/components/ConfigSharingInfoTooltip';
import { Label } from '@/components/ui/label';
diff --git a/packages/app/src/components/SidebarSearchBar.test.ts b/packages/app/src/components/SidebarSearchBar.test.ts
index 6ecbbe93..ad528df5 100644
--- a/packages/app/src/components/SidebarSearchBar.test.ts
+++ b/packages/app/src/components/SidebarSearchBar.test.ts
@@ -15,7 +15,6 @@ describe('SidebarSearchBar module', () => {
});
describe('onPillRenderError — Pattern C runtime observability emission', () => {
-
let warnSpy: ReturnType;
beforeEach(() => {
diff --git a/packages/app/src/components/SidebarSearchBar.tsx b/packages/app/src/components/SidebarSearchBar.tsx
index ce2584d5..6091170b 100644
--- a/packages/app/src/components/SidebarSearchBar.tsx
+++ b/packages/app/src/components/SidebarSearchBar.tsx
@@ -1,4 +1,3 @@
-
import { incrementJsxRenderFailure } from '@inkeep/open-knowledge-core';
import { Trans } from '@lingui/react/macro';
import { Search } from 'lucide-react';
diff --git a/packages/app/src/components/SkillEditorActions.dom.test.tsx b/packages/app/src/components/SkillEditorActions.dom.test.tsx
index 6496b0e0..ef712b1a 100644
--- a/packages/app/src/components/SkillEditorActions.dom.test.tsx
+++ b/packages/app/src/components/SkillEditorActions.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { describe, expect, mock, test } from 'bun:test';
import { render, screen, waitFor } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
diff --git a/packages/app/src/components/SkillEditorActions.tsx b/packages/app/src/components/SkillEditorActions.tsx
index 91ad2f8b..484e1cf3 100644
--- a/packages/app/src/components/SkillEditorActions.tsx
+++ b/packages/app/src/components/SkillEditorActions.tsx
@@ -17,7 +17,6 @@ import {
import { useSkills } from '@/hooks/use-skills';
import { cn } from '@/lib/utils';
-
const INSTALL_EDITORS: readonly SkillTargetEditor[] = SkillTargetEditorSchema.options;
export function SkillEditorActions({ scope, name }: { scope: SkillScope; name: string }) {
diff --git a/packages/app/src/components/SkillProperties.dom.test.tsx b/packages/app/src/components/SkillProperties.dom.test.tsx
index bbf8b873..7197e62d 100644
--- a/packages/app/src/components/SkillProperties.dom.test.tsx
+++ b/packages/app/src/components/SkillProperties.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { describe, expect, mock, test } from 'bun:test';
import type { HocuspocusProvider } from '@hocuspocus/provider';
import { fireEvent, render, screen } from '@testing-library/react';
diff --git a/packages/app/src/components/SyncStatusBadge.tsx b/packages/app/src/components/SyncStatusBadge.tsx
index 230e2ac2..879d101f 100644
--- a/packages/app/src/components/SyncStatusBadge.tsx
+++ b/packages/app/src/components/SyncStatusBadge.tsx
@@ -1,4 +1,3 @@
-
import type { PushPermissionWire, SyncErrorCode } from '@inkeep/open-knowledge-core';
import { plural, t } from '@lingui/core/macro';
import { Plural, Trans, useLingui } from '@lingui/react/macro';
@@ -26,7 +25,6 @@ import { Popover, PopoverContent, PopoverTrigger } from './ui/popover';
import { Switch } from './ui/switch';
import { Tooltip, TooltipContent, TooltipTrigger } from './ui/tooltip';
-
function formatRelative(iso: string | null): string {
if (!iso) return t`never`;
const diff = Date.now() - new Date(iso).getTime();
@@ -50,7 +48,6 @@ async function triggerSync(op: 'sync' | 'push' | 'pull'): Promise {
});
}
-
interface BadgeIconProps {
status: GitSyncStatus;
}
@@ -103,7 +100,6 @@ function badgeLabel(status: GitSyncStatus): string {
}
}
-
function stateLabel(state: GitSyncStatus['state']): string {
switch (state) {
case 'dormant':
@@ -498,7 +494,6 @@ function PopoverBody({ status, onSignIn, onSetIdentity }: PopoverBodyProps) {
);
}
-
interface SyncStatusBadgeProps {
onSignIn?: () => void;
onSetIdentity?: () => void;
diff --git a/packages/app/src/components/TemplateForm.tsx b/packages/app/src/components/TemplateForm.tsx
index e98de184..e4d7fa2d 100644
--- a/packages/app/src/components/TemplateForm.tsx
+++ b/packages/app/src/components/TemplateForm.tsx
@@ -38,7 +38,6 @@ export interface PropRow {
value: string;
}
-
let propRowSeq = 0;
function nextRowId(): string {
propRowSeq += 1;
diff --git a/packages/app/src/components/TemplateProperties.dom.test.tsx b/packages/app/src/components/TemplateProperties.dom.test.tsx
index eb31f034..963369e1 100644
--- a/packages/app/src/components/TemplateProperties.dom.test.tsx
+++ b/packages/app/src/components/TemplateProperties.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { describe, expect, mock, test } from 'bun:test';
import type { HocuspocusProvider } from '@hocuspocus/provider';
import { fireEvent, render, screen } from '@testing-library/react';
diff --git a/packages/app/src/components/TerminalCliMissingBanner.dom.test.tsx b/packages/app/src/components/TerminalCliMissingBanner.dom.test.tsx
index 87b07cbd..1417b840 100644
--- a/packages/app/src/components/TerminalCliMissingBanner.dom.test.tsx
+++ b/packages/app/src/components/TerminalCliMissingBanner.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, mock, test } from 'bun:test';
import { TERMINAL_CLIS } from '@inkeep/open-knowledge-core';
import { cleanup, render, screen } from '@testing-library/react';
diff --git a/packages/app/src/components/TerminalDock.dom.test.tsx b/packages/app/src/components/TerminalDock.dom.test.tsx
index e32fcd8b..9d26e050 100644
--- a/packages/app/src/components/TerminalDock.dom.test.tsx
+++ b/packages/app/src/components/TerminalDock.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import { act, cleanup, render, screen, waitFor, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
diff --git a/packages/app/src/components/TerminalExitNotice.dom.test.tsx b/packages/app/src/components/TerminalExitNotice.dom.test.tsx
index c734f3cc..011f6034 100644
--- a/packages/app/src/components/TerminalExitNotice.dom.test.tsx
+++ b/packages/app/src/components/TerminalExitNotice.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, mock, test } from 'bun:test';
import { cleanup, fireEvent, render, screen } from '@testing-library/react';
import { TerminalExitNotice } from './TerminalExitNotice';
diff --git a/packages/app/src/components/TerminalPanel.dom.test.tsx b/packages/app/src/components/TerminalPanel.dom.test.tsx
index 971eeee6..39d81c63 100644
--- a/packages/app/src/components/TerminalPanel.dom.test.tsx
+++ b/packages/app/src/components/TerminalPanel.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import { act, cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react';
import type {
diff --git a/packages/app/src/components/TerminalPanel.launch.dom.test.tsx b/packages/app/src/components/TerminalPanel.launch.dom.test.tsx
index 7e0d5b02..33209ced 100644
--- a/packages/app/src/components/TerminalPanel.launch.dom.test.tsx
+++ b/packages/app/src/components/TerminalPanel.launch.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import type { TerminalCli } from '@inkeep/open-knowledge-core';
import { act, cleanup, render, screen, waitFor } from '@testing-library/react';
diff --git a/packages/app/src/components/TextViewer.tsx b/packages/app/src/components/TextViewer.tsx
index e7dd438a..c01d0d29 100644
--- a/packages/app/src/components/TextViewer.tsx
+++ b/packages/app/src/components/TextViewer.tsx
@@ -1,4 +1,3 @@
-
import { EditorState } from '@codemirror/state';
import { EditorView } from '@codemirror/view';
import { codeLanguageForExtension } from '@inkeep/open-knowledge-core';
diff --git a/packages/app/src/components/TimelinePanel.tsx b/packages/app/src/components/TimelinePanel.tsx
index 5ff01f6b..4d71e137 100644
--- a/packages/app/src/components/TimelinePanel.tsx
+++ b/packages/app/src/components/TimelinePanel.tsx
@@ -93,14 +93,12 @@ async function pollHistoryOnce(
}
}
-
interface TimelineContentProps {
docName: string;
diffLayout: DiffLayout;
onDiffLayoutChange: (layout: DiffLayout) => void;
}
-
function formatRelativeTime(isoString: string): string {
const date = new Date(isoString);
const now = new Date();
@@ -196,7 +194,6 @@ function ContributorIcon({ entry, isDark }: { entry: TimelineEntry; isDark: bool
return ;
}
-
export function allSummariesFor(entry: TimelineEntry): string[] {
const out: string[] = [];
for (const c of entry.contributors) {
@@ -251,7 +248,6 @@ function SummaryBullets({ summaries }: SummaryBulletsProps) {
);
}
-
interface EntryDiffPanelProps {
sha: string;
docName: string;
@@ -292,7 +288,6 @@ function EntryDiffPanel({ sha, docName, cache, diffLayout, panelId }: EntryDiffP
);
}
-
interface EntryRowProps {
entry: TimelineEntry;
isDark: boolean;
@@ -381,8 +376,7 @@ function EntryRow({
try {
const problem = ProblemDetailsSchema.safeParse(await res.json());
if (problem.success) detail = problem.data.title;
- } catch {
- }
+ } catch {}
console.error('[timeline] rollback failed', {
docName,
sha: entry.sha,
@@ -530,7 +524,6 @@ function EntryRow({
);
}
-
export function TimelineContent({ docName, diffLayout, onDiffLayoutChange }: TimelineContentProps) {
const { t } = useLingui();
const { resolvedTheme } = useTheme();
diff --git a/packages/app/src/components/TrashFailureModal.tsx b/packages/app/src/components/TrashFailureModal.tsx
index 8218ea7b..291eb085 100644
--- a/packages/app/src/components/TrashFailureModal.tsx
+++ b/packages/app/src/components/TrashFailureModal.tsx
@@ -11,7 +11,6 @@ import {
DialogTitle,
} from '@/components/ui/dialog';
-
type TrashFailureReason = 'not-found' | 'permission-denied' | 'system-error' | 'path-escape';
const TRASH_FAILURE_REASONS: ReadonlyArray = [
@@ -44,7 +43,6 @@ interface TrashFailureModalProps {
onCancel: () => void;
}
-
function trashReasonLabel(reason: TrashFailureReason): string {
switch (reason) {
case 'not-found':
diff --git a/packages/app/src/components/UpdateNotices.shared.ts b/packages/app/src/components/UpdateNotices.shared.ts
index b9ccbe0d..ae0a4767 100644
--- a/packages/app/src/components/UpdateNotices.shared.ts
+++ b/packages/app/src/components/UpdateNotices.shared.ts
@@ -1,4 +1,3 @@
-
import type { OkDesktopBridge } from '@/lib/desktop-bridge-types';
export const TOAST_A_ACTION = 'Relaunch';
diff --git a/packages/app/src/components/UpdateNotices.test.ts b/packages/app/src/components/UpdateNotices.test.ts
index c514246b..c2308372 100644
--- a/packages/app/src/components/UpdateNotices.test.ts
+++ b/packages/app/src/components/UpdateNotices.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, mock, test } from 'bun:test';
import type { OkDesktopBridge } from '@/lib/desktop-bridge-types';
import {
@@ -116,7 +115,6 @@ function castBridge(fake: FakeBridge): OkDesktopBridge {
return fake as unknown as OkDesktopBridge;
}
-
describe('copy helpers (minimal-wording revision)', () => {
test('toastABody formats the version-specific pending-install string', () => {
expect(toastABody('0.1.1')).toBe('Version 0.1.1 ready to install');
@@ -179,7 +177,6 @@ describe('appendErrorDetail', () => {
});
});
-
describe('attachUpdateSubscribers — registration', () => {
test('subscribes to all six update channels on the bridge', () => {
const bridge = makeFakeBridge();
@@ -207,7 +204,6 @@ describe('attachUpdateSubscribers — registration', () => {
});
});
-
describe('Notice A cross-window relaunch — ok:update:relaunching', () => {
test('swaps the update-downloaded card to the button-less in-progress card', () => {
const bridge = makeFakeBridge();
@@ -308,7 +304,6 @@ describe('Notice A cross-window relaunch — ok:update:relaunching', () => {
});
});
-
describe('Notice A — ok:update:downloaded', () => {
test('emits notice with canonical copy + relaunch action on dispatch', () => {
const bridge = makeFakeBridge();
@@ -469,7 +464,6 @@ describe('Notice A — ok:update:downloaded', () => {
});
});
-
describe('Notice B — ok:update:whats-new', () => {
test('emits notice with version-specific copy + release URL action', () => {
const bridge = makeFakeBridge();
@@ -558,7 +552,6 @@ describe('Notice B — ok:update:whats-new', () => {
});
});
-
describe('Notice C — ok:update:stuck-hint', () => {
test('emits notice with D12 copy + download URL action', () => {
const bridge = makeFakeBridge();
@@ -587,7 +580,6 @@ describe('Notice C — ok:update:stuck-hint', () => {
});
});
-
describe('Notice E — schema-incompatibility refuse-downgrade', () => {
const diagnostic = {
currentBuild: '0.3.0',
@@ -672,7 +664,6 @@ describe('Notice E — schema-incompatibility refuse-downgrade', () => {
});
});
-
describe('pickActiveNotice', () => {
const a: UpdateNotice = { id: 'a', body: 'A', priority: 2 };
const b: UpdateNotice = { id: 'b', body: 'B', priority: 3 };
diff --git a/packages/app/src/components/ask-ai-composer-events.ts b/packages/app/src/components/ask-ai-composer-events.ts
index 8f34d352..48538d30 100644
--- a/packages/app/src/components/ask-ai-composer-events.ts
+++ b/packages/app/src/components/ask-ai-composer-events.ts
@@ -1,4 +1,3 @@
-
const OPEN_ASK_AI_COMPOSER_EVENT = 'open-knowledge:open-ask-ai-composer';
export function emitOpenAskAiComposer(
diff --git a/packages/app/src/components/command-palette-flicker.test.ts b/packages/app/src/components/command-palette-flicker.test.ts
index 8227ed18..34951fee 100644
--- a/packages/app/src/components/command-palette-flicker.test.ts
+++ b/packages/app/src/components/command-palette-flicker.test.ts
@@ -1,8 +1,6 @@
-
import { describe, expect, test } from 'bun:test';
import type { WorkspaceEntry, WorkspaceSearchEntry } from './command-palette-search';
-
interface VisibleSearchResultsHelperArgs {
searchResults: readonly WorkspaceSearchEntry[];
fallbackSearchResults: readonly WorkspaceEntry[];
diff --git a/packages/app/src/components/command-palette-semantic.ts b/packages/app/src/components/command-palette-semantic.ts
index 6d98adc3..0f36bef2 100644
--- a/packages/app/src/components/command-palette-semantic.ts
+++ b/packages/app/src/components/command-palette-semantic.ts
@@ -1,4 +1,3 @@
-
export interface SemanticModeState {
query: string;
firedQuery: string | null;
diff --git a/packages/app/src/components/command-palette-tag-search.test.ts b/packages/app/src/components/command-palette-tag-search.test.ts
index c7622e6f..ff3d98cb 100644
--- a/packages/app/src/components/command-palette-tag-search.test.ts
+++ b/packages/app/src/components/command-palette-tag-search.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import type { TagSummaryEntry } from '../editor/extensions/tag-suggestion.ts';
import { filterTagList, parseTagPaletteQuery } from './command-palette-tag-search.ts';
diff --git a/packages/app/src/components/command-palette-tag-search.ts b/packages/app/src/components/command-palette-tag-search.ts
index 4fcc0b4a..3478d495 100644
--- a/packages/app/src/components/command-palette-tag-search.ts
+++ b/packages/app/src/components/command-palette-tag-search.ts
@@ -1,4 +1,3 @@
-
import {
fetchTags,
rankTagsByQuery,
diff --git a/packages/app/src/components/composer-draft-store.test.ts b/packages/app/src/components/composer-draft-store.test.ts
index 8e886f35..57943d1c 100644
--- a/packages/app/src/components/composer-draft-store.test.ts
+++ b/packages/app/src/components/composer-draft-store.test.ts
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
import type { JSONContent } from '@tiptap/core';
import {
diff --git a/packages/app/src/components/composer-draft-store.ts b/packages/app/src/components/composer-draft-store.ts
index 030e4218..fa43e9ee 100644
--- a/packages/app/src/components/composer-draft-store.ts
+++ b/packages/app/src/components/composer-draft-store.ts
@@ -1,4 +1,3 @@
-
import type { JSONContent } from '@tiptap/core';
const DRAFT_STORAGE_KEY = 'ok-ask-ai-draft-v2';
@@ -67,8 +66,7 @@ function persistDoc(doc: JSONContent | null): void {
try {
if (doc && !docIsEmpty(doc)) storage.setItem(DRAFT_STORAGE_KEY, JSON.stringify(doc));
else storage.removeItem(DRAFT_STORAGE_KEY);
- } catch {
- }
+ } catch {}
}
function notify(): void {
diff --git a/packages/app/src/components/composer-shared-draft.dom.test.tsx b/packages/app/src/components/composer-shared-draft.dom.test.tsx
index 144a392e..0f816026 100644
--- a/packages/app/src/components/composer-shared-draft.dom.test.tsx
+++ b/packages/app/src/components/composer-shared-draft.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import type { CreateScenario, InstallState } from '@inkeep/open-knowledge-core';
import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react';
@@ -78,7 +77,6 @@ mock.module('@/components/handoff/useHandoffDispatch', () => ({
mock.module('sonner', () => ({ toast: { error: () => {}, success: () => {} } }));
-
type Handle = {
focus: () => void;
blur: () => void;
@@ -216,8 +214,7 @@ const { CreatePromptComposer } = await import('./empty-state/CreatePromptCompose
beforeEach(() => {
try {
window.localStorage.clear();
- } catch {
- }
+ } catch {}
__resetComposerDraftForTests();
});
diff --git a/packages/app/src/components/editor-area-overlay.ts b/packages/app/src/components/editor-area-overlay.ts
index 08147d7c..52519792 100644
--- a/packages/app/src/components/editor-area-overlay.ts
+++ b/packages/app/src/components/editor-area-overlay.ts
@@ -1,4 +1,3 @@
-
interface OverlayDecisionInput {
activeDocName: string | null;
deferredActiveDocName: string | null;
diff --git a/packages/app/src/components/editor/SelectionAnnouncer.test.ts b/packages/app/src/components/editor/SelectionAnnouncer.test.ts
index ffc14a61..69b2ff68 100644
--- a/packages/app/src/components/editor/SelectionAnnouncer.test.ts
+++ b/packages/app/src/components/editor/SelectionAnnouncer.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { Schema } from '@tiptap/pm/model';
import { EditorState, NodeSelection } from '@tiptap/pm/state';
diff --git a/packages/app/src/components/editor/SelectionAnnouncer.tsx b/packages/app/src/components/editor/SelectionAnnouncer.tsx
index f8b2723c..bdfdcf08 100644
--- a/packages/app/src/components/editor/SelectionAnnouncer.tsx
+++ b/packages/app/src/components/editor/SelectionAnnouncer.tsx
@@ -1,4 +1,3 @@
-
import type { Editor } from '@tiptap/core';
import { useEffect, useRef } from 'react';
import { useBlockSelection } from '../../editor/hooks/use-block-selection.ts';
diff --git a/packages/app/src/components/empty-state/CopyablePromptList.tsx b/packages/app/src/components/empty-state/CopyablePromptList.tsx
index c3ef689f..49ec9d01 100644
--- a/packages/app/src/components/empty-state/CopyablePromptList.tsx
+++ b/packages/app/src/components/empty-state/CopyablePromptList.tsx
@@ -29,8 +29,7 @@ export function CopyablePromptList({ scenario, className }: CopyablePromptListPr
clearTimeout(resetTimerRef.current);
resetTimerRef.current = setTimeout(() => setCopiedId(null), 1600);
})
- .catch(() => {
- });
+ .catch(() => {});
}
return (
diff --git a/packages/app/src/components/empty-state/CreatePromptComposer.dom.test.tsx b/packages/app/src/components/empty-state/CreatePromptComposer.dom.test.tsx
index 88341308..57e40b0a 100644
--- a/packages/app/src/components/empty-state/CreatePromptComposer.dom.test.tsx
+++ b/packages/app/src/components/empty-state/CreatePromptComposer.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, mock, test } from 'bun:test';
import type { CreateScenario, InstallState } from '@inkeep/open-knowledge-core';
import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react';
diff --git a/packages/app/src/components/extension-picker-utils.ts b/packages/app/src/components/extension-picker-utils.ts
index 145221ef..6dcef95c 100644
--- a/packages/app/src/components/extension-picker-utils.ts
+++ b/packages/app/src/components/extension-picker-utils.ts
@@ -1,4 +1,3 @@
-
export const SUPPORTED_EXTENSIONS = ['.md', '.mdx'] as const;
export type DocExtension = (typeof SUPPORTED_EXTENSIONS)[number];
diff --git a/packages/app/src/components/file-tree-adapter.test.ts b/packages/app/src/components/file-tree-adapter.test.ts
index 97ea222f..1423dac6 100644
--- a/packages/app/src/components/file-tree-adapter.test.ts
+++ b/packages/app/src/components/file-tree-adapter.test.ts
@@ -273,7 +273,6 @@ describe('file-tree-adapter', () => {
).toBe('docs/photo.png');
});
-
test('treeItemToTarget(item, documents) returns the entry-authoritative docExt for an extensionless .md tree path', () => {
const item: ContextMenuItem = {
kind: 'file',
diff --git a/packages/app/src/components/file-tree-extension-badge.dom.test.tsx b/packages/app/src/components/file-tree-extension-badge.dom.test.tsx
index 2c38b451..dacb7be5 100644
--- a/packages/app/src/components/file-tree-extension-badge.dom.test.tsx
+++ b/packages/app/src/components/file-tree-extension-badge.dom.test.tsx
@@ -7,7 +7,6 @@ import {
OK_FULLNAME_ROW_ATTR,
} from './file-tree-extension-badge';
-
interface PierreRowInit {
path: string;
filename: string;
diff --git a/packages/app/src/components/file-tree-extension-badge.ts b/packages/app/src/components/file-tree-extension-badge.ts
index b32c67f9..bdf5e3af 100644
--- a/packages/app/src/components/file-tree-extension-badge.ts
+++ b/packages/app/src/components/file-tree-extension-badge.ts
@@ -1,4 +1,3 @@
-
import { getFileExtension } from '@/components/file-tree-rename-validation';
export const OK_EXT_BADGE_ATTR = 'data-ok-ext-badge';
diff --git a/packages/app/src/components/file-tree-merge.ts b/packages/app/src/components/file-tree-merge.ts
index 935f9793..1af5dce3 100644
--- a/packages/app/src/components/file-tree-merge.ts
+++ b/packages/app/src/components/file-tree-merge.ts
@@ -1,4 +1,3 @@
-
import { fileEntryToTreePath } from './file-tree-adapter';
import type { FileEntry } from './file-tree-utils';
diff --git a/packages/app/src/components/file-tree-okignore.test.ts b/packages/app/src/components/file-tree-okignore.test.ts
index b1d70778..89a5f543 100644
--- a/packages/app/src/components/file-tree-okignore.test.ts
+++ b/packages/app/src/components/file-tree-okignore.test.ts
@@ -101,7 +101,6 @@ describe('buildOkignorePatternFromTarget — invariants', () => {
});
describe('buildOkignorePatternFromTarget — glob-metacharacter escaping', () => {
-
test('filename with [bracket] segment is escaped so the literal file matches', () => {
const pattern = buildOkignorePatternFromTarget({
kind: 'file',
diff --git a/packages/app/src/components/file-tree-rename-chip.dom.test.tsx b/packages/app/src/components/file-tree-rename-chip.dom.test.tsx
index 24165d98..3dbb04ed 100644
--- a/packages/app/src/components/file-tree-rename-chip.dom.test.tsx
+++ b/packages/app/src/components/file-tree-rename-chip.dom.test.tsx
@@ -318,7 +318,6 @@ describe('applyRenameInputAffordance — overlay marker for symptom 2 (icon-flas
});
test('post-settle: module-level activeRenameExt is cleared (Makefile selected later gets no marker)', () => {
-
const { row, input } = buildPierreRenameRow({
path: 'AGENTS.md',
initialValue: 'AGENTS.md',
diff --git a/packages/app/src/components/file-tree-rename-chip.ts b/packages/app/src/components/file-tree-rename-chip.ts
index 4bf062a5..80acf6ec 100644
--- a/packages/app/src/components/file-tree-rename-chip.ts
+++ b/packages/app/src/components/file-tree-rename-chip.ts
@@ -1,4 +1,3 @@
-
import {
getFileExtension,
hasSupportedDocumentExtension,
diff --git a/packages/app/src/components/file-tree-rename-validation.ts b/packages/app/src/components/file-tree-rename-validation.ts
index 938fe04c..c6be16e4 100644
--- a/packages/app/src/components/file-tree-rename-validation.ts
+++ b/packages/app/src/components/file-tree-rename-validation.ts
@@ -1,4 +1,3 @@
-
type RenameDestinationValidation = { kind: 'allow'; destinationPath: string };
const SUPPORTED_DOCUMENT_EXTENSIONS = new Set(['.md', '.mdx']);
diff --git a/packages/app/src/components/file-tree-reveal.ts b/packages/app/src/components/file-tree-reveal.ts
index 73bb16f7..58e6e784 100644
--- a/packages/app/src/components/file-tree-reveal.ts
+++ b/packages/app/src/components/file-tree-reveal.ts
@@ -1,4 +1,3 @@
-
import type { FileTree as PierreFileTreeModel } from '@pierre/trees';
type RevealModel = Pick;
diff --git a/packages/app/src/components/file-tree-trash-copy.test.ts b/packages/app/src/components/file-tree-trash-copy.test.ts
index 4cea53fa..68fd6213 100644
--- a/packages/app/src/components/file-tree-trash-copy.test.ts
+++ b/packages/app/src/components/file-tree-trash-copy.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import type { FileTreeTarget } from '@/components/file-tree-operations';
import {
diff --git a/packages/app/src/components/file-tree-trash-copy.ts b/packages/app/src/components/file-tree-trash-copy.ts
index 1e994233..2494992a 100644
--- a/packages/app/src/components/file-tree-trash-copy.ts
+++ b/packages/app/src/components/file-tree-trash-copy.ts
@@ -1,4 +1,3 @@
-
import type { FileTreeTarget } from '@/components/file-tree-operations';
interface TrashConfirmCopy {
diff --git a/packages/app/src/components/file-tree-utils.ts b/packages/app/src/components/file-tree-utils.ts
index 62788eed..06057726 100644
--- a/packages/app/src/components/file-tree-utils.ts
+++ b/packages/app/src/components/file-tree-utils.ts
@@ -1,4 +1,3 @@
-
import {
type DocumentListEntry,
type InlineAssetMediaKind,
diff --git a/packages/app/src/components/graph-colors.ts b/packages/app/src/components/graph-colors.ts
index c04bf057..1ebb06bd 100644
--- a/packages/app/src/components/graph-colors.ts
+++ b/packages/app/src/components/graph-colors.ts
@@ -1,4 +1,3 @@
-
const DARK_PALETTE = [
'#60a5fa', // Blue - Knowledge, concepts, structure
'#a78bfa', // Violet - Research, analysis, methodology
diff --git a/packages/app/src/components/graph-label-utils.ts b/packages/app/src/components/graph-label-utils.ts
index 37fd78f1..07ef25c9 100644
--- a/packages/app/src/components/graph-label-utils.ts
+++ b/packages/app/src/components/graph-label-utils.ts
@@ -110,7 +110,6 @@ function clampMiddleByCharacters(
return '';
}
-
const maxKeep = Math.max(1, Math.floor((text.length - ellipsis.length) / 2));
for (let keep = maxKeep; keep >= 1; keep--) {
if (text[keep] !== ' ' || text[text.length - keep - 1] !== ' ') continue;
diff --git a/packages/app/src/components/handoff/EditWithAiPanel.dom.test.tsx b/packages/app/src/components/handoff/EditWithAiPanel.dom.test.tsx
index 96cbcca3..85d142fd 100644
--- a/packages/app/src/components/handoff/EditWithAiPanel.dom.test.tsx
+++ b/packages/app/src/components/handoff/EditWithAiPanel.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, test } from 'bun:test';
import type { HandoffTarget, InstallState } from '@inkeep/open-knowledge-core';
import { cleanup, render, screen } from '@testing-library/react';
diff --git a/packages/app/src/components/handoff/EditWithAiPopover.dom.test.tsx b/packages/app/src/components/handoff/EditWithAiPopover.dom.test.tsx
index 751dc30f..a1c6a130 100644
--- a/packages/app/src/components/handoff/EditWithAiPopover.dom.test.tsx
+++ b/packages/app/src/components/handoff/EditWithAiPopover.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, mock, test } from 'bun:test';
import { cleanup, render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
diff --git a/packages/app/src/components/handoff/EditWithAiPopover.tsx b/packages/app/src/components/handoff/EditWithAiPopover.tsx
index 24993ed2..c309cf49 100644
--- a/packages/app/src/components/handoff/EditWithAiPopover.tsx
+++ b/packages/app/src/components/handoff/EditWithAiPopover.tsx
@@ -1,4 +1,3 @@
-
import type { HandoffTarget, InstallState, TargetData } from '@inkeep/open-knowledge-core';
import { Trans, useLingui } from '@lingui/react/macro';
import { type ReactNode, useEffect, useEffectEvent, useState } from 'react';
diff --git a/packages/app/src/components/handoff/OpenInAgentContextSubmenu.tsx b/packages/app/src/components/handoff/OpenInAgentContextSubmenu.tsx
index 27e4d330..a1edc720 100644
--- a/packages/app/src/components/handoff/OpenInAgentContextSubmenu.tsx
+++ b/packages/app/src/components/handoff/OpenInAgentContextSubmenu.tsx
@@ -1,4 +1,3 @@
-
import {
type HandoffOutcome,
type HandoffTarget,
diff --git a/packages/app/src/components/handoff/OpenInAgentEmptySpaceSubmenu.tsx b/packages/app/src/components/handoff/OpenInAgentEmptySpaceSubmenu.tsx
index b7f02983..2fbb5c7b 100644
--- a/packages/app/src/components/handoff/OpenInAgentEmptySpaceSubmenu.tsx
+++ b/packages/app/src/components/handoff/OpenInAgentEmptySpaceSubmenu.tsx
@@ -1,4 +1,3 @@
-
import {
type HandoffOutcome,
type HandoffTarget,
diff --git a/packages/app/src/components/handoff/OpenInAgentMenu.tsx b/packages/app/src/components/handoff/OpenInAgentMenu.tsx
index 16e0519c..ab8c34e8 100644
--- a/packages/app/src/components/handoff/OpenInAgentMenu.tsx
+++ b/packages/app/src/components/handoff/OpenInAgentMenu.tsx
@@ -1,4 +1,3 @@
-
import {
type HandoffTarget,
type InstallState,
diff --git a/packages/app/src/components/handoff/OpenInAgentMenuItem.test.ts b/packages/app/src/components/handoff/OpenInAgentMenuItem.test.ts
index 6c471602..bb3c21c8 100644
--- a/packages/app/src/components/handoff/OpenInAgentMenuItem.test.ts
+++ b/packages/app/src/components/handoff/OpenInAgentMenuItem.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import type { InstallState, TargetData } from '@inkeep/open-knowledge-core';
import { KNOWN_TARGETS } from '@/lib/handoff/targets';
diff --git a/packages/app/src/components/handoff/OpenInAgentMenuItem.tsx b/packages/app/src/components/handoff/OpenInAgentMenuItem.tsx
index aeb87aba..e22105cb 100644
--- a/packages/app/src/components/handoff/OpenInAgentMenuItem.tsx
+++ b/packages/app/src/components/handoff/OpenInAgentMenuItem.tsx
@@ -1,4 +1,3 @@
-
import {
AGENT_ICON_COLORS,
AGENT_ICON_COLORS_DARK,
diff --git a/packages/app/src/components/handoff/OpenInAgentTerminalRow.dom.test.tsx b/packages/app/src/components/handoff/OpenInAgentTerminalRow.dom.test.tsx
index ff35b07c..e3b0a72d 100644
--- a/packages/app/src/components/handoff/OpenInAgentTerminalRow.dom.test.tsx
+++ b/packages/app/src/components/handoff/OpenInAgentTerminalRow.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, mock, test } from 'bun:test';
import type { TerminalCli } from '@inkeep/open-knowledge-core';
import { cleanup, render, screen, waitFor } from '@testing-library/react';
diff --git a/packages/app/src/components/handoff/dispatch-single-entry-point.test.ts b/packages/app/src/components/handoff/dispatch-single-entry-point.test.ts
index 7e7a07f9..e0238f0e 100644
--- a/packages/app/src/components/handoff/dispatch-single-entry-point.test.ts
+++ b/packages/app/src/components/handoff/dispatch-single-entry-point.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { readdirSync, readFileSync, statSync } from 'node:fs';
import { join, relative } from 'node:path';
diff --git a/packages/app/src/components/handoff/terminal-launch-events.ts b/packages/app/src/components/handoff/terminal-launch-events.ts
index 8d55aa11..48f1cdf1 100644
--- a/packages/app/src/components/handoff/terminal-launch-events.ts
+++ b/packages/app/src/components/handoff/terminal-launch-events.ts
@@ -1,4 +1,3 @@
-
import type { TerminalCli } from '@inkeep/open-knowledge-core';
const TERMINAL_LAUNCH_EVENT = 'open-knowledge:terminal-launch';
diff --git a/packages/app/src/components/handoff/useHandoffDispatch.test.ts b/packages/app/src/components/handoff/useHandoffDispatch.test.ts
index 40c9bf9c..b17dbf07 100644
--- a/packages/app/src/components/handoff/useHandoffDispatch.test.ts
+++ b/packages/app/src/components/handoff/useHandoffDispatch.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, mock, test } from 'bun:test';
import { setTimeout as wait } from 'node:timers/promises';
import type { HandoffOutcome, HandoffPayload, HandoffTarget } from '@inkeep/open-knowledge-core';
diff --git a/packages/app/src/components/handoff/useHandoffDispatch.ts b/packages/app/src/components/handoff/useHandoffDispatch.ts
index 4c5cfc4e..3c723e3d 100644
--- a/packages/app/src/components/handoff/useHandoffDispatch.ts
+++ b/packages/app/src/components/handoff/useHandoffDispatch.ts
@@ -1,4 +1,3 @@
-
import {
type AssembleHandoffPromptInput,
assembleHandoffPrompt,
diff --git a/packages/app/src/components/handoff/useInstalledAgents.test.ts b/packages/app/src/components/handoff/useInstalledAgents.test.ts
index e89b8159..1f69926e 100644
--- a/packages/app/src/components/handoff/useInstalledAgents.test.ts
+++ b/packages/app/src/components/handoff/useInstalledAgents.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
describe('useInstalledAgents module surface', () => {
diff --git a/packages/app/src/components/handoff/useInstalledAgents.ts b/packages/app/src/components/handoff/useInstalledAgents.ts
index b421127c..2c757b7a 100644
--- a/packages/app/src/components/handoff/useInstalledAgents.ts
+++ b/packages/app/src/components/handoff/useInstalledAgents.ts
@@ -1,4 +1,3 @@
-
import type { HandoffTarget, InstallState } from '@inkeep/open-knowledge-core';
import { useEffect, useRef, useState } from 'react';
import {
diff --git a/packages/app/src/components/page-header-utils.test.ts b/packages/app/src/components/page-header-utils.test.ts
index 306ba225..005d8a8c 100644
--- a/packages/app/src/components/page-header-utils.test.ts
+++ b/packages/app/src/components/page-header-utils.test.ts
@@ -1,7 +1,6 @@
import { describe, expect, test } from 'bun:test';
import { resolvePageCover, resolvePageIcon } from './page-header-utils';
-
describe('resolvePageIcon', () => {
test('classifies a single emoji as emoji', () => {
expect(resolvePageIcon('📝')).toEqual({ kind: 'emoji', value: '📝' });
@@ -113,7 +112,6 @@ describe('resolvePageIcon', () => {
});
});
-
describe('resolvePageCover', () => {
test('rejects emoji (covers require an image)', () => {
expect(resolvePageCover('🏔️').kind).toBe('unsupported');
diff --git a/packages/app/src/components/page-header-utils.ts b/packages/app/src/components/page-header-utils.ts
index dfd03228..b71171a5 100644
--- a/packages/app/src/components/page-header-utils.ts
+++ b/packages/app/src/components/page-header-utils.ts
@@ -1,4 +1,3 @@
-
import { IMAGE_EXTENSIONS, isSafeUrl, toDesktopAssetHref } from '@inkeep/open-knowledge-core';
/** Hard cap on raw frontmatter value length we'll classify — anything
diff --git a/packages/app/src/components/prewarm-correlation.ts b/packages/app/src/components/prewarm-correlation.ts
index ce3aa55f..d3d479e2 100644
--- a/packages/app/src/components/prewarm-correlation.ts
+++ b/packages/app/src/components/prewarm-correlation.ts
@@ -1,4 +1,3 @@
-
import { mark } from '@/lib/perf';
import { readNumericOverride } from '@/lib/perf/env-override';
diff --git a/packages/app/src/components/property-inline-link-tokens.ts b/packages/app/src/components/property-inline-link-tokens.ts
index e626a4a6..c1d506a3 100644
--- a/packages/app/src/components/property-inline-link-tokens.ts
+++ b/packages/app/src/components/property-inline-link-tokens.ts
@@ -1,4 +1,3 @@
-
import { parseWikiLink } from '@inkeep/open-knowledge-core';
export type PropertyInlineSegment =
diff --git a/packages/app/src/components/resolve-conflict-dispatch.ts b/packages/app/src/components/resolve-conflict-dispatch.ts
index f321f456..f1acd20f 100644
--- a/packages/app/src/components/resolve-conflict-dispatch.ts
+++ b/packages/app/src/components/resolve-conflict-dispatch.ts
@@ -1,4 +1,3 @@
-
type ResolveStrategy = 'mine' | 'theirs' | 'content' | 'delete';
interface DispatchResult {
@@ -28,8 +27,7 @@ async function dispatchResolve(
const payload = (await res.json()) as { detail?: unknown; title?: unknown };
if (typeof payload.detail === 'string') detail = payload.detail;
else if (typeof payload.title === 'string') detail = payload.title;
- } catch {
- }
+ } catch {}
return { ok: false, detail };
} catch (err) {
const detail = err instanceof Error ? err.message : String(err);
diff --git a/packages/app/src/components/settings/AccountSection.dom.test.tsx b/packages/app/src/components/settings/AccountSection.dom.test.tsx
index ccb4e557..8b56eaeb 100644
--- a/packages/app/src/components/settings/AccountSection.dom.test.tsx
+++ b/packages/app/src/components/settings/AccountSection.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
import { act, cleanup, render, screen, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
diff --git a/packages/app/src/components/settings/EmbeddingsKeySection.dom.test.tsx b/packages/app/src/components/settings/EmbeddingsKeySection.dom.test.tsx
index 9a90523c..1f0bd7cd 100644
--- a/packages/app/src/components/settings/EmbeddingsKeySection.dom.test.tsx
+++ b/packages/app/src/components/settings/EmbeddingsKeySection.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
import type { SemanticIndexStatus } from '@inkeep/open-knowledge-core';
import { cleanup, render, screen, waitFor } from '@testing-library/react';
diff --git a/packages/app/src/components/settings/SearchSection.dom.test.tsx b/packages/app/src/components/settings/SearchSection.dom.test.tsx
index a5703eaf..29c7385c 100644
--- a/packages/app/src/components/settings/SearchSection.dom.test.tsx
+++ b/packages/app/src/components/settings/SearchSection.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import type { Config, ConfigBinding, SemanticIndexStatus } from '@inkeep/open-knowledge-core';
import { cleanup, render, screen, waitFor } from '@testing-library/react';
diff --git a/packages/app/src/components/settings/SettingsDialogBody.test.ts b/packages/app/src/components/settings/SettingsDialogBody.test.ts
index 8ad4ddf3..9bf4936f 100644
--- a/packages/app/src/components/settings/SettingsDialogBody.test.ts
+++ b/packages/app/src/components/settings/SettingsDialogBody.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
describe('SettingsDialogBody module', () => {
diff --git a/packages/app/src/components/settings/SettingsDialogBodyLazy.ts b/packages/app/src/components/settings/SettingsDialogBodyLazy.ts
index b49bdceb..d5c84ffa 100644
--- a/packages/app/src/components/settings/SettingsDialogBodyLazy.ts
+++ b/packages/app/src/components/settings/SettingsDialogBodyLazy.ts
@@ -1,4 +1,3 @@
-
import { lazyWithPreload } from '@/lib/lazy-with-preload';
export const SettingsDialogBodyLazy = lazyWithPreload(() =>
diff --git a/packages/app/src/components/settings/SettingsDialogErrorBoundary.tsx b/packages/app/src/components/settings/SettingsDialogErrorBoundary.tsx
index 6e085970..d73ac10e 100644
--- a/packages/app/src/components/settings/SettingsDialogErrorBoundary.tsx
+++ b/packages/app/src/components/settings/SettingsDialogErrorBoundary.tsx
@@ -1,4 +1,3 @@
-
import { Trans, useLingui } from '@lingui/react/macro';
import { ErrorBoundary, type FallbackProps } from 'react-error-boundary';
import { Button } from '@/components/ui/button';
diff --git a/packages/app/src/components/settings/SettingsDialogShell.dom.test.tsx b/packages/app/src/components/settings/SettingsDialogShell.dom.test.tsx
index 9d73cc12..b4d100d4 100644
--- a/packages/app/src/components/settings/SettingsDialogShell.dom.test.tsx
+++ b/packages/app/src/components/settings/SettingsDialogShell.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, spyOn, test } from 'bun:test';
import type { ConfigBinding, OkignoreBinding } from '@inkeep/open-knowledge-core';
import { cleanup, render, screen } from '@testing-library/react';
diff --git a/packages/app/src/components/settings/SharingSection.tsx b/packages/app/src/components/settings/SharingSection.tsx
index 22efb7c6..9130d48f 100644
--- a/packages/app/src/components/settings/SharingSection.tsx
+++ b/packages/app/src/components/settings/SharingSection.tsx
@@ -1,4 +1,3 @@
-
import { Trans, useLingui } from '@lingui/react/macro';
import { useEffect, useState } from 'react';
import { toast } from 'sonner';
diff --git a/packages/app/src/components/settings/SkillTargetsPicker.dom.test.tsx b/packages/app/src/components/settings/SkillTargetsPicker.dom.test.tsx
index 4437ce42..d516d1ad 100644
--- a/packages/app/src/components/settings/SkillTargetsPicker.dom.test.tsx
+++ b/packages/app/src/components/settings/SkillTargetsPicker.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, mock, test } from 'bun:test';
import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react';
import type { ReactNode } from 'react';
diff --git a/packages/app/src/components/settings/SkillsManagerSection.dom.test.tsx b/packages/app/src/components/settings/SkillsManagerSection.dom.test.tsx
index 6d33ac7f..69ab3a97 100644
--- a/packages/app/src/components/settings/SkillsManagerSection.dom.test.tsx
+++ b/packages/app/src/components/settings/SkillsManagerSection.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, mock, test } from 'bun:test';
import type { SkillsListSuccess } from '@inkeep/open-knowledge-core';
import { cleanup, render, screen, waitFor } from '@testing-library/react';
diff --git a/packages/app/src/components/settings/SkillsManagerSection.tsx b/packages/app/src/components/settings/SkillsManagerSection.tsx
index 3f0d6c38..864458ae 100644
--- a/packages/app/src/components/settings/SkillsManagerSection.tsx
+++ b/packages/app/src/components/settings/SkillsManagerSection.tsx
@@ -14,7 +14,6 @@ import { openManagedArtifactTab } from '@/lib/open-managed-artifact-tab';
import { SKILL_SCOPE_ORDER, useSkillScopeLabels } from '@/lib/skill-scope';
import { useSettingsRoute } from '@/lib/use-settings-route';
-
interface ScopeGroupChrome {
title: ReactNode;
blurb: ReactNode;
diff --git a/packages/app/src/components/settings/okignore-doc.test.ts b/packages/app/src/components/settings/okignore-doc.test.ts
index 8d86ec97..56df1beb 100644
--- a/packages/app/src/components/settings/okignore-doc.test.ts
+++ b/packages/app/src/components/settings/okignore-doc.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import {
appendPattern,
diff --git a/packages/app/src/components/settings/okignore-doc.ts b/packages/app/src/components/settings/okignore-doc.ts
index 2b4685c0..60cbc48b 100644
--- a/packages/app/src/components/settings/okignore-doc.ts
+++ b/packages/app/src/components/settings/okignore-doc.ts
@@ -1,4 +1,3 @@
-
export interface PatternLine {
kind: 'pattern';
raw: string;
diff --git a/packages/app/src/components/settings/okignore-preview.ts b/packages/app/src/components/settings/okignore-preview.ts
index ccca2b56..bf1cddc0 100644
--- a/packages/app/src/components/settings/okignore-preview.ts
+++ b/packages/app/src/components/settings/okignore-preview.ts
@@ -1,4 +1,3 @@
-
import ignore, { type Ignore } from 'ignore';
export const PREVIEW_CACHE_LIMIT = 256;
diff --git a/packages/app/src/components/settings/okignore-warnings.ts b/packages/app/src/components/settings/okignore-warnings.ts
index e6a34740..a922a0d7 100644
--- a/packages/app/src/components/settings/okignore-warnings.ts
+++ b/packages/app/src/components/settings/okignore-warnings.ts
@@ -1,4 +1,3 @@
-
type OkignoreWarningCode =
| 'trailing-backslash'
| 'unmatched-bracket'
diff --git a/packages/app/src/components/settings/schema-walker.test.ts b/packages/app/src/components/settings/schema-walker.test.ts
index 4fa4c541..bb91e15b 100644
--- a/packages/app/src/components/settings/schema-walker.test.ts
+++ b/packages/app/src/components/settings/schema-walker.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { ConfigSchema } from '@inkeep/open-knowledge-core';
import {
diff --git a/packages/app/src/components/settings/schema-walker.ts b/packages/app/src/components/settings/schema-walker.ts
index fac70c57..b724bf72 100644
--- a/packages/app/src/components/settings/schema-walker.ts
+++ b/packages/app/src/components/settings/schema-walker.ts
@@ -1,4 +1,3 @@
-
import { resolveLeafSchema } from '@inkeep/open-knowledge-core';
import type { z } from 'zod';
@@ -20,7 +19,6 @@ export function buildPatch(
return { [String(head)]: buildPatch(rest, value) };
}
-
export function getFieldDefault(schema: AnyZ): unknown {
let cur: unknown = schema;
for (let depth = 0; depth < 16; depth++) {
diff --git a/packages/app/src/components/settings/use-config-form.test.ts b/packages/app/src/components/settings/use-config-form.test.ts
index 6252ed8b..28ce6da5 100644
--- a/packages/app/src/components/settings/use-config-form.test.ts
+++ b/packages/app/src/components/settings/use-config-form.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, mock, test } from 'bun:test';
import type {
Config,
@@ -15,7 +14,6 @@ import {
runCommit,
} from './use-config-form';
-
describe('applyExternalUpdate', () => {
test('calls form.reset with keepDirtyValues + keepDirty + keepTouched', () => {
const reset = mock();
@@ -37,7 +35,6 @@ describe('applyExternalUpdate', () => {
});
});
-
interface MockedRunCommitForm extends RunCommitForm {
reset?: never;
}
@@ -312,7 +309,6 @@ describe('runCommit — failure path', () => {
});
});
-
describe('pickFirstIssueForPath', () => {
test('returns the issue.message when an issue path matches the field name', () => {
const error: ConfigValidationError = {
@@ -369,7 +365,6 @@ describe('pickFirstIssueForPath', () => {
});
});
-
describe('useConfigForm module shape', () => {
test('exports useConfigForm as a function', async () => {
const mod = await import('./use-config-form');
diff --git a/packages/app/src/components/settings/use-config-form.ts b/packages/app/src/components/settings/use-config-form.ts
index afdd214b..d2079c13 100644
--- a/packages/app/src/components/settings/use-config-form.ts
+++ b/packages/app/src/components/settings/use-config-form.ts
@@ -1,4 +1,3 @@
-
import {
type Config,
type ConfigBinding,
@@ -35,7 +34,6 @@ export function useConfigForm(binding: ConfigBinding): UseConfigFormResult {
return { form, commitField };
}
-
export type ApplyExternalUpdateForm = Pick, 'reset'>;
export function applyExternalUpdate(
diff --git a/packages/app/src/components/share-metadata-rows.tsx b/packages/app/src/components/share-metadata-rows.tsx
index 607ed1cf..c136f81e 100644
--- a/packages/app/src/components/share-metadata-rows.tsx
+++ b/packages/app/src/components/share-metadata-rows.tsx
@@ -1,4 +1,3 @@
-
import { Trans } from '@lingui/react/macro';
import type { ReactNode } from 'react';
diff --git a/packages/app/src/components/sidebar-hover-prewarm.ts b/packages/app/src/components/sidebar-hover-prewarm.ts
index cc313084..44dcf30b 100644
--- a/packages/app/src/components/sidebar-hover-prewarm.ts
+++ b/packages/app/src/components/sidebar-hover-prewarm.ts
@@ -1,4 +1,3 @@
-
import { isSystemDoc } from '@/editor/is-system-doc';
import { mark } from '@/lib/perf';
import { readNumericOverride } from '@/lib/perf/env-override';
diff --git a/packages/app/src/components/skill-actions.tsx b/packages/app/src/components/skill-actions.tsx
index 902ae204..38acd716 100644
--- a/packages/app/src/components/skill-actions.tsx
+++ b/packages/app/src/components/skill-actions.tsx
@@ -37,7 +37,6 @@ import { scheduleClipboardWrite } from '@/lib/share/clipboard-adapter';
import { duplicateSkill, installSkill, uninstallSkill } from '@/lib/skills-api';
import { useWorkspace } from '@/lib/use-workspace';
-
export interface SkillActions {
installingName: string | null;
install: (
diff --git a/packages/app/src/components/template-picker-utils.ts b/packages/app/src/components/template-picker-utils.ts
index 49b10547..d6c0931d 100644
--- a/packages/app/src/components/template-picker-utils.ts
+++ b/packages/app/src/components/template-picker-utils.ts
@@ -1,6 +1,5 @@
import type { TemplateMenuEntry } from '@/hooks/use-folder-config';
-
const SCOPE_ORDER: Record = {
local: 0,
inherited: 1,
diff --git a/packages/app/src/components/terminal-session-registry.ts b/packages/app/src/components/terminal-session-registry.ts
index 2361587f..11993717 100644
--- a/packages/app/src/components/terminal-session-registry.ts
+++ b/packages/app/src/components/terminal-session-registry.ts
@@ -1,4 +1,3 @@
-
import type { TerminalCli } from '@inkeep/open-knowledge-core';
export const IDLE_QUIET_MS = 1200;
diff --git a/packages/app/src/components/terminal-wheel.ts b/packages/app/src/components/terminal-wheel.ts
index 8e917d0d..5b0e2e13 100644
--- a/packages/app/src/components/terminal-wheel.ts
+++ b/packages/app/src/components/terminal-wheel.ts
@@ -1,4 +1,3 @@
-
export type WheelButton = 64 | 65;
export interface WheelReportOptions {
diff --git a/packages/app/src/components/text-viewer-languages.ts b/packages/app/src/components/text-viewer-languages.ts
index d0cf7b78..da5e3ea1 100644
--- a/packages/app/src/components/text-viewer-languages.ts
+++ b/packages/app/src/components/text-viewer-languages.ts
@@ -1,4 +1,3 @@
-
import type { Language } from '@codemirror/language';
const cache = new Map>();
diff --git a/packages/app/src/components/ui/command.tsx b/packages/app/src/components/ui/command.tsx
index 6fbf16ac..824632e1 100644
--- a/packages/app/src/components/ui/command.tsx
+++ b/packages/app/src/components/ui/command.tsx
@@ -1,4 +1,3 @@
-
import { Command as CommandPrimitive } from 'cmdk';
import { SearchIcon } from 'lucide-react';
import type { ComponentProps } from 'react';
diff --git a/packages/app/src/components/ui/form.test.ts b/packages/app/src/components/ui/form.test.ts
index e89e3f6a..7fb8f673 100644
--- a/packages/app/src/components/ui/form.test.ts
+++ b/packages/app/src/components/ui/form.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
describe('ui/form module', () => {
diff --git a/packages/app/src/editor/ComposerMentionInput.tsx b/packages/app/src/editor/ComposerMentionInput.tsx
index 953b0c7c..fa4daaaa 100644
--- a/packages/app/src/editor/ComposerMentionInput.tsx
+++ b/packages/app/src/editor/ComposerMentionInput.tsx
@@ -1,4 +1,3 @@
-
import type { JSONContent } from '@tiptap/core';
import { EditorContent, useEditor } from '@tiptap/react';
import { type Ref, useEffect, useImperativeHandle, useRef } from 'react';
diff --git a/packages/app/src/editor/DocumentContext.tsx b/packages/app/src/editor/DocumentContext.tsx
index 344ce065..ee1c0226 100644
--- a/packages/app/src/editor/DocumentContext.tsx
+++ b/packages/app/src/editor/DocumentContext.tsx
@@ -1447,8 +1447,7 @@ if (import.meta.hot) {
delete (window as { __test_rejectSyncPromise?: unknown }).__test_rejectSyncPromise;
delete (window as { __test_armPendingRejection?: unknown }).__test_armPendingRejection;
delete (window as { __test_closeActiveWebSocket?: unknown }).__test_closeActiveWebSocket;
- } catch {
- }
+ } catch {}
}
});
}
diff --git a/packages/app/src/editor/SourceEditor.tsx b/packages/app/src/editor/SourceEditor.tsx
index ca717175..e732ff1f 100644
--- a/packages/app/src/editor/SourceEditor.tsx
+++ b/packages/app/src/editor/SourceEditor.tsx
@@ -111,7 +111,6 @@ export function SourceEditor({
sourceModeActiveRef.current = isSourceModeActive;
}, [isSourceModeActive]);
-
const cmEntryRef = useRef(null);
// biome-ignore lint/correctness/useExhaustiveDependencies: see comment above
useEffect(() => {
diff --git a/packages/app/src/editor/TiptapEditor.tsx b/packages/app/src/editor/TiptapEditor.tsx
index cd164c1f..8f12ad0d 100644
--- a/packages/app/src/editor/TiptapEditor.tsx
+++ b/packages/app/src/editor/TiptapEditor.tsx
@@ -129,8 +129,7 @@ function repairDetachedEditorContent(editor: Editor, portalTarget: HTMLElement):
try {
view.setProps({ nodeViews: {} });
- } catch {
- }
+ } catch {}
editorWithContent.contentComponent = null;
editorWithContent.isEditorContentInitialized = false;
return true;
@@ -571,7 +570,6 @@ const TiptapEditorChrome: FC = ({
};
}, [editor, docName]);
-
useEffect(() => {
const activityMap = provider.document.getMap('agent-flash');
let lastSeenTimestamp = Date.now();
diff --git a/packages/app/src/editor/active-editor.ts b/packages/app/src/editor/active-editor.ts
index 1b126644..b49b53f3 100644
--- a/packages/app/src/editor/active-editor.ts
+++ b/packages/app/src/editor/active-editor.ts
@@ -1,4 +1,3 @@
-
import type { Editor } from '@tiptap/core';
const editors = new Map();
diff --git a/packages/app/src/editor/asset-dispatch/dispatcher.ts b/packages/app/src/editor/asset-dispatch/dispatcher.ts
index b1391085..3d4036a8 100644
--- a/packages/app/src/editor/asset-dispatch/dispatcher.ts
+++ b/packages/app/src/editor/asset-dispatch/dispatcher.ts
@@ -1,4 +1,3 @@
-
import { type AssetViewerRegistry, assetViewerRegistry } from './registry.ts';
import type { AssetClickContext } from './types.ts';
diff --git a/packages/app/src/editor/asset-dispatch/index.ts b/packages/app/src/editor/asset-dispatch/index.ts
index f9121bc8..297810a2 100644
--- a/packages/app/src/editor/asset-dispatch/index.ts
+++ b/packages/app/src/editor/asset-dispatch/index.ts
@@ -1,2 +1 @@
-
export { dispatchAssetClick } from './dispatcher.ts';
diff --git a/packages/app/src/editor/asset-dispatch/registry.ts b/packages/app/src/editor/asset-dispatch/registry.ts
index f5a5e973..af561a58 100644
--- a/packages/app/src/editor/asset-dispatch/registry.ts
+++ b/packages/app/src/editor/asset-dispatch/registry.ts
@@ -1,4 +1,3 @@
-
import type { AssetViewer, AssetViewerLookupResult } from './types.ts';
export class AssetViewerRegistry {
diff --git a/packages/app/src/editor/asset-dispatch/types.ts b/packages/app/src/editor/asset-dispatch/types.ts
index 4085a600..8d6adfcf 100644
--- a/packages/app/src/editor/asset-dispatch/types.ts
+++ b/packages/app/src/editor/asset-dispatch/types.ts
@@ -1,4 +1,3 @@
-
export interface AssetClickContext {
readonly url: string;
readonly projectRelPath: string;
diff --git a/packages/app/src/editor/binding-staleness-guard.test.ts b/packages/app/src/editor/binding-staleness-guard.test.ts
index 1ec36384..f09cdf13 100644
--- a/packages/app/src/editor/binding-staleness-guard.test.ts
+++ b/packages/app/src/editor/binding-staleness-guard.test.ts
@@ -1,4 +1,3 @@
-
import { afterAll, afterEach, beforeAll, describe, expect, test } from 'bun:test';
import { randomUUID } from 'node:crypto';
import { getSchema } from '@tiptap/core';
@@ -15,7 +14,6 @@ import {
} from './binding-staleness-guard';
import { sharedExtensions } from './extensions/shared';
-
function installDomGlobals(): () => void {
const dom = new JSDOM('', {
url: 'http://localhost:5173',
@@ -74,7 +72,6 @@ afterAll(() => {
restoreDomGlobals = null;
});
-
const schema = getSchema(sharedExtensions);
/** Stands in for a provider applying a remote peer's update (origin is the
@@ -248,7 +245,6 @@ function createHarness(options: HarnessOptions = {}): GuardHarness {
return harness;
}
-
describe('pure helpers', () => {
test('isDiverged is true exactly when external is ahead of applied', () => {
expect(isDiverged(0, 0)).toBe(false);
@@ -279,7 +275,6 @@ describe('pure helpers', () => {
});
});
-
describe('counter semantics', () => {
test('a wedged external burst is reported once, deferred, with the full backlog', async () => {
const harness = createHarness();
@@ -330,7 +325,6 @@ describe('counter semantics', () => {
});
});
-
describe('publication gate', () => {
test('while diverged, every transaction without y-sync meta is blocked — including selection-only', async () => {
const harness = createHarness({ seedText: 'long enough to move a cursor' });
@@ -383,7 +377,6 @@ describe('publication gate', () => {
});
});
-
describe('wedge trigger', () => {
test('fires once per divergence episode across repeated wedged bumps; the gate keeps blocking', async () => {
const harness = createHarness();
@@ -457,7 +450,6 @@ describe('wedge trigger', () => {
});
});
-
describe('binding write-back seam', () => {
/** What the vendored ySyncPlugin's pluginView `update` callback does
* unconditionally on every view-state update (y-tiptap.cjs view section):
@@ -542,7 +534,6 @@ describe('binding write-back seam', () => {
});
});
-
describe('no false positives on healthy bindings', () => {
for (const order of ['registered-before-guard', 'registered-after-guard'] as const) {
test(`rapid external stream interleaved with local typing stays open (binding ${order})`, async () => {
diff --git a/packages/app/src/editor/binding-staleness-guard.ts b/packages/app/src/editor/binding-staleness-guard.ts
index e467cfc7..758caca8 100644
--- a/packages/app/src/editor/binding-staleness-guard.ts
+++ b/packages/app/src/editor/binding-staleness-guard.ts
@@ -5,7 +5,6 @@ import { ySyncPluginKey } from '@tiptap/y-tiptap';
import type * as Y from 'yjs';
import { mark } from '../lib/perf/mark';
-
export interface WedgeDetail {
externalSeq: number;
appliedSeq: number;
diff --git a/packages/app/src/editor/block-ux/keyboard-nav.ts b/packages/app/src/editor/block-ux/keyboard-nav.ts
index a6a7d98f..7e97adc6 100644
--- a/packages/app/src/editor/block-ux/keyboard-nav.ts
+++ b/packages/app/src/editor/block-ux/keyboard-nav.ts
@@ -1,4 +1,3 @@
-
import { incrementJsxArrowNodeSelectFailed } from '@inkeep/open-knowledge-core';
import type { Editor } from '@tiptap/core';
import { Extension } from '@tiptap/core';
diff --git a/packages/app/src/editor/branch-invalidation.test.ts b/packages/app/src/editor/branch-invalidation.test.ts
index a18f68a7..9709fc5e 100644
--- a/packages/app/src/editor/branch-invalidation.test.ts
+++ b/packages/app/src/editor/branch-invalidation.test.ts
@@ -118,7 +118,6 @@ describe('handleBranchSwitched', () => {
expect(clear2).toHaveBeenCalledTimes(1);
});
-
test('swallows clearData failures and still recycles', async () => {
pool = new ProviderPool(3, DUMMY_WS);
pool.setExpectedServerInstanceId(TEST_SERVER_INSTANCE_ID);
diff --git a/packages/app/src/editor/branch-invalidation.ts b/packages/app/src/editor/branch-invalidation.ts
index f392cde1..480223e5 100644
--- a/packages/app/src/editor/branch-invalidation.ts
+++ b/packages/app/src/editor/branch-invalidation.ts
@@ -1,4 +1,3 @@
-
import { z } from 'zod';
import type { ProviderPool } from './provider-pool';
diff --git a/packages/app/src/editor/bubble-menu/BubbleMenuBar.tsx b/packages/app/src/editor/bubble-menu/BubbleMenuBar.tsx
index 27be06b6..c5a9d333 100644
--- a/packages/app/src/editor/bubble-menu/BubbleMenuBar.tsx
+++ b/packages/app/src/editor/bubble-menu/BubbleMenuBar.tsx
@@ -75,8 +75,7 @@ export function BubbleMenuBar({
popup.style.top = `${y}px`;
}
})
- .catch(() => {
- });
+ .catch(() => {});
});
};
diff --git a/packages/app/src/editor/bubble-menu/EditWithAiBubbleButton.dom.test.tsx b/packages/app/src/editor/bubble-menu/EditWithAiBubbleButton.dom.test.tsx
index 5ecaf1d1..907e5850 100644
--- a/packages/app/src/editor/bubble-menu/EditWithAiBubbleButton.dom.test.tsx
+++ b/packages/app/src/editor/bubble-menu/EditWithAiBubbleButton.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import { act, cleanup, render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
diff --git a/packages/app/src/editor/bubble-menu/EditWithAiBubbleButton.tsx b/packages/app/src/editor/bubble-menu/EditWithAiBubbleButton.tsx
index 6f71b7a4..842427e0 100644
--- a/packages/app/src/editor/bubble-menu/EditWithAiBubbleButton.tsx
+++ b/packages/app/src/editor/bubble-menu/EditWithAiBubbleButton.tsx
@@ -1,4 +1,3 @@
-
import { Trans } from '@lingui/react/macro';
import { isMacOS } from '@tiptap/core';
import type { Editor } from '@tiptap/react';
diff --git a/packages/app/src/editor/bubble-menu/FileBubbleButtons.tsx b/packages/app/src/editor/bubble-menu/FileBubbleButtons.tsx
index 80bd5c49..c3d5611c 100644
--- a/packages/app/src/editor/bubble-menu/FileBubbleButtons.tsx
+++ b/packages/app/src/editor/bubble-menu/FileBubbleButtons.tsx
@@ -1,4 +1,3 @@
-
import { Trans, useLingui } from '@lingui/react/macro';
import type { Editor } from '@tiptap/react';
import { useEditorState } from '@tiptap/react';
diff --git a/packages/app/src/editor/bubble-menu/FootnoteBubbleButton.dom.test.tsx b/packages/app/src/editor/bubble-menu/FootnoteBubbleButton.dom.test.tsx
index 90f356e4..300f419d 100644
--- a/packages/app/src/editor/bubble-menu/FootnoteBubbleButton.dom.test.tsx
+++ b/packages/app/src/editor/bubble-menu/FootnoteBubbleButton.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { cleanup, render } from '@testing-library/react';
import type { Editor } from '@tiptap/react';
diff --git a/packages/app/src/editor/bubble-menu/FootnoteBubbleButton.tsx b/packages/app/src/editor/bubble-menu/FootnoteBubbleButton.tsx
index dee88be2..7b350047 100644
--- a/packages/app/src/editor/bubble-menu/FootnoteBubbleButton.tsx
+++ b/packages/app/src/editor/bubble-menu/FootnoteBubbleButton.tsx
@@ -1,4 +1,3 @@
-
import {
collectFootnoteIdentifiers,
findFootnoteDefinitionInsertPos,
diff --git a/packages/app/src/editor/bubble-menu/ImageAlignButtons.test.ts b/packages/app/src/editor/bubble-menu/ImageAlignButtons.test.ts
index 028be7c9..8679f7bc 100644
--- a/packages/app/src/editor/bubble-menu/ImageAlignButtons.test.ts
+++ b/packages/app/src/editor/bubble-menu/ImageAlignButtons.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import type { Editor } from '@tiptap/react';
import { isImageNodeSelected } from './ImageAlignButtons';
diff --git a/packages/app/src/editor/bubble-menu/ImageAlignButtons.tsx b/packages/app/src/editor/bubble-menu/ImageAlignButtons.tsx
index 8f0d7472..a21e80ff 100644
--- a/packages/app/src/editor/bubble-menu/ImageAlignButtons.tsx
+++ b/packages/app/src/editor/bubble-menu/ImageAlignButtons.tsx
@@ -1,4 +1,3 @@
-
import { NodeSelection } from '@tiptap/pm/state';
import type { Editor } from '@tiptap/react';
import { useEditorState } from '@tiptap/react';
diff --git a/packages/app/src/editor/client-persistence.test.ts b/packages/app/src/editor/client-persistence.test.ts
index 75de15d7..d92c4da0 100644
--- a/packages/app/src/editor/client-persistence.test.ts
+++ b/packages/app/src/editor/client-persistence.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, spyOn, test } from 'bun:test';
import { randomUUID } from 'node:crypto';
import * as Y from 'yjs';
@@ -288,8 +287,7 @@ describe('createClientPersistence', () => {
warnSpy.mockRestore();
try {
blocker.close();
- } catch {
- }
+ } catch {}
docA.destroy();
}
});
diff --git a/packages/app/src/editor/client-persistence.ts b/packages/app/src/editor/client-persistence.ts
index 58d1c7b4..90b3e786 100644
--- a/packages/app/src/editor/client-persistence.ts
+++ b/packages/app/src/editor/client-persistence.ts
@@ -1,4 +1,3 @@
-
import { LINEAGE_EPOCH_KEY } from '@inkeep/open-knowledge-core';
import { IndexeddbPersistence } from 'y-indexeddb';
import * as Y from 'yjs';
@@ -109,8 +108,7 @@ class ClientPersistenceImpl implements ClientPersistenceProvider {
reject(err instanceof Error ? err : new Error(String(err)));
try {
tx.abort();
- } catch {
- }
+ } catch {}
}
};
tx.oncomplete = () => resolve();
diff --git a/packages/app/src/editor/clipboard/clipboard-sanitize.test.ts b/packages/app/src/editor/clipboard/clipboard-sanitize.test.ts
index 83bc7d48..fff801fe 100644
--- a/packages/app/src/editor/clipboard/clipboard-sanitize.test.ts
+++ b/packages/app/src/editor/clipboard/clipboard-sanitize.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import {
classifyUrlPortability,
@@ -408,7 +407,6 @@ describe('OPT_OUT_ATTR — descriptor opt-out marker', () => {
});
describe('classifyUrlPortability — single-pass classification with reason bucket', () => {
-
describe('portable inputs (reason absent)', () => {
test('fragment-only refs return { portable: true }', () => {
expect(classifyUrlPortability('#section')).toEqual({ portable: true });
diff --git a/packages/app/src/editor/clipboard/clipboard-sanitize.ts b/packages/app/src/editor/clipboard/clipboard-sanitize.ts
index 56e37965..60314421 100644
--- a/packages/app/src/editor/clipboard/clipboard-sanitize.ts
+++ b/packages/app/src/editor/clipboard/clipboard-sanitize.ts
@@ -1,4 +1,3 @@
-
import { isRelativeUrl, SAFE_URL_SCHEME_RE } from '@inkeep/open-knowledge-core';
import * as ipaddr from 'ipaddr.js';
@@ -78,7 +77,6 @@ export function sanitizeStyleAttrValue(value: string): string {
return value;
}
-
function parseColorBody(body: string): [number, number, number, number | null] | null {
const slashIdx = body.indexOf('/');
const main = (slashIdx === -1 ? body : body.slice(0, slashIdx)).trim();
@@ -183,7 +181,6 @@ export function convertCssColors(value: string): string {
});
}
-
const PORTABLE_NAVIGATION_SCHEMES: ReadonlySet = new Set([
'mailto',
'tel',
diff --git a/packages/app/src/editor/clipboard/clipboard-walker-fallback-palette.test.ts b/packages/app/src/editor/clipboard/clipboard-walker-fallback-palette.test.ts
index d5614357..fc6e336a 100644
--- a/packages/app/src/editor/clipboard/clipboard-walker-fallback-palette.test.ts
+++ b/packages/app/src/editor/clipboard/clipboard-walker-fallback-palette.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { classifyUrlPortability } from './clipboard-sanitize.ts';
import {
@@ -67,7 +66,6 @@ describe('toneForType — type-to-tone lookup with prototype-pollution guard', (
});
});
-
describe('paletteUrlReason — portability decision', () => {
test('returns null for fragment-only refs', () => {
expect(paletteUrlReason('#section')).toBeNull();
diff --git a/packages/app/src/editor/clipboard/clipboard-walker-fallback-palette.ts b/packages/app/src/editor/clipboard/clipboard-walker-fallback-palette.ts
index 273ab249..38d2985f 100644
--- a/packages/app/src/editor/clipboard/clipboard-walker-fallback-palette.ts
+++ b/packages/app/src/editor/clipboard/clipboard-walker-fallback-palette.ts
@@ -1,4 +1,3 @@
-
import type { Node as PmNode } from '@tiptap/pm/model';
import {
classifyUrlPortability,
diff --git a/packages/app/src/editor/clipboard/clipboard-walker.test.ts b/packages/app/src/editor/clipboard/clipboard-walker.test.ts
index 2634efe8..5a690c98 100644
--- a/packages/app/src/editor/clipboard/clipboard-walker.test.ts
+++ b/packages/app/src/editor/clipboard/clipboard-walker.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { Schema } from '@tiptap/pm/model';
import {
@@ -183,7 +182,6 @@ describe('buildInlineStyleFrom — modern CSS color downgrade', () => {
});
describe('selectionPartiallyCoversTopLevelNode — selection-bound containment guard', () => {
-
const schema = new Schema({
nodes: {
doc: { content: 'block+' },
@@ -299,7 +297,6 @@ describe('glyphForLucide — pure lookup for cross-app icon substitution', () =>
});
});
-
function fakeElementWithClosest(closestResults: Record): Element {
return {
closest: (selector: string) => closestResults[selector] ?? null,
@@ -319,7 +316,6 @@ describe('chooseEmissionClass — paragraph-content-model rule', () => {
});
});
-
interface FakeNode {
tagName: string;
attrs: Record;
@@ -502,7 +498,6 @@ describe('applyWikiLinkTransform — wiki-link rewrite', () => {
});
});
-
interface PostPassFakeElement {
tagName: string;
attrs: Record;
diff --git a/packages/app/src/editor/clipboard/clipboard-walker.ts b/packages/app/src/editor/clipboard/clipboard-walker.ts
index a7e25661..b17d8d0f 100644
--- a/packages/app/src/editor/clipboard/clipboard-walker.ts
+++ b/packages/app/src/editor/clipboard/clipboard-walker.ts
@@ -1,4 +1,3 @@
-
import { normalizeNullableString, wikiLinkHref } from '@inkeep/open-knowledge-core';
import type { Node as PmNode, Slice } from '@tiptap/pm/model';
import type { EditorView } from '@tiptap/pm/view';
@@ -83,7 +82,6 @@ export const ATTR_BLOCKLIST: ReadonlySet = new Set([
'data-pm-slice',
]);
-
export interface ComputedStyleLike {
getPropertyValue(prop: string): string;
}
@@ -341,7 +339,6 @@ function walkPair(live: Element, clone: Element, env: WalkerEnv): void {
}
}
-
export function applyWikiLinkTransform(root: Element): void {
const spans = root.querySelectorAll('span[data-wiki-link]');
for (const span of Array.from(spans)) {
@@ -361,7 +358,6 @@ export function applyWikiLinkTransform(root: Element): void {
}
}
-
type WalkerUrlLeafTag = Exclude;
const URL_LEAF_TAGS: ReadonlySet = new Set([
diff --git a/packages/app/src/editor/clipboard/detect-source.test.ts b/packages/app/src/editor/clipboard/detect-source.test.ts
index a6ede7c1..623ff5f8 100644
--- a/packages/app/src/editor/clipboard/detect-source.test.ts
+++ b/packages/app/src/editor/clipboard/detect-source.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { detectSource } from './detect-source.ts';
diff --git a/packages/app/src/editor/clipboard/detect-source.ts b/packages/app/src/editor/clipboard/detect-source.ts
index e0c29223..7a072ba6 100644
--- a/packages/app/src/editor/clipboard/detect-source.ts
+++ b/packages/app/src/editor/clipboard/detect-source.ts
@@ -1,4 +1,3 @@
-
export type ClipboardSource =
| 'vscode'
| 'gfm'
diff --git a/packages/app/src/editor/clipboard/handle-drop.test.ts b/packages/app/src/editor/clipboard/handle-drop.test.ts
index 60df0439..4496bb64 100644
--- a/packages/app/src/editor/clipboard/handle-drop.test.ts
+++ b/packages/app/src/editor/clipboard/handle-drop.test.ts
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import * as actualCore from '@inkeep/open-knowledge-core';
import * as actualSonner from 'sonner';
diff --git a/packages/app/src/editor/clipboard/handle-paste.test.ts b/packages/app/src/editor/clipboard/handle-paste.test.ts
index 739e43fb..18ddde78 100644
--- a/packages/app/src/editor/clipboard/handle-paste.test.ts
+++ b/packages/app/src/editor/clipboard/handle-paste.test.ts
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import * as actualCore from '@inkeep/open-knowledge-core';
import * as actualSonner from 'sonner';
diff --git a/packages/app/src/editor/clipboard/handle-paste.ts b/packages/app/src/editor/clipboard/handle-paste.ts
index 763dc5a1..d1f84eba 100644
--- a/packages/app/src/editor/clipboard/handle-paste.ts
+++ b/packages/app/src/editor/clipboard/handle-paste.ts
@@ -1,4 +1,3 @@
-
import type { MarkdownManager } from '@inkeep/open-knowledge-core';
import { htmlToMdast, mdastToMarkdown } from '@inkeep/open-knowledge-core';
import type { JSONContent } from '@tiptap/core';
diff --git a/packages/app/src/editor/clipboard/index.ts b/packages/app/src/editor/clipboard/index.ts
index 0bafa091..37a12d90 100644
--- a/packages/app/src/editor/clipboard/index.ts
+++ b/packages/app/src/editor/clipboard/index.ts
@@ -1,4 +1,3 @@
-
export { OPT_OUT_ATTR } from './clipboard-sanitize.ts';
export { createHandleDrop, createHandlePaste } from './handle-paste.ts';
export {
diff --git a/packages/app/src/editor/clipboard/instrument.test.ts b/packages/app/src/editor/clipboard/instrument.test.ts
index 7447ed06..335da32a 100644
--- a/packages/app/src/editor/clipboard/instrument.test.ts
+++ b/packages/app/src/editor/clipboard/instrument.test.ts
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
import { ChunkedInsertError, HtmlPayloadTooLargeError } from '@inkeep/open-knowledge-core';
diff --git a/packages/app/src/editor/clipboard/instrument.ts b/packages/app/src/editor/clipboard/instrument.ts
index ad7c1cee..c7effa5b 100644
--- a/packages/app/src/editor/clipboard/instrument.ts
+++ b/packages/app/src/editor/clipboard/instrument.ts
@@ -2,7 +2,6 @@ import { ChunkedInsertError, HtmlPayloadTooLargeError } from '@inkeep/open-knowl
import type { UrlPortabilityReason } from './clipboard-sanitize.ts';
import type { ClipboardSource } from './detect-source.ts';
-
type ClipboardEventName =
| 'clipboard-slow-op'
| 'clipboard-source-detected'
diff --git a/packages/app/src/editor/clipboard/is-markdown.test.ts b/packages/app/src/editor/clipboard/is-markdown.test.ts
index 239b2af2..e2e7ca23 100644
--- a/packages/app/src/editor/clipboard/is-markdown.test.ts
+++ b/packages/app/src/editor/clipboard/is-markdown.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { isMarkdown } from './is-markdown.ts';
diff --git a/packages/app/src/editor/clipboard/is-markdown.ts b/packages/app/src/editor/clipboard/is-markdown.ts
index 333a5b33..ae00bfba 100644
--- a/packages/app/src/editor/clipboard/is-markdown.ts
+++ b/packages/app/src/editor/clipboard/is-markdown.ts
@@ -1,4 +1,3 @@
-
const FENCE_RE = /^```/m;
const HEADING_RE = /^#{1,6} /m;
const BULLET_RE = /^[-*+] /m;
diff --git a/packages/app/src/editor/clipboard/non-portable-render-source-fallback.test.ts b/packages/app/src/editor/clipboard/non-portable-render-source-fallback.test.ts
index 22f37da4..ac29245b 100644
--- a/packages/app/src/editor/clipboard/non-portable-render-source-fallback.test.ts
+++ b/packages/app/src/editor/clipboard/non-portable-render-source-fallback.test.ts
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import type { Node as PmNode } from '@tiptap/pm/model';
import { sourceFallbackFormFor } from './non-portable-render-source-fallback.ts';
diff --git a/packages/app/src/editor/clipboard/non-portable-render-source-fallback.ts b/packages/app/src/editor/clipboard/non-portable-render-source-fallback.ts
index 2b946739..62651c26 100644
--- a/packages/app/src/editor/clipboard/non-portable-render-source-fallback.ts
+++ b/packages/app/src/editor/clipboard/non-portable-render-source-fallback.ts
@@ -1,4 +1,3 @@
-
import type { Node as PmNode } from '@tiptap/pm/model';
type SourceFallbackForm = { source: string };
diff --git a/packages/app/src/editor/clipboard/paste-failure-toast.test.ts b/packages/app/src/editor/clipboard/paste-failure-toast.test.ts
index 83eb2671..6a2e7f12 100644
--- a/packages/app/src/editor/clipboard/paste-failure-toast.test.ts
+++ b/packages/app/src/editor/clipboard/paste-failure-toast.test.ts
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import * as actualSonner from 'sonner';
diff --git a/packages/app/src/editor/clipboard/paste-failure-toast.ts b/packages/app/src/editor/clipboard/paste-failure-toast.ts
index 6b9a64ca..28da4659 100644
--- a/packages/app/src/editor/clipboard/paste-failure-toast.ts
+++ b/packages/app/src/editor/clipboard/paste-failure-toast.ts
@@ -1,4 +1,3 @@
-
import { toast } from 'sonner';
const THROTTLE_MS = 3000;
diff --git a/packages/app/src/editor/clipboard/serialize.test.ts b/packages/app/src/editor/clipboard/serialize.test.ts
index 9afe862c..af9a03f2 100644
--- a/packages/app/src/editor/clipboard/serialize.test.ts
+++ b/packages/app/src/editor/clipboard/serialize.test.ts
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import type { JSONContent } from '@tiptap/core';
import type { Fragment } from '@tiptap/pm/model';
@@ -87,7 +86,6 @@ describe('createClipboardTextSerializer', () => {
});
describe('createClipboardHtmlSerializer — walker→markdown tier dispatch', () => {
-
function emptyFragment(): Fragment {
return { firstChild: null } as unknown as Fragment;
}
@@ -182,7 +180,6 @@ describe('createClipboardHtmlSerializer — walker→markdown tier dispatch', ()
});
describe('createClipboardHtmlSerializer — walker env wires markdown reconstruction', () => {
-
let warnCalls: string[];
let innerOrigWarn: typeof console.warn;
beforeEach(() => {
@@ -264,7 +261,6 @@ function wrapDescriptor(el: FakeDescriptorElement): Element {
}
describe('findDescriptorRoot — outermost-wrapper selection', () => {
-
test('(a) bare element with only ProseMirror parent → returns null', () => {
const proseMirror = makeDescriptorEl({ classes: ['ProseMirror'] });
const img = makeDescriptorEl();
@@ -341,7 +337,6 @@ describe('findDescriptorRoot — outermost-wrapper selection', () => {
});
describe('sliceToDocJson — inline-first wrapping branch', () => {
-
const inlineImageSchema = new Schema({
nodes: {
doc: { content: 'block+' },
diff --git a/packages/app/src/editor/clipboard/serialize.ts b/packages/app/src/editor/clipboard/serialize.ts
index 4ab180aa..0793f6b8 100644
--- a/packages/app/src/editor/clipboard/serialize.ts
+++ b/packages/app/src/editor/clipboard/serialize.ts
@@ -1,4 +1,3 @@
-
import type { MarkdownManager } from '@inkeep/open-knowledge-core';
import { markdownToHtml } from '@inkeep/open-knowledge-core';
import type { JSONContent } from '@tiptap/core';
diff --git a/packages/app/src/editor/clipboard/shift-tracker.test.ts b/packages/app/src/editor/clipboard/shift-tracker.test.ts
index bc7f11a2..78be5917 100644
--- a/packages/app/src/editor/clipboard/shift-tracker.test.ts
+++ b/packages/app/src/editor/clipboard/shift-tracker.test.ts
@@ -1,4 +1,3 @@
-
import { afterAll, beforeAll, beforeEach, describe, expect, test } from 'bun:test';
interface Listener {
diff --git a/packages/app/src/editor/clipboard/shift-tracker.ts b/packages/app/src/editor/clipboard/shift-tracker.ts
index ee57f6e9..e214f82e 100644
--- a/packages/app/src/editor/clipboard/shift-tracker.ts
+++ b/packages/app/src/editor/clipboard/shift-tracker.ts
@@ -1,4 +1,3 @@
-
let shiftHeldLatch = false;
let listenersAttached = false;
diff --git a/packages/app/src/editor/clipboard/source-clipboard-recovery.test.ts b/packages/app/src/editor/clipboard/source-clipboard-recovery.test.ts
index fcc21ab6..0a5e3069 100644
--- a/packages/app/src/editor/clipboard/source-clipboard-recovery.test.ts
+++ b/packages/app/src/editor/clipboard/source-clipboard-recovery.test.ts
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, mock, test } from 'bun:test';
import { ChunkedInsertError } from '@inkeep/open-knowledge-core';
import * as actualSonner from 'sonner';
diff --git a/packages/app/src/editor/clipboard/source-clipboard.test.ts b/packages/app/src/editor/clipboard/source-clipboard.test.ts
index 935100d3..e9044ed2 100644
--- a/packages/app/src/editor/clipboard/source-clipboard.test.ts
+++ b/packages/app/src/editor/clipboard/source-clipboard.test.ts
@@ -1,4 +1,3 @@
-
import { afterEach, beforeEach, describe, expect, test } from 'bun:test';
import { buildSourceModeHtml, handleCopyOrCut, handlePaste } from './source-clipboard.ts';
diff --git a/packages/app/src/editor/components/Accordion.test.tsx b/packages/app/src/editor/components/Accordion.test.tsx
index fe7bfe1b..7fa349a9 100644
--- a/packages/app/src/editor/components/Accordion.test.tsx
+++ b/packages/app/src/editor/components/Accordion.test.tsx
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { renderToString } from 'react-dom/server';
import { Accordion } from './Accordion.tsx';
diff --git a/packages/app/src/editor/components/Accordion.tsx b/packages/app/src/editor/components/Accordion.tsx
index 4fb9b666..95efdff1 100644
--- a/packages/app/src/editor/components/Accordion.tsx
+++ b/packages/app/src/editor/components/Accordion.tsx
@@ -1,4 +1,3 @@
-
import { ChevronRight } from 'lucide-react';
import { resolveLucideIcon } from './lucide-icon-allowlist.ts';
diff --git a/packages/app/src/editor/components/Audio.tsx b/packages/app/src/editor/components/Audio.tsx
index 1a32406d..9d5a734d 100644
--- a/packages/app/src/editor/components/Audio.tsx
+++ b/packages/app/src/editor/components/Audio.tsx
@@ -1,4 +1,3 @@
-
import { toDesktopAssetHref } from '@inkeep/open-knowledge-core';
interface AudioProps {
diff --git a/packages/app/src/editor/components/Callout.test.tsx b/packages/app/src/editor/components/Callout.test.tsx
index d3639d5a..7eebbb70 100644
--- a/packages/app/src/editor/components/Callout.test.tsx
+++ b/packages/app/src/editor/components/Callout.test.tsx
@@ -1,4 +1,3 @@
-
import { describe, expect, test } from 'bun:test';
import { renderToString } from 'react-dom/server';
import { Callout } from './Callout.tsx';
diff --git a/packages/app/src/editor/components/Callout.tsx b/packages/app/src/editor/components/Callout.tsx
index 32178a1d..41c44e3c 100644
--- a/packages/app/src/editor/components/Callout.tsx
+++ b/packages/app/src/editor/components/Callout.tsx
@@ -1,4 +1,3 @@
-
import { Trans } from '@lingui/react/macro';
import {
AlertOctagon,
diff --git a/packages/app/src/editor/components/CodePreviewEditModal.dom.test.tsx b/packages/app/src/editor/components/CodePreviewEditModal.dom.test.tsx
index 55657156..f4c22065 100644
--- a/packages/app/src/editor/components/CodePreviewEditModal.dom.test.tsx
+++ b/packages/app/src/editor/components/CodePreviewEditModal.dom.test.tsx
@@ -1,4 +1,3 @@
-
import { afterEach, describe, expect, test } from 'bun:test';
import { fireEvent, render, screen, waitFor } from '@testing-library/react';
import { useState } from 'react';
diff --git a/packages/app/src/editor/components/CodePreviewEditModal.tsx b/packages/app/src/editor/components/CodePreviewEditModal.tsx
index 82c32493..5c1b8388 100644
--- a/packages/app/src/editor/components/CodePreviewEditModal.tsx
+++ b/packages/app/src/editor/components/CodePreviewEditModal.tsx
@@ -1,4 +1,3 @@
-
import { defaultKeymap, history, historyKeymap, indentWithTab } from '@codemirror/commands';
import { css } from '@codemirror/lang-css';
import { html } from '@codemirror/lang-html';
@@ -183,9 +182,7 @@ export function CodePreviewEditModal({
return (