Every fix is pinned by a mutation that was applied and reverted individually
Not "the tests pass" — each new test was proven to bite:
jobsnapshots-no-empty-check -> only a file with bytes in it is a result … empty.mp4=true
reattach-no-race-guard -> the user's pick must survive a late reattachment, got Converted(…)
d3-failed-like-succeeded -> expected null, but was Certain(… state=FAILED, outputExists=true)
d8-concat-constant-name -> each join must stage under a name of its own, got [joined.mp4, joined.mp4]
app-no-sweep-on-start -> process start left abandoned.mp4 in staging; nothing swept it
retry-bound-value-2 -> the retry budget must outlast a night; it spans 0.025 hours
R23 unclamped sums -> expected 9223372036854775807 but was -6446744073709551616
Two choices worth calling out. R10 is asserted as a derived property — that the summed default backoff outlasts a night (10 attempts ≈ 8.525 h) — rather than assertEquals(10, …), so the test survives a deliberate re-tuning and only fails when the guarantee breaks. And R1's race is made deterministic by a holdable WorkManager task executor, with an assertion that the brake actually gripped — so "reattachment was refused" can never be confused with "reattachment never arrived".
R23 is the separable half of the parked D1 branch — it fixes a live overflow on main without waiting on the near-full-disk measurement D1 is blocked on.
Held, not decided
R24 has two sub-decisions left open. The review's fix said "report a sentence and return to Idle"; the sentence shipped, the Idle variant did not, nor did "should the check also run on Converted-entry". Both change what the user sees with no user action.
The parked fix/allocatable-space branch will now conflict on hasSpaceFor — that expression was rewritten here. Take neither side blindly on rebase.
R23's coerceAtLeast(0L) clamp has no assertion. It only changes the answer when free space is below the headroom, which a test reading the host's real volume cannot arrange. An in-code comment says so — the assertion first written was dropped rather than shipped unable to fail.
R11's test pins the rules' content, not the android:dataExtractionRules attribute pointing at them; removing that attribute would still pass. Recorded in the test's KDoc.
R6 was decided, not held: the "provider would not open it" case is cleaned, on the grounds that the two existing bounds (document URI, positively empty) already authorise exactly that. Reversible in the KDoc if you disagree.
Minor:ReattachGuardsTest's ambiguity fixture gives both jobs the same size, so the size half of that assertion is weaker than its comment implies; the display-name half is what bites.
Eleven findings from the overnight review, four commits, **276 JVM tests (was 257), 0 failures**. Nothing outside `app/src` touched.
| Finding | Issue | |
|---|---|---|
| R1 | #10 | D3's decision core was tested; **the edge feeding it was not** — five mutations passed the whole suite |
| R2 | #11 | The FAILED exclusion was only tested with *pathless* FAILED jobs |
| R24 | #33 | A staged file gone by tap time surfaced as a raw ENOENT path |
| R25 | #34 | `Reattachment`'s KDoc described as current a defect fixed the commit before |
| R22 | #31 | Three `Enum.valueOf` reads sat above the `try` — D13's exact escape shape |
| R10 | #19 | The retry bound's value was unpinned |
| R6 | #15 | `publish()` left the SAF-created empty document at the user's chosen name |
| R23 | #32 | `hasSpaceFor` overflowed; `InputQuery.total` overflowed negative straight past it |
| R8 | #17 | The join half of D8 had no test |
| R9 | #18 | The process-start sweep — the reason `LibreMediaConverterApp` exists — had no test |
| R11 | #20 | The backup/device-transfer exclusions had no gate |
## Every fix is pinned by a mutation that was applied and reverted individually
Not "the tests pass" — each new test was proven to *bite*:
```
jobsnapshots-no-empty-check -> only a file with bytes in it is a result … empty.mp4=true
reattach-no-race-guard -> the user's pick must survive a late reattachment, got Converted(…)
d3-failed-like-succeeded -> expected null, but was Certain(… state=FAILED, outputExists=true)
d8-concat-constant-name -> each join must stage under a name of its own, got [joined.mp4, joined.mp4]
app-no-sweep-on-start -> process start left abandoned.mp4 in staging; nothing swept it
retry-bound-value-2 -> the retry budget must outlast a night; it spans 0.025 hours
R23 unclamped sums -> expected 9223372036854775807 but was -6446744073709551616
```
Two choices worth calling out. **R10 is asserted as a derived property** — that the summed default backoff outlasts a night (10 attempts ≈ 8.525 h) — rather than `assertEquals(10, …)`, so the test survives a deliberate re-tuning and only fails when the *guarantee* breaks. And **R1's race is made deterministic** by a holdable WorkManager task executor, with an assertion that the brake actually gripped — so "reattachment was refused" can never be confused with "reattachment never arrived".
**R23 is the separable half of the parked D1 branch** — it fixes a live overflow on `main` without waiting on the near-full-disk measurement D1 is blocked on.
## Held, not decided
- **R24 has two sub-decisions left open.** The review's fix said "report a sentence **and return to Idle**"; the sentence shipped, the Idle variant did not, nor did "should the check also run on `Converted`-entry". Both change what the user sees with no user action.
- **The parked `fix/allocatable-space` branch will now conflict on `hasSpaceFor`** — that expression was rewritten here. Take neither side blindly on rebase.
- **R23's `coerceAtLeast(0L)` clamp has no assertion.** It only changes the answer when free space is below the headroom, which a test reading the host's real volume cannot arrange. An in-code comment says so — the assertion first written was **dropped rather than shipped unable to fail**.
- **R11's test pins the rules' content, not the `android:dataExtractionRules` attribute** pointing at them; removing that attribute would still pass. Recorded in the test's KDoc.
- **R6 was decided, not held**: the "provider would not open it" case is cleaned, on the grounds that the two existing bounds (document URI, positively empty) already authorise exactly that. Reversible in the KDoc if you disagree.
- **Minor:** `ReattachGuardsTest`'s ambiguity fixture gives both jobs the same size, so the size half of that assertion is weaker than its comment implies; the display-name half is what bites.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Eleven findings from the overnight review, four commits, 276 JVM tests (was 257), 0 failures. Nothing outside
app/srctouched.Reattachment's KDoc described as current a defect fixed the commit beforeEnum.valueOfreads sat above thetry— D13's exact escape shapepublish()left the SAF-created empty document at the user's chosen namehasSpaceForoverflowed;InputQuery.totaloverflowed negative straight past itLibreMediaConverterAppexists — had no testEvery fix is pinned by a mutation that was applied and reverted individually
Not "the tests pass" — each new test was proven to bite:
Two choices worth calling out. R10 is asserted as a derived property — that the summed default backoff outlasts a night (10 attempts ≈ 8.525 h) — rather than
assertEquals(10, …), so the test survives a deliberate re-tuning and only fails when the guarantee breaks. And R1's race is made deterministic by a holdable WorkManager task executor, with an assertion that the brake actually gripped — so "reattachment was refused" can never be confused with "reattachment never arrived".R23 is the separable half of the parked D1 branch — it fixes a live overflow on
mainwithout waiting on the near-full-disk measurement D1 is blocked on.Held, not decided
Converted-entry". Both change what the user sees with no user action.fix/allocatable-spacebranch will now conflict onhasSpaceFor— that expression was rewritten here. Take neither side blindly on rebase.coerceAtLeast(0L)clamp has no assertion. It only changes the answer when free space is below the headroom, which a test reading the host's real volume cannot arrange. An in-code comment says so — the assertion first written was dropped rather than shipped unable to fail.android:dataExtractionRulesattribute pointing at them; removing that attribute would still pass. Recorded in the test's KDoc.ReattachGuardsTest's ambiguity fixture gives both jobs the same size, so the size half of that assertion is weaker than its comment implies; the display-name half is what bites.🤖 Generated with Claude Code