me.dumke.Reinschrift CC0-1.0 GPL-3.0-or-later Reinschrift Manage your todos in Markdown Aufgaben in Markdown verwalten Gestiona tus tareas en Markdown Gérez vos tâches en Markdown Markdown でタスクを管理 Hantera dina uppgifter i Markdown

Reinschrift combines a native GNOME interface with the simplicity of plain text. Your tasks remain a normal Markdown file – easy to back up, versionable via Git, and editable on any device with your favorite editor.

Reinschrift verbindet eine native GNOME-Oberfläche mit der Einfachheit von Klartext. Deine Aufgaben bleiben eine normale Markdown-Datei – leicht zu sichern, mit Git versionierbar und auf jedem Gerät mit deinem Lieblingseditor bearbeitbar.

Reinschrift combina una interfaz nativa de GNOME con la sencillez del texto plano. Tus tareas siguen siendo un archivo Markdown normal: fácil de respaldar, versionable con Git y editable en cualquier dispositivo con tu editor favorito.

Reinschrift associe une interface GNOME native à la simplicité du texte brut. Vos tâches restent un fichier Markdown ordinaire – facile à sauvegarder, versionnable avec Git et modifiable sur n'importe quel appareil avec votre éditeur préféré.

Reinschrift は、ネイティブな GNOME インターフェースとプレーンテキストのシンプルさを組み合わせます。タスクは普通の Markdown ファイルのまま。バックアップが簡単で、Git でバージョン管理でき、どのデバイスでもお気に入りのエディターで編集できます。

Reinschrift förenar ett inbyggt GNOME-gränssnitt med enkelheten hos ren text. Dina uppgifter förblir en vanlig Markdown-fil – lätt att säkerhetskopiera, versionshanterbar med Git och redigerbar på alla enheter i din favoritredigerare.

The app syncs the file via Nextcloud/WebDAV, reads changes live, writes directly back, and thus makes classic to-do lists in plain text suitable for everyday use – without proprietary silos. The format remains open, portable, and transparent.

Die App synchronisiert die Datei über Nextcloud/WebDAV, liest Änderungen live ein, schreibt direkt zurück und macht klassische Todo-Listen im Klartext damit alltagstauglich – ohne proprietäre Silos. Das Format bleibt offen, portabel und transparent.

La app sincroniza el archivo mediante Nextcloud/WebDAV, lee los cambios al instante, escribe directamente en él y hace así que las listas de tareas clásicas en texto plano sean aptas para el día a día, sin silos propietarios. El formato sigue siendo abierto, portable y transparente.

L'application synchronise le fichier via Nextcloud/WebDAV, lit les modifications en direct, écrit directement dedans et rend ainsi les listes de tâches classiques en texte brut utilisables au quotidien – sans silos propriétaires. Le format reste ouvert, portable et transparent.

ファイルは Nextcloud/WebDAV で同期され、変更はすぐに読み込まれ、直接書き戻されます。これにより、昔ながらのテキストの ToDo リストを、独自形式に縛られることなく日常で使えるものにします。形式はオープンで、持ち運びやすく、透明なままです。

Appen synkar filen via Nextcloud/WebDAV, läser in ändringar direkt, skriver tillbaka direkt och gör på så sätt klassiska att göra-listor i ren text användbara i vardagen – utan proprietära silor. Formatet förblir öppet, portabelt och transparent.

