Skip to content

ADFA-4128 (3/11): quickbuild:protocol — the daemon wire format - #1715

Open
fryanpan wants to merge 2 commits into
feature/ADFA-4128-qb-02-plumbingfrom
feature/ADFA-4128-qb-03-protocol
Open

ADFA-4128 (3/11): quickbuild:protocol — the daemon wire format#1715
fryanpan wants to merge 2 commits into
feature/ADFA-4128-qb-02-plumbingfrom
feature/ADFA-4128-qb-03-protocol

Conversation

@fryanpan

@fryanpan fryanpan commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Part 3/11 of the stacked split of #1669 (requested by Akash). Base: feature/ADFA-4128-qb-02-plumbing. Stack overview + review mechanics: PR 1 (#1713). Terms are defined in quickbuild/README.md (lands in PR 1).

Lets the IDE side and the compile daemon talk to each other, and keeps the two from drifting apart as the feature changes.

flowchart TB
    core["IDE side: :quickbuild:core (PRs 5-8)<br/>writes requests, reads results"] -.-> proto
    subgraph proto["<b>This PR: :quickbuild:protocol (java-library, zero project deps)</b>"]
        types["Messaging formats for build requests, results, and diagnostics<br/><i>DaemonProtocol.kt</i>"]
        codec["Taxonomy for error types<br/><i>DaemonProtocol.kt</i>"]
        fix["testfixtures: OfflineGuard<br/><i>OfflineGuard.kt</i>"]
    end
    daemon["daemon side: :quickbuild:daemon (PR 9)<br/>reads requests, writes results"] -.-> proto
    classDef thisPrBox fill:#dbeafe,stroke:#93c5fd,color:#1e3a5f
    classDef inPr fill:#ffffff,stroke:#64748b,color:#000
    class proto thisPrBox
    class types,codec,fix inPr
Loading

How this PR Was Tested

  • Automated unit tests
  • [verified 2026-08-21] At this cut: :quickbuild:protocol:test green; the tree configures and builds with PRs 1-3 applied — 2 suites, 22 tests, 0 failures, 0 errors. Coverage 100.0% line / 100.0% branch.

Coverage (JaCoCo at the stack tip, single run):

Package Line Branch Note
org.appdevforall.cotg.quickbuild.protocol 100.0% 100.0%
NON-UI TOTAL 100.0% 100.0% 106 lines, 28 branches

🤖 Generated with Claude Code

https://claude.ai/code/session_01Kj9YeCDHGp9DU8LPtfWJ7W

@fryanpan
fryanpan force-pushed the feature/ADFA-4128-qb-03-protocol branch from cd6f486 to 637addf Compare August 22, 2026 06:41
fryanpan and others added 2 commits August 21, 2026 23:56
…the IDE and compile daemon share

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kj9YeCDHGp9DU8LPtfWJ7W
Finding (Important, pr03-review.md): DaemonProtocolDtoTest's first test was
named "configure without optional toolchain paths means self-discovery" with a
comment calling null the "discover from ANDROID_HOME" signal — the opposite of
the contract in the same commit (DaemonProtocol.kt KDoc: "required, as the
daemon never guesses a tool path"; README: configure answers ok:false with one
diagnostic per missing field) and of the daemon's actual behavior at stack tip
(DaemonService.configure rejects null/blank aapt2/d8Jar/androidJar).

Fix: renamed the test and rewrote the comment so null reads as "not supplied,
and configure rejects it", per the documented contract. The assertions were
already correct (null IS the DTO default) and are unchanged; the rejection
behavior itself is asserted in the daemon module's DaemonServiceTest at stack
tip, so no rejection assertion is duplicated here.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Kj9YeCDHGp9DU8LPtfWJ7W
@fryanpan
fryanpan force-pushed the feature/ADFA-4128-qb-03-protocol branch from 637addf to 62a647c Compare August 22, 2026 07:04
@fryanpan
fryanpan marked this pull request as ready for review August 23, 2026 02:31

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant