Skip to content

WT-0f7d · WING-DEMO / WING-202 · deploy lane: cloud + desktop integration

Updated: 2026-08-08T22:00Z Status: IN PROGRESS — master green, PRs mid-gate, nothing mid-deploy

1. Goal

Every gated lane reaches prod (ww-team + qa + ww-yc + ww-spc pilots) and the desktop installer, verified at the SERVED artifact, with pilot invitation codes provably intact.

2. Where the work is

  • Deploy lane runs from the SHARED checkout C:\Users\fives\source\repos\WorkWingman, but every IMAGE builds from a throwaway pinned worktree at _deploy/ww-<sha> (ops/cloud-run/build-app-image.ps1).
  • No branch of my own. I land other lanes' work.

3. State — receipts

  • MASTER IS GREEN at cd661d86c, all 13 CI jobs. It was fully red this morning (20 backend failures + 8 red jobs). CI now runs on EVERY pushed branch (push: {}).
  • Cloud live: prod ww-team-00045-46r, qa, pilots release-20260807-t13, digest 651bace3…, bundle main-AJASOIVL.js on all three origins.
  • Pilot codes verified with the CURRENT verifier (d32dd9534): both pilots PASS, versions enabled and unchanged, session key readable, ceilings 1000.
  • Desktop installer built earlier at 86e4a8d80; NOT rebuilt since.

4. Next actions

  1. #42 (Recruiter Reactivation) — closest to mergeable, was MERGEABLE/UNSTABLE with queued checks.
  2. #41 (Warm Intro) — RED on mutation-gate (apply-vertical, break 90). Fix before merge.
  3. #46 (lab client + Live Run) — HELD, gate failed. See §5.
  4. Adblock branch wt/WT-429s/WING-429-structural @ 207812d1e — pushed, gate proven to fail (--known-blocked-probe → exit 1, names path AND rule). Needs a PR opened.
  5. After merges: pinned-worktree image → EnvLadder qa → VERIFY → prod (SEPARATE steps) → image-only pilot update → verify at served asset → pilot verifier before AND after.

5. Blockers

  • #46 held by a failed council gate. Duplicate concurrent live runs for one job (no duplicate guard; active-run lookup returns only the newest); the queue start path bypasses the referral checkpoint Documents enforces; launcher does not own its invariants. Owner: WT-a37c, fixing + re-gating on the NEW diff.
  • WING-458 — apply path has NO destination allowlist. OutboundNavigationPolicy's only callers are JobPageFetcher and RedirectChainAtsResolver; nothing at the browser boundary stops a real employer. MY RULING: does not block deploys — pre-existing, ships today, #46 does not widen it. Escalated to Andrew because exposure ≠ consent.
  • MUST REFUSE, not tasks: smoke-code redemption on pilots (reads a plaintext credential and POSTs it to a live surface); any prod authenticated click-through. Andrew's, always.
  • FLT-219 (PR visibility) reported work that I could NOT locate — treat as UNVERIFIED, not done.

6. Traps in this lane

  • NEVER chain deploy && promote: EnvLadder printed an error but the promote still ran, pushing the OLD digest. Run them as separate steps and read the first one's result.
  • --set-secrets REPLACES; only ever --update-secrets on pilots, then run the verifier.
  • Bundle hash unchanged is NOT a failed deploy — verify whether the commit touched frontend at all.
  • A grep of main-*.js proves nothing about a C#-only change; say UNVERIFIED instead.
  • Address peers by TAILSCALE IP (stable), never 10.0.0.x (DHCP). gaming=100.110.224.88, streaming=100.78.38.60. serve --host 0.0.0.0 FAILS on that binary (exit 1).
  • Worktree leases are real and live: commits are DENIED while another session holds one. Wait.
  • Installer TESTS against the real install path are destructive — they killed Andrew's app twice during a live demo. Installing (/S) is fine; testing against the real path is not.

7. Delegated / dispatched work

  • Cedric xhigh, WING-429 structural + WING-456 gate → _wt/ww-adblock-structural. PUSHED 207812d1e, 0 uncommitted, gate mutation-proven. READ. Needs a PR.
  • Cedric xhigh, WING-456 gate → _wt/ww-wing456-adblock-gate. STOPPED by me; work staged, then absorbed by the structural branch. Do not re-run.
  • Cedric xhigh, FLT-219 → _wt/fh-flt219. Reported done; worktree CLEAN and files not found. UNVERIFIED — investigate before re-dispatching.
  • Peer click-through on streaming with predeclared USAJOBS/Jooble predictions: KILLED, ZERO output, UNRUN. Not "pending results".

8. Decisions and why

  • Landing rule is HARD BLOCK until master is green, not "no new failures" — inside an identical failure set you cannot identify a new failure, so it degrades to "land anything".
  • Handoff files live on MASTER ONLY under E1; a branch copy conflicts every time master's refreshes.
  • WING-429 rescoped from "detect blocker, ask user to disable" to STRUCTURAL renaming. Andrew: asking users to disable an ad blocker makes the privacy-first promise look fake. The ask IS the defect.