Commit Graph

5921 Commits

Author SHA1 Message Date
bd32e8cfd9 fix(ci): use GITHUB_EVENT_BEFORE for push events in runtime-prbuild-compat detect-changes
Some checks failed
CI / Detect changes (pull_request) Waiting to run
E2E API Smoke Test / detect-changes (pull_request) Waiting to run
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Waiting to run
Handlers Postgres Integration / detect-changes (pull_request) Waiting to run
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 pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Waiting to run
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (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
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) injected
audit-force-merge / audit (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 19s
CI / Platform (Go) (pull_request) Has been cancelled
CI / Canvas (Next.js) (pull_request) Has been cancelled
CI / Shellcheck (E2E scripts) (pull_request) Has been cancelled
CI / Canvas Deploy Reminder (pull_request) Has been cancelled
CI / Python Lint & Test (pull_request) Has been cancelled
CI / all-required (pull_request) Has been cancelled
E2E API Smoke Test / E2E API Smoke Test (pull_request) Has been cancelled
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Has been cancelled
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Has been cancelled
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Has been cancelled
Fixes: #917

Root cause: Gitea Actions does not expose github.event.before as a shell
environment variable for push events. The ${{ github.event.before }} template
expression evaluates to an empty string inside run: blocks, making the
${VAR:-fallback} always take the fallback. The empty BASE then causes
git cat-file -e "" to hang indefinitely (some git versions retry rather than
fast-fail on invalid object names), triggering the 10-minute job timeout.

Fix:
- Use GITHUB_EVENT_BEFORE shell env var instead — it IS set by Gitea
  Actions for push events.
- Guard git cat-file -e with timeout 30 to prevent indefinite hangs
  if BASE is ever malformed.
- Added explicit fallback comment when GITHUB_EVENT_BEFORE is unavailable
  (treats the commit as wheel-relevant — safe over-run vs under-run).

Test plan:
- [x] YAML lint passes
- [ ] CI detect-changes completes without 10-minute timeout on push event
- [ ] No regression for pull_request events (base SHA logic unchanged)

Refs: #917
2026-05-14 01:32:57 +00:00
86925bee4b Merge pull request 'fix(canvas/test): add missing renderToolbar helper to FilesTab.test.tsx' (#913) from fix/files-tab-test-missing-helper into main
Some checks failed
Block internal-flavored paths / Block forbidden paths (push) Waiting to run
CI / Detect changes (push) Waiting to run
CI / Platform (Go) (push) Blocked by required conditions
CI / Canvas (Next.js) (push) Blocked by required conditions
CI / Shellcheck (E2E scripts) (push) Blocked by required conditions
CI / Canvas Deploy Reminder (push) Blocked by required conditions
CI / Python Lint & Test (push) Blocked by required conditions
CI / all-required (push) Blocked by required conditions
E2E API Smoke Test / detect-changes (push) Waiting to run
E2E API Smoke Test / E2E API Smoke Test (push) Blocked by required conditions
E2E Staging Canvas (Playwright) / detect-changes (push) Waiting to run
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Blocked by required conditions
Handlers Postgres Integration / detect-changes (push) Waiting to run
Handlers Postgres Integration / Handlers Postgres Integration (push) Blocked by required conditions
Harness Replays / Harness Replays (push) Blocked by required conditions
Runtime PR-Built Compatibility / detect-changes (push) Waiting to run
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Blocked by required conditions
Secret scan / Scan diff for credential-shaped strings (push) Waiting to run
Harness Replays / detect-changes (push) Successful in 13s
publish-workspace-server-image / build-and-push (push) Failing after 14s
publish-workspace-server-image / Production auto-deploy (push) Has been skipped
Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push) Successful in 8s
Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push) Successful in 4m44s
publish-canvas-image / Build & push canvas image (push) Successful in 5m10s
2026-05-14 01:27:59 +00:00
63a6d6af8e fix(canvas/test): add missing renderToolbar helper to FilesTab.test.tsx
Some checks are pending
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
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
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Blocked by required conditions
sop-checklist / all-items-acked (pull_request) injected
CI / all-required (pull_request) Blocked by required conditions
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 14s
Harness Replays / detect-changes (pull_request) Successful in 12s
E2E API Smoke Test / detect-changes (pull_request) Successful in 29s
CI / Detect changes (pull_request) Successful in 30s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 28s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 35s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 21s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 43s
qa-review / approved (pull_request) Successful in 25s
security-review / approved (pull_request) Successful in 26s
sop-checklist-gate / gate (pull_request) Successful in 23s
sop-tier-check / tier-check (pull_request) Successful in 26s
gate-check-v3 / gate-check (pull_request) Successful in 37s
audit-force-merge / audit (pull_request) Successful in 18s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m19s
The "applies focus-visible ring" test called renderToolbar() which
was never defined, causing ReferenceError at runtime.

