-
b7e0e5dbba
ffi: two
items: lines left at the indent of the field above them

bvandeusenandClaude Opus 5
2026-08-28 14:23:10 -04:00
-
e14d9d340a
core: the v9 test pinned v8, and a blank line ktlint counted

bvandeusenandClaude Opus 5
2026-08-28 14:15:33 -04:00
-
fa89da1fab
notes:
color leaves the model, the wire and all three surfaces

bvandeusenandClaude 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

bvandeusenandClaude Opus 5
2026-08-28 13:13:43 -04:00
-
b91091caca
cards: one neutral surface, and the generated fill deleted with it

bvandeusenandClaude Opus 5
2026-08-28 10:55:51 -04:00
-
f50204a98b
editor: detekt counts returns, so the promotion guards collapse into one

bvandeusenandClaude 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

bvandeusenandClaude Opus 5
2026-08-27 12:50:43 -04:00
-
e7af7a4b77
board: the FAB and the undo snackbar rode behind the keyboard

bvandeusenandClaude Opus 5
2026-08-27 11:55:23 -04:00
-
396e91e609
board: ktlint on the long-press menu — a named modifier, three dead imports

bvandeusenandClaude 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

bvandeusenandClaude Opus 5
2026-08-27 07:40:29 -04:00
-
4f351c10ca
core: rustfmt wraps the chain in the tag-span grammar test

bvandeusenandClaude 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

bvandeusenandClaude Opus 5
2026-08-26 22:20:17 -04:00
-
8c22425e91
M311 step 3 — the core lifts too, so a note never lifts twice

bvandeusenandClaude Opus 5
2026-08-26 20:01:32 -04:00
-
9810a75564
M311 step 2 — the migration that lifts the notes already written

bvandeusenandClaude Opus 5
2026-08-26 19:54:26 -04:00
-
606e345580
Fix the rename that renamed itself

bvandeusenandClaude Opus 5
2026-08-26 19:48:50 -04:00
-
ad48d30c68
M311 step 1 — lift a tag that is standing on its own

bvandeusenandClaude 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

bvandeusenandClaude Opus 5
2026-08-26 17:17:32 -04:00
-
3d490bb6f3
HSL lightness is not luminance — the dark floor was too low

bvandeusenandClaude Opus 5
2026-08-26 17:17:32 -04:00
-
86f1e4a08f
detekt: sector indices as a table, not a when

bvandeusenandClaude Opus 5
2026-08-26 17:08:20 -04:00
-
c255b170d4
ktlint: a stray blank line from the append

bvandeusenandClaude Opus 5
2026-08-26 17:01:40 -04:00
-
1d3cc7bcd4
Nine tints that looked like three — generate the fill instead

bvandeusenandClaude Opus 5
2026-08-26 16:55:50 -04:00
-
ae2053d2ed
Give the cards an edge again — one grey, not ten hues

bvandeusenandClaude Opus 5
2026-08-26 15:00:22 -04:00
-
47f108c9c8
The border was the thing making every note look the same

bvandeusenandClaude Opus 5
2026-08-26 14:21:42 -04:00
-
fe18aaa956
The contrast pass, and the invisible chip it found

bvandeusenandClaude Opus 5
2026-08-26 13:37:51 -04:00
-
20e9d535de
android: two more ktlint rules, both in the code I just added

bvandeusenandClaude 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

bvandeusenandClaude Opus 5
2026-08-26 13:15:47 -04:00
-
6fbee27f9c
A tag with no colour of its own derives one from its name

bvandeusenandClaude Opus 5
2026-08-26 12:57:59 -04:00
-
cddaf35280
android: ktlint forces a multiline signature at two parameters

bvandeusenandClaude Opus 5
2026-08-26 12:38:23 -04:00
-
6f173b166b
Every note carries a tint, derived from its id

bvandeusenandClaude 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

bvandeusenandClaude Opus 5
2026-08-23 22:14:02 -04:00
-
2707054563
A write should not cost a revision

bvandeusenandClaude Opus 5
2026-08-23 21:47:01 -04:00
-
24685556b7
android: open an existing note ready to keep writing

bvandeusenandClaude Opus 5
2026-08-23 21:00:57 -04:00
-
50e2d308ea
android: the editor toolbar was black icons on a near-black bar

bvandeusenandClaude Opus 5
2026-08-23 17:40:28 -04:00
-
77c5422951
ci: a failing lane must not publish an image

