Commit Graph
518 Commits
Author SHA1 Message Date
sandrodachandClaude Opus 5.5 fd62987df3 style(ui): header colour runs into the scrollbar gutter
The reserved gutter showed the page colour next to the header. On the
desktop the page background now carries the header colour and its
bottom line down to the header's measured height (--app-header-h),
fixed like the sticky header.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 18:26:45 +01:00
sandrodachandClaude Opus 5.5 0ba5140106 chore: release v0.59.1
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m54s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 18:12:19 +01:00
sandrodachandClaude Opus 5.5 92de62a620 fix(tasks): switching lists never shows the previous list's tasks
The new list's view (list or Kanban) appeared one render before its
tasks, so the board briefly showed the old list. Lists opened in this
session are kept in memory and shown in the same render; a list not
opened yet takes its share of "Alle Aufgaben", else the loading
placeholder shows. The reload brings them up to date.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 18:11:17 +01:00
sandrodachandClaude Opus 5.5 cce076b093 fix(ui): keep room for the scrollbar so pages do not shift
scrollbar-gutter: stable on the root: a page that scrolls (e.g. a wide
Kanban board) and one that does not have the same width, so switching
tabs no longer moves the layout. Overlay scrollbars are unaffected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 18:11:17 +01:00
sandrodachandClaude Opus 5.5 9d2f37c7f6 chore: release v0.59.0
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m54s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 17:05:47 +01:00
sandrodachandClaude Opus 5.5 886fb2c711 feat(tasks): remember list or Kanban per task list
Each task list (and "Alle Aufgaben") keeps its own view on this device;
a single remembered Kanban view from before carries over to its list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 16:52:30 +01:00
sandrodachandClaude Opus 5.5 c2aff2ced6 chore: release v0.58.0
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m53s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:56:31 +01:00
sandrodachandClaude Opus 5.5 d11c156ed7 style(ui): solid counters without the dark ring
The accent counter was a 10-16 % tint, so on the phone nav bar the icon
showed through; it now lies on an opaque panel. The ring in the page
colour looked like a black shadow in dark themes and is gone; text
counters overlap the word by 2 px instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:13:14 +01:00
sandrodachandClaude Opus 5.5 2cdfa45375 feat(tasks): group "Alle Aufgaben" by task list by default
Tasks without a list come first, then the lists in tab order. Single
lists keep no grouping by default and do not offer it. The open task
list, view and grouping, like the open shopping list, are now
remembered per device instead of per tab.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:13:14 +01:00
sandrodachandClaude Opus 5.5 b04991ee23 fix(tasks): full-size fields in the task details on phones
Task list, people search, hashtag and subtask fields were 24-32 px with
12 px text on phones; they now match the other fields (44 px, 16 px text,
no zoom on iOS). The note button says just "Notiz" there, so the header
stays on one line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:59:16 +01:00
sandrodachandClaude Opus 5.5 92993c2dd2 style(ui): counters on labels sit right after the word
The counter hung at the label's right edge with a fixed 12 px gap, so
two-digit numbers covered part of the last letter. It now follows the
word in the text flow (position="text"): only its ring overlaps, the
same for any number of digits, and wide numbers widen the tab.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:59:16 +01:00
sandrodachandClaude Opus 5.5 8989321bdd chore: release v0.57.0
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m52s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:38:02 +01:00
sandrodachandClaude Opus 5.5 117cf3445e feat(ui): phone layout up to 768 px
Phones in landscape and small tablets (iPad mini upright) got the
desktop layout from 640 px. The sm breakpoint is now 768 px; the media
queries in index.css and the width checks in code (isPhoneWidth) follow
it. The desktop header grid applies from sm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:37:52 +01:00
sandrodachandClaude Opus 5.5 8891dc046d fix(ui): keep the capture bar centred and still when the status changes
From md the desktop header is a grid with equal outer columns, so the
Quick Dump bar sits exactly in the middle whatever name or status stands
on the right; the status line keeps the width of its longest label.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:10:36 +01:00
sandrodachandClaude Opus 5.5 ad254537d0 chore: release v0.56.0
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m53s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:02:33 +01:00
sandrodachandClaude Opus 5.5 ae1f799d9c style(lists): live pill left of a divider, actions right, like the notes
Tasks get the live pill too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:50:27 +01:00
sandrodachandClaude Opus 5.5 2b7356d043 feat(realtime): long polling for app-wide events behind proxies
When a proxy lets neither WebSocket nor SSE through, the app opens a
poll connection: the server buffers its events (an SSEClient without a
stream), each GET waits up to 25 s, and room joins work like for SSE.
Tasks and lists now update live there too, and note sync takes its
notifications from it instead of a second long poll. Idle connections
close after two minutes. The profile shows such a connection as limited.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:50:27 +01:00
sandrodachandClaude Opus 5.5 c19d8fd03e chore: release v0.55.0
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m49s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:32:32 +01:00
sandrodachandClaude Opus 5.5 c021946c7f fix(sync): no conflicts with one's own text, one copy per conflict
- Leaving the tab sent pending text with keepalive but kept it queued;
  typing on folded it with newer keystrokes under the old base version,
  which then conflicted with the user's own text. The flushed batch now
  becomes the batch in flight.
