Commit Graph

  • 7fc262f9c3 Strip emoji from calendar event titles before rendering tfaour 2026-07-22 22:58:06 -04:00
  • 27cd6b3703 Manual per-calendar color choice for calendar mode tfaour 2026-07-22 22:30:55 -04:00
  • ffce798754 Add weather to calendar mode; fix CalDAV events never showing tfaour 2026-07-22 22:22:11 -04:00
  • acdb929a99 Move mode picker below device status bar; fix invisible calendar lines; add CalDAV calendar support tfaour 2026-07-22 22:01:05 -04:00
  • 95d69a5512 Rewrite battery-remaining estimate around per-wake drop rate tfaour 2026-07-22 21:21:17 -04:00
  • 3a0007118c Move frame name/mode into the page header; Calendar gets its own tab tfaour 2026-07-22 21:21:00 -04:00
  • aa194be09a Calendar mode polish batch + Today & Tomorrow view tfaour 2026-07-22 21:20:44 -04:00
  • 716776c3f2 Bump firmware to 1.3.0 v1.3.0 tfaour 2026-07-22 19:07:29 -04:00
  • 0f98d96d25 Untrack .claude/ (editor tooling, not project content) tfaour 2026-07-22 19:07:08 -04:00
  • c007acde75 Add calendar frame mode + server-side manage overlay (server) tfaour 2026-07-22 19:06:49 -04:00
  • 15e37c77cd Simplify firmware: manage overlay now composited server-side tfaour 2026-07-22 19:06:49 -04:00
  • 1fa1c68478 Add calendar frame mode data model (migration 7) tfaour 2026-07-22 19:05:02 -04:00
  • fc65b19cf2 Bump firmware to 1.2.4 v1.2.4 tfaour 2026-07-22 16:57:34 -04:00
  • e1bca5a81a Fix false recharge-cycle detection from a single noisy battery reading tfaour 2026-07-22 16:51:37 -04:00
  • 845e4f9509 Reduce battery-reading noise with a trimmed-mean ADC sample tfaour 2026-07-22 16:51:28 -04:00
  • 02934b1d10 Bump firmware to 1.2.3 v1.2.3 tfaour 2026-07-22 16:35:34 -04:00
  • f24c3b9c8e Gate firmware auto-check behind control+CSRF; skip faces with a null bounding box tfaour 2026-07-22 16:21:37 -04:00
  • 38944a1287 Fix stack buffer overflow in face-labels parsing tfaour 2026-07-22 16:21:23 -04:00
  • 5b4fdbe330 Scope thumbnail access to the frame's own photos; validate Gitea repo URL tfaour 2026-07-22 12:57:11 -04:00
  • dcbc71e683 Show "Not enough data yet" instead of hiding the battery-estimate row tfaour 2026-07-22 11:35:38 -04:00
  • f4d2a23e8a Drop "On battery for", clarify the remaining-estimate label tfaour 2026-07-22 11:29:17 -04:00
  • 55b53d5bb2 Fix migration runner crashing on a genuinely fresh database tfaour 2026-07-22 10:48:36 -04:00
  • 60fcfca4a0 Make the device status card always visible, not just on Stats tfaour 2026-07-22 10:46:05 -04:00
  • 996e06e2bc Bump firmware to 1.2.2 v1.2.2 tfaour 2026-07-22 10:32:46 -04:00
  • d324bc4a57 Read battery once, after the picture is pushed, not at boot tfaour 2026-07-22 10:32:20 -04:00
  • ac4b57e611 Bump firmware to 1.2.1 v1.2.1 tfaour 2026-07-22 09:48:34 -04:00
  • 462b558bef Fix captive portal redirect: visible countdown, keep AP up until it finishes tfaour 2026-07-22 09:45:59 -04:00
  • 9f9ad34a40 Fix stray tab whitespace in DEFAULT_PALETTE_RGB tfaour 2026-07-22 08:46:46 -04:00
  • e48ac50ea1 Color/contrast/dithering sliders + before/after render preview tfaour 2026-07-22 08:45:42 -04:00
  • 83c59af1dd Update server/app/image_pipeline.py tfaour 2026-07-22 01:33:56 -04:00
  • 49bc9f9ec9 Display mode: crop to fill, crop to faces, stretch to fill, shrink to fit tfaour 2026-07-22 01:32:52 -04:00
  • e802882fc1 Palette calibration: precise hex/RGB inputs instead of a color picker tfaour 2026-07-22 01:26:03 -04:00
  • 5b11f2accb Per-frame palette calibration + sidebar battery indicator tfaour 2026-07-22 01:19:06 -04:00
  • c1c803b497 SMTP: implicit TLS (port 465) support + fix quarantined mail tfaour 2026-07-22 01:07:50 -04:00
  • 8e10ca540e Add SMTP email: password reset + per-frame battery-threshold alerts tfaour 2026-07-22 00:51:54 -04:00
  • a45444ab4b Bump firmware to 1.2.0 v1.2.0 tfaour 2026-07-22 00:34:07 -04:00
  • 8ac3fc0de3 Redesign phase D: sidebar app shell, per-frame tabs, namespaced API tfaour 2026-07-21 23:56:18 -04:00
  • 683e3881b1 Redesign phase C: claim flow, limited manage page, device protocol tfaour 2026-07-21 23:44:22 -04:00
  • 1e8d6803ac Redesign phase B: users, sessions, first-run setup, admin panel tfaour 2026-07-21 23:28:14 -04:00
  • 9fbbb8ed2b Redesign phase A: SQLite storage, per-frame data model, device identity tfaour 2026-07-21 23:21:38 -04:00
  • 6a0072e383 Add a "Check now" button to the Firmware update card tfaour 2026-07-21 22:29:05 -04:00
  • fdb5dc7ab3 Bump firmware to 1.1.2a (test build) v1.1.2a tfaour 2026-07-21 22:22:04 -04:00
  • 0e50529343 Bump firmware to 1.1.2 v1.1.2 tfaour 2026-07-21 22:17:12 -04:00
  • b988799fb3 Make the firmware repo URL Edit button smaller/inline-sized tfaour 2026-07-21 22:14:55 -04:00
  • b8fd8f4ad4 Trim firmware card verbosity; Gitea repo URL becomes text+Edit once set tfaour 2026-07-21 22:10:04 -04:00
  • 7ea5c9a4fb Consolidate firmware UI; server learns board from the device, not a picker tfaour 2026-07-21 21:58:59 -04:00
  • ad1fa99064 Fix firmware release workflow: build against ESP-IDF v6.0, not v5.3 v1.1.1 tfaour 2026-07-21 21:41:36 -04:00
  • ecc5b8d197 Fix firmware release workflow: docker cp instead of a bind-mount tfaour 2026-07-21 21:35:30 -04:00
  • 9e630c0c6e Fix firmware release workflow: run checkout outside the ESP-IDF container tfaour 2026-07-21 21:32:00 -04:00
  • ca06f8a8c7 Bump firmware to 1.1.1 tfaour 2026-07-21 19:39:27 -04:00
  • 94d67f7767 Firmware CI releases + Gitea auto-update in the server tfaour 2026-07-21 19:25:08 -04:00
  • 4cf75b4b11 Update server/app/image_pipeline.py tfaour 2026-07-21 14:16:25 -04:00
  • b95d03f56a Server web UI: make photo-card dragging actually feel like dragging tfaour 2026-07-21 00:22:38 -04:00
  • 8b51f8285f Server web UI: rebalance the two-column layout tfaour 2026-07-21 00:10:31 -04:00
  • 759c042f92 Server: stop the photo from advancing during quiet hours too tfaour 2026-07-21 00:05:46 -04:00
  • 475888306e Server: lifetime stats counters in a collapsed web UI section tfaour 2026-07-21 00:00:37 -04:00
  • 1b11067da7 Server web UI: stop text selection from firing during photo-card drags tfaour 2026-07-20 23:53:42 -04:00
  • fa0ecb5d6d Merge pull request 'Server web UI: modern themeable layout with dark mode, timezone moved into config' (#1) from worktree-golden-imagining-lightning into main tfaour 2026-07-20 23:50:06 -04:00
  • fdcb444d57 Server web UI: modern themeable layout with dark mode, timezone moved into config tfaour 2026-07-20 23:48:41 -04:00
  • 4f4b2844e6 Firmware: WiFi fast-connect cache (skip scan + DHCP on the next wake) tfaour 2026-07-20 23:46:57 -04:00
  • fa47b88473 Fix quiet-hours description text overlapping the end-time input tfaour 2026-07-20 23:28:52 -04:00
  • fd9516f5d1 Server: quiet hours (no wake overnight), zero firmware changes needed tfaour 2026-07-20 23:25:43 -04:00
  • a7b6c6d77a Server: permanent battery history log + graph in the web UI tfaour 2026-07-20 23:21:20 -04:00
  • 594b0bd513 Server web UI: live-update the page without a manual refresh tfaour 2026-07-20 23:12:42 -04:00
  • 37145ef135 Docs: clarify battery divider resistor value is flexible, not fixed at 200k tfaour 2026-07-20 23:08:31 -04:00
  • ce98c564e8 Bump firmware to 1.0.1 tfaour 2026-07-20 22:31:07 -04:00
  • ca0ca9d015 Firmware: enable battery ADC reporting by default for the XIAO build tfaour 2026-07-20 22:29:17 -04:00
  • a3ab6c5f13 Firmware: OTA client, dual-board build (devkit/XIAO), version reporting, XIAO fixes tfaour 2026-07-20 22:24:15 -04:00
  • f7eaadcbed Server: device status panel (last seen, battery history, runtime estimate) + firmware hosting for OTA tfaour 2026-07-20 22:23:59 -04:00
  • 015993af00 Add battery level reporting (Kconfig-gated) and display orientation tfaour 2026-07-19 22:11:14 -04:00
  • 86d5852f8e Add remove-from-rotation, fix mobile scroll-vs-drag conflict tfaour 2026-07-19 18:09:30 -04:00
  • 5588ce3e1b HTTPS trust: use the public CA bundle + one missing root, not a pinned cert tfaour 2026-07-19 17:38:39 -04:00
  • 4ffd9e852c Raise MAX_QUEUE_TARGET_LEN from 50 to 5000 tfaour 2026-07-19 17:38:21 -04:00
  • 5e86a20e8b Fix config read-modify-write race and two firmware buffer edge cases tfaour 2026-07-19 15:20:26 -04:00
  • d5de882b1e Fix stale documentation found by a doc-accuracy audit tfaour 2026-07-19 15:20:12 -04:00
  • aef8a10029 Make the upcoming-queue drag reorder work on touch devices tfaour 2026-07-19 12:59:53 -04:00
  • 3868d357ff Add back-photo button; consolidate reset/manage onto one hold-duration button tfaour 2026-07-19 12:53:26 -04:00
  • bb4f473bfa Fix HTTPS handshake: trust the actual cert the proxy presents, not Origin CA tfaour 2026-07-19 12:09:08 -04:00
  • 62cf907d88 Extend the access token to every endpoint, not just the web UI tfaour 2026-07-19 09:52:01 -04:00
  • 6c7468a36e Add HTTPS support and a management-token gate for the web UI tfaour 2026-07-19 09:42:38 -04:00
  • 461beed04f Fix: release GPIO hold on every button pin before reconfiguring it tfaour 2026-07-19 09:22:40 -04:00
  • 8daafb0f81 Document that the Immich API key needs sharedLink.create tfaour 2026-07-19 09:13:56 -04:00
  • e870898490 Refine manage overlay: US/CAN state abbreviations, share-QR caption, and an escalating second menu with named-face labels tfaour 2026-07-19 09:09:06 -04:00
  • a358045cea Fix "Show next" staleness bug; add location/date/share-QR to manage overlay tfaour 2026-07-19 01:28:25 -04:00
  • 42d7c09f97 Make the upcoming-photos queue length user-configurable tfaour 2026-07-19 01:03:05 -04:00
  • de41b00210 Web UI: grid layout, drag-and-drop reorder, and "show next" for upcoming photos tfaour 2026-07-19 00:57:13 -04:00
  • f74085cedf Add third button: "scan to manage" QR overlay on the current photo tfaour 2026-07-19 00:50:07 -04:00
  • c4cd9b73e8 Invalidate the tracked display CRC when a non-photo screen is drawn tfaour 2026-07-18 23:59:48 -04:00
  • b9649c35ec Skip redundant panel refreshes and fetch the image before the config check tfaour 2026-07-18 23:51:01 -04:00
  • d395cf3bb9 Add two physical buttons: factory-reset and next-photo tfaour 2026-07-18 23:28:36 -04:00
  • 7013311249 Add READMEs, docs, and LICENSE for publishing tfaour 2026-07-18 16:47:30 -04:00
  • 51fbd0657c Never physically refresh the panel with a short/wrong-size frame tfaour 2026-07-18 16:38:43 -04:00
  • 55d4b28f37 Clarify setup screen step headings tfaour 2026-07-18 16:27:22 -04:00
  • 012c6dda8e Revert "Add two ways back into provisioning: RST press and repeated server failure" tfaour 2026-07-18 16:24:38 -04:00
  • bd72fdad71 Remove Immich URL/API key from the config page tfaour 2026-07-18 16:14:38 -04:00
  • d32236d832 Add two ways back into provisioning: RST press and repeated server failure tfaour 2026-07-18 16:10:03 -04:00
  • e7f096ac23 Support Immich URL/API key via docker-compose env vars tfaour 2026-07-18 16:05:06 -04:00
  • 2cd7283ce9 Fix Gitea Actions registry auth: use a PAT instead of the auto token tfaour 2026-07-18 15:50:11 -04:00
  • f2a374b363 Make face-aware crop minimal-shift instead of full re-centering tfaour 2026-07-18 15:46:01 -04:00
  • 21af41ff66 Fetch refresh interval from server instead of hardcoding it tfaour 2026-07-18 15:34:37 -04:00