Skip to content

promote: verified develop snapshot 89f673c618f to main (cold-start TTL + onboarding Bug B — final sync) - #15543

Merged
NubsCarson merged 29 commits into
mainfrom
promote/verified-89f673c618f
Jul 8, 2026
Merged

NubsCarson merged 29 commits into
mainfrom
promote/verified-89f673c618f

Conversation

@NubsCarson

Copy link
Copy Markdown
Member

Promotes verified develop snapshot 89f673c618f to main — 55 checks, 0 failures on the tip (cleanest snapshot today). Final sync of tonight's launch-hardening arc; brings main even with develop.

Carries (29 commits):

After merge: CF Deploy main→production (direct-wrangler bypass ready if the scheduler wedges again per #15503) → prod probe: cold-start spike gone (first-after-idle ≤ ~2s), embeddings+chat passthrough intact, onboarding create-during-blip returns 200 reuse.

Rollbacks: all constituent fixes independently revertible (TTL constant, route-scoped, plugin-scoped).

🤖 Generated with Claude Code

Shaw and others added 29 commits July 8, 2026 17:59
Co-authored-by: Shaw <shawgotbags@gmail.com>
Co-authored-by: Shaw <shawgotbags@gmail.com>
Co-authored-by: Shaw <shawgotbags@gmail.com>
…hetic-advisory

# Conflicts:
#	packages/app/scripts/ios-device-e2e.mjs
#	packages/app/scripts/lib/ios-device-e2e-lib.mjs
#	packages/app/scripts/lib/ios-device-e2e-lib.test.mjs
#	plugins/plugin-openai/__tests__/streamstructured-tool-input-delta.shape.test.ts
fix(ci): generate i18n data before hetzner reaper
…hetic-advisory

# Conflicts:
#	.github/workflows/hetzner-e2e-reaper.yml
… spike)

Measured on prod f6f91af tonight: the first message after >60s idle pays
preforward total=2959ms (auth=1684, mid=482, reserve=705) vs 109ms warm —
a 3-5.5s first-turn spike whose dominant term is the IAC entry expiring
between natural chat pauses. The IAC's primary freshness mechanism is
explicit confirmed-delete invalidation on every credential mutation
(revoke/update/ban/deactivate, all fail-closed per #13417); the TTL is
only the backstop for an invalidation that was never issued. 300s keeps
active conversations warm across gaps while bounding a lost-invalidation
window to the same 5 minutes org.data already accepts.
…of dead-ending 503 during a provisioning-worker outage

Native cloud onboarding provisioned+503'd for a user whose one healthy
agent needed no provisioning at all (#15516 Bug B). Two stacked defects:

- client: #15491 made the reuse pick running-only, so ANY transiently
  non-running row (starting/stopped/status churn during the very outage
  that 503s creates) fell through to a fresh create; the reuse branch's
  cold-boot wait had become unreachable dead code. The pick now prefers
  running, then falls back to the newest NON-TERMINAL row routed through
  waitForCloudAgentRunning (which kicks a resume and re-reads the fresh
  post-wake record — the correct guard against binding a stale pointer,
  preserving #15491's intent). A remembered preferAgentId is honored
  whenever non-terminal, so we never silently swap a user onto a
  different agent's conversations.
- server: POST /api/v1/eliza/agents ran the provisioning-worker health
  gate BEFORE createAgent's idempotent reuse, so a heartbeat gap 503'd
  even callers whose create would have been served by reuse (no job
  enqueued). The route now peeks reuse candidacy (read-only repository
  mirror of the guard predicate) and only gates a create that would
  genuinely enqueue; forceCreate always stays gated.

Repairs 3 pre-existing red tests in the mock-cloud connect suite (the
running-only pick broke the stopped-agent reuse cases on develop) and
adds coverage: remembered-agent wake, all-terminal create fall-through,
and route-level gate-vs-reuse ordering (reuse-skips-gate, no-agent
still 503s fail-closed, forceCreate never skips).

Fixes #15516 (Bug B)
…auth-test

fix(ci): make credential tunnel route test auth explicit
…lable

fix(ci): skip hetzner reaper on rejected token
fix(ci): repair scenario-pr e2e harness resolution
perf(cloud): raise inference auth-context TTL 60s → 300s — kills the 3-5.5s first-message-after-idle spike
…hetic-advisory

# Conflicts:
#	.github/workflows/hetzner-e2e.yml
#	packages/app-core/src/api/credential-tunnel-routes.test.ts
fix(cloud): reuse the existing agent in first-run onboarding instead of 503 dead-end during worker outage
@NubsCarson
NubsCarson merged commit 6161f74 into main Jul 8, 2026
102 of 137 checks passed
@NubsCarson
NubsCarson deleted the promote/verified-89f673c618f branch July 8, 2026 23:11
@NubsCarson NubsCarson moved this from In progress to Done in Launch QA — Eliza app + Cloud (#13406) Jul 8, 2026
@claude

claude Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error —— View job


I'll analyze this and get back to you.

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

❌ PR title does not match the required pattern. Please use one of these formats:

  • 'type: description' (e.g., 'feat: add new feature')
  • 'type(scope): description' (e.g., 'chore(core): update dependencies')
    Valid types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, release

@NubsCarson

Copy link
Copy Markdown
Member Author

[vps-backend] NIGHT CLOSEOUT — full sync achieved, everything shipped/tested/deployed ✅

Prod (api.elizacloud.ai + both Pages) = main = tonight's full develop arc (6161f74337c). Second promote #15543 (55 checks / 0 failures) deployed via the direct path (CI 0-jobs wedge again — #15503 pattern; the #15505 watchdog is now live on prod so next time should self-heal).

Verified live on prod just now:

Ledger of the night (all merged + deployed): #15508 mid-reads ∥ (Shaw) · #15520 embeddings passthrough · #15521 placement staging-soak · #15524 reply-first streaming · #15526/#15525/#15532 onboarding cleanup ([codex-ui]) · #15541 Bug B both halves ([cloud-agent]; my #15542 closed as superseded — good race to lose) · #15538 cold-start TTL · #15511 pair CORS. Prod chat: 5.3s → ~1.0s warm, ~2.5s after-idle, streaming real.

Open + owned (nothing unowned): #15539 [cloud-agent] · #15545 [codex-ui] · #15540 routed to CI/native lane (was unowned — needs an owner with NDK context) · #15513 placement prod-leg (mine, after staging soak) · #15518 decision posted (keep shared bridge; dedicated provision still ~40s).

Team worked like a team tonight. 🫡

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

Projects

Development

Successfully merging this pull request may close these issues.

2 participants