e6768121d6
- D-055 build-time copy of the keyword table, D-056 parseCategoryKeywords, D-057 enum declaration orders, D-058 E-7 example shows server_version 15 and 16 and its test compares them again. - D-051 fulfilled: §9.7 hex values from docs/ux/design-spec.md §2.3; design-spec.md binding, strings.csv the source of string resources. - D-059: ExpenseEditorOptions.frequentCategoryIds and CategoryRepository.deletable; new milestone M12d with PLAN-M12d and prompts/M12d.md; M7a-f depend on M6 and M12d. - suggestCategory readings (null when other is archived), §11.2 landed marks and the 2026-10-18 dry run, dev stack on schema 2, PLAN-M12b SQLite 3.51.x, design-spec §6 notes in PLAN-M6/M7c/M7f; HANDOFF rewritten. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
6.0 KiB
6.0 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
mainat16c4d01(UX sprint U2, on top of2e2ebe7M12b) plus the SPEC v0.9 docs commit fromagent-spec9once 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,16c4d01UX sprint U2.- Landed: M0 spec, M1 contracts and vectors (
c6df2ab), M2a server skeleton andkvitt-domain(fdf2093), M2b Android skeleton and:domain(fad6fc9), M2c-dev infra for development (c885aba), M3 server core API (503cee5), M4 server sync, audit, push, scheduler (bd6f10a), M5 Android data layer (c28c52b), M9 Splitwise importer (ab298ab), M12a category contract v2 contracts (6b60ef7), SPEC v0.8 (7fb9f6f), M12c category contract v2 Android (e499107), M12b category contract v2 server (2e2ebe7; the importer testcategory_table_matches_the_specis green again), U1 and U2 (16c4d01,docs/ux/**only; the owner approved U2). - With
agent-spec9: SPEC v0.9. D-055 build-time copy of the keyword table (:data:copyCategoryKeywords,:core:fakes:copyCategoryKeywords), D-056parseCategoryKeywordsin:domain, D-057 enum declaration orders, D-058 E-7 example showsserver_version15 and 16 (example andtests/core_api/me.rschanged in that commit), D-059 UX-9 accepted (ExpenseEditorOptions.frequentCategoryIds,CategoryRepository.deletable) with the new milestone M12d (PLAN-M12d,prompts/M12d.md); D-051 fulfilled: §9.7 hex values fromdocs/ux/design-spec.md§2.3;design-spec.mdbinding for:core:designand the screens,strings.csv(558 rows) the source of string resources (§13.4); thesuggestCategoryreadings (null whenotheris archived and no active last-used category, AC-8.6); PLAN-M6, PLAN-M7c, PLAN-M7f carry design-spec §6 notes. - 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-spec9(this docs change: SPEC v0.9),agent-m6(M6 design system, started 2026-10-18 from design-spec §2 and §3 andstrings.csv),agent-m12d(M12d UI contract additions). - 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; its database was migrated to schema 2 on 2026-10-18 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(older thanmain), as of 2026-10-18.
2. Open work (one line each, with who owns it: agent or owner)
- Land
agent-spec9(orchestrator): SPEC v0.9, D-055 to D-059, PLAN-M12d and its prompt, plan touch-ups (M6, M7c, M7f, M12b, M12c), the E-7 example and its test. - M6 Design system (
agent-m6, in flight) and M12d UI contract additions (agent-m12d, in flight), in parallel; disjoint paths. - 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.
- D-027 re-stamp (orchestrator assigns: M8 as a contract request on
:data, or a small:dataagent): on the first sync attempt after aclock_skewrejection the phone re-stampsupdated_atof each such pending row to its current clock before pushing. Not in:datayet. - Picture size (M6, if needed):
:dataalways fetches E-11 at 512; a size parameter for the 128 variant is a contract request on:core:modeland:data. - Plans (SPEC §11.2 v0.9), in dependency order; prompt
prompts/<id>.md:- M1, M2a, M2b, M2c-dev, M3, M4, M5, M9, M12a, M12b, M12c, U1, U2: landed.
- Now: M6 and M12d in parallel.
- Next waves: M7a to M7f in parallel after M6 and M12d (M7c and M7f consume M12d); M8 App integration after M7; 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).
3. HUMAN steps pending (relay in chat)
- When M6 reports: look at M6's component screenshots and answer yes/no (SPEC §11.2 row M6).
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. The only open question (OQ-1, OQ-2, OQ-4 answered: D-001, D-003, §10.9).
5. Paused (waiting on something outside the repo)
- Nothing.
6. Numbering
- Decisions: D-001 to D-059 used (D-008 and D-009 unused). Next free: D-060.
- Spec version: v0.9 written; next v0.10.
- 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, unchanged by M12 and M12d); 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.