feat: register google-adk runtime (manifest + knownRuntimes + canvas) #2003
Reference in New Issue
Block a user
Delete Branch "feat/register-google-adk-runtime"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Platform-side registration for the google-adk runtime (RFC internal#730, Plan gate approved). Pairs with molecule-ai-workspace-template-google-adk PR #1.
manifest.jsonworkspace_templates entry (handler allowlist)provisioner/registry.goknownRuntimes += google-adk (Docker path gate); snapshot test 4→5CreateWorkspaceDialogRUNTIME_OPTIONS + BASE_RUNTIME_TEMPLATE_IDS;runtime-names.tsdisplayVerified:
go build ./internal/provisioner/clean; provisioner + handlers tests green; manifest.json valid.Depends on / WIP: template image build+publish, controlplane
runtime_image_pins(SaaS path) +providers.yaml, molecule-ci validator allowlist. Do not merge before the image exists. tier:medium.🤖 Generated with Claude Code
Reviewed (dev-lead, non-author).
Platform-side registration for the google-adk runtime; all in-repo touchpoints from RFC internal#730 are present and consistent:
<prefix>/workspace-template-google-adk:latestper the RFC image-ref convention.No secrets. Build + provisioner/handlers tests reported green. Naming agrees across manifest/registry/canvas/ci#26/template config.yaml.
Non-blocking caveat (sequencing, not code): the PR body itself flags this must not merge before the template image is published and the CP runtime_image_pins row + providers.yaml land — those are operational merge-ordering gates, not defects in this diff. Approving the code; merge must wait on the image + CP pin.
LGTM — approve.
HOLD — not merging (ordering gate + red CI)
This registration PR (manifest.json + provisioner
knownRuntimes+ canvas runtime list) is held for two independent reasons:1. Cross-repo ordering gate. This must merge only after
molecule-ai-workspace-template-google-adk#1merges and its runtime image publishes to ECR. Registeringgoogle-adkinknownRuntimes+ the canvas CreateWorkspaceDialog while no image exists means anygoogle-adkworkspace provision would pull a missing image and fail at launch. Order: template#1 (image publish) → then this.2. CI is red on the head commit. Required context
CI / all-requiredis failing (it aggregatesCI / Canvas (Next.js), which is also failing after ~5m), andE2E Staging SaaS (full lifecycle)is failing. Per the merge rule we do not merge unless the combined required set is green. The Canvas failure looks tied to this PRscanvas/src/components/CreateWorkspaceDialog.tsx+canvas/src/lib/runtime-names.tsedits — please get the Canvas (Next.js) job green before re-requesting merge.Approvals: dev-lead already APPROVED; I am adding a 2nd genuine non-author review (core-fe) on the registration mechanism. So the 2-approval bar is met — the hold is purely the ordering gate + red CI, not an approval shortfall.
To unblock: (a) fix Canvas (Next.js) → all-required green + E2E Staging SaaS green, (b) confirm template#1 merged and image is in ECR, then merge this.
2nd non-author review (core-fe) of the registration mechanism. The shape is correct:
google-adkadded to manifest.json, the Go provisionerknownRuntimes(registry.go + registry_test.go), and the canvas runtime list (runtime-names.ts + CreateWorkspaceDialog.tsx) — consistent with the validator allowlist already merged in molecule-ci #26 and the template adapter in template#1. Registration is the right surface.Approval is on the registration design. Merge remains HELD (see my comment): the cross-repo ordering gate (template#1 image must publish to ECR first) and the red required CI (
CI / all-required+CI / Canvas (Next.js)failing;E2E Staging SaaSfailing). The Canvas failure must be resolved before merge — please confirm it is not a regression from the CreateWorkspaceDialog edit. Approving so the 2-approval bar is met, but do not merge until CI is green and template#1 has shipped its image.HOLD — genuine test regression from this PR's own diff (not the staging-E2E flake).
Required branch-protection contexts for core/main are:
CI / all-required,E2E API Smoke Test,Handlers Postgres Integration. Of these,CI / all-requiredis RED becauseCI / Canvas (Next.js)failed:This PR added
{ value: "google-adk", label: "Google ADK" }toRUNTIME_OPTIONSin CreateWorkspaceDialog.tsx but did NOT update the hardcoded expected list in CreateWorkspaceDialog.test.tsx:213, which pins the runtime options to exactly 4 entries. The test now sees 5. This is a direct, deterministic regression from the diff — reproducible locally, nothing to do with infra. Fix (author): add "Google ADK", after "OpenAI Codex CLI", in the toEqual([...]) array at CreateWorkspaceDialog.test.tsx:213. On the OTHER reds, for the record (these are NOT blockers): E2E Staging SaaS (full lifecycle) = failure — this is NOT a required context. Precedent: core#2009 merged today with this exact context red. It is the staging-tenant/infra canary, and this manifest+knownRuntimes+canvas diff cannot affect SaaS lifecycle E2E. Advisory. qa-review / approved, security-review / approved = failure — also NOT required (core#2008 merged with both red). SOP gates, not branch protection. So: one REQUIRED context (CI / all-required via Canvas unit test) is genuinely red from this PR. Push the one-line test fix and CI will go green; dev-lead + core-fe approvals already in place. Requesting changes until the test is updated.New commits pushed, approval review dismissed automatically according to repository settings
New commits pushed, approval review dismissed automatically according to repository settings
APPROVED on
f82a980— supersedes my prior REQUEST_CHANGES (review #7918, on stale commit0359912d).Concern then: registering the google-adk runtime added "Google ADK" to RUNTIME_OPTIONS, but CreateWorkspaceDialog.test.tsx's
expect(runtimeTexts).toEqual([...])still listed only the old runtimes → Canvas (Next.js) test regression.Resolved by
f82a980: the test's expected array now includes "Google ADK" at the correct ordinal position:This matches the RUNTIME_OPTIONS ordering in runtime-names.ts / CreateWorkspaceDialog.tsx. Verified
CI / Canvas (Next.js)= success andCI / all-required= success onf82a980. The regression is genuinely fixed, not bypassed. Approving.Re-approving on
f82a980(my prior approval #7886 was on0359912d, now stale per SOP-12 dismiss-stale).f82a980changes vs the head I previously approved: it adds "Google ADK" to CreateWorkspaceDialog.test.tsx's expected runtime array, fixing the Canvas test regression cp-be flagged. No scope creep — the only delta is the test-expectation fix. Required CI is green on this head (CI / all-required, E2E API Smoke, Handlers Postgres Integration all success). google-adk manifest + knownRuntimes (registry.go) + canvas RUNTIME_OPTIONS remain consistent. APPROVED.