Commit Graph

  • ea9abdb786 HANDOFF: v1.0.5 deployed, owner's card connected and link/unlink verified 2026-10-25 main jacobh2 2026-10-25 09:11:48 +01:00
  • 7ce3029cb1 SPEC v0.40: K3's report recorded (D-201 to D-207), web card pages as built jacobh2 2026-10-24 17:02:07 +02:00
  • 6f637514e6 SPEC v0.39: K2's report recorded (D-191 to D-200), card design-spec S-23 to S-27 jacobh2 2026-10-24 17:00:56 +02:00
  • faeb7521ae K3: card purchases on the web (W-21 to W-23, W-5 prefill, W-6 line, W-3, W-13) v1.0.5 jacobh2 2026-10-24 16:26:27 +02:00
  • a8f91ee6ea K2: card purchases on Android (Room 2, card cycle, :feature:cards S-23 to S-27) jacobh2 2026-10-24 16:49:47 +02:00
  • 07df30d04d SPEC v0.38: K1's report recorded (D-181 to D-188), K2 v0.39 and K3 v0.40 jacobh2 2026-10-24 16:50:04 +02:00
  • 671c00d0d8 K1: card purchases on the server (schema 4, Enable Banking adapter, E-36 to E-44) v1.0.4 jacobh2 2026-10-24 16:43:26 +02:00
  • ae73f58079 SPEC v0.37: image builds on the Mac, v1.0.3 deployed, web client verified (D-211) jacobh2 2026-10-24 13:14:00 +02:00
  • 8b620c8c6a K0 report, SPEC v0.36: K0 results, windowed history fetch (D-177 to D-180), card artwork cropped jacobh2 2026-10-24 12:31:06 +02:00
  • 8fa91986f0 build-images.sh: detect Podman without a pipe (pipefail + grep -q) v1.0.3 jacobh2 2026-10-24 12:20:54 +02:00
  • f15fa23b44 build-images.sh: pass KVITT_VERSION_CODE to the server image build jacobh2 2026-10-24 12:16:17 +02:00
  • 4339d01191 K2 artwork: SJ Prio Mastercard picture from the owner (D-173) jacobh2 2026-10-24 12:15:07 +02:00
  • b5114adc06 SPEC v0.35: card purchases via Enable Banking (D-158 to D-176), plans K0 to K3 jacobh2 2026-10-24 11:39:19 +02:00
  • 2ce317f72c K0 spike: local Enable Banking test app jacobh2 2026-10-24 11:35:54 +02:00
  • 5d948f9e52 SPEC v0.34: L-10 implemented (D-156), W0b recorded, web version code in the image build jacobh2 2026-10-24 11:29:42 +02:00
  • 5305f37038 W0b web shared follow-ups: one copy of shared pieces, per-locale amounts, chunks jacobh2 2026-10-24 11:19:58 +02:00
  • 07c36d24a2 L-10: E-16 answers not_found for another user's device (D-156) jacobh2 2026-10-24 11:03:19 +02:00
  • 593c7275a6 SPEC v0.33: owner answers of 2026-10-24 (D-156), small-edits rule (D-157) jacobh2 2026-10-24 10:59:27 +02:00
  • cddeac159f CLAUDE.md: small edits by a Haiku or Sonnet agent in the main checkout (owner decision 2026-10-24) jacobh2 2026-10-24 10:56:39 +02:00
  • c13be3bbfd SPEC v0.32: web plans W1 to W5 (D-144 to D-154), APK install failures (D-155) jacobh2 2026-10-21 21:52:13 +02:00
  • 83f52937cf Web fix: deterministic feature strings, suggest_category vectors, raw bodies in the fake server jacobh2 2026-10-21 21:44:30 +02:00
  • 1aecf5172f W4 web analytics: W-9, W-10 with the D-128 line chart, W-11 Insights on E-34/E-35 jacobh2 2026-10-21 21:37:48 +02:00
  • d268dd0b07 .gitignore: anchor export/ to the repository root jacobh2 2026-10-21 21:38:47 +02:00
  • a65ab711ef W2 web expenses, search and CSV export jacobh2 2026-10-21 21:35:41 +02:00
  • 3ebe57d8b9 W5 web settings: W-13 hub, W-14 profile, W-15 categories, W-16 recurring, W-17 devices, W-18 invites, W-19 about jacobh2 2026-10-21 21:30:43 +02:00
  • f9a9bfb472 W3 web settle up: W-7 settle up and W-8 settlement detail jacobh2 2026-10-21 21:25:29 +02:00
  • 934eee793c W1 web Home and accounts: W-2 Home, W-3 account detail, W-4 account editor jacobh2 2026-10-21 21:25:52 +02:00
  • aaa09d9073 SPEC v0.30 and v0.31: manual update check (D-140), Android Insights (D-141 to D-143) jacobh2 2026-10-21 21:22:48 +02:00
  • d686ee0120 Update install failures become visible: blocked, aborted, failed (D-155) jacobh2 2026-10-21 21:20:12 +02:00
  • 1c9856bfba W6 Android Insights on S-11: server trends and forecast (E-34, E-35), online only (D-141 to D-143) jacobh2 2026-10-21 21:15:02 +02:00
  • 415f9f5efd CLAUDE.md: web client, three gates, generated web files, new server address jacobh2 2026-10-21 21:07:21 +02:00
  • 2ae65a5a9f W0 web foundation: Vite + React SPA under /app/, sync-pull ledger, auth, tokens, shared components jacobh2 2026-10-21 21:00:03 +02:00
  • 3fbd393082 SPEC v0.29: W7 web serving and analytics (D-135 to D-138), APK deploy (D-139) jacobh2 2026-10-21 21:00:45 +02:00
  • c0f4345ee1 Update check: S-22 "Check for update" always asks the server (D-140) jacobh2 2026-10-21 20:56:46 +02:00
  • 50a0d6792a Server: web client under /app/ (D-132), analytics E-34 trends and E-35 forecast (D-133) jacobh2 2026-10-21 20:52:46 +02:00
  • 7bddc50a53 SPEC v0.28: web client programme (D-129 to D-134), plans W0 to W7 jacobh2 2026-10-21 20:47:42 +02:00
  • 70cb25c5d0 infra: publish-apk.sh --deploy copies the APK to the Pi and checks /apk/latest (D-139) jacobh2 2026-10-21 20:47:47 +02:00
  • 44c8cbb771 SPEC v0.27: D-128 S-12 line chart of a category or account over the range jacobh2 2026-10-21 20:34:07 +02:00
  • 12e2508934 S-12: line chart of a category or account over the range, own period and granularity, average overlays (D-128) jacobh2 2026-10-21 20:27:34 +02:00
  • b0a90da630 SPEC v0.26: D-127 pull-to-refresh on Home and account detail jacobh2 2026-10-21 20:23:20 +02:00
  • 05ec3f3f16 Android: keyboard no longer covers editor fields (S-19, S-15, S-6) jacobh2 2026-10-21 20:24:14 +02:00
  • 3778f5fa81 Android: pull-to-refresh on Home and account detail (D-127) jacobh2 2026-10-21 20:19:19 +02:00
  • 7521c0188b infra/npm/kvitt.conf: the NPM block as a file to paste (D-126) jacobh2 2026-10-21 19:12:40 +02:00
  • 2acfc34a0e SPEC v0.25: D-126 app gate in NPM; infra README step 4a jacobh2 2026-10-21 18:59:45 +02:00
  • 34e5cad02a Android: send X-Kvitt-App app key on every server request (D-126) jacobh2 2026-10-21 18:50:57 +02:00
  • d9e189abd5 SPEC v0.24: D-125 self-contained Pi compose project; workflow results v1.0.2 jacobh2 2026-10-20 19:29:28 +02:00
  • 28fa71b978 Workflow and build-images.sh: compose deploy hint instead of /opt jacobh2 2026-10-20 19:21:03 +02:00
  • 6e5981d62a Pi: minimal self-contained compose project (D-125) jacobh2 2026-10-20 19:18:53 +02:00
  • 200c99f2f6 Pi bundle: drop the informational .env keys jacobh2 2026-10-20 19:07:20 +02:00
  • 3820f9c3c3 Gitea workflow: sparse checkout, diagnostic step removed v1.0.1 jacobh2 2026-10-19 20:37:27 +02:00
  • b1f4c10a3d SPEC v0.23: D-124 Kvitt on port 443 through NPM; pinned-root template jacobh2 2026-10-19 20:34:14 +02:00
  • ad3523116f Android: portless fixture URLs after D-124 jacobh2 2026-10-19 20:33:15 +02:00
  • 038c6036fe Android: old host name out of the pinned-root config and the S-1 fixture jacobh2 2026-10-19 20:27:29 +02:00
  • 4852803cdb Pi bundle: Kvitt on port 443 through NPM (D-124) v1.0.0 jacobh2 2026-10-19 20:22:11 +02:00
  • a86ad241f1 Server and contracts: public URL on port 443 (D-124) jacobh2 2026-10-19 20:22:09 +02:00
  • cce3e4e9d9 SPEC v0.22: D-122 S-22's release server and publish-apk host; D-123 no built-in server host; Kvitt host name jacobh2 2026-10-19 20:19:00 +02:00
  • ac17b41a3e install.sh: the NPM proxy host is README step 6 jacobh2 2026-10-19 20:11:43 +02:00
  • e381e371ea contracts-check: OpenAPI header expects the {host} server variable (D-123) jacobh2 2026-10-19 20:11:41 +02:00
  • c9abd24c77 Server: no built-in public host, no trusted proxy by default; OpenAPI server variable host (D-123) jacobh2 2026-10-19 20:11:33 +02:00
  • 4b1ae0c473 publish-apk.sh: build for KVITT_PUBLIC_HOST from infra/pi/.env (D-121) jacobh2 2026-10-19 20:09:28 +02:00
  • 4a4e45fcd9 Android: S-22's unpaired server from AppBuildInfo.releaseServerUrl (D-122) jacobh2 2026-10-19 20:09:10 +02:00
  • dd07ca4395 Gitea workflow: temporary secret diagnostic step jacobh2 2026-10-19 20:06:47 +02:00
  • 4bcff2cf89 SPEC v0.21: D-120 Nginx Proxy Manager instead of Caddy and cert-sync; D-121 Android host property jacobh2 2026-10-19 20:04:09 +02:00
  • d090c6c850 Android: public host as the build property kvitt.publicHost (D-121) jacobh2 2026-10-19 19:58:58 +02:00
  • 9231a1d755 infra README: owner decisions list after the M-1 answer (SPEC v0.20) jacobh2 2026-10-19 19:51:10 +02:00
  • 62f5279daa infra README: Nginx Proxy Manager proxy host, router to NPM, NPM fallback (D-120) jacobh2 2026-10-19 19:50:26 +02:00
  • d05f13a080 Pi stack behind Nginx Proxy Manager: remove Caddy and cert-sync (D-120) jacobh2 2026-10-19 19:49:56 +02:00
  • 4f69ae010e Gitea workflow: registry login with the secret in the run line (env form came through empty on act_runner 0.6.1) jacobh2 2026-10-19 19:35:19 +02:00
  • f1abb0d2ef Server gate: cargo audit jacobh2 2026-10-19 19:36:04 +02:00
  • 481889a9dc SPEC v0.20: D-119 APK download rate limit; owner answers to the security review; HANDOFF, prompts jacobh2 2026-10-19 19:35:24 +02:00
  • 96e4cbdf4e Server: APK download rate limit 10/min per IP (D-119) jacobh2 2026-10-19 11:15:26 +02:00
  • 3ef2c15764 SPEC v0.19: D-118 Android overhaul (shared test fixtures, :core:design limits and failures); HANDOFF, prompts, hash remap in plans jacobh2 2026-10-18 23:21:59 +02:00
  • c58236338c Android overhaul: one configureAndroidModule for the application and library plugins; coil-compose out of :app jacobh2 2026-10-18 23:12:40 +02:00
  • 74b5fbdb59 Android overhaul: S-7's state types in ExpenseEditorState.kt jacobh2 2026-10-18 23:10:38 +02:00
  • a92c236689 Android overhaul: stale comments and the module README jacobh2 2026-10-18 23:09:43 +02:00
  • 0714242954 Android overhaul: the §9.6 text and date limits in :core:design's Limits.kt jacobh2 2026-10-18 23:09:39 +02:00
  • e08aaf099b Android overhaul: remove dead code (tokens, an icon, catalogue and fake samples, helpers, unused imports) jacobh2 2026-10-18 23:04:32 +02:00
  • 515b60fc65 Android overhaul: shared failure texts, saved-split label and limits in :core:design jacobh2 2026-10-18 23:04:30 +02:00
  • 8229ed60ea Android overhaul: one screenshot harness in :core:design's test fixtures; kvitt.android.screenshots wires Roborazzi jacobh2 2026-10-18 22:54:03 +02:00
  • e4e6e5d792 Android overhaul: one CopyCategoryKeywords task in build-logic instead of a copy in :data and :core:fakes jacobh2 2026-10-18 22:53:44 +02:00
  • 48fe119ae1 SPEC v0.18: D-109 to D-117; validation reports; HANDOFF, prompts jacobh2 2026-10-18 22:48:15 +02:00
  • b985ce969d E-17: fcm_token at most 512 characters (security L-4) jacobh2 2026-10-18 22:43:45 +02:00
  • baa5806812 Pictures: at most 16 megapixels and 64 MB decoded per upload (security M-3) jacobh2 2026-10-18 22:42:35 +02:00
  • 725901c98f Rate limiter: a token is accepted only after a 2xx; unaccepted tokens count against the IP (security H-1) jacobh2 2026-10-18 22:40:02 +02:00
  • 21407456f1 Server overhaul: sync push delete step in its own function; clap env feature dropped jacobh2 2026-10-18 22:36:32 +02:00
  • c942d73c66 Server overhaul: clear clippy::pedantic wins jacobh2 2026-10-18 22:33:31 +02:00
  • 8cb42f85a9 Server overhaul: one test harness in tests/common for every test binary jacobh2 2026-10-18 22:31:04 +02:00
  • 6c405e142d Server overhaul: shared helpers, dead code, synchronous tasks::start, stale comments jacobh2 2026-10-18 22:28:51 +02:00
  • 4b30888dc2 Server overhaul: invite creation and CLI plumbing shared jacobh2 2026-10-18 22:28:51 +02:00
  • 8103dae2be Server overhaul: one place for stored-row reads and the shared inserts jacobh2 2026-10-18 22:28:51 +02:00
  • a0259ab68d M12f: remove the 19 string keys R8 found unused (20 CSV rows); §9.11 tie-break comment jacobh2 2026-10-18 22:33:00 +02:00
  • c366fbd9a3 M12f: :data tests for the 429 retry, D-040 whole-request refusals and WorkManager unique work jacobh2 2026-10-18 22:32:57 +02:00
  • 2bd6b584f8 M12f: :app invite links dropped while paired, push-token retry, private notifications, en/sv only (D-112, D-116) jacobh2 2026-10-18 22:32:55 +02:00
  • 5b2ed37f65 M12f: :feature:account screenshot harness captures the current variant (sv_dark goldens were light) jacobh2 2026-10-18 22:32:39 +02:00
  • dc7a296d70 M12f: S-16 lost version read-only, S-22 versions from /health, settle start without a partner (D-109 to D-111) jacobh2 2026-10-18 22:32:24 +02:00
  • 7fb86f5524 Infra security fixes: Caddy log redaction, headers and non-root container; dev mounts only the FCM key; deploy records image digests (D-117) jacobh2 2026-10-18 22:24:32 +02:00
  • 8660b7fa16 Server gap pass: invite-partner subcommand, CLI and drain tests, push info log (D-113, D-114) jacobh2 2026-10-18 22:12:21 +02:00
  • e70fe0d9fe Images: --provenance=false on buildx pushes; workflow passes the token via env, registry in one place, git version sort, temp builder config; build-images.sh shares the Gradle lock check jacobh2 2026-10-18 22:11:07 +02:00
  • b647faf715 infra/pi: install.sh keeps the deployed KVITT_TAG and checks python3; env_set cleans its temp file; backup.sh removes half-written archives on failure jacobh2 2026-10-18 22:11:07 +02:00
  • fc6126c6af infra/dev: env_value defaults match compose, die helper, shared Gradle lock check; drop unused RCLONE_REMOTE and M2a leftovers; fix stale Pi compose path jacobh2 2026-10-18 22:11:07 +02:00