Commit Graph
466 Commits
Author SHA1 Message Date
sandrodachandClaude Opus 5.5 7860609201 feat: emoji picker in create dialogs; due date and priority right under a deepened task; no flicker on kanban drop
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m29s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 14:20:34 +01:00
sandrodachandClaude Opus 5.5 fa02e8dee6 fix(compose): speaches 0.8.3 reads WHISPER__TTL, not STT_MODEL_TTL
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 13:55:44 +01:00
sandrodachandClaude Opus 5.5 284ef1f723 feat(kanban): smooth drop slot instead of a flickering line; fix reload after reordering
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m39s
The column works out the slot from the pointer (cards no longer handle drag enter/leave, which
flickered on their child elements); a gap of the card's height opens there with framer-motion,
the dragged card leaves its old place and lights up where it lands.

The realtime handler reloaded with the loadData of its first render ("Alle Aufgaben"), so a
selected list showed other lists' tasks after TASK_REORDERED; it now calls the current one.
v0.38.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 13:40:47 +01:00
sandrodachandClaude Opus 5.5 1e3ac9786f feat: edit API keys (name, rights); quick dump text above its buttons; inline note badges
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m33s
- PATCH /keys/{id} renames a key or changes its scopes; the secret stays. Settings → API gets an
  edit button per key with the same switches as for a new key.
- Quick dump: a multiline text gets the full width, the buttons move to their own row below; the
  bar only goes back to one line once the text is clearly shorter (no flip-flopping).
- Notes: the "Erweitert"/"Unteraufgabe" badges sit right after the checkbox text.

v0.38.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 13:34:27 +01:00
sandrodachandClaude Opus 5.5 6f2eb08489 fix: deepen opens the linked note, task list columns in "Alle Aufgaben", Whisper repeats, date field
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m33s
- The deepen buttons of task rows and Kanban cards open an already linked note (accent colour)
  instead of creating another one; the server refuses a second note for a linked task as well.
- "Alle Aufgaben" uses each task's own list columns for the status selector, dot and detail.
- Whisper: send vad_filter (STT_VAD_FILTER, default on) and drop a verbatim repeated tail of
  sentences or words from the transcript.
- Task detail: narrower time field, wider date field in the desktop sidebar.

v0.37.2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 13:28:52 +01:00
sandrodachandClaude Opus 5.5 c56bd4d943 fix(server): stop the background compaction before the database is closed
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m35s
The compaction starts right away in NewServer and could still write to the SQLite files while a
test's temp dir was removed ("directory not empty" on the CI runner, TestWebhookTokenInURLOnlyAPIKey).
Server.Close stops it and waits for a running pass; tests call it before closing the store, and the
server calls it on shutdown before the deferred store.Close. v0.37.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 13:16:58 +01:00
sandrodachandClaude Opus 5.5 3fbe015c06 feat(workspace): mark several notes (Ctrl/Cmd, Shift) and drag them into a folder or onto the trash
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m43s
Ctrl/Cmd+click toggles, Shift+click marks a range in the order shown; dragging a marked note takes
all marked ones along (no merge then). The trash at the bottom of the sidebar becomes a drop target,
also for a single note and on phones (native long-press drag); a toast offers undo. Escape, a plain
click or a click on empty space clears the marks. v0.37.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 12:38:03 +01:00
sandrodachandClaude Opus 5.5 0d34308601 ci: rebuild v0.36.0 (previous dev build failed on the runner, local CI build green)
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 55s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 12:35:20 +01:00
sandrodachandClaude Opus 5.5 5a8922011d feat(tasks): linked tasks sync title and subtasks with their note in both directions
MindSift CI & Docker Release / Build, Test in Container & Push (push) Failing after 2m32s
Subtasks of a task linked to a note checkbox are tied 1:1 to checkboxes of that note
(subtasks[].blockId), wherever they are moved. ReconcileDocTaskLinks now carries tick, title and
subtasks from the note to the task and adopts new checkboxes directly under the task;
SyncTaskToDoc carries tick, title and subtasks to the note and adds checkboxes for new subtasks.
Deleting is not mirrored. Deepening a task ties its subtasks right away; saves without links keep
the server's links. The sync response reports taskLinks/subtaskLinks; the editor shows an
"Unteraufgabe" badge. v0.36.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 12:29:10 +01:00
sandrodachandClaude Opus 5.5 f91926c208 feat(tasks): completed tasks are deleted after a delay (default 30 days), "Erledigte leeren"
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m34s
thoughts.completed_at is set by triggers on every way a task is completed (migration 14; tasks
completed earlier count from the update). Users choose the delay (7/30/90/365 days or never,
users.done_retention_days); for tasks in a list the owner's delay counts. An hourly job deletes
expired completed tasks (not in the demo) and tells their viewers. POST /tasks/clear-done clears
completed tasks the user may edit. The done tab shows the setting and the button. v0.35.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 12:18:54 +01:00
sandrodachandClaude Opus 5.5 66b28e1998 feat(tasks): two-column task detail on the desktop (content left, settings right); v0.34.0
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m36s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 12:11:40 +01:00
sandrodachandClaude Opus 5.5 d2b45daf4a chore: release v0.33.0
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m20s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 11:56:18 +01:00
sandrodachandClaude Opus 5.5 1a56be572c feat(tasks): deepening a task into a note keeps the task, linked to the note's first checkbox
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 11:32:42 +01:00
sandrodachandClaude Opus 5.5 c851b8e3ba feat(capture): quick dump list row follows the target (task lists for tasks)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 11:29:06 +01:00
sandrodachandClaude Opus 5.5 83b3f27b3e feat(voice): microphone in the add-task and add-item rows; phone fixes in the column dialog
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m38s
VoiceInputButton brings the Quick Dump microphone into other input rows (useVoiceInput, appends
to the text already there, hidden when voice input is off or unsupported): the add-task row above
the task list and the add-item field of lists (desktop row and phone sheet).

