Lanes
One lane at a time — the goal, the critical path, and the current wave of blockers.
Approve: DevOps FoundationTo do · blockerNEEDS MATTHEW: staging STRIPE_WEBHOOK_SIGNING_SECRETBlocked · blockermain is RED — 8 unit tests failing on origin/main, so pnpm verify cannot gate any PRDone · blockerThe production account's data is 42 days stale — Analytics renders empty at any default windowBlocked · blockerMATTHEW: add db_url to the 1Password Supabase item — two RLS audits have never been runnableDone · blockerWire apps/api test suite into CIDoneWire Playwright specs into CIDoneWire verify:swift-parity into CIDoneEnable branch protection on mainBlockedVerify the staging environment is actually liveDoneWeb deploy workflow (manual trigger only)To doAPI deploy workflow (manual trigger only)To doAdd post-deploy smoke test to the deploy workflowsTo doWrite the rollback procedureTo doAdd Sentry to iOSTo doAdd Sentry to AndroidTo doConfigure uptime monitoringTo doSet the three missing staging secrets on tactile-api-stagingDonePlaywright is failing on main and producing no report — every run that gets a runner failsTo doPlaywright job must free port 3000 BEFORE its first suite — a watchdog-killed job leaks its server and fails every later runDoneAdd CHANGELOG.mdTo doAutomate release tagging on mainTo doFix stale Vercel references in the observability runbookDoneAdd apps/api typecheck to CIDoneClean the SAST baselineTo doFlip SAST to blockingTo doEdge function deploy workflow (manual trigger only)To doSupabase migration check in CITo doWrite the release procedureTo doConfigure Supabase log drainTo doCentralize Cloudflare Workers logsTo doReplace console.* with structured logging in apps/apiTo doTwo runners share one ~/.gradle — scope it per runner without losing the warm cacheTo doMATTHEW: CI capacity — one Mac, two runners, and a full Xcode build now runs on every pushTo doAuto-cancel queued CI runs whose head branch was deletedTo do
Wave
DevOps Foundation
Unblocked now — nothing waits on the surfaces. Wiring existing tests into CI, deploy automation, base observability.
TacTile › Launch TacTile › DevOps › DevOps Foundation
10/35 done25 open3 open blockers
Selected taskclear
Two runners share one ~/.gradle — scope it per runner without losing the warm cache
To doOwner · ait_e7bfca45
No dependencies in this wave — nothing gates it, and nothing waits on it.
Show the prompt
To doIn progressDoneBlockedPick a wave on the left · tap a task to expand it