.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
.husky/pre-commit
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/capacitor.config.ts
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/android/.gitignore
frontend/android/build.gradle
frontend/android/capacitor.settings.gradle
frontend/android/gradle.properties
frontend/android/gradlew
frontend/android/gradlew.bat
frontend/android/settings.gradle
frontend/android/variables.gradle
frontend/android/app/.gitignore
frontend/android/app/build.gradle
frontend/android/app/capacitor.build.gradle
frontend/android/app/proguard-rules.pro
frontend/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java
frontend/android/app/src/main/AndroidManifest.xml
frontend/android/app/src/main/java/io/github/simon123h/jotter/MainActivity.java
frontend/android/app/src/main/java/io/github/simon123h/jotter/StoragePermissionPlugin.java
frontend/android/app/src/main/res/drawable/ic_launcher_background.xml
frontend/android/app/src/main/res/drawable/splash.png
frontend/android/app/src/main/res/drawable-land-hdpi/splash.png
frontend/android/app/src/main/res/drawable-land-mdpi/splash.png
frontend/android/app/src/main/res/drawable-land-xhdpi/splash.png
frontend/android/app/src/main/res/drawable-land-xxhdpi/splash.png
frontend/android/app/src/main/res/drawable-land-xxxhdpi/splash.png
frontend/android/app/src/main/res/drawable-port-hdpi/splash.png
frontend/android/app/src/main/res/drawable-port-mdpi/splash.png
frontend/android/app/src/main/res/drawable-port-xhdpi/splash.png
frontend/android/app/src/main/res/drawable-port-xxhdpi/splash.png
frontend/android/app/src/main/res/drawable-port-xxxhdpi/splash.png
frontend/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
frontend/android/app/src/main/res/layout/activity_main.xml
frontend/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
frontend/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
frontend/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
frontend/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
frontend/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
frontend/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
frontend/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
frontend/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
frontend/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
frontend/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
frontend/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
frontend/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
frontend/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
frontend/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
frontend/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
frontend/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
frontend/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
frontend/android/app/src/main/res/values/ic_launcher_background.xml
frontend/android/app/src/main/res/values/strings.xml
frontend/android/app/src/main/res/values/styles.xml
frontend/android/app/src/main/res/xml/file_paths.xml
frontend/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java
frontend/android/gradle/wrapper/gradle-wrapper.jar
frontend/android/gradle/wrapper/gradle-wrapper.properties
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/env.d.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/MobileNavBar.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__/MobileNavBar.spec.ts
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/useAndroidBackButton.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__/useBuckets.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/storage/capacitorFsAdapter.ts
frontend/src/storage/connectionState.ts
frontend/src/storage/dexieDb.ts
frontend/src/storage/httpAdapter.ts
frontend/src/storage/index.ts
frontend/src/storage/markdownParser.ts
frontend/src/storage/preferencesStorage.ts
frontend/src/storage/storagePermission.ts
frontend/src/storage/types.ts
frontend/src/storage/__tests__/capacitorFsAdapter.spec.ts
frontend/src/storage/__tests__/httpAdapter.spec.ts
frontend/src/storage/__tests__/markdownParser.spec.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/haptics.ts
frontend/src/utils/markdown.ts
frontend/src/utils/sound.ts
frontend/src/utils/tagUtils.ts
frontend/src/utils/titleParser.ts
frontend/src/utils/__tests__/dsl.spec.ts
frontend/src/utils/__tests__/effects.spec.ts
frontend/src/utils/__tests__/haptics.spec.ts
frontend/src/utils/__tests__/markdown.spec.ts
frontend/src/utils/__tests__/tagUtils.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-Cnm0MMSe.js
src/jotter/dist/assets/GenericColumn-DLlFAy9N.css
src/jotter/dist/assets/GenericColumn-DM-9pHxn.js
src/jotter/dist/assets/HomeView-BXfGU6C0.css
src/jotter/dist/assets/HomeView-CnrbJbdI.js
src/jotter/dist/assets/ListView-BLR_ssTG.js
src/jotter/dist/assets/MarkdownEditor-D_NkIydW.js
src/jotter/dist/assets/MarkdownEditor-Dw1c_PRw.css
src/jotter/dist/assets/MatrixView-BOwLIMX8.js
src/jotter/dist/assets/MatrixView-KELVqO_3.css
src/jotter/dist/assets/ReviewView-Cs2UD4qo.js
src/jotter/dist/assets/SettingsView-m__N1JRr.js
src/jotter/dist/assets/TagView-Cq2YekW5.js
src/jotter/dist/assets/TaskCard-CpxY5h0c.css
src/jotter/dist/assets/TaskCard-D4v-nuEE.js
src/jotter/dist/assets/TaskDetailModal-C5GdD5v-.css
src/jotter/dist/assets/TaskDetailModal-CCUQtkOz.js
src/jotter/dist/assets/TimeView-CEb-QC1U.js
src/jotter/dist/assets/TriageView-CFurWdNn.css
src/jotter/dist/assets/TriageView-CX299Rap.js
src/jotter/dist/assets/chevron-down-2_lQ53Gn.js
src/jotter/dist/assets/definitions-DlpntO5o.js
src/jotter/dist/assets/dist-B-fBiTU6.js
src/jotter/dist/assets/dist-Bn4M1Ka-.js
src/jotter/dist/assets/index-72lzU4Zf.js
src/jotter/dist/assets/index-BpBH6du7.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-BhJHqSlm.js
src/jotter/dist/assets/paperclip-Dm-ji8CO.js
src/jotter/dist/assets/useBuckets-ftU_G2EG.js
src/jotter/dist/assets/useTaskMutations-BtMVYrbM.js
src/jotter/dist/assets/useToast-CZVIjhn9.js
src/jotter/dist/assets/web-8yTs19zr.js
src/jotter/dist/assets/web-B4XiUPid.js
src/jotter/dist/assets/web-DL1xB-YI.js
src/jotter/dist/assets/web-SN-aL2rb.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/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/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