Conversation
Route table, accepted grammar, measured identity and cut set for separating transport addressing from the device-command payload. Recommendation: continue with a narrower cut than the spike.
|
Reviewed at 2a5b67c. This is a docs-only investigation, and the analysis and the continue/stop call look sound. CI is green, and no runtime validation applies. One count does not match. adb-transport-addressing-experiment.md#L161 says Finding 4 covers nine sites but lists eight, the Numbers table says "eight route-level The test-lane counts and line deltas for the spike branch are author-reported. |
|
What this is
The investigation deliverable for #2617: a route trace of ADB transport addressing versus the
device-command payload, measured against
origin/main2cafab3ad0, plus a continue/stoprecommendation and an implementation cut set. Docs-only — 226 lines in one new file.
Per the issue, this is explicitly not a completed implementation, and the prototype is disposable
scaffolding kept off this branch.
Measured answer
Separating typed addressing from the payload is worth doing, with a smaller cut than the spike:
and 2 more are ready to follow once addressing has a shared home.
src/platform-runtime-android-adb-host.tsnets −53. One signature widening makes the adb payload
readonlyacross the platform (96 typeerrors in 24 files, exactly 1 in production source).
addressing arrives inside flat argv — provider forwarding and the nine
host.commands.run/runCmdBackgroundadb sites, which also copy argv ([...request.args]).selector cases (host globals and
wait-for-*-prefixed forbidden commands). The existing 21-selectorloop in
src/platform-runtime-android-adb-host.test.tsis what caught it; it is the oracle andshould become a golden table under
contracts/fixtures/.(a tiny shared package vs. a
provider-limrun→platform-androidedge), because the spike'sstructural duplicate in
provider-limrunis not shippable.Honest limits
transport reality (
packages/kernel/src/device-shell.tsdoes not exist onmain).exec-outbinary results and backgroundlogcatspawn stay on the device lane named in the doc.
targetis advisory there. The doc flags thatrawArgvis aheuristic and a production shape needs explicit caller-vs-lease provenance.
-P <not-a-number>under a lease now refuses wheremainsilently replaced it.
-Pstarting tolower
ANDROID_ADB_SERVER_*, and the non-numeric case above). Both were closed in5dc8ced575andthe corrected claims now match the code.
Side findings, unrelated to this change
pnpm typecheckis broken onmain:snapshot-helper-install.test.ts:29still setsinstallArgs,dropped from the manifest type by refactor(android): drop the snapshot helper manifest installArgs #2618. Because the script chains with
&&, root andexamples/sdktypecheck never run. One-line fixture fix, separate change.pnpm check:production-exportsexits 0 only becauseunused-exportsis warn-level; it currentlyreports 68 unused exports across 40 files.
Validation
pnpm check:affected --runon2a5b67c124: passes (docs-only, no checks selected).spike/2617-typed-adb-addressing3280a0ddbc: 118 files / 846 tests green, plusthe 12-file / 59-test released-surface and provider-routing lane, root
tsc0 errors,pnpm lint,pnpm check:layeringgreen. Exact commands are in the doc.Prototype branch for inspection (do not merge):
spike/2617-typed-adb-addressing.Delivers the #2617 investigation deliverable; leaves the continue/stop decision to the maintainers.