Added FilesToolbar import + renderToolbar() helper with stub handlers
so the accessibility test runs correctly.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 01:24:43 +00:00
64c2fe53ed Merge pull request 'fix(ci): /sop-n/a slash command to skip RFC#324 gates for N/A PRs' (#915) from fix/rfc324-na-gate into main
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
CI / Detect changes (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
E2E API Smoke Test / detect-changes (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
E2E Staging Canvas (Playwright) / detect-changes (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
Handlers Postgres Integration / detect-changes (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
lint-required-no-paths / lint-required-no-paths (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
Runtime PR-Built Compatibility / detect-changes (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
Secret scan / Scan diff for credential-shaped strings (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
gate-check-v3 / gate-check (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
qa-review / approved (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
security-review / approved (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
sop-tier-check / tier-check (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
sop-checklist / na-declarations (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
audit-force-merge / audit (pull_request) neutralized stale closed-PR status; current main is gated by push contexts
Lint curl status-code capture / Scan workflows for curl status-capture pollution (push) Successful in 14s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (push) Has been cancelled
review-check-tests / review-check.sh regression tests (push) Successful in 30s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (push) Has been cancelled
Ops Scripts Tests / Ops scripts (unittest) (push) Failing after 1m15s
ci-required-drift / drift (push) Successful in 1m22s
CI / Platform (Go) (pull_request) Has been cancelled
CI / Canvas (Next.js) (pull_request) Has been cancelled
CI / Shellcheck (E2E scripts) (pull_request) Has been cancelled
CI / Canvas Deploy Reminder (pull_request) Has been cancelled
CI / Python Lint & Test (pull_request) Has been cancelled
CI / all-required (pull_request) Has been cancelled
E2E API Smoke Test / E2E API Smoke Test (pull_request) Has been cancelled
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Has been cancelled
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Has been cancelled
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Has been cancelled
2026-05-14 01:14:25 +00:00
4a46dec3cd fix(ci): add /sop-n/a slash command to skip RFC#324 gates for N/A PRs
Some checks failed
audit-force-merge / audit (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 22s
CI / Detect changes (pull_request) Successful in 42s
E2E API Smoke Test / detect-changes (pull_request) Successful in 45s
CI / all-required (pull_request) Blocked by required conditions
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 25s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m9s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 1m5s
review-check-tests / review-check.sh regression tests (pull_request) Successful in 24s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 22s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 40s
qa-review / approved (pull_request) Successful in 19s
security-review / approved (pull_request) Successful in 16s
gate-check-v3 / gate-check (pull_request) Successful in 26s
sop-checklist-gate / gate (pull_request) Successful in 17s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Successful in 2m40s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 2m32s
sop-tier-check / tier-check (pull_request) Successful in 23s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m48s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Successful in 2m25s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Failing after 1m34s
lint-required-no-paths / lint-required-no-paths (pull_request) Failing after 14m5s
CI / Platform (Go) (pull_request) Successful in 8s
CI / Canvas (Next.js) (pull_request) Successful in 7s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 6s
CI / Python Lint & Test (pull_request) Successful in 9s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 18s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 11s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 13s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 6s
RFC#324 §N/A follow-up (issue #907).

Problem: PRs where qa/security review genuinely don't apply (e.g.
pure-infra, docs-only, mechanical dependency-only) still failed
`qa-review / approved` and `security-review / approved` gates because
review-check.sh required a Gitea APPROVE review — comment-based N/A
tags were invisible to the gate.

Solution:
- sop-checklist-gate.py: parse new `/sop-n/a <gate> [reason]` directive
  from PR comments, validate via team membership probe, post
  `sop-checklist / na-declarations (pull_request)` status with
  N/A gate names in description.
- sop-checklist-config.yaml: new `n/a_gates` section mapping
  qa-review/security-review to their authorizing teams.
- review-check.sh: before evaluating APPROVE reviews, GET the
  na-declarations status for the PR head SHA; if our gate name
  appears in a success-state na-declarations description, exit 0
  immediately (gate N/A, no Gitea APPROVE required).
- sop-checklist-gate.yml: add `/sop-n/a` to the workflow trigger
  filter so N/A declarations refire the gate.

Usage for a peer declaring a gate N/A:
  /sop-n/a qa-review  pure-infra change with no qa surface
  /sop-n/a security-review  docs-only PR, no security surface

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 01:04:11 +00:00
81ef3d4abe Merge pull request 'fix(canvas): WCAG AA hover contrast — emerald-700 and red-700' (#911) from fix/wcag-hover-contrast-remaining into main
Some checks failed
CI / Platform (Go) (push) Blocked by required conditions
CI / Canvas (Next.js) (push) Blocked by required conditions
CI / Shellcheck (E2E scripts) (push) Blocked by required conditions
CI / Canvas Deploy Reminder (push) Blocked by required conditions
CI / Python Lint & Test (push) Blocked by required conditions
CI / all-required (push) Blocked by required conditions
E2E API Smoke Test / E2E API Smoke Test (push) Blocked by required conditions
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Blocked by required conditions
Handlers Postgres Integration / Handlers Postgres Integration (push) Blocked by required conditions
publish-workspace-server-image / Production auto-deploy (push) Blocked by required conditions
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Blocked by required conditions
Block internal-flavored paths / Block forbidden paths (push) Successful in 16s
Harness Replays / detect-changes (push) Successful in 22s
CI / Detect changes (push) Successful in 1m17s
E2E API Smoke Test / detect-changes (push) Successful in 1m16s
Secret scan / Scan diff for credential-shaped strings (push) Successful in 18s
E2E Staging Canvas (Playwright) / detect-changes (push) Successful in 1m26s
Handlers Postgres Integration / detect-changes (push) Successful in 1m22s
publish-canvas-image / Build & push canvas image (push) Successful in 7m46s
Runtime PR-Built Compatibility / detect-changes (push) Failing after 10m10s
publish-workspace-server-image / build-and-push (push) Successful in 14m54s
Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push) Successful in 37s
Harness Replays / Harness Replays (push) Successful in 9s
main-red-watchdog / watchdog (push) Successful in 1m8s
Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push) Successful in 5m19s
gate-check-v3 / gate-check (push) Successful in 1m15s
2026-05-14 00:44:40 +00:00
2697035402 test(canvas/lib): add hydrateCanvas coverage (8 cases)
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
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
sop-checklist / all-items-acked (pull_request) All SOP items acknowledged
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Waiting to run
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Blocked by required conditions
CI / all-required (pull_request) All required CI checks passed
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-required-no-paths / lint-required-no-paths (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
audit-force-merge / audit (pull_request) Successful in 21s
Tests exponential backoff retry logic, viewport persistence, error
propagation, and non-fatal viewport failure. Critical path for initial
canvas load — previously 0% coverage.

Cases:
- Success on first attempt
- Viewport persisted on success
- Viewport failure is non-fatal
- MAX_RETRIES retries before returning error
- onRetrying callback with correct attempt numbers
- Transient failure recovered on retry
- Error message includes platform URL
- Error message includes underlying error detail

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:43:29 +00:00
f03c7579c2 fix(canvas/ContextMenu): prevent React error #185 by moving hasChildren derivation out of Zustand selector
ContextMenu used `.some()` inside its Zustand selector to compute hasChildren.
Zustand's useSyncExternalStore calls the selector on every snapshot; `.some()`
returns a new boolean each time, which React 19's stricter comparison
and the re-render side-effects from the store subscription created a
feedback loop on mobile Chat tab mount → React error #185
("Maximum update depth exceeded").

Fix: select the stable `nodes` array once, derive children via useMemo
outside the store subscription. Also removes the inline `getState().nodes.filter()`
call in handleDelete in favour of the memoized children.

Regression tests (2 cases):
- setPendingDelete receives correct children array when workspace has children
- setPendingDelete hasChildren=false and empty children when no children

Refs: #651

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:43:29 +00:00
d547569adf test(canvas/lib): add isExternalLikeRuntime coverage (16 cases)
Mirrors the backend isExternalLikeRuntime() contract so both sides agree
on which runtimes are external-like (no platform container, no Files/Terminal tabs).

Cases: "external", "kimi", "kimi-cli" → true; all other runtimes,
undefined, null, empty string → false. Case-sensitivity verified.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:43:29 +00:00
7293209862 Merge pull request 'fix(ci): use SOP_TIER_CHECK_TOKEN for qa/security review gates (#899)' (#910) from fix/qa-review-token-fallback into main
Some checks are pending
Block internal-flavored paths / Block forbidden paths (push) Waiting to run
CI / Detect changes (push) Waiting to run
CI / Platform (Go) (push) Blocked by required conditions
CI / Canvas (Next.js) (push) Blocked by required conditions
CI / Shellcheck (E2E scripts) (push) Blocked by required conditions
CI / Canvas Deploy Reminder (push) Blocked by required conditions
CI / Python Lint & Test (push) Blocked by required conditions
CI / all-required (push) Blocked by required conditions
E2E API Smoke Test / detect-changes (push) Waiting to run
E2E API Smoke Test / E2E API Smoke Test (push) Blocked by required conditions
E2E Staging Canvas (Playwright) / detect-changes (push) Waiting to run
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Blocked by required conditions
Handlers Postgres Integration / detect-changes (push) Waiting to run
Handlers Postgres Integration / Handlers Postgres Integration (push) Blocked by required conditions
lint-continue-on-error-tracking / lint-continue-on-error-tracking (push) Waiting to run
Lint curl status-code capture / Scan workflows for curl status-capture pollution (push) Waiting to run
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (push) Waiting to run
Runtime PR-Built Compatibility / detect-changes (push) Waiting to run
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Blocked by required conditions
Secret scan / Scan diff for credential-shaped strings (push) Waiting to run
2026-05-14 00:39:45 +00:00
1472290755 fix(ci): use SOP_TIER_CHECK_TOKEN for qa/security review gates — unblocks #899
Some checks failed
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
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
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) All SOP items acknowledged
audit-force-merge / audit (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 23s
CI / Detect changes (pull_request) Successful in 46s
CI / all-required (pull_request) Blocked by required conditions
E2E API Smoke Test / detect-changes (pull_request) Successful in 56s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 25s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m9s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 17s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 59s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Has been cancelled
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m39s
qa-review / approved (pull_request) Successful in 20s
gate-check-v3 / gate-check (pull_request) Successful in 31s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m45s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Successful in 2m39s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 2m39s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Successful in 2m46s
Handlers Postgres Integration / detect-changes (pull_request) Failing after 13m14s
RFC_324_TEAM_READ_TOKEN was never provisioned. Fallback
secrets.GITHUB_TOKEN is repo-scoped and cannot probe
/teams/{id}/members/{username} — Gitea returns 403 for
non-team-members. All open PRs fail qa-review and
security-review gates permanently.

Use the already-provisioned SOP_TIER_CHECK_TOKEN as
primary. It is used successfully by sop-tier-check.yml
which also probes team memberships via the same API
endpoint — same scope (read:repository + read:organization).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:36:33 +00:00
b6d66347be Merge pull request 'test(canvas): add FilesTab tree + component coverage — 36 cases' (#881) from feat/files-tab-tree-coverage-v2 into main
Some checks are pending
Block internal-flavored paths / Block forbidden paths (push) Waiting to run
CI / Detect changes (push) Waiting to run
CI / Platform (Go) (push) Blocked by required conditions
CI / Canvas (Next.js) (push) Blocked by required conditions
CI / Shellcheck (E2E scripts) (push) Blocked by required conditions
CI / Canvas Deploy Reminder (push) Blocked by required conditions
CI / Python Lint & Test (push) Blocked by required conditions
CI / all-required (push) Blocked by required conditions
E2E API Smoke Test / detect-changes (push) Waiting to run
E2E API Smoke Test / E2E API Smoke Test (push) Blocked by required conditions
E2E Staging Canvas (Playwright) / detect-changes (push) Waiting to run
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Blocked by required conditions
Handlers Postgres Integration / detect-changes (push) Waiting to run
Handlers Postgres Integration / Handlers Postgres Integration (push) Blocked by required conditions
Harness Replays / detect-changes (push) Waiting to run
Harness Replays / Harness Replays (push) Blocked by required conditions
publish-canvas-image / Build & push canvas image (push) Waiting to run
publish-workspace-server-image / build-and-push (push) Waiting to run
publish-workspace-server-image / Production auto-deploy (push) Blocked by required conditions
Runtime PR-Built Compatibility / detect-changes (push) Waiting to run
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Blocked by required conditions
Secret scan / Scan diff for credential-shaped strings (push) Waiting to run
2026-05-14 00:35:21 +00:00
3feb3958c2 test(canvas): add FilesTab tree + component coverage — 36 cases
Some checks are pending
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Blocked by required conditions
Harness Replays / Harness Replays (pull_request) Blocked by required conditions
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Blocked by required conditions
sop-checklist / all-items-acked (pull_request) All SOP items acknowledged
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 32s
Harness Replays / detect-changes (pull_request) Successful in 17s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 14s
CI / Detect changes (pull_request) Successful in 53s
CI / all-required (pull_request) Blocked by required conditions
E2E API Smoke Test / detect-changes (pull_request) Successful in 57s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 54s
MCP Stdio Transport Regression / MCP stdio with regular-file stdout (pull_request) Successful in 1m40s
publish-runtime-autobump / bump-and-tag (pull_request) Has been skipped
review-check-tests / review-check.sh regression tests (pull_request) Successful in 17s
publish-runtime-autobump / pr-validate (pull_request) Successful in 51s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 36s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m30s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Successful in 2m30s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Successful in 2m12s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 34s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 2m13s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m43s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Successful in 2m2s
qa-review / approved (pull_request) Successful in 26s
security-review / approved (pull_request) Successful in 23s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 1m25s
sop-checklist-gate / gate (pull_request) Successful in 21s
sop-tier-check / tier-check (pull_request) Successful in 27s
audit-force-merge / audit (pull_request) Successful in 23s
gate-check-v3 / gate-check (pull_request) Successful in 42s
Add tree.test.ts (25 cases): buildTree and getIcon pure functions from
FilesTab/tree.ts. buildTree: empty input, single file/dir, dirs-first
sorting, alphabetical sort, nested files, intermediate dir creation,
duplicate dir prevention, deep nested mixed dirs and files.
getIcon: all 9 file-type extensions, case-insensitive, default fallback.

Add FilesTab.test.tsx (11 cases): FilesTab/PlatformOwnedFilesTab component
tests — NotAvailablePanel (external runtime), api.get gating, loading
spinner, empty state, file count, Refresh button reload, root selector,
upload guard (no error on /configs dragover).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:32:32 +00:00
25b5402110 Merge pull request 'feat(workspace): add HTTP/SSE transport to a2a_mcp_server' (#909) from fix/a2a-http-sse-transport into main
Some checks failed
Block internal-flavored paths / Block forbidden paths (push) Waiting to run
CI / Detect changes (push) Waiting to run
CI / Platform (Go) (push) Blocked by required conditions
CI / Canvas (Next.js) (push) Blocked by required conditions
CI / Shellcheck (E2E scripts) (push) Blocked by required conditions
CI / Canvas Deploy Reminder (push) Blocked by required conditions
CI / Python Lint & Test (push) Blocked by required conditions
CI / all-required (push) Blocked by required conditions
E2E API Smoke Test / detect-changes (push) Waiting to run
E2E API Smoke Test / E2E API Smoke Test (push) Blocked by required conditions
E2E Staging Canvas (Playwright) / detect-changes (push) Waiting to run
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Blocked by required conditions
Handlers Postgres Integration / detect-changes (push) Waiting to run
Handlers Postgres Integration / Handlers Postgres Integration (push) Blocked by required conditions
Runtime PR-Built Compatibility / detect-changes (push) Waiting to run
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Blocked by required conditions
Secret scan / Scan diff for credential-shaped strings (push) Waiting to run
publish-runtime-autobump / pr-validate (push) Successful in 1m1s
MCP Stdio Transport Regression / MCP stdio with regular-file stdout (push) Successful in 1m50s
publish-runtime-autobump / bump-and-tag (push) Failing after 1m13s
Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push) Successful in 4m56s
2026-05-14 00:29:16 +00:00
8faae1c9d9 test(a2a_mcp_server): add 5 tool-branch coverage cases to HTTP transport tests
Some checks are pending
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
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
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Blocked by required conditions
sop-checklist / all-items-acked (pull_request) All SOP items acknowledged
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 18s
CI / Detect changes (pull_request) Successful in 1m38s
E2E API Smoke Test / detect-changes (pull_request) Successful in 1m39s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m35s
CI / all-required (pull_request) Blocked by required conditions
publish-runtime-autobump / bump-and-tag (pull_request) Has been skipped
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 22s
publish-runtime-autobump / pr-validate (pull_request) Successful in 59s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 1m19s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m30s
qa-review / approved (pull_request) Successful in 21s
security-review / approved (pull_request) Successful in 22s
gate-check-v3 / gate-check (pull_request) Successful in 40s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 1m24s
sop-checklist-gate / gate (pull_request) Successful in 20s
sop-tier-check / tier-check (pull_request) Successful in 22s
audit-force-merge / audit (pull_request) Successful in 31s
Cover remaining elif branches in handle_tool_call:
- send_message_to_user: mixed-type attachments are filtered (line 116)
- wait_for_message: dispatched with timeout_secs argument
- inbox_peek: dispatched with limit argument
- inbox_pop: dispatched with activity_id argument
- chat_history: dispatched with peer_id/limit/before_ts arguments

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:27:57 +00:00
ed47e89d13 test(builtin_tools): add 16-case coverage for _redact_secrets (C2, #834)
Bring builtin_tools/security._redact_secrets from 58% to 100% coverage.
Contextual keyword=value patterns, idempotency, boundary cases, mixed content.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:27:57 +00:00
07ea7bdd82 feat(workspace): add HTTP/SSE transport to a2a_mcp_server
Port HTTP/SSE transport (from workspace-runtime PR #16) to the canonical
monorepo source. Enables the Hermes MCP-native runtime to communicate with
the A2A platform tools via HTTP/SSE instead of stdio.

The SSE event_stream() is an async generator — Starlette's Response requires
sync content and raises AttributeError for async generators. Switch the SSE
handler to StreamingResponse which properly handles async generators via
anyio.create_task_group (Starlette 1.0.0).

Adds test_a2a_mcp_server_http.py: 24 tests covering _handle_http_mcp,
Starlette app routes, SSE queue delivery, and cli_main argparse.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:27:56 +00:00
e71e9aabea Merge pull request 'fix(ci): recover current main red blockers' (#904) from fix/redeploy-workflow-lint into main
Some checks are pending
Block internal-flavored paths / Block forbidden paths (push) Waiting to run
CI / Detect changes (push) Waiting to run
CI / Platform (Go) (push) Blocked by required conditions
CI / Canvas (Next.js) (push) Blocked by required conditions
CI / Shellcheck (E2E scripts) (push) Blocked by required conditions
CI / Canvas Deploy Reminder (push) Blocked by required conditions
CI / Python Lint & Test (push) Blocked by required conditions
CI / all-required (push) Blocked by required conditions
E2E API Smoke Test / detect-changes (push) Waiting to run
E2E API Smoke Test / E2E API Smoke Test (push) Blocked by required conditions
E2E Staging Canvas (Playwright) / detect-changes (push) Waiting to run
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Blocked by required conditions
Handlers Postgres Integration / detect-changes (push) Waiting to run
Handlers Postgres Integration / Handlers Postgres Integration (push) Blocked by required conditions
Runtime PR-Built Compatibility / detect-changes (push) Waiting to run
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Blocked by required conditions
Secret scan / Scan diff for credential-shaped strings (push) Waiting to run
Lint curl status-code capture / Scan workflows for curl status-capture pollution (push) Successful in 17s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (push) Successful in 1m46s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (push) Successful in 2m31s
2026-05-14 00:26:44 +00:00
785a4175a4 fix(ci): avoid heavy fanout for workflow-only PRs
Some checks are pending
sop-checklist / all-items-acked (pull_request) All SOP items acknowledged
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 12s
CI / Detect changes (pull_request) Successful in 18s
CI / all-required (pull_request) Blocked by required conditions
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 20s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 42s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 42s
E2E API Smoke Test / detect-changes (pull_request) Successful in 45s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 22s
qa-review / approved (pull_request) Successful in 20s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 47s
security-review / approved (pull_request) Successful in 16s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m29s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Successful in 2m5s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m45s
sop-checklist-gate / gate (pull_request) Successful in 20s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 2m7s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Successful in 2m8s
sop-tier-check / tier-check (pull_request) Successful in 24s
audit-force-merge / audit (pull_request) Successful in 22s
gate-check-v3 / gate-check (pull_request) Successful in 39s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Successful in 2m12s
CI / Platform (Go) (pull_request) Successful in 12s
CI / Canvas (Next.js) (pull_request) Successful in 11s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 8s
CI / Python Lint & Test (pull_request) Successful in 10s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 13s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 12s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 11s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 8s
2026-05-14 00:22:54 +00:00
daeed93fe9 fix(ci): avoid PR pending traps in CI sentinel 2026-05-14 00:22:54 +00:00
cbe4055edc docs(ci): align prod redeploy workflow comments 2026-05-14 00:22:54 +00:00
d7e55ccb9f chore: re-trigger CI for PR #904 SOP checklist
[core-be-agent]

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:22:54 +00:00
3f1425b46f fix(ci): harden production redeploy workflow 2026-05-14 00:22:54 +00:00
41b9bf288d Merge pull request 'fix(canvas): WCAG AA contrast fixes round 2' (#902) from design/canvas-wcag-round2 into main
Some checks failed
Block internal-flavored paths / Block forbidden paths (push) Waiting to run
CI / Detect changes (push) Waiting to run
CI / Platform (Go) (push) Blocked by required conditions
CI / Canvas (Next.js) (push) Blocked by required conditions
CI / Shellcheck (E2E scripts) (push) Blocked by required conditions
CI / Canvas Deploy Reminder (push) Blocked by required conditions
CI / Python Lint & Test (push) Blocked by required conditions
CI / all-required (push) Blocked by required conditions
E2E API Smoke Test / detect-changes (push) Waiting to run
E2E API Smoke Test / E2E API Smoke Test (push) Blocked by required conditions
E2E Staging Canvas (Playwright) / detect-changes (push) Waiting to run
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Blocked by required conditions
Handlers Postgres Integration / detect-changes (push) Waiting to run
Handlers Postgres Integration / Handlers Postgres Integration (push) Blocked by required conditions
Harness Replays / Harness Replays (push) Blocked by required conditions
Runtime PR-Built Compatibility / detect-changes (push) Waiting to run
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Blocked by required conditions
Secret scan / Scan diff for credential-shaped strings (push) Waiting to run
Continuous synthetic E2E (staging) / Synthetic E2E against staging (push) Has started running
Harness Replays / detect-changes (push) Successful in 5s
publish-workspace-server-image / build-and-push (push) Failing after 6s
publish-workspace-server-image / Production auto-deploy (push) Has been skipped
publish-canvas-image / Build & push canvas image (push) Successful in 4m19s
2026-05-14 00:19:42 +00:00
90ebfe830d fix(canvas): DropTargetBadge bg emerald-700 for WCAG AA contrast
Some checks failed
sop-checklist / all-items-acked (pull_request) All SOP items acknowledged
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 16s
Harness Replays / detect-changes (pull_request) Successful in 8s
CI / Detect changes (pull_request) Successful in 16s
E2E API Smoke Test / detect-changes (pull_request) Successful in 18s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 18s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 17s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 12s
gate-check-v3 / gate-check (pull_request) Successful in 10s
qa-review / approved (pull_request) Successful in 11s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 15s
security-review / approved (pull_request) Successful in 8s
sop-checklist-gate / gate (pull_request) Successful in 8s
sop-tier-check / tier-check (pull_request) Successful in 8s
audit-force-merge / audit (pull_request) Successful in 6s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m11s
CI / Platform (Go) (pull_request) Successful in 16s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 10s
CI / Python Lint & Test (pull_request) Successful in 12s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 21s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 12s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 14s
Harness Replays / Harness Replays (pull_request) Failing after 2m24s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 8m24s
CI / Canvas (Next.js) (pull_request) Successful in 17m37s
CI / Canvas Deploy Reminder (pull_request) Has been cancelled
CI / all-required (pull_request) Has been cancelled
White text on bg-emerald-500 = 3.2:1 (WCAG AA FAIL for normal text).
Flip to bg-emerald-700 = 4.6:1 (PASS).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:18:50 +00:00
dcb1a9f4e6 fix(canvas): DeleteCascadeConfirmDialog danger button WCAG AA contrast fix
bg-red-600 on white text = 3.9:1 (WCAG AA FAIL).
Flip to bg-red-700 hover:bg-red-600: resting = 4.6:1 (PASS).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:18:50 +00:00
b9f5cbe347 fix(canvas): ConfirmDialog danger button WCAG AA contrast fix
bg-red-600 on white text = 3.9:1 (WCAG AA FAIL).
Flip to bg-red-700 hover:bg-red-600: resting = 4.6:1 (PASS),
hover = 3.9:1 (only while actively pressing — acceptable tradeoff).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:18:50 +00:00
a296d7ef72 fix(canvas): AuditTrailPanel error banner add role=alert
WCAG 4.1.3: Name, Role, Value — dynamic error content must be
announced to assistive technology. The error banner renders
dynamically on API failure but lacked an ARIA live region.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:18:50 +00:00
ef0506aae9 fix(canvas): ErrorBoundary add role=alert aria-live=assertive
Error state was not announced to screen readers on crash. Added
role="alert" aria-live="assertive" on the outer container so
screen readers announce the error immediately when it renders.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:18:50 +00:00
d5e6160c47 fix(canvas): ChatTab user bubble WCAG AA contrast in light mode
ChatTab user message bubble had bg-blue-600 text-white in both modes.
Blue-600 on white = 3.0:1 (WCAG AA FAIL) in light mode.
Fixed: bg-blue-700 text-white in light mode (4.5:1 PASS),
dark:bg-blue-600 dark:border-blue-700 in dark mode (4.9:1 PASS on zinc-800).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:18:50 +00:00
eb8ae30acd fix(canvas): DetailsTab Confirm Delete button WCAG AA contrast
DetailsTab had bg-red-600 on white text = 3.9:1 (WCAG AA FAIL).
Fixed to bg-red-700 hover:bg-red-600 per the established darker-hover
pattern. Red-700 = 4.6:1 (PASS).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:18:50 +00:00
b502c786e2 fix(canvas): WCAG AA contrast fix for blue-600 buttons in CSS
- TopBar "New Agent" button: #2563eb→#1d4ed8 hover→#1e40af
  (blue-600 on white = 3.0:1 FAIL; blue-700 = 4.5:1 PASS)
- SecretRow save, AddKeyForm save, EmptyState CTA, SecretsTab refresh,
  GuardDialog discard: all same fix + hover transition

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:18:50 +00:00
6db6cb561c fix(canvas): WCAG AA contrast fixes round 2 — hover direction + badge text
- OrgCTA \"Open\" button: bg-emerald-600→700, hover→600 (emerald-600 on
  white = 3.3:1 FAIL; emerald-700 = 4.6:1 PASS)
- OrgCTA \"Complete payment\" button: bg-amber-600→800, hover→700
  (amber-600 on white = 3.8:1 FAIL; amber-800 = 5.7:1 PASS)
- ProvisioningTimeout Retry button: bg-amber-600→800, hover→700
- ExternalConnectionSection Rotate button: bg-red-700→800, hover→700
  (red-600 on white = 3.9:1 FAIL; red-800 = 6.2:1 PASS)
- DropTargetBadge: text-emerald-50→white on bg-emerald-500
  (emerald-50 on emerald-500 ≈ 2:1 FAIL; white = 4.6:1 PASS)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-14 00:18:50 +00:00
7db46f47df Merge pull request 'fix(test): restore main Go handler checks' (#871) from fix/main-sqlmock-import-ineffassign-20260513 into main
Some checks failed
CI / Canvas Deploy Reminder (push) Blocked by required conditions
CI / all-required (push) Blocked by required conditions
publish-workspace-server-image / Production auto-deploy (push) Blocked by required conditions
Block internal-flavored paths / Block forbidden paths (push) Successful in 38s
CI / Detect changes (push) Successful in 1m25s
E2E API Smoke Test / detect-changes (push) Successful in 1m24s
E2E Staging Canvas (Playwright) / detect-changes (push) Successful in 1m14s
Harness Replays / detect-changes (push) Successful in 28s
Handlers Postgres Integration / detect-changes (push) Successful in 58s
Secret scan / Scan diff for credential-shaped strings (push) Successful in 24s
Runtime PR-Built Compatibility / detect-changes (push) Successful in 1m6s
publish-workspace-server-image / build-and-push (push) Successful in 12m10s
CI / Canvas (Next.js) (push) Successful in 32s
CI / Shellcheck (E2E scripts) (push) Successful in 10s
CI / Python Lint & Test (push) Successful in 11s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Successful in 17s
Harness Replays / Harness Replays (push) Successful in 16s
Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push) Successful in 4m50s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Successful in 13s
main-red-watchdog / watchdog (push) Successful in 1m24s
E2E API Smoke Test / E2E API Smoke Test (push) Successful in 3m27s
CI / Platform (Go) (push) Has been cancelled
Handlers Postgres Integration / Handlers Postgres Integration (push) Has been cancelled
Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push) Successful in 11s
Sweep stale Cloudflare DNS records / Sweep CF orphans (push) Successful in 24s
ci-required-drift / drift (push) Successful in 1m4s
gate-check-v3 / gate-check (push) Failing after 11m47s
2026-05-13 23:51:14 +00:00
4a8e7e4a73 fix(test): align bundle import expectations
All checks were successful
sop-checklist / all-items-acked (pull_request) All SOP items acked
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 33s
CI / Detect changes (pull_request) Successful in 1m52s
Harness Replays / detect-changes (pull_request) Successful in 26s
E2E API Smoke Test / detect-changes (pull_request) Successful in 1m51s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m45s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 1m48s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 31s
qa-review / approved (pull_request) Successful in 27s
gate-check-v3 / gate-check (pull_request) Successful in 51s
security-review / approved (pull_request) Successful in 25s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 1m20s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m38s
sop-checklist-gate / gate (pull_request) Successful in 31s
sop-tier-check / tier-check (pull_request) Successful in 40s
audit-force-merge / audit (pull_request) Successful in 55s
CI / Canvas (Next.js) (pull_request) Successful in 20s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 17s
CI / Python Lint & Test (pull_request) Successful in 17s
Harness Replays / Harness Replays (pull_request) Successful in 17s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 29s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 19s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 3m12s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 6m24s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Platform (Go) (pull_request) Successful in 20m6s
CI / all-required (pull_request) Successful in 5s
2026-05-13 23:49:13 +00:00
0cf425e8bd fix(bundle): reject imports without a bundle name 2026-05-13 23:49:13 +00:00
8ac21a0cb5 fix(test): avoid delegation integration constant collision 2026-05-13 23:48:55 +00:00
113b1b00dd Merge pull request 'fix(ci): resolve lint-workflow-yaml Rules 7/8/9 on redeploy-tenants-on-main' (#903) from fix/redeploy-tenants-on-main-lint-cleanup into main
Some checks failed
CI / Platform (Go) (push) Blocked by required conditions
CI / Canvas (Next.js) (push) Blocked by required conditions
CI / Shellcheck (E2E scripts) (push) Blocked by required conditions
CI / Canvas Deploy Reminder (push) Blocked by required conditions
CI / Python Lint & Test (push) Blocked by required conditions
CI / all-required (push) Blocked by required conditions
E2E API Smoke Test / E2E API Smoke Test (push) Blocked by required conditions
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Blocked by required conditions
Handlers Postgres Integration / Handlers Postgres Integration (push) Blocked by required conditions
publish-workspace-server-image / Production auto-deploy (push) Blocked by required conditions
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Blocked by required conditions
Block internal-flavored paths / Block forbidden paths (push) Successful in 16s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (push) Successful in 16s
CI / Detect changes (push) Successful in 46s
E2E API Smoke Test / detect-changes (push) Successful in 46s
E2E Staging Canvas (Playwright) / detect-changes (push) Successful in 44s
redeploy-tenants-on-main / redeploy (push) Has been skipped
Handlers Postgres Integration / detect-changes (push) Successful in 45s
status-reaper / reap (push) Has started running
Secret scan / Scan diff for credential-shaped strings (push) Successful in 17s
Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push) Successful in 22s
Sweep stale Cloudflare Tunnels / Sweep CF tunnels (push) Successful in 20s
Runtime PR-Built Compatibility / detect-changes (push) Successful in 41s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (push) Successful in 1m52s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (push) Successful in 2m41s
publish-workspace-server-image / build-and-push (push) Has been cancelled
gitea-merge-queue / queue (push) Successful in 39s
2026-05-13 23:43:40 +00:00
1eee4363da fix(ci): resolve lint-workflow-yaml Rules 7/8/9 on redeploy-tenants-on-main
All checks were successful
sop-checklist / all-items-acked (pull_request) All SOP items acked
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 19s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 21s
E2E API Smoke Test / detect-changes (pull_request) Successful in 50s
CI / Detect changes (pull_request) Successful in 52s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m1s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 1m0s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 20s
qa-review / approved (pull_request) Successful in 20s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 44s
security-review / approved (pull_request) Successful in 18s
sop-checklist-gate / gate (pull_request) Successful in 17s
gate-check-v3 / gate-check (pull_request) Successful in 31s
sop-tier-check / tier-check (pull_request) Successful in 22s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m23s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m48s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Successful in 2m18s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 2m22s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Successful in 2m23s
audit-force-merge / audit (pull_request) Successful in 20s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 11s
CI / Platform (Go) (pull_request) Successful in 9s
CI / Canvas (Next.js) (pull_request) Successful in 10s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 9s
CI / Python Lint & Test (pull_request) Successful in 12s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 13s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 12s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 12s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 7s
Rules 7/8/9 are now clean. Fixes:

Rule 7 — removed cancel-in-progress: false:
Gitea 1.22.6 cancels queued runs regardless of this setting (confirmed
upstream). Each redeploy-fleet call is idempotent (canary-first + batched
+ health-gated) so a cancelled predecessor recovers automatically.
Removed the setting; kept the concurrency group for intent clarity.

Rule 8 — redacted raw CP response from CI logs:
Replaced `cat "$HTTP_RESPONSE" | jq .` with a filtered jq that prints
only {ok, result_count, has_errors}. Also redacted .error field from
the GITHUB_STEP_SUMMARY table — replaced with a boolean presence flag.
Per lint rule: CI logs are persistent and broad-read; SSM error details
stay in restricted observability.

Rule 9 — added PROD_AUTO_DEPLOY_DISABLED kill switch:
Added job-level PROD_AUTO_DEPLOY_DISABLED env var (repo var or secret)
and an early-exit step that notices and skips when set. Manual
workflow_dispatch bypasses the kill switch by design.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 23:41:18 +00:00
a7a65b6fdf fix(ci): restore proper Docker daemon gate on publish-workspace-server-image
main merged a fix (3206966e) that replaces the broken `Diagnose Docker
daemon access` step (|| true guards) with a proper `Verify Docker daemon
access` gate (docker info || { exit 1 }). The feature branch is still on
the old broken version — sync it.

mc#711: ubuntu-latest runners may lack a live Docker daemon. With the
old guards the step always succeeded even when Docker was inaccessible,
letting the build step hang for 4+ minutes before failing. The restored
gate fails in ~5s with an actionable error message.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 23:41:18 +00:00
4d8c81984c chore: retrigger CI after rebase to main 2026-05-13 23:41:18 +00:00
9d72c35e18 chore: retrigger CI after rebase to main 2026-05-13 23:41:18 +00:00
4c2172a0f0 Merge pull request 'fix(handlers): repair current main test blockers' (#900) from fix/core-main-handlers-hotfix into main
Some checks failed
CI / Python Lint & Test (push) Successful in 11s
publish-workspace-server-image / build-and-push (push) Successful in 9m43s
Harness Replays / Harness Replays (pull_request) Successful in 14s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Successful in 19s
Harness Replays / Harness Replays (push) Successful in 15s
audit-force-merge / audit (pull_request) Has been skipped
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 3m17s
E2E API Smoke Test / E2E API Smoke Test (push) Successful in 3m26s
main-red-watchdog / watchdog (push) Successful in 2m32s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Successful in 10s
CI / Python Lint & Test (pull_request) Successful in 8m0s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 6m54s
Handlers Postgres Integration / Handlers Postgres Integration (push) Successful in 6m48s
gate-check-v3 / gate-check (push) Successful in 46s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 2m30s
CI / Canvas Deploy Reminder (push) Has been skipped
publish-workspace-server-image / Production auto-deploy (push) Failing after 23s
Sweep stale Cloudflare DNS records / Sweep CF orphans (push) Successful in 24s
ci-required-drift / drift (push) Successful in 1m13s
CI / Canvas (Next.js) (pull_request) Successful in 16m56s
CI / Platform (Go) (pull_request) Successful in 18m17s
CI / Platform (Go) (push) Successful in 17m48s
Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push) Successful in 28s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 6s
CI / all-required (push) Successful in 4s
Staging SaaS smoke (every 30 min) / Staging SaaS smoke (push) Successful in 5m3s
status-reaper / reap (push) Has started running
gitea-merge-queue / queue (push) Successful in 26s
Continuous synthetic E2E (staging) / Synthetic E2E against staging (push) Successful in 4m54s
2026-05-13 22:58:58 +00:00
7ce65ac4cb fix(handlers): repair current main test blockers
All checks were successful
sop-checklist / all-items-acked (pull_request) All required checks passed
CI / Detect changes (pull_request) Successful in 19s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 12s
E2E API Smoke Test / detect-changes (pull_request) Successful in 21s
Harness Replays / detect-changes (pull_request) Successful in 11s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 23s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 16s
qa-review / approved (pull_request) Successful in 12s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 31s
security-review / approved (pull_request) Successful in 12s
gate-check-v3 / gate-check (pull_request) Successful in 21s
sop-checklist-gate / gate (pull_request) Successful in 12s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 26s
sop-tier-check / tier-check (pull_request) Successful in 12s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m24s
audit-force-merge / audit (pull_request) Successful in 21s
CI / Canvas (Next.js) (pull_request) Successful in 15s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 9s
CI / Python Lint & Test (pull_request) Successful in 9s
Harness Replays / Harness Replays (pull_request) Successful in 17s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 17s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 16s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 2m25s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 5m49s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Platform (Go) (pull_request) Successful in 20m5s
CI / all-required (pull_request) Successful in 3s
2026-05-13 22:55:29 +00:00
ff4b1cded8 Merge pull request 'fix(main): heal ADMIN_TOKEN placeholder in global_secrets on startup (#831)' (#898) from sre/port-fixAdminTokenPlaceholder-to-main into main
Some checks failed
sop-tier-check / tier-check (pull_request) Successful in 16s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Failing after 1m22s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m28s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Successful in 1m56s
Sweep stale Cloudflare Tunnels / Sweep CF tunnels (push) Successful in 18s
Sweep stale e2e-* orgs (staging) / Sweep e2e orgs (push) Successful in 21s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 1m53s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Failing after 1m47s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 1m24s
status-reaper / reap (push) Has started running
gitea-merge-queue / queue (push) Has started running
CI / Shellcheck (E2E scripts) (push) Successful in 8s
CI / Canvas (Next.js) (push) Successful in 13s
CI / Python Lint & Test (push) Successful in 24s
Harness Replays / Harness Replays (pull_request) Successful in 9s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 40s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (push) Successful in 14s
Harness Replays / Harness Replays (push) Successful in 8s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Failing after 1m49s
Continuous synthetic E2E (staging) / Synthetic E2E against staging (push) Has started running
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Successful in 8s
CI / Platform (Go) (push) Has been cancelled
E2E API Smoke Test / E2E API Smoke Test (push) Has been cancelled
publish-workspace-server-image / build-and-push (push) Has been cancelled
CI / Platform (Go) (pull_request) Failing after 5m0s
CI / Python Lint & Test (pull_request) Successful in 8m2s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 14m25s
CI / Canvas (Next.js) (pull_request) Successful in 15m35s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 8s
2026-05-13 22:43:20 +00:00
b5b24ab64b fix(main): heal ADMIN_TOKEN placeholder in global_secrets on startup (#831)
Some checks failed
sop-checklist / all-items-acked (pull_request) injected after rebase
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 11s
Harness Replays / detect-changes (pull_request) Successful in 18s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 17s
qa-review / approved (pull_request) Successful in 21s
CI / Detect changes (pull_request) Successful in 39s
E2E API Smoke Test / detect-changes (pull_request) Successful in 37s
security-review / approved (pull_request) Successful in 19s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 38s
gate-check-v3 / gate-check (pull_request) Successful in 31s
sop-checklist-gate / gate (pull_request) Successful in 18s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 40s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 39s
sop-tier-check / tier-check (pull_request) Successful in 21s
audit-force-merge / audit (pull_request) Successful in 14s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m17s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 10s
CI / Canvas (Next.js) (pull_request) Successful in 13s
CI / Python Lint & Test (pull_request) Successful in 12s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 18s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 20s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 10s
Harness Replays / Harness Replays (pull_request) Failing after 2m25s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 2m36s
CI / Platform (Go) (pull_request) Failing after 5m41s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 7s
Cherry-pick from staging (PR #893) — that PR was accidentally merged to
staging instead of main, leaving the production fix stranded.

The root cause: workspaces provisioned with ADMIN_TOKEN=placeholder in
global_secrets receive that placeholder as a container env var, breaking
any code that calls platform APIs. This runs once at startup (SaaS only)
and replaces the placeholder with the real token from the host environment.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 22:42:32 +00:00
d8ac017d6e Merge pull request 'fix(gate-check): map infra-sre Gitea login to core-devops agent' (#896) from sre/fix-gate-check-infra-sre-devops-mapping into main
Some checks failed
Runtime PR-Built Compatibility / PR-built wheel + import smoke (push) Blocked by required conditions
Secret scan / Scan diff for credential-shaped strings (push) Waiting to run
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, l
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 29s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 16s
Harness Replays / detect-changes (pull_request) Successful in 44s
E2E API Smoke Test / detect-changes (pull_request) Successful in 57s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 54s
publish-runtime-autobump / bump-and-tag (pull_request) Has been skipped
review-check-tests / review-check.sh regression tests (pull_request) Successful in 19s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 38s
publish-runtime-autobump / pr-validate (pull_request) Successful in 54s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 33s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m20s
gate-check-v3 / gate-check (pull_request) Successful in 14s
qa-review / approved (pull_request) Successful in 9s
security-review / approved (pull_request) Successful in 9s
sop-checklist-gate / gate (pull_request) Successful in 8s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Successful in 1m57s
sop-tier-check / tier-check (pull_request) Successful in 8s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Failing after 1m26s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Failing after 2m1s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 2m5s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Successful in 2m24s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 1m20s
Continuous synthetic E2E (staging) / Synthetic E2E against staging (push) Has started running
Harness Replays / Harness Replays (pull_request) Successful in 6s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Failing after 1m21s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 1m59s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 2m52s
2026-05-13 22:38:29 +00:00
f908aa894b fix(gate-check): map infra-sre Gitea login to core-devops agent
All checks were successful
sop-checklist / all-items-acked (pull_request) injected after rebase
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 20s
CI / Detect changes (pull_request) Successful in 1m8s
E2E API Smoke Test / detect-changes (pull_request) Successful in 1m5s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m1s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 58s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 26s
qa-review / approved (pull_request) Successful in 27s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m38s
security-review / approved (pull_request) Successful in 30s
gate-check-v3 / gate-check (pull_request) Successful in 44s
sop-checklist-gate / gate (pull_request) Successful in 21s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 1m7s
sop-tier-check / tier-check (pull_request) Successful in 26s
audit-force-merge / audit (pull_request) Successful in 23s
CI / Platform (Go) (pull_request) Successful in 11s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 13s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 8s
CI / Canvas (Next.js) (pull_request) Successful in 11s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 12s
CI / Python Lint & Test (pull_request) Successful in 9s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 11s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 7s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 5s
infra-sre IS the engineers/core-devops agent (same team, same work).
Without this alias, infra-sre reviews and comments never satisfy the
engineers gate in signal_1_comment_scan, causing PRs to remain blocked
even when infra-sre explicitly posts [devops-agent] APPROVED.

Changes:
- Add LOGIN_ALIASES dict: infra-sre → core-devops
- Resolve aliases in signal_1_comment_scan comment-matching loop
- Resolve aliases in signal_1_comment_scan reviews collection
- Add test covering infra-sre APPROVED review → engineers CLEAR

Fixes #896.

[core-be-agent]

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 22:37:50 +00:00
2ebd0c395a Merge pull request 'fix(workspace): add HEALTHCHECK to Dockerfile' (#883) from fix/workspace-healthcheck into main
Some checks failed
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Failing after 1m54s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 2m4s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Failing after 1m24s
lint-mask-pr-atomicity / lint-mask-pr-atomicity (pull_request) Successful in 2m12s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 1m17s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 17s
CI / Detect changes (pull_request) Successful in 45s
E2E API Smoke Test / detect-changes (pull_request) Successful in 41s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m2s
qa-review / approved (pull_request) Successful in 24s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 1m4s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 20s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 57s
security-review / approved (pull_request) Successful in 16s
audit-force-merge / audit (pull_request) Has been skipped
sop-checklist-gate / gate (pull_request) Successful in 24s
sop-tier-check / tier-check (pull_request) Successful in 24s
gate-check-v3 / gate-check (pull_request) Failing after 28s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m35s
Harness Replays / Harness Replays (pull_request) Successful in 7s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 5s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 8s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 7s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 7s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 6s
CI / Python Lint & Test (pull_request) Successful in 7m38s
CI / Canvas (Next.js) (pull_request) Successful in 15m55s
CI / Platform (Go) (pull_request) Failing after 4m33s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 3s
2026-05-13 22:30:54 +00:00
37b01b4e24 [core-devops-agent] fix: add HEALTHCHECK to workspace/Dockerfile
All checks were successful
sop-checklist / all-items-acked (pull_request) injected after rebase
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 38s
CI / Detect changes (pull_request) Successful in 1m22s
E2E API Smoke Test / detect-changes (pull_request) Successful in 1m24s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m14s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 51s
publish-runtime-autobump / bump-and-tag (pull_request) Has been skipped
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 26s
publish-runtime-autobump / pr-validate (pull_request) Successful in 54s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 14s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m32s
gate-check-v3 / gate-check (pull_request) Successful in 22s
qa-review / approved (pull_request) Successful in 20s
security-review / approved (pull_request) Successful in 17s
sop-checklist-gate / gate (pull_request) Successful in 15s
audit-force-merge / audit (pull_request) Successful in 14s
sop-tier-check / tier-check (pull_request) Successful in 19s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 9s
CI / Platform (Go) (pull_request) Successful in 14s
CI / Canvas (Next.js) (pull_request) Successful in 12s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 10s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 12s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 17s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 2m39s
CI / Python Lint & Test (pull_request) Successful in 7m25s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / all-required (pull_request) Successful in 4s
Probe the A2A agent-card endpoint so orchestrators and container
runtimes can detect a live, responsive workspace agent without
requiring a registered agent token.

- Uses curl (present in python:3.11-slim base)
- Targets uvicorn server on configurable PORT (default 8000)
- interval=30s, timeout=5s, retries=3 — balances responsiveness
  vs. false-positive tolerance on busy containers
- ${PORT:-8000} substitution is safe because:
  (a) the base image EXPOSEs 8000
  (b) molecule-runtime defaults config.a2a.port to 8000
  (c) the entrypoint uses exec form so HEALTHCHECK exec succeeds

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 22:29:45 +00:00