bvandeusenandClaude Opus 5
2026-08-23 16:52:59 -04:00
-
1b3e29e4f6
0.2.0 — a notebook in your pocket, ready to be hosted (#3)
v26.08.23
bvandeusen
2026-08-23 16:38:00 -04:00
-
-
-
-
c851b901df
The proxy-hops test still read the value from Config

bvandeusenandClaude Opus 5
2026-08-23 16:31:21 -04:00
-
abe01da5f7
compose: say which of the three deployment shapes you're in
bvandeusen
2026-08-23 15:30:01 -04:00
-
09b5f874b6
Security values move into the Settings UI
bvandeusen
2026-08-23 15:24:15 -04:00
-
a85c53ba2c
Trust proxy headers by hop count, and log every credential event
bvandeusen
2026-08-23 15:12:14 -04:00
-
2141a0ac45
Registration closes itself once the instance has an owner
bvandeusen
2026-08-23 14:18:58 -04:00
-
1aca294b95
Bump to 0.2.0 — a release at 0.1.0 would have been a downgrade
bvandeusen
2026-08-23 14:02:02 -04:00
-
7033995975
search is a facet on the board, not a place you go
bvandeusen
2026-08-23 10:58:23 -04:00
-
de72d27bd4
URLs unfurl on their own, and a lone link becomes the note
bvandeusen
2026-08-23 01:05:37 -04:00
-
c99cbb3e14
cards: clamp the web note preview, as Android always has
bvandeusen
2026-08-23 01:00:39 -04:00
-
6f21db85a1
ci: an integration lane, so the migrations are finally run by something
bvandeusen
2026-08-23 00:24:57 -04:00
-
924ddb20db
notes: saveEdit still asked for a title
bvandeusen
2026-08-22 21:38:13 -04:00
-
95aa10c2c3
Remove the title field — a note is named by its first line
bvandeusen
2026-08-22 19:33:57 -04:00
-
6d778f26a7
Fix the ktlint and compat-test failures, and start using the Rust gate
bvandeusen
2026-08-22 14:51:38 -04:00
-
33e9278975
Fix three breaks the removals left behind
bvandeusen
2026-08-22 13:25:26 -04:00
-
c46a4a7709
A checklist is something a note has, not something a note is
bvandeusen
2026-08-22 12:53:53 -04:00
-
229076c82d
sync: stop deleting a note's checklist items because it isn't a "list"
bvandeusen
2026-08-22 12:45:14 -04:00
-
ad21eac5bc
editor: drop the adapter import that went with backlinks
bvandeusen
2026-08-22 12:44:33 -04:00
-
bc22f8e249
Remove [[wiki-links]], backlinks and the graph
bvandeusen
2026-08-22 12:00:57 -04:00
-
982d24c83b
links: bind a [[link]] to a note, not to a string
bvandeusen
2026-08-22 11:02:39 -04:00
-
bacedea8a3
tests: seed the throttle counters on the clock the routes actually read
bvandeusen
2026-08-21 22:03:19 -04:00
-
b6152ec18b
server: harden the surfaces a public deployment leaves exposed
bvandeusen
2026-08-21 22:01:37 -04:00
-
16f86bef93
web: make the board usable on a phone, not just reachable
bvandeusen
2026-08-21 21:55:46 -04:00
-
867405fae2
M12 — the Android client, end to end (#2)
bvandeusen
2026-08-21 08:53:57 -04:00
-
-
-
-
81695fa0c8
android: update the app from the server it syncs with (2727, M12 step 7)
bvandeusen
2026-08-21 08:44:08 -04:00
-
0cf77336d4
ci: build the server image after the Android lane, not alongside it
bvandeusen
2026-08-20 21:46:05 -04:00
-
010e9a2f85
server: bake the newest Android client into every image (operator call)
bvandeusen
2026-08-20 21:19:47 -04:00
-
43ebb6eceb
packaging: the rolling-release prune was eating the Android client
bvandeusen
2026-08-20 20:31:03 -04:00
-
e6da720e6b
packaging: drop assets that aren't there, instead of trusting nullglob
bvandeusen
2026-08-20 20:20:58 -04:00
-
d77a79859c
server: hand out the Android client this server syncs with (2726)
bvandeusen
2026-08-20 20:11:32 -04:00
-
6589be2b0f
android: unit tests are a debug-only task, and the artifact name says variant
bvandeusen
2026-08-20 19:23:53 -04:00
-
cae9888eb9
android: build the release APK with a debug-profile .so, for now
bvandeusen
2026-08-20 19:16:03 -04:00
-
d0a9c73bf9
android: sign the release build, and give it a version that rises
bvandeusen
2026-08-20 19:03:57 -04:00
-
f38864088b
core: a completed recurring reminder advances instead of ending
bvandeusen
2026-08-19 21:22:22 -04:00
-
8f13dc2e2c
android: restore the dismiss I deleted, and teach the checker to see it
bvandeusen
2026-08-19 20:13:43 -04:00
-
785ebdba59
android: reminders that actually reach you (M12 step 6)
bvandeusen
2026-08-19 20:06:05 -04:00