2025-10-10 - 2026-10-10

Overview

128 Active Pull Requests
141 Active Issues
Excluding merges, 1 author has pushed 1 commit to main and 228 commits to all branches. On main, 47 files have changed and there have been 1068 additions and 0 deletions.

128 Pull requests merged by 1 user

Merged #272 Stop the picker dismissal destroying MainActivity, and census what actually turns legs red (#102) 2026-09-07 22:47:19 +00:00

Merged #269 Synchronise SafPickerRoundTripTest on state, not on timing (#268) 2026-09-07 21:21:35 +00:00

Merged #261 Rebuild the FFmpeg AAR with libvorbis, and make Ogg Vorbis reachable (#254) 2026-09-07 18:25:38 +00:00

Merged #267 Read the union's branch tier, and decide 12 of its 22 sites (E9) 2026-09-07 17:06:19 +00:00

Merged #259 Expedite user-initiated work, and give both getForegroundInfo overrides a caller (#252) 2026-09-07 16:20:52 +00:00

Merged #260 Resolve the gate's cache dir with --git-common-dir, and say when it cannot (#258) 2026-09-06 23:02:22 +00:00

Merged #257 Run shellcheck in the local gate, at CI's exact pin 2026-09-06 21:28:29 +00:00

Merged #256 Delete the document a failed save could not write (#250) 2026-09-06 21:11:14 +00:00

Merged #255 Record the first instrumented coverage measurement, and classify the 32 it found 2026-09-06 19:54:10 +00:00

Merged #251 Re-derive the API 37 carrier counts, and correct what #226 left behind 2026-09-06 19:13:56 +00:00

Merged #249 Record E7's second constraint, and that the premise held 2026-09-06 15:57:36 +00:00

Merged #248 Save to a document stock DocumentsUI created 2026-09-06 15:48:21 +00:00

Merged #247 Stop the advisory match line claiming a failure count nobody measured 2026-09-06 14:11:24 +00:00

Merged #245 Take the picker test off the API 37 gating leg, and stop the SystemUI disable pretending 2026-09-06 14:01:57 +00:00

Merged #221 Assert the join failure message against a real FFmpeg session 2026-09-06 13:51:00 +00:00

Merged #244 Record what working the e2e tickets found 2026-09-06 08:32:20 +00:00

Merged #243 Cancel a running Media3 export, completing the third engine 2026-09-06 07:48:23 +00:00

Merged #242 Reattach to a conversion that is still running 2026-09-06 07:17:06 +00:00

Merged #239 Let a join read the files the user actually picked 2026-09-06 06:51:10 +00:00

Merged #241 Wait for the pick the launcher test is about 2026-09-06 06:41:55 +00:00

Merged #240 Stop the cancel tests losing their race on a loaded runner 2026-09-06 06:20:58 +00:00

Merged #237 Cancel a running join session too 2026-09-06 05:11:33 +00:00

Merged #236 Cancel a running FFmpeg session, which nothing had ever done 2026-09-06 04:53:14 +00:00

Merged #235 Press the Cancel button in the notification 2026-09-06 04:45:53 +00:00

Merged #234 Read the progress percentage FFmpeg has always been computing 2026-09-06 04:21:54 +00:00

Merged #232 Make the fallback test say when it cannot test the fallback 2026-09-06 04:06:41 +00:00

Merged #233 Check that FLAC and Opus are FLAC and Opus 2026-09-06 03:45:47 +00:00

Merged #231 Read the instrumented suite, and find the test that proves nothing 2026-09-06 03:13:07 +00:00

Merged #222 Record wave 4's landed coverage, and that the hang watchdog has fired 2026-09-06 02:24:44 +00:00

Merged #219 Wait for the rotation to rebuild the Activity, not for the composition to idle 2026-09-06 01:43:48 +00:00

Merged #218 Finish the startup sweep before onCreate returns, in the JVM suite 2026-09-06 01:43:25 +00:00

Merged #217 Give both engines one rc-to-outcome function, and unify the failure message 2026-09-06 01:29:46 +00:00

Merged #216 Stop a permission answer starting a second conversion 2026-09-06 01:19:20 +00:00

Merged #215 Open the save dialog with the type the job produced 2026-09-06 01:18:57 +00:00

Merged #214 Pin the launcher layer, where two callbacks share a signature 2026-09-06 01:18:36 +00:00

Merged #213 Call the theme the way MainActivity calls it 2026-09-06 01:10:01 +00:00

Merged #212 Report hardware progress to WorkManager, which nothing had checked 2026-09-06 01:00:47 +00:00

Merged #211 Read FFprobe's answer without spawning FFprobe 2026-09-06 01:00:23 +00:00

Merged #210 Cut a seam through the codec enumeration, and say what a failed one actually does 2026-09-06 00:59:59 +00:00

Merged #209 Render the container row for a video nothing could name 2026-09-06 00:59:37 +00:00

Merged #208 Build a command for the audio the user turned off 2026-09-06 00:59:14 +00:00

Merged #207 Make a failure that says nothing still say something 2026-09-06 00:48:12 +00:00

Merged #206 Connect the Cancel button to WorkManager, which nothing did 2026-09-06 00:31:01 +00:00

Merged #205 Record the wave-4 coverage read, and correct the filter that missed the biggest gap 2026-09-02 21:41:50 +00:00

Merged #191 Re-measure after wave 3, and write down the two kinds of gap it had to separate 2026-09-02 05:06:34 +00:00

Merged #189 Re-measure after wave 3, and write down the two kinds of gap it had to separate 2026-09-02 04:44:33 +00:00

Merged #188 C1 (#176): give ConcatWorker the seam ConversionWorker always had, and test what was behind it 2026-09-02 04:44:27 +00:00

Merged #187 C2 (#177): cut MediaProbe's two-probe merge into a seam, and ask which probe wins 2026-09-02 04:44:21 +00:00

Merged #186 B1 (#173): tell the rail from the bottom bar, and the Convert tab from the Join tab 2026-09-02 04:13:01 +00:00

Merged #185 B3 (#175): pin the AAC arm every ordinary conversion takes 2026-09-02 04:12:55 +00:00

Merged #184 B2 (#174): read what the progress notification actually says 2026-09-02 04:12:35 +00:00

Merged #183 A5 (#171): fire the muxer guard that repairs "MP4 for everything", which had never fired 2026-09-02 04:02:04 +00:00

Merged #182 A2 + A3 (#168, #169): the hardware fallback, the cancellation that must not take it, and the name a job may not have 2026-09-02 03:36:14 +00:00

Merged #181 A4 (#170): join the two halves of an unreadable join clip, and record why the catch arm stays device-only 2026-09-02 03:34:26 +00:00

Merged #180 A6 (#172): six one-branch outcomes nothing produced, and one that cannot be produced 2026-09-02 03:26:28 +00:00

Merged #179 A1 (#167): pin all three foreground-service regimes, and the boundary between two of them 2026-09-02 03:13:13 +00:00

Merged #166 Re-measure coverage after wave 2, and write down how a stacked PR merges 2026-08-29 16:33:20 +00:00

Merged #165 W3: the screen wiring, and a narrower hazard than the ticket claimed 2026-08-29 16:13:35 +00:00

Merged #164 W4: the seven settings edits, and three tests that did not bite until they did 2026-08-29 15:57:15 +00:00

Merged #163 W2: the join state mapping, and a crash the seam exposed 2026-08-29 15:49:04 +00:00

Merged #162 W1: cut the conversion state mapping into a seam, and choose all six arms 2026-08-29 15:38:52 +00:00

Merged #161 W5: one sentence per user-facing condition, not two 2026-08-29 15:14:08 +00:00

Merged #160 Restore the five stacked PRs that merged into their bases instead of main 2026-08-29 14:09:46 +00:00

Merged #150 S1: cut MediaProbe's track walk into a pure seam, and test the matrix 2026-08-27 13:57:08 +00:00

Merged #148 C5: the two jobs ConversionWorker refuses before converting 2026-08-27 13:56:36 +00:00

Merged #147 C4: ConcatWorker's cancellation and give-up arms 2026-08-27 13:56:05 +00:00

Merged #146 C2: test the audio half of validate, and the one video refusal missing 2026-08-27 13:55:33 +00:00

Merged #145 C1: pin readSpec's three enum fallbacks 2026-08-27 13:55:02 +00:00

Merged #151 S2 + S3: the two OutputPublisher seams, and where the second one actually goes 2026-08-27 13:54:31 +00:00

Merged #149 C6: OutputPublisher's guarded branches, three of them guarding a delete 2026-08-27 12:22:35 +00:00

Merged #144 C0 + C3: fake-provider scaffolding, and what InputQuery makes of a metadata row 2026-08-27 12:14:15 +00:00

Merged #131 Record the code findings from the 2026-08-26 coverage read 2026-08-27 03:11:09 +00:00

Merged #129 Ignore Gradle's .kotlin/ build-state directory 2026-08-26 05:41:44 +00:00

Merged #127 Bound the JVM suite's hangs so a deadlock ends in minutes with a stack 2026-08-26 05:21:48 +00:00

Merged #115 Re-measure coverage, because the figure here predates the test push 2026-08-26 05:04:40 +00:00

Merged #126 Count the annotation, not the comment saying a test does not carry it 2026-08-26 04:49:01 +00:00

Merged #117 Offer a fix that works when the file has no video to copy 2026-08-26 04:21:10 +00:00

Merged #121 Say in the run-shape table when the wedge timeout was what killed the leg 2026-08-26 04:11:39 +00:00

Merged #124 Let the user's pick keep the screen a reattachment was about to take 2026-08-26 03:58:57 +00:00

Merged #119 Correct the theme KDoc's switch claim and cover the branches that actually run 2026-08-26 03:05:29 +00:00

Merged #116 Offer the file again after a failed save, rather than only offering to delete it 2026-08-26 02:44:06 +00:00

Merged #113 Refuse a spec that would produce an empty file, and guard the Media3 export that used to die building one 2026-08-26 02:17:10 +00:00

Merged #111 Say what the advisory API 37 job actually found, so a new failure is not invisible 2026-08-26 02:00:58 +00:00

Merged #110 Stop counting the run this page calls inconclusive 2026-08-26 01:32:37 +00:00

Merged #109 Notice if the release job loses the permission that lets it publish 2026-08-25 20:59:04 +00:00

Merged #106 Declare build.yml's token reach in build.yml 2026-08-25 20:49:19 +00:00

Merged #105 Say 37.0 is the choice, not the only api-level that exists 2026-08-25 20:41:12 +00:00

Merged #104 Stop telling people to stage the benchmark the one way it cannot be staged 2026-08-25 20:33:03 +00:00

Merged #103 Delete an assertion that could never fail, and say what guards instead 2026-08-25 15:21:18 +00:00

Merged #99 Lint the bash inside the workflows, not only the bash in files 2026-08-25 15:13:01 +00:00

Merged #98 Hold the two codec MIME claims that only existed in prose 2026-08-25 14:51:01 +00:00

Merged #97 Read sdkmanager's status, not the status of the yes feeding it 2026-08-25 14:41:23 +00:00

Merged #95 Say which conversions come back, rather than that they all do 2026-08-25 14:02:23 +00:00

Merged #96 Close the ANR dialog that was hiding every window from UiAutomator 2026-08-25 13:42:08 +00:00

Merged #94 Give the probe hop an injectable dispatcher, and delete the drain it replaces 2026-08-25 05:40:58 +00:00

Merged #91 Check the MIME types Media3Engine hands Transformer, and the claim above them 2026-08-25 05:10:52 +00:00

Merged #92 Test the three pure MediaProbe helpers, and report the arms no test can bite 2026-08-25 04:49:58 +00:00

Merged #90 Make the two codec tables answer for each other, and stop describeAudio printing a NUL 2026-08-25 04:32:22 +00:00

Merged #89 Give the Robolectric choice a reason that is still true 2026-08-25 04:12:48 +00:00

Merged #82 Say three where a third test joined, and stop the name claiming to be exact 2026-08-25 03:06:10 +00:00

Merged #80 Pick a file through the real system picker, then rotate the phone 2026-08-25 02:23:37 +00:00

Merged #79 Ask each join state what it lets the user do next 2026-08-25 00:58:27 +00:00

Merged #78 R38.6 — Every ConversionState renders its own affordances 2026-08-25 00:49:06 +00:00

Merged #77 Extract the state seam both screens lack 2026-08-25 00:20:51 +00:00

Merged #76 Count the Robolectric tests, which JaCoCo has never counted 2026-08-24 23:53:43 +00:00

Merged #73 Say where instrumented tests run, instead of where they used to not run 2026-08-24 22:17:18 +00:00

Merged #72 Say in tests what the file card says when it does not know 2026-08-24 22:10:07 +00:00

Merged #71 Hold the Advanced panel's gate, and the error card outside it 2026-08-24 22:01:33 +00:00

Merged #69 Check the shell, and stop one-off issues falling off the board 2026-08-24 21:52:16 +00:00

