This website requires JavaScript.
cf2854a029
ktlint: a multiline .border() left the next '.' orphaned, exactly as #3110 records
dev
bvandeusen and Claude Opus 5
2026-09-01 19:01:09 -04:00
62338bb0a4
android: a link in a note renders as a link card, not a bare URL
bvandeusen and Claude Opus 5
2026-09-01 18:51:51 -04:00
1a41373347
board: a note trashed from search results now leaves the results
bvandeusen and Claude Opus 5
2026-09-01 18:51:51 -04:00
729d0dadf1
editor: collect the refund — the web editor autosaves on an idle pause
bvandeusen and Claude Opus 5
2026-09-01 18:26:05 -04:00
23a61365da
capture: the suggested shortcut is a UI affordance, so it lives in the UI
bvandeusen and Claude Opus 5
2026-09-01 18:13:31 -04:00
6c0153be1e
desktop: a global hotkey opens a small window to write in, now with its lockfile
bvandeusen and Claude Opus 5
2026-09-01 18:05:20 -04:00
10ea15bef0
Revert the desktop hotkey: a new crate needs a Cargo.lock this machine cannot write
bvandeusen and Claude Opus 5
2026-09-01 09:10:33 -04:00
42e06da576
desktop: a global hotkey opens a small window to write in, and nothing else
bvandeusen and Claude Opus 5
2026-09-01 09:02:39 -04:00
c8318c323a
android: Share → ThoughtSync, and a "New note" entry in the selection toolbar
bvandeusen and Claude Opus 5
2026-09-01 08:53:38 -04:00
cc50812a86
ktlint: the Tags imports landed after SyncScreen, and SyncState sorts after that
bvandeusen and Claude Opus 5
2026-08-31 19:53:08 -04:00
1e54b80f15
android: a Tags screen, so the phone can do more than attach tags to a note
bvandeusen and Claude Opus 5
2026-08-31 19:44:54 -04:00
550a34d8e2
fmt: rustfmt budgets macro arguments at 60 chars, not the 100-char line
bvandeusen and Claude Opus 5
2026-08-31 16:52:00 -04:00
193dfb9e94
tags: renaming onto an existing tag merges them, and the older row survives
bvandeusen and Claude Opus 5
2026-08-31 16:46:15 -04:00
8c7553d619
copy: the product says "tags" now, and the schema keeps saying Label
bvandeusen and Claude Opus 5
2026-08-31 15:53:28 -04:00
d838b27518
ffi: Kotlin could list and create a tag but never rename, recolour, delete or merge one
bvandeusen and Claude Opus 5
2026-08-31 15:52:00 -04:00
a69159e562
fmt: rustfmt breaks the tuple-index chain, and the desktop lane means it
bvandeusen and Claude Opus 5
2026-08-31 14:57:07 -04:00
c40916699b
sync: the client header said "desktop" from every phone, and named the wrong version
bvandeusen and Claude Opus 5
2026-08-31 08:40:01 -04:00
ef418a8c92
buttons: one definition of the shape, worn by a <button> and by an <a>
bvandeusen and Claude Opus 5
2026-08-31 08:08:01 -04:00
fd1e4ae487
downloads: five clients, and the page leads with the one that fits you
bvandeusen and Claude Opus 5
2026-08-31 07:58:17 -04:00
8a75e5f340
clients: an unquoted 1.0.3504551 is not JSON, and every sidecar was one
Bryan Van Deusen
2026-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 Deusen
2026-08-30 13:19:18 -04:00
ff6e99eb62
image: bake every client in, not just the phone
Bryan Van Deusen
2026-08-30 13:11:04 -04:00
ef8aa9340f
clients: the server hands out five platforms, not "the Android client"
Bryan Van Deusen
2026-08-30 12:52:40 -04:00
f992439588
version: every surface can say which build it is, and two of them were lying
Bryan Van Deusen
2026-08-29 23:07:29 -04:00
544cf72735
install: the stable fallback is dead now that stable publishes its own bundles
Bryan Van Deusen
2026-08-29 16:59:44 -04:00
b6673c6420
The guard fix, and the APK and image #4 never published (#5 )
main
bvandeusen
2026-08-29 14:19:50 -04:00
6e524ec616
guard: an empty channel killed the lane instead of passing it
Bryan Van Deusen
2026-08-29 13:45:26 -04:00
6c5a45e195
Checklists in the body, colour from tags, and commit-derived CalVer (#4 )
bvandeusen
2026-08-29 13:39:45 -04:00
c2fdc05e5c
release: a tag builds nothing and carries a changelog instead
bvandeusen and Claude Opus 5
2026-08-29 00:43:21 -04:00
fa43c2f4e9
ci: a docs-only merge to main produced no image, so no :<sha> for that commit
bvandeusen and Claude Opus 5
2026-08-29 00:32:27 -04:00
a0c789b3ba
docs: the image tag list said something step 6 stopped being true
bvandeusen and Claude Opus 5
2026-08-29 00:27:43 -04:00
22a9a279b1
ci: one definition of what ships decides both the version and whether to build
bvandeusen and Claude Opus 5
2026-08-29 00:19:16 -04:00
0ab7d94294
versioning: refuse to publish a version below what the channel already serves
bvandeusen and Claude Opus 5
2026-08-28 21:33:00 -04:00
6e891357ff
ci: the deriver is in the file sets but was not in the path filters
bvandeusen and Claude Opus 5
2026-08-28 21:11:26 -04:00
85ead4d66b
versioning: anchor at the repo root — a pathspec is relative to the caller's cwd
bvandeusen and Claude Opus 5
2026-08-28 21:03:04 -04:00
c5044339a1
versioning: each artifact derives from its own files, with the clock picked per value
bvandeusen and Claude Opus 5
2026-08-28 20:51:39 -04:00
c268ae4f23
ci: main publishes, so a tag stops being required — and :latest stops shipping a dev client
bvandeusen and Claude Opus 5
2026-08-28 18:22:31 -04:00
b7e0e5dbba
ffi: two items: lines left at the indent of the field above them
bvandeusen and Claude Opus 5
2026-08-28 14:23:10 -04:00
e14d9d340a
core: the v9 test pinned v8, and a blank line ktlint counted
bvandeusen and Claude Opus 5
2026-08-28 14:15:33 -04:00
fa89da1fab
notes: color leaves the model, the wire and all three surfaces
bvandeusen and Claude Opus 5
2026-08-28 14:07:03 -04:00
13a88179b8
tags: one ink, chip and inline, and the chip edge solved for 3:1
bvandeusen and Claude Opus 5
2026-08-28 13:13:43 -04:00
b91091caca
cards: one neutral surface, and the generated fill deleted with it
bvandeusen and Claude Opus 5
2026-08-28 10:55:51 -04:00
f50204a98b
editor: detekt counts returns, so the promotion guards collapse into one
bvandeusen and Claude Opus 5
2026-08-27 12:59:15 -04:00
1a49ae7ea9
editor: a - [ ] typed by hand becomes a real item when you leave the line
bvandeusen and Claude Opus 5
2026-08-27 12:50:43 -04:00
e7af7a4b77
board: the FAB and the undo snackbar rode behind the keyboard
bvandeusen and Claude Opus 5
2026-08-27 11:55:23 -04:00
396e91e609
board: ktlint on the long-press menu — a named modifier, three dead imports
bvandeusen and Claude Opus 5
2026-08-27 07:49:57 -04:00
3f0eef145b
board: a long press on a card does what the editor's overflow does
bvandeusen and Claude Opus 5
2026-08-27 07:40:29 -04:00
4f351c10ca
core: rustfmt wraps the chain in the tag-span grammar test
bvandeusen and Claude Opus 5
2026-08-26 22:23:46 -04:00
d9e5753dc2
board: a tag in the prose is coloured where it sits, not printed twice
bvandeusen and Claude Opus 5
2026-08-26 22:20:17 -04:00
8c22425e91
M311 step 3 — the core lifts too, so a note never lifts twice
bvandeusen and Claude Opus 5
2026-08-26 20:01:32 -04:00
9810a75564
M311 step 2 — the migration that lifts the notes already written
bvandeusen and Claude Opus 5
2026-08-26 19:54:26 -04:00
606e345580
Fix the rename that renamed itself
bvandeusen and Claude Opus 5
2026-08-26 19:48:50 -04:00
ad48d30c68
M311 step 1 — lift a tag that is standing on its own
bvandeusen and Claude Opus 5
2026-08-26 19:44:43 -04:00
23fd2da91e
The tag goes at the top of the card, where it gets looked at
bvandeusen and Claude Opus 5
2026-08-26 17:17:32 -04:00
3d490bb6f3
HSL lightness is not luminance — the dark floor was too low
bvandeusen and Claude Opus 5
2026-08-26 17:17:32 -04:00
86f1e4a08f
detekt: sector indices as a table, not a when
bvandeusen and Claude Opus 5
2026-08-26 17:08:20 -04:00
c255b170d4
ktlint: a stray blank line from the append
bvandeusen and Claude Opus 5
2026-08-26 17:01:40 -04:00
1d3cc7bcd4
Nine tints that looked like three — generate the fill instead
bvandeusen and Claude Opus 5
2026-08-26 16:55:50 -04:00
ae2053d2ed
Give the cards an edge again — one grey, not ten hues
bvandeusen and Claude Opus 5
2026-08-26 15:00:22 -04:00
47f108c9c8
The border was the thing making every note look the same
bvandeusen and Claude Opus 5
2026-08-26 14:21:42 -04:00
fe18aaa956
The contrast pass, and the invisible chip it found
bvandeusen and Claude Opus 5
2026-08-26 13:37:51 -04:00
20e9d535de
android: two more ktlint rules, both in the code I just added
bvandeusen and Claude Opus 5
2026-08-26 13:25:28 -04:00
988e1d3f00
A note's colour is its first tag's colour, at a heavier weight
bvandeusen and Claude Opus 5
2026-08-26 13:15:47 -04:00
6fbee27f9c
A tag with no colour of its own derives one from its name
bvandeusen and Claude Opus 5
2026-08-26 12:57:59 -04:00
cddaf35280
android: ktlint forces a multiline signature at two parameters
bvandeusen and Claude Opus 5
2026-08-26 12:38:23 -04:00
6f173b166b
Every note carries a tint, derived from its id
bvandeusen and Claude Opus 5
2026-08-26 12:26:01 -04:00
f92a3d0a99
android: detekt's return limit, on two functions I wrote after it caught me once
bvandeusen
2026-08-26 10:01:24 -04:00
1e2b42af25
android: say nothing until the update is downloaded, and only fetch on wifi
bvandeusen
2026-08-26 09:53:40 -04:00
a48b034a94
android: my insertion stole downloadTarget's doc comment
bvandeusen
2026-08-26 08:43:42 -04:00
ee47a61270
android: find updates without being asked, fetch them, then nag
bvandeusen
2026-08-26 08:34:28 -04:00
68f851110f
android: checklist rows were still 48dp of touch target
bvandeusen
2026-08-26 08:31:21 -04:00
96a6f6e691
web: the editor draws the checklist too
bvandeusen
2026-08-26 07:53:13 -04:00
44b3bcb2b2
Correct a claim about the operator's data, and the first-row delete
bvandeusen
2026-08-26 07:44:31 -04:00
a45a44ef11
android: split the block model from the block UI
bvandeusen
2026-08-26 07:13:27 -04:00
56264a9220
android: the checklist rows were carrying a form field's padding
bvandeusen
2026-08-26 07:03:15 -04:00
a88f7c2dd0
core: drop the two helpers the block editor made unnecessary
bvandeusen
2026-08-24 10:42:26 -04:00
32ec29fc4a
android: the comment pointed at the file's old name
bvandeusen
2026-08-24 10:32:55 -04:00
ae17b8a8e7
android: name the file after the type in it
bvandeusen
2026-08-24 10:32:45 -04:00
eeca4d48c2
android: a trailing blank line where the dead helpers used to be
bvandeusen
2026-08-24 10:23:59 -04:00
b2435d97b6
android: the editor draws the checklist instead of the markup for one
bvandeusen
2026-08-24 10:14:53 -04:00
9a3c4ec377
android: ticking a box on a card threw the editor open on top of it
bvandeusen
2026-08-24 09:59:00 -04:00
315c5f19e6
android: detekt caught a callback that never reached the cards
bvandeusen
2026-08-24 08:35:52 -04:00
1a66d9c3a8
tests: pin the export against writing every checklist twice
bvandeusen
2026-08-24 08:26:50 -04:00
77b1a87712
android: ktlint on the import order and a leftover blank line
bvandeusen
2026-08-24 08:26:01 -04:00
68b2a5dc8d
android: a checklist is lines of the note here too
bvandeusen
2026-08-24 08:16:57 -04:00
3cab054684
web: task lines render as checkboxes where they sit in the note
bvandeusen
2026-08-24 08:10:20 -04:00
fe1f72ae1b
tests: the display-title tests still passed the argument that went away
bvandeusen
2026-08-24 08:06:11 -04:00
761c3b5e82
server: the body is the checklist here too, and note_items is dropped
bvandeusen
2026-08-24 08:03:37 -04:00
32dafca148
core: what rustfmt actually wanted
bvandeusen
2026-08-24 00:49:05 -04:00
668f7faf03
core: the body is the checklist, and checklist_items is gone
bvandeusen
2026-08-24 00:41:23 -04:00
d0e3e48943
core: rustfmt splits on fn_call_width, not max_width
bvandeusen
2026-08-24 00:28:08 -04:00
1045db318b
core: derive checklist items from the body, the way tags already are
bvandeusen
2026-08-24 00:20:32 -04:00
65af37d159
android: a checkmark to leave, and asking for a checklist stops writing a blank one
bvandeusen
2026-08-23 23:50:30 -04:00
8257e1035c
android: put the way out of a note back within reach
bvandeusen
2026-08-23 23:46:03 -04:00
bca9e16bd0
android: ktlint wants that body expression on one line
bvandeusen
2026-08-23 22:30:56 -04:00
9ea2a2f9b6
android: the toolbar moves to the top, and the note says when it saved
bvandeusen
2026-08-23 22:26:12 -04:00
ce6a1093a3
android: writing a note and editing one are the same surface
bvandeusen and Claude Opus 5
2026-08-23 22:14:02 -04:00
2707054563
A write should not cost a revision
bvandeusen and Claude Opus 5
2026-08-23 21:47:01 -04:00
24685556b7
android: open an existing note ready to keep writing
bvandeusen and Claude Opus 5
2026-08-23 21:00:57 -04:00
50e2d308ea
android: the editor toolbar was black icons on a near-black bar
bvandeusen and Claude Opus 5
2026-08-23 17:40:28 -04:00