Part of #14. Discovered while proving #105 on the reusable API 37 phone harness.
Original observation (superseded diagnosis)
- Chrome
145.0.7632.218 advertises the AndroidX Auth Tab service category and passes the harness readiness check.
- OAuth client
9677 uses exact callback putio://auth.
- The first interactive authorization reaches the official confirmation page, then leaves a blank Auth Tab instead of returning a successful activity result.
- Closing that tab returns the app to neutral signed-out state.
- After the client is already authorized, later sign-in attempts auto-redirect and return
RESULT_CANCELED with no result URI.
- The pending OAuth attempt is consumed; no encrypted token is written.
No token, callback interception intent filter, CLI-token export, or config-file bypass was used.
Current status
The successful live run recorded in the continuation handoff superseded the Android production-code diagnosis. The blocker was external callback registration/configuration.
#115 is merged and adds callback-result regression coverage. The canonical gate and both debug assemblies passed. Production authentication code and manifest are unchanged.
This issue remains open until first authorization and repeat sign-in have identifiable runtime proof.
Outcome
The real API 37 OAuth flow reliably returns its callback to the app and reaches Files for both first authorization and an already-authorized client.
Acceptance criteria
Part of #14. Discovered while proving #105 on the reusable API 37 phone harness.
Original observation (superseded diagnosis)
145.0.7632.218advertises the AndroidX Auth Tab service category and passes the harness readiness check.9677uses exact callbackputio://auth.RESULT_CANCELEDwith no result URI.No token, callback interception intent filter, CLI-token export, or config-file bypass was used.
Current status
The successful live run recorded in the continuation handoff superseded the Android production-code diagnosis. The blocker was external callback registration/configuration.
#115 is merged and adds callback-result regression coverage. The canonical gate and both debug assemblies passed. Production authentication code and manifest are unchanged.
This issue remains open until first authorization and repeat sign-in have identifiable runtime proof.
Outcome
The real API 37 OAuth flow reliably returns its callback to the app and reaches Files for both first authorization and an already-authorized client.
Acceptance criteria
RESULT_OKcarries the callback URI without logging token material.