.codecov.yml
.gitignore
CONTRIBUTING.md
LICENSE.md
README.md
jotter.spec
package-lock.json
package.json
pyproject.toml
run.py
.github/dependabot.yml
.github/workflows/ci.yml
.github/workflows/pages.yml
.github/workflows/release.yml
docs/index.md
docs/.vitepress/config.mts
docs/assets/icon.ico
docs/assets/icon.png
docs/assets/jotter.sample.yaml
docs/assets/screenshot.png
docs/de/index.md
docs/de/developer/api.md
docs/de/developer/architecture.md
docs/de/installation/development.md
docs/de/installation/precompiled.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/pomodoro.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/installation/development.md
docs/installation/precompiled.md
docs/public/logo.png
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/pomodoro.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
frontend/.gitignore
frontend/.prettierrc
frontend/README.md
frontend/eslint.config.js
frontend/index.html
frontend/package-lock.json
frontend/package.json
frontend/playwright.config.ts
frontend/tsconfig.app.json
frontend/tsconfig.json
frontend/tsconfig.node.json
frontend/vite.config.ts
frontend/public/favicon.svg
frontend/public/manifest.json
frontend/public/pwa-192.png
frontend/public/pwa-512.png
frontend/public/sw.js
frontend/src/App.vue
frontend/src/api.demo.ts
frontend/src/api.ts
frontend/src/main.ts
frontend/src/router.ts
frontend/src/style.css
frontend/src/test-setup.ts
frontend/src/types.ts
frontend/src/__tests__/api.spec.ts
frontend/src/__tests__/factories.ts
frontend/src/components/layout/MainLayout.vue
frontend/src/components/layout/NavigationBar.vue
frontend/src/components/layout/ProjectLayout.vue
frontend/src/components/layout/ProjectSidebar.vue
frontend/src/components/layout/TimeblockSidebar.vue
frontend/src/components/layout/TimelineLayout.vue
frontend/src/components/layout/__tests__/NavigationBar.spec.ts
frontend/src/components/layout/__tests__/ProjectSidebar.spec.ts
frontend/src/components/layout/__tests__/TimeblockSidebar.spec.ts
frontend/src/components/modals/ColumnEditModal.vue
frontend/src/components/modals/FilterModal.vue
frontend/src/components/modals/ModalRegistry.vue
frontend/src/components/modals/MoveTasksConfirmModal.vue
frontend/src/components/modals/ProjectEditModal.vue
frontend/src/components/modals/TaskCreateModal.vue
frontend/src/components/modals/TaskDetailModal.vue
frontend/src/components/modals/TaskImportModal.vue
frontend/src/components/modals/TimeMachineModal.vue
frontend/src/components/modals/TimeblockEditModal.vue
frontend/src/components/modals/__tests__/ColumnEditModal.spec.ts
frontend/src/components/modals/__tests__/FilterModal.spec.ts
frontend/src/components/modals/__tests__/MoveTasksConfirmModal.spec.ts
frontend/src/components/modals/__tests__/ProjectEditModal.spec.ts
frontend/src/components/modals/__tests__/TaskCreateModal.spec.ts
frontend/src/components/modals/__tests__/TaskDetailModal.spec.ts
frontend/src/components/modals/__tests__/TimeMachineModal.spec.ts
frontend/src/components/modals/__tests__/TimeblockEditModal.spec.ts
frontend/src/components/ui/BaseModal.vue
frontend/src/components/ui/BulkActionBar.vue
frontend/src/components/ui/GenericColumn.vue
frontend/src/components/ui/GlobalDialog.vue
frontend/src/components/ui/KeywordHighlightInput.vue
frontend/src/components/ui/MarkdownEditor.vue
frontend/src/components/ui/PomodoroBar.vue
frontend/src/components/ui/TagInput.vue
frontend/src/components/ui/TaskCard.vue
frontend/src/components/ui/ToastContainer.vue
frontend/src/components/ui/__tests__/BulkActionBar.spec.ts
frontend/src/components/ui/__tests__/PomodoroBar.spec.ts
frontend/src/components/ui/__tests__/TagInput.spec.ts
frontend/src/components/ui/__tests__/TaskCard.spec.ts
frontend/src/components/ui/__tests__/ToastContainer.spec.ts
frontend/src/components/views/BoardView.vue
frontend/src/components/views/HomeView.vue
frontend/src/components/views/ListView.vue
frontend/src/components/views/MatrixView.vue
frontend/src/components/views/ReviewView.vue
frontend/src/components/views/SettingsView.vue
frontend/src/components/views/TagView.vue
frontend/src/components/views/TimeView.vue
frontend/src/components/views/TriageView.vue
frontend/src/components/views/__tests__/ReviewView.spec.ts
frontend/src/components/views/__tests__/TriageView.spec.ts
frontend/src/composables/useBoardNavigation.ts
frontend/src/composables/useBuckets.ts
frontend/src/composables/useDialog.ts
frontend/src/composables/useDragSelect.ts
frontend/src/composables/useI18n.ts
frontend/src/composables/useKeyboardShortcuts.ts
frontend/src/composables/useProjects.ts
frontend/src/composables/useSpeechRecognition.ts
frontend/src/composables/useTaskAutocomplete.ts
frontend/src/composables/useTaskExport.ts
frontend/src/composables/useTaskFilters.ts
frontend/src/composables/useTaskMutations.ts
frontend/src/composables/useTaskSelection.ts
frontend/src/composables/useToast.ts
frontend/src/composables/__tests__/useBoardNavigation.spec.ts
frontend/src/composables/__tests__/useDialog.spec.ts
frontend/src/composables/__tests__/useI18n.spec.ts
frontend/src/composables/__tests__/useKeyboardShortcuts.spec.ts
frontend/src/composables/__tests__/useSpeechRecognition.spec.ts
frontend/src/composables/__tests__/useTaskMutations.spec.ts
frontend/src/features/task-editor/components/TaskAttachments.vue
frontend/src/features/task-editor/components/TaskChecklist.vue
frontend/src/features/task-editor/components/TaskEditFields.vue
frontend/src/features/task-editor/components/TaskImageLightbox.vue
frontend/src/features/task-editor/composables/useTaskEditor.ts
frontend/src/features/task-import/components/StepColumnMapper.vue
frontend/src/features/task-import/components/StepProgress.vue
frontend/src/features/task-import/components/StepRowPreview.vue
frontend/src/features/task-import/components/StepSummary.vue
frontend/src/features/task-import/components/StepUpload.vue
frontend/src/features/task-import/composables/useImportWizard.ts
frontend/src/features/task-import/composables/__tests__/useImportWizard.spec.ts
frontend/src/features/task-triage/components/TriageCard.vue
frontend/src/locales/de.ts
frontend/src/locales/en.ts
frontend/src/stores/modal.ts
frontend/src/stores/pomodoro.ts
frontend/src/stores/project.ts
frontend/src/stores/selection.ts
frontend/src/stores/settings.ts
frontend/src/stores/timeblock.ts
frontend/src/stores/toast.ts
frontend/src/stores/ui.ts
frontend/src/stores/__tests__/modal.spec.ts
frontend/src/stores/__tests__/pomodoro.spec.ts
frontend/src/stores/__tests__/selection.spec.ts
frontend/src/stores/__tests__/settings.spec.ts
frontend/src/stores/__tests__/timeblock.spec.ts
frontend/src/stores/__tests__/toast.spec.ts
frontend/src/stores/__tests__/ui.spec.ts
frontend/src/utils/constants.ts
frontend/src/utils/dsl.ts
frontend/src/utils/effects.ts
frontend/src/utils/markdown.ts
frontend/src/utils/sound.ts
frontend/src/utils/titleParser.ts
frontend/src/utils/__tests__/dsl.spec.ts
frontend/src/utils/__tests__/effects.spec.ts
frontend/src/utils/__tests__/markdown.spec.ts
frontend/src/utils/__tests__/titleParser.spec.ts
frontend/tests/e2e/kanban.spec.ts
scripts/combine-coverage.js
scripts/loc_history.py
scripts/plot_loc.py
src/jotter/__init__.py
src/jotter/__main__.py
src/jotter/_version.py
src/jotter/app.py
src/jotter/config.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-bu47bbRm.js
src/jotter/dist/assets/GenericColumn-C7C0Yicm.css
src/jotter/dist/assets/GenericColumn-CmiEvMG9.js
src/jotter/dist/assets/HomeView-C-Sm5ybA.js
src/jotter/dist/assets/HomeView-DhflHyXt.css
src/jotter/dist/assets/ListView-CFGXZB6C.js
src/jotter/dist/assets/MarkdownEditor-BmWngNwZ.js
src/jotter/dist/assets/MarkdownEditor-Dw1c_PRw.css
src/jotter/dist/assets/MatrixView-J-GCG10D.js
src/jotter/dist/assets/MatrixView-KELVqO_3.css
src/jotter/dist/assets/ReviewView-9nThAaEq.js
src/jotter/dist/assets/SettingsView-D0pUTv50.js
src/jotter/dist/assets/TagView-6p-FN9Na.js
src/jotter/dist/assets/TaskCard-D7lUoCOU.js
src/jotter/dist/assets/TaskCard-DkCRPRZJ.css
src/jotter/dist/assets/TaskDetailModal-B9sQK_dw.js
src/jotter/dist/assets/TaskDetailModal-DM7nQldC.css
src/jotter/dist/assets/TimeView-BCdQD7lK.js
src/jotter/dist/assets/TriageView-CFurWdNn.css
src/jotter/dist/assets/TriageView-D1sA-6do.js
src/jotter/dist/assets/chevron-down-CW1LGeVw.js
src/jotter/dist/assets/dist-BwhadnA-.js
src/jotter/dist/assets/index-Ce-IhPNT.js
src/jotter/dist/assets/index-Dmzya5TI.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/marked.esm-iQpT2Gzx.js
src/jotter/dist/assets/paperclip-CbEle_rK.js
src/jotter/dist/assets/useBuckets-Couo5hWw.js
src/jotter/dist/assets/useTaskMutations-D6bbMpAQ.js
src/jotter/dist/assets/useToast-CB-4zK7b.js
src/jotter/dist/assets/xlsx-yElxRXxa.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/projects/__init__.py
src/jotter/features/projects/domain.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/service.py
src/jotter/features/tasks/__init__.py
src/jotter/features/tasks/disk_repo.py
src/jotter/features/tasks/domain.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/shared/__init__.py
src/jotter/shared/db.py
src/jotter/shared/deps.py
src/jotter/shared/exceptions.py
src/jotter/shared/slug.py
src/jotter/shared/ulid.py
src/jotter/shared/value_objects.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_bucket_service.py
tests/test_config.py
tests/test_domain.py
tests/test_git_service.py
tests/test_mcp_server.py
tests/test_sync_service.py
tests/test_task_service.py
tests/test_timeblocks.py