You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(serenity): opt-in async provisioning for the 3 remaining skip-mode call sites (LLMO-7352/LLMO-7418 Phase 4)
Extends the opt-in `async: true` contract (PR-C, #3246) to the last 3
ensureSubworkspace call sites that were still fully synchronous:
createBrandForOrg's bare-create (no semrushMarket) branch, and activate's
pending->active and bare-reactivation branches.
These 3 sites use ensureSubworkspace's `createReadiness: 'skip'` mode
(persist the workspace pointer immediately after a single create call,
without polling for settle) rather than 'poll' mode, so they never had the
in-request settle-poll latency/timeout problem PR-A/PR-B/PR-C fixed for the
other 2 sites. This is deliberate hardening for consistency and defense
against a slow/hanging single Semrush create call, not a fix for a
still-open incident — the original LLMO-7352 symptom is already closed by
PR-A alone, since any workspace pointer's first real use (e.g. adding a
market) always runs the now-fail-fast pollUntilCreated first.
- createBrandForOrg's bare-create branch mirrors its sibling hasSemrushMarket
branch exactly: async:true persists the row first, then hands off to
provision-workspace-job with no chained job (no project to create).
- activate's two skip-mode branches each mint a provisioning attempt and
chain to a new activate-brand-workspace-job, which does the one piece of
business logic the generic worker doesn't: flipping (or re-affirming) the
brand's status to active once the workspace is confirmed ready. One job
handler covers both branches; `wasPending` in its metadata distinguishes a
real pending->active transition (502 on save failure) from a no-op
reactivation re-affirm (207).
- Existing guardAgainstConcurrentProvisioning calls on the sync branches are
unchanged (still needed to protect a sync caller against a concurrent
async attempt from another endpoint).
Stacked on PR-C (#3246). 30 new unit tests; 954 passing overall, 0
regressions.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
0 commit comments