Merge branch 'claude/pipeline-curl-not-found-97e70f'
ci / build and test (push) Successful in 1m56s
ci / android head (push) Successful in 3m18s
ci / api image (push) Successful in 25s

This commit is contained in:
2026-08-05 22:31:42 +02:00
6 changed files with 216 additions and 8 deletions
+12
View File
@@ -84,6 +84,18 @@ losing the local cache, the outbox and the device key.
turned this application on in the unknown-sources screen. Two deliberate answers, neither to a screen
DodoSSH controls.
◆ "Asks Android to ask" is one step longer than it sounds, and reading it as one step is why this
installed nothing at all from the day it shipped until 2026-08-05. An application holding only
`REQUEST_INSTALL_PACKAGES` gets no verdict back from committing a session: what the platform returns
first is `STATUS_PENDING_USER_ACTION`, carrying the confirmation activity in `Intent.EXTRA_INTENT` for
the application to start. **Android does not draw the dialogue on its own.** The commit succeeded, the
session staged, and nobody was ever asked anything. The receiver that starts it is
`InstallSessionReceiver`; the intent naming it has to be explicit, since a mutable pending intent
wrapping an implicit one is refused outright from API 34. Check 17.5 asks for exactly the right thing
— "Android's own installer appears naming the package" — so nothing needed rewording; it wants an
older build installed and a newer one published to run at all, and on the evidence it was never run
against a real pair.
7. **Applying does not end the process, and the shell had to learn that.** On Windows, applying replaces
the files and restarts, so the shell disposes the vault first — that is what zeroes the identity keys,
the vault keys and the cache key. On Android the install is a *request* and the answer may be no, so