-
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
-
39170b715c
android: leaving the composer keeps the note, and the board loses its dead space
bvandeusen
2026-08-19 19:39:40 -04:00
-
5680f046e3
android: name all four permissions WorkManager adds, not one
bvandeusen
2026-08-19 19:11:19 -04:00
-
452c66c8ef
android: sync without being asked (M12 step 6)
bvandeusen
2026-08-19 19:04:45 -04:00
-
64542ed6cb
android: pull the board down to sync (M12 step 6)
bvandeusen
2026-08-19 16:36:56 -04:00
-
65d8f5f9c6
android: the import ktlint and detekt cannot see
bvandeusen
2026-08-19 15:51:12 -04:00
-
750d11d32e
android: connect a server from the phone (M12 step 6)

bvandeusenandClaude Opus 5
2026-08-19 15:41:02 -04:00
-
cf0ce382a0
android: the note editor (M12 step 6)

bvandeusenandClaude Opus 5
2026-08-19 11:18:24 -04:00
-
64e016f32d
android: phone-shaped chrome and the real note card (M12 step 6)

bvandeusenandClaude Opus 5
2026-08-19 09:23:00 -04:00
-
eb3dc3d893
gitignore: don't let a downloaded APK into history

bvandeusenandClaude Opus 5
2026-08-19 08:31:44 -04:00
-
c8af808432
android: package only the ABIs we actually build for

bvandeusenandClaude Opus 5
2026-08-18 16:24:37 -04:00
-
5eab2dd0b3
android: the error enum has to be flat, or the bindings don't compile

bvandeusenandClaude Opus 5
2026-08-18 16:15:46 -04:00
-
dee71dffb3
android: teach the linters this codebase's conventions, and fix two real nits

bvandeusenandClaude Opus 5
2026-08-18 16:04:40 -04:00
-
5d0de7a682
android: the binding generator gets its own crate, free of the app's deps

bvandeusenandClaude Opus 5
2026-08-18 15:54:10 -04:00
-
3d3df1beb0
android: register generated sources through the Variant API

bvandeusenandClaude Opus 5
2026-08-18 15:43:57 -04:00
-
f179928c57
android: run ktlint and detekt from the image, not as Gradle plugins

bvandeusenandClaude Opus 5
2026-08-18 15:35:17 -04:00
-
20907abf6e
android: a Kotlin/Compose app that drives the Rust core (M12 step 5)

bvandeusenandClaude Opus 5
2026-08-18 15:24:30 -04:00
-
e7937ea87e
ci-requirements: the Rust lane can be checked before pushing, not just after

bvandeusenandClaude Opus 5
2026-08-18 13:33:12 -04:00
-
b3309e29f8
ci: the Rust lane was only ever checking one crate of three

bvandeusenandClaude Opus 5
2026-08-18 11:18:54 -04:00
-
f90b9203a7
android: bind the core to Kotlin through uniffi (M12 step 4)

bvandeusenandClaude Opus 5
2026-08-18 11:09:52 -04:00
-
9f981ca47e
ci-requirements: the Android lane has an image again

bvandeusenandClaude Opus 5
2026-08-18 10:15:48 -04:00
-
e696b23417
core: give consumers an in-memory store instead of a rusqlite dependency

bvandeusenandClaude Opus 5
2026-08-17 23:22:24 -04:00
-
0a7480cf9b
core: extract the store and sync engine into a shared crate (M12 step 1)

bvandeusenandClaude Opus 5
2026-08-17 23:12:26 -04:00
-
c28f2bc00e
docs: how to run the Android client locally (task 1864)

bvandeusenandClaude Opus 5
2026-08-17 22:46:38 -04:00
-
40cb463be7
android: build the x86_64 ABI too, so an emulator can run it (task 1864)

bvandeusenandClaude Opus 5
2026-08-17 22:01:42 -04:00
-
641999de58
frontend: reminders becomes a lens, and cards can clear a reminder (task 1913)

bvandeusenandClaude Opus 5
2026-08-17 14:48:28 -04:00
-
c8c8ec4b4e
frontend: the shell names the active lens (task 1913)

bvandeusenandClaude Opus 5
2026-08-17 13:49:27 -04:00
-
67b9ea2938
frontend: one grid for every lens, and a cross-fade between surfaces (task 1913)

bvandeusenandClaude Opus 5
2026-08-17 13:39:49 -04:00
-
18a58fb5da
frontend: the board glides and the editor grows from its card (task 1914)

bvandeusenandClaude Opus 5
2026-08-17 12:55:21 -04:00
-
e8d6a4f423
android: vendor OpenSSL so the Rust core links (task 1864)

bvandeusenandClaude Opus 5
2026-08-16 23:11:24 -04:00
-
1f140c7457
android: scaffold the Tauri mobile lane and build a debug APK in CI

bvandeusenandClaude Opus 5
2026-08-16 23:01:32 -04:00
-
be0eb94225
frontend: reorder cards with Pointer Events so touch can do it at all (task 2697)

bvandeusenandClaude Opus 5
2026-08-16 16:39:37 -04:00
-
f5837cd985
frontend: hover-revealed controls stay put where hovering is impossible (task 2697)