Column dialog on phones: the add-column buttons go below the field, and the Erledigt toggle of a
column shows only its tick, so the bin stays on screen. Docs and changelog; v0.32.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 11:17:49 +01:00
sandrodachandClaude Opus 5.5 08081e6c1d feat(kanban): choose a colour per column
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m52s
"Spalten anpassen" gets a colour dot per column that opens the choice: grey, anthracite (theme
text colour), green, yellow, blue, red, purple or the accent. columnDotClass reads the column's
colour (server defaults emerald/amber count as green/yellow; columns without one keep the colour
of their role) and drives the Kanban header, the status dot in the list view and the task detail.
Blue and purple come from new theme variables --color-info / --color-purple with fallbacks for
light and dark themes. Docs and changelog updated; v0.31.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 11:00:17 +01:00
sandrodachandClaude Opus 5.5 b883315914 feat(api): one API for curl and MCP, REST reads with keys, origin badge with key name
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m16s
API keys reach tasks and lists over plain REST too (GET /task-lists, GET /tasks with
status/due filters, PATCH/DELETE /thoughts/{id}, GET /lists, list items), guarded by a route
table; notes and settings stay closed. Rights hold for every access alike (webhook:task also
allows create_task over MCP, tasks:write also task delivery).

Tasks, thoughts and list items record which key created them and which one changed them last
(migration 13 replaces agent_mark; origin stays after the user's own edits and survives the
triage into a list item). OriginBadge shows the key name with a webhook or robot icon, details
on hover and tap, and replaces the Webhook and KI badges everywhere, now also on list items.

Settings: category "API" with rights grouped by tasks, lists and inbox and two tabs
(curl / smart home with a Home Assistant sensor, AI agents over MCP). Docs, help, README and
changelog updated; v0.30.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:26:44 +01:00
sandrodachandClaude Opus 5.5 0ca715ba64 feat(tasks): status dot in the column colour in the list view, also on phones
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:00:30 +01:00
sandrodachandClaude Opus 5.5 ac068248d7 feat(mcp): delete tasks, create task lists and lists, agent badge; export/import settings category
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m21s
New MCP tools delete_task (tasks:write), create_task_list (tasks:write) and create_list
(lists:write); list_task_lists now returns the board columns so agents know the valid
kanbanStatus values. Task deletion is a shared helper (deleteTask) for REST and MCP.

