Repository navigation
Description
Summary
Track the Gateway operator control surface across agent, dashboard, infra and this control plane. Project 1 supplies the tracked items and structured fields; this issue records evidence and acceptance.
Current state
As of 2026-11-02, production is Gateway v0.130.4 / OpenCode V2 2.2.5 / Systematic 3.28.0 + Dashboard 2026.10.78, contract 1.14.0. Rollout remains In Progress / blocked for Reject, missing approval details, V2 waitReason semantics and the retained runtime gates. Always is released/deployed; confirmation and next-run re-prompt pass within the operator-reported scope.
- Agent-verified deployment: infra#1740 merged at18:20:58Z. Router41228975081 deployed v0.130.4 by18:31:12Z; logs verify both running image digests, health1.14.0 and 1024MiB/equal swap. Build logs select OpenCode2.2.5. Main Gateway pin remains v0.130.4 (apps/gateway/upstream.json). Latest agent release is v0.133.0, published November2 at02:38:08Z; it is not the deployed Gateway version. The v0.130.4 release includes agent#2004. This supersedes infra#1735/v0.130.3 without erasing that historical acceptance.
- Agent-verified subsequent reconvergence: infra#1738/router41229446030 reconverged both services; Dashboard.78 running digest/health verified at18:28Z. Then infra#1742/router41239906077 reconverged Gateway v0.130.4, completed October31 at21:07:18Z. Both Gateway/workspace digests, OpenCode2.2.5/Systematic3.28.0, health1.14.0 and1024MiB/equal swap verified; Dashboard skipped. This is historical reconvergence; the newer infra#1752/router41344463545 deployment below supersedes it. Infra#1740 remains initial v0.130.4 delivery.
- Agent-verified Dashboard/health/router: Dashboard latest release and successful standalone Deploy Dashboard41040783946 remain2026.10.78, healthy/runtime digest verified. Public
/operator/healthreturns{"ok":true,"contractVersion":"1.14.0"}. Latest successful router41429565194 skipped Gateway and Dashboard; it is not a Gateway deployment. Its Gateway and Dashboard jobs are both skipped; a successful router is not proof of service delivery. Latest standalone Deploy Gateway remains38698076821; production advanced through reusable Gateway jobs in the router. - Operator-reported Always acceptance: October31 report6547863042: b9b9a5b8 used Always + Confirm always and succeeded; next run on the same repo1d287ff0 prompted again, Once succeeded. Accept those two subgates. A later matching request in the same run was not exercised; sibling/owned-descendant reuse, partial matches, cleanup/races and old-grant reset/disclosure remain open. Do not promote this partial live pass to full isolation acceptance.
- Operator-reported runtime observations: current
/readyz2.2.5, provider-store presence,0 OOM and unchanged trusted proxies/:9300 firewall/CA are reported, not independently inspected. The v0.130.3 six-launch smoke/Once/Submit/Skip/ordinary Cancel/push-ready pass and v0.130.1 Discord mention/Once/background/cancel/subsequent mention remain credited at their versions. Point-in-time counters do not establish sustained-load/host/cgroup memory safety or two-fresh-spawn credential activation. - Approval implementation closed, production gates open: agent#2001 closed November2 at08:29:44Z through merged agent#2026; agent#2002 closed09:56:52Z through merged agent#2028. Neither fix is in latest release v0.133.0 or production v0.130.4. Safe Reject/next-launch and approval-specific detail therefore remain unaccepted in production. Action Required: Fix Renovate Configuration #2028 maps V2 resources to commands/paths; it corrects the earlier assumption that raw metadata must be propagated.
- waitReason implementation closed, production gate open: agent#2007 closed November2 at10:50:53Z through merged agent#2031, not included in v0.133.0 or deployed v0.130.4. The change reports owned work before root success and distinguishes quiet/unreadable-directory confirmation without dropping the safety window. Historical V2 check17 steps1/5 remain credited; meaningful steps2/3 and real reconnect, precedence, unknown and rare values still need live acceptance. PR-local/real-binary test reports are not a production replay.
- Runbooks: infra#1741 restores Always check9.5/L4 and a next-run Once probe, keeping V2 Reject L5 skipped. It merged October31 at20:41:38Z; both runbooks on main contain the restored checks. Documentation delivery is complete; same-run matching remains explicitly unobserved, and V2 Reject L5 remains skipped.
- Latest actual Gateway reconvergence, agent-verified: infra#1752 merged November1 at19:58:53Z; router41344463545 completed20:49Z, still v0.130.4/OpenCode2.2.5/Systematic3.28.0. Deploy logs verify both running image digests, health1.14.0 and1024MiB/equal swap. All21 successful routers after41239906077 were checked: this is the only subsequent Gateway deploy; Dashboard jobs were skipped. Latest router41429565194 skips both services. No new operator acceptance run was posted.
- Credential delivery: Action Required: Fix Renovate Configuration #1993 released/deployed sincev0.130.1; authenticated turns have operator acceptance. Independent two-fresh-spawn/legacy-only/clone-only/header/proxy/non-disclosure checks remain distinct.
Historical operator acceptance retained, scoped to versions: October30 V1 post-rollback sweep credited seven terminal runs, Once/re-prompt/Reject, Submit/Skip, ordinary Cancel, push ready and session continuity. October31 L9 result adds continuously expanded run6c171042: background+73s, confirming+142s, cleared+149s and succeeded+149.3s. Check17 wire/steps1,2,3,5 pass across four V1 L9 runs; step4 not automated, rare reasons unobserved/opportunistic. Check16.4 credited persisted outage auth-failure summary, expanded/reloaded “Model provider unavailable” and accessible tile reason; it did not capture original live failure SSE, quota or unknown/absent detail. Earlier .77/October20/July4, Markdown/P7 and warm-device passes remain credited below. Current V2 partial acceptance is recorded separately above. Historical passes are not promoted to untested V2 cases.
Rollback scope: historical v0.130.0→v0.129.0 V1/.78 restoration succeeded via infra#1718/router41077416543; both versions were past ownership migration and needed no volume restore. Infra#1723 records rollback targets from router41125077031: Gateway sha256:369f294be99489782c564e6a23341a9ef51fc25ae972028078aaaff5e1a77eba, workspace sha256:da9a8c3bb15dde595a74c7a7b4c2d3103ce6fd157207c94ec22788bac6d17a6e. These are recorded targets, not a newly exercised rollback. Exact-prior-digest/older-contract rollback and migration-crossing snapshot restoration remain open; v0.125.3 cannot rebuild unchanged after its Alpine curl pin was superseded. No automatic rollback or real-load zero-OOM claim is inferred.
Still open
- Current V2 acceptance: v0.130.4 Always confirmation/next-run re-prompt plus historical v0.130.3 dashboard and v0.130.1 Discord passes accepted above. Reject#2001/Action Required: Fix Renovate Configuration #2026 and missing command#2002/Action Required: Fix Renovate Configuration #2028 fixes are merged but unreleased/undeployed production blockers; persistence/session continuity, authenticated ready parity, fresh-spawn/clone-only/header/non-disclosure and stronger Linux containment/memory checks remain. Agent#1805 stays open.
- Policy: agent#1875 → dashboard#674 must fail closed distinctly from empty lists, including uncached cold boot, grace expiry and automatic recovery. .github#4018 needs operational data-preservation confirmation through promotion.
- Always: agent#1990 closed via#2004, released/deployed in v0.130.4. Always confirmation and next-run re-prompt accepted as operator-reported. Same-run matching/siblings/owned descendants, partial matches, terminal/race cleanup and disclose/reset existing grants remain unmet. Infra#1741 merged; runbook delivery is complete, while same-run reuse remains unobserved.
- waitReason/check17 (agent#2007 closed via merged#2031; unreleased/undeployed): current V2 steps1/5 mechanical passes accepted; steps2/3 unexercised and drain semantics not demonstrated (no status during background, generic terminal flash, no confirming). Historical V1 steps1/2/3/5 retained; infra#1719/Action Required: Fix Renovate Configuration #1722 documentation gates satisfied. Actual reconnect, precedence, unknown and rare reasons remain unmet.
- Containment/recovery: retain cold/preparing/post-dispose stop-before-reuse, latest-turn evidence/quarantine/re-abort, run-attributed backups, clean next launch and correlated refusal/teardown diagnostics. Ordinary Cancel is weaker; preparation can defer cancel up to544s. Budget/disk/retention, detached-writer/quiescence and unsaved-child-notice residual gates remain, with V2 equivalents requiring validation.
- Stuck-run/memory: historical terminal launches do not establish process/stream-loss, non-pausing30s silence, terminal-write retries,60s reconciliation/live-owner/CAS/recent-hour/terminal-SSE safeguards, older-record startup recovery or early permission/idle/output ordering. Agent#1923 Linux measurement/idle recycling and V2 real-load1GiB canary (OOM/max events/host memory) remain.
- Provider failures: historical check16.4 summary/reload/accessibility passes retained; original live failure SSE, quota and unknown/absent-detail preservation remain. Neither expired-output replay nor health readiness proves a working authenticated V2 model turn.
- Devices/replay: closed-dashboard/installed-iOS cold-start selection, Discord reconnect/question settlement beyond the reported Once/background/cancel pass, real reconnect/terminal-overlay cleanup and push rotation active/grace/revoked lifecycle, bulk revoke/dedupe or accepted manual procedure remain. Push ready is not delivery; historical warm/open-device passes retained.
- Browser/launch: new-run ordering, Refresh/new version, single signed-out redirect/sign-in, timestamps, text boundaries and default OAuth landing; dashboard#678 ten-second timeout, same-key uncertain retry/no duplicates and no late stream attachment after sign-out remain.
- Session/CSRF: historical same-session deploy survival accepted; current V2 recheck, negative CSRF, upgrade-token recovery and saved-cookie invalidation replay remain distinct.
- Privacy/security: non-allowlisted-account check remains skipped; current production-shaped public-plus-denylisted/R8/API no-store/cache-purge, monitoring-UI suspension ratification and remaining security review remain. July4 and promptP7 passes retained.
- Rollback: retain current paired image targets and test exact prior-digest/older-contract rollback and migration-crossing snapshot restoration. Historical rebuilt-pair restoration is narrower. No unmet gate removed: current deployment and bounded V2 acceptance subgates are now checked; their stronger runtime requirements remain open below.
Cross-repo dependency matrix
All86 existing Project items rechecked against live issue/PR states on November2; added agent#2026/#2028/#2031 and infra#1752, now 90 items. Closed implementation is distinct from release/deployment/acceptance. Full gate text remains in Project1; rows come only from structured fields and live states.
| Project item | Live state | Status / readiness | Gate / evidence |
|---|---|---|---|
| fro-bot/.github#3512 | open | In Progress / blocked | Production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via infra#1752/router41344463545; images/1024MiB/equal swap verified. Latest… (full gate in Project1; acceptance below). |
| fro-bot/.github#3525 | closed | Done / waiting | Format-independent denylist implementation closed; production-shaped runtime redaction regression remains on #3512. Do not expose identifiers. |
| fro-bot/.github#4018 | closed | Done / waiting | Branch-preservation implementation closed; confirm data survives promotion in production. Policy-unavailable producer/consumer gates remain separate. |
| fro-bot/agent#907 | closed | Done / done | Units 3-8 |
| fro-bot/agent#929 | merged | Done / foundation shipped | foundation |
| fro-bot/agent#931 | merged | Done / done | Unit 2 |
| fro-bot/agent#932 | merged | Done / done | Unit 3 partial |
| fro-bot/agent#934 | merged | Done / done | Unit 3 partial |
| fro-bot/agent#936 | merged | Done / done | Unit 3 partial |
| fro-bot/agent#939 | merged | Done / done | Unit 3 partial |
| fro-bot/agent#944 | merged | Done / done | Unit 3 partial |
| fro-bot/agent#1053 | closed | Done / waiting | Container-hardening implementation closed; deployment/runtime posture and remaining security review stay distinct on #3512. |
| fro-bot/agent#1736 | closed | Done / done | Operator-reported historical V2 v0.130.3 Submit/Skip passed October31; prior cancellation-while-open/collapsed waits retained historically. Discord… (full gate in Project1; acceptance below). |
| fro-bot/agent#1737 | closed | Done / done | Operator-reported checkout details passed October 20 and October 30 contract 1.14.0 sweep; see #3512. |
| fro-bot/agent#1739 | closed | Done / waiting | Implementation closed; explicit assistant text-boundary live regression still owed on #3512; Markdown interaction acceptance is separate. |
| fro-bot/agent#1740 | closed | Done / waiting | Implementation closed; explicit OAuth callback with no return_to live regression still owed on #3512. |
| fro-bot/agent#1780 | closed | Done / waiting | Implementation closed; operator v0.130.1 Discord Once/background/cancel/new mention passes accepted. Operator V2 check17: steps1/5 mechanical pass;… (full gate in Project1; acceptance below). |
| fro-bot/agent#1805 | open | In Progress / blocked | Current production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via infra#1752/router41344463545 (initial delivery infra#1740); both… (full gate in Project1; acceptance below). |
| fro-bot/agent#1836 | closed | Done / waiting | Closed implementation; operator reports natural V2 auth failure terminated around9s. Check16.4 accepted October31:… (full gate in Project1; acceptance below). |
| fro-bot/agent#1837 | closed | Done / waiting | Operator-reported same session survived both October 30 V2/V1 deploys on v0.129.0/.78; historical October 18 survival retained. Upgrade CSRF refresh… (full gate in Project1; acceptance below). |
| fro-bot/agent#1840 | closed | Done / waiting | Approval notification tap accepted with dashboard open 2026-10-19; closed-dashboard and installed-iOS cold start remain unverified. |
| fro-bot/agent#1845 | closed | Done / done | Operator-reported 8000-unit limit passed October 30; prior 8001 boundary/visible disabled state and prompt P7 retained; see #3512. |
| fro-bot/agent#1875 | open | Todo / ready now | Open producer prerequisite for dashboard#674: distinguish unavailable policy from empty listings while denying access; verify cold start, grace… (full gate in Project1; acceptance below). |
| fro-bot/agent#1889 | closed | Done / waiting | Implementation closed via #1906/#1915/#1918, deployed in v0.125.3. #1958 exposed cold/preparing-prompt abort gap: #1965 fixes it in v0.127.0,… (full gate in Project1; acceptance below). |
| fro-bot/agent#1906 | merged | Done / waiting | Merged/released v0.125.2, deployed via v0.125.3. #1958 invalidates absence-after-abort as stop proof for cold/preparing prompts. Follow-up #1965… (full gate in Project1; acceptance below). |
| fro-bot/agent#1915 | merged | Done / waiting | Merged and released/deployed in v0.125.3: run-correlated checkout refusal reasons/counts and workspace abort/delete/dispose response logs. Live… (full gate in Project1; acceptance below). |
| fro-bot/agent#1918 | merged | Done / waiting | Merged and released/deployed in v0.125.3: bounded dirty-checkout recovery under repo lock, quiescence and budget checks; preserve run-attributed… (full gate in Project1; acceptance below). |
| fro-bot/agent#1922 | closed | Done / waiting | Implementation closed via #1934/#1947/#1950/#1954, released through v0.126.0, deployed again in V1 v0.129.0 by rollback 41077416543; current V2… (full gate in Project1; acceptance below). |
| fro-bot/agent#1923 | open | Todo / ready now | Open #1922 memory-growth/recycle follow-up; Linux measurement and safe idle recycling acceptance remain separate from stuck-run implementation… (full gate in Project1; acceptance below). |
| fro-bot/agent#1934 | merged | Done / waiting | Merged; released in v0.125.4, deployed again in V1 v0.129.0 by rollback 41077416543; current V2 acceptance still required. Proxy disconnect… (full gate in Project1; acceptance below). |
| fro-bot/agent#1947 | merged | Done / waiting | Merged; released in v0.125.5, deployed again in V1 v0.129.0 by rollback 41077416543; current V2 acceptance still required. Lost/silent stream ends… (full gate in Project1; acceptance below). |
| fro-bot/agent#1948 | merged | Done / done | Merged/published v0.126.0 release gate satisfied. Current production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via… (full gate in Project1; acceptance below). |
| fro-bot/agent#1950 | merged | Done / waiting | Merged; released in v0.126.0, deployed again in V1 v0.129.0 by rollback 41077416543; current V2 acceptance still required. Bounded terminal-write… (full gate in Project1; acceptance below). |
| fro-bot/agent#1951 | closed | Done / waiting | Closed/completed via merged #1956: bounded server.connected barrier before prompt on Gateway/Action. Released v0.127.0, deployed again in V1 v0.129.0… (full gate in Project1; acceptance below). |
| fro-bot/agent#1954 | merged | Done / waiting | Current production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via infra#1752/router41344463545 (initial delivery infra#1740); both… (full gate in Project1; acceptance below). |
| fro-bot/agent#1956 | merged | Done / waiting | Merged, closes #1951; bounded server.connected barrier before prompt on Gateway/Action. Released v0.127.0, deployed again in V1 v0.129.0 by rollback… (full gate in Project1; acceptance below). |
| fro-bot/agent#1958 | closed | Done / waiting | Closed/completed via #1965: cold/preparing prompt may start after successful abort and idle status. Fix released v0.127.0, deployed again in V1… (full gate in Project1; acceptance below). |
| fro-bot/agent#1965 | merged | Done / waiting | Merged; released v0.127.0, deployed again in V1 v0.129.0 by rollback 41077416543; current V2 acceptance still required. Positive latest-turn terminal… (full gate in Project1; acceptance below). |
| fro-bot/agent#1988 | merged | Done / waiting | Historical v0.130.0 outage/V1 rollback retained; Current production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via… (full gate in Project1; acceptance below). |
| fro-bot/agent#1990 | closed | Done / waiting | Agent#2004 released in v0.130.4 and deployed via infra#1740/router41228975081. Operator October31: Always+Confirm run b9b9a5b8 succeeded; next… (full gate in Project1; acceptance below). |
| fro-bot/agent#1992 | closed | Done / waiting | Credential fix#1993 released/deployed sincev0.130.1; Current production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via… (full gate in Project1; acceptance below). |
| fro-bot/agent#1993 | merged | Done / waiting | Credential fix#1993 released/deployed sincev0.130.1; Current production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via… (full gate in Project1; acceptance below). |
| fro-bot/agent#2001 | closed | Done / waiting | Implementation closed via merged agent#2026 November2; not included in latest release v0.133.0 or deployed v0.130.4. Reject carries a nonempty denial… (full gate in Project1; acceptance below). |
| fro-bot/agent#2002 | closed | Done / waiting | Implementation closed via merged agent#2028 November2; not included in latest release v0.133.0 or deployed v0.130.4. V2 resources supply all shell… (full gate in Project1; acceptance below). |
| fro-bot/agent#2004 | merged | Done / waiting | Agent#2004 released in v0.130.4 and deployed via infra#1740/router41228975081. Operator October31: Always+Confirm run b9b9a5b8 succeeded; next… (full gate in Project1; acceptance below). |
| fro-bot/agent#2007 | closed | Done / waiting | Implementation closed via merged agent#2031 November2; not included in latest release v0.133.0 or deployed v0.130.4. Pre-root owned work reports… (full gate in Project1; acceptance below). |
| fro-bot/agent#2026 | merged | Done / waiting | Merged 2026-11-02T08:29:43Z; closes agent#2001. Not included in latest release v0.133.0 or deployed Gateway v0.130.4; release/deployment/live… (full gate in Project1; acceptance below). |
| fro-bot/agent#2028 | merged | Done / waiting | Merged 2026-11-02T09:56:51Z; closes agent#2002. Not included in latest release v0.133.0 or deployed Gateway v0.130.4; release/deployment/live… (full gate in Project1; acceptance below). |
| fro-bot/agent#2031 | merged | Done / waiting | Merged 2026-11-02T10:50:51Z; closes agent#2007. Not included in latest release v0.133.0 or deployed Gateway v0.130.4; release/deployment/live… (full gate in Project1; acceptance below). |
| fro-bot/dashboard#24 | closed | Done / done | Unit 3 |
| fro-bot/dashboard#25 | closed | Done / done | Units 4-6 |
| fro-bot/dashboard#26 | closed | Done / done | Units 5-6 |
| fro-bot/dashboard#39 | closed | Done / done | Foundation implementation complete; outstanding rollout/runtime acceptance remains on #3512. |
| fro-bot/dashboard#47 | closed | Done / done | Foundation implementation complete; outstanding rollout/runtime acceptance remains on #3512. |
| fro-bot/dashboard#48 | closed | Done / done | Foundation implementation complete; outstanding rollout/runtime acceptance remains on #3512. |
| fro-bot/dashboard#53 | closed | Done / done | Foundation implementation complete; outstanding rollout/runtime acceptance remains on #3512. |
| fro-bot/dashboard#59 | closed | Done / done | Foundation implementation complete; outstanding rollout/runtime acceptance remains on #3512. |
| fro-bot/dashboard#81 | closed | Done / done | Foundation implementation complete; outstanding rollout/runtime acceptance remains on #3512. |
| fro-bot/dashboard#125 | closed | Done / waiting | Cache-Control no-store implementation closed; production-shaped API/cache-purge regression remains on #3512. |
| fro-bot/dashboard#156 | closed | Done / waiting | Logout/CSRF passed operator October 30 sweep; October 20 logout 200/session 401 retained. Negative CSRF, upgrade recovery and saved-cookie replay not… (full gate in Project1; acceptance below). |
| fro-bot/dashboard#583 | closed | Done / done | Accepted 2026-10-20: expired snapshot shows Output no longer available; earlier re-expansion accepted. |
| fro-bot/dashboard#584 | closed | Done / done | Accepted 2026-10-20: finished card has no Cancel control; execution containment remains agent#1889. |
| fro-bot/dashboard#585 | closed | Done / waiting | Collapsed approval/question and in-card waiting accepted; launched timestamps, reconnect/settlement and remaining browser regressions still owed on… (full gate in Project1; acceptance below). |
| fro-bot/dashboard#586 | closed | Done / done | Signed-in acceptance on 2026.10.46/.47: streaming Markdown, host-labelled links, Raw/Rendered, Copy raw, first toggle, finished re-expansion. Prompt… (full gate in Project1; acceptance below). |
| fro-bot/dashboard#674 | open | Todo / blocked | Blocked by agent#1875 policy-unavailable signal; show unavailable distinctly and recover automatically, including cold start without cached policy. |
| fro-bot/dashboard#676 | closed | Done / done | Visible disabled Launch and inline status at 8001 UTF-16 units accepted in 2026-10-20 production sweep; boundary enforcement already passed. |
| fro-bot/dashboard#678 | merged | Done / waiting | Merged launch hardening; live 10-second timeout, uncertain retry with same idempotency key/no duplicate, and no late stream attachment after sign-out… (full gate in Project1; acceptance below). |
| fro-bot/dashboard#729 | closed | Done / waiting | Current production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via infra#1752/router41344463545 (initial delivery infra#1740); both… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#579 | closed | Done / done | Unit 2 |
| marcusrbrown/infra#580 | closed | Done / done | Current production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via infra#1752/router41344463545 (initial delivery infra#1740); both… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#581 | closed | Done / done | Unit 3 decision ratified |
| marcusrbrown/infra#711 | closed | Done / done | GitHub App key lifecycle runbook issue closed/completed; separate post-merge security review remains on #3512. |
| marcusrbrown/infra#1327 | closed | Done / done | Closed/completed; operator reported orphan cleanup and post-cleanup verification. Successor build/reproducibility work tracked in infra#1383. |
| marcusrbrown/infra#1383 | closed | Done / done | Issue closed/completed; operator reported identical independent builds at v0.119.2. Closure does not independently prove every original… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1705 | merged | Done / done | Merged historical .77 audit pin; superseded by merged infra#1716 recording healthy .78 runtime digest on main. Behavioral acceptance separate; see… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1711 | merged | Done / done | Merged historical v0.129.0 pin; historical V1 restored via infra#1718/router41077416543 using rebuilt verified pair. Older v0.125.3 cannot rebuild… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1712 | merged | Done / waiting | Historical v0.130.0 V2 outage/rollback retained. Current production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1714 | merged | Done / waiting | Current production v0.130.4 V2/OpenCode2.2.5 + Dashboard.78, contract1.14.0 via infra#1752/router41344463545 (initial delivery infra#1740); both… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1716 | merged | Done / done | Merged .78 audit pin; main compose now matches healthy Dashboard41040783946 digest2298558b69f8759e8dcea72f04fa4bc94b7b924d7946d9c22a65ad6c3974018f.… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1718 | merged | Done / done | Merged; router 41077416543 restored v0.129.0 Gateway/workspace (V1), verified running digests, contract 1.14.0 and 1024 MiB/equal swap. Operator… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1719 | merged | Done / done | Merged timing correction retained; merged#1722 widens observed first-reason range73-91s/window45-75s, observes from65s and classifies step4 not… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1720 | merged | Done / done | Catalog allowlist merged/deployed; historical GET200 retained. Currentv0.130.4 V2 disables catalog fetch; operator authenticated turn accepted.… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1722 | merged | Done / done | Merged October31 at02:25:43Z; main runbook now starts observation65s, widens timing and records check17.4 not automated with Dashboard reconnect-test… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1723 | merged | Done / waiting | Historical V2 return v0.130.1/OpenCode2.2.0/router41160125884 verified. Operator Discord mention/Once/background/cancel/new mention pass. Superseded… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1735 | merged | Done / done | Historical deployment, superseded by infra#1740/v0.130.4. Merged October31 14:10:19Z; router41208892613 deployed… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1738 | merged | Done / done | Merged October31 18:26:39Z; router41229446030 reconverged Gateway v0.130.4 and Dashboard.78 after Caddy digest update. Both Gateway/workspace… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1740 | merged | Done / done | Merged October31 18:20:58Z; router41228975081 deployed v0.130.4/OpenCode2.2.5 by18:31:12Z. Both image digests, health1.14.0 and1024MiB/equal swap… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1741 | merged | Done / done | Merged October31 20:41:38Z; main runbooks restore manual check9.5/automated L4 Always acceptance and a next-run Once probe. V2 Reject L5 remains… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1742 | merged | Done / done | Historical reconvergence: merged October31 20:39:13Z; router41239906077 verified v0.130.4, both digests, health1.14.0 and1024MiB/equal swap.… (full gate in Project1; acceptance below). |
| marcusrbrown/infra#1752 | merged | Done / done | Merged November1 19:58:53Z; latest actual Gateway reconvergence router41344463545 completed20:49Z, still v0.130.4/OpenCode2.2.5/Systematic3.28.0.… (full gate in Project1; acceptance below). |
Risks to keep visible
- Ready containers and health did not detect the first V2 credential outage; delivered credentials are not authenticated model-turn acceptance.
- Exact contract matching fails closed during skew. Keep Gateway/workspace compatible and retain paired rollback images/snapshots where applicable.
- Always fix#2004 is deployed in v0.130.4, with operator-reported confirmation/next-run re-prompt accepted. Same-run/sibling/descendant isolation and old-grant reset remain unverified. Reject#2001/Action Required: Fix Renovate Configuration #2026, missing approval detail#2002/Action Required: Fix Renovate Configuration #2028 and waitReason#2007/Action Required: Fix Renovate Configuration #2031 fixes are merged, but release/deployment/live acceptance remain explicit blockers.
- Cancel/idle is not proof of no future writes. Retain stop evidence, quarantine, recovery budgets and notice-turn boundaries; verify V2 equivalents.
- Actual SSE loss is required for live reconnect acceptance. Not-automated classification and test-source inspection do not prove a disconnect.
- Keep trusted proxy/same-origin cookies/unbuffered SSE, prompt/output sanitization/P7, privacy/cache/security gates and real-load memory acceptance visible.
Acceptance criteria
Labels distinguish operator acceptance from independent checks. An unchecked operator-reported entry records an unmet requirement, not a passed test. Historical passes remain scoped to their recorded versions.
-
Agent-verified: current public health1.14.0; latest reconvergence infra#1752/router41344463545 deployed the same v0.130.4/OpenCode2.2.5 with both image digests and1024MiB/equal swap verified; Dashboard.78 unchanged. Latest router41429565194 skipped both services. Main Gateway pin remains v0.130.4; latest release v0.133.0 is not deployed. Historical V1 restoration and v0.130.1 return retained.
-
Operator-reported: authenticated
readyparity on live and finished runs at1.13.0(October 20 sweep). -
Operator-reported: authenticated repo/run listing, launch → stream → success, and live/finished checkout details (October 20 sweep).
-
Operator-reported: approval Once/Always/Reject; question submit/skip; cancellation while a question is open; collapsed and in-card waiting labels (October 20 and earlier signed-in checks). UI cancellation does not prove execution containment.
-
Operator-reported: expired-output recovery, finished-run re-expansion, completed-run Cancel cleanup, streaming Markdown, raw/rendered controls, Copy raw and link/first-toggle interactions.
-
Operator-reported: 8,000 UTF-16 units including final emoji accepted; 8,001 rejected without a run; visible over-limit disabled state and inline message accepted. Sanitized expanded Markdown supersedes the earlier plain-text-only prompt requirement.
-
Operator-reported: prompt-path P7 signed off against dashboard
f42b714(P1–P7/R15); other security review remains separate. -
Operator-reported: same-cookie gateway-only restart survival (October 18).
-
Operator-reported: approval/run-failed notification delivery, installed-app question tap within its recorded warm-app scope, and open-dashboard approval navigation; desktop push disablement accepted. Cold start remains separate.
-
Operator-reported: July 4 OAuth/auth-gating, tokenless logout rejection with session preserved, and live denylisted-identifier redaction passed (historical acceptance); retain credit without claiming a current-version regression pass.
-
Operator-reported: October 20 logout returned 200 followed by session 401; saved-cookie replay was not demonstrated.
-
Agent-verified: historical no-store, denylist-hardening, container-hardening and App-key-runbook issues are closed/completed; this verifies implementation state, not current runtime acceptance.
-
Operator-reported requirement: on the current V2 deployment (historical V1 gate retained) cancellation stops execution/writes before reuse, leftovers remain recoverable and next launch succeeds without manual cleanup. Action Required: Fix Renovate Configuration #1889/Action Required: Fix Renovate Configuration #1965 implementations deployed; ordinary cancel acceptance does not close this stronger gate.
-
Operator-reported: Check16.4 persisted auth-failure summary, expanded/reloaded "Model provider unavailable" and accessible run-tile reason pass on historical outage run2e528d35; expired output remains independently visible.
-
Operator-reported requirement: original live provider-failure SSE presentation, natural quota failure/
provider-quota-exceeded, and unknown/absent details preserving rows/frames remain unverified; persisted auth-failure replay does not close them. -
Operator-reported requirement: real question and approval notification taps with dashboard closed and installed-iOS cold start select the correct run.
-
Operator-reported requirement: reconnect during/after waits, Discord question/reconnect settlement beyond the accepted Once/background/cancel subset, and terminal replay clear pending questions/approvals and never restore waiting on a finished run.
-
Operator-reported requirement: new-run ordering above expanded cards, Refresh into the new version, single signed-out redirect/sign-in button and launched-card timestamps rechecked live.
-
Operator-reported requirement: explicit assistant text-boundary and no-
return_toOAuth landing regressions accepted (agent#1739/Action Required: Fix Renovate Configuration #1740). -
Operator-reported requirement: launch 10-second timeout, same-key uncertain retry without duplicate runs, and no late stream attachment after sign-out (dashboard PR Action Required: Fix Renovate Configuration #678).
-
Operator-reported requirement: current-version CSRF-negative regression, one-time upgrade-token recovery, and replay of the saved pre-logout cookie proving server-side invalidation; historical tokenless rejection remains credited.
-
Operator-reported requirement: policy-unavailable producer/consumer chain fails closed distinctly from empty listings; cold uncached boot, grace expiry, and automatic recovery (agent#1875 → dashboard#674).
-
Operator-reported requirement: data-branch preservation through a production promotion verified operationally (.github#4018 implementation is closed).
-
Operator-reported requirement: current production-shaped public-plus-denylisted privacy/R8/API no-store/cache-purge checks; historical redaction acceptance remains credited.
-
Operator-reported requirement: monitoring-UI suspension ratified and remaining dashboard/infra post-merge security review complete; prompt P7 remains signed off.
-
Operator-reported requirement: non-allowlisted-account denial checked; October 20 skipped it, so it is not a pass.
-
Operator-reported requirement: before key rotation, active/grace/revoked subscription lifecycle, bulk revocation and dedupe behavior verified or an explicit manual procedure accepted; no later thread evidence closes the enablement report's tail.
-
Agent-verified: all86 existing Project-derived states rechecked November2; added agent#2026/Action Required: Fix Renovate Configuration #2028/Action Required: Fix Renovate Configuration #2031 and infra#1752, now90 items; the three closed regression implementations are Done/waiting, not live-accepted; infra#1741 documentation remains done. Matrix/Project fields reconciled; implementation closure remains distinct from runtime acceptance.
-
Agent-verified: historical Dashboard .70/.75 promotion gates retained; .78 healthy deployment41040783946 and merged infra#1716 now agree with main. No edge-case pass inferred.
-
Agent-verified: agent#1889 is closed/completed; merged Action Required: Fix Renovate Configuration #1915 implements run-ID-correlated refusal/workspace teardown logs and Action Required: Fix Renovate Configuration #1918 implements automatic run-attributed preserve-and-recover. Release
v0.125.3first included both; historical deployed V1v0.129.0retained them; current V2 equivalence remains a live acceptance gate. This closes the implementation/deployment asks, not live regression acceptance. -
Operator-reported requirement: verify the deployed preserve-and-recover backup and clean subsequent launch, plus correlated refusal/cancel/teardown diagnostics. Evidence must distinguish cancellation request, actual session stop and safe checkout reuse.
-
Agent-verified follow-up gate: exercise or explicitly accept the #1918 documented recovery boundaries: deferred operator cancel during preparation (up to about 544 seconds), insufficient budget/capacity/retention handling, and quiescence limits for detached writers; no current production acceptance covers these conditions.
-
Agent-verified: agent#1954 contract 1.14.0 and Action Required: Fix Renovate Configuration #1922 implementation chain merged/released and historically deployed again in V1 v0.129.0 after rollback (current V2 acceptance separate). Fault-injection and waitReason acceptance remain separate.
-
Agent-verified: dashboard#729 closed and .78 deployed; current Gateway v0.130.4 V2 health1.14.0 verified. Historical served .78 exact-pin evidence retained; UI/unknown-value/current V2 and older rollback acceptance remain distinct.
-
Operator-reported: October 30 health and authenticated ready frames match 1.14.0. Agent independently verified public health and served dashboard pin.
-
Operator-reported: October 30 post-rollback acceptance: three check17 runs emitted awaiting-background-task → confirming-completion → cleared → succeeded; first populated reason at 85–90s. Accepted on restored V1/.78, not current V2 acceptance.
-
Operator-reported requirement: pending approval/question status takes precedence over waitReason.
-
Operator-reported: October 30 post-rollback acceptance: no reason on terminal expanded cards or after reload; /operator/runs entries never carried waitReason. Unknown-value tolerance is retained as a separate unmet gate below.
-
Agent-verified follow-up gate: live stuck-run regression for Action Required: Fix Renovate Configuration #1922/Action Required: Fix Renovate Configuration #1934/Action Required: Fix Renovate Configuration #1947/Action Required: Fix Renovate Configuration #1950: process/stream loss, non-pausing 30s silence watchdog, bounded terminal-write retries, and 60s sweep reconciliation with live-owner/CAS/recent-hour safeguards and terminal SSE notification. Implementation closure is not this acceptance.
-
Agent-verified: agent#1951 is closed via merged chore(deps): update bfra-me/.github action to v1.13.0 #1956; source establishes a bounded server.connected barrier before prompting. Release
v0.127.0includes it (and deployedv0.129.0retains it); historically deployed again in V1 v0.129.0 after rollback (current V2 acceptance separate); live early-event acceptance remains separate. -
Agent-verified follow-up gate: chore(deps): update bfra-me/.github action to v1.13.0 #1956 historically deployed again in V1 v0.129.0 after rollback (current V2 acceptance separate); targeted early permission/idle/output event ordering regression remains. Eight successful short launches do not establish every early-event race.
-
Operator-reported requirement: agent#1923 memory-growth follow-up stays open pending Linux measurement and safe idle recycling, as recorded in the Action Required: Fix Renovate Configuration #1922 completion report; not closed by the stuck-run fixes.
-
Agent-verified: stale agent#1948 release-manifest/minor gate satisfied: refreshed PR merged and v0.126.0 published with Action Required: Fix Renovate Configuration #1950/Action Required: Fix Renovate Configuration #1954. Dashboard#729 is now closed and forward deployment verified; paired rollback and behavioral gates remain.
-
Agent-verified: agent#1958 closed via merged Action Required: Fix Renovate Configuration #1965;
v0.127.0includes latest-turn terminal stop evidence, repeated aborts and quarantine/watch. This is implementation/release evidence, historically deployed again in V1 v0.129.0 after rollback (current V2 acceptance separate), but not live containment acceptance. -
Operator-reported requirement: Action Required: Fix Renovate Configuration #1965 historically deployed again in V1 v0.129.0 after rollback (current V2 acceptance separate); verify cold/fresh-directory and post-dispose immediate abort cannot write after checkout handoff; exercise background-open quarantine/re-abort/latest-turn terminal confirmation and retain unsaved-child-notice residual. Ordinary cancel is not containment proof.
-
Agent-verified: historical infra#1705/Action Required: Fix Renovate Configuration #1711/Action Required: Fix Renovate Configuration #1718 pins/restoration retained; infra#1716 records .78. Current main/runtime is v0.130.4 V2, latest reconvergence via infra#1752/router41344463545, not the earlier V1 pair.
-
Operator-reported: October 30 eight-launch acceptance passed health/ready 1.14.0, launch/stream, ordinary cancel, checkout details, Once/Always confirmation, question render/submit/skip/cancel cleanup, collapsed waits, expired output, push.status=ready, logout/CSRF and 8000-unit limit. All eight terminal, none stuck. Always confirmation is UI acceptance, not run-scope permission isolation; no fault-injection/containment gate is superseded.
-
Operator-reported requirement: agent#1990 stronger Always isolation: implementation/release/deployment, confirmation and next-run re-prompt are now separately accepted. Same-run matching, siblings/owned descendants, partial matches, terminal/race cleanup and existing-grant disclosure/reset remain unmet; historical UI passes are not full isolation sign-off.
-
Operator-reported requirement: retain/test paired Gateway/workspace and Dashboard rollback by prior image digests. v0.125.3 cannot rebuild unchanged with its superseded Alpine curl pin. Forward deploy is not rollback acceptance; preserve migration snapshot restoration when applicable.
-
Operator-reported: October 30 post-rollback acceptance: the same session survived both V2 and rollback deploys (check14). Historical October18 survival retained; CSRF recovery/saved-cookie replay remain unchecked.
-
Agent-verified: historical infra#1712/agent#1988 V2 deployment41044404018 selected OpenCode2.2.0 and verified images/1GiB configuration. Superseded by rollback41077416543; this historical deployment checkbox is not V2 behavioral acceptance.
-
Agent-verified follow-up gate: V2 partial launch/provider/Once/question/ordinary-cancel/Discord-background acceptance now operator-reported below; broader persistence, fault/containment and Linux runtime parity remain unverified. Historical V1 passes do not close these.
-
Agent-verified follow-up gate: current V2 real-load canary at 1024MiB observes OOM kills, memory.max events and host available memory. V2→V1 restoration is now credited separately; memory safety remains unverified, with no automatic rollback.
-
Agent-verified: infra#1716 merged; main compose now records the deployed .78 digest. Audit gap closed independently of runtime acceptance.
-
Agent-verified: infra#1714/Action Required: Fix Renovate Configuration #1719/Action Required: Fix Renovate Configuration #1722 runbook delivery satisfied. Historical V1 check17 steps1,2,3,5 pass as operator-reported; step4 not automated and remaining live gates retained.
-
Agent-verified: merged infra#1718 and successful router41077416543 restore the compatible V1 Gateway/workspace pair with unchanged Dashboard .78/contract1.14.0. This proves rebuilt-pair restoration, not the remaining exact-digest/older-contract/snapshot rollback gate.
-
Operator-reported: October 30 post-rollback acceptance: seven terminal V1 runs, launch/stream/success, Once, fresh-run re-prompt/Reject (check9.3), Submit/Skip, ordinary Cancel with "Cancelled"/"Run stopped.", push ready. Always was not exercised; no containment/fault-injection acceptance inferred.
-
Operator-reported: October 30 post-rollback acceptance: expanded labels "Waiting on a background task" and "Confirming it has finished"; collapsed card hides reason and shows Running; re-expansion restores the label.
-
Operator-reported: V2 naturally failed around9s with provider-auth-unavailable/401 during the reported four-hour outage. agent#1992's existing Linux reproduction corroborates empty fresh-spawn credentials; this originally established termination only. October31 Check16.4 separately accepts the persisted auth-failure/reloaded-summary label, not quota or live SSE.
-
Operator-reported: October31 run6c171042 closes the prior in-place appearance gate (check17 step1): continuously expanded card, background label within6s and confirming label within0.1s of frames, no raw value. Wire background+73s → confirming+142s → cleared+149s → succeeded+149.3s; step5 terminal/summary absence reconfirmed. Together with the prior three runs, steps1,2,3,5 pass; not an independent authenticated replay.
-
Operator-reported: Check17 automated scope complete across four L9 runs: steps1,2,3,5 pass; step4 not automated; step6 rare reasons not observed. This records scope/disposition, not a live reconnect pass.
-
Agent-verified: released Dashboard
.78web/src/operator/wait-reason-label.test.tscontains the named reconnect/clearing/replayed-running regression; inspected source, not executed in this run. -
Operator-reported requirement: actual SSE loss/reconnect clears stale reason and recovers current state. Retained explicitly as live-unverified/not automated; offline mode left the stream connected. Test-source coverage does not demonstrate a production disconnect.
-
Operator-reported requirement: exercise rare awaiting-reply/agent-working values. Neither occurred in the four check17 L9 runs; these are opportunistic observations under step6, not a forced-trigger requirement or a pass; precedence remains separately unchecked above.
-
Operator-reported requirement: unknown waitReason values behave as absent detail without discarding a valid frame/run. Terminal/reload and summary-absence passes do not prove this tolerance.
-
Agent-verified follow-up gate: after delivered agent#1993/v0.130.1, independently verify credential activation across two fresh spawns, legacy-file-only credentials, credential-free clone-only boot and authenticated provider headers; delivery alone does not close these runtime requirements.
-
Agent-verified: infra#1720 catalog allowlist merged/deployed; historical router41125077031 logs catalog GET200. V1 models.dev compatibility retained; current v0.130.4 disables V2 model fetching. Catalog delivery is separate from credential/provider acceptance.
-
Agent-verified: infra#1719 merged the ~120s first-label/~180s failure window and launch-time observer procedure. The prior merge/timing gate is satisfied; real stream-loss/reconnect acceptance remains unchecked separately.
-
Agent-verified: infra#1722 merged02:25:43Z; main widens timing, observes from65s and marks check17.4 not automated with test reference. Historical operator timing73–91s/window45–75s retained. This closes documentation delivery only; actual stream-loss/reconnect remains unchecked.
-
Agent-verified follow-up gate: delivered credential/proxy fix#1993 still needs independent legacy-file-only/two-fresh-spawn, authenticated provider, credential non-disclosure and clone-only runtime acceptance; author-reported local tests are not live V2 sign-off.
-
Agent-verified: agent#1993 merged/agent#1992 closed, released v0.130.1 at02:16:55Z and deployed via infra#1723/router41160125884; release/deployment subgate now satisfied. Fresh-spawn/provider/proxy/clone-only acceptance remains separately unchecked.
-
Agent-verified: infra#1723 merged and router41160125884 delivered v0.130.1/OpenCode2.2.0 with health/digest/1024MiB readback. V2 return delivery is complete; authenticated runtime acceptance is not inferred.
-
Agent-verified follow-up gate: agent#2004 is merged, released/deployed in v0.130.4 and Action Required: Fix Renovate Configuration #1990 closed. Confirmation/next-run re-prompt now accepted below; same-run matching, covered siblings/owned descendants, partial matches, teardown/races and old-grant reset/disclosure remain unmet.
-
Agent-verified follow-up gate: current V2 authenticated ready parity and session-continuity/persistence recheck remain. Launch/provider/Once/Submit/Skip/ordinary Cancel and Discord mention/background subset are now accepted separately as operator-reported.
October31 v0.130.3 V2 acceptance and retained blockers
Source for all operator-reported entries in this section: pending mention6545749333. No unmet gate was removed; combined runtime gates above retain their stronger unmet remainder.
- Operator-reported: v0.130.3 six-launch recheck: smoke71fb6fdd streamed OK, Oncef005379e, Submit5631e3d0, Skip515bf08f to succeeded, ordinary Cancel4262df14 with Cancelled/Run stopped, push ready. Push readiness is not cold-start delivery; ordinary cancel is not injected-fault containment.
- Operator-reported: onv0.130.1 bound Discord channel, mention, Once, background-shell completion reply, dashboard cancel with confirmed stop/no hold, and subsequent mention accepted. Question/reconnect settlement remains separate.
- Operator-reported: readiness2.2.5, provider-store presence and sampled384/1024MiB,0 OOM/no failed/quarantined/provider-auth runs in the recheck. Not independently inspected; sustained load, host/cgroup memory and fresh-spawn/proxy checks remain unmet.
- Agent-verified: Historical infra#1735 merged; router41208892613 actually deployed Gateway/workspacev0.130.3, built OpenCode2.2.5/Systematic3.28.0 and verified both running digests, health1.14.0 and1024MiB/equal swap. Dashboard skipped/remains.78. This is stronger evidence than a successful router that skipped both services.
- Operator-reported requirement: fix/accept V2 Reject safely (agent#2001): permission denied without destructive action, normal usable terminal/denial semantics, no spurious repo quarantine/lease lockout and immediate next launch; actionable failure reason for lock contention. Reportedv0.130.1 failure retained; operator v0.130.4 still lists Reject unsafe, The fix is now merged via#2026, but unreleased/undeployed and no live retest pass is posted.
- Operator-reported requirement: restore command/path in approval-specific request/card (agent#2002). A run-output tool-call list cannot identify the requested action; Merged#2028 synthesizes detail from V2 resources (not raw metadata); release/deployment and live coordinator→SSE/pending/card detail with safe fallback remain acceptance work.
- Agent-verified: Always implementation#2004 merged14:06:42Z, closes#1990. Historical merge gate only; subsequently released/deployed in v0.130.4. Confirmation/next-run re-prompt are accepted below; within-run/sibling/descendant isolation and reset gates remain unmet.
- Operator-reported: V2 check17 steps1/5 mechanically show the populated label in place and clear it at terminal/reload. Historical V1 steps1/2/3/5 retain their stronger45–75s drain evidence.
- Operator-reported requirement: meaningful V2 waitReason/check17 steps2/3 (agent#2007 closed via merged#2031, unreleased/undeployed): no status frame during+0.1–140s background work, awaiting-background-task only5.6s at end, similar5.5s flash on ordinary runs and no confirming-completion. Current evidence cannot demonstrate background-drain semantics or exercise steps2/3. Do not mark them passed or waive them; actual reconnect, precedence/unknown values and rare reasons remain separate unmet gates.
October31 v0.130.4 update — bounded Always acceptance
Source: operator report6547863042. No unmet gate removed; the prior combined Always gate remains unchecked for its stronger remainder.
- Agent-verified: agent#2004 shipped in v0.130.4; infra#1740 merged and router41228975081 deployed it by18:31:12Z with both running image digests, health1.14.0 and1024MiB/equal swap verified. OpenCode2.2.5 selected in build logs. Main Gateway pin remains v0.130.4; latest release is now v0.133.0. Dashboard.78 unchanged. Latest router41429565194 skipped both.
- Operator-reported: v0.130.4 Always + Confirm always on b9b9a5b8 succeeded; next same-repo run1d287ff0 requested approval again, Once succeeded. Accept confirmation and next-run re-prompt only.
- Operator-reported requirement: later matching request in the same run skips the prompt. The posted trigger raised only one request per run, so this is explicitly unobserved; sibling/owned-descendant, partial-match, terminal/race and old-grant reset/disclosure gates above remain.
- Operator-reported: current readyz2.2.5, provider-store presence,0 OOM and unchanged trusted proxies/:9300 firewall/CA. These observations were not independently replayed; sustained load, host/cgroup memory and credential/proxy regression gates remain unchecked.
- Agent-verified: infra#1741 merged October31 at20:41:38Z; main manual check9.5 and automated L4 restore Always acceptance and the next-run Once probe. This closes the previously unmet documentation-delivery gate only. Same-run matching remains explicitly unobserved; Reject L5 remains skipped on V2.
- Operator-reported requirement: Reject#2001 remains unsafe, approval-specific command#2002 remains absent (empty Tool action region), and meaningful V2 waitReason#2007 remains unaccepted. All three implementations are now closed via merged#2026/Action Required: Fix Renovate Configuration #2028/Action Required: Fix Renovate Configuration #2031; none is released/deployed. The October31 production report remains the latest live evidence; no new pass or issue comment is inferred.
November1 historical reconciliation
- Agent-verified: the November1 check found release v0.131.0 ahead of production v0.130.4, router41307433329 skipped both services, and infra#1741 runbooks delivered. These were point-in-time findings, superseded for latest release/router/reconvergence by the November2 evidence below. Runtime acceptance was not inferred.
November2 implementation closure, retained production gates
- Agent-verified: agent#2001/Action Required: Fix Renovate Configuration #2002/Action Required: Fix Renovate Configuration #2007 are closed through merged#2026/Action Required: Fix Renovate Configuration #2028/Action Required: Fix Renovate Configuration #2031 (November2 at08:29:43Z,09:56:51Z,10:50:51Z respectively). Inspected merged diffs: nonempty Reject message with pending-sibling settlement; resource-derived approval commands/paths and truncation fail-closed handling; pre-root background status and quiet/unreadable-directory confirmation. Implementation subgates are satisfied; no existing unmet production gate removed.
- Agent-verified follow-up gate: release and promote these three fixes as a compatible Gateway/workspace pair. Latest v0.133.0 predates them, and release-to-merge comparisons show each merge has commits absent from that tag. Production remains v0.130.4; neither a closed issue nor a published Action release proves Gateway delivery.
- Operator-reported requirement: after promotion, repeat Reject denial/continued turn, no suspended claim or spurious quarantine/lease lockout, sibling settlement without affecting new asks, and immediate usable next launch. Preserve genuine shutdown quarantine and the actionable admission-failure requirement.
- Agent-verified follow-up gate: after promotion, verify all shell/path resources appear on SSE/pending/web/Discord approval surfaces with bounds and no log disclosure. Truncated detail must remain reject-only: no Once/Always, stale/forged approve or run-grant bypass; Discord Action over1024 characters must post a bounded deny-only card. These fail-closed boundaries are present in merged#2028, not production acceptance.
- Operator-reported requirement: after promotion, repeat the live L9/background and plain OK/foreground controls for#2031, distinguishing real owned work from completion confirmation and terminal clearing while preserving the full safety window. Existing precedence, real reconnect, unknown and opportunistic rare-reason gates remain separately unmet. PR-reported local/real-binary results were not independently executed here.
- Agent-verified: infra#1752/router41344463545 is the latest actual Gateway deployment, completing November1 at20:49Z, still v0.130.4/OpenCode2.2.5/Systematic3.28.0 with both running digests, health1.14.0 and1024MiB/equal swap verified. All21 subsequent successful routers since41239906077 were inspected; no newer Gateway or Dashboard deployment was found. Latest successful router41429565194 skips both. Latest Dashboard release remains2026.10.78 and public health1.14.0. No new operator acceptance was posted; all prior version-scoped passes and unmet gates remain.
Metadata
Metadata
Assignees
Labels
Projects
- StatusShow more project fieldsIn Progress
Activity
fro-bot commentedon Jun 17, 2026
This isn't a bug to reproduce—it's a cross-repo coordination spine. Triage here means verifying the dependency graph is wired correctly and the state claims hold. They do.
State verification
MERGED2026-06-17T00:52Z, ~30 min before this issue opened. Title confirms scope: "prepare web operator surface spine." The Phase B foundation slice you describe (runtime acceptssurface: 'web', stable GitHub numeric IDs + login/session correlation, approval spine ready for a future web transport, no live routes yet) matches a merged foundation, not a claim. Good.OPEN. Still the canonical agent-side home for the inbound control surface + operator web auth. Correct parent.docs/plans/2026-06-15-002-feat-gateway-web-operator-control-surface-plan.mdpresent (~59KB). The dependency matrix (Units 2–8) traces to a real artifact, not a sketch.Cross-repo links — all six exist, confirmed
The "related issues to track" in the body are live. Resolving them so this issue actually links the surface instead of describing it:
Dashboard (
fro-bot/dashboard):Infra (
marcusrbrown/infra):Dependency matrix — current gating reality
The matrix is a chain rooted at agent units. Mapping the unlock edges to the downstream issues so the critical path is visible:
Critical-path read: Unit 2 and Unit 3 are the true gate. marcusrbrown/infra#579 (topology) needs Unit 2's listener shape; marcusrbrown/infra#580 + fro-bot/dashboard#24 both need Unit 3's auth/config contract. Until those land, fro-bot/dashboard#25/fro-bot/dashboard#26 stay behind mocks—which is exactly where they're scoped right now. Nothing downstream is prematurely unblocked. The graph is honest.
Risk that needs a guardrail, not just visibility
Two of your listed risks are the ones most likely to silently rot the rollout:
/v1/announceHMAC route (#671 lineage) must stay a distinct trust boundary from browser operator control. This is the single most important invariant in Gateway inbound control surface + operator web auth (the web-command spine) agent#907's hard constraints: web launch must route through the same fail-closed approval gate and must not become a higher-privilege bypass. Keep that assertion attached to Unit 5/Unit 6, not buried here.Proposed next steps
tracking/epiclabel exists in this repo yet—agent: workingis the only workflow label. Recommend adding atrackinglabel so this and future cross-repo coordination issues are queryable. I won't create labels unprompted.- [ ]items referencing each issue number) so closure state renders automatically instead of requiring a human to re-edit prose.No implementation happens from this issue, per its own acceptance criteria. This is a map. The map currently matches the territory.
Run Summary
marcusrbrown commentedon Jun 17, 2026
@fro-bot tracker bootstrap complete.
Project:
Tracked items added:
Current automation direction:
fro-bot commentedon Jun 17, 2026
Tracker spine confirmed. Project users/fro-bot/projects/1 now holds all nine items, and I just re-verified the territory the map points at:
MERGED2026-06-17T00:52ZOPENOPENOPENNothing has moved since the foundation merged. No Phase B unit beyond the spine has landed (the only other gateway-operator PR, #915, was a closed brainstorm doc). So the current readiness state is exactly: foundation merged, zero live routes, eight downstream issues all blocked. That's the honest baseline the tracker should start from.
On the automation direction
The three rules you set are the right shape. One sharpening on each:
1. Scheduled/manual tracker → reusable workflow. Fine. But give the scheduled run a no-op exit when nothing changed. A daily tracker that posts "still blocked on Unit 2/3" every 24h is noise that trains people to ignore it. Which leads directly to —
2. "Post comments only when meaningful readiness evidence changes." This is the load-bearing rule, and "meaningful" needs a definition or it'll rot into either spam or silence. Pin it to state transitions on the gating edges, not prose drift:
Field updates are free; comments cost attention. Spend comments only on edge transitions.
3. Daily org-oversight prompt checks the tracker. Good, but have it read project item state, not this issue's comment history. The project is now the source of truth for closure; the comment thread is the narrative. Don't let the daily prompt re-derive status by parsing prose — that's the manual-matrix failure mode wearing a cron disguise.
The gate hasn't changed
Unit 3 (OAuth/session/CSRF/allowlist) is still the widest unlock and the security-critical boundary fro-bot/agent#907 flagged as the genuinely hard part — infra#580 and dashboard#24 both wait on it. Sequence it ahead of 4–7. And the single decision most likely to silently break prod is still the same-origin trust boundary: keep it pinned in infra#581 and let dashboard#24 reference it, not re-decide it.
Hold acceptance criterion #3 — rollout is not complete until Unit 8 smoke + live dashboard/infra integration verify. Foundation merged is not rollout shipped. The tracker's job now is to keep that distinction from blurring as units land.
Map's wired. The daemon can watch the edges from here.
Run Summary
fro-bot commentedon Jun 17, 2026
@fro-bot tracker sweep — no drift. Edges held since the last status.
What I checked for, what moved: No Agent unit (2–8) merged — the only Phase B merge remains the #929 spine, already acknowledged. Activity in the three repos since last sweep is dependency bumps, CI/release tuning, and branding chores (agent#926/#928, dashboard#6/#7/#18/#19/#21/#22/#23/#27, infra#572–#578). None touch a gateway-operator route, none close a downstream issue, none land the infra#581 same-origin hosting decision.
No tracked issue closed. No live (non-mock) route shipped. The hosting decision still sits unmade in infra#581 — still the widest single unlock.
Project fields on users/fro-bot/projects/1 already match this matrix; nothing to re-write. No tracked-issue comments posted — no issue-specific transition evidence to report.
Baseline stands: foundation merged, zero live routes, eight downstream issues blocked. The daemon's still watching the edges. Nothing crossed.
Run Summary
fro-bot commentedon Jun 17, 2026
@fro-bot tracker sweep — one edge crossed. A gate transitioned since the last status.
Transition
fro-bot/dashboard#24 → CLOSED (COMPLETED) 2026-06-17T06:15:30Z, via dashboard PR #29.
This is the same-origin Gateway operator control-surface plan landing — not a live route. The merged plan (
docs/plans/2026-06-17-001-feat-gateway-operator-control-surface-plan.md) pins:/operator/*contractscheduletrigger to Renovate workflow #26No production Gateway calls were introduced. This closes the planning obligation, not an integration. The work it unblocks — the typed API client (#25) and mock UI skeleton (#26) — is contract/mock scoped and still gated behind Agent Units 4–6 for anything live.
What this does and does not move
The plan also documents the same-origin trust boundary that infra#581 owns the decision for. Worth being precise: dashboard#24 references and consumes that boundary from the dashboard side; it does not make the hosting decision. infra#581 stays open and stays the widest single unlock. The map says: dashboard now knows what shape it's building toward, but infra still has to choose where it lives.
Current matrix
Project users/fro-bot/projects/1 already carries #24 as
Done; fields match this matrix, nothing to re-write. No Agent unit (2–8) merged — the #929 spine is still the only Phase B merge. No live route shipped.Baseline shifts by exactly one: foundation merged, zero live routes, dashboard planning closed, seven downstream issues still open. Acceptance criterion #3 holds — a closed plan is not a shipped rollout. The daemon logged the edge and went back to watching.
Run Summary
marcusrbrown commentedon Jun 17, 2026
@fro-bot tracker sweep — Agent Unit 2 crossed.
Transition
fro-bot/agent#931 → MERGED (COMPLETED) 2026-06-17T06:20:38Z, merge commit
198905b57545902d82fe0668fc7daa3cf3d339d4.This is the Gateway operator listener/topology slice landing. It adds the opt-in operator listener skeleton, keeps it disabled by default, binds it only to explicit gateway-net IPv4 config, rejects hostnames/all-interface/loopback/sandbox-net/IPv6 binds, keeps the announce and operator surfaces pinned separately, and exposes no privileged browser routes yet.
Readiness evidence:
3fccb2e1b29f9d5b6226332771972481af3e8baeAPPROVED, verdictPASSWhat this moves
Unit 2 was the gate for the infra topology work. That edge is now crossed: marcusrbrown/infra#579 is no longer blocked on agent code shape and can proceed against the listener contract from fro-bot/agent#931.
Unit 3 is now the next agent-side gate and the right next implementation target. The operator listener exists, but it has only
GET /operator/health; auth/session/CSRF/allowlist are not present yet. That means anything needing real browser operator auth remains Unit-3-gated.Current matrix
Unit 3 readiness
Agent is ready to start Unit 3: OAuth/session/CSRF/allowlist/audit seam.
The plan dependency is satisfied because fro-bot/agent#931 delivered:
Unit 3 should keep the same trust-boundary posture: GitHub human auth only, opaque server-side sessions,
__Host-cookie invariants, origin + CSRF checks before mutating JSON routes, file-backed operator allowlist, stable GitHub numeric IDs for audit, and no bearer/API callers in v1.Dependent-project status
/v1/announcethrough the browser operator trust boundary.scheduletrigger to Renovate workflow #26 can continue mock/contract UI work, but live Gateway calls stay blocked until Units 4–6 expose run observation, launch, and approvals.Baseline is now: foundation merged, Unit 2 listener/topology merged, zero privileged live routes, dashboard planning closed, infra topology unblocked, Unit 3 is the next agent gate.
fro-bot commentedon Jun 17, 2026
Edge confirmed. I re-verified the territory before logging it:
MERGED2026-06-17T06:20:38Z, merge commit198905b57545902d82fe0668fc7daa3cf3d339d4. Title "feat(gateway): add operator listener topology." Matches the transition you reported — listener/topology slice, not a privileged route.OPEN, correctly unblocked (not closed). Ready to proceed against the feat(gateway): add operator listener topology agent#931 listener contract.OPEN, still blocked on Unit 3.CLOSED, planning done, holds.The distinction that matters now
Unit 2 crossing changes infra#579 from blocked to ready — it does not change it to done, and the gap between those two is where this rollout is most likely to bite. fro-bot/agent#931 shipped a listener that binds IPv4-only, rejects loopback/all-interface/IPv6/sandbox-net, and keeps announce and operator surfaces pinned apart. That's a clean contract for the reverse proxy to target. But the proxy work inherits two invariants that have to be built in from the first commit, not retrofitted:
/v1/announceHMAC distinct from operator control inside the gateway. The reverse proxy must not collapse that distinction by routing announce through the browser operator trust boundary. That's a topology assertion infra#579 owns from day one.Unit 3 is the gate, and it's the hard one
The next agent target is correct: OAuth/session/CSRF/allowlist/audit. fro-bot/agent#931 satisfied the structural preconditions — separate listener lifecycle, fail-closed config, pre-auth guards, no-oracle helpers, the rate-limit contract for future authenticated routes. So Unit 3 starts from a real seam, not a green field.
Unit 3 is also the widest unlock left: it gates infra#580 (secret wiring) and the live side of dashboard#25/#26. Keep the trust-boundary posture fro-bot/agent#907 flagged as the genuinely hard part — GitHub human auth only, opaque server-side sessions,
__Host-cookie invariants, origin + CSRF before any mutating JSON route, file-backed allowlist, stable numeric IDs for audit, no bearer callers in v1. That posture is the difference between an operator surface and a privilege-escalation footgun.infra#581 stays the source of truth for the same-origin hosting decision — still unmade, still the one decision that, once it drifts, fails closed in prod. dashboard#24 consumed that boundary on paper; it didn't make it.
Baseline
Foundation merged → Unit 2 listener/topology merged → zero privileged live routes → dashboard planning closed → infra topology unblocked → Unit 3 is the next agent gate.
Acceptance criterion #3 still holds: an unblocked topology issue is not a shipped rollout. The daemon logged the edge and went back to watching. Two crossed, six to go.
Run Summary
323 remaining items
fro-bot commentedon Oct 30, 2026
@fro-bot Contract 1.14.0 rollout accepted; acceptance remains partial.
Responding to 6520551685:
Run Summary
fro-bot commentedon Oct 30, 2026
@fro-bot Deployment advanced to Gateway v0.130.0 / Dashboard .78; contract remains 1.14.0.
Run Summary
marcusrbrown commentedon Oct 30, 2026
@fro-bot OpenCode V2 rolled back to V1 after a 4-hour outage; check 17 is partly verified on the live pair.
v0.130.0with the OpenCode V2 workspace at 11:08Z (router run 41044404018). From then on, every run failed about 9 s in withprovider-auth-unavailable. The V2 server's per-spawn credential store was empty because the provisionedauth.jsonwas never imported, so every model call got a 401. Filed as agent#1992. V2 also fetches its catalog frommodels.opencode.ai, which the egress allowlist blocks; I'm allowlisting it in infra#1720 ahead of V2's return.v0.129.0(V1) at about 15:10Z (router run 41077416543). Health reports1.14.0with dashboard2026.10.78, and the digests and the 1 GiB workspace limit are verified. The Renovate ceiling is back to<0.130.0.succeeded; Once approval passes; a fresh run prompts again and Reject works (check 9.3); a question can be answered with Submit or Skip; Cancel shows "Cancelled" / "Run stopped."; push isready; the session survived both deploys (check 14). Always wasn't exercised (agent#1990).225892d9,7029bbeb,b5d03202on fro-bot/agent:awaiting-background-task(first seen about 85–90 s after launch) →confirming-completion(about 15 s) → cleared →succeeded./operator/runsentries never carrywaitReason.awaiting-reply,agent-working) showed up.fro-bot commentedon Oct 30, 2026
@fro-bot Production is back on Gateway v0.129.0 / OpenCode V1 + Dashboard .78; contract 1.14.0. Rollout remains blocked.
Responding only to 6528138598.
Verified / accepted
Still flagged
Changed
Rewrote current state, open items, the full Project-derived matrix, risks and acceptance. Checked only supported restoration/audit/session/waitReason subgates; retained stronger unmet gates explicitly. Updated 26 existing Project items and added agent#1992 + infra#1718/#1719/#1720, bringing Project1 to 74 items. #3512 stays In Progress / blocked; V2 evaluation now names its blockers. No additional tracked-issue comment was needed: #1992 already acknowledges the reproduction.
Run Summary
marcusrbrown commentedon Oct 31, 2026
@fro-bot Check 17 step 1 now passes. Check 17 is complete except step 4.
6c171042-d259-47f9-a15c-537744d61e40(fro-bot/agent, gateway v0.129.0 V1, dashboard 2026.10.78, launched 2026-10-31T01:41:38Z,succeeded). A frame observer was attached from launch and the card stayed expanded the whole time. Frames:running→awaiting-background-taskat +73 s →confirming-completionat +142 s → no reason at +149 s →succeeded0.3 s later.waitReason.225892d9,7029bbeb,b5d03202,6c171042):fro-bot commentedon Oct 31, 2026
@fro-bot Check 17 step 1 accepted as operator-reported; rollout remains In Progress / blocked.
Responding only to mention 6537477455, fetched by ID.
Accepted / verified
6c171042: accepted the continuously expanded-card observation, background/confirming labels within 6s/0.1s of their frames, no raw values, clearing and terminal/list absence. Across four L9 runs, wire order and steps 1, 2, 3 and 5 pass. These are your posted results, not an independent authenticated replay.models.opencode.ai/api.json→ 200 OK. Checked the catalog gate separately from provider acceptance. infra#1722 remains open; accepted the reported 73–91s first reason/45–75s window and tracked its wording correction.Still flagged
“Complete except step 4” applies to the exercised steps 1–5. Step 4 remains inconclusive until SSE actually disconnects; step 6 rare reasons remain unobserved/opportunistic. Approval/question precedence and unknown-value tolerance remain unchecked. Neither catalog success nor the credential-fix merge establishes live V2 provider acceptance. Existing policy, Always, containment/reconciliation, device/security and older paired-rollback gates remain.
Changed
Refreshed current state, open work, the full dependency matrix and acceptance. Checked the supported in-place-label, #1719 merge and catalog subgates; retained stronger requirements and added #1722 timing/#1993 delivery gates. Updated 11 existing Project items, added agent#1993 + infra#1722 (76 items), and reconciled status/readiness/gate fields. #1992/#1993 are Done / waiting; #1719/#1720 Done / done. No unmet gate was silently removed.
Run Summary
marcusrbrown commentedon Oct 31, 2026
@fro-bot Check 16 step 4 (provider failure reason) passes, checked without a new launch. Check 17 step 4 is now marked not automatable.
2e528d35-0d64-4b07-b0d9-2a27fb103a62(fro-bot/agent), which failed during the V2 outage on 2026-10-30. Its list entry hasstatus: failed,failureKind: session-error,providerFailureReason: provider-auth-unavailable.FAILEDbadge, above the repo name. The run's output has expired, so the card body shows "Output no longer available."reload), the same card reopens from the URL hash with identical text.f2b5cf86,125bae9c, marcusrbrown/infra) show the same label.web/src/operator/wait-reason-label.test.ts("a reconnecting connection clears a painted label, and a replayed running frame shows it again"). With that, check 17 is complete across the four L9 runs: steps 1, 2, 3 and 5 pass, step 4 isn't automated, and neither rare reason appeared.fro-bot commentedon Oct 31, 2026
@fro-bot Check 16.4 accepted as operator-reported; Check 17's automated scope is complete. Rollout remains In Progress / blocked.
Responding only to mention 6537636320, fetched by ID.
Accepted
failed/session-error/provider-auth-unavailablesummary, expanded Model provider unavailable label, identical real-reload/hash reopening and accessible tile reason on2e528d35; the other two outage runs corroborate it. Expired output does not invalidate this result. This closes the demonstrated summary/reload subgate without a new launch.Flagged
Updated / verified
Refreshed Current state, Still open, the entire dependency matrix and acceptance list, and six Project gate descriptions. Rechecked all 76 Project-derived issue/PR states; no missing dependency found. Existing status/readiness values remain appropriate. No unmet gate was silently removed.
Latest successful runs remain Gateway 38698076821, Dashboard 41040783946, router 41125077031. Router logs verify v0.129.0 V1, image digests and 1024 MiB/equal swap, with Dashboard skipped. Public health reports 1.14.0; latest releases remain v0.130.0 / .78. Credential fix agent#1993 is merged but unreleased/undeployed; V2 return remains blocked.
Run Summary
fro-bot commentedon Oct 31, 2026
@fro-bot Tracker reconciled: V2 is deployed again; rollout remains In Progress / blocked.
Historical V1/check16.4 results retain their recorded scope. Current V2 provider/fresh-spawn/clone-only, approval/cancel/background/persistence, memory and remaining security/recovery gates stay open. No unmet gate was removed.
Run Summary
marcusrbrown commentedon Oct 31, 2026
@fro-bot OpenCode V2 is back in production on gateway
v0.130.3(OpenCode 2.2.5). The recheck passes except for Reject, which is unsafe, and check 17, which V2 can't demonstrate.v0.130.1after agent#1992 was fixed. infra#1735 then moved tov0.130.3(router run 41208892613, 14:22Z). Contract1.14.0, dashboard2026.10.78./readyzreportsopencodeVersion 2.2.5, and Systematic is 3.28.0.anthropicandopenai.v0.130.3(6 launches). The launch smoke check passed: run71fb6fddstreamed "OK".f005379e).5631e3d0, "You chose A.").515bf08f, the run continued tosucceeded).4262df14, "Cancelled" / "Run stopped.").ready.v0.130.1): plain mention, approval Once, background shell (reply after the shell finished), cancel from the dashboard (stop confirmed, no hold), and a new mention accepted afterwards. All pass.v0.130.1a Reject aborted the session, failed the run and quarantined the repo for about 20 minutes (agent#2001).v0.130.3doesn't change this, so I didn't re-test it.v0.130.3doesn't change this. The card lists the run's tool calls (touch …,rm …), but those come from the output, not the approval.acde2e35on fro-bot/agent sent no status frame between +0.1 s and +140 s, only heartbeats, while the background subagent ran.awaiting-background-taskappeared for 5.6 s, followed bysucceeded.confirming-completionnever appeared.awaiting-background-taskflash just before finishing. So on V2 the reason doesn't distinguish a background drain.v0.129.0) the reason covered the 45–75 s drain correctly.fro-bot commentedon Oct 31, 2026
@fro-bot Accepted the partial V2 recheck; rollout remains In Progress / blocked.
Replying to 6545749333, fetched by ID before acting:
Verified / accepted
Corrections / retained gates
Updated
Run Summary
marcusrbrown commentedon Oct 31, 2026
@fro-bot Gateway is on
v0.130.4(OpenCode V2 2.2.5), and Always is fixed.v0.130.4(router run 41228975081, 18:31Z). The contract is still1.14.0, so the dashboard (2026.10.78) is unchanged./readyzreportsopencodeVersion 2.2.5.anthropicandopenai.:9300firewall rules and the CA are unchanged.b9b9a5b8(marcusrbrown/infra) used Always, then Confirm always, and succeeded.1d287ff0, prompted again. I approved it with Once and it succeeded.fro-bot commentedon Oct 31, 2026
@fro-bot Reconciled #3512 and Project 1 for mention6547863042.
v0.130.4includes Action Required: Fix Renovate Configuration #2004; merged infra#1740 and router41228975081 deployed it by18:31Z. Logs verify both image digests, OpenCode2.2.5 build selection, health1.14.0 and1024MiB/equal swap. Dashboard remains.78; public health is1.14.0. Latest router41229462814 skipped both services.Run Summary
fro-bot commentedon Nov 1, 2026
@fro-bot Updated #3512 and Project 1 for the release/deployment gap and merged Always runbooks.
.78, health1.14.0..78digest healthy.Run Summary
fro-bot commentedon Nov 2, 2026
@fro-bot Updated #3512 and Project 1: implementation closed; production acceptance still blocked.
Run Summary