Merged #67 Hold the three pickers to the constant they hand back 2026-08-24 21:43:16 +00:00

Merged #65 Make the screen leaves nameable from a test, and give tests a tag vocabulary 2026-08-24 20:53:38 +00:00

Merged #56 Split the API 37 CI leg so the part that works can gate 2026-08-23 22:35:53 +00:00

Merged #55 Verify the SystemUI disable instead of trusting what pm reported 2026-08-23 14:49:16 +00:00

Merged #54 Resolve adb by path in the API 37 watchdog 2026-08-23 14:28:20 +00:00

Merged #53 Add a dispatch-only workflow for the API 37 CI question 2026-08-23 14:15:50 +00:00

Merged #51 Write down that testable code is not done until it is tested 2026-08-23 13:52:01 +00:00

Merged #50 Measure the coverage figure instead of carrying it forward 2026-08-23 05:51:23 +00:00

Merged #47 Re-derive the API 37 emulator failure, and harden the local sweep 2026-08-23 05:21:26 +00:00

Merged #48 Close eleven review findings in app code 2026-08-23 04:52:19 +00:00

Merged #45 Correct six documentation claims the overnight review falsified 2026-08-23 04:21:33 +00:00

Merged #9 Find out why the emulators segfault, and make them run 2026-08-23 02:15:16 +00:00

Merged #8 Fix twelve defects in the untested framework edge 2026-08-23 02:05:45 +00:00

Merged #7 Write down what is actually wrong with this app, and how we know 2026-08-23 01:52:59 +00:00

Merged #6 Keep Claude Code's agent worktrees out of the repository 2026-08-23 01:52:17 +00:00

Merged #5 Add lint, formatting and static analysis; move the toolchain to Java 25 2026-08-22 21:22:40 +00:00

Merged #4 feat(media format) - Let the user pick a container and codecs independently and remux without re-encoding 2026-08-22 18:38:41 +00:00

Merged #2 Make Media3 write the container and codec it was asked for 2026-08-22 12:23:58 +00:00

Merged #1 Media3 + FFmpeg conversion pipeline 2026-08-22 02:44:12 +00:00

125 Issues closed from 1 user

Closed #102 CI legs fail on system services, not assertions: three modes today that look like one cause 2026-09-07 22:48:07 +00:00

Closed #268 SafPickerRoundTripTest races the probe and the window focus: make it deterministic without weakening what it asserts 2026-09-07 21:21:36 +00:00

Closed #254 Rebuild the FFmpeg AAR with --enable-libvorbis, and implement Ogg Vorbis on it: the shipped binary has no libvorbis 2026-09-07 18:25:39 +00:00

Closed #252 getForegroundInfo is dead in both workers: nothing in this app enqueues expedited work 2026-09-07 16:20:53 +00:00

Closed #258 The local gate's sweep cache is never written from a worktree, so every push re-sweeps 33-36 2026-09-06 23:02:24 +00:00

Closed #250 D4's delete arm has still never run against a real DocumentsProvider: #226 proved the premise, not the fix 2026-09-06 21:11:15 +00:00

Closed #226 OutputPublisher's model of SAF is asserted only against fakes built to match it 2026-09-06 15:48:22 +00:00

Closed #108 Gating API 37 leg aborts in system_server TaskSnapshotPersister after every test passes 2026-09-06 14:01:58 +00:00

Closed #224 Cancelling a running native session is not executed by any test, in any of the three engines 2026-09-06 07:48:24 +00:00

Closed #230 Spike: find out whether a running conversion's process can be killed under instrumentation 2026-09-06 07:17:07 +00:00

Closed #225 No content:// input has ever reached a successful conversion, so the ffkitsaf bridge is untested 2026-09-06 06:51:12 +00:00

Closed #238 Joining files picked through the system picker fails on the stream-copy path 2026-09-06 06:51:11 +00:00

Closed #220 LauncherWiringTest's file-card assertion flaked once on CI in its first day 2026-09-06 06:41:56 +00:00

Closed #227 The notification's Cancel action has never been fired by any test 2026-09-06 04:45:54 +00:00

Closed #229 FFmpeg's progress percentage is computed on every test and asserted by none 2026-09-06 04:21:56 +00:00

Closed #223 HardwareFallbackTest passes on every emulator leg without ever attempting the hardware path 2026-09-06 04:06:42 +00:00

Closed #228 encodesFlacLosslessAudio and encodesOpus pass on any non-empty file, unlike their five siblings 2026-09-06 03:45:48 +00:00

Closed #125 The JVM unit test suite can deadlock in Room/WorkManager and hang forever 2026-09-06 02:05:14 +00:00

Closed #122 The rotation test hangs on API 33 and 34, wedging the leg for 20 minutes 2026-09-06 01:43:49 +00:00

Closed #159 Application-scope IO work races every Robolectric test that shares cacheDir 2026-09-06 01:43:26 +00:00

Closed #203 Two engines answer the same return code differently, and neither answer is tested 2026-09-06 01:29:47 +00:00

Closed #202 convert() can enqueue a second job over a live one, and currentInput() is over-general 2026-09-06 01:19:21 +00:00

Closed #201 A retry-save's file type is unpinned, and the exemption saying so is out of date 2026-09-06 01:18:58 +00:00

Closed #200 The two launcher callbacks have the same signature, so transposing them compiles and passes 2026-09-06 01:18:37 +00:00

Closed #197 The theme has never been called the way MainActivity calls it 2026-09-06 01:10:02 +00:00

Closed #196 The hardware path's progress callback has never been invoked 2026-09-06 01:00:48 +00:00

Closed #195 MediaProbe passes the video codec to containerFrom, and nothing checks that it does 2026-09-06 01:00:24 +00:00

Closed #194 AndroidDeviceCodecs' enumeration rules have no test, and its failure fallback contradicts its own log line 2026-09-06 01:00:00 +00:00

Closed #199 A video whose container nothing identified has never been rendered 2026-09-06 00:59:38 +00:00

Closed #198 Turning audio off has never produced -an through audioArgs 2026-09-06 00:59:16 +00:00

Closed #193 Three failure messages the app can show have never been produced by anything 2026-09-06 00:48:13 +00:00

Closed #192 Cancel has only ever been tested on the side where it does nothing 2026-09-06 00:31:02 +00:00

Closed #176 ConcatWorker's failure path is untested on every source set, because nothing can get past ConcatEngine 2026-09-02 04:44:29 +00:00

Closed #177 MediaProbe's two-probe merge is untestable for want of one internal, while its sibling carries the argument for it 2026-09-02 04:44:23 +00:00

