.codecov.yml
.gitignore
AGENTS.md
CONTRIBUTING.md
LICENSE.md
README.md
package-lock.json
package.json
pyproject.toml
run.py
uv.lock
.github/dependabot.yml
.github/workflows/ci.yml
.github/workflows/pages.yml
.github/workflows/release.yml
.husky/pre-commit
docs/index.md
docs/.vitepress/config.mts
docs/assets/icon.ico
docs/assets/icon.png
docs/assets/jotter.sample.yaml
docs/de/index.md
docs/de/installation/development.md
docs/de/installation/precompiled.md
docs/de/user/canvas.md
docs/de/user/configuration.md
docs/de/user/format-spec.md
docs/de/user/git-sync.md
docs/de/user/import-export.md
docs/de/user/obsidian.md
docs/de/user/postponing.md
docs/de/user/safety.md
docs/de/user/searching-filtering.md
docs/de/user/shortcuts.md
docs/de/user/time-blocking.md
docs/de/user/voice-dictation.md
docs/developer/api.md
docs/developer/architecture.md
docs/developer/adr/0001-immutable-bucket-slugs.md
docs/developer/adr/0002-decline-recurring-tasks.md
docs/developer/adr/0003-arbitrary-task-slugs.md
docs/developer/adr/0004-silent-watchdog-sync.md
docs/developer/adr/0005-explicit-in-process-cqrs.md
docs/developer/adr/0006-dual-runtime-architecture.md
docs/developer/adr/0007-project-manifest-index-md.md
docs/developer/adr/0008-selective-per-project-git-sync.md
docs/developer/adr/0009-cross-platform-atomic-writes.md
docs/developer/adr/0010-open-json-canvas-format.md
docs/developer/adr/0011-cross-tab-broadcast-sync.md
docs/developer/adr/0012-vault-abstraction-and-simplified-git-sync.md
docs/developer/adr/0013-frontend-feature-slices.md
docs/developer/adr/0014-periodic-scan-instead-of-watcher.md
docs/developer/adr/0015-index-as-disposable-cache.md
docs/developer/adr/0016-rewrite-backend-from-go-to-python.md
docs/developer/adr/0017-mobile-app.md
docs/installation/development.md
docs/installation/precompiled.md
docs/public/logo.png
docs/user/canvas.md
docs/user/configuration.md
docs/user/format-spec.md
docs/user/git-sync.md
docs/user/import-export.md
docs/user/obsidian.md
docs/user/postponing.md
docs/user/safety.md
docs/user/searching-filtering.md
docs/user/shortcuts.md
docs/user/time-blocking.md
docs/user/voice-dictation.md
mobile/.prettierrc
mobile/README.md
mobile/capacitor.config.ts
mobile/eslint.config.js
mobile/index.html
mobile/package-lock.json
mobile/package.json
mobile/tsconfig.app.json
mobile/tsconfig.json
mobile/tsconfig.node.json
mobile/vite.config.ts
mobile/android/.gitignore
mobile/android/build.gradle
mobile/android/capacitor.settings.gradle
mobile/android/gradle.properties
mobile/android/gradlew
mobile/android/gradlew.bat
mobile/android/settings.gradle
mobile/android/variables.gradle
mobile/android/app/.gitignore
mobile/android/app/build.gradle
mobile/android/app/capacitor.build.gradle
mobile/android/app/proguard-rules.pro
mobile/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java
mobile/android/app/src/main/AndroidManifest.xml
mobile/android/app/src/main/java/io/github/simon123h/jotter_lite/MainActivity.java
mobile/android/app/src/main/java/io/github/simon123h/jotter_lite/StoragePermissionPlugin.java
mobile/android/app/src/main/res/drawable/ic_launcher_background.xml
mobile/android/app/src/main/res/drawable/ic_shortcut_add.xml
mobile/android/app/src/main/res/drawable/ic_shortcut_planning.xml
mobile/android/app/src/main/res/drawable/ic_shortcut_search.xml
mobile/android/app/src/main/res/drawable/splash.png
mobile/android/app/src/main/res/drawable-land-hdpi/splash.png
mobile/android/app/src/main/res/drawable-land-mdpi/splash.png
mobile/android/app/src/main/res/drawable-land-xhdpi/splash.png
mobile/android/app/src/main/res/drawable-land-xxhdpi/splash.png
mobile/android/app/src/main/res/drawable-land-xxxhdpi/splash.png
mobile/android/app/src/main/res/drawable-port-hdpi/splash.png
mobile/android/app/src/main/res/drawable-port-mdpi/splash.png
mobile/android/app/src/main/res/drawable-port-xhdpi/splash.png
mobile/android/app/src/main/res/drawable-port-xxhdpi/splash.png
mobile/android/app/src/main/res/drawable-port-xxxhdpi/splash.png
mobile/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
mobile/android/app/src/main/res/layout/activity_main.xml
mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
mobile/android/app/src/main/res/values/ic_launcher_background.xml
mobile/android/app/src/main/res/values/strings.xml
mobile/android/app/src/main/res/values/styles.xml
mobile/android/app/src/main/res/values-de/strings.xml
mobile/android/app/src/main/res/xml/file_paths.xml
mobile/android/app/src/main/res/xml/shortcuts.xml
mobile/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java
mobile/android/gradle/wrapper/gradle-wrapper.jar
mobile/android/gradle/wrapper/gradle-wrapper.properties
mobile/src/App.spec.ts
mobile/src/App.vue
mobile/src/dates.ts
mobile/src/devServer.spec.ts
mobile/src/env.d.ts
mobile/src/i18n.ts
mobile/src/main.ts
mobile/src/markdown.spec.ts
mobile/src/markdown.ts
mobile/src/planned.ts
mobile/src/shortcuts.ts
mobile/src/style.css
mobile/src/taskColors.ts
mobile/src/test-setup.ts
mobile/src/themes.spec.ts
mobile/src/components/AppBar.vue
mobile/src/components/BottomNav.vue
mobile/src/components/BottomSheet.vue
mobile/src/components/BulkMoreSheet.vue
mobile/src/components/BulkToolbar.vue
mobile/src/components/ColumnTabs.vue
mobile/src/components/ColumnsSheet.vue
mobile/src/components/FilterSheet.vue
mobile/src/components/MarkdownView.vue
mobile/src/components/MoveSheet.vue
mobile/src/components/NavDrawer.vue
mobile/src/components/PlannedSheet.vue
mobile/src/components/PrioritySheet.vue
mobile/src/components/ProjectPickerSheet.vue
mobile/src/components/ProjectsSheet.vue
mobile/src/components/QuickAddSheet.vue
mobile/src/components/SettingsSheet.vue
mobile/src/components/TagsSheet.vue
mobile/src/components/TaskRow.vue
mobile/src/components/TaskSheet.vue
mobile/src/components/TitleHints.vue
mobile/src/components/VaultForm.vue
mobile/src/components/VaultsSheet.vue
mobile/src/composables/dragMath.spec.ts
mobile/src/composables/dragMath.ts
mobile/src/composables/useAutoRefresh.ts
mobile/src/composables/useCardDrag.ts
mobile/src/composables/useSmartTitle.ts
mobile/src/composables/useTaskActions.ts
mobile/src/data/db.ts
mobile/src/data/fs.spec.ts
mobile/src/data/fs.ts
mobile/src/data/index.ts
mobile/src/data/keyValue.ts
mobile/src/data/memoryFs.ts
mobile/src/data/repository.spec.ts
mobile/src/data/repository.ts
mobile/src/data/storagePermission.ts
mobile/src/data/ulid.ts
mobile/src/data/vaults.ts
mobile/src/screens/BoardScreen.vue
mobile/src/screens/OnboardingScreen.vue
mobile/src/stores/app.ts
mobile/src/stores/settings.ts
mobile/src/stores/ui.ts
packages/themes/README.md
packages/themes/index.ts
packages/themes/themes.css
packages/title-parser/README.md
packages/title-parser/index.ts
packages/vault-format/README.md
packages/vault-format/package-lock.json
packages/vault-format/package.json
packages/vault-format/tsconfig.json
packages/vault-format/vitest.config.ts
packages/vault-format/src/formatConformance.spec.ts
packages/vault-format/src/index.ts
packages/vault-format/src/markdownParser.spec.ts
packages/vault-format/src/markdownParser.ts
packages/vault-format/src/types.ts
scripts/combine-coverage.js
scripts/loc_history.py
scripts/plot_loc.py
spec/FORMAT.md
spec/README.md
spec/fixtures/projects/full.json
spec/fixtures/projects/full.md
spec/fixtures/projects/legacy-keys.json
spec/fixtures/projects/legacy-keys.md
spec/fixtures/projects/minimal.json
spec/fixtures/projects/minimal.md
spec/fixtures/projects/no-frontmatter.json
spec/fixtures/projects/no-frontmatter.md
spec/fixtures/projects/unknown-keys.json
spec/fixtures/projects/unknown-keys.md
spec/fixtures/tasks/attachments-json-string.json
spec/fixtures/tasks/attachments-json-string.md
spec/fixtures/tasks/body-with-rules.json
spec/fixtures/tasks/body-with-rules.md
spec/fixtures/tasks/color-hex.json
spec/fixtures/tasks/color-hex.md
spec/fixtures/tasks/color-name.json
spec/fixtures/tasks/color-name.md
spec/fixtures/tasks/due-datetime-trimmed.json
spec/fixtures/tasks/due-datetime-trimmed.md
spec/fixtures/tasks/due-keyword-camelcase.json
spec/fixtures/tasks/due-keyword-camelcase.md
spec/fixtures/tasks/due-keyword-moves-to-planned.json
spec/fixtures/tasks/due-keyword-moves-to-planned.md
spec/fixtures/tasks/empty-frontmatter.json
spec/fixtures/tasks/empty-frontmatter.md
spec/fixtures/tasks/full.json
spec/fixtures/tasks/full.md
spec/fixtures/tasks/id-from-frontmatter.json
spec/fixtures/tasks/id-from-frontmatter.md
spec/fixtures/tasks/invalid-values-dropped.json
spec/fixtures/tasks/invalid-values-dropped.md
spec/fixtures/tasks/invalid-yaml.json
spec/fixtures/tasks/invalid-yaml.md
spec/fixtures/tasks/legacy-keys.json
spec/fixtures/tasks/legacy-keys.md
spec/fixtures/tasks/minimal.json
spec/fixtures/tasks/minimal.md
spec/fixtures/tasks/no-frontmatter.json
spec/fixtures/tasks/no-frontmatter.md
spec/fixtures/tasks/planning-keywords.json
spec/fixtures/tasks/planning-keywords.md
spec/fixtures/tasks/position-string.json
spec/fixtures/tasks/position-string.md
spec/fixtures/tasks/priority-case.json
spec/fixtures/tasks/priority-case.md
spec/fixtures/tasks/status-case-preserved.json
spec/fixtures/tasks/status-case-preserved.md
spec/fixtures/tasks/tags-as-string.json
spec/fixtures/tasks/tags-as-string.md
spec/fixtures/tasks/tags-normalized.json
spec/fixtures/tasks/tags-normalized.md
spec/fixtures/tasks/unicode.json
spec/fixtures/tasks/unicode.md
spec/fixtures/tasks/unknown-keys.json
spec/fixtures/tasks/unknown-keys.md
src/jotter/__init__.py
src/jotter/__main__.py
src/jotter/_version.py
src/jotter/app.py
src/jotter/config.py
src/jotter/logging_setup.py
src/jotter/main.py
src/jotter/mcp_server.py
src/jotter/dist/favicon.svg
src/jotter/dist/index.html
src/jotter/dist/manifest.json
src/jotter/dist/pwa-192.png
src/jotter/dist/pwa-512.png
src/jotter/dist/sw.js
src/jotter/dist/assets/BoardView-CrsK5WhC.js
src/jotter/dist/assets/CanvasView-BPSKZ7uZ.css
src/jotter/dist/assets/CanvasView-utPNpybh.js
src/jotter/dist/assets/GenericColumn-CFj2RyXH.css
src/jotter/dist/assets/GenericColumn-D8ohTmg4.js
src/jotter/dist/assets/HomeView-BtuNehzJ.js
src/jotter/dist/assets/HomeView-C96moniu.css
src/jotter/dist/assets/ListView-BM4tdHIF.js
src/jotter/dist/assets/MarkdownEditor-Dw1c_PRw.css
src/jotter/dist/assets/MarkdownEditor-ImzXM1aj.js
src/jotter/dist/assets/MatrixView-D28Cpfo5.js
src/jotter/dist/assets/MatrixView-KELVqO_3.css
src/jotter/dist/assets/ReviewView-DXsVYsw4.js
src/jotter/dist/assets/SettingsView-TV4eaR5u.js
src/jotter/dist/assets/TagView-3EJeRZH9.js
src/jotter/dist/assets/TaskCard-B4UbmHJP.js
src/jotter/dist/assets/TaskCard-Do2NLdux.css
src/jotter/dist/assets/TaskDetailModal-C5GdD5v-.css
src/jotter/dist/assets/TaskDetailModal-DGxCvG4q.js
src/jotter/dist/assets/TimeView-tt2Fxv3i.js
src/jotter/dist/assets/TriageView-BQKcM8vb.css
src/jotter/dist/assets/TriageView-CRIniTC9.js
src/jotter/dist/assets/dist-D6cuYCbo.js
src/jotter/dist/assets/index-B8WTMxIT.js
src/jotter/dist/assets/index-D6fOnNgE.css
src/jotter/dist/assets/inter-cyrillic-ext-wght-italic-B5xAaiFk.woff2
src/jotter/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2
src/jotter/dist/assets/inter-cyrillic-wght-italic-DzZdc28x.woff2
src/jotter/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2
src/jotter/dist/assets/inter-greek-ext-wght-italic-DcOpz6Lw.woff2
src/jotter/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2
src/jotter/dist/assets/inter-greek-wght-italic-CILZdfAp.woff2
src/jotter/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2
src/jotter/dist/assets/inter-latin-ext-wght-italic-0pjOp8NU.woff2
src/jotter/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2
src/jotter/dist/assets/inter-latin-wght-italic-DpCbqKDY.woff2
src/jotter/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2
src/jotter/dist/assets/inter-vietnamese-wght-italic-K3WlGtc8.woff2
src/jotter/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2
src/jotter/dist/assets/paperclip-DQ-2uqXm.js
src/jotter/dist/assets/tagStyles-3kDpyWjO.js
src/jotter/dist/assets/useBuckets-DaE2bbwR.js
src/jotter/dist/assets/useTaskMutations-hP7wVP8b.js
src/jotter/dist/assets/useToast-ZFZ-asb0.js
src/jotter/dist/assets/xlsx-CsRylhoj.js
src/jotter/features/buckets/__init__.py
src/jotter/features/buckets/domain.py
src/jotter/features/buckets/repo.py
src/jotter/features/buckets/router.py
src/jotter/features/buckets/schemas.py
src/jotter/features/buckets/service.py
src/jotter/features/canvas/__init__.py
src/jotter/features/canvas/router.py
src/jotter/features/canvas/schemas.py
src/jotter/features/canvas/service.py
src/jotter/features/projects/__init__.py
src/jotter/features/projects/domain.py
src/jotter/features/projects/manifest.py
src/jotter/features/projects/repo.py
src/jotter/features/projects/router.py
src/jotter/features/projects/schemas.py
src/jotter/features/projects/service.py
src/jotter/features/settings/__init__.py
src/jotter/features/settings/router.py
src/jotter/features/settings/schemas.py
src/jotter/features/settings/service.py
src/jotter/features/sync/__init__.py
src/jotter/features/sync/git_adapter.py
src/jotter/features/sync/router.py
src/jotter/features/sync/scheduler.py
src/jotter/features/sync/service.py
src/jotter/features/tasks/__init__.py
src/jotter/features/tasks/command_service.py
src/jotter/features/tasks/disk_repo.py
src/jotter/features/tasks/domain.py
src/jotter/features/tasks/projector.py
src/jotter/features/tasks/query_service.py
src/jotter/features/tasks/router.py
src/jotter/features/tasks/schemas.py
src/jotter/features/tasks/service.py
src/jotter/features/tasks/sqlite_repo.py
src/jotter/features/timeblock/__init__.py
src/jotter/features/timeblock/repo.py
src/jotter/features/timeblock/router.py
src/jotter/features/timeblock/schemas.py
src/jotter/features/timeblock/service.py
src/jotter/features/vaults/__init__.py
src/jotter/features/vaults/domain.py
src/jotter/features/vaults/registry.py
src/jotter/features/vaults/router.py
src/jotter/features/vaults/schemas.py
src/jotter/features/vaults/service.py
src/jotter/shared/__init__.py
src/jotter/shared/db.py
src/jotter/shared/deps.py
src/jotter/shared/exceptions.py
src/jotter/shared/frontmatter.py
src/jotter/shared/fs.py
src/jotter/shared/slug.py
src/jotter/shared/ulid.py
src/jotter/shared/unset.py
src/jotter/shared/yaml_io.py
src/jotter_app.egg-info/PKG-INFO
src/jotter_app.egg-info/SOURCES.txt
src/jotter_app.egg-info/dependency_links.txt
src/jotter_app.egg-info/entry_points.txt
src/jotter_app.egg-info/requires.txt
src/jotter_app.egg-info/scm_file_list.json
src/jotter_app.egg-info/scm_version.json
src/jotter_app.egg-info/top_level.txt
tests/conftest.py
tests/test_api.py
tests/test_architecture.py
tests/test_bucket_service.py
tests/test_canvas_routes.py
tests/test_canvas_service.py
tests/test_config.py
tests/test_connection_pool.py
tests/test_domain.py
tests/test_format_conformance.py
tests/test_fs.py
tests/test_git_service.py
tests/test_logging_setup.py
tests/test_mcp_server.py
tests/test_sync_scheduler.py
tests/test_sync_service.py
tests/test_task_service.py
tests/test_timeblocks.py
tests/test_vault_service.py
web/.gitignore
web/.prettierrc
web/README.md
web/eslint.config.js
web/index.html
web/package-lock.json
web/package.json
web/playwright.config.ts
web/tsconfig.app.json
web/tsconfig.json
web/tsconfig.node.json
web/vite.config.ts
web/public/favicon.svg
web/public/manifest.json
web/public/pwa-192.png
web/public/pwa-512.png
web/public/sw.js
web/src/App.vue
web/src/api.ts
web/src/env.d.ts
web/src/main.ts
web/src/platform.ts
web/src/router.ts
web/src/style.css
web/src/test-setup.ts
web/src/types.ts
web/src/__tests__/api.spec.ts
web/src/__tests__/factories.ts
web/src/__tests__/router.spec.ts
web/src/components/layout/MainLayout.vue
web/src/components/layout/MobileNavBar.vue
web/src/components/layout/NavigationBar.vue
web/src/components/layout/ProjectLayout.vue
web/src/components/layout/ProjectSidebar.vue
web/src/components/layout/TimelineLayout.vue
web/src/components/layout/__tests__/MobileNavBar.spec.ts
web/src/components/layout/__tests__/NavigationBar.spec.ts
web/src/components/layout/__tests__/ProjectSidebar.spec.ts
web/src/components/modals/ColumnEditModal.vue
web/src/components/modals/FilterModal.vue
web/src/components/modals/ModalRegistry.vue
web/src/components/modals/MoveTasksConfirmModal.vue
web/src/components/modals/ProjectEditModal.vue
web/src/components/modals/TaskImportModal.vue
web/src/components/modals/TimeMachineModal.vue
web/src/components/modals/VaultManageModal.vue
web/src/components/modals/__tests__/ColumnEditModal.spec.ts
web/src/components/modals/__tests__/FilterModal.spec.ts
web/src/components/modals/__tests__/MoveTasksConfirmModal.spec.ts
web/src/components/modals/__tests__/ProjectEditModal.spec.ts
web/src/components/modals/__tests__/TimeMachineModal.spec.ts
web/src/components/ui/BaseModal.vue
web/src/components/ui/BulkActionBar.vue
web/src/components/ui/GenericColumn.vue
web/src/components/ui/GlobalDialog.vue
web/src/components/ui/KeywordHighlightInput.vue
web/src/components/ui/MarkdownEditor.vue
web/src/components/ui/SnapScroller.vue
web/src/components/ui/TagInput.vue
web/src/components/ui/TaskCard.vue
web/src/components/ui/ToastContainer.vue
web/src/components/ui/__tests__/BulkActionBar.spec.ts
web/src/components/ui/__tests__/TagInput.spec.ts
web/src/components/ui/__tests__/TaskCard.spec.ts
web/src/components/ui/__tests__/ToastContainer.spec.ts
web/src/components/ui/bulk/BulkActionMenu.vue
web/src/components/ui/bulk/BulkDatePicker.vue
web/src/components/ui/bulk/BulkMoreSheet.vue
web/src/components/ui/bulk/BulkTagMenu.vue
web/src/components/ui/bulk/types.ts
web/src/components/ui/bulk/__tests__/BulkDatePicker.spec.ts
web/src/components/ui/bulk/__tests__/BulkMoreSheet.spec.ts
web/src/components/ui/task-card/ChecklistProgress.vue
web/src/components/ui/task-card/TaskCardChecklist.vue
web/src/components/ui/task-card/TaskCardFooter.vue
web/src/components/views/BoardView.vue
web/src/components/views/HomeView.vue
web/src/components/views/ListView.vue
web/src/components/views/MatrixView.vue
web/src/components/views/ReviewView.vue
web/src/components/views/TagView.vue
web/src/components/views/TimeView.vue
web/src/components/views/__tests__/ReviewView.spec.ts
web/src/composables/useBoardNavigation.ts
web/src/composables/useBuckets.ts
web/src/composables/useDialog.ts
web/src/composables/useDragSelect.ts
web/src/composables/useFileDrop.ts
web/src/composables/useI18n.ts
web/src/composables/useKeyboardShortcuts.ts
web/src/composables/useLongPress.ts
web/src/composables/useProjects.ts
web/src/composables/useSpeechRecognition.ts
web/src/composables/useTaskAutocomplete.ts
web/src/composables/useTaskExport.ts
web/src/composables/useTaskFilters.ts
web/src/composables/useTaskMutations.ts
web/src/composables/useTaskSelection.ts
web/src/composables/useToast.ts
web/src/composables/__tests__/useBoardNavigation.spec.ts
web/src/composables/__tests__/useBuckets.spec.ts
web/src/composables/__tests__/useDialog.spec.ts
web/src/composables/__tests__/useFileDrop.spec.ts
web/src/composables/__tests__/useI18n.spec.ts
web/src/composables/__tests__/useKeyboardShortcuts.spec.ts
web/src/composables/__tests__/useLongPress.spec.ts
web/src/composables/__tests__/useSpeechRecognition.spec.ts
web/src/composables/__tests__/useTaskMutations.spec.ts
web/src/features/canvas/components/CanvasEdge.vue
web/src/features/canvas/components/CanvasSidebar.vue
web/src/features/canvas/components/CanvasToolbar.vue
web/src/features/canvas/components/CanvasView.vue
web/src/features/canvas/components/GroupNode.vue
web/src/features/canvas/components/TaskNode.vue
web/src/features/canvas/components/TextNode.vue
web/src/features/canvas/constants/canvasColors.ts
web/src/features/canvas/stores/canvas.ts
web/src/features/canvas/stores/__tests__/canvas.spec.ts
web/src/features/settings/components/GeneralSettings.vue
web/src/features/settings/components/LanguageSettings.vue
web/src/features/settings/components/SettingsView.vue
web/src/features/settings/components/SystemInfoSettings.vue
web/src/features/settings/components/TagColorSettings.vue
web/src/features/settings/components/ThemeSettings.vue
web/src/features/settings/components/TimeblockSettings.vue
web/src/features/task-editor/components/TaskAttachments.vue
web/src/features/task-editor/components/TaskChecklist.vue
web/src/features/task-editor/components/TaskCreateModal.vue
web/src/features/task-editor/components/TaskDetailFooter.vue
web/src/features/task-editor/components/TaskDetailModal.vue
web/src/features/task-editor/components/TaskDetailView.vue
web/src/features/task-editor/components/TaskEditFields.vue
web/src/features/task-editor/components/TaskImageLightbox.vue
web/src/features/task-editor/components/__tests__/TaskCreateModal.spec.ts
web/src/features/task-editor/components/__tests__/TaskDetailModal.spec.ts
web/src/features/task-editor/composables/useTaskDetailActions.ts
web/src/features/task-editor/composables/useTaskEditor.ts
web/src/features/task-editor/composables/__tests__/useTaskDetailActions.spec.ts
web/src/features/task-import/components/StepColumnMapper.vue
web/src/features/task-import/components/StepProgress.vue
web/src/features/task-import/components/StepRowPreview.vue
web/src/features/task-import/components/StepSummary.vue
web/src/features/task-import/components/StepUpload.vue
web/src/features/task-import/composables/useImportWizard.ts
web/src/features/task-import/composables/__tests__/useImportWizard.spec.ts
web/src/features/task-triage/components/TriageBucketPicker.vue
web/src/features/task-triage/components/TriageCard.vue
web/src/features/task-triage/components/TriageShortcutsPanel.vue
web/src/features/task-triage/components/TriageSummary.vue
web/src/features/task-triage/components/TriageView.vue
web/src/features/task-triage/components/triageAnimations.css
web/src/features/task-triage/components/__tests__/TriageParts.spec.ts
web/src/features/task-triage/components/__tests__/TriageView.spec.ts
web/src/features/task-triage/composables/useTriageSession.ts
web/src/features/task-triage/composables/__tests__/useTriageSession.spec.ts
web/src/features/task-triage/constants/triageShortcuts.ts
web/src/features/task-triage/utils/triageSort.ts
web/src/features/task-triage/utils/__tests__/triageSort.spec.ts
web/src/features/timeblock/components/TimeblockCard.vue
web/src/features/timeblock/components/TimeblockDayNav.vue
web/src/features/timeblock/components/TimeblockEditModal.vue
web/src/features/timeblock/components/TimeblockSidebar.vue
web/src/features/timeblock/components/__tests__/TimeblockEditModal.spec.ts
web/src/features/timeblock/components/__tests__/TimeblockSidebar.spec.ts
web/src/features/timeblock/composables/useActiveDay.ts
web/src/features/timeblock/composables/useCurrentTime.ts
web/src/features/timeblock/composables/useTimeblockDrag.ts
web/src/features/timeblock/composables/useTimeblockTasks.ts
web/src/features/timeblock/composables/__tests__/useActiveDay.spec.ts
web/src/features/timeblock/composables/__tests__/useTimeblockDrag.spec.ts
web/src/features/timeblock/stores/timeblock.ts
web/src/features/timeblock/stores/__tests__/timeblock.spec.ts
web/src/features/timeblock/utils/timeGrid.ts
web/src/features/timeblock/utils/__tests__/timeGrid.spec.ts
web/src/locales/de.ts
web/src/locales/en.ts
web/src/locales/__tests__/i18nAudit.spec.ts
web/src/storage/connectionState.ts
web/src/storage/demoAdapter.ts
web/src/storage/httpAdapter.ts
web/src/storage/index.ts
web/src/storage/types.ts
web/src/storage/__tests__/demoAdapter.spec.ts
web/src/storage/__tests__/httpAdapter.spec.ts
web/src/stores/modal.ts
web/src/stores/project.ts
web/src/stores/selection.ts
web/src/stores/settings.ts
web/src/stores/toast.ts
web/src/stores/ui.ts
web/src/stores/vault.ts
web/src/stores/__tests__/modal.spec.ts
web/src/stores/__tests__/selection.spec.ts
web/src/stores/__tests__/settings.spec.ts
web/src/stores/__tests__/toast.spec.ts
web/src/stores/__tests__/ui.spec.ts
web/src/utils/broadcast.ts
web/src/utils/checklist.ts
web/src/utils/constants.ts
web/src/utils/dsl.ts
web/src/utils/effects.ts
web/src/utils/markdown.ts
web/src/utils/tagStyles.ts
web/src/utils/tagUtils.ts
web/src/utils/taskColors.ts
web/src/utils/__tests__/broadcast.spec.ts
web/src/utils/__tests__/checklist.spec.ts
web/src/utils/__tests__/dsl.spec.ts
web/src/utils/__tests__/effects.spec.ts
web/src/utils/__tests__/markdown.spec.ts
web/src/utils/__tests__/tagStyles.spec.ts
web/src/utils/__tests__/tagUtils.spec.ts
web/src/utils/__tests__/titleParser.spec.ts
web/tests/e2e/kanban.spec.ts