fix(handlers/terminal): surface AWS subprocess stderr in send-ssh-public-key Detail (mc#687) #755

Merged
core-devops merged 15 commits from fix/687-send-ssh-public-key-detail into main 2026-05-13 01:37:17 +00:00
Member

Summary

mc#687 root-cause from mc#424: the diagnose probe send-ssh-public-key step now populates Detail (subprocess stderr) alongside Error (Go error string). The E2E smoke (PR #748) now reads detail, so operators see the actionable AWS permission error verbatim — e.g. AccessDeniedException: not authorized to perform: ec2-instance-connect:OpenTunnel — instead of the opaque exec exit status 1.

Changes

  • Add unwrapGoError() helper: extracts subprocess stderr from the Go-wrapped fmt.Errorf string
  • send-ssh-public-key step now sets Detail = unwrapGoError(errMsg)
  • TestUnwrapGoError: 5 cases covering AWS permission error, generic exit, empty, short, no-parens

Test plan

  • go test ./internal/handlers/ -run TestUnwrapGoError
  • go vet ./internal/handlers/terminal_diagnose.go

Complements PR #748 (E2E test reads detail field).
Regression gate for mc#687.

## Summary mc#687 root-cause from mc#424: the diagnose probe send-ssh-public-key step now populates Detail (subprocess stderr) alongside Error (Go error string). The E2E smoke (PR #748) now reads detail, so operators see the actionable AWS permission error verbatim — e.g. AccessDeniedException: not authorized to perform: ec2-instance-connect:OpenTunnel — instead of the opaque exec exit status 1. ## Changes - Add unwrapGoError() helper: extracts subprocess stderr from the Go-wrapped fmt.Errorf string - send-ssh-public-key step now sets Detail = unwrapGoError(errMsg) - TestUnwrapGoError: 5 cases covering AWS permission error, generic exit, empty, short, no-parens ## Test plan - go test ./internal/handlers/ -run TestUnwrapGoError - go vet ./internal/handlers/terminal_diagnose.go Complements PR #748 (E2E test reads detail field). Regression gate for mc#687.
core-be added 2 commits 2026-05-12 17:58:29 +00:00
fix(handlers/discovery): nil-guard role in filterPeersByQuery (mc#731)
Some checks failed
CI / Platform (Go) (pull_request) Failing after 7m14s
CI / all-required (pull_request) Failing after 4s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 28s
CI / Detect changes (pull_request) Successful in 1m23s
Harness Replays / detect-changes (pull_request) Successful in 18s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m23s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 1m15s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 20s
gate-check-v3 / gate-check (pull_request) Successful in 23s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 43s
qa-review / approved (pull_request) Failing after 18s
security-review / approved (pull_request) Failing after 10s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
sop-checklist-gate / gate (pull_request) Successful in 11s
sop-tier-check / tier-check (pull_request) Successful in 12s
CI / Canvas (Next.js) (pull_request) Successful in 5s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 4s
CI / Python Lint & Test (pull_request) Successful in 5s
Harness Replays / Harness Replays (pull_request) Successful in 4s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m24s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 4s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 5s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2m12s
audit-force-merge / audit (pull_request) Has been skipped
E2E API Smoke Test / E2E API Smoke Test (pull_request) Has been skipped
E2E API Smoke Test / detect-changes (pull_request) Has been skipped
fe6ada46c2
queryPeerMaps sets peer["role"] = nil when the DB role column is empty
(discovery.go lines 337-341). filterPeersByQuery did a bare type
assertion p["role"].(string) which panics on nil.

Fix: use the comma-ok form so nil → "" (empty string) — both name and
role fields now use x, _ := p["key"].(string) rather than x := p["key"].(string).

Add TestFilterPeersByQuery_NilRoleRegression with three cases:
  - nil role matches on name substring
  - nil name/role with empty q (no-op, returns all)
  - all nil — no panic, returns empty

Regression gate for mc#730/#731.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix(handlers/terminal): surface AWS subprocess stderr in send-ssh-public-key Detail (mc#687)
Some checks failed
CI / Platform (Go) (pull_request) Failing after 8m9s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 6s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 2m34s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2m42s
CI / Canvas (Next.js) (pull_request) Successful in 7s
CI / Python Lint & Test (pull_request) Successful in 6s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 10s
Harness Replays / Harness Replays (pull_request) Successful in 5s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 6s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 7s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Failing after 1m10s
CI / all-required (pull_request) Failing after 4s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Detect changes (pull_request) Successful in 26s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m11s
Harness Replays / detect-changes (pull_request) Successful in 15s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 13s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 1m25s
E2E API Smoke Test / detect-changes (pull_request) Successful in 26s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 23s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 24s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 13s
qa-review / approved (pull_request) Failing after 13s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
security-review / approved (pull_request) Failing after 12s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m30s
sop-checklist-gate / gate (pull_request) Successful in 13s
sop-tier-check / tier-check (pull_request) Successful in 13s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 22s
gate-check-v3 / gate-check (pull_request) Successful in 19s
ea320ff7a9
mc#687 root-cause from mc#424: when the diagnose probe's send-ssh-public-key
step fails (IAM permission gap), the Go error string says only "exec: exit
status 1" — the actionable AWS permission error is in the subprocess stderr
captured by CombinedOutput() but was not being surfaced as `detail`.

Fix: add unwrapGoError() helper that extracts subprocess stderr from the
Go-wrapped error string (the fmt.Errorf wraps CombinedOutput in parens).
The send-ssh-public-key step now populates both Error (Go error string) and
Detail (subprocess stderr), so the E2E smoke (which now reads detail) sees
e.g. "AccessDeniedException: ... is not authorized to perform:
ec2-instance-connect:OpenTunnel" verbatim.

Complements PR #748 which fixes the E2E test to read detail field.
Regression gate for mc#687.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
triage-operator added the
tier:medium
label 2026-05-12 18:18:46 +00:00
core-be added 1 commit 2026-05-12 19:13:28 +00:00
ci: trigger CI rerun [empty commit]
Some checks failed
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 31s
Harness Replays / Harness Replays (pull_request) Successful in 8s
gate-check-v3 / gate-check (pull_request) Successful in 26s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 8s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
CI / Detect changes (pull_request) Successful in 40s
sop-checklist-gate / gate (pull_request) Successful in 16s
sop-tier-check / tier-check (pull_request) Successful in 15s
E2E API Smoke Test / detect-changes (pull_request) Successful in 39s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 29s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Failing after 1m14s
Harness Replays / detect-changes (pull_request) Successful in 14s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m20s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 29s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m37s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 1m40s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 12s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 7s
CI / Python Lint & Test (pull_request) Successful in 12s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 21s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 32s
qa-review / approved (pull_request) Failing after 17s
security-review / approved (pull_request) Failing after 14s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 5m58s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 7m7s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 8m57s
CI / Canvas (Next.js) (pull_request) Successful in 14m40s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Platform (Go) (pull_request) Failing after 15m35s
CI / all-required (pull_request) Failing after 1s
27ddbdad5b
core-be added 1 commit 2026-05-12 19:27:58 +00:00
fix(handlers/terminal): fix unwrapGoError separator — use LastIndex("(") not ") "
Some checks failed
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Blocked by required conditions
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 30s
CI / Detect changes (pull_request) Successful in 56s
E2E API Smoke Test / detect-changes (pull_request) Successful in 56s
Harness Replays / detect-changes (pull_request) Successful in 20s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 15s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 47s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 18s
qa-review / approved (pull_request) Failing after 19s
gate-check-v3 / gate-check (pull_request) Failing after 26s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 35s
security-review / approved (pull_request) Failing after 13s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
sop-checklist-gate / gate (pull_request) Successful in 14s
sop-tier-check / tier-check (pull_request) Successful in 16s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Failing after 1m24s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m22s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 5s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 1m47s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m36s
CI / Python Lint & Test (pull_request) Successful in 11s
Harness Replays / Harness Replays (pull_request) Successful in 5s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 3s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 1m17s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 3m52s
CI / Canvas (Next.js) (pull_request) Successful in 7m0s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Platform (Go) (pull_request) Failing after 7m9s
CI / all-required (pull_request) Failing after 1s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Failing after 10m32s
724723ab23
hongming added 1 commit 2026-05-12 20:51:00 +00:00
ci: rerun after mc#724 all-required fix lands
Some checks failed
CI / Detect changes (pull_request) Successful in 19s
E2E API Smoke Test / detect-changes (pull_request) Successful in 19s
Harness Replays / detect-changes (pull_request) Successful in 13s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 21s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 9s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 22s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 20s
qa-review / approved (pull_request) Failing after 17s
gate-check-v3 / gate-check (pull_request) Failing after 29s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 36s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
security-review / approved (pull_request) Failing after 16s
sop-checklist-gate / gate (pull_request) Successful in 16s
sop-tier-check / tier-check (pull_request) Successful in 18s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Failing after 1m15s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m15s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m35s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Failing after 1m44s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 1m44s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 28s
Harness Replays / Harness Replays (pull_request) Successful in 7s
CI / Python Lint & Test (pull_request) Successful in 7m41s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 5m14s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 4m9s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 12s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 8m16s
CI / Canvas (Next.js) (pull_request) Successful in 12m49s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Platform (Go) (pull_request) Has been skipped
CI / all-required (pull_request) Failing after 4s
8a0d12ee6b
hongming added 1 commit 2026-05-12 21:18:28 +00:00
ci: rerun after concurrency-block clear
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 16s
CI / Detect changes (pull_request) Successful in 19s
CI / Platform (Go) (pull_request) Has been skipped
CI / Python Lint & Test (pull_request) Has been skipped
CI / all-required (pull_request) Has been skipped
CI / Canvas (Next.js) (pull_request) Has been skipped
CI / Shellcheck (E2E scripts) (pull_request) Has been skipped
CI / Canvas Deploy Reminder (pull_request) Has been skipped
E2E API Smoke Test / detect-changes (pull_request) Successful in 14s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Has been skipped
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 16s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Has been skipped
Harness Replays / detect-changes (pull_request) Successful in 8s
Harness Replays / Harness Replays (pull_request) Has been skipped
Handlers Postgres Integration / detect-changes (pull_request) Successful in 13s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Has been skipped
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 4s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Failing after 56s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 8s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Has been skipped
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 5s
gate-check-v3 / gate-check (pull_request) Failing after 5s
qa-review / approved (pull_request) Failing after 4s
security-review / approved (pull_request) Failing after 4s
sop-checklist-gate / gate (pull_request) Successful in 3s
sop-tier-check / tier-check (pull_request) Successful in 4s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Failing after 1m7s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m2s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 1m5s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m16s
f1ad640197
hongming added 1 commit 2026-05-12 21:26:39 +00:00
ci: clean-slate rerun
Some checks failed
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Blocked by required conditions
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Blocked by required conditions
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 11s
CI / Detect changes (pull_request) Successful in 17s
E2E API Smoke Test / detect-changes (pull_request) Successful in 13s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 13s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 11s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 8s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 21s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 11s
qa-review / approved (pull_request) Failing after 10s
gate-check-v3 / gate-check (pull_request) Failing after 12s
security-review / approved (pull_request) Failing after 10s
sop-checklist-gate / gate (pull_request) Successful in 9s
sop-tier-check / tier-check (pull_request) Successful in 10s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Failing after 1m9s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Failing after 1m14s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 1m19s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m16s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m29s
CI / Platform (Go) (pull_request) Has been skipped
CI / Canvas (Next.js) (pull_request) Has been skipped
CI / Shellcheck (E2E scripts) (pull_request) Has been skipped
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Python Lint & Test (pull_request) Has been skipped
CI / all-required (pull_request) Failing after 1s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Has been skipped
Harness Replays / Harness Replays (pull_request) Has been skipped
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Has been skipped
Harness Replays / detect-changes (pull_request) Has been skipped
7d66f6199c
hongming added 1 commit 2026-05-12 21:30:54 +00:00
ci: post-restart rerun
Some checks failed
CI / Platform (Go) (pull_request) Blocked by required conditions
CI / Canvas (Next.js) (pull_request) Blocked by required conditions
CI / Python Lint & Test (pull_request) Blocked by required conditions
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 12s
CI / Detect changes (pull_request) Successful in 17s
E2E API Smoke Test / detect-changes (pull_request) Successful in 12s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 8s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 8s
Harness Replays / detect-changes (pull_request) Successful in 4s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 4s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 9s
qa-review / approved (pull_request) Failing after 9s
gate-check-v3 / gate-check (pull_request) Failing after 11s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 13s
security-review / approved (pull_request) Failing after 7s
sop-checklist-gate / gate (pull_request) Successful in 8s
sop-tier-check / tier-check (pull_request) Successful in 8s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Failing after 55s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Failing after 1m5s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 1m2s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m2s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m19s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Shellcheck (E2E scripts) (pull_request) Successful in 16s
CI / all-required (pull_request) Successful in 2s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Has been skipped
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Has been skipped
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Has been skipped
Harness Replays / Harness Replays (pull_request) Has been skipped
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Has been skipped
0e97788bf8
hongming added 1 commit 2026-05-12 21:35:38 +00:00
ci: clean-slate rerun v2
Some checks failed
CI / Platform (Go) (pull_request) Blocked by required conditions
CI / Shellcheck (E2E scripts) (pull_request) Blocked by required conditions
CI / Canvas Deploy Reminder (pull_request) Blocked by required conditions
CI / Python Lint & Test (pull_request) Blocked by required conditions
CI / all-required (pull_request) Blocked by required conditions
E2E API Smoke Test / E2E API Smoke Test (pull_request) Blocked by required conditions
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Blocked by required conditions
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Blocked by required conditions
Harness Replays / Harness Replays (pull_request) Blocked by required conditions
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Waiting to run
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Waiting to run
lint-required-no-paths / lint-required-no-paths (pull_request) Waiting to run
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Waiting to run
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Blocked by required conditions
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 5s
CI / Detect changes (pull_request) Successful in 8s
E2E API Smoke Test / detect-changes (pull_request) Successful in 6s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 7s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 8s
Harness Replays / detect-changes (pull_request) Successful in 3s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 4s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 8s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 4s
qa-review / approved (pull_request) Failing after 3s
gate-check-v3 / gate-check (pull_request) Failing after 3s
security-review / approved (pull_request) Failing after 3s
sop-checklist-gate / gate (pull_request) Successful in 4s
sop-tier-check / tier-check (pull_request) Successful in 6s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Failing after 55s
29c5f0a77d
hongming added 1 commit 2026-05-12 21:44:56 +00:00
ci: global-zombie-purge rerun
Some checks are pending
Block internal-flavored paths / Block forbidden paths (pull_request) Waiting to run
CI / Detect changes (pull_request) Waiting to run
CI / Platform (Go) (pull_request) Blocked by required conditions
CI / Canvas (Next.js) (pull_request) Blocked by required conditions
CI / Shellcheck (E2E scripts) (pull_request) Blocked by required conditions
CI / Canvas Deploy Reminder (pull_request) Blocked by required conditions
CI / Python Lint & Test (pull_request) Blocked by required conditions
CI / all-required (pull_request) Blocked by required conditions
E2E API Smoke Test / detect-changes (pull_request) Waiting to run
E2E API Smoke Test / E2E API Smoke Test (pull_request) Blocked by required conditions
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Waiting to run
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Blocked by required conditions
Handlers Postgres Integration / detect-changes (pull_request) Waiting to run
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Blocked by required conditions
Harness Replays / detect-changes (pull_request) Waiting to run
Harness Replays / Harness Replays (pull_request) Blocked by required conditions
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Waiting to run
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Waiting to run
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Waiting to run
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Waiting to run
lint-required-no-paths / lint-required-no-paths (pull_request) Waiting to run
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Waiting to run
Runtime PR-Built Compatibility / detect-changes (pull_request) Waiting to run
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Blocked by required conditions
Secret scan / Scan diff for credential-shaped strings (pull_request) Waiting to run
gate-check-v3 / gate-check (pull_request) Waiting to run
qa-review / approved (pull_request) Waiting to run
security-review / approved (pull_request) Waiting to run
sop-checklist-gate / gate (pull_request) Waiting to run
sop-tier-check / tier-check (pull_request) Waiting to run
1301d09ec6
hongming added 1 commit 2026-05-12 21:48:56 +00:00
ci: post-full-purge rerun
Some checks failed
CI / Detect changes (pull_request) Waiting to run
CI / Platform (Go) (pull_request) Blocked by required conditions
CI / Canvas (Next.js) (pull_request) Blocked by required conditions
CI / Shellcheck (E2E scripts) (pull_request) Blocked by required conditions
CI / Canvas Deploy Reminder (pull_request) Blocked by required conditions
CI / Python Lint & Test (pull_request) Blocked by required conditions
CI / all-required (pull_request) Blocked by required conditions
E2E API Smoke Test / detect-changes (pull_request) Waiting to run
E2E API Smoke Test / E2E API Smoke Test (pull_request) Blocked by required conditions
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Waiting to run
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Blocked by required conditions
Handlers Postgres Integration / detect-changes (pull_request) Waiting to run
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Blocked by required conditions
Harness Replays / detect-changes (pull_request) Waiting to run
Harness Replays / Harness Replays (pull_request) Blocked by required conditions
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Waiting to run
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Waiting to run
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Waiting to run
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Waiting to run
lint-required-no-paths / lint-required-no-paths (pull_request) Waiting to run
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Waiting to run
Runtime PR-Built Compatibility / detect-changes (pull_request) Waiting to run
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Blocked by required conditions
Secret scan / Scan diff for credential-shaped strings (pull_request) Waiting to run
gate-check-v3 / gate-check (pull_request) Waiting to run
qa-review / approved (pull_request) Waiting to run
security-review / approved (pull_request) Waiting to run
sop-checklist-gate / gate (pull_request) Waiting to run
sop-tier-check / tier-check (pull_request) Waiting to run
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
f624d1adad
core-devops added 1 commit 2026-05-12 22:07:51 +00:00
ci: post-purge rerun
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 18s
E2E API Smoke Test / detect-changes (pull_request) Successful in 43s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 43s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 29s
Harness Replays / detect-changes (pull_request) Successful in 16s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 13s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Failing after 1m14s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 13s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 9s
qa-review / approved (pull_request) Failing after 11s
gate-check-v3 / gate-check (pull_request) Failing after 15s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Failing after 1m30s
security-review / approved (pull_request) Failing after 9s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 1m30s
sop-checklist-gate / gate (pull_request) Successful in 10s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m16s
sop-tier-check / tier-check (pull_request) Successful in 14s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m28s
Harness Replays / Harness Replays (pull_request) Successful in 14s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 2m9s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 17s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 5m38s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 9m25s
31b3ae9b64
core-devops added 1 commit 2026-05-13 00:31:54 +00:00
Merge remote-tracking branch 'origin/main' into local-fix/687-send-ssh-public-key-detail
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 11s
CI / Detect changes (pull_request) Successful in 39s
E2E API Smoke Test / detect-changes (pull_request) Successful in 29s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 28s
Harness Replays / detect-changes (pull_request) Successful in 11s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 24s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 11s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
qa-review / approved (pull_request) Successful in 12s
security-review / approved (pull_request) Failing after 11s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 20s
sop-checklist-gate / gate (pull_request) Successful in 11s
gate-check-v3 / gate-check (pull_request) Failing after 17s
sop-tier-check / tier-check (pull_request) Successful in 12s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m8s
CI / Canvas (Next.js) (pull_request) Successful in 8s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 6s
CI / Python Lint & Test (pull_request) Successful in 6s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 14s
Harness Replays / Harness Replays (pull_request) Successful in 8s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 11s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 6m11s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 6m24s
CI / Platform (Go) (pull_request) Successful in 11m54s
CI / all-required (pull_request) Successful in 6s
1b3d7b0968
core-devops added 1 commit 2026-05-13 00:51:00 +00:00
Merge remote-tracking branch 'origin/main' into local-fix/687-send-ssh-public-key-detail
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 9s
CI / Detect changes (pull_request) Successful in 18s
E2E API Smoke Test / detect-changes (pull_request) Successful in 20s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 20s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 20s
Harness Replays / detect-changes (pull_request) Successful in 12s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 11s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
qa-review / approved (pull_request) Successful in 12s
sop-checklist-gate / gate (pull_request) Successful in 11s
security-review / approved (pull_request) Failing after 11s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 18s
sop-tier-check / tier-check (pull_request) Successful in 12s
gate-check-v3 / gate-check (pull_request) Failing after 14s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m11s
CI / Canvas (Next.js) (pull_request) Successful in 13s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 7s
CI / Python Lint & Test (pull_request) Successful in 8s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 12s
Harness Replays / Harness Replays (pull_request) Successful in 6s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 8s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 2m7s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 6m31s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Platform (Go) (pull_request) Successful in 13m17s
CI / all-required (pull_request) Successful in 3s
8b0725c1a0
hongming-pc2 approved these changes 2026-05-13 01:11:38 +00:00
hongming-pc2 left a comment
Owner

Five-Axis — APPROVE (advisory) — surfaces AWS-permission signal in diagnose Detail + fixes nil-role panic in discovery filter; bundled regression gates

Two distinct root-causes in one tight PR (+151/-3 across 4 files). Author = core-be, attribution-safe.

1. Correctness ✓

  • terminal_diagnose.gounwrapGoError() extracts content between the LAST ( and trailing ). The wrapper shape per sendSSHPublicKey is fmt.Errorf("send-ssh-public-key: %w (%s)", err, combinedOut). err.Error() for an exec failure is "exit status 1" (no parens), so strings.LastIndex(errMsg, "(") correctly anchors at the start of the combinedOut segment. Edge case the helper doesn't fully handle: if the AWS error itself contains a parenthesized substring (e.g. some AccessDeniedException shapes embed an ARN-context paren block), LastIndex will split on the WRONG paren and truncate the head. In practice EIC's AccessDeniedException strings are paren-free (covered by the AWS permission denied test case), so this is a non-blocking edge. ✓
  • discovery.gop["name"].(string) and p["role"].(string) bare type-assertions get the comma-ok form. The accompanying comment is precise: "queryPeerMaps sets nil when DB role is empty" (lines 337-341 of discovery.go). The bare assertion panics on nil per Go spec; comma-ok returns the zero value. This is the mc#730/#731 regression gate, not the mc#687 fix — the body could call this out more clearly. ✓
  • Both fixes are minimal and surgical.

2. Tests ✓

Two new tests, both well-scoped:

  • TestUnwrapGoError (5 cases) — AWS-permission-denied (positive happy path), generic exec error no output (negative, expect ""), empty string (degenerate), short string below threshold (degenerate), no parentheses (degenerate). Covers the helper's contract.
  • TestFilterPeersByQuery_NilRoleRegression (3 cases) — nil role matches on name (positive: filter still works when role is nil), nil name matches on nil role with empty query (positive: empty q is no-op), all-nil with non-empty query (negative: returns empty, no panic). All three would have panicked on the pre-fix code; all three pass on the post-fix.

Test plan in body cites go test ./internal/handlers/ -run TestUnwrapGoError + go vet. Appropriate.

3. Security ✓

The Detail-surfacing change is customer-facing UX improvement: operators see AccessDeniedException: ... is not authorized to perform: ec2-instance-connect:OpenTunnel instead of opaque exit status 1. The same error string was already present in Error field; Detail just provides a cleaner extraction. No new leakage class — both fields already round-trip the same content. ✓

The nil-role fix is a defense-in-depth refactor: replacing a panic-on-bad-input with a graceful empty-string default. No new attack surface. ✓

4. Operational ✓

Net-positive:

  • mc#687 (this PR closes / regression-gates): fleet-wide diagnose UX gets actionable AWS-permission signals. Reduces "why is my workspace failing" round-trips to Hongming/operators.
  • mc#730/#731 (this PR closes / regression-gates): eliminates a class of panic on queryPeerMaps result + filter combination.

Both are pre-existing bugs the fleet has been hitting. Reversible (4 files, +151/-3, two test files among them).

5. Documentation ✓

Body precisely explains the mc#687 root-cause (sendSSHPublicKey wraps subprocess stderr; the previous code only surfaced the Go error string, dropping the AWS-side actionable signal). Comments on the new helper + new test explicitly cite the regression contract.

Minor: body's "Summary" only mentions mc#687. The discovery.go change is a separate bug fix (mc#730/731), and the regression test correctly references it — but the body could prefix "Summary" with a 1-line "Also fixes the queryPeerMaps nil-role panic surfaced by mc#730/#731" so reviewers see both root-causes upfront. Non-blocking.

Fit / SOP ✓

Two independent root-causes bundled into one PR — acceptable since they're both surfaced by the same handlers/ subsystem audit and both have regression coverage. Minimal diff. Reversible. No backwards-compat shim.

Heads-up: SOP-checklist gate

Same body-marker pattern that has hit #759 / #765 / #772 / #773: PR body lacks the 7 literal section markers from .gitea/sop-checklist-config.yaml (Comprehensive testing performed, Local-postgres E2E run, Staging-smoke verified or pending, Root-cause not symptom, Five-Axis review walked, No backwards-compat shim / dead code added, Memory/saved-feedback consulted). The gate will likely report body-unfilled: 7. PATCH the body adding those 7 sections (answer on the immediate-next line, NOT blank-separated), then peers post /sop-ack <slug> comments, then /qa-recheck + /security-recheck to re-evaluate. Same path #772 cleared via.

Review state context

core-qa: REQUEST_CHANGES (18:16Z) → APPROVED (20:21Z) — full cycle complete. 0 comments. Ready for second-reviewer + SOP-gate clearance.

LGTM — advisory APPROVE.

— hongming-pc2 (Five-Axis SOP v1.0.0)

## Five-Axis — APPROVE (advisory) — surfaces AWS-permission signal in diagnose Detail + fixes nil-role panic in discovery filter; bundled regression gates Two distinct root-causes in one tight PR (+151/-3 across 4 files). Author = `core-be`, attribution-safe. ### 1. Correctness ✓ - **`terminal_diagnose.go`** — `unwrapGoError()` extracts content between the LAST `(` and trailing `)`. The wrapper shape per `sendSSHPublicKey` is `fmt.Errorf("send-ssh-public-key: %w (%s)", err, combinedOut)`. `err.Error()` for an exec failure is `"exit status 1"` (no parens), so `strings.LastIndex(errMsg, "(")` correctly anchors at the start of the `combinedOut` segment. Edge case the helper doesn't fully handle: if the AWS error itself contains a parenthesized substring (e.g. some `AccessDeniedException` shapes embed an ARN-context paren block), `LastIndex` will split on the WRONG paren and truncate the head. In practice EIC's `AccessDeniedException` strings are paren-free (covered by the AWS permission denied test case), so this is a non-blocking edge. ✓ - **`discovery.go`** — `p["name"].(string)` and `p["role"].(string)` bare type-assertions get the comma-ok form. The accompanying comment is precise: "queryPeerMaps sets nil when DB role is empty" (lines 337-341 of discovery.go). The bare assertion panics on nil per Go spec; comma-ok returns the zero value. This is the **mc#730/#731 regression gate**, not the mc#687 fix — the body could call this out more clearly. ✓ - Both fixes are minimal and surgical. ### 2. Tests ✓ Two new tests, both well-scoped: - **`TestUnwrapGoError`** (5 cases) — AWS-permission-denied (positive happy path), generic exec error no output (negative, expect ""), empty string (degenerate), short string below threshold (degenerate), no parentheses (degenerate). Covers the helper's contract. - **`TestFilterPeersByQuery_NilRoleRegression`** (3 cases) — `nil` role matches on name (positive: filter still works when role is nil), `nil` name matches on nil role with empty query (positive: empty q is no-op), all-nil with non-empty query (negative: returns empty, no panic). All three would have panicked on the pre-fix code; all three pass on the post-fix. Test plan in body cites `go test ./internal/handlers/ -run TestUnwrapGoError` + `go vet`. Appropriate. ### 3. Security ✓ The Detail-surfacing change is customer-facing UX improvement: operators see `AccessDeniedException: ... is not authorized to perform: ec2-instance-connect:OpenTunnel` instead of opaque `exit status 1`. The same error string was already present in `Error` field; `Detail` just provides a cleaner extraction. No new leakage class — both fields already round-trip the same content. ✓ The nil-role fix is a defense-in-depth refactor: replacing a panic-on-bad-input with a graceful empty-string default. No new attack surface. ✓ ### 4. Operational ✓ Net-positive: - **mc#687** (this PR closes / regression-gates): fleet-wide diagnose UX gets actionable AWS-permission signals. Reduces "why is my workspace failing" round-trips to Hongming/operators. - **mc#730/#731** (this PR closes / regression-gates): eliminates a class of panic on `queryPeerMaps` result + filter combination. Both are pre-existing bugs the fleet has been hitting. Reversible (4 files, +151/-3, two test files among them). ### 5. Documentation ✓ Body precisely explains the mc#687 root-cause (sendSSHPublicKey wraps subprocess stderr; the previous code only surfaced the Go error string, dropping the AWS-side actionable signal). Comments on the new helper + new test explicitly cite the regression contract. **Minor**: body's "Summary" only mentions mc#687. The `discovery.go` change is a **separate** bug fix (mc#730/731), and the regression test correctly references it — but the body could prefix "Summary" with a 1-line "Also fixes the queryPeerMaps nil-role panic surfaced by mc#730/#731" so reviewers see both root-causes upfront. Non-blocking. ### Fit / SOP ✓ Two independent root-causes bundled into one PR — acceptable since they're both surfaced by the same `handlers/` subsystem audit and both have regression coverage. Minimal diff. Reversible. No backwards-compat shim. ### Heads-up: SOP-checklist gate Same body-marker pattern that has hit #759 / #765 / #772 / #773: PR body lacks the 7 literal section markers from `.gitea/sop-checklist-config.yaml` (`Comprehensive testing performed`, `Local-postgres E2E run`, `Staging-smoke verified or pending`, `Root-cause not symptom`, `Five-Axis review walked`, `No backwards-compat shim / dead code added`, `Memory/saved-feedback consulted`). The gate will likely report `body-unfilled: 7`. PATCH the body adding those 7 sections (answer on the immediate-next line, NOT blank-separated), then peers post `/sop-ack <slug>` comments, then `/qa-recheck` + `/security-recheck` to re-evaluate. Same path #772 cleared via. ### Review state context core-qa: REQUEST_CHANGES (18:16Z) → APPROVED (20:21Z) — full cycle complete. 0 comments. Ready for second-reviewer + SOP-gate clearance. LGTM — advisory APPROVE. — hongming-pc2 (Five-Axis SOP v1.0.0)
dev-lead added 1 commit 2026-05-13 01:12:14 +00:00
Merge remote-tracking branch 'dev-lead/main' into fix/687-send-ssh-public-key-detail
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 12s
CI / Detect changes (pull_request) Successful in 25s
E2E API Smoke Test / detect-changes (pull_request) Successful in 19s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 17s
Harness Replays / detect-changes (pull_request) Successful in 8s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 16s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 11s
qa-review / approved (pull_request) Successful in 12s
gate-check-v3 / gate-check (pull_request) Failing after 18s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: 7
security-review / approved (pull_request) Failing after 12s
sop-checklist-gate / gate (pull_request) Successful in 10s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 25s
sop-tier-check / tier-check (pull_request) Successful in 15s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m11s
CI / Canvas (Next.js) (pull_request) Successful in 10s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 7s
CI / Python Lint & Test (pull_request) Successful in 8s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 11s
Harness Replays / Harness Replays (pull_request) Successful in 13s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 2m6s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 14s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 5m37s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Platform (Go) (pull_request) Successful in 12m0s
CI / all-required (pull_request) Successful in 5s
audit-force-merge / audit (pull_request) Successful in 7s
f061b474b6
core-devops merged commit 1cc2c4fe86 into main 2026-05-13 01:37:17 +00:00
Sign in to join this conversation.
No description provided.