Tasks and list items get agent_mark (migration 12): "created" when an agent adds them via MCP,
"edited" when an agent changes them; a change by the user clears it. The new AgentBadge shows
"KI" / "KI geändert" in task rows, Kanban cards, the task detail, the inbox and lists.

Settings: export and import move out of "Webhooks, KI-Agenten & Export" into their own
category "Export & Import". Docs, help, README and changelog updated; v0.29.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 08:49:10 +01:00
sandrodachandClaude Fable 5.1 8faed7a160 feat(mcp): MCP server for AI agents, agent scopes on API keys, switches in settings
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m19s
MindSift now speaks MCP (Streamable HTTP, stateless JSON-RPC) at POST /api/v1/mcp so
Claude Code, Codex, Claude Desktop, Cursor and custom agents can read, create and
complete tasks and keep shared lists. API keys get the scopes tasks:read/write and
lists:read/write; tools/list only shows what the key may call and every tool checks
its scope. Task and list write paths are shared helpers (updateTask, createTask,
addListItem, setListItemDone) used by REST and MCP alike.

Settings: scope selection and the SectionPicker (import, restore) use ToggleSwitch
rows instead of checkbox-like buttons; new MCP section with connection snippets for
Claude Code, Codex and JSON configs. Docs, README, help and changelog updated; v0.28.0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-31 21:58:44 +01:00
sandrodachandClaude Opus 5.5 5982563579 fix(mobile): outline bar only while the keyboard is open
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m51s
The indent/move bar above the keyboard stayed after the keyboard was
closed (back button) because the bullet kept its focus, and covered the
bottom navigation. useKeyboardInset now reports keyboardOpen by
comparing the visible height with the height without keyboard, which
works whether the browser shrinks the page or only the visual viewport.

Release v0.27.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 21:18:05 +01:00
sandrodachandClaude Opus 5.5 9ed63281ed feat(demo): start the demo in the round Fjord Night theme
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m44s
A visitor without a chosen theme on this device sees the demo in
fjord-night instead of the square default; a chosen theme stays and
real installations are unchanged.

Release v0.27.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 21:13:29 +01:00
sandrodachandClaude Opus 5.5 68bc4d279c fix(workspace): hidden bullet actions on phones, no second extract, notice layout
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m20s
- The floating bullet actions only react to hover on devices with a real
  pointer; a tap on a phone made the invisible buttons clickable.
- A bullet that is only a note link (plus hashtags) can no longer be
  extracted: button and /extract are hidden, the server answers 400.
- Extract notice on phones sits above the bottom navigation, text on
  top (two lines max) with the actions below.
- Release v0.26.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 19:56:32 +01:00
sandrodachandClaude Opus 5.5 fdd6e38065 feat(ui): connection status in the header; README screenshots as WebP
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m38s
- Desktop shows "offline" with a red dot under the user name when the
  server is unreachable; phones show a green/red dot on the avatar.
  Based on the app-wide realtime connection, so a server outage is
  noticed even while the device has network (4 s grace period).
- Screenshots converted to WebP (1280 px desktop, 480 px phone, q90),
  e2e/screenshots.sh converts with cwebp; new journal picture with
  round corners. Rules in AGENTS.md.
