[Roadmap] feat(studio): Android Studio plugin Phase 1 MVP — thin-client IDE integration - #153
Open
RanjithRagavan wants to merge 2 commits into
Open
RanjithRagavan wants to merge 2 commits into
RanjithRagavan wants to merge 2 commits into
Conversation
…egration Implements Phase 1 of the Android Studio Integration roadmap item (google#152): - Tool window: server status, device picker (GET /api/devices), natural-language task dispatch (POST /api/run), live status polling (GET /api/sessions/{id}), task stop (POST /api/stop) - Settings page (Tools > ARTEMIS): server URL, default profile, device serial - Thin client over the same HTTP API as packages/artemis-client; no agent logic in the IDE; java.net.http + Gson, zero external dependencies - Kotlin models mirror the Python artemis-client payload shapes, including legacy field fallbacks - 25 unit/integration tests (model parsing, request building, submit/poll/ stop against a mock HTTP server, error paths) - Compatibility: since-build 231 (Android Studio Hedgehog+ / IntelliJ 2023.1+), no until-build cap; verified with buildPlugin + verifyPluginStructure
Open
5 tasks
Pre-existing on main: 11 lint errors (datetime.UTC alias style) fail the Lint Python step under the ruff version CI resolves today. Applied ruff check --fix + format so the pipeline goes green again.
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.
Summary
Implements Phase 1 of the Android Studio Integration roadmap item — a native IDE plugin (thin client) that brings ARTEMIS task dispatch and monitoring into Android Studio.
Part of #152 (Phases 2–3 — run configurations, breakpoint-aware runs, record mode — intentionally left as follow-ups).
@somew1nd @yaoyao-open-source would love your review when you have a moment — happy to adjust scope, directory placement, or packaging to fit the project's conventions.
What the plugin does
GET /api/devices, natural-language prompt dispatch viaPOST /api/run(flash/pro), live task list with 2 s polling viaGET /api/sessions/{id}, detail pane, and Stop viaPOST /api/stopArchitecture
Strict thin client: the plugin only speaks the same HTTP API as
packages/artemis-client(endpoint shapes mirrored field-for-field, including legacy fallbacks likesession_id/task_id/trace_id). No agent logic, no credentials surface in the IDE.java.net.http.HttpClient+ platform-bundled Gson — zero external dependencies, keeping the plugin small (~1.7 MB zip) and free of dependency conflicts.Compatibility
since-build="231", nountil-buildcap → Android Studio Hedgehog 2023.1.1 through current (Iguana/Jellyfish/Koala/Ladybug/Meerkat/Narwhal), and IntelliJ IDEA 2023.1+Testing
./gradlew test): model JSON parsing (canned payloads mirrored frompackages/artemis-client/tests),/api/runrequest building, and full submit → poll → stop integration against an in-process mock HTTP server, plus error paths (server down, HTTP 500, task rejection, 404 fallbacks)./gradlew buildPlugin→artemis-android-studio-plugin-0.1.0.zip✅./gradlew verifyPluginStructure✅android-studio-plugin/README.md;./gradlew runIdeworks for a sandbox smoke testandroid-studio-pluginwould be a natural follow-upLayout
All sources carry the repo-standard Apache 2.0 header.
Test plan
./gradlew test— 25/25 pass./gradlew buildPlugin+verifyPluginStructure— passartemis uiserver, dispatch a task (documented in plugin README)