Standing doctrine (from owner, 2026-06-12)
Forget gates — build doable, automatable alternatives every time. No fix may end as "wait for the owner" if an automated path exists.
Context
Task (for code agents — Devin/Cline/OpenHands/council)
- Verify whether
Workers Builds: aether goes green on main at/after b4bfdb4. If yes, the no-secrets lane is proven.
- If the bridge secrets lane is still red at that point, mount the billing + leads routes on the
aether worker (root wrangler.toml, deployed by Workers Builds): same KV STATE + D1 bindings already exist on aether, so the webhook → hashed-API-key flow and leads D1 writes can run there unchanged. Route: aether.a-to-mind.com/api/billing/* + /api/leads, and update the SPA contact/pricing POST target accordingly.
- Diagnose
Workers Builds: loxa — worker loxa is not in the repo's wrangler configs; find what repo/path Cloudflare maps it to, fix or disconnect it.
- Fix the dual
curator-jobs consumer: root (aether, dispatcher) and apps/bridge (executor) both declare [[queues.consumers]] on curator-jobs. CF allows one consumer per queue — bridge should own it per the file comments. Remove the consumer block from root.
Definition of done
- A green Workers Builds deploy of
aether from main, AND
https://bridge.a-to-mind.com/api/billing/webhook or https://aether.a-to-mind.com/api/billing/webhook live on current main code (verified by verify:billing once STRIPE_WEBHOOK_SECRET exists), AND
- exactly one
curator-jobs consumer.
Constraints
- PRs only, merge only on green CI. No secrets in code/issues. Canonical CF account
95745fedbea06314e24c27233033a37d.
Refs #117, #118.
Standing doctrine (from owner, 2026-06-12)
Forget gates — build doable, automatable alternatives every time. No fix may end as "wait for the owner" if an automated path exists.
Context
b4bfdb4) removed the wrangler config parse errors that made Workers Builds fail in ~1s.deploy-worker.ymllane still depends onCF_API_TOKEN/CF_ACCOUNT_IDrepo secrets that only the owner can mint.POST /api/billing/webhook,GET /api/billing/key,POST /api/leads— merged in Apex /api revival + revenue plumbing (billing, leads, proposal review, webhook hygiene) #111) lives inapps/bridge, which today only deploys via the secrets lane.Task (for code agents — Devin/Cline/OpenHands/council)
Workers Builds: aethergoes green on main at/afterb4bfdb4. If yes, the no-secrets lane is proven.aetherworker (root wrangler.toml, deployed by Workers Builds): same KVSTATE+ D1 bindings already exist onaether, so the webhook → hashed-API-key flow andleadsD1 writes can run there unchanged. Route:aether.a-to-mind.com/api/billing/*+/api/leads, and update the SPA contact/pricing POST target accordingly.Workers Builds: loxa— workerloxais not in the repo's wrangler configs; find what repo/path Cloudflare maps it to, fix or disconnect it.curator-jobsconsumer: root (aether, dispatcher) andapps/bridge(executor) both declare[[queues.consumers]]oncurator-jobs. CF allows one consumer per queue — bridge should own it per the file comments. Remove the consumer block from root.Definition of done
aetherfrom main, ANDhttps://bridge.a-to-mind.com/api/billing/webhookorhttps://aether.a-to-mind.com/api/billing/webhooklive on current main code (verified byverify:billingonceSTRIPE_WEBHOOK_SECRETexists), ANDcurator-jobsconsumer.Constraints
95745fedbea06314e24c27233033a37d.Refs #117, #118.