Assignment: diagnose the first request
Run the debug app with your own project. Record only the source revision, model ID, device/API level, setup state, and outcome. Do not capture the key field or raw request headers.
- With no key, send a question and confirm the draft remains.
- Configure the key, stay in PocketChat, and send a harmless technical question.
- Ask a follow-up referring to the earlier answer. Note whether the reference is resolved.
- Background the app, return, and explain why setup is required again.
Use controlled tests for failures you cannot safely or reliably reproduce against the provider:
./gradlew :app:testDebugUnitTest --tests '*GeminiChatServiceTest.quotaErrorHasActionableMessageWithoutEchoingProviderBody'
The test injects HTTP 429 through MockWebServer; it does not consume or exhaust real quota. Review the asserted error text and the deliberately sensitive fake provider body. The latter must never be displayed.
Submit a small matrix for unconfigured, successful, background-cleared, and simulated quota states. If your key has no model access, complete the deterministic test, record the provider blocker, and do not relabel simulated answers as live success.