f4dc10c7ae
Records the readings of M7a to M7f (b9b061a, 6ac711d, 082b8dc, 31760f9, 1e42f76, a54eb7c) and the M6b design-system fix pass (3a1bd14): S-11/S-12 captions, titles and states; navigation wiring and result snackbars (§13.2); new template day default (AC-9.8); manual update check (AC-16.6); FieldError field names and settlement editing (AC-11.6); quickRowCategories; two-line category labels; long day ranges (§9.8); amounts open with two decimals (§9.6); string keys (strings.csv 578 rows); "Synka nu" online only (§9.9). §11 marks M7a-M7f and M6b landed, M8 and M7g started; §11.3 lists contract requests for a later contract pass (M12e). Docs only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
7.2 KiB
7.2 KiB
Handoff: state of the work
Living document, rewritten in place (never a second copy). A new orchestrator session reads CLAUDE.md, then this.
1. Where things stand
mainat3a1bd14(M6b design-system fixes after the M7 wave) plus the SPEC v0.11 docs commit fromagent-spec11once it lands. History:5e1be38plans and prompts,c885abaM2c-dev,76ee957SPEC v0.3,fad6fc9M2b,fdf2093M2a,040bf41SPEC v0.4,503cee5M3,c28c52bM5,982451dSPEC v0.5,bd6f10aM4,23a2f1eSPEC v0.6,ab298abM9,e8ee518SPEC v0.7,6b60ef7M12a,7fb9f6fSPEC v0.8,e499107M12c,2e2ebe7M12b,d452fa6UX Kalas categories and tokens,16c4d01UX sprint U2,45eecd1SPEC v0.9,bdba9d3M12d,3080804M6,7bd0aa1SPEC v0.10,72f21b2app debug fakes bindings (temporary),e6ad858app release wiring of:data(pre-M8),b9b061aM7a,6ac711dM7e,082b8dcM7d,31760f9M7b,1e42f76M7c,a54eb7cM7f,3a1bd14M6b.- Landed: M0 spec, M1 contracts and vectors (
c6df2ab), M2a (fdf2093), M2b (fad6fc9), M2c-dev (c885aba), M3 (503cee5), M4 (bd6f10a), M5 (c28c52b), M9 (ab298ab), M12a (6b60ef7), M12b (2e2ebe7), M12c (e499107), U1 and U2 (16c4d01, owner approved), SPEC v0.9 (45eecd1), M12d (bdba9d3), M6 (3080804), SPEC v0.10 (7bd0aa1, D-060 to D-068), M7a onboarding (b9b061a), M7e analytics (6ac711d), M7d settle (082b8dc), M7b home and account (31760f9), M7c expense (1e42f76), M7f settings (a54eb7c), M6b:core:designfixes (3a1bd14). - With
agent-spec11: SPEC v0.11, D-069 to D-080 (owner approved in advance). D-069 S-11 caption, legend order, loading = no successful sync yet; D-070 S-12 titles, no error or loading state; D-071 top-level screens draw their ownKvittNavigationBar, feature argument-key constants, result snackbars on the screen returned to (archive with undo); D-072 new template day = today; D-073 "Du har den senaste versionen" whenUpdateStatestaysNone; D-074FieldError.fieldnames, edited settlement keeps its rows, "Föreslå igen"; D-075quickRowCategoriesin:core:design; D-076 two-line category labels with "…" for long custom names; D-077 long day ranges with the year; D-078 amounts open with two decimals; D-079 new string keys,strings.csv578 rows; D-080 "Synka nu" online only, discard dialogs without body. §11.3 has the list of contract requests for a later contract pass (M12e). - Both gates exist: Android
tools/gradle-serial.sh check(fromandroid/), servercargo fmt --check && cargo clippy --all-targets -- -D warnings && cargo test(fromserver/). Both are green onmainas far as reported. - Worktrees in flight under
.claude/worktrees/:agent-m8(M8 app integration, started 2026-10-18; the phone agent; stops at the pairing HUMAN step),agent-m7g(M7g feature cleanups inandroid/feature/**, started 2026-10-18),agent-spec11(this docs change: SPEC v0.11). - The UX sprint (owner's session in
~/orca/workspaces/kvitt/UX-sprint, branchUX-sprint) has landed; nothing is in flight there. - Importer: the dry run of 2026-10-18 with M12b's mapping reconciled on both real files (Vardag 1746 rows, 0 unmapped; Hemma 37 rows, 0 unmapped). The CSV files stay in
export/(git-ignored). - Development stack (M2c-dev): running on the Mac, reachable at
http://192.168.1.210:8080; database at schema 2 since 2026-10-18 (migrated after a backup). Firebase projectkvitt-1337with appsse.hagstedt.kvittandse.hagstedt.kvitt.debug; service accountkvitt-fcm;infra/secrets/fcm-service-account.jsonandinfra/secrets/google-services.jsonin the main checkout (git-ignored). - Installed on the owner's phone (SM-S942B): the debug app
se.hagstedt.kvitt.debugbuilt fromc28c52b, as of the last report; M8 installs its build.
2. Open work (one line each, with who owns it: agent or owner)
- Land
agent-spec11(orchestrator): SPEC v0.11, D-069 to D-080, HANDOFF,prompts/README.md,android/README.md, PLAN-M8 §3 facts. - M8 App integration (
agent-m8, in flight, phone agent). Decision range D-085 to D-089 reserved; renumbered to D-081 onwards on landing (afteragent-spec11). Spec version v0.12. It wires the §13.2 navigation (D-071), deletesandroid/app/src/debug/.../DebugFakesModule.kt(72f21b2), keeps the:apprequests of M6 (LocalAvatarPictures,ProvideHousehold,LocalKvittClock) and the design-spec §2.7 One UI font check on the S26. - M7g Feature cleanups (
agent-m7g, in flight): feature modules after M6b; no phone. - Later contract pass M12e (not started; SPEC §11.3 list): invite kind in the
pair()result, admin name in the invite link,SyncSummary"last attempt failed", actor onRejection, version name onDevice,RecurringRepository.createwithout a caller-madeTemplateId, a result forUpdateRepository.check(), untouched accounts inSettleState, the D-027 re-stamp in:data, the 128 px picture size (owner question). - Image build for the Pi (M2c-pi or M10): since M4 the arm64 server image needs a C toolchain in the build stage (aws-lc-rs) and CA roots in the distroless image (§10.3); confirm both and one FCM send from the shipped image.
- Later cleanup (any Android plan that owns
android/gradle/**): remove the unused Vico entries fromlibs.versions.toml(D-063). - Plans (SPEC §11.2 v0.11), in dependency order; prompt
prompts/<id>.md:- M1, M2a, M2b, M2c-dev, M3, M4, M5, M6, M6b, M7a to M7f, M9, M12a, M12b, M12c, M12d, U1, U2: landed.
- Now: M8 and M7g in parallel.
- Next: M2c-pi Infra on the Pi after M8 (owner: answer OQ-3, grant the Pi, Home Assistant Pi, Gitea and Drive allowances at the start, D-023); M10 First release after M2c-pi (owner: keystore per §10.6, D-024); M11 Import history after M9 and M10 (procedure §10.8 "Production run", D-025; each run must reconcile, D-045); M12e contract pass when scheduled.
3. HUMAN steps pending (relay in chat; the owner does them tonight, 2026-10-18)
- M8 pairing and offline test on the phone; relay wording comes from the M8 report.
- Look through the M6 component screenshots (
android/core/design/src/test/screenshots/); approved in advance, nothing blocks on it. - Answer OQ-3 for M2c-pi (§4).
- Release keystore per SPEC §10.6 for M10, or allow an agent to generate one.
- Yes/no: the keyword "boende" maps to travel. Yes/no: is the 128 px picture size needed?
4. Owner questions (asked, unanswered)
- OQ-3 LAN addresses and SSH users of the Kvitt Pi and the Home Assistant Pi; SSH port of the HA Pi; certificate directory there; which SSH add-on (SPEC §12). Needed by M2c-pi only.
- "boende" keyword → travel (yes/no); 128 px picture size needed (yes/no) (§3 item 5).
5. Paused (waiting on something outside the repo)
- Nothing.
6. Numbering
- Decisions: D-001 to D-080 used (D-008 and D-009 unused). D-085 to D-089 reserved by M8 (renumbered to D-081 onwards on landing). Next free: D-081.
- Spec version: v0.11 written; next v0.12.
- Server schema version 2 (migration 0002, landed with M12b); next 3. Room schema version 1 (
android/data/schemas/se.hagstedt.kvitt.data.db.KvittDatabase/1.json); next 2. - Sync protocol 1, push payload 1.
7. How the work is run
See CLAUDE.md › Orchestration. HUMAN steps in reports are relayed in chat by the orchestrator; the owner does not read them in files.