me.dumke.Reinschrift.desktop #99c1f1 #1a5fb4 Tasks grouped by project, with contexts, due dates and quick add Aufgaben nach Projekt gruppiert, mit Kontexten, Fälligkeiten und Schnelleingabe Tareas agrupadas por proyecto, con contextos, fechas de vencimiento y entrada rápida Tâches regroupées par projet, avec contextes, échéances et ajout rapide プロジェクトごとにまとめたタスク。コンテキスト、期限、クイック追加付き Uppgifter grupperade efter projekt, med kontexter, förfallodatum och snabbinmatning https://raw.githubusercontent.com/danst0/ReinschriftTodo/main/screenshots/main_app_en.png https://raw.githubusercontent.com/danst0/ReinschriftTodo/main/screenshots/main_app_de.png https://raw.githubusercontent.com/danst0/ReinschriftTodo/main/screenshots/main_app_es.png https://raw.githubusercontent.com/danst0/ReinschriftTodo/main/screenshots/main_app_fr.png https://raw.githubusercontent.com/danst0/ReinschriftTodo/main/screenshots/main_app_ja.png https://raw.githubusercontent.com/danst0/ReinschriftTodo/main/screenshots/main_app_sv.png https://reinschrift.dumke.me https://github.com/danst0/ReinschriftTodo https://github.com/danst0/ReinschriftTodo/issues https://github.com/danst0/ReinschriftTodo Dr. Daniel Dumke todo task tasks markdown todo.txt GTD checklist plain text Nextcloud WebDAV Aufgaben Aufgabenliste Klartext tareas lista de tareas texto plano tâches liste de tâches texte brut タスク ToDo リスト プレーンテキスト uppgifter att göra-lista ren text 360 pointing keyboard touch reinschrift
  • Postponing a task to a later day takes it off My Day, in every app
  • Command line: --database again opens a different task file for a single call, without changing the saved settings
  • Built on the GNOME 51 platform
  • The task list no longer flickers or jumps when it updates — e.g. adding tasks to My Day from far down the list keeps the top visible row exactly where it was
  • In the edit dialog, the note field grows with the window and the buttons stay at the bottom
  • GNOME Shell extension: the menu now follows the web app's design — today's date as the header, a yellow highlighter on tasks due today, and +project and @place shown as colored tokens
  • Web: adding a task whose reminder time already passed no longer triggers an instant push notification
  • Updates now arrive bundled, so you get fewer, larger updates
  • App description and screenshots are now available in Spanish, French, Japanese and Swedish as well as English and German
  • Updated sample data for the screenshots in all six languages
  • Moving the mouse over the task list no longer leaves a row highlighted; section headings are no longer selectable
  • Updated screenshots
  • In the My Day planning list, clicking a task opens the edit dialog; only the plus button (or Space) adds it to My Day
  • The filter popover closes again when clicking outside after choosing a due date range
  • Maintenance release: fixes an automated check of the web app, no visible changes
  • New filter: show only tasks due by today, tomorrow, within 7 or 30 days, overdue or without a date, narrowed to chosen projects and places
  • The filter is remembered and replaces the "Show only due" switch; the command line gains --due and --undated
  • Web app: redesigned list with readable due dates, a schedule view grouped by time range and the same filters
  • GNOME Shell extension: clicking a task opens its details to postpone it or remove it from My Day; only the circle ticks it off
  • GNOME Shell extension: follows the Flatpak app's file settings first, and the Nextcloud copy when the app uses WebDAV
  • GNOME Shell extension: cleans up all signals, timers and widgets when disabled, as required by the extensions.gnome.org review
  • GNOME Shell extension: preferences window to choose the to-do file, also usable without the app
  • GNOME Shell extension: add tasks to My Day directly from the top bar menu
  • GNOME Shell extension: "Open Reinschrift" only appears when the app is installed
  • GNOME Shell extension: translated into German, Spanish, French, Japanese and Swedish; ready for extensions.gnome.org
  • GNOME Shell extension: "My Day" menu in the top bar to tick off today's tasks
  • Web app: push reminders now arrive on devices that had the app open before
  • Web app: push reminders for due tasks, even when the app is closed
  • Web app: no more permission error in the server log at startup
  • Changes appear instantly: they are saved in the background instead of freezing the window while the file is written, and changes still being saved survive closing the app or a crash
  • Web app: ticking off and postponing tasks responds immediately
  • Mobile-friendly compact layout: on narrow screens (Linux phones), task rows collapse their quick actions into an overflow menu, the selection bar becomes icon-based, and the window starts maximized
  • The "Show only due" filter now also applies to the planning list in My Day — tasks due far in the future no longer clutter it
  • To-dos created in the same instant no longer share an ID — completing several recurring tasks at once used to give every spawned occurrence the same one, so later edits acted on the wrong task
  • A new to-do never reuses an ID that is already in the file, even one another device handed out
  • Web interface: undoing an action no longer discards what other devices saved in the meantime — it now reverses just the lines it changed instead of restoring a whole earlier copy of the file
  • Web interface: an undo that cannot be applied says so, instead of looking as though it had worked
  • Web interface: ticking a task off no longer fails silently — a page left open for more than an hour could not save any more, and the tick simply reappeared unticked
  • Web interface: completing or postponing a task now identifies it by its ID instead of its position in the file, so a task that moved in the meantime can no longer be hit by mistake
  • Web interface: an action that cannot be carried out now says so instead of quietly reloading over it
  • Completed tasks no longer reappear as open: a save based on an outdated state is now rejected instead of silently overwriting what another device stored in the meantime
  • "Overwrite" in the conflict dialog now applies your own change — it used to upload the state from before it and discard everything newer
  • "Undo" only reverts to the state it was recorded for and refuses once another device has written since
  • Deleting a task now identifies it by its ID instead of its position in the file, so a task that moved in the meantime can no longer be hit by mistake
  • Tasks linked from Obsidian notes are recognised by their own ID again, so completing one no longer changes a different line
  • WebDAV: adding a task no longer fails with "409 Conflict" when the account was connected via the Nextcloud login without a file name — the login now fills in a default path
  • The connection check no longer reports success when the configured target is a folder rather than the todo file
  • WebDAV errors now explain what to change instead of showing a bare status code
  • Missing folders in a WebDAV path are created automatically instead of failing the save
  • Projects and locations with spaces in their name survive editing — saving a task no longer splits "Big Project" into two separate tags
  • The project and location fields now treat + and @ as the separator, so multi-word names can be typed directly
  • My Day: tasks due later today now show up under the due suggestions instead of being treated as future tasks
  • Web: share links are hardened — recipients can only contribute plain task text, and a link now covers exactly the group it was created from
  • Web: revoking a share removes every link for that tag, and failed share actions are reported instead of failing silently
  • Web: locations/contexts (@tag) can now be shared as a public link, just like projects
  • Web: share links match tag names case-insensitively, so casing variants stay in one shared list
  • Web: the multi-select action bar no longer stays visible when select mode is off
  • Smart Add now keeps context and project distinct: context is the place/mode, project describes the task's topic
  • Smart Add now sticks to your existing projects and contexts instead of inventing new tags for similar tasks
  • The AI is offered more of your recurring tags and uses deterministic settings for consistent results
  • Redesigned the app icon in a flatter, contemporary style with proper canvas padding
  • Replaced the store screenshots with real window captures including native shadow and rounded corners
  • Fixed the "postpone to sometime" button showing a broken icon (it referenced an icon name that doesn't exist in any icon theme)
  • My Day: completed tasks are now shown with strikethrough instead of just dimmed
  • My Day: fixed recurring tasks reappearing as open immediately after being checked off, because the newly spawned next occurrence incorrectly inherited today's planning flag
  • The desktop app remembers its window size and maximized state across restarts
  • The list keeps its scroll position when tasks change (desktop app and web app) — no more jumping when completing or rescheduling
  • Web app: My Day now matches the desktop app — completed tasks below the active ones under a "Completed" header, topic/location grouping in the suggestions picker
  • My Day: completed tasks now appear below the active ones under a "Completed" header; topic/location grouping moved from the day list into the suggestions picker
  • Flatpak: ship all translations inside the app instead of a partially installed locale extension, so --language works for every supported language
  • Fix release pipeline after gettext migration: regenerate vendored crate list (gettext-rs) and install gettext tools in CI
  • Internationalization migrated from the custom JSON system to GNU gettext (Weblate/GNOME l10n ready); untranslated strings now fall back to English instead of German
  • Keyboard shortcuts window reworked using GtkShortcutsWindow with grouped sections
  • Repository: add .doap project description and GNOME Code of Conduct reference (GNOME Circle groundwork)
  • Repository: website and AUR packaging are now maintained outside version control (gitignored)
  • New project homepage at reinschrift.dumke.me (English and German)
  • AUR packaging (PKGBUILD) for Arch Linux under packaging/aur
  • Docs: pre-built Docker image (ghcr.io) documented in README and compose example
  • Projects and contexts now aggregate case-insensitively, grouped under their most frequently used spelling
  • Fix release CI to install GNOME 50 runtime
  • Improved Flathub metadata: branding colors, localized screenshots, keywords, bugtracker/contribute links, and supported input/display info
  • Update Flatpak to GNOME runtime 50
  • Semantic suggestions via Ollama embeddings (opt-in, preferences): similar past tasks with their tags while typing, a "similar by meaning" search section on Enter, and a duplicate warning while adding
  • Web app: semantic suggestions via Ollama embeddings (opt-in) — similar past tasks with their tags while typing, a "similar by meaning" search section, and a duplicate warning before adding
  • Core: new embeddings module for semantic suggestions via Ollama (/api/embed) — text canonicalization, cosine similarity, incremental sidecar cache; opt-in preference fields (groundwork, no UI yet)
  • Duplicate tasks from title suggestions: a copy button per suggestion creates a new open task with the matched task's projects, contexts, note and recurrence (GUI and web app)
  • Web app: title autocomplete can now be toggled in the settings, matching the GUI
  • Multi-select mode with mass actions (delete, complete/reopen, set due date, assign project/context) in GUI and web app
  • Fixed: completion date no longer glued to the ^ID token, keeping marker lookups working on completed tasks
  • Fixed: recurring tasks now get a fresh marker for the next occurrence in the web app
  • GUI: "My Day" planning picker — due suggestions and other open tasks can be added to today's plan directly from the My Day view, matching the web app
  • Legal: relicense from CC-BY-SA-4.0 to GPL-3.0-or-later — a proper software license with source-code copyleft and patent grant
  • CI: install elfutils (eu-strip) so the Flatpak bundle job completes on GitHub Actions
  • Web app: fix all 13 mypy type-check findings; mypy now gates CI
  • CI: update GitHub Actions to Node 24-ready versions (checkout v5, setup-python v6)
  • Repository: release workflow publishes the webapp Docker image to ghcr.io and attaches the Flatpak bundle to each GitHub release
  • CI: install ALSA development library so the desktop app builds on GitHub Actions
  • Repository: add GitHub Actions CI (cargo check/test/clippy, pytest/mypy) and rewritten README (English and German)
  • Repository cleanup: remove stray files, stale results.json and outdated v0.2.1 screenshots
  • Translations: fill missing strings — Whisper language picker (es/fr/ja/sv), English desktop strings, Japanese web app labels, suggestion tooltip in all web languages
  • My Day: new tasks added while the My Day view is active are planned for today automatically (web and desktop, including AI-assisted add)
  • Desktop: update whisper-rs to 0.16 — fixes voice transcription build failure with current libclang
  • Web: fix postpone dropping the rec: recurrence token — recurring tasks now keep their schedule when moved to today/tomorrow/weekend/sometime (single and group postpone)
  • New "My Day" view: plan your day from a blank slate — pick open tasks (due/overdue suggested first) via a new myday: token that syncs across web, desktop and CLI and resets automatically each morning
  • Web: My Day toggle in filter bar and mobile bottom nav, planning picker, last active view is remembered
  • Desktop: My Day filter toggle and per-item star button
  • Web: store sessions server-side (filesystem) so the session cookie no longer overflows the 4 KB browser limit when the undo stack holds large file snapshots
  • Web: filter toggles update instantly on tap (checkbox glyph and highlight) instead of waiting for a server roundtrip; larger touch targets on mobile
  • Web: share links can be created with an expiration of 7, 30, or 90 days (or unlimited); expired links return 404 and are auto-cleaned
  • Web: share a project as a stable public link — recipients can view, check off, and add tasks without an account
  • Title autocomplete in the Add and Edit fields with frequency-sorted suggestions from existing tasks (issue #6)
  • Support multi-word projects and contexts via quoted form, e.g. +"Steuererklärung 2024" (issue #5)
  • Auto-create a default todos file on first start instead of forcing the settings dialog (issue #3)
  • Fix metadata leaking into the visible title when a task starts with +project (issue #7)
  • Tighten modal and toast paddings onto the spacing token scale; close the visual polish pass (Release 1 of the webapp redesign)
  • Replace primary emoji buttons (header, postpone, add, delete) with inline SVG icons for consistent rendering across platforms
  • Introduce typography tokens and migrate hard-coded colors to CSS variables for consistent theming
  • Keep focus on text input after adding todo on mobile, show toast confirmation instead of scrolling
  • Make "Heute"-button set 00:00 for future todos, smart-time for today/overdue
  • Make local database file configurable in settings
  • Dynamic version display in webapp footer from Cargo.toml
  • Fix projects/contexts inside notes being incorrectly extracted as tags
  • Clean up git tracking: ignore .claude/ directory, add results.json and webapp/tools/
  • Fix RefCell re-entrancy crash in highlight timeout callback
  • Add tests for webapp undo service module
  • Add conflict detection with fingerprint-based optimistic concurrency control
  • Add undo support for destructive actions across all platforms
  • Add due date reminder notifications (desktop, web, CLI)
  • Webapp: Add OIDC refresh token support for transparent token renewal
  • Allow Nextcloud re-login by making login row always clickable, strip WebDAV path to base URL for reconnection
  • Replace Nextcloud login button with switch toggle, hide username/password rows when using Nextcloud Login Flow
  • Remove dead code and suppress deserialization-only field warnings
  • GUI: Add Nextcloud Login Flow v2 for browser-based WebDAV authentication
  • GUI: Truncate long toast error messages and increase timeout for readability
  • Webapp: Fix broken mouse interactions (checkbox, drag-and-drop) caused by swipe pseudo-elements
  • Webapp: Fix keyboard navigation after checkbox click fix
  • Webapp: Fix checkbox click opening details view instead of toggling
  • Webapp: Fix drag-and-drop by loading app.js as ES6 module
  • Webapp: Streamline inline scripts from ~1600 to ~200 lines
  • Webapp: Replace deprecated apple-mobile-web-app-capable meta tag
  • Webapp: Fix session cookie settings for language switching
  • Webapp: Add retry logic for WebDAV 423 Locked errors
  • Webapp: Add todo reordering API endpoint
  • Add Ollama URL and model settings to preferences UI
  • AI configuration no longer requires environment variables
  • Refactor: Split monolithic data.rs into focused modules (types, config, webdav, storage, parser, renderer, todo, util)
  • Code quality: Eliminated duplicate construct_url and Nextcloud fallback logic
  • Code quality: Shared FIELD_MARKERS constant across parser and renderer
  • Maintenance: test and CI improvements, bugfixes
  • Fix modals appearing on page load in mobile view
  • Improve webapp mobile UI/UX with touch-friendly design
  • Add bottom navigation bar for mobile devices
  • Implement swipe gestures (swipe right to complete, left to postpone)
  • Add pull-to-refresh functionality
  • Convert modals to bottom sheets on mobile
  • Add PWA support for home screen installation and offline viewing
  • Extract CSS to external stylesheet with CSS custom properties
  • Fix webapp parse_line() calls and location group translations
  • Remove section/Bereich tracking from database - simplify data model
  • Support multiple space-separated projects and locations per todo
  • Display all tags in format +proj1 +proj2 @loc1 @loc2
  • Grouping uses first project/location as primary
  • Webapp: Hide manual AI button when auto-AI is enabled
  • AI: Fix tag case normalization in code (deterministic, not LLM-dependent)
  • AI: Match existing tag case when assigning context and project
  • AI: Use German tags for context and project fields
  • AI: Always assign context and project (only null if rejected)
  • AI: Significantly reduce LLM prompt size for faster and more reliable parsing
  • AI: Remove closed todos from context to reduce token usage
  • Webapp: Add LOG_LEVEL environment variable for debug logging of LLM prompts
  • AI: Switch default model to llama3.1:8b for reliable JSON structured output
  • AI: Switch default model from qwen3:14b to mistral:7b for better JSON instruction following
  • AI: Reject non-actionable inputs (thoughts, observations, questions) instead of creating invalid todos
  • AI: Accept statements of intent (e.g. "ich muss einkaufen") and convert to imperative form
  • AI: Add confidence scoring with 80% threshold for parsing quality
  • AI: Improve tag assignment by using historical tags as context and preferring action-oriented titles with imperative verbs
  • AI: Add project extraction to webapp (was missing)
  • Increase recent context window from 14 to 30 days for both apps
  • Webapp: hide time portion in due date display when it's 00:00
  • Webapp: fix "Add failed" error by exempting JSON API routes from CSRF protection
>
  • Webapp: raise Gunicorn timeout to keep AI parsing requests alive instead of aborting workers
  • Two-step AI add: insert todos instantly, then refine asynchronously with a brief highlight once improved (GTK + web)
  • AI parsing: Add project/topic extraction and improve note generation for long todos
  • AI parsing: Split long todos into headline plus note; keep short todos unchanged
  • Metadata: Fixed release ordering in metainfo.xml
  • Webapp: Use Gunicorn as production-ready WSGI server
  • Webapp: Use Gunicorn as production-ready WSGI server
  • Webapp: Replace broken SSE with 30-second background auto-refresh (no flickering)
  • Web: Smart due date buttons — Today (12:00 or 18:00), Tomorrow, Next Weekend (Saturday), Sometime
  • Web: Added keyboard shortcut 'w' for next weekend
  • Updated dependencies (reqwest 0.12, glib/gtk4 0.20/0.9, whisper-rs 0.13)
  • CLI now shares config with GUI (~/.config/reinschrift_todo/preferences.json)
  • Removed -d/--database CLI argument in favor of shared settings
  • Packaging: Release 0.13.9
  • Packaging: Release 0.13.8 — update Flatpak manifest and sources to v0.13.8
  • Web: Add time-aware due dates, hide-future filtering now considers the due time
  • Web: Show and edit due times with datetime inputs, including "sometime" handling
  • GTK: Deduplicate topic and location metadata so tags are shown only once
  • GTK: Add setting to skip delete confirmations by default and honor it in the editor dialog
  • Web: Normalize the delete-without-confirmation setting and default to no dialog
  • Web: Respect AI-on-add preference with single-submit Smart Add flow
  • Web: Honor skip-delete-confirm preference from settings
  • Shift entire topic/location groups via header controls in the web app
  • New setting to skip delete confirmation by default in GTK and web apps
  • Configurable AI Smart Add timeout (default 30s) in GTK and web settings
  • Run AI Smart Add on the main context without GLib channels to satisfy GLib 0.19
  • Fix AI Smart Add channel typing to satisfy GLib callbacks
  • Fix AI Smart Add GLib channel callback typing to avoid compile-time errors
  • Fix AI Smart Add channel handling with GLib 0.19 and correct system prompt formatting
  • AI Smart Add toggle with 15s timeout and fallback for web and GTK apps
  • Webapp: Topic chip and title no longer duplicate the topic tag
  • Webapp: Smart Add now shows a turning-circle spinner while AI parses the task
  • Webapp: Disable speech recognition and mic UI on mobile devices
  • AI todo parsing now shortens titles while keeping their meaning
  • Allow Tab to leave note field and Ctrl+Enter to save (GTK and web)
  • Webapp: Fix OIDC redirect/state issues by honoring proxy headers and using secure session cookies
  • Fix: Search field shortcut (Ctrl-F) and visibility handling
  • Bugfix: Multi-line notes are now correctly stored and parsed
  • Add OIDC login support for webapp
  • Restrict OIDC login to single user via environment variable
  • Tastaturbedienung für Detailansicht (Enter zum Speichern, Tab-Navigation)
  • Webapp: AI prompt now lists recent todos plus distinct topics and locations for better suggestions
  • Fix: Match Rust/WebDAV deletion behavior with the web app
  • Fix: Prevent duplicate topic labels in the web app
  • External configuration for LLM settings
  • Add SSE for realtime updates in webapp
  • Add AI support (Ollama) in webapp
  • CSRF protection in webapp
  • Legal: Updated license to CC-BY-SA-4.0
  • UI: Replaced delete button text with trashcan icon
  • Fix: Added delete button to the edit modal in the webapp
  • Fix: Corrected indentation error in webapp
  • Fix: Added missing translations for delete button in all languages
  • Feature: Added delete button to details view in Rust app and webapp
  • Fix: Desktop file now follows Freedesktop validation (single main category)
  • Metadata: Updated AppStream license and refreshed screenshots
  • Packaging: Added multi-size icons for better desktop integration
  • Feature: Improved recurring todos with historic due dates (Option C)
  • Fix: Resolved compilation warnings (deprecated CSS method and unused code)
  • Feature: Added visual indicator (pulsing) during transcription
  • Fix: Correctly handle multi-channel (stereo) audio for Whisper transcription
  • Debug: Added logging for transcription parameters
  • Fix: Improved Whisper transcription language handling
  • Fix: Removed single segment restriction for longer voice recordings
  • Update Flatpak manifest to use the latest version
  • Default to empty database path on clean run
  • Improved error message for unconfigured database
  • Fix: Robust keyboard shortcut handling for different layouts
  • New: Use Esc key to exit sub-windows and revealers
  • Fix: Improved plus key shortcut compatibility
  • Optimization: Only update the list if there have been changes
  • New: Only update the list if there have been changes (check every 10 seconds)
  • Fix: Restore scroll position after reloading list
  • Fix: Unlabeled setting item in General section
  • Fix: Keyboard shortcut '?' now correctly displays help
  • Feature: Added Ctrl+N and Ctrl+F shortcuts for adding tasks and searching
  • Refactor: unified default todo path handling for Local/WebDAV backends
  • Feature: Recurring tasks with rec: token, auto-spawn next occurrence on completion
  • UI: Show recurrence badges in lists (desktop and web)
  • UI: Preserve scroll position to avoid jumps on updates
  • UI: Keep list position and selection after reload/update
  • UI: Disable 'Close with comment' button after click and handle comment in save button
  • Webapp: Improved keyboard shortcuts (n for new, f or / for search)
  • Fix: Fixed compilation error in main.rs
  • Fix: Updated flatpak dependencies
  • Refactor: Moved translations to external JSON files
  • Feature: Added language selection for voice recognition
  • Fix: Microphone access in Flatpak (removed bundled alsa-lib)
  • Complete translations for all supported languages
  • Improvement: Optimized model download speed
  • Fix: Compilation issues with glib channel and cpal config
  • Native: Integrated local Whisper-based voice recognition
  • Native: Automated model management (download/cleanup)
  • Native: Added microphone button to task entry
  • Webapp: Restricted voice input to mobile devices
  • Webapp: Fixed syntax errors in translations
  • Webapp: Added voice input support using Web Speech API
  • Webapp: Auto-submit voice recognized tasks
  • Updated translations for voice input
  • Added About screen to Desktop and Webapp
  • Updated translations for all supported languages
  • Webapp: Added Ctrl+F shortcut to toggle search
  • Webapp: Improved Ctrl+N behavior to toggle add form
  • Webapp: Added missing search translations for all languages
  • Webapp: Included search shortcut in the cheatsheet
  • Improved keyboard shortcuts cheatsheet layout (table format)
  • Refined translations for keyboard shortcuts
  • Full keyboard control for Desktop and Webapp
  • Added keyboard shortcuts cheatsheet (press '?')
  • Removed local file selection in favor of WebDAV focus
  • Updated translations for all supported languages
  • Fixed invalid Flatpak manifest flag
  • Redesigned UI for a cleaner look (Desktop and Web)
  • Search and "New Task" fields are now collapsible behind icons
  • Improved keyboard navigation with Esc key support
  • Fix duplication of search results during auto-reload in webapp
  • Add clear search button to webapp
  • Support clearing search via Esc key in desktop and webapp
  • Add sectioned search function to desktop and webapp
  • Search results are grouped by current list, open tasks, and completed tasks
  • Improved translations for search functionality
  • Add "Postpone to Sometimes" button to desktop and webapp
  • Use 9999-12-31 as date for "Sometimes" tasks
  • Improved translations for all supported languages