R36 — AppRootRestorationTest's KDoc repeats the claim R14 corrected #46

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

Found by the docs-correction stream while working R14 (#23); outside that stream's scope (app/src was owned by another agent), so it was reported rather than fixed.

R36 — A test's KDoc repeats the claim R14 corrected in the audit

severity: low
verdict: CONFIRMED
where: app/src/test/java/org/libremediaconverter/AppRootRestorationTest.kt:38-39
scenario: The KDoc states "The instrumented tests cannot run on the development host at all (see CLAUDE.md)". That is now false — tools/local-emulator/run-e2e.sh runs API 33–36 locally, 49 tests each. A reader trusting this comment concludes the local emulator path does not exist.
evidence: Same family as R14 (#23), which corrected the identical claim in docs/defect-audit.md. The docs stream verified the site but could not edit it under its scope rules.
fix: Restate on speed/determinism rather than impossibility, matching the wording R14 settled on. Leave the API 37 Pixel rule standing.
risk: None — comment only, no behaviour.


Cut: above — same family as R14/R15, factual correction, verifiable by inspection. Deferred to a follow-up because both owning streams had already committed by the time it surfaced.

🤖 Generated with Claude Code

_Found by the docs-correction stream while working R14 (#23); outside that stream's scope (`app/src` was owned by another agent), so it was reported rather than fixed._ ### R36 — A test's KDoc repeats the claim R14 corrected in the audit severity: low verdict: CONFIRMED where: app/src/test/java/org/libremediaconverter/AppRootRestorationTest.kt:38-39 scenario: The KDoc states *"The instrumented tests cannot run on the development host at all (see CLAUDE.md)"*. That is now false — `tools/local-emulator/run-e2e.sh` runs API 33–36 locally, 49 tests each. A reader trusting this comment concludes the local emulator path does not exist. evidence: Same family as R14 (#23), which corrected the identical claim in `docs/defect-audit.md`. The docs stream verified the site but could not edit it under its scope rules. fix: Restate on speed/determinism rather than impossibility, matching the wording R14 settled on. Leave the API 37 Pixel rule standing. risk: None — comment only, no behaviour. --- **Cut:** `above` — same family as R14/R15, factual correction, verifiable by inspection. Deferred to a follow-up because both owning streams had already committed by the time it surfaced. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
JMR-dev commented 2026-08-25 03:07:23 +00:00 (Migrated from github.com)

Sharper now than when this was filed, and wider by one file.

PR #73 corrected CLAUDE.md — it no longer says instrumented tests cannot run locally; it says the opposite, with the renderer table, because tools/local-emulator/run-e2e.sh runs API 33-36 on this host. The claim in this KDoc cites CLAUDE.md as its authority:

 * Robolectric rather than the instrumented suite, deliberately. The instrumented tests
 * cannot run on the development host at all (see CLAUDE.md), and a red test nobody can
 * execute is not a loop anyone can work in.

So it is not merely stale any more — it points at a document that now states the reverse. A reader who follows the reference finds the contradiction immediately, which is the worst version of this defect: the citation makes it look verified.

It is in two files, not one. This issue names AppRootRestorationTest; the same sentence is also in app/src/test/java/org/libremediaconverter/convert/OutputPublisherStagingTest.kt. Fixing only the file named here would leave the other one asserting it, and the next reader has no way to know which is current.

grep -rln "cannot run on the development host" app/src --include='*.kt'
  app/src/test/java/org/libremediaconverter/AppRootRestorationTest.kt
  app/src/test/java/org/libremediaconverter/convert/OutputPublisherStagingTest.kt

The reasoning underneath both KDocs is still sound and should survive the correction — Robolectric genuinely is the right choice for these two tests, and "a red test nobody can execute is not a loop anyone can work in" is a good argument. What has changed is only the premise that nobody can execute them. The honest replacement says Robolectric was chosen because it runs in the same ./gradlew invocation as everything else, not because the alternative is impossible.

That command is also the acceptance check: after the fix it should return nothing.

Sharper now than when this was filed, and wider by one file. **PR #73 corrected `CLAUDE.md`** — it no longer says instrumented tests cannot run locally; it says the opposite, with the renderer table, because `tools/local-emulator/run-e2e.sh` runs API 33-36 on this host. The claim in this KDoc cites `CLAUDE.md` as its authority: ``` * Robolectric rather than the instrumented suite, deliberately. The instrumented tests * cannot run on the development host at all (see CLAUDE.md), and a red test nobody can * execute is not a loop anyone can work in. ``` So it is not merely stale any more — **it points at a document that now states the reverse.** A reader who follows the reference finds the contradiction immediately, which is the worst version of this defect: the citation makes it look verified. **It is in two files, not one.** This issue names `AppRootRestorationTest`; the same sentence is also in `app/src/test/java/org/libremediaconverter/convert/OutputPublisherStagingTest.kt`. Fixing only the file named here would leave the other one asserting it, and the next reader has no way to know which is current. ``` grep -rln "cannot run on the development host" app/src --include='*.kt' app/src/test/java/org/libremediaconverter/AppRootRestorationTest.kt app/src/test/java/org/libremediaconverter/convert/OutputPublisherStagingTest.kt ``` **The reasoning underneath both KDocs is still sound** and should survive the correction — Robolectric genuinely is the right choice for these two tests, and "a red test nobody can execute is not a loop anyone can work in" is a good argument. What has changed is only the premise that nobody can execute them. The honest replacement says Robolectric was chosen because it runs in the same `./gradlew` invocation as everything else, not because the alternative is impossible. That command is also the acceptance check: after the fix it should return nothing.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: JMR-dev/LibreMediaConverter#46