Closed #173 Swapping the navigation rail and the bottom bar passes the whole suite, and Medium is in no test at all 2026-09-02 04:13:03 +00:00

Closed #175 The AAC arm most conversions actually emit is the one audioArgs branch with no test 2026-09-02 04:12:56 +00:00

Closed #174 The two progress-notification strings can be swapped without failing anything 2026-09-02 04:12:36 +00:00

Closed #171 The guard against "MP4 for everything" has never fired, so weakening it would restore the bug silently 2026-09-02 04:02:05 +00:00

Closed #168 A cancelled hardware transcode has no test proving it does not start a second, software one 2026-09-02 03:36:15 +00:00

Closed #169 The display-name fallback reaches the user's save dialog and has never run 2026-09-02 03:36:15 +00:00

Closed #170 An unreadable clip in a join: the catch that degrades it, and the guard that makes the audio asymmetry safe 2026-09-02 03:34:27 +00:00

Closed #172 Seven one-branch outcomes no test produces, each with a sibling that already models it 2026-09-02 03:26:29 +00:00

Closed #167 ConversionForegroundType's API 33 and 34 arms are cold, and the legs that would cover them are the ones #122 wedges 2026-09-02 03:13:14 +00:00

Closed #153 Wave 2 test gaps: the ViewModel state machines nothing chooses a branch of 2026-09-02 01:41:48 +00:00

Closed #133 Three sites need a seam cut before their branches can be tested, and one closed boundary that new evidence revises 2026-09-02 01:41:47 +00:00

Closed #132 Six JVM test gaps from the 2026-08-26 coverage read, each with a sibling test that already models it 2026-09-02 01:41:46 +00:00

Closed #141 S1 — MediaProbe's track-walking loop is reachable on the JVM after all, which revises #84's boundary 2026-09-02 01:40:40 +00:00

Closed #139 C5 — ConversionWorker's missing-input-URI and invalid-spec refusals have no test on any path 2026-09-02 01:40:37 +00:00

Closed #138 C4 — ConcatWorker's cancellation and foreground-denied arms have no test, though ConversionWorker's twin does 2026-09-02 01:40:35 +00:00

Closed #136 C2 — The audio half of ContainerCapabilities.validate has no test, while the video half has one per case 2026-09-02 01:40:33 +00:00

Closed #135 C1 — readSpec's three enum fallbacks are cold, and WorkerEnumFallbackTest exists for exactly this defect 2026-09-02 01:40:31 +00:00

Closed #156 W3: the screen wiring -- 17 bindings a transposition currently survives 2026-08-29 16:13:36 +00:00

Closed #157 W4: seven ViewModel methods with no coverage, and two else arms 2026-08-29 15:57:16 +00:00

Closed #155 W2: the join side's state mapping, and the arity guard that duplicates ConcatWorker's message 2026-08-29 15:49:05 +00:00

Closed #154 W1: cut ConversionViewModel.observe's state mapping into a seam, and choose all six arms 2026-08-29 15:38:53 +00:00

Closed #158 W5: three user-facing messages duplicated across layers, against the repo's own convention 2026-08-29 15:14:09 +00:00

Closed #143 S3 — sweepStaging's re-read race has no seam to provoke it 2026-08-27 13:54:33 +00:00

Closed #142 S2 — publish()'s null-return branch needs a seam before any test can reach it 2026-08-27 13:54:32 +00:00

Closed #140 C6 — Four partial branches in OutputPublisher, three of them guarding a delete 2026-08-27 12:22:37 +00:00

Closed #134 C0 — Extract the fake SAF provider into shared scaffolding and give it a way to answer wrongly 2026-08-27 12:14:17 +00:00

Closed #137 C3 — InputQuery has never been handed a cursor row by any test 2026-08-27 12:14:17 +00:00

Closed #128 gitignore does not cover Gradle's .kotlin/ build-state directory 2026-08-26 05:41:46 +00:00

Closed #120 The advisory baseline check counts a KDoc as a fourth marked test, so it deviates on every PR 2026-08-26 04:49:03 +00:00

Closed #114 Copy-video-from-a-file-with-no-video suggests a spec that is itself invalid 2026-08-26 04:21:11 +00:00

Closed #118 The e2e report says a wedged leg completed cleanly 2026-08-26 04:11:41 +00:00

Closed #49 R37 — A reattachment can overwrite a pick the user has already made (surfaces as ReattachOnLaunchTest flake) 2026-08-26 03:58:58 +00:00

Closed #30 R21 — After a failed save, the only button the UI offers destroys the file the code deliberately kept 2026-08-26 02:44:07 +00:00

Closed #14 R5 — Media3Engine builds EditedMediaItem/Composition unguarded on the HandlerThread; a picker-reachable spec throws there 2026-08-26 02:17:11 +00:00

Closed #83 Report the advisory API 37 job's expected/received/failed counts, so a new failure is not invisible 2026-08-26 02:01:00 +00:00

Closed #38 R29 — The seven-run discriminator counts a row the same document calls inconclusive 2026-08-26 01:32:38 +00:00

Closed #107 Nothing catches the release job losing its contents: write until a release fails to publish 2026-08-25 20:59:06 +00:00

Closed #100 CodeQL: build.yml has no top-level permissions, so its test job inherits the repository default 2026-08-25 20:49:20 +00:00

Closed #28 R19 — status_check.yml's API-37 comment is falsified by the branch and is not on the branch's correction list 2026-08-25 20:41:13 +00:00

Closed #101 RealMediaBenchmark documents a populate path its own code explains cannot work 2026-08-25 20:33:04 +00:00

Closed #35 R26 — ConversionViewModelProbeFailureTest:131 is a dead assertion 2026-08-25 15:21:20 +00:00

Closed #70 Run actionlint too, so the shell inside workflow run: blocks is checked as well 2026-08-25 15:13:03 +00:00

Closed #86 AndroidDeviceCodecs' codec-name aliases and its assume-supported fallthrough have no test 2026-08-25 14:51:02 +00:00

Closed #41 R32 — yes | sdkmanager under pipefail can report a successful install as failure 2026-08-25 14:41:24 +00:00

Closed #44 R35 — README promises conversions are "restored after a restart"; the measured behaviour is bounded retries then silent failure 2026-08-25 14:02:24 +00:00

Closed #93 SafPickerRoundTripTest is failing on gating legs 34/35/37: the fixture root never appears in the picker 2026-08-25 13:42:09 +00:00

Closed #66 Give the probe hop an injectable dispatcher, so an escaped coroutine error fails the test that caused it 2026-08-25 05:40:59 +00:00

Closed #85 Media3Engine's two MIME tables are untested, and one carries a "never reached" claim nothing checks 2026-08-25 05:10:53 +00:00

Closed #84 MediaProbe: three pure helpers have no test, while the rest is device-bound and fine 2026-08-25 04:49:59 +00:00

Closed #74 describeAudio lacks the unparseable arm describeVideo has, and its fallback would print a NUL 2026-08-25 04:32:23 +00:00

Closed #87 Five codec names resolve in CodecNames but not in AndroidDeviceCodecs, so hardware is attempted blind 2026-08-25 04:32:23 +00:00

Closed #46 R36 — AppRootRestorationTest's KDoc repeats the claim R14 corrected 2026-08-25 04:12:49 +00:00

Closed #88 Decide whether the workers getForegroundInfo has a seam worth cutting, or record that it does not 2026-08-25 03:35:04 +00:00

Closed #81 Three comments still say the advisory API 37 job runs two tests; it runs three 2026-08-25 03:06:12 +00:00

Closed #52 R38 — The Compose screens have ~0% coverage, and the Robolectric harness for it already exists unused 2026-08-25 02:25:32 +00:00

Closed #64 R38.8 — E2E: the SAF picker round-trip, and rotation against a real Bundle 2026-08-25 02:23:39 +00:00

Closed #63 R38.7 — Every JoinState renders its own affordances 2026-08-25 00:58:28 +00:00

Closed #62 R38.6 — Every ConversionState renders its own affordances 2026-08-25 00:49:07 +00:00

Closed #61 R38.5 — Extract the state seam both screens lack, with the leaf tests as the net 2026-08-25 00:20:52 +00:00

Closed #75 JaCoCo counts no Robolectric test in this repo; real line coverage is 69%, not 30% 2026-08-24 23:53:44 +00:00

Closed #58 R38.2 — FileCard, DetailRow and the four formatters, including the "Size unknown" case that prompted #52 2026-08-24 22:10:08 +00:00

Closed #60 R38.4 — AdvancedPicker's expand gate, and the suggestion chips that render outside it 2026-08-24 22:01:34 +00:00

Closed #59 R38.3 — The three simple pickers: selection in, the right enum out 2026-08-24 21:43:18 +00:00

Closed #57 R38.1 — Make the screen leaves nameable from a test, and give tests a tag vocabulary 2026-08-24 20:53:39 +00:00

Closed #39 R30 — CLAUDE.md's ~31% coverage figure predates 26 new JVM test files 2026-08-23 05:51:27 +00:00

Closed #43 R34 — disable_region_sampling's "one blocking wait on the device" does not wait 2026-08-23 05:21:43 +00:00

Closed #42 R33 — ensure_avd writes CI's RAM/disk pins to a hardcoded path and never checks the write 2026-08-23 05:21:42 +00:00

Closed #40 R31 — kill -9 "${EMU_PID:-0}" signals the whole process group if EMU_PID is ever empty 2026-08-23 05:21:40 +00:00

Closed #37 R28 — The "capability negotiated regardless of renderer" claim leans on the wrong half of its evidence 2026-08-23 05:21:38 +00:00

Closed #36 R27 — The evidence-tightening commit left "region sampling is the sole trigger" standing, contradicted three lines later 2026-08-23 05:21:36 +00:00

Closed #29 R20 — docs/local-emulator.md states a 49-test local baseline main no longer produces 2026-08-23 05:21:34 +00:00

Closed #26 R17 — run-e2e.sh installs no trap; an interrupted sweep leaks the emulator, the AVD, and port 5560 2026-08-23 05:21:33 +00:00

Closed #25 R16 — The branch puts API 37 in the default sweep, so a bare run-e2e.sh exits non-zero by design, and the doc does not say so 2026-08-23 05:21:31 +00:00

Closed #13 R4 — tools/api-37-emulator tells the pre-release Pixel check to expect 49 tests; main has 57 2026-08-23 05:21:29 +00:00

Closed #34 R25 — Reattachment's KDoc describes as current a defect fixed in the commit before it 2026-08-23 04:52:57 +00:00

Closed #33 R24 — A staged file that disappears between reattach and Save surfaces as a raw ENOENT path in the UI 2026-08-23 04:52:55 +00:00

Closed #32 R23 — hasSpaceFor overflows, and InputQuery.total overflows into a negative that sails through it 2026-08-23 04:52:53 +00:00

Closed #31 R22 — Three Enum.valueOf reads sit above the try in both workers — D13's exact escape shape, unfixed 2026-08-23 04:52:51 +00:00

Closed #20 R11 — 7db3200's backup/device-transfer exclusions have no gate of any kind 2026-08-23 04:52:49 +00:00

Closed #19 R10 — MAX_FOREGROUND_START_ATTEMPTS is referenced only through its own symbol; the value 10 is unpinned 2026-08-23 04:52:47 +00:00

Closed #18 R9 — The process-start sweep — the reason LibreMediaConverterApp exists — has no test 2026-08-23 04:52:46 +00:00

Closed #17 R8 — The join half of D8 — the constant name the audit lists first — has no test that ConcatWorker asks for a per-job name 2026-08-23 04:52:44 +00:00

Closed #15 R6 — publish() leaves the SAF-created empty document at the user's chosen name when openOutputStream fails 2026-08-23 04:52:42 +00:00

Closed #11 R2 — The FAILED exclusion is only tested with pathless FAILED jobs; a FAILED job carrying a file would be reattached to unnoticed 2026-08-23 04:52:41 +00:00

Closed #10 R1 — D3's decision core is exhaustively tested; the edge that feeds it is not tested at all 2026-08-23 04:52:38 +00:00

Closed #27 R18 — README's front-page status says the FFmpeg format tests have not been executed on a device; they have run green five times 2026-08-23 04:22:16 +00:00

Closed #24 R15 — The audit's "On testing these" section is falsified in four separate statements 2026-08-23 04:22:14 +00:00

Closed #23 R14 — The audit asserts instrumented tests cannot run locally in two places and records the opposite in a third 2026-08-23 04:22:12 +00:00

Closed #22 R13 — D11 is marked merged, but one of its four rows was deliberately not done and the audit does not say so 2026-08-23 04:22:10 +00:00

Closed #21 R12 — The audit's "Where the fixes live" names a branch that no longer exists and a test count 15 short 2026-08-23 04:22:08 +00:00

Closed #12 R3 — The defect audit reports D5 and D7 as unfixed; both merged to main hours before this review 2026-08-23 04:22:06 +00:00

141 Issues created by 1 user

Opened #10 R1 — D3's decision core is exhaustively tested; the edge that feeds it is not tested at all 2026-08-23 03:44:41 +00:00

Opened #12 R3 — The defect audit reports D5 and D7 as unfixed; both merged to main hours before this review 2026-08-23 03:44:42 +00:00

Opened #11 R2 — The FAILED exclusion is only tested with pathless FAILED jobs; a FAILED job carrying a file would be reattached to unnoticed 2026-08-23 03:44:42 +00:00

Opened #15 R6 — publish() leaves the SAF-created empty document at the user's chosen name when openOutputStream fails 2026-08-23 03:44:43 +00:00

Opened #14 R5 — Media3Engine builds EditedMediaItem/Composition unguarded on the HandlerThread; a picker-reachable spec throws there 2026-08-23 03:44:43 +00:00

Opened #13 R4 — tools/api-37-emulator tells the pre-release Pixel check to expect 49 tests; main has 57 2026-08-23 03:44:43 +00:00

Opened #17 R8 — The join half of D8 — the constant name the audit lists first — has no test that ConcatWorker asks for a per-job name 2026-08-23 03:44:44 +00:00

Opened #16 R7 — A present, willing user has no way to make a foreground-denied retry happen now 2026-08-23 03:44:44 +00:00

Opened #19 R10 — MAX_FOREGROUND_START_ATTEMPTS is referenced only through its own symbol; the value 10 is unpinned 2026-08-23 03:44:45 +00:00

Opened #18 R9 — The process-start sweep — the reason LibreMediaConverterApp exists — has no test 2026-08-23 03:44:45 +00:00

Opened #21 R12 — The audit's "Where the fixes live" names a branch that no longer exists and a test count 15 short 2026-08-23 03:44:46 +00:00

Opened #20 R11 — 7db3200's backup/device-transfer exclusions have no gate of any kind 2026-08-23 03:44:46 +00:00

Opened #24 R15 — The audit's "On testing these" section is falsified in four separate statements 2026-08-23 03:44:47 +00:00

Opened #23 R14 — The audit asserts instrumented tests cannot run locally in two places and records the opposite in a third 2026-08-23 03:44:47 +00:00

Opened #22 R13 — D11 is marked merged, but one of its four rows was deliberately not done and the audit does not say so 2026-08-23 03:44:47 +00:00

Opened #26 R17 — run-e2e.sh installs no trap; an interrupted sweep leaks the emulator, the AVD, and port 5560 2026-08-23 03:44:48 +00:00

Opened #25 R16 — The branch puts API 37 in the default sweep, so a bare run-e2e.sh exits non-zero by design, and the doc does not say so 2026-08-23 03:44:48 +00:00

Opened #29 R20 — docs/local-emulator.md states a 49-test local baseline main no longer produces 2026-08-23 03:44:49 +00:00

Opened #28 R19 — status_check.yml's API-37 comment is falsified by the branch and is not on the branch's correction list 2026-08-23 03:44:49 +00:00

Opened #27 R18 — README's front-page status says the FFmpeg format tests have not been executed on a device; they have run green five times 2026-08-23 03:44:49 +00:00

Opened #31 R22 — Three Enum.valueOf reads sit above the try in both workers — D13's exact escape shape, unfixed 2026-08-23 03:44:50 +00:00

Opened #30 R21 — After a failed save, the only button the UI offers destroys the file the code deliberately kept 2026-08-23 03:44:50 +00:00

Opened #34 R25 — Reattachment's KDoc describes as current a defect fixed in the commit before it 2026-08-23 03:44:51 +00:00

Opened #33 R24 — A staged file that disappears between reattach and Save surfaces as a raw ENOENT path in the UI 2026-08-23 03:44:51 +00:00

Opened #32 R23 — hasSpaceFor overflows, and InputQuery.total overflows into a negative that sails through it 2026-08-23 03:44:51 +00:00

Opened #36 R27 — The evidence-tightening commit left "region sampling is the sole trigger" standing, contradicted three lines later 2026-08-23 03:44:52 +00:00

Opened #35 R26 — ConversionViewModelProbeFailureTest:131 is a dead assertion 2026-08-23 03:44:52 +00:00

Opened #38 R29 — The seven-run discriminator counts a row the same document calls inconclusive 2026-08-23 03:44:53 +00:00

Opened #37 R28 — The "capability negotiated regardless of renderer" claim leans on the wrong half of its evidence 2026-08-23 03:44:53 +00:00

Opened #41 R32 — yes | sdkmanager under pipefail can report a successful install as failure 2026-08-23 03:44:54 +00:00

Opened #40 R31 — kill -9 "${EMU_PID:-0}" signals the whole process group if EMU_PID is ever empty 2026-08-23 03:44:54 +00:00

Opened #39 R30 — CLAUDE.md's ~31% coverage figure predates 26 new JVM test files 2026-08-23 03:44:54 +00:00

Opened #43 R34 — disable_region_sampling's "one blocking wait on the device" does not wait 2026-08-23 03:44:55 +00:00

Opened #42 R33 — ensure_avd writes CI's RAM/disk pins to a hardcoded path and never checks the write 2026-08-23 03:44:55 +00:00

Opened #44 R35 — README promises conversions are "restored after a restart"; the measured behaviour is bounded retries then silent failure 2026-08-23 03:44:56 +00:00

Opened #46 R36 — AppRootRestorationTest's KDoc repeats the claim R14 corrected 2026-08-23 04:03:21 +00:00

Opened #49 R37 — A reattachment can overwrite a pick the user has already made (surfaces as ReattachOnLaunchTest flake) 2026-08-23 04:53:26 +00:00

Opened #52 R38 — The Compose screens have ~0% coverage, and the Robolectric harness for it already exists unused 2026-08-23 13:51:08 +00:00

Opened #57 R38.1 — Make the screen leaves nameable from a test, and give tests a tag vocabulary 2026-08-23 23:06:54 +00:00

Opened #58 R38.2 — FileCard, DetailRow and the four formatters, including the "Size unknown" case that prompted #52 2026-08-23 23:06:55 +00:00

Opened #59 R38.3 — The three simple pickers: selection in, the right enum out 2026-08-23 23:06:56 +00:00

Opened #60 R38.4 — AdvancedPicker's expand gate, and the suggestion chips that render outside it 2026-08-23 23:06:58 +00:00

Opened #61 R38.5 — Extract the state seam both screens lack, with the leaf tests as the net 2026-08-23 23:06:59 +00:00

Opened #62 R38.6 — Every ConversionState renders its own affordances 2026-08-23 23:07:00 +00:00

Opened #63 R38.7 — Every JoinState renders its own affordances 2026-08-23 23:07:01 +00:00