- Release v0.26.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 19:17:51 +01:00
sandrodachandClaude Opus 5.5 c1adb10b5e fix(ui): bottom sheets on phones are square at the bottom like the other sheets
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m36s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 15:58:35 +01:00
sandrodachandClaude Opus 5.5 c43c99dc0c feat(mobile): list items and new notes via a sheet opened by "+"
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m34s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 15:41:44 +01:00
sandrodachandClaude Opus 5.5 19f98ae92f fix(triage): list and date buttons on phones open the bottom sheet
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m39s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 15:24:55 +01:00
sandrodachandClaude Opus 5.5 15dcfa0d96 docs: add TODO.md (task list for developers and agents)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 15:18:06 +01:00
sandrodachandClaude Opus 5.5 28ebbe7263 fix(lists): add items offline via the outbox; recognisable input field
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m34s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 15:07:19 +01:00
sandrodachandClaude Opus 5.5 ab97638361 feat(auth): confirm the e-mail address of new accounts by link
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m21s
- Setting / REGISTRATION_VERIFY_EMAIL; only with SMTP and BASE_URL; invites skip it
- Hashed one-time tokens (48 h), resend with cooldown, unconfirmed accounts purged
- Approval modes notify admins only after the address is confirmed

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 14:01:41 +01:00
sandrodachandClaude Opus 5.5 1406650b7c style(admin): invite form puts the e-mail first and wide, "how often" narrow
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 13:54:19 +01:00
sandrodachandClaude Opus 5.5 af77b9e809 feat(auth): invite links for several people, invite by email, registration with approval or email domains
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m20s
- Invites: link /?invite=CODE, copy link, send by email, max uses with counter
- Registration modes closed | approval | domain | domain+approval | open, waiting list with approve/reject
- REGISTRATION_MODE / REGISTRATION_DOMAINS lock the admin setting; ALLOW_REGISTRATION=true is honoured

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 13:43:54 +01:00
sandrodachandClaude Opus 5.5 db5c5cde9b docs(plan): multi-use invite links replace bulk single codes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 13:26:38 +01:00
sandrodachandClaude Opus 5.5 d97f0e6dbf docs(plan): invitation links, invite by email and multi-use codes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 13:19:18 +01:00
sandrodachandClaude Opus 5.5 ce66933acc docs(plan): drop the mail server login from the registration plan
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 13:16:19 +01:00
sandrodachandClaude Opus 5.5 8c2bfe2cee fix(voice): browser speech recognition on Android no longer repeats phrases
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 13:16:04 +01:00
sandrodachandClaude Opus 5.5 32bb92ecf8 docs: plan for registration modes (approval, email domains) and OIDC / mail server login
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 12:44:29 +01:00
sandrodachandClaude Opus 5.5 f5281a5aea docs: agent instructions (language, checks, release order via CI, UI rules)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 12:27:19 +01:00
sandrodachandClaude Opus 5.5 599d53e0ea fix(mail): greeting follows the run time, not the clock (CI failed from noon on)
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 48s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 12:20:37 +01:00
sandrodachandClaude Opus 5.5 5b636b66e2 fix(push): reinstalled app replaces its old subscription; devices listed and removable
MindSift CI & Docker Release / Build, Test in Container & Push (push) Failing after 2m8s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:59:40 +01:00
sandrodachandClaude Opus 5.5 f76b0f34ff feat: Kanban touch drag, admins delete backups, bigger share message
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m5s
- Kanban on phones/tablets: hold a card, drag it onto a card or column, release; the page scrolls at the edges
- Admin settings: database backups can be deleted (DELETE /api/v1/admin/backups/{name})
- Share message: large Liste/Aufgabe buttons, close button, tap outside closes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:54:17 +01:00
sandrodachandClaude Opus 5.5 da258fdce2 feat(share): after sharing, send the entry on as task or list item with one tap
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m30s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:27:06 +01:00
sandrodachandClaude Opus 5.5 3d367ce633 feat(pwa): app icon shortcuts for Quick Dump, new task and shopping list open their input
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m31s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:16:46 +01:00
sandrodachandClaude Opus 5.5 c6a2cfb85c feat(workspace): bar above the phone keyboard to indent, outdent and move bullets
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m33s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:09:39 +01:00
sandrodachandClaude Opus 5.5 32b79b5d62 fix(workspace): journal entry on phones looks like a folder row, no half highlight after back
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m32s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 11:00:33 +01:00
sandrodachandClaude Opus 5.5 46e1137f18 feat(mail): one layout for all mails with logo, greeting, cards and footer
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:32:33 +01:00
sandrodachandClaude Opus 5.5 df06ab10c8 fix(ui): user menu header follows rounded theme corners
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:24:23 +01:00
sandrodachandClaude Opus 5.5 1b35bb3de4 fix(alarms): Kanban moves no longer re-arm due alarms of open tasks
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:22:36 +01:00
sandrodachandClaude Opus 5.5 21dd5e504e feat(mobile): workspace views in the top menu, taller note rows, equal header bars
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m31s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:21:08 +01:00
sandrodachandClaude Opus 5.5 66d6b97aff style(journal): monochrome calendar icon instead of the emoji in day titles
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m31s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:16:45 +01:00