Skip to content

chore(ci): remove non-blocking CUA mid-stream gate from publish workflow - #246

Merged
dzianisv merged 1 commit into
mainfrom
chore/remove-cua-mid-stream-gate
Nov 14, 2026
Merged

dzianisv merged 1 commit into
mainfrom
chore/remove-cua-mid-stream-gate

Conversation

@dzianisv

@dzianisv dzianisv commented Nov 14, 2026 •

Copy link
Copy Markdown
Owner

Verdict: STALE gate, not an app regression

Publish run 43572233118 (head e7385a3, tag v0.4.18) failed only on job cua-mid-stream ("streaming NOT proven, cycle 1/5") while the publish job succeeded.

  • The gate's run manifest shows both streaming-proof samples at text_length 0 with session status busy — the server produced zero text tokens in ~60s while still working.
  • The sampler reads the opencode server API, not the app, so the app's PR fix: SSE startup + liveness (#189, #186) #237 SSE changes cannot cause this.
  • The MODEL_CAPABLE probe (short prompt) passed minutes earlier on the same server/model (gpt-5.4).
  • The gate scenario has NEVER passed: the Nov 6 run was a deliberate CUA_FORCE_FAIL proof, and its cycles were empty.

Why removal, not adjustment

  • Den removed the sibling cua-smoke.yml on 2026-11-13 (commit e844493, "no credits to run it"); this job still spends gpt-5.4 credits on every manual dispatch.
  • The gate has been non-blocking since Den's 2026-11-06 decision (publish never had a needs: on it).
  • It never passed, so no signal is lost by removing it.

What this PR does

  • Deletes the entire cua-mid-stream job from .github/workflows/publish-play-store.yml (~240 lines), plus the now-dead cua_force_fail dispatch input.
  • Updates the three comments that described the gate (trigger block, job block, above publish) with a short removal note dated 2026-11-14.
  • scripts/android-cua-smoke.py is KEPT for local runs (--mid-stream-exit still works); one stale comment in it (referencing the removed cua_force_fail input) is corrected to the env-var form.
  • The publish job is unchanged apart from its leading comment: same steps, no needs: added or removed. YAML validated with yaml.safe_load; the workflow now has a single job, publish.

Revival recipe (if this coverage is wanted back)

  1. Fix the sampler: count reasoning parts as streaming evidence — it currently counts only type == "text" parts, so a model that streams reasoning first looks like zero output.
  2. Raise the 60s first-text wait (the server produced zero text tokens in ~60s while busy).
  3. Require a green baseline run of the gate standalone BEFORE re-adding it as a gate (it never passed, so there is no known-good baseline today).

DO NOT MERGE

Awaiting dispatcher/owner review. This PR only removes CI; it does not touch the Play rollout and publishes nothing.

@dzianisv

Copy link
Copy Markdown
Owner Author

Claim — Ember (reviewer + merger lead).

Task: review + merge PR #246, branch chore/remove-cua-mid-stream-gate, Work Log row "Review + merge PR #246: remove CUA mid-stream gate from publish workflow".

Scope: Stage 4 review of the workflow diff (publish job byte-identical, cua-mid-stream job + dead cua_force_fail input removed, script kept for local runs), then Stage 5 merge on a PASS verdict with checks green on the exact head, verified by SHA readback, then Stage 5.5 design/PRD sync. No release tag, no Play rollout change, nothing published.

Checked before claiming: PR is open, mergeable, head 8fadc3e; no prior claim comments or reviews on this PR.

@dzianisv

Copy link
Copy Markdown
Owner Author

Stage 4 review verdict: PASS — head 8fadc3e.

Method: claude-code-review (parallel compliance + bug passes, independent validation per finding), verified from the actual diff in a real checkout plus lead readback of the workflow files via the GitHub API. Acceptance criteria, one line each:

  1. Publish job byte-identical except its leading comment — PASS. Mechanical base-vs-head job-block diff: 378 vs 379 lines, the only change is the 2-line comment replaced by a 3-line 2026-11-14 note. Steps, env, runs-on identical; needs: None on both.
  2. Only cua-mid-stream job + dead cua_force_fail input removed — PASS. Diff is exactly 2 files: publish-play-store.yml +16/−250, scripts/android-cua-smoke.py +3/−3. Jobs [cua-mid-stream, publish] → [publish]; dispatch inputs [cua_force_fail, status, track, user_fraction] → [status, track, user_fraction].
  3. Three gate comments updated — PASS. Trigger block, job-block position, and publish leading comment each carry the NOTE (2026-11-14), STALE-gate verdict, and run 43572233118.
  4. Script kept, comment corrected — PASS. scripts/android-cua-smoke.py present at head (122,261 bytes); --mid-stream-exit flag untouched; only the stale cua_force_fail comment changed to the env-var form.
  5. YAML valid, single job — PASS. yaml.safe_load parses the head workflow; jobs == ['publish'].
  6. Test-count delta — 0. No test file is in the diff (only the workflow YAML and one script comment changed); test files 52 → 52, cases 370 → 370. No unit or mock test added.
  7. Bug pass — PASS, no defects. cua-mid-stream appears only in the three intentional removal notes; cua_force_fail appears nowhere in the head workflow; CUA_FORCE_FAIL survives only as the live env-var check in the kept script (intended for local runs); no AZURE_/OPENCODE_ leftovers in the head workflow; no other workflow consumes the script.

Filed note (validated, NOT a fail): scripts/android-cua-smoke.py:1877–1880 still says the per-cycle filename matches the upload step's logcat-cycle-*.txt glob in publish-play-store.yml — that glob lived in the removed job and no longer exists. Comment-only staleness; file-naming behavior unchanged, nothing consumes the glob now. Optional follow-up: reword to note the naming is kept for local-run consistency. Not a merge blocker.

Checks on this head: test, Typecheck and unit tests, build, Unsigned iOS Simulator build, Secret scan all SUCCESS; release + build-fdroid skipped (correct for a CI-only change). Ready for Stage 5 merge on this head.

@dzianisv
dzianisv merged commit 01a7b6b into main Nov 14, 2026
7 checks passed
@dzianisv

Copy link
Copy Markdown
Owner Author

Merged. Merge commit 01a7b6b (main head, read back via API), merged 2026-11-14T16:42:56Z. Stage 4 verdict PASS comment 6880871622 on head 8fadc3e; checks green on that exact head at merge time. The cua-mid-stream gate job and the dead cua_force_fail input are gone from publish-play-store.yml; scripts/android-cua-smoke.py is kept for local runs. No release tag created, no Play rollout change, nothing published. Stage 5.5 (design/PRD sync) follows.

@dzianisv

Copy link
Copy Markdown
Owner Author

Stage 5.5 — Design/PRD sync: DONE.

Task complete: Stage 4 PASS (comment 6880871622, head 8fadc3e), merged 01a7b6b, Stage 5.5 recorded here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant