Repository navigation
Catch 0.3.2
First release. Promotes 0.3.2-preview to stable unchanged. Includes the changes from 0.1.0-preview, 0.2.0-preview, 0.2.1-preview, 0.2.2-preview, 0.2.3-preview, 0.2.4-preview, 0.3.0-preview, 0.3.1-preview.
Breaking changes
- tags: add nested tags and search filters (#3)
- clients and servers now require API protocol 2. Upgrade the server before clients; queued writes and device notes retain their existing formats.
- security: harden exposed servers and add admin invites (#5)
- sign-up is closed after the first account by default; set REGISTRATION=open to add accounts. The bare session token from a sign-in response body is no longer accepted as a bearer token; use the set-auth-token header value. Restoring a backup signs everyone out except the admin who started it.
- sync: enforce client/server protocol compatibility (946e485)
- Data APIs now require a supported X-Catch-Protocol header. Existing clients must update to protocol 1; new clients pause sync against unversioned servers.
Features
- settings: swipe to exit mobile settings (#20)
- release: generate release notes and a changelog from tags and commits (#15)
- dev: seed nested tags and tagged demo notes (696fd48)
- release: add manual channel and version bump workflow (#11)
- web: prompt to reload outdated browser builds (#7)
- links: add rich link capture and bookmarklet intake (d9a0a4b)
- ui: soften and stagger initial content entry (4ade3ff)
- header: scroll to top when tapping the title pill (dd0888b)
- branding: formalize full decoration and shrink header lockups (dd4f150)
- branding: refresh login and update page branding (89633a5)
- branding: trial motion marks in 36px header lockups (26d1bfd)
- branding: add scrolling wordmark to tab page headers (8e3d8f6)
- branding: integrate outlined Catch wordmark lockups (159e7a3)
- editor: add inset scrollbars to open notes (e535fe3)
- gallery: toggle single-column layout in narrow containers (69c06b0)
- sharing: receive incoming Android and PWA shares (a980915)
- notes: add undo toast for archiving a note (1844c2f)
- settings: add version page and Android app updates (8ef6af3)
- ci: reuse checks and coordinate releases by commit (3a6d266)
- backups: add server backups, restore and pre-update backups for admins (bde0780)
- admin: add user management and password controls (9df1e7f)
- branding: integrate blue development build icons (0450781)
- release: add an undistributed dev channel as the default (1be3c45)
- branding: apply preview icons by release channel (fad7f0b)
- refine media viewer controls and row interactions (d35c892)
- fade media viewer in and out (210d13d)
- dismiss media details with a downward image swipe (ab62db1)
- reveal media details by swiping up on images (0fe6f1e)
- streamline narrow media viewer with draggable details (c54811a)
- add media to preview overlay and soften tray dismissal (799ecbc)
- make the attachment viewer immersive and interactive (fe7e97c)
- import Keep attachments and refine media interactions (68b3071)
- add offline attachments with media previews and capture (f3333a1)
- web: dismiss link previews with swipe (9823a77)
- web: keep notes on the device and queue writes offline (31d2d73)
- server: make note and column writes safe to replay (fd94e78)
- web: add dismissible top toasts (c2d116c)
- links: rich previews for the links in notes (d13b592)
- settings: give Settings its own page with General and Account (bc268cd)
- header: share the collapsing title header across dock pages (2f5f387)
- dock: hold the deck button to pick a column (ccb13f5)
- deck: select notes and move them in bulk as a stack (f0bcc86)
- deck: reorder columns with drag handles (754d8c4)
- note-editor: add block insertion menu (4ddf6ba)
- quick-note: support swipe-up expansion (606f9f4)
- deck: customize columns and refine sheet interactions (488f175)
- gallery: animate title into the header (c344625)
- web: show an open note beside the page on tablets and foldables (02f8b78)
- worktrees: add bulk worktree removal (01d4d12)
- web: animate the Gallery header on scroll (15de0fa)
Fixes
- tags: tag existing notes when linking colors (#21)
- ui: show toasts below the header on phones, in the header's glass (#26)
- tags: focus new tag names and follow keyboard animations (#22)
- editor: remove the tags sidebar card (#25)
- gallery: animate card widths and page gutters when columns resize (#24)
- ui: preserve shadows around floating surfaces (#18)
- editor: animate attachment picker transitions (#17)
- release: name the image and APK inside the jobs that use them (#16)
- sync: keep static dev sessions and cached notes usable (1c6dac9)
- editor: smooth note return transitions and header blur (e80754a)
- notes: recognize quick-note swipes across the popup (0796f8c)
- header: keep the tab title and brand clear of the controls and status bar (72517a0)
- e2e: wait across frames before aiming touch gestures (ef557af)
- ci: build pinned Electric source when its image is unavailable (20a9cdf)
- e2e: isolate Vite state and await attachment insertion (4422eb7)
- notes: open card move picker in a popover (87223dd)
- editor: enable attachments immediately when opening notes (ee33c20)
- notes: open a card pressed while its thumbnail loads (886887d)
- editor: let a note reopened while closing close again (024a33f)
- dev: keep a worktree's project name valid when its branch slug is cut (8a4e73a)
- settings: show channel icon on update page (60d26a8)
- release: query paginated releases with standalone jq (8509885)
- ci: provision ffmpeg and wait for captured media to sync (b783661)
- editor: keep the page still and the transition whole when a note opens (2236643)
- dev: install host dependencies when the Capacitor CLI is missing (626b149)
- branding: match approved preview violet gradient (53a48d4)
- restore media playback and generate video previews (ca7cc72)
- dev: keep pnpm store volume owned by the host user (a91d192)
- remove media header seam and wait for decoded preview to fade in (7fc1a0e)
- align media viewer navigation and control surfaces (d3d9d3f)
- android: hide WebView and CSS scrollbars (1bb653d)
- web: center quick note and slide dock in split view (4d07d24)
- web: skip empty note updates (1b487ca)
- dock: keep the dock's size steady through page transitions (43ed450)
- header: start the tab title expanded after switching pages (3071b72)
- deck: animate collapsing and expanding columns (378a250)
- gallery: extend top blur across split view (fd574e6)
- web: add spacing above page titles (4a292e2)
- dock: fold gallery switcher for quick notes (0668cab)
- web: preserve shadows in split note pane (c98b9d7)
- dev: start stack before Android install (d02876a)
Performance
- dev: persist pnpm verification cache (ba9d3a2)
Other changes (79)
- docs: license Catch under MIT (#28)
- docs(ci): stop requiring PR branches to be up to date with main (#27)
- ci: allow full E2E runs before merge approval (#23)
- chore: drop personal notes and regenerate the video fixture (#14)
- test(e2e): wait for the first note to sync before cutting off the API (#12)
- docs(review): let agents request AI reviews for higher-risk changes (#10)
- ci(release): build Android and Docker images in parallel (#8)
- ci(review): add opt-in cubic reviews (#6)
- test(e2e): stabilize bookmarklet popup lifecycle (#4)
- ci: gate PR E2E behind merge approval (#1)
- style(web): enlarge stacked login branding (72d63cf)
- ci: download the cached image layers before the stack builds (ecfc88c)
- ci: keep one copy of the development image cache (2e2814b)
- ci: split e2e over shards and cache its setup (bba9593)
- test(e2e): cut setup time and run layout-independent tests once (51eade4)
- test(e2e): stabilize editor focus and transition waits (7684fe1)
- test(e2e): steady tests that fail on a busy machine (245a467)
- test(e2e): open the Embed tab in the image embed test (32ee068)
- test(e2e): fix stale dock layout check and fling race in list drag (fc34c89)
- ci(e2e): run each project on its own runner (7acf68b)
- Render only the gallery cards near the viewport (592a3fb)
- ci(release): add tagged image and APK releases (45f1639)
- Keep undo and redo in the split-view header (81bc502)
- Keep the sync pill centered when history controls appear (1a7c93f)
- Add animated undo and redo controls to the note editor (1c5dde3)
- Improve mobile note layout and sync status motion (67148f6)
- refactor(dock): use dashboard icon for Gallery tab (84832a5)
- Unify note move controls with a destination picker (8063f82)
- Require agents to use their assigned worktree (a1f9d04)
- Fix editor popups losing focus to blank-space clicks (2924ba0)
- Add Google Keep import under Settings > Data Management (5a989ca)
- docs: clarify worktree merge and push guidance (e81fd97)
- Return to the original Catch link after login (84c797d)
- Keep note caret visible above the virtual keyboard (256ace1)
- Improve mobile list controls and align checklist previews (83dc421)
- Fix slash menu placement and add toolbar shortcut (5b5fe81)
- Apply Gentle Drop branding to web and Android (f1b2885)
- Limit concurrent end-to-end test load (cb4eff8)
- Extend bottom blur across split view (48e701d)
- docs: record offline persistence in ADR 0007 (839a5c4)
- test(web): reuse jsdom workers (ff39007)
- Add conditional bottom edge blur (a20397d)
- style(web): increase gallery top spacing (17085be)
- Move search color filters above dock with mouse drag (b164924)
- style(deck): match the drop zones to the dock's glass (34abff5)
- ci: trigger checks manually (8b6653b)
- Reorder deck notes with one drag gesture (a61e864)
- Show an open note as a card between its toolbars (fb9145f)
- Trigger Gallery title crossfade at scroll threshold (db7311c)
- Select notes with a long press, as in Keep (a47c7f0)
- Refresh Catch branding from original icon (9f1b5e1)
- Rearrange gallery notes by dragging, as in Keep (d59d635)
- Improve mobile formatting toolbar and blank-space editing (8826872)
- Add bidirectional swipe dismissal for open notes (fe32242)
- Use Catch mark across web and Android branding (757c842)
- Add swipe to archive in gallery (f52b987)
- Hide icon tooltips in Android app (a4b5339)
- Match editor header corners to dock (5efe3a4)
- Style editor header actions as glass pills (dabeb68)
- Refine gallery switcher and mobile note interactions (d8a84a4)
- Grow the dock into a gallery switcher; blur behind the dock again (2b3a425)
- Fade the editor out cleanly when its card is gone; lower the dock (1d5155a)
- Turn the dock into the open note's toolbar (a3f70f6)
- Follow the finger itself when turning deck columns during a drag (832860c)
- Turn deck columns one at a time while dragging (1328896)
- Soften the dock and accent: apricot brand, squarer dock, icon-only tabs (b912f55)
- Soften the start of note and page transitions (1d9d299)
- Ease note and page transitions out instead of bouncing (cfa0e2c)
- Spring the note and page transitions; stop the editor text jumping on open (d354288)
- Slide between pages and return the dock indicator from search (4586788)
- Track the Android keyboard and add a touch formatting bar (6260605)
- Prefill the seeded admin login in development builds (d2c20e1)
- Redesign the app for Android: dock, quick notes, and card-to-editor transitions (8e1982b)
- Add next steps and outstanding items (5d439a0)
- Add live-reload Android workflow (fbb5826)
- Port the note-taking baseline from catch-old (ce3082e)
- Create volume mount points as the host user (76951f8)
- Run each Git worktree in its own isolated Docker stack (27c4a02)
- Scaffold Catch on an agent-friendly stack (87074cf)
Full changelog: https://github.com/iiloni/catch/commits/v0.3.2
Release details
Channel: stable
Docker image: ghcr.io/iiloni/catch:0.3.2
Pinned Docker image: ghcr.io/iiloni/catch@sha256:2fe4b47c310ada9c7f9ec9791ec20286113d8e8692b40516f4a393e80d27a189
Source commit: 007a56fe1815212a17158fb73a57a1b271fd1d59
Android version code: 12
Download the signed APK and its SHA-256 checksum below. Stable and preview Android apps can be installed together.