- After a conflict, the focused field still showed the losing text and
  every further batch made another copy. Typing on goes into the one
  copy until the cursor leaves; on leaving, the field shows the block's
  current text, and entering a block bases edits on what it shows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:30:08 +01:00
sandrodachandClaude Opus 5.5 08d35a4a81 test(e2e): pick the lock notice among the status elements
The connection status at the profile is always shown now and also has
role=status.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:30:08 +01:00
sandrodachandClaude Opus 5.5 282a9af557 feat(ui): show a limited connection instead of offline behind proxies
When no realtime connection gets through (proxy buffering SSE, notes on
long polling) but the server answers, the profile shows a yellow
"eingeschränkt" instead of "offline". A full connection now shows a
green "online" on the desktop too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:21:14 +01:00
sandrodachandClaude Opus 5.5 7fcd5a258c fix(ui): size the page to the visible screen on phones
min-h-screen is 100vh, which mobile browsers measure without the address
bar, so short pages could be scrolled into empty space. 100dvh follows
the visible height.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:17:50 +01:00
sandrodachandClaude Opus 5.5 e7d5db3e24 fix(auth): tab from the user name straight into the password field
"Passwort vergessen?" came first in the markup; it now follows the field
and keeps its place next to the label.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:17:50 +01:00
sandrodachandClaude Opus 5.5 0309b54a29 chore: release v0.54.0
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m55s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 11:04:23 +01:00
sandrodachandClaude Opus 5.5 161c33c3d7 feat(lists): switch lists from the title in the phone header
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 10:55:02 +01:00
sandrodachandClaude Opus 5.5 bd58b37156 fix(tasks): keep the task detail header tidy on phones
The origin badge overlapped the watch button; on phones it is left out of
the header (the details stand at the bottom), as is the squeezed title.
The watch button gets the height of its neighbours.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 10:55:02 +01:00
sandrodachandClaude Opus 5.5 e60e825b3c feat(mcp): agents can add, tick, rename and remove subtasks
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 10:40:17 +01:00
sandrodachandClaude Opus 5.5 0f17cc3c33 fix(workspace): keep a bullet's height when clicking into it
The focused textarea was inline-block and left room for descenders below
it, so the row grew by 6 px and everything below shifted on every click.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 10:40:17 +01:00
sandrodachandClaude Opus 5.5 8e3fa51d90 chore: release v0.53.0
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m51s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 21:27:48 +01:00
sandrodachandClaude Opus 5.5 78af2d306e feat(settings): hide the notes rights while MCP is off, mention notes in the API intro
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 21:24:28 +01:00
sandrodachandClaude Opus 5.5 a8f6c1b97b feat(mcp): agents can list, read and create notes
New scopes notes:read (list_notes, get_note, notes in search) and
notes:create (create_note from Markdown). MCP only, REST stays closed;
new notes go into shared folders only with write access.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 21:18:26 +01:00
sandrodachandClaude Opus 5.5 c6f28aa816 feat(mcp): operators can switch MCP (and OAuth) off
Admin switch in the system settings, MCP_ENABLED fixes it. Off: the
endpoint answers 404, OAuth is off, the API key settings hide the MCP tab.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 21:11:53 +01:00
sandrodachandClaude Opus 5.5 39a04082fc feat(workspace): bring an extracted note back into the bullet
A bullet that is only a link to a note (as left by /extract) gets a
"Notiz zurückholen" button. POST /documents/{id}/inline returns the
linked note's blocks with fresh ids and trashes the note; the editor
puts the title back as text and inserts the blocks as an own edit, so
Strg+Z restores the link and the note. Only own notes that no other
note links to. Release 0.52.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:13:53 +01:00
sandrodachandClaude Opus 5.5 75aea4a7d4 feat(mcp): OAuth so claude.ai and ChatGPT can connect as connectors
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m49s
MindSift becomes the OAuth authorization server for its own MCP
endpoint: discovery (RFC 9728/8414), dynamic client registration,
authorization code with PKCE (S256), rotating refresh tokens with reuse
detection. The consent page lives in the app at /oauth/authorize. A
grant is an api_keys entry (kind 'oauth'), so scopes, origin badges,
renaming and revoking work as for keys; tokens are valid for /mcp only.
Unused connections expire after OAUTH_IDLE_DAYS (default 90). Requires
BASE_URL; off in demo mode. Release 0.51.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 20:01:32 +01:00
sandrodachandClaude Opus 5.5 994f6dc554 feat(search): kind chips, large view with filters and context, tick tasks and list items right in the results
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m37s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 18:53:10 +01:00
sandrodachandClaude Opus 5.5 558fc46cf4 fix(search): open tasks and list items before completed ones
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m36s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 18:36:45 +01:00
sandrodachandClaude Opus 5.5 2bb0dec744 fix(tasks): a task opened by a link does not open again on every return to the tab
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 18:18:56 +01:00
sandrodachandClaude Opus 5.5 687389df64 docs(agents): the website repo belongs to another agent; do not touch it
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 18:07:47 +01:00
sandrodachandClaude Opus 5.5 7c9c71227a chore: relicense under the GNU AGPLv3
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m47s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 18:03:44 +01:00
sandrodachandClaude Opus 5.5 8238c8a73f feat(workspace): hashtag page shows the live outliner of each note's tagged branches, edited in place
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m45s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 17:54:14 +01:00
sandrodachandClaude Opus 5.5 ca56220e68 feat: link dialog finds bullets of all notes; richer sample data with help notes, deep nesting and linked to-dos
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m46s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 17:23:53 +01:00
sandrodachandClaude Opus 5.5 ae96aa5f2b feat(tasks): dictate into a task's detail notes
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 17:11:20 +01:00
sandrodachandClaude Opus 5.5 b48f0f2d59 docs: changelog for 0.45.2
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 16:57:15 +01:00
sandrodachandClaude Opus 5.5 a4e08bdff8 docs: bring README and Doku up to date with trash, retention, voice choice, undo, combined kanban and editor selection
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 16:56:56 +01:00
sandrodachandClaude Opus 5.5 3de6c6088b style: folders without arrow, hashtag row cut off with an expander
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 1m53s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 16:51:27 +01:00
sandrodachandClaude Opus 5.5 6fb98d4002 feat: select text across bullets and delete it like a text editor; Ctrl+Z in tasks; notes and lists without emoji; custom done columns complete tasks
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m33s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 16:27:43 +01:00
sandrodachandClaude Opus 5.5 e2b9daba75 fix: shift range from a pinned note in its folder; kanban fits the window; list toolbar; quick dump targets only select; aligned bullets; steady search field; browser voice waits 5 s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m28s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 16:12:01 +01:00
sandrodachandClaude Opus 5.5 5a9c5bac37 feat: task trash, triage trash and retention settings for every area; admin can forbid keeping things for good
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m39s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 15:44:34 +01:00
sandrodachandClaude Opus 5.5 a927a94a95 feat(voice): per-account choice between Whisper and the browser; STT_ALLOW_BROWSER
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 15:19:20 +01:00
sandrodachandClaude Opus 5.5 55112b940c feat: update notice after a server update, keep the open tab on reload, chunked Whisper in Quick Dump, compact emoji picker
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m31s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 15:09:21 +01:00