1c9856bfba
W6 Android Insights on S-11: server trends and forecast (E-34, E-35), online only (D-141 to D-143)
jacobh22026-10-21 21:15:02 +02:00
415f9f5efd
CLAUDE.md: web client, three gates, generated web files, new server address
jacobh22026-10-21 21:07:21 +02:00
2ae65a5a9f
W0 web foundation: Vite + React SPA under /app/, sync-pull ledger, auth, tokens, shared components
jacobh22026-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)
jacobh22026-10-21 21:00:45 +02:00
c0f4345ee1
Update check: S-22 "Check for update" always asks the server (D-140)
jacobh22026-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)
jacobh22026-10-21 20:52:46 +02:00
7bddc50a53
SPEC v0.28: web client programme (D-129 to D-134), plans W0 to W7
jacobh22026-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)
jacobh22026-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
jacobh22026-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)
jacobh22026-10-21 20:27:34 +02:00
b0a90da630
SPEC v0.26: D-127 pull-to-refresh on Home and account detail
jacobh22026-10-21 20:23:20 +02:00
b1f4c10a3d
SPEC v0.23: D-124 Kvitt on port 443 through NPM; pinned-root template
jacobh22026-10-19 20:34:14 +02:00
ad3523116f
Android: portless fixture URLs after D-124
jacobh22026-10-19 20:33:15 +02:00
038c6036fe
Android: old host name out of the pinned-root config and the S-1 fixture
jacobh22026-10-19 20:27:29 +02:00
4852803cdb
Pi bundle: Kvitt on port 443 through NPM (D-124)
v1.0.0
jacobh22026-10-19 20:22:11 +02:00
a86ad241f1
Server and contracts: public URL on port 443 (D-124)
jacobh22026-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
jacobh22026-10-19 20:19:00 +02:00
ac17b41a3e
install.sh: the NPM proxy host is README step 6
jacobh22026-10-19 20:11:43 +02:00
e381e371ea
contracts-check: OpenAPI header expects the {host} server variable (D-123)
jacobh22026-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)
jacobh22026-10-19 20:11:33 +02:00
4b1ae0c473
publish-apk.sh: build for KVITT_PUBLIC_HOST from infra/pi/.env (D-121)
jacobh22026-10-19 20:09:28 +02:00
4a4e45fcd9
Android: S-22's unpaired server from AppBuildInfo.releaseServerUrl (D-122)
jacobh22026-10-19 20:09:10 +02:00
4bcff2cf89
SPEC v0.21: D-120 Nginx Proxy Manager instead of Caddy and cert-sync; D-121 Android host property
jacobh22026-10-19 20:04:09 +02:00
d090c6c850
Android: public host as the build property kvitt.publicHost (D-121)
jacobh22026-10-19 19:58:58 +02:00
9231a1d755
infra README: owner decisions list after the M-1 answer (SPEC v0.20)
jacobh22026-10-19 19:51:10 +02:00
62f5279daa
infra README: Nginx Proxy Manager proxy host, router to NPM, NPM fallback (D-120)
jacobh22026-10-19 19:50:26 +02:00
d05f13a080
Pi stack behind Nginx Proxy Manager: remove Caddy and cert-sync (D-120)
jacobh22026-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)
jacobh22026-10-19 19:35:19 +02:00
f1abb0d2ef
Server gate: cargo audit
jacobh22026-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
jacobh22026-10-19 19:35:24 +02:00
96e4cbdf4e
Server: APK download rate limit 10/min per IP (D-119)
jacobh22026-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
jacobh22026-10-18 23:21:59 +02:00
c58236338c
Android overhaul: one configureAndroidModule for the application and library plugins; coil-compose out of :app
jacobh22026-10-18 23:12:40 +02:00
74b5fbdb59
Android overhaul: S-7's state types in ExpenseEditorState.kt
jacobh22026-10-18 23:10:38 +02:00
a92c236689
Android overhaul: stale comments and the module README
jacobh22026-10-18 23:09:43 +02:00
0714242954
Android overhaul: the §9.6 text and date limits in :core:design's Limits.kt
jacobh22026-10-18 23:09:39 +02:00
e08aaf099b
Android overhaul: remove dead code (tokens, an icon, catalogue and fake samples, helpers, unused imports)
jacobh22026-10-18 23:04:32 +02:00
515b60fc65
Android overhaul: shared failure texts, saved-split label and limits in :core:design
jacobh22026-10-18 23:04:30 +02:00
8229ed60ea
Android overhaul: one screenshot harness in :core:design's test fixtures; kvitt.android.screenshots wires Roborazzi
jacobh22026-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
jacobh22026-10-18 22:53:44 +02:00
b985ce969d
E-17: fcm_token at most 512 characters (security L-4)
jacobh22026-10-18 22:43:45 +02:00
baa5806812
Pictures: at most 16 megapixels and 64 MB decoded per upload (security M-3)
jacobh22026-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)
jacobh22026-10-18 22:40:02 +02:00
21407456f1
Server overhaul: sync push delete step in its own function; clap env feature dropped
jacobh22026-10-18 22:36:32 +02:00
c942d73c66
Server overhaul: clear clippy::pedantic wins
jacobh22026-10-18 22:33:31 +02:00
8cb42f85a9
Server overhaul: one test harness in tests/common for every test binary
jacobh22026-10-18 22:31:04 +02:00
6c405e142d
Server overhaul: shared helpers, dead code, synchronous tasks::start, stale comments
jacobh22026-10-18 22:28:51 +02:00
4b30888dc2
Server overhaul: invite creation and CLI plumbing shared
jacobh22026-10-18 22:28:51 +02:00
8103dae2be
Server overhaul: one place for stored-row reads and the shared inserts
jacobh22026-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
jacobh22026-10-18 22:33:00 +02:00
c366fbd9a3
M12f: :data tests for the 429 retry, D-040 whole-request refusals and WorkManager unique work
jacobh22026-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)
jacobh22026-10-18 22:32:55 +02:00
5b2ed37f65
M12f: :feature:account screenshot harness captures the current variant (sv_dark goldens were light)
jacobh22026-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)
jacobh22026-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)
jacobh22026-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)
jacobh22026-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
jacobh22026-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
jacobh22026-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
jacobh22026-10-18 22:11:07 +02:00
61f92c81c5
pre-commit hook: Android tests through gradle-serial.sh with JDK 25 on PATH, JAVA_HOME untouched; installer replaces an older Kvitt hook
jacobh22026-10-18 22:11:07 +02:00
2fac1ecba0
tools: one Gradle lock helper (gradle-lock.sh) for gradle-serial.sh and clean-builds.sh
jacobh22026-10-18 22:11:07 +02:00
18c527f018
Goldens and UX mock-ups: restored after the history rewrite that dropped superseded PNG versions (owner decision 2026-10-18, D-098)
jacobh22026-10-18 22:01:07 +02:00
400eac9d60
SPEC v0.17: D-103 to D-106 Pi bundle, D-107 S-19 option rows, D-108 instant navigation; HANDOFF, prompts
jacobh22026-10-18 21:56:48 +02:00