bvandeusenandClaude Opus 5
2026-08-16 16:36:58 -04:00
-
e7ee16c6cf
frontend: dialogs keep focus, and a skip link past the chrome (task 1999)

bvandeusenandClaude Opus 5
2026-08-16 12:54:08 -04:00
-
d6646a64fb
desktop: remove two dead ends from the shell, and stop the launch flash (task 1999)

bvandeusenandClaude Opus 5
2026-08-16 12:46:38 -04:00
-
3a1496e5fa
frontend: honor prefers-reduced-motion, and let frontend work reach the desktop

bvandeusenandClaude Opus 5
2026-08-16 11:51:07 -04:00
-
659237ccc6
desktop: the empty board explains where your notes live (task 1999)

bvandeusenandClaude Opus 5
2026-08-16 11:37:29 -04:00
-
c883fd2eb6
desktop: one name across all three install channels (issue 2075)

bvandeusenandClaude Opus 5
2026-08-16 10:57:17 -04:00
-
5c1ae574f6
desktop: commit Cargo.lock and gate CI on it (issue 2102)

bvandeusenandClaude Opus 5
2026-08-16 10:41:18 -04:00
-
2cfe049f9c
sync: unlinking a device now revokes its token on the server (issue 2110)

bvandeusenandClaude Opus 5
2026-08-16 10:31:06 -04:00
-
edf52da97f
desktop: the installer's channel choice now reaches the app (issue 2183)
bvandeusen
2026-08-15 21:38:58 -04:00
-
c1464228df
docs: Fabled-Git, not Forgejo, where the instance is meant
bvandeusen
2026-07-31 23:44:29 -04:00
-
505904b1e5
ci: swap artifact upload to the mirrored action (issue 2270)

bvandeusenandClaude Opus 5
2026-07-30 15:27:57 -04:00
-
13e48672c0
packaging: bare backticks — a heredoc's backslash isn't the JSON's

bvandeusenandClaude Opus 5
2026-07-27 23:10:42 -04:00
-
8b6dfab3a7
ci-requirements: the two things that cost a cycle each to rediscover

bvandeusenandClaude Opus 5
2026-07-27 23:04:41 -04:00
-
d8b0cd9b96
packaging: the installer learns the same two channels the app updates on

bvandeusenandClaude Opus 5
2026-07-27 23:03:12 -04:00
-
6f47af8d96
ci: point the manifest at THIS build, and stop the dev release growing forever

bvandeusenandClaude Opus 5
2026-07-27 15:40:54 -04:00
-
acff95f920
ci: re-sign the AppImage after de-bundling, or Linux updates can never verify

bvandeusenandClaude Opus 5
2026-07-27 15:16:13 -04:00
-
3ca3eba6d5
packaging: stamp the pacman package with the version actually built

bvandeusenandClaude Opus 5
2026-07-27 15:07:40 -04:00
-
02c932260e
Updater signing key, a rising dev version, and a production compose
stable
dev

bvandeusenandClaude Opus 5
2026-07-27 10:33:17 -04:00
-
1f294c4ad8
ci-requirements: record how to format the Rust lane without a local toolchain

bvandeusenandClaude Opus 5
2026-07-26 19:27:39 -04:00
-
2e8717a057
desktop: rustfmt the two new preference helpers

bvandeusenandClaude Opus 5
2026-07-26 19:27:27 -04:00
-
d6734cf7a0
desktop: in-app updates, two channels, signed, fed by fixed-tag releases

bvandeusenandClaude Opus 5
2026-07-26 19:03:12 -04:00
-
b7c0820230
desktop: rustfmt the blob-store literal in the scheme handler

bvandeusenandClaude Opus 5
2026-07-26 17:39:12 -04:00
-
c40263967d
desktop: render synced attachments instead of broken images (task 2114)

bvandeusenandClaude Opus 5
2026-07-26 17:16:44 -04:00
-
d634801bd3
desktop: rustfmt the retention query and one assert

bvandeusenandClaude Opus 5
2026-07-26 16:46:45 -04:00
-
7a77a0e1b9
desktop: fix a retention test that raced the wall clock

bvandeusenandClaude Opus 5
2026-07-26 16:25:32 -04:00
-
e64d67e904
Expire trash after 30 days, and make the deadline something you can see

bvandeusenandClaude Opus 5
2026-07-26 16:20:13 -04:00
-
6f35e6e6d8
Confirm irreversible deletes, which sync just made far more consequential

bvandeusenandClaude Opus 5
2026-07-26 15:40:33 -04:00
-
810da43f56
desktop: rustfmt the blob-store test

bvandeusenandClaude Opus 5
2026-07-26 00:46:25 -04:00
-
ed623a7bef
M10.7d: download attachment bytes into a content-addressed store (task 2107)

bvandeusenandClaude Opus 5
2026-07-26 00:43:34 -04:00
-
6bef07ff83
desktop: rustfmt the SyncOutcome literal

bvandeusenandClaude Opus 5
2026-07-26 00:33:35 -04:00
-
fe683595df
M10.7e: desktop Sync settings screen (task 2108)

bvandeusenandClaude Opus 5
2026-07-26 00:30:37 -04:00
-
75b2d096ec
desktop: rustfmt the push module

bvandeusenandClaude Opus 5
2026-07-26 00:23:38 -04:00