ADFA-4128 (1/11): docs — how Quick Build works and why - #1713
Draft
fryanpan wants to merge 2 commits into
Draft
Conversation
… PR is read against Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kj9YeCDHGp9DU8LPtfWJ7W
This was referenced Aug 22, 2026
Draft
- README ADR reference: 0012 -> 0015 (the ADR this branch actually adds) - pipeline.md task table: dropped nonexistent components.json asset; task emits proxy sources + manifest-info.json intermediate (not shipped in the APK) - debugging.md: dropped nonexistent assets/quickbuild/components.json; APK carries gen-0.dex + baseline-generation.txt, component names flow via manifest-info.json/setup.json intermediates - README test trap: ignoreFailures is analysis-run-only (sonar/sonarqube/jacocoAggregateReport), ordinary test runs gate on failures Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Kj9YeCDHGp9DU8LPtfWJ7W
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part 1/11 of the stacked split of #1669
PR Stack Overview
This is PR 1 of 11 in the stack that makes up the initial release of the Quick Build feature (behind the Experiments flag,
FeatureFlags.isExperimentsEnabled).Here's an overview of the whole sequence:
feature/ADFA-4128-qb-01-docsfeature/ADFA-4128-qb-02-plumbingfeature/ADFA-4128-qb-03-protocolfeature/ADFA-4128-qb-04-runtimefeature/ADFA-4128-qb-05-core-detectionfeature/ADFA-4128-qb-06-core-deployfeature/ADFA-4128-qb-07-core-provisioningfeature/ADFA-4128-qb-08-core-orchestrationfeature/ADFA-4128-qb-09-daemonfeature/ADFA-4128-qb-10-gradle-pluginfeature/ADFA-4128-qb-11-appWhat's In This PR?
This PR holds the overview documentation that helps understand all of the later PRs in the stack. It's the most important PR for reviewing the overall architecture and giving feedback. If you see any major architecture issues, feel free to bring them up in this PR and I can look into moving things around!
Quick Build (ADFA-4128) makes the on-device edit loop much faster: tap the lightning-bolt button once and CoGo installs a generated proxy app — a live-reloading build of the user's project. From then on every compatible save reaches the running app in 1-2s on a moderate spec phone (Samsung A56), with no Gradle build and no reinstall, entirely on device.
flowchart LR trig(["File saved, or Quick Build button tapped"]) --> app subgraph cogo["CoGo process"] app["<b>:app wiring</b> (PR 11)<br/>toolbar action, narration, DI"] --> core["<b>:quickbuild:core</b> (PRs 5-8)<br/>watch, classify, route;<br/>session state machine"] end core -- "compile requests, wire JSON<br/>(<b>:quickbuild:protocol</b>, PR 3)" --> daemon["<b>:quickbuild:daemon</b> (PR 9)<br/>separate JVM: incremental<br/>kotlinc/javac, d8, aapt2"] daemon -- "dex + resource payload" --> core core -- "live reload: AIDL + fds" --> rt["<b>:quickbuild:runtime</b> (PR 4)<br/>inside the proxy app:<br/>swap code/resources/assets, recreate"] core -- "fallback: full Gradle build" --> gp["<b>:gradle-plugin</b> (PR 10)<br/>generates the proxy app"] gp -- "install + relaunch" --> rtGoals
(Condensed from
quickbuild/README.md's Goals section, which is the authoritative version.)What to review
quickbuild/README.md(read it somewhere where you can see the Mermaid diagrams)docs/quickbuildfolder for additional detail. In particular, these docs might be the most useful:pipeline.mdhas a deeper dive into each componentcomponent-proxying-design.mdexplains how Code on the Go communicates with the proxy appmanual-qa.mdis a manual test plan that the implementation passes(this is in addition to good automated test coverage)Note: these docs describe the whole feature, so their code and doc links resolve only once PRs 2-11 land — this docs PR merges first by design.
How this PR Was Tested
Coverage — docs only, no code, no coverage.
What's Coming Next
Note that we've tried to keep the whole feature separate as possible from existing Code on the Go components. Most PRs are completely new modules.
The main changes where there's some blast radius/risk from integrating with Code on the Go happen in these PRs:
🤖 Generated with Claude Code
https://claude.ai/code/session_01Kj9YeCDHGp9DU8LPtfWJ7W