Config persistence + on-device library browser #3

Merged
365DevNet merged 0 commits from refs/pull/3/head into main 2026-07-14 12:05:35 +02:00
365DevNet commented 2026-07-14 12:04:14 +02:00 (Migrated from codeberg.org)

The first user-visible screen: the app loads its config, brings up WiFi, connects to Kavita, and draws your library on the e-reader.

What's here

  • ConfigStore — load/save Config as JSON (TDD, incl. the missing-file case).
  • main.cpp — reads /mnt/ext1/system/config/kavita-sync.json, calls NetConnect, then KavitaClient auth + listLibraries/listSeries, rendered with DrawTextRect. Clear on-screen messages for no-config / WiFi-failed / auth-failed.
  • The API key lives only in the device config file, never in the repo.

Verification

  • ./scripts/test.sh → 9 cases / 45 assertions passing.
  • On the physical InkPad Color 3: connects over WiFi and lists the real library (Books → Confidence Man, info). Confirmed the whole stack runs on-device.

Follow-ups

Config panel UI (enter URL/key on-device), load (download) / unload, scrolling list + selection.

🤖 Generated with Claude Code

The first user-visible screen: the app loads its config, brings up WiFi, connects to Kavita, and draws your library on the e-reader. ## What's here - **`ConfigStore`** — load/save `Config` as JSON (TDD, incl. the missing-file case). - **`main.cpp`** — reads `/mnt/ext1/system/config/kavita-sync.json`, calls `NetConnect`, then `KavitaClient` auth + `listLibraries`/`listSeries`, rendered with `DrawTextRect`. Clear on-screen messages for no-config / WiFi-failed / auth-failed. - The API key lives only in the device config file, never in the repo. ## Verification - `./scripts/test.sh` → 9 cases / 45 assertions passing. - **On the physical InkPad Color 3**: connects over WiFi and lists the real library (Books → Confidence Man, info). Confirmed the whole stack runs on-device. ## Follow-ups Config panel UI (enter URL/key on-device), load (download) / unload, scrolling list + selection. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
365DevNet/PocketBook_Kavita_sync!3
No description provided.