.codecov.yml
.gitignore
.nvmrc
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
apps/mobile/.prettierrc
apps/mobile/README.md
apps/mobile/capacitor.config.ts
apps/mobile/eslint.config.js
apps/mobile/index.html
apps/mobile/package-lock.json
apps/mobile/package.json
apps/mobile/tsconfig.app.json
apps/mobile/tsconfig.json
apps/mobile/tsconfig.node.json
apps/mobile/vite.config.ts
apps/mobile/android/.gitignore
apps/mobile/android/build.gradle
apps/mobile/android/capacitor.settings.gradle
apps/mobile/android/gradle.properties
apps/mobile/android/gradlew
apps/mobile/android/gradlew.bat
apps/mobile/android/settings.gradle
apps/mobile/android/variables.gradle
apps/mobile/android/app/.gitignore
apps/mobile/android/app/build.gradle
apps/mobile/android/app/capacitor.build.gradle
apps/mobile/android/app/proguard-rules.pro
apps/mobile/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java
apps/mobile/android/app/src/main/AndroidManifest.xml
apps/mobile/android/app/src/main/java/io/github/simon123h/jotter_lite/MainActivity.java
apps/mobile/android/app/src/main/java/io/github/simon123h/jotter_lite/StoragePermissionPlugin.java
apps/mobile/android/app/src/main/res/drawable/ic_launcher_background.xml
apps/mobile/android/app/src/main/res/drawable/ic_shortcut_add.xml
apps/mobile/android/app/src/main/res/drawable/ic_shortcut_planning.xml
apps/mobile/android/app/src/main/res/drawable/ic_shortcut_search.xml
apps/mobile/android/app/src/main/res/drawable/splash.png
apps/mobile/android/app/src/main/res/drawable-land-hdpi/splash.png
apps/mobile/android/app/src/main/res/drawable-land-mdpi/splash.png
apps/mobile/android/app/src/main/res/drawable-land-xhdpi/splash.png
apps/mobile/android/app/src/main/res/drawable-land-xxhdpi/splash.png
apps/mobile/android/app/src/main/res/drawable-land-xxxhdpi/splash.png
apps/mobile/android/app/src/main/res/drawable-port-hdpi/splash.png
apps/mobile/android/app/src/main/res/drawable-port-mdpi/splash.png
apps/mobile/android/app/src/main/res/drawable-port-xhdpi/splash.png
apps/mobile/android/app/src/main/res/drawable-port-xxhdpi/splash.png
apps/mobile/android/app/src/main/res/drawable-port-xxxhdpi/splash.png
apps/mobile/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
apps/mobile/android/app/src/main/res/layout/activity_main.xml
apps/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
apps/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
apps/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
apps/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
apps/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
apps/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
apps/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
apps/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
apps/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
apps/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
apps/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
apps/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
apps/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
apps/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
apps/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
apps/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
apps/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
apps/mobile/android/app/src/main/res/values/ic_launcher_background.xml
apps/mobile/android/app/src/main/res/values/strings.xml
apps/mobile/android/app/src/main/res/values/styles.xml
apps/mobile/android/app/src/main/res/values-de/strings.xml
apps/mobile/android/app/src/main/res/xml/file_paths.xml
apps/mobile/android/app/src/main/res/xml/shortcuts.xml
apps/mobile/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java
apps/mobile/android/gradle/wrapper/gradle-wrapper.jar
apps/mobile/android/gradle/wrapper/gradle-wrapper.properties
apps/mobile/src/App.spec.ts
apps/mobile/src/App.vue
apps/mobile/src/dates.ts
apps/mobile/src/devServer.spec.ts
apps/mobile/src/env.d.ts
apps/mobile/src/i18n.ts
apps/mobile/src/main.ts
apps/mobile/src/markdown.spec.ts
apps/mobile/src/markdown.ts
apps/mobile/src/planned.ts
apps/mobile/src/reminders.spec.ts
apps/mobile/src/reminders.ts
apps/mobile/src/repeat.ts
apps/mobile/src/shortcuts.ts
apps/mobile/src/style.css
apps/mobile/src/taskColors.ts
apps/mobile/src/test-setup.ts
apps/mobile/src/themes.spec.ts
apps/mobile/src/components/AppBar.vue
apps/mobile/src/components/BottomNav.vue
apps/mobile/src/components/BottomSheet.vue
apps/mobile/src/components/BulkMoreSheet.vue
apps/mobile/src/components/BulkToolbar.vue
apps/mobile/src/components/ColumnTabs.vue
apps/mobile/src/components/ColumnsSheet.vue
apps/mobile/src/components/FilterSheet.vue
apps/mobile/src/components/MarkdownView.vue
apps/mobile/src/components/MoveSheet.vue
apps/mobile/src/components/NavDrawer.vue
apps/mobile/src/components/PlannedSheet.vue
apps/mobile/src/components/PrioritySheet.vue
apps/mobile/src/components/ProjectPickerSheet.vue
apps/mobile/src/components/ProjectSwitchSheet.vue
apps/mobile/src/components/ProjectsSheet.vue
apps/mobile/src/components/QuickAddSheet.vue
apps/mobile/src/components/SettingsSheet.vue
apps/mobile/src/components/TagsSheet.vue
apps/mobile/src/components/TaskRow.vue
apps/mobile/src/components/TaskSheet.vue
apps/mobile/src/components/TitleHints.vue
apps/mobile/src/components/VaultForm.vue
apps/mobile/src/components/VaultsSheet.vue
apps/mobile/src/composables/dragMath.spec.ts
apps/mobile/src/composables/dragMath.ts
apps/mobile/src/composables/useAutoRefresh.ts
apps/mobile/src/composables/useCardDrag.ts
apps/mobile/src/composables/useSmartTitle.ts
apps/mobile/src/composables/useTaskActions.ts
apps/mobile/src/data/db.ts
apps/mobile/src/data/fs.spec.ts
apps/mobile/src/data/fs.ts
apps/mobile/src/data/index.ts
apps/mobile/src/data/keyValue.ts
apps/mobile/src/data/memoryFs.ts
apps/mobile/src/data/repository.spec.ts
apps/mobile/src/data/repository.ts
apps/mobile/src/data/storagePermission.ts
apps/mobile/src/data/ulid.ts
apps/mobile/src/data/vaults.ts
apps/mobile/src/screens/BoardScreen.vue
apps/mobile/src/screens/OnboardingScreen.vue
apps/mobile/src/stores/app.ts
apps/mobile/src/stores/columns.spec.ts
apps/mobile/src/stores/columns.ts
apps/mobile/src/stores/preferences.ts
apps/mobile/src/stores/settings.ts
apps/mobile/src/stores/ui.ts
apps/web/.gitignore
apps/web/.prettierrc
apps/web/README.md
apps/web/eslint.config.js
apps/web/index.html
apps/web/package-lock.json
apps/web/package.json
apps/web/playwright.config.ts
apps/web/tsconfig.app.json
apps/web/tsconfig.json
apps/web/tsconfig.node.json
apps/web/vite.config.ts
apps/web/public/favicon.svg
apps/web/public/manifest.json
apps/web/public/pwa-192.png
apps/web/public/pwa-512.png
apps/web/public/sw.js
apps/web/src/App.vue
apps/web/src/api.ts
apps/web/src/env.d.ts
apps/web/src/main.ts
apps/web/src/platform.ts
apps/web/src/router.ts
apps/web/src/style.css
apps/web/src/test-setup.ts
apps/web/src/types.ts
apps/web/src/__tests__/api.spec.ts
apps/web/src/__tests__/factories.ts
apps/web/src/__tests__/router.spec.ts
apps/web/src/components/layout/MainLayout.vue
apps/web/src/components/layout/MobileNavBar.vue
apps/web/src/components/layout/NavigationBar.vue
apps/web/src/components/layout/ProjectLayout.vue
apps/web/src/components/layout/ProjectSidebar.vue
apps/web/src/components/layout/TimelineLayout.vue
apps/web/src/components/layout/__tests__/MobileNavBar.spec.ts
apps/web/src/components/layout/__tests__/NavigationBar.spec.ts
apps/web/src/components/layout/__tests__/ProjectSidebar.spec.ts
apps/web/src/components/modals/ColumnEditModal.vue
apps/web/src/components/modals/FilterModal.vue
apps/web/src/components/modals/ModalRegistry.vue
apps/web/src/components/modals/MoveTasksConfirmModal.vue
apps/web/src/components/modals/ProjectEditModal.vue
apps/web/src/components/modals/TaskImportModal.vue
apps/web/src/components/modals/TimeMachineModal.vue
apps/web/src/components/modals/VaultManageModal.vue
apps/web/src/components/modals/__tests__/ColumnEditModal.spec.ts
apps/web/src/components/modals/__tests__/FilterModal.spec.ts
apps/web/src/components/modals/__tests__/MoveTasksConfirmModal.spec.ts
apps/web/src/components/modals/__tests__/ProjectEditModal.spec.ts
apps/web/src/components/modals/__tests__/TimeMachineModal.spec.ts
apps/web/src/components/ui/BaseModal.vue
apps/web/src/components/ui/BulkActionBar.vue
apps/web/src/components/ui/GenericColumn.vue
apps/web/src/components/ui/GlobalDialog.vue
apps/web/src/components/ui/KeywordHighlightInput.vue
apps/web/src/components/ui/MarkdownEditor.vue
apps/web/src/components/ui/SnapScroller.vue
apps/web/src/components/ui/TagInput.vue
apps/web/src/components/ui/TaskCard.vue
apps/web/src/components/ui/ToastContainer.vue
apps/web/src/components/ui/__tests__/BulkActionBar.spec.ts
apps/web/src/components/ui/__tests__/TagInput.spec.ts
apps/web/src/components/ui/__tests__/TaskCard.spec.ts
apps/web/src/components/ui/__tests__/ToastContainer.spec.ts
apps/web/src/components/ui/bulk/BulkActionMenu.vue
apps/web/src/components/ui/bulk/BulkDatePicker.vue
apps/web/src/components/ui/bulk/BulkMoreSheet.vue
apps/web/src/components/ui/bulk/BulkTagMenu.vue
apps/web/src/components/ui/bulk/types.ts
apps/web/src/components/ui/bulk/__tests__/BulkDatePicker.spec.ts
apps/web/src/components/ui/bulk/__tests__/BulkMoreSheet.spec.ts
apps/web/src/components/ui/task-card/ChecklistProgress.vue
apps/web/src/components/ui/task-card/TaskCardChecklist.vue
apps/web/src/components/ui/task-card/TaskCardFooter.vue
apps/web/src/components/views/BoardView.vue
apps/web/src/components/views/HomeView.vue
apps/web/src/components/views/ListView.vue
apps/web/src/components/views/MatrixView.vue
apps/web/src/components/views/ReviewView.vue
apps/web/src/components/views/TagView.vue
apps/web/src/components/views/TimeView.vue
apps/web/src/components/views/__tests__/ReviewView.spec.ts
apps/web/src/composables/useBoardNavigation.ts
apps/web/src/composables/useBuckets.ts
apps/web/src/composables/useDialog.ts
apps/web/src/composables/useDragSelect.ts
apps/web/src/composables/useFileDrop.ts
apps/web/src/composables/useI18n.ts
apps/web/src/composables/useKeyboardShortcuts.ts
apps/web/src/composables/useLongPress.ts
apps/web/src/composables/useProjects.ts
apps/web/src/composables/useSpeechRecognition.ts
apps/web/src/composables/useTaskAutocomplete.ts
apps/web/src/composables/useTaskExport.ts
apps/web/src/composables/useTaskFilters.ts
apps/web/src/composables/useTaskMutations.ts
apps/web/src/composables/useTaskSelection.ts
apps/web/src/composables/useToast.ts
apps/web/src/composables/__tests__/useBoardNavigation.spec.ts
apps/web/src/composables/__tests__/useBuckets.spec.ts
apps/web/src/composables/__tests__/useDialog.spec.ts
apps/web/src/composables/__tests__/useFileDrop.spec.ts
apps/web/src/composables/__tests__/useI18n.spec.ts
apps/web/src/composables/__tests__/useKeyboardShortcuts.spec.ts
apps/web/src/composables/__tests__/useLongPress.spec.ts
apps/web/src/composables/__tests__/useSpeechRecognition.spec.ts
apps/web/src/composables/__tests__/useTaskMutations.spec.ts
apps/web/src/features/canvas/components/CanvasEdge.vue
apps/web/src/features/canvas/components/CanvasSidebar.vue
apps/web/src/features/canvas/components/CanvasToolbar.vue
apps/web/src/features/canvas/components/CanvasView.vue
apps/web/src/features/canvas/components/GroupNode.vue
apps/web/src/features/canvas/components/TaskNode.vue
apps/web/src/features/canvas/components/TextNode.vue
apps/web/src/features/canvas/constants/canvasColors.ts
apps/web/src/features/canvas/stores/canvas.ts
apps/web/src/features/canvas/stores/__tests__/canvas.spec.ts
apps/web/src/features/settings/components/GeneralSettings.vue
apps/web/src/features/settings/components/LanguageSettings.vue
apps/web/src/features/settings/components/SettingsView.vue
apps/web/src/features/settings/components/SystemInfoSettings.vue
apps/web/src/features/settings/components/TagColorSettings.vue
apps/web/src/features/settings/components/ThemeSettings.vue
apps/web/src/features/settings/components/TimeblockSettings.vue
apps/web/src/features/task-editor/components/TaskAttachments.vue
apps/web/src/features/task-editor/components/TaskChecklist.vue
apps/web/src/features/task-editor/components/TaskCreateModal.vue
apps/web/src/features/task-editor/components/TaskDetailFooter.vue
apps/web/src/features/task-editor/components/TaskDetailModal.vue
apps/web/src/features/task-editor/components/TaskDetailView.vue
apps/web/src/features/task-editor/components/TaskEditFields.vue
apps/web/src/features/task-editor/components/TaskImageLightbox.vue
apps/web/src/features/task-editor/components/__tests__/TaskCreateModal.spec.ts
apps/web/src/features/task-editor/components/__tests__/TaskDetailModal.spec.ts
apps/web/src/features/task-editor/composables/useTaskDetailActions.ts
apps/web/src/features/task-editor/composables/useTaskEditor.ts
apps/web/src/features/task-editor/composables/__tests__/useTaskDetailActions.spec.ts
apps/web/src/features/task-editor/composables/__tests__/useTaskEditor.spec.ts
apps/web/src/features/task-import/components/StepColumnMapper.vue
apps/web/src/features/task-import/components/StepProgress.vue
apps/web/src/features/task-import/components/StepRowPreview.vue
apps/web/src/features/task-import/components/StepSummary.vue
apps/web/src/features/task-import/components/StepUpload.vue
apps/web/src/features/task-import/composables/useImportWizard.ts
apps/web/src/features/task-import/composables/__tests__/useImportWizard.spec.ts
apps/web/src/features/task-triage/components/TriageBucketPicker.vue
apps/web/src/features/task-triage/components/TriageCard.vue
apps/web/src/features/task-triage/components/TriageShortcutsPanel.vue
apps/web/src/features/task-triage/components/TriageSummary.vue
apps/web/src/features/task-triage/components/TriageView.vue
apps/web/src/features/task-triage/components/triageAnimations.css
apps/web/src/features/task-triage/components/__tests__/TriageParts.spec.ts
apps/web/src/features/task-triage/components/__tests__/TriageView.spec.ts
apps/web/src/features/task-triage/composables/useTriageSession.ts
apps/web/src/features/task-triage/composables/__tests__/useTriageSession.spec.ts
apps/web/src/features/task-triage/constants/triageShortcuts.ts
apps/web/src/features/task-triage/utils/triageSort.ts
apps/web/src/features/task-triage/utils/__tests__/triageSort.spec.ts
apps/web/src/features/timeblock/components/TimeblockCard.vue
apps/web/src/features/timeblock/components/TimeblockDayNav.vue
apps/web/src/features/timeblock/components/TimeblockEditModal.vue
apps/web/src/features/timeblock/components/TimeblockSidebar.vue
apps/web/src/features/timeblock/components/__tests__/TimeblockEditModal.spec.ts
apps/web/src/features/timeblock/components/__tests__/TimeblockSidebar.spec.ts
apps/web/src/features/timeblock/composables/useActiveDay.ts
apps/web/src/features/timeblock/composables/useCurrentTime.ts
apps/web/src/features/timeblock/composables/useTimeblockDrag.ts
apps/web/src/features/timeblock/composables/useTimeblockTasks.ts
apps/web/src/features/timeblock/composables/__tests__/useActiveDay.spec.ts
apps/web/src/features/timeblock/composables/__tests__/useTimeblockDrag.spec.ts
apps/web/src/features/timeblock/stores/timeblock.ts
apps/web/src/features/timeblock/stores/__tests__/timeblock.spec.ts
apps/web/src/features/timeblock/utils/timeGrid.ts
apps/web/src/features/timeblock/utils/__tests__/timeGrid.spec.ts
apps/web/src/locales/de.ts
apps/web/src/locales/en.ts
apps/web/src/locales/__tests__/i18nAudit.spec.ts
apps/web/src/storage/connectionState.ts
apps/web/src/storage/demoAdapter.ts
apps/web/src/storage/httpAdapter.ts
apps/web/src/storage/index.ts
apps/web/src/storage/types.ts
apps/web/src/storage/__tests__/demoAdapter.spec.ts
apps/web/src/storage/__tests__/httpAdapter.spec.ts
apps/web/src/stores/modal.ts
apps/web/src/stores/project.ts
apps/web/src/stores/selection.ts
apps/web/src/stores/settings.ts
apps/web/src/stores/toast.ts
apps/web/src/stores/ui.ts
apps/web/src/stores/vault.ts
apps/web/src/stores/__tests__/modal.spec.ts
apps/web/src/stores/__tests__/selection.spec.ts
apps/web/src/stores/__tests__/settings.spec.ts
apps/web/src/stores/__tests__/toast.spec.ts
apps/web/src/stores/__tests__/ui.spec.ts
apps/web/src/utils/broadcast.ts
apps/web/src/utils/checklist.ts
apps/web/src/utils/constants.ts
apps/web/src/utils/dsl.ts
apps/web/src/utils/effects.ts
apps/web/src/utils/markdown.ts
apps/web/src/utils/repeat.ts
apps/web/src/utils/tagStyles.ts
apps/web/src/utils/tagUtils.ts
apps/web/src/utils/taskColors.ts
apps/web/src/utils/__tests__/broadcast.spec.ts
apps/web/src/utils/__tests__/checklist.spec.ts
apps/web/src/utils/__tests__/dsl.spec.ts
apps/web/src/utils/__tests__/effects.spec.ts
apps/web/src/utils/__tests__/markdown.spec.ts
apps/web/src/utils/__tests__/tagStyles.spec.ts
apps/web/src/utils/__tests__/tagUtils.spec.ts
apps/web/src/utils/__tests__/taskFilter.spec.ts
apps/web/src/utils/__tests__/titleParser.spec.ts
apps/web/tests/e2e/kanban.spec.ts
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/mobile.md
docs/de/user/obsidian.md
docs/de/user/postponing.md
docs/de/user/recurring-and-reminders.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/features.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/developer/adr/0018-repository-layout.md
docs/developer/adr/0019-time-model-recurrence-reminders.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/mobile.md
docs/user/obsidian.md
docs/user/postponing.md
docs/user/recurring-and-reminders.md
docs/user/safety.md
docs/user/searching-filtering.md
docs/user/shortcuts.md
docs/user/time-blocking.md
docs/user/voice-dictation.md
packages/task-filter/README.md
packages/task-filter/index.ts
packages/task-filter/package.json
packages/themes/README.md
packages/themes/index.ts
packages/themes/package.json
packages/themes/themes.css
packages/title-parser/README.md
packages/title-parser/index.ts
packages/title-parser/package.json
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/recurrence.spec.ts
packages/vault-format/src/recurrence.ts
packages/vault-format/src/types.ts
scripts/lcov-paths.mjs
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/repeat/roll.json
spec/fixtures/search/match.json
spec/fixtures/search/parse.json
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/reminders-normalized.json
spec/fixtures/tasks/reminders-normalized.md
spec/fixtures/tasks/reminders-single-string.json
spec/fixtures/tasks/reminders-single-string.md
spec/fixtures/tasks/repeat-and-reminders.json
spec/fixtures/tasks/repeat-and-reminders.md
spec/fixtures/tasks/repeat-defaults.json
spec/fixtures/tasks/repeat-defaults.md
spec/fixtures/tasks/repeat-invalid.json
spec/fixtures/tasks/repeat-invalid.md
spec/fixtures/tasks/repeat-not-mapping.json
spec/fixtures/tasks/repeat-not-mapping.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-D1ooj-0s.js
src/jotter/dist/assets/CanvasView-BJH8J8a5.js
src/jotter/dist/assets/CanvasView-BPSKZ7uZ.css
src/jotter/dist/assets/GenericColumn-CFj2RyXH.css
src/jotter/dist/assets/GenericColumn-DonNwlhJ.js
src/jotter/dist/assets/HomeView-C96moniu.css
src/jotter/dist/assets/HomeView-IuGlPF9T.js
src/jotter/dist/assets/ListView-BMX60vZ_.js
src/jotter/dist/assets/MarkdownEditor-Cl3rE96s.js
src/jotter/dist/assets/MarkdownEditor-Dw1c_PRw.css
src/jotter/dist/assets/MatrixView-C3pdTTyR.js
src/jotter/dist/assets/MatrixView-KELVqO_3.css
src/jotter/dist/assets/ReviewView-CE5GppU5.js
src/jotter/dist/assets/SettingsView-Oh183RHH.js
src/jotter/dist/assets/TagView-BswFXogm.js
src/jotter/dist/assets/TaskCard-DIyA4z3n.js
src/jotter/dist/assets/TaskCard-Do2NLdux.css
src/jotter/dist/assets/TaskDetailModal-B4FR8eDG.js
src/jotter/dist/assets/TaskDetailModal-C5GdD5v-.css
src/jotter/dist/assets/TimeView-DK2nJBLe.js
src/jotter/dist/assets/TriageView-BQKcM8vb.css
src/jotter/dist/assets/TriageView-C0SrrxW_.js
src/jotter/dist/assets/dist-DkcWhSwS.js
src/jotter/dist/assets/index-D71z6kZs.css
src/jotter/dist/assets/index-Dy9RgCxd.js
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/repeat-DcD_38VX.js
src/jotter/dist/assets/tagStyles-3kDpyWjO.js
src/jotter/dist/assets/useBuckets-EuJZRf-j.js
src/jotter/dist/assets/useTaskMutations-B8o7VHSd.js
src/jotter/dist/assets/useToast-BQKVPimo.js
src/jotter/dist/assets/xlsx-DNuN9Pk8.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/recurrence.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_recurrence.py
tests/test_search_conformance.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