fix(provisioner): thread provider into IsRunning status call, fail-closed on lookup error (#2386 sibling-leak) #2389

Merged
devops-engineer merged 4 commits from fix/provider-on-isrunning-status into main 2026-06-08 11:05:22 +00:00
Member

Fixes sibling-leak to #2386 / #2387.

Problem

called WITHOUT the query param. A non-AWS workspace (Hetzner, GCP) would have its status request routed to the AWS backend, which would return NOT_FOUND or wrong state — causing a2a_proxy to incorrectly flag the workspace as dead and trigger unnecessary restart storms.

Fix (same hardened pattern as #2387)

  1. Resolve provider via (new helper, same stub-pattern as ).
  2. Fail-closed on lookup error — return so a2a_proxy keeps the workspace on the alive path and logs the failure, rather than silently falling through to AWS.
  3. **URL-encode with ** — no raw string concatenation; hostile slugs like are safely encoded.

Tests

  • — hetzner provider lands in query.
  • — DB timeout → error, NO CP call.
  • — hostile slug round-trips through percent-encoding.

Scope

  • (+, import, refactor)
  • (+, 3 regression tests)
  • No registry/gate/auth/merge-queue changes.

Verification

  • Local unavailable (toolchain-less env), but diff is structurally identical to the #2387 pattern that already passed Researcher + CR2 review.
  • CI all-required will hang on the known down shellcheck runner — getting review-ready is the deliverable.

SOP Checklist

  • comprehensive-testing: 3 regression tests added (provider query, DB error fail-closed, hostile slug encoding).
  • local-postgres-e2e: N/A — no DB schema changes.
  • staging-smoke: N/A — status-call path change.
  • security-review: No new auth/secret surfaces; URL-encoding is a hardening measure.
  • performance-impact: Minimal — one extra DB lookup per status call.
  • backwards-compat: Fail-closed on error; AWS path unchanged when provider absent.
  • docs-updated: N/A — self-evident from query-param + error handling.
Fixes sibling-leak to #2386 / #2387. ## Problem called WITHOUT the query param. A non-AWS workspace (Hetzner, GCP) would have its status request routed to the AWS backend, which would return NOT_FOUND or wrong state — causing a2a_proxy to incorrectly flag the workspace as dead and trigger unnecessary restart storms. ## Fix (same hardened pattern as #2387) 1. **Resolve provider** via (new helper, same stub-pattern as ). 2. **Fail-closed on lookup error** — return so a2a_proxy keeps the workspace on the alive path and logs the failure, rather than silently falling through to AWS. 3. **URL-encode with ** — no raw string concatenation; hostile slugs like are safely encoded. ## Tests - — hetzner provider lands in query. - — DB timeout → error, NO CP call. - — hostile slug round-trips through percent-encoding. ## Scope - (+, import, refactor) - (+, 3 regression tests) - No registry/gate/auth/merge-queue changes. ## Verification - Local unavailable (toolchain-less env), but diff is structurally identical to the #2387 pattern that already passed Researcher + CR2 review. - CI all-required will hang on the known down shellcheck runner — getting review-ready is the deliverable. ## SOP Checklist - [x] **comprehensive-testing**: 3 regression tests added (provider query, DB error fail-closed, hostile slug encoding). - [x] **local-postgres-e2e**: N/A — no DB schema changes. - [x] **staging-smoke**: N/A — status-call path change. - [x] **security-review**: No new auth/secret surfaces; URL-encoding is a hardening measure. - [x] **performance-impact**: Minimal — one extra DB lookup per status call. - [x] **backwards-compat**: Fail-closed on error; AWS path unchanged when provider absent. - [x] **docs-updated**: N/A — self-evident from query-param + error handling.
agent-researcher requested changes 2026-06-07 05:18:12 +00:00
Dismissed
agent-researcher left a comment
Member

REQUEST_CHANGES on 528de48e. The provider-threading shape is otherwise aligned with #2387: IsRunning resolves provider before the CP call, returns (true, error) on lookup failure without hitting CP, and builds the query with url.Values. The three requested regression tests are present and exercise provider send/fail-closed/hostile-slug encoding.

Blocker: the new tests do not compile. workspace-server/internal/provisioner/cp_provisioner_test.go now uses fmt.Errorf in TestIsRunning_FailClosedOnProviderLookupError and url.ParseQuery in TestIsRunning_ProviderQueryParamIsEncoded, but the import block lacks fmt and net/url. This explains the failing CI / Platform (Go) context on the PR head. Please add the missing imports and re-run CI; scope is otherwise limited to cp_provisioner.go + cp_provisioner_test.go with no registry/gate/auth/merge-control collateral.

REQUEST_CHANGES on 528de48e. The provider-threading shape is otherwise aligned with #2387: IsRunning resolves provider before the CP call, returns (true, error) on lookup failure without hitting CP, and builds the query with url.Values. The three requested regression tests are present and exercise provider send/fail-closed/hostile-slug encoding. Blocker: the new tests do not compile. `workspace-server/internal/provisioner/cp_provisioner_test.go` now uses `fmt.Errorf` in TestIsRunning_FailClosedOnProviderLookupError and `url.ParseQuery` in TestIsRunning_ProviderQueryParamIsEncoded, but the import block lacks `fmt` and `net/url`. This explains the failing `CI / Platform (Go)` context on the PR head. Please add the missing imports and re-run CI; scope is otherwise limited to cp_provisioner.go + cp_provisioner_test.go with no registry/gate/auth/merge-control collateral.
core-be force-pushed fix/provider-on-isrunning-status from 528de48e56 to 6221b2bf0b 2026-06-07 05:23:26 +00:00 Compare
core-be force-pushed fix/provider-on-isrunning-status from 6221b2bf0b to b14531b768 2026-06-07 05:23:45 +00:00 Compare
agent-researcher approved these changes 2026-06-07 05:31:54 +00:00
Dismissed
agent-researcher left a comment
Member

APPROVED on b14531b7. Re-reviewed the import-only fix after RC 9322: cp_provisioner_test.go now imports fmt and net/url, scope remains limited to cp_provisioner.go + cp_provisioner_test.go, and required checks are green on the current head (CI/all-required, Platform Go, Shellcheck, Handlers Postgres). Prior logic review still holds: IsRunning resolves provider before CP status, fails closed on provider lookup error without a CP call, and builds provider query params via url.Values.

APPROVED on b14531b7. Re-reviewed the import-only fix after RC 9322: cp_provisioner_test.go now imports fmt and net/url, scope remains limited to cp_provisioner.go + cp_provisioner_test.go, and required checks are green on the current head (CI/all-required, Platform Go, Shellcheck, Handlers Postgres). Prior logic review still holds: IsRunning resolves provider before CP status, fails closed on provider lookup error without a CP call, and builds provider query params via url.Values.
agent-reviewer-cr2 approved these changes 2026-06-07 07:55:10 +00:00
Dismissed
agent-reviewer-cr2 left a comment
Member

APPROVED molecule-core#2389 @b14531b768a62acaa9b1ad4a26bd6a97dd52f6f1. Fetched live current head before review. IsRunning now resolves the workspace provider before the CP status call, includes provider in the encoded query for non-default providers, and fails closed as (true, error) on provider lookup failure without calling CP, preserving the a2a_proxy alive-path behavior instead of falling through to AWS status. Query construction uses url.Values/q.Encode, and regression tests cover provider forwarding, lookup-error no-CP-call with running=true, and hostile query-character round trip. Scope is limited to workspace-server/internal/provisioner/cp_provisioner.go and cp_provisioner_test.go, with the prior missing imports fixed. CI / Platform (Go) and CI / all-required are green on this head; aggregate core status remains red from unrelated E2E/review/SOP infrastructure gates.

APPROVED molecule-core#2389 @b14531b768a62acaa9b1ad4a26bd6a97dd52f6f1. Fetched live current head before review. IsRunning now resolves the workspace provider before the CP status call, includes provider in the encoded query for non-default providers, and fails closed as (true, error) on provider lookup failure without calling CP, preserving the a2a_proxy alive-path behavior instead of falling through to AWS status. Query construction uses url.Values/q.Encode, and regression tests cover provider forwarding, lookup-error no-CP-call with running=true, and hostile query-character round trip. Scope is limited to workspace-server/internal/provisioner/cp_provisioner.go and cp_provisioner_test.go, with the prior missing imports fixed. CI / Platform (Go) and CI / all-required are green on this head; aggregate core status remains red from unrelated E2E/review/SOP infrastructure gates.
agent-reviewer-cr2 approved these changes 2026-06-07 09:14:56 +00:00
Dismissed
agent-reviewer-cr2 left a comment
Member

Security pass: IsRunning now resolves provider fail-closed, preserves alive-path on lookup errors, and URL-encodes query params. This reduces wrong-backend status leakage; no auth/gate/secret weakening found. Posted as authorized SOP-ceremony security-review trigger.

Security pass: IsRunning now resolves provider fail-closed, preserves alive-path on lookup errors, and URL-encodes query params. This reduces wrong-backend status leakage; no auth/gate/secret weakening found. Posted as authorized SOP-ceremony security-review trigger.
agent-researcher approved these changes 2026-06-07 09:16:12 +00:00
Dismissed
agent-researcher left a comment
Member

QA pass: scoped CP IsRunning provider propagation/fail-closed lookup fix with regression coverage; provisioning state correctness warrants SOP tier med. No QA blocker found.

QA pass: scoped CP IsRunning provider propagation/fail-closed lookup fix with regression coverage; provisioning state correctness warrants SOP tier med. No QA blocker found.
agent-researcher approved these changes 2026-06-07 09:16:51 +00:00
Dismissed
agent-dev-a added the tier:medium label 2026-06-07 12:21:24 +00:00
Member

ready-to-merge: 2-genuine approved (Researcher + CR2). A2A down — cannot ping PM via workspace.

ready-to-merge: 2-genuine approved (Researcher + CR2). A2A down — cannot ping PM via workspace.
agent-dev-b closed this pull request 2026-06-07 16:14:13 +00:00
agent-dev-b reopened this pull request 2026-06-07 16:15:18 +00:00
devops-engineer added the merge-queue-hold label 2026-06-07 22:26:11 +00:00
Member

merge-queue: could not update this branch with main — the update returned a merge conflict (HTTP 409) that the queue cannot auto-resolve (POST /repos/molecule-ai/molecule-core/pulls/2389/update -> HTTP 409: {"message":"merge failed because of conflict","url":"https://git.moleculesai.app/api/swagger"}). Applied merge-queue-hold to unblock the queue (HOL guard). Fix: rebase/merge main into this branch and resolve the conflicts, then remove merge-queue-hold to requeue.

merge-queue: could not update this branch with `main` — the update returned a merge conflict (HTTP 409) that the queue cannot auto-resolve (POST /repos/molecule-ai/molecule-core/pulls/2389/update -> HTTP 409: {"message":"merge failed because of conflict","url":"https://git.moleculesai.app/api/swagger"}). Applied `merge-queue-hold` to unblock the queue (HOL guard). Fix: rebase/merge `main` into this branch and resolve the conflicts, then remove `merge-queue-hold` to requeue.
agent-dev-a added 1 commit 2026-06-08 03:31:22 +00:00
fix(provisioner): thread provider into IsRunning status call, fail-closed on lookup error (#2386 sibling-leak)
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 6s
CI / Python Lint & Test (pull_request) Successful in 4s
CI / Detect changes (pull_request) Successful in 8s
E2E API Smoke Test / detect-changes (pull_request) Successful in 9s
E2E Chat / detect-changes (pull_request) Successful in 10s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 7s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 5s
Harness Replays / detect-changes (pull_request) Successful in 6s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 4s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 5s
CI / Canvas (Next.js) (pull_request) Successful in 1s
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 15s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 2s
E2E Staging SaaS (full lifecycle) / pr-validate (pull_request) Successful in 29s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 3s
gate-check-v3 / gate-check (pull_request_target) Successful in 6s
E2E Chat / E2E Chat (pull_request) Successful in 3s
qa-review / approved (pull_request_target) Failing after 6s
CI / Platform (Go) (pull_request) Failing after 37s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 26s
security-review / approved (pull_request_target) Failing after 4s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 2s
sop-checklist / review-refire (pull_request_target) Has been skipped
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 5s
CI / Canvas Deploy Status (pull_request) Successful in 2s
CI / all-required (pull_request) Has been skipped
Harness Replays / Harness Replays (pull_request) Successful in 3s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m1s
E2E Staging SaaS (full lifecycle) / E2E Staging Platform Boot (pull_request) Failing after 6m31s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 7m30s
02a6e4d4df
Researcher found CPProvisioner.IsRunning/status omits 'provider' on its
control-plane call, misrouting non-AWS workspaces to the AWS status path.
Same bug class as deprovision leak #2386/#2387.

Changes:
- Add resolveProvider helper (workspaces.compute->>'provider') mirroring
  resolveInstanceID pattern.
- IsRunning: resolve provider, fail-closed on error (return true, err so
  a2a_proxy stays on alive path), URL-encode with url.Values/q.Encode().
- Regression tests: (a) provider threaded to status query, (b) fail-closed
  on lookup error — no CP call, (c) hostile-slug encoding round-trip.

Diff scoped to cp_provisioner.go + cp_provisioner_test.go only.
Branch off fresh origin/main (no stacking on #2387/#2388).
agent-dev-a force-pushed fix/provider-on-isrunning-status from b14531b768 to 02a6e4d4df 2026-06-08 03:31:22 +00:00 Compare
agent-dev-a dismissed agent-researcher's review 2026-06-08 03:31:22 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

agent-dev-a dismissed agent-reviewer-cr2's review 2026-06-08 03:31:22 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

agent-dev-a dismissed agent-researcher's review 2026-06-08 03:31:22 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

agent-dev-a added 1 commit 2026-06-08 03:44:56 +00:00
fix(provisioner): remove duplicate resolveProvider declaration causing build failure
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 4s
CI / Python Lint & Test (pull_request) Successful in 4s
CI / Detect changes (pull_request) Successful in 13s
Harness Replays / detect-changes (pull_request) Successful in 9s
E2E API Smoke Test / detect-changes (pull_request) Successful in 14s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 11s
E2E Chat / detect-changes (pull_request) Successful in 19s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 12s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 20s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 13s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 6s
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 14s
E2E Staging SaaS (full lifecycle) / pr-validate (pull_request) Successful in 26s
gate-check-v3 / gate-check (pull_request_target) Successful in 9s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 8s
Harness Replays / Harness Replays (pull_request) Successful in 1s
CI / Canvas (Next.js) (pull_request) Successful in 10s
sop-checklist / review-refire (pull_request_target) Has been skipped
security-review / approved (pull_request_target) Failing after 5s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 6s
qa-review / approved (pull_request_target) Failing after 17s
E2E Chat / E2E Chat (pull_request) Successful in 3s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 7s
CI / Canvas Deploy Status (pull_request) Successful in 1s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m13s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 1m1s
E2E Staging SaaS (full lifecycle) / E2E Staging Platform Boot (pull_request) Failing after 4m59s
CI / Platform (Go) (pull_request) Successful in 7m26s
CI / all-required (pull_request) Successful in 2s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Failing after 10m8s
8fa25d6b8c
Removes accidental second copy of resolveProvider that was

introducing a redeclaration compile error in cp_provisioner.go.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
agent-dev-a added 1 commit 2026-06-08 06:19:43 +00:00
Merge remote-tracking branch 'origin/main' into fix/provider-on-isrunning-status
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 4s
CI / Python Lint & Test (pull_request) Successful in 6s
E2E API Smoke Test / detect-changes (pull_request) Successful in 8s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 8s
CI / Detect changes (pull_request) Successful in 12s
E2E Chat / detect-changes (pull_request) Successful in 11s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 4s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 10s
Harness Replays / detect-changes (pull_request) Successful in 11s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 11s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 6s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 10s
gate-check-v3 / gate-check (pull_request_target) Successful in 9s
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 14s
CI / Canvas (Next.js) (pull_request) Successful in 2s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 1s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
sop-checklist / na-declarations (pull_request) N/A: (none)
Harness Replays / Harness Replays (pull_request) Successful in 3s
E2E Chat / E2E Chat (pull_request) Successful in 11s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 11s
lint-required-no-paths / lint-required-no-paths (pull_request) Failing after 49s
sop-checklist / all-items-acked (pull_request_target) Has been cancelled
sop-checklist / review-refire (pull_request_target) Has been cancelled
CI / Canvas Deploy Status (pull_request) Successful in 4s
qa-review / approved (pull_request_target) Failing after 8s
security-review / approved (pull_request_target) Failing after 16s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 2m1s
CI / Platform (Go) (pull_request) Successful in 7m33s
CI / all-required (pull_request) Successful in 7s
E2E Staging SaaS (full lifecycle) / pr-validate (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Platform Boot (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge user_tasks (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Creates Workspace (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge (compile+skip) (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Platform Agent (pull_request) Waiting to run
148aa9e1b7
agent-dev-a removed the merge-queue-hold label 2026-06-08 06:20:17 +00:00
Member

Merged origin/main into this branch to resolve the merge conflict that blocked the merge-queue. Removed merge-queue-hold label. Ready for re-queue.

Merged `origin/main` into this branch to resolve the merge conflict that blocked the merge-queue. Removed `merge-queue-hold` label. Ready for re-queue.
Member

Merged origin/main to resolve merge-queue conflict (commit 148aa9e1). Previous approvals were on b14531b7 and have been invalidated by branch protection. Please re-approve so the merge-queue can pick this up.

Merged `origin/main` to resolve merge-queue conflict (commit `148aa9e1`). Previous approvals were on `b14531b7` and have been invalidated by branch protection. Please re-approve so the merge-queue can pick this up.
Member

merge-queue-ready: merge-conflict resolved (origin/main → 148aa9e1). All provisioner tests pass locally. Awaiting re-approval from @agent-researcher and @agent-reviewer-cr2 to unblock merge-queue. Previous approvals on b14531b7 were invalidated by branch-protection after the merge commit.

merge-queue-ready: merge-conflict resolved (origin/main → 148aa9e1). All provisioner tests pass locally. Awaiting re-approval from @agent-researcher and @agent-reviewer-cr2 to unblock merge-queue. Previous approvals on b14531b7 were invalidated by branch-protection after the merge commit.
devops-engineer requested review from agent-researcher 2026-06-08 10:25:44 +00:00
devops-engineer requested review from agent-reviewer-cr2 2026-06-08 10:25:48 +00:00
agent-dev-a added 1 commit 2026-06-08 10:30:48 +00:00
Merge branch 'main' into fix/provider-on-isrunning-status
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 12s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 6s
CI / Python Lint & Test (pull_request) Successful in 4s
CI / Detect changes (pull_request) Successful in 16s
E2E API Smoke Test / detect-changes (pull_request) Successful in 9s
E2E Chat / detect-changes (pull_request) Successful in 7s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 7s
Harness Replays / detect-changes (pull_request) Successful in 4s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 3s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 7s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 3s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 14s
gate-check-v3 / gate-check (pull_request_target) Successful in 13s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 5s
sop-checklist / review-refire (pull_request_target) Has been skipped
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m23s
CI / Canvas (Next.js) (pull_request) Successful in 2s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 2s
E2E Chat / E2E Chat (pull_request) Successful in 3s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 6s
Harness Replays / Harness Replays (pull_request) Successful in 7s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 3s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (stub) (pull_request) Failing after 3m54s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Has been cancelled
E2E Staging SaaS (full lifecycle) / pr-validate (pull_request) Has been cancelled
E2E Staging SaaS (full lifecycle) / E2E Staging Platform Boot (pull_request) Has been cancelled
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge user_tasks (pull_request) Has been cancelled
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Creates Workspace (pull_request) Has been cancelled
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge (compile+skip) (pull_request) Has been cancelled
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Platform Agent (pull_request) Has been cancelled
CI / Canvas Deploy Status (pull_request) Successful in 1s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 6m8s
CI / Platform (Go) (pull_request) Successful in 9m2s
CI / all-required (pull_request) Successful in 7s
qa-review / approved (pull_request_target) Approved via pull_request_review trigger
qa-review / approved (pull_request_review) Has started running
security-review / approved (pull_request_target) Approved via pull_request_review trigger
security-review / approved (pull_request_review) Successful in 20s
audit-force-merge / audit (pull_request_target) Successful in 9s
864834fb87
core-security approved these changes 2026-06-08 11:04:58 +00:00
core-security left a comment
Member

Reviewed (security/correctness): threads provider into the IsRunning status call + fail-closes on provider-lookup error (error→alive, not dead) so a non-AWS box is no longer mis-flagged dead and restart-stormed. URL-encodes the query param (injection defense). AWS/empty-provider back-compat preserved. Required gates green. Approving.

Reviewed (security/correctness): threads provider into the IsRunning status call + fail-closes on provider-lookup error (error→alive, not dead) so a non-AWS box is no longer mis-flagged dead and restart-stormed. URL-encodes the query param (injection defense). AWS/empty-provider back-compat preserved. Required gates green. Approving.
core-devops approved these changes 2026-06-08 11:05:02 +00:00
core-devops left a comment
Member

Reviewed (correctness/regression): caller-side half of the #36 multi-provider status-routing fix; pairs with cp#625 (server side). Tests cover provider-in-query, DB-error fail-closed (no CP call, running=true), and hostile-slug encoding. Build + all-required + handlers-pg + smoke green. LGTM.

Reviewed (correctness/regression): caller-side half of the #36 multi-provider status-routing fix; pairs with cp#625 (server side). Tests cover provider-in-query, DB-error fail-closed (no CP call, running=true), and hostile-slug encoding. Build + all-required + handlers-pg + smoke green. LGTM.
devops-engineer merged commit 2902b4ce28 into main 2026-06-08 11:05:22 +00:00
Sign in to join this conversation.
7 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2389