Opened #64 R38.8 — E2E: the SAF picker round-trip, and rotation against a real Bundle 2026-08-23 23:07:02 +00:00

Opened #66 Give the probe hop an injectable dispatcher, so an escaped coroutine error fails the test that caused it 2026-08-24 20:46:13 +00:00

Opened #68 Two of the theme colour-scheme branches are unreachable, and the KDoc promises a switch that does not exist 2026-08-24 21:01:24 +00:00

Opened #70 Run actionlint too, so the shell inside workflow run: blocks is checked as well 2026-08-24 21:03:56 +00:00

Opened #74 describeAudio lacks the unparseable arm describeVideo has, and its fallback would print a NUL 2026-08-24 21:28:27 +00:00

Opened #75 JaCoCo counts no Robolectric test in this repo; real line coverage is 69%, not 30% 2026-08-24 22:21:19 +00:00

Opened #81 Three comments still say the advisory API 37 job runs two tests; it runs three 2026-08-25 02:24:22 +00:00

Opened #83 Report the advisory API 37 job's expected/received/failed counts, so a new failure is not invisible 2026-08-25 03:00:04 +00:00

Opened #84 MediaProbe: three pure helpers have no test, while the rest is device-bound and fine 2026-08-25 03:21:49 +00:00

Opened #85 Media3Engine's two MIME tables are untested, and one carries a "never reached" claim nothing checks 2026-08-25 03:21:52 +00:00

Opened #86 AndroidDeviceCodecs' codec-name aliases and its assume-supported fallthrough have no test 2026-08-25 03:21:56 +00:00

Opened #87 Five codec names resolve in CodecNames but not in AndroidDeviceCodecs, so hardware is attempted blind 2026-08-25 03:22:06 +00:00

Opened #88 Decide whether the workers getForegroundInfo has a seam worth cutting, or record that it does not 2026-08-25 03:22:09 +00:00

Opened #93 SafPickerRoundTripTest is failing on gating legs 34/35/37: the fixture root never appears in the picker 2026-08-25 04:05:30 +00:00

Opened #100 CodeQL: build.yml has no top-level permissions, so its test job inherits the repository default 2026-08-25 13:46:44 +00:00

Opened #101 RealMediaBenchmark documents a populate path its own code explains cannot work 2026-08-25 14:19:48 +00:00

Opened #102 CI legs fail on system services, not assertions: three modes today that look like one cause 2026-08-25 14:25:31 +00:00

Opened #107 Nothing catches the release job losing its contents: write until a release fails to publish 2026-08-25 15:16:36 +00:00

Opened #108 Gating API 37 leg aborts in system_server TaskSnapshotPersister after every test passes 2026-08-25 20:10:42 +00:00

Opened #114 Copy-video-from-a-file-with-no-video suggests a spec that is itself invalid 2026-08-26 02:00:23 +00:00

Opened #118 The e2e report says a wedged leg completed cleanly 2026-08-26 02:35:03 +00:00

Opened #120 The advisory baseline check counts a KDoc as a fourth marked test, so it deviates on every PR 2026-08-26 02:57:37 +00:00

Opened #122 The rotation test hangs on API 33 and 34, wedging the leg for 20 minutes 2026-08-26 03:26:45 +00:00

Opened #123 A save that finishes after Start over puts Saved back on a cleared screen 2026-08-26 03:37:58 +00:00

Opened #125 The JVM unit test suite can deadlock in Room/WorkManager and hang forever 2026-08-26 03:48:36 +00:00

Opened #128 gitignore does not cover Gradle's .kotlin/ build-state directory 2026-08-26 04:41:20 +00:00

Opened #130 Note that the catalog's room version does not control the Room that actually runs 2026-08-26 05:25:50 +00:00

Opened #132 Six JVM test gaps from the 2026-08-26 coverage read, each with a sibling test that already models it 2026-08-27 02:20:52 +00:00

Opened #133 Three sites need a seam cut before their branches can be tested, and one closed boundary that new evidence revises 2026-08-27 02:21:02 +00:00

Opened #134 C0 — Extract the fake SAF provider into shared scaffolding and give it a way to answer wrongly 2026-08-27 03:06:30 +00:00

Opened #135 C1 — readSpec's three enum fallbacks are cold, and WorkerEnumFallbackTest exists for exactly this defect 2026-08-27 03:06:35 +00:00

Opened #136 C2 — The audio half of ContainerCapabilities.validate has no test, while the video half has one per case 2026-08-27 03:06:38 +00:00

Opened #137 C3 — InputQuery has never been handed a cursor row by any test 2026-08-27 03:06:42 +00:00

Opened #138 C4 — ConcatWorker's cancellation and foreground-denied arms have no test, though ConversionWorker's twin does 2026-08-27 03:06:46 +00:00

Opened #139 C5 — ConversionWorker's missing-input-URI and invalid-spec refusals have no test on any path 2026-08-27 03:06:49 +00:00

Opened #140 C6 — Four partial branches in OutputPublisher, three of them guarding a delete 2026-08-27 03:06:52 +00:00

Opened #141 S1 — MediaProbe's track-walking loop is reachable on the JVM after all, which revises #84's boundary 2026-08-27 03:07:04 +00:00

Opened #142 S2 — publish()'s null-return branch needs a seam before any test can reach it 2026-08-27 03:07:07 +00:00

Opened #143 S3 — sweepStaging's re-read race has no seam to provoke it 2026-08-27 03:07:10 +00:00

Opened #153 Wave 2 test gaps: the ViewModel state machines nothing chooses a branch of 2026-08-27 11:58:43 +00:00

Opened #154 W1: cut ConversionViewModel.observe's state mapping into a seam, and choose all six arms 2026-08-27 11:58:59 +00:00

Opened #155 W2: the join side's state mapping, and the arity guard that duplicates ConcatWorker's message 2026-08-27 11:59:02 +00:00

Opened #156 W3: the screen wiring -- 17 bindings a transposition currently survives 2026-08-27 11:59:05 +00:00

Opened #157 W4: seven ViewModel methods with no coverage, and two else arms 2026-08-27 11:59:08 +00:00

Opened #158 W5: three user-facing messages duplicated across layers, against the repo's own convention 2026-08-27 11:59:11 +00:00

Opened #159 Application-scope IO work races every Robolectric test that shares cacheDir 2026-08-27 12:10:45 +00:00

Opened #167 ConversionForegroundType's API 33 and 34 arms are cold, and the legs that would cover them are the ones #122 wedges 2026-09-02 02:14:44 +00:00

