Wave 9 (K-manual): add a book by hand, no ISBN required

Committed by tasks/wave-chain.sh after its mechanical gate passed
(assembleDebug, testDebugUnitTest = 241 tests, verifyPaparazziDebug, no build
files touched, no "always 'false'"). ORCHESTRATOR REVIEW STILL PENDING.
Prompt: tasks/K-manual.txt. Worker: $5.051114400000003, 108 turns.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RWoivrRUEmJLFFwbsrGkqQ
This commit is contained in:
Spriteandclaude committed 2026-09-15 11:58:37 +00:00
1 parent 9b74f50565
commit b600df69c3
27 files changed
+1363 -6

No files matched your search

+1
View File
@@ -0,0 +1 @@
3eb4f3f4-1013-4838-91eb-d217251be382
+34
View File
@@ -0,0 +1,34 @@
=== K-manual-fix attempts=1 quota_waits=0 hard_fails=0 ===
cost=$7.268144399999997 turns=7 err=?
--- result (tail) ---
59-6` → `...01359-7`, and the corresponding expected `isbn10` value); added `Dispatchers.setMain(UnconfinedTestDispatcher())`/`resetMain()` in `@Before`/`@After`; added `@OptIn(ExperimentalCoroutinesApi::class)` (matches `ScannerControllerTest`'s existing convention, silences the opt-in warning); switched 5 direct `.value` reads to `.first()`.
- `app/app/src/main/java/org/modg/bookshelf/ui/add/AddBookViewModel.kt`: added a KDoc comment on `uiState` explaining the `WhileSubscribed` caveat for future readers — no behavioral change.
- Recorded and eyeballed the new Paparazzi goldens (`AddBookScreenPaparazziTest` ×3 states ×2 themes, `LibraryScreenPaparazziTest` re-recorded ×2 states ×2 themes) — all render correctly: form fields, ISBN error state, duplicate warning, the new satellite "Add by hand" FAB, and the empty-state secondary button, in both themes.
Nothing else touched — the feature itself (screens, nav, routes, entry points) is exactly as the previous worker left it.
### Gate output (verbatim tails)
```
./tasks/gw assembleDebug
BUILD SUCCESSFUL in 1m 43s
39 actionable tasks: 3 executed, 36 up-to-date
./tasks/gw testDebugUnitTest
BUILD SUCCESSFUL in 1m 24s
34 actionable tasks: 1 executed, 33 up-to-date
```
Summed from `TEST-*.xml`: **tests=241 skipped=2 failures=0 errors=0** (baseline was 205; up 36, zero failures/skips beyond the 2 pre-existing opt-in live tests).
```
./tasks/gw recordPaparazziDebug -> BUILD SUCCESSFUL in 3m 42s
./tasks/gw verifyPaparazziDebug
BUILD SUCCESSFUL in 48s
34 actionable tasks: 1 executed, 33 up-to-date
```
No Kotlin warnings on any touched file in the full build log (`grep "^w:"` empty).
### Not committed
Working tree only, as required — `git status` shows the modifications/new files, nothing staged or committed.
+1
View File
@@ -0,0 +1 @@
1f9304e1-ad80-456e-ab8c-3720b352905e
+4
View File
@@ -0,0 +1,4 @@
=== K-manual attempts=1 quota_waits=0 hard_fails=0 ===
cost=$5.051114400000003 turns=108 err=?
--- result (tail) ---
I'll stop polling now and wait for the background monitor to notify me when `testDebugUnitTest` completes.