R35 — README promises conversions are "restored after a restart"; the measured behaviour is bounded retries then silent failure #44
Closed
opened 2026-08-23 03:44:56 +00:00 by JMR-dev
·
0 comments
No Branch/Tag Specified
main
fix/102-picker-back-press-overshoot
fix/268-saf-picker-determinism
feat/ogg-vorbis-libvorbis
feat/expedited-conversion-work
fix/gate-cache-in-worktrees
chore/gate-runs-shellcheck
test/publish-delete-arm-real-provider
docs/e8-instrumented-coverage
docs/api37-carrier-count-drift
docs/e7-second-constraint
test/publish-to-a-real-saf-destination
fix/api37-report-match-line
fix/api37-task-snapshot-crash
test/join-failure-message-on-device
docs/e2e-read-findings-e7
test/cancelling-a-running-export
test/reattach-to-a-running-job
test/content-uri-reaches-ffmpeg
fix/launcher-wiring-waits-for-the-pick
fix/cancel-tests-need-a-slower-encode
test/cancelling-a-running-join
test/cancelling-a-running-session
test/notification-cancel-action
test/ffmpeg-progress-is-observed
test/fallback-asserts-the-path
test/flac-and-opus-assert-their-format
docs/e2e-read-findings
docs/wave4-coverage-numbers
fix/injectable-startup-sweep-scope
test/session-outcome-seam
test/launcher-callback-identity
test/theme-follows-system-dark
test/audio-drop-arm
fix/rotation-waits-for-recreation
fix/convert-guards-on-ready
test/retry-save-mime
test/hardware-progress-reaches-workmanager
test/ffprobe-mapping-seam
test/device-codec-enumeration-seam
test/unknown-container-row
test/null-message-fallbacks
test/cancel-reaches-workmanager
docs/coverage-wave3-recovery
test/concat-engine-seam
docs/coverage-wave3
test/mediaprobe-merge-seam
test/adaptive-shell-wiring
test/aac-audio-args
test/notification-progress-text
test/media3-muxer-guard
test/hardware-fallback-and-cancellation
test/unprobeable-join-clip
test/one-branch-outcomes
test/foreground-type-regimes
fix/bound-wedge-diagnostics
docs/coverage-wave2
test/screen-wiring
test/viewmodel-setters
test/join-state-mapping
test/conversion-state-mapping
test/dedupe-user-messages
fix/restore-stack-merges
test/refused-jobs
test/concatworker-failure-arms
test/container-capabilities-audio
test/readspec-enum-fallbacks
test/outputpublisher-seams
test/mediaprobe-track-seam
test/outputpublisher-partial-branches
test/fake-provider-scaffolding
docs/coverage-read-findings
chore/gitignore-kotlin
test/bound-the-hangs
docs/coverage-remeasure
ci/baseline-counter-precision
fix/invalid-suggestion-chip
ci/wedged-leg-report
fix/reattachment-overwrites-pick
test/theme-live-branches
fix/failed-save-retry
fix/empty-composition-crash
ci/advisory-failure-report
docs/seven-run-counts
test/release-permission-guard
ci/build-workflow-permissions
docs/api37-point-release
docs/benchmark-populate-path
fix/dead-assertion-probe-test
ci/actionlint
test/device-codecs-encode-consequence
fix/sdkmanager-pipefail
docs/readme-restart-claim
fix/saf-picker-root-discovery
fix/probe-dispatcher-seam
test/media3engine-mime-tables
test/mediaprobe-pure-helpers
fix/codec-vocabulary-drift
docs/robolectric-rationale-correction
docs/api37-advisory-counts
test/r38-8-saf-e2e
test/r38-7-join-states
test/r38-6-conversion-states
test/r38-5-state-seam
fix/jacoco-robolectric-coverage
docs/instrumented-tests-correction
test/r38-2-filecard
test/r38-4-advanced-picker
test/r38-3-pickers
tools/file-issue-script
tools/api-37-emulator
fix/review-app-gaps
docs/review-corrections
No results found.
Labels
Clear labels
above-cut
accessibility
backlog
bug
confirmed
documentation
duplicate
enhancement
good first issue
help wanted
invalid
plausible
question
sev:high
sev:low
sev:medium
wontfix
Worked autonomously overnight: local, JVM-verifiable, no product decision
Barrier affecting people with disabilities
Held for manual review: product/UX call, CI/workflow, hardware, or unverifiable here
Something isn't working
Reviewer demonstrated the defect
Improvements or additions to documentation
This issue or pull request already exists
New feature or request
Good for newcomers
Extra attention is needed
This doesn't seem right
Reviewer could not fully demonstrate it; treat as unproven
Further information is requested
High severity
Low severity
Medium severity
This will not be worked on
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: JMR-dev/LibreMediaConverter#44
Reference in New Issue
Block a user
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.
Finding R35 from the overnight max-effort review (Fable lead, Opus sub-agents). Full report:
scratchpad/overnight/REVIEW.md.R35 — README promises conversions are "restored after a restart"; the measured behaviour is bounded retries then silent failure
severity: low
verdict: PLAUSIBLE (partly true post-D3; the denial path contradicts it)
where: README.md:106-107
scenario: D13's measured denial path ends in FOREGROUND_DENIED on a FAILED job that Reattachment excludes (D16, open): the user who does not watch the retries opens the app to an empty screen ~8.5h later. D3's reattachment does restore the common case, so the sentence is partly right in a way it was not at
903b43c.evidence: FailureOutcome.kt:76,:98-99; Reattachment.kt:173; audit D13/D16 device evidence.
fix: Qualify ("restored when the app is reopened; a job the system refuses to restart in the background is retried and then reported"), or wait for D16 and say so. Decide which behaviour the README describes.
risk: The honest version is longer than one clause.
Mis-severity notes on recorded issues (not new findings)
Branch verdicts
tools/api-37-emulator — mergeable with corrections. The re-derivation is sound; the strongest documentation in the repo (seven runs varying one thing, discriminator stated mechanically, inference labeled). Fix first: R4 (expect-49 — wrong the moment it merges, on the one check with no CI backstop), R16 (undocumented always-red exit), R27 (the one over-claim the tightening commit missed). On merge it falsifies: CLAUDE.md:73-76 (recorded by the branch, deliberately unapplied), status_check.yml:207-213 (NOT recorded — R19), memory files api-37-manual-release-check.md and emulators-segfault-on-this-host.md (NOT recorded; the second is already falsified by main), and three main local-emulator.md statements (patched by the branch itself). The audit's "not covered here" pointer survives.
fix/allocatable-space — stays parked; three landing risks recorded for when the measurement happens. (1) The JVM suite cannot see the change: allocatableBytes() is never invoked by any test (proved by instrumented port; 264/0/0 with it in place), and under Robolectric getUuidForPath throws an NPE the commit's throws-analysis does not name — vindicating its catch(Exception), but meaning fail-open makes the check silently vacuous wherever measurement breaks, with only an instrumented test (CI/Pixel-only) pinning refusal. (2) The branch predates hasSpaceForUnknownSize() (D5 fix): under its rule the floor for every unsizeable job moves from 128 MiB usable to ~628 MiB effective on the measured device — a decision the branch owner has not had the chance to make. (3) Rebase required: the branch's OutputPublisher predates the D4 publish rewrite, discardStaged and the sweep, and reintroduces a KDoc line main deliberately rewrote — hand-reconcile, take neither side. Otherwise the commit does what it claims; the audit's checklist (nullable seam, decided+tested IOException policy, UsableSpace lint-registry deletion) is satisfied item for item.
Adversarially checked and refuted (do not re-ticket)
c2e6344moving the progress throttle — refuted (setProgressAsync was already unthrottled at 903b43c; only the notification ever throttled).2a68f03with a comment naming this failure mode.Known-and-recorded, correctly excluded
D15 (open), D16 (open — mis-severity note above), D1 (parked — separability note above), D12 (no-action), D5/D7 (recorded open in the audit — actually merged; that discrepancy is R3, a doc finding, not a code one).
Where the remaining risk actually sits
Artifacts
18c53a3).Cut:
below— held for manual review: product decision, CI/workflow, hardware, or PLAUSIBLE verdict.🤖 Generated with Claude Code