- 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>
- 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>
- 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>
- 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>
- 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>
- README: current features (journal, focus mode, push, themes, sharing
into the inbox), outgoing connections, :latest instead of :stable,
VAPID_* and LEGAL_CUSTOM_LINK_*, new journal and phone screenshots
- e2e/screenshots.sh: light and dark in the same state joined along a
diagonal, own container/port per run
- hashtag tiles at least 18rem wide
chore(release): v0.15.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- /li lists /link first: name prefix, aliases, name, then description
- link cards about twice as tall; the bare address below becomes an accent
link marker; the link chip bar under bullets is gone, bare web addresses
in text are links themselves
chore(release): v0.14.3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Fjord (new), Polarized Hell and Suri Hell complete the families
Klassik, Fjord, Terrakotta, Polarized, Suri
- settings: family table, follow-system, corners, button frames and an own
accent colour (per device); compact quick picker in the user menus
- code colours in index.css are fallbacks only
chore(release): v0.14.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- dark counterpart of Terrakotta; Soft users move to it
- add tailwindcss-animate: the existing animate-in/fade/slide classes now
run; menus zoom in, sheets slide up, notes slide in on phones
- no animations with reduced motion
chore(release): v0.13.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- the workspace fills the window; only the note scrolls (also on phones, where the
sideways scroll area used to scroll on its own)
- clear drag state on dragend, calmer sidebar toggle when collapsed
- ship Inter as variable font, light and larger note titles; header shows the
title only after the big title scrolled away and stays one row on phones
- main builds show the package version without -dev
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The + button and the menu entry focused the new-item field 60 ms after
the tap; iOS only opens the keyboard for focus() inside the user gesture,
so the field was selected but nothing could be typed. Focus now happens
right in the tap. The list inputs use 16px on phones, so iOS no longer
zooms in and pushes the field under the keyboard. Version 0.5.2.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Hold-to-record opened the sheet on pointerup; the click the browser sends
right after landed on the new sheet's backdrop and closed it at once.
Lists and notes have no such backdrop and kept working. A short tap now
opens on the click itself (as before), and after a hold that click is
ignored. Tests send the real pointerup + click sequence. Version 0.5.1.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
eslint.config.js with the recommended JS/TypeScript rules and the React
hooks rules; npm run lint runs ESLint and is part of the image build.
Errors fail the build, the 24 exhaustive-deps findings stay warnings.
It found two real bugs: TaskDetailModal and ManageColumnsModal called
their hooks after 'if (!isOpen) return null', so the hook count changed
whenever the dialog opened or closed. Both are now a thin wrapper plus a
content component. Also removes unused imports and dead code (old task
list share handlers, an unused realtime status, an unused rollup).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Import of MindSift data (add or restore) and Obsidian vaults, backup as ZIP
- Danger zone (delete own data / account), last admin protected
- Repeating tasks, SMTP AUTH LOGIN fallback and port fix
- Mobile: sheets above the keyboard, emoji picker fixes, blue splash screen
- Package version 0.4.0, README badge/screenshots renewed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>