Repository navigation
test: keep the debug MainActivity labeled and confined as a test harness - #16
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Squash merged at Danny's direction (2026-10-07 4:41 PM PT) while GitHub Actions jobs could not start because of the account billing block. Local checks at
Danny will verify with local runners. The instrumented |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 304956a36a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| factory.isNamespaceAware = true | ||
| val document = factory.newDocumentBuilder().parse(manifestFile) | ||
|
|
||
| val activityNodes = document.getElementsByTagName("activity") |
There was a problem hiding this comment.
Include activity aliases in launcher checks
If either manifest adds a launcher through an <activity-alias>, these tests still pass because parseActivities collects only <activity> elements. Android permits MAIN/LAUNCHER filters on aliases, so this omission can allow an additional product or debug launcher despite the tests claiming to enforce the launcher sets; inspect both element types or validate the merged manifests instead.
AGENTS.md reference: AGENTS.md:L38-L38
Useful? React with 👍 / 👎.
Board card: "Keep Android dummy MainActivity labeled test harness only" (Backlog, P2; source SUAS-specs REMAINING.md hygiene item 2 and GAP_ANALYSIS.md client leftovers).
What changes
MainActivity.kt(debug source set): the banner text moves tointernal const val TEST_HARNESS_NOTICE= "TEST HARNESS ONLY: not the product launcher. Product flows live on RootActivity with /api/v0." The only wording change is a colon in place of the em dash.app/src/testDebug/.../MainActivityHarnessTest.kt(5 tests, JDK XML parser only, no Robolectric):RootActivityand/api/v0, and has no em dash;MainActivityexported="false"with no intent filter;MainActivity;RootActivityis the only MAIN/LAUNCHER activity in the main manifest;DemoRootActivityandLocalRootActivity.ExampleInstrumentedTest.harnessBannerIsShownasserts the banner is displayed. It compiles here; running it needs an emulator.scripts/forbidden-capabilities.shfails ifMainActivitystops showingTEST_HARNESS_NOTICE.[Unreleased]line.No product screen, API, or release behavior change. SOS-first
RootActivityis untouched.Local checks (CI cannot start: GitHub Actions billing block)
bash scripts/forbidden-capabilities.sh: passed.python3 scripts/openapi-client-pin.pyagainstsuasmaindocs/openapi/v0.json: client routes match../gradlew :app:testDebugUnitTest :app:lintDebug :app:assembleDebug :app:assembleRelease :app:compileDebugAndroidTestKotlin: BUILD SUCCESSFUL. There are 45 unit tests and 0 failures, including the 5 new ones.aapt2 dump xmltreeon the release APK: the only activity isRootActivity. The debug APK hasMainActivity,DemoRootActivity,LocalRootActivityandRootActivity.Instrumented tests were not run (no emulator, no KVM on this box).