R22 — Three Enum.valueOf reads sit above the try in both workers — D13's exact escape shape, unfixed #31

Closed
opened 2026-08-23 03:44:50 +00:00 by JMR-dev · 1 comment
JMR-dev commented 2026-08-23 03:44:50 +00:00 (Migrated from github.com)

Finding R22 from the overnight max-effort review (Fable lead, Opus sub-agents). Full report: scratchpad/overnight/REVIEW.md.

R22 — Three Enum.valueOf reads sit above the try in both workers — D13's exact escape shape, unfixed

severity: low
verdict: CONFIRMED (demonstrated by a reviewer test; found independently by two reviewers and the lead)
where: app/src/main/java/org/libremediaconverter/work/ConversionWorker.kt:70-75 (try at :90); ConcatWorker.kt:49-51 (try at :64)
scenario: Input Data carrying a KEY_QUALITY / KEY_ENGINE_PREFERENCE / KEY_FORMAT name this build does not define (downgrade/rollback with work still queued — the same previous-version case JobTags is written for): IllegalArgumentException escapes doWork above the try. FAILED with zero-entry output Data, no staged.delete, generic "Conversion failed." — D13's signature verbatim. readSpec() twelve lines below handles exactly this and its KDoc forbids the pattern.
evidence: ReviewEnumEscapeTest in the reviewer clone: doWork() throws IllegalArgumentException rather than returning a Result, both workers (2/2). Source kept at scratchpad/overnight/lifecycle/ReviewEnumEscapeTest.kt.txt.
fix: entries.firstOrNull { it.name == name } ?: default (readSpec's shape), or move the reads inside the try. Consistency argues for the fallback readSpec already chose.
risk: Very low. The two reviewer assertions invert into regression tests. JVM-verifiable.


Cut: above — worked autonomously overnight.

🤖 Generated with Claude Code

_Finding **R22** from the overnight max-effort review (Fable lead, Opus sub-agents). Full report: `scratchpad/overnight/REVIEW.md`._ ### R22 — Three Enum.valueOf reads sit above the try in both workers — D13's exact escape shape, unfixed severity: low verdict: CONFIRMED (demonstrated by a reviewer test; found independently by two reviewers and the lead) where: app/src/main/java/org/libremediaconverter/work/ConversionWorker.kt:70-75 (try at :90); ConcatWorker.kt:49-51 (try at :64) scenario: Input Data carrying a KEY_QUALITY / KEY_ENGINE_PREFERENCE / KEY_FORMAT name this build does not define (downgrade/rollback with work still queued — the same previous-version case JobTags is written for): IllegalArgumentException escapes doWork above the try. FAILED with zero-entry output Data, no staged.delete, generic "Conversion failed." — D13's signature verbatim. readSpec() twelve lines below handles exactly this and its KDoc forbids the pattern. evidence: ReviewEnumEscapeTest in the reviewer clone: doWork() throws IllegalArgumentException rather than returning a Result, both workers (2/2). Source kept at scratchpad/overnight/lifecycle/ReviewEnumEscapeTest.kt.txt. fix: entries.firstOrNull { it.name == name } ?: default (readSpec's shape), or move the reads inside the try. Consistency argues for the fallback readSpec already chose. risk: Very low. The two reviewer assertions invert into regression tests. JVM-verifiable. --- **Cut:** `above` — worked autonomously overnight. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
JMR-dev commented 2026-08-23 04:52:51 +00:00 (Migrated from github.com)

Fixed in #48 (merged). Each fix is pinned by a mutation that was applied and reverted individually — the failure text is in the PR body. Suite 257 -> 276, 0 failures.

Fixed in #48 (merged). Each fix is pinned by a mutation that was applied and reverted individually — the failure text is in the PR body. Suite 257 -> 276, 0 failures.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: JMR-dev/LibreMediaConverter#31