Opened #168 A cancelled hardware transcode has no test proving it does not start a second, software one 2026-09-02 02:14:48 +00:00

Opened #169 The display-name fallback reaches the user's save dialog and has never run 2026-09-02 02:14:53 +00:00

Opened #170 An unreadable clip in a join: the catch that degrades it, and the guard that makes the audio asymmetry safe 2026-09-02 02:14:56 +00:00

Opened #171 The guard against "MP4 for everything" has never fired, so weakening it would restore the bug silently 2026-09-02 02:14:59 +00:00

Opened #172 Seven one-branch outcomes no test produces, each with a sibling that already models it 2026-09-02 02:15:03 +00:00

Opened #173 Swapping the navigation rail and the bottom bar passes the whole suite, and Medium is in no test at all 2026-09-02 02:15:06 +00:00

Opened #174 The two progress-notification strings can be swapped without failing anything 2026-09-02 02:15:10 +00:00

Opened #175 The AAC arm most conversions actually emit is the one audioArgs branch with no test 2026-09-02 02:15:13 +00:00

Opened #176 ConcatWorker's failure path is untested on every source set, because nothing can get past ConcatEngine 2026-09-02 02:15:17 +00:00

Opened #177 MediaProbe's two-probe merge is untestable for want of one internal, while its sibling carries the argument for it 2026-09-02 02:15:20 +00:00

Opened #178 "Prefer hardware" is offered as a distinct choice and routes identically to Automatic 2026-09-02 02:15:23 +00:00

Opened #190 The gating emulator legs are flaky enough that a ten-PR stack cannot land without repeated retries 2026-09-02 04:03:39 +00:00

Opened #192 Cancel has only ever been tested on the side where it does nothing 2026-09-02 12:46:03 +00:00

Opened #193 Three failure messages the app can show have never been produced by anything 2026-09-02 12:46:07 +00:00

Opened #194 AndroidDeviceCodecs' enumeration rules have no test, and its failure fallback contradicts its own log line 2026-09-02 12:46:11 +00:00

Opened #195 MediaProbe passes the video codec to containerFrom, and nothing checks that it does 2026-09-02 12:46:15 +00:00

Opened #196 The hardware path's progress callback has never been invoked 2026-09-02 12:46:19 +00:00

Opened #197 The theme has never been called the way MainActivity calls it 2026-09-02 12:46:22 +00:00

Opened #198 Turning audio off has never produced -an through audioArgs 2026-09-02 12:46:26 +00:00

Opened #199 A video whose container nothing identified has never been rendered 2026-09-02 12:46:29 +00:00

Opened #200 The two launcher callbacks have the same signature, so transposing them compiles and passes 2026-09-02 12:46:32 +00:00

Opened #201 A retry-save's file type is unpinned, and the exemption saying so is out of date 2026-09-02 12:46:35 +00:00

Opened #202 convert() can enqueue a second job over a live one, and currentInput() is over-general 2026-09-02 12:46:39 +00:00

Opened #203 Two engines answer the same return code differently, and neither answer is tested 2026-09-02 12:46:42 +00:00

Opened #204 Four wave-4 candidates that are real but may not be worth their cost 2026-09-02 12:48:08 +00:00

Opened #220 LauncherWiringTest's file-card assertion flaked once on CI in its first day 2026-09-06 01:36:11 +00:00

Opened #223 HardwareFallbackTest passes on every emulator leg without ever attempting the hardware path 2026-09-06 02:52:56 +00:00

Opened #224 Cancelling a running native session is not executed by any test, in any of the three engines 2026-09-06 02:52:59 +00:00

Opened #225 No content:// input has ever reached a successful conversion, so the ffkitsaf bridge is untested 2026-09-06 02:53:11 +00:00

Opened #226 OutputPublisher's model of SAF is asserted only against fakes built to match it 2026-09-06 02:53:14 +00:00

Opened #227 The notification's Cancel action has never been fired by any test 2026-09-06 02:53:17 +00:00

Opened #228 encodesFlacLosslessAudio and encodesOpus pass on any non-empty file, unlike their five siblings 2026-09-06 02:53:20 +00:00

Opened #229 FFmpeg's progress percentage is computed on every test and asserted by none 2026-09-06 02:53:23 +00:00

Opened #230 Spike: find out whether a running conversion's process can be killed under instrumentation 2026-09-06 02:53:25 +00:00

Opened #238 Joining files picked through the system picker fails on the stream-copy path 2026-09-06 05:29:10 +00:00

Opened #246 E2E_DISABLE_SYSTEM_UI does not disable SystemUI: pm disable-user is set, survives, and is not acted on 2026-09-06 13:52:33 +00:00

Opened #250 D4's delete arm has still never run against a real DocumentsProvider: #226 proved the premise, not the fix 2026-09-06 16:10:42 +00:00

Opened #252 getForegroundInfo is dead in both workers: nothing in this app enqueues expedited work 2026-09-06 19:20:36 +00:00

Opened #253 Three public members have no callers, and F5 is a fourth: decide each rather than test them 2026-09-06 19:20:39 +00:00

Opened #254 Rebuild the FFmpeg AAR with --enable-libvorbis, and implement Ogg Vorbis on it: the shipped binary has no libvorbis 2026-09-06 19:20:42 +00:00

Opened #258 The local gate's sweep cache is never written from a worktree, so every push re-sweeps 33-36 2026-09-06 22:15:35 +00:00

Opened #262 MediaProbe's container-alias arms: read whether each is a fixture gap or dead by construction 2026-09-07 16:51:00 +00:00

Opened #263 MediaProbe never probes a second audio track, so the guard that makes 'first track wins' true is unasserted 2026-09-07 16:51:04 +00:00

Opened #264 Three pure decision arms nothing chooses: ConcatStrategy's height check, an image spec carrying a codec, isPureRemux's all-NONE case 2026-09-07 16:51:17 +00:00

Opened #265 FFmpegEngine reports progress without ever being asked for a job of unknown duration 2026-09-07 16:51:25 +00:00

Opened #266 The concat command's non-MP4 arm has never been built: decide whether a join can produce one 2026-09-07 16:51:33 +00:00

Opened #268 SafPickerRoundTripTest races the probe and the window focus: make it deterministic without weakening what it asserts 2026-09-07 18:26:37 +00:00

Opened #270 SafPickerRoundTripTest's save tests have two failure shapes still unexplained after #269 2026-09-07 22:08:33 +00:00

Opened #271 dismissASystemErrorDialog can click any AlertDialog: android:id/button1 hit DocumentsUI's own save dialog 2026-09-07 22:08:41 +00:00