e75e3d37d0
web: shared note actions, reminder chips, page header, formatters and settings seam
bvandeusenandClaude Opus 5.52026-10-07 20:02:18 -04:00
05c82c2362
core, desktop: Db::conn everywhere, Change::default, notes_where, and shared row mappings
bvandeusenandClaude Opus 5.52026-10-07 19:57:24 -04:00
646a115701
server: one credential check, one coerce_bool, one top-position query, and the shared response helpers
bvandeusenandClaude Opus 5.52026-10-07 19:55:01 -04:00
b8f13cfc4a
tests: the share ACL test's final body no longer expects the removed add-item route's eggs
bvandeusenandClaude Opus 5.52026-10-07 19:13:44 -04:00
5e8c6dc7bf
android: detekt — check the link before loading shares, and NoteAccess gets its own file
bvandeusenandClaude Opus 5.52026-10-07 15:52:21 -04:00
f53d377766
sharing: share a note from the web, at view or edit, with anyone on the instance
bvandeusenandClaude Opus 5.52026-10-07 15:01:53 -04:00
f100e5ef85
tests: the self-revoke routing check reads the URL map; its 400 moves to Postgres
bvandeusenandClaude Opus 5.52026-10-07 14:41:44 -04:00
3dd0b44cb9
password reset: an admin makes a one-hour link, and using it signs the account out everywhere
bvandeusenandClaude Opus 5.52026-10-07 14:35:58 -04:00
28fa8badcb
invites: an admin lets one person register while registration stays closed
bvandeusenandClaude Opus 5.52026-10-07 13:13:03 -04:00
5989ffc1c6
desktop: Import and Export work offline; the menu toggle is reachable; errors say why
bvandeusenandClaude Opus 5.52026-10-07 11:36:42 -04:00
efb141e555
desktop: syncs on its own — at launch, soon after an edit, every few minutes and on focus
bvandeusenandClaude Opus 5.52026-10-06 23:40:27 -04:00
09239ee3c7
web: the app's type-check leaves the unit tests out; CI checks them separately
bvandeusenandClaude Opus 5.52026-10-06 23:34:14 -04:00
38da5160a0
grammar: a #tag starts after whitespace and with a letter, on every surface
bvandeusenandClaude Opus 5.52026-10-06 23:22:53 -04:00
535331c5b2
tests: one fixture for the note grammar, run by the core, the server and the web
bvandeusenandClaude Opus 5.52026-10-06 23:11:26 -04:00
72968897ab
channels: the dev channel publishes on dev-rolling, so its tag stops shadowing the branch
bvandeusenandClaude Opus 52026-09-10 18:34:11 -04:00
729d0dadf1
editor: collect the refund — the web editor autosaves on an idle pause
bvandeusenandClaude Opus 52026-09-01 18:26:05 -04:00
23a61365da
capture: the suggested shortcut is a UI affordance, so it lives in the UI
bvandeusenandClaude Opus 52026-09-01 18:13:31 -04:00
6c0153be1e
desktop: a global hotkey opens a small window to write in, now with its lockfile
bvandeusenandClaude Opus 52026-09-01 18:05:20 -04:00
10ea15bef0
Revert the desktop hotkey: a new crate needs a Cargo.lock this machine cannot write
bvandeusenandClaude Opus 52026-09-01 09:10:33 -04:00
42e06da576
desktop: a global hotkey opens a small window to write in, and nothing else
bvandeusenandClaude Opus 52026-09-01 09:02:39 -04:00
c8318c323a
android: Share → ThoughtSync, and a "New note" entry in the selection toolbar
bvandeusenandClaude Opus 52026-09-01 08:53:38 -04:00
cc50812a86
ktlint: the Tags imports landed after SyncScreen, and SyncState sorts after that
bvandeusenandClaude Opus 52026-08-31 19:53:08 -04:00
1e54b80f15
android: a Tags screen, so the phone can do more than attach tags to a note
bvandeusenandClaude Opus 52026-08-31 19:44:54 -04:00
550a34d8e2
fmt: rustfmt budgets macro arguments at 60 chars, not the 100-char line
bvandeusenandClaude Opus 52026-08-31 16:52:00 -04:00
193dfb9e94
tags: renaming onto an existing tag merges them, and the older row survives
bvandeusenandClaude Opus 52026-08-31 16:46:15 -04:00
8c7553d619
copy: the product says "tags" now, and the schema keeps saying Label
bvandeusenandClaude Opus 52026-08-31 15:53:28 -04:00
d838b27518
ffi: Kotlin could list and create a tag but never rename, recolour, delete or merge one
bvandeusenandClaude Opus 52026-08-31 15:52:00 -04:00
a69159e562
fmt: rustfmt breaks the tuple-index chain, and the desktop lane means it
bvandeusenandClaude Opus 52026-08-31 14:57:07 -04:00
c40916699b
sync: the client header said "desktop" from every phone, and named the wrong version
bvandeusenandClaude Opus 52026-08-31 08:40:01 -04:00
ef418a8c92
buttons: one definition of the shape, worn by a <button> and by an <a>
bvandeusenandClaude Opus 52026-08-31 08:08:01 -04:00
fd1e4ae487
downloads: five clients, and the page leads with the one that fits you
bvandeusenandClaude Opus 52026-08-31 07:58:17 -04:00
8a75e5f340
clients: an unquoted 1.0.3504551 is not JSON, and every sidecar was one
Bryan Van Deusen2026-08-30 13:21:03 -04:00
d2f9d316cf
tests: 300 comes back as "300" from a platform whose key is not an integer
Bryan Van Deusen2026-08-30 13:19:18 -04:00
85ead4d66b
versioning: anchor at the repo root — a pathspec is relative to the caller's cwd
bvandeusenandClaude Opus 52026-08-28 21:03:04 -04:00
c5044339a1
versioning: each artifact derives from its own files, with the clock picked per value
bvandeusenandClaude Opus 52026-08-28 20:51:39 -04:00
c268ae4f23
ci: main publishes, so a tag stops being required — and :latest stops shipping a dev client
bvandeusenandClaude Opus 52026-08-28 18:22:31 -04:00