Commit Graph
11 Commits
Author SHA1 Message Date
Joel Goguen 3a612df4b5 feat: Allow OTA update to beta releases 2026-05-07 23:29:15 -04:00
Joel Goguen d148f7290d fix(ota): Correctly select the partition to write to
There was an off-by-one error selecting the new partition, meaning the OTA
update would write to the second partition but the boot would be set to the same
one we're currently in.

I believe this should fix jpirnay/crosspoint-reader#112
2026-04-28 21:26:52 -04:00
Joel Goguen af58db7314 refactor(network): Stream parse JSON response from GitHub
While working on enabling OTA for beta updates I kept running into memory issues with the JSON from GitHub. This improves the situation even for the stable OTA releases so I'm putting it up on its own.
2026-04-28 20:20:48 -04:00
Joel Goguen 3814f10b1b refactor: Clean up cppcheck finding causing tests to fail 2026-04-26 18:58:00 -04:00
Joel Goguen 0010b200ed feat(gha): Auto-publish releases
- GHA release workflow is updated to use an action for uploading all assets. The
	action docs say it updates a release if one already exists, and since this
	triggers on release and we pass a release tag we know the release already
	exists.
- GHA release candidate workflow is updated to auto-publish a pre-release
	release on push to a `release/**` branch. A script is added and used to
	generate a release message made up of the commits since the last release of
	any kind.
- ACT profiles are added to allow locally testing these workflows without
	needing to push and wait for GHA to run.
- Docs are updated to note how to test the workflows locally.
2026-04-23 22:48:41 -04:00
Joel Goguen 1986092522 feat(opds): Allow selecting the download format
When downloading a book via OPDS, the last acquisition link is chosen when there are multiple. This allows choosing which format to download when there are many. Having only one format will automatically download that.
2026-04-19 23:15:54 -04:00
Joel Goguen c38013aac3 feat(UrlUtils): Resolve more URL formats
Resolves more formats of URLs correctly: absolute, root-relative, relative, parent-relative, and URLs with query strings and fragments.
2026-04-19 23:15:54 -04:00
Joel Goguen 57c313737f feat(ci): Run tests as part of CI 2026-04-19 23:15:40 -04:00
Joel Goguen 828999cae3 fix: free parser on error
Found while looking into #105 but the opposite problem. This frees the parser after an error has occurred and early return.
2026-04-19 22:27:34 -04:00
Joel Goguen c06bf51afb fix: harden OPDS parser cleanup after errors
Fix potential use-after-free or double-free issue in the OPDS parser by
nulling it after free and guarding against using a nullptr parser in
`flush()`.
2026-04-19 21:26:45 -04:00
Joel Goguen 34ff9b5efa fix(clangd): Remove gcc args not valid in clang
After running `pio run --target compiledb` to generate `compile_commands.json`, clangd (at least in neovim) throws errors that `-fno-tree-switch-conversion` and `-fstrict-volatile-bitfields` are not valid flags.
2026-04-16 20:27:26 -04:00