Brummel 0205301018 feat(watch): push manual oneliner edits to server + 👤 indicator
Tap-to-edit on the case detail now does both halves:
1. Optimistic local update (caseStore.setOnelinerLocal) — UI flips to
   Manual immediately, no waiting for the network round-trip.
2. PUT /api/cases/{case_id}/oneliner with X-API-Key — fire-and-forget
   so an offline edit doesn't block the UI. On HTTP failure we log;
   the local Manual sticks and the next manual edit (presumably online)
   gets pushed up. Edits before the case has been uploaded server-side
   will 404 here — accepted divergence.

OnelinerOverrideClient mirrors the server contract from
server/src/routes/oneliner_override.rs:108-124 exactly: PUT body is
{text: string}, response is OnelinerState (Manual variant). 5 new
MockWebServer tests cover happy path, 400/404/network classification,
and the on-the-wire request shape.

UI: 👤 prefix on doctor-authored OneLiners across all three surfaces
(CaseListScreen row, CaseDetailScreen large text, Tile center). Auto-
generated (Ready) and unset (Empty/Error/null) states render without
the prefix, so the doctor can tell at a glance whether they wrote
this themselves. Verified live on emulator-5556 against existing
server Manual cases ('Kastanienbaum', 'eigener Bezeichner').

78 tests green total.
2026-04-27 00:16:10 +02:00
2026-04-26 14:36:22 +02:00
2026-04-18 10:03:40 +02:00
S
Description
No description provided
7.4 MiB
Languages
Rust 74%
Kotlin 12.7%
HTML 4.9%
Python 4.1%
Shell 3.8%
Other 0.5%