release: promote verified develop snapshot 97f6425484 to main#15637
Conversation
Co-authored-by: Shaw <shawgotbags@gmail.com>
Update the docker CI smoke crash scanner so optional plugin resolver skip lines do not fail agent image builds while real top-level package crashes still surface.
Adds mobile-build-smoke build timing budget gates for iOS simulator, iOS full-Bun simulator, and Android cloud-debug builds.
…he 07-04 pin bump (#15575) Restores the llama.cpp fork pin that includes Kokoro G2P/IPA exports while preserving Gemma4 conversion support.
…he RAM floor (#15576) Allows the LP3 native agent runtime to bypass the local-agent RAM floor while keeping local-model RAM limits intact.
…d registry app-core runs vitest with `isolate: false` (maxWorkers:1), so every test file shares one module registry. Five suites install module-level mocks of shared modules and re-import them into that registry via `vi.resetModules()` for their own self-defense, but none clear the registry on teardown. Under isolate:false those mocked modules persist in the cache after the file finishes and leak into whichever real-module suite the sequencer happens to run next: - `ensure-route-min-role` / `database-rows` install a full-replacement `@elizaos/shared` mock (no `...actual`), stripping the real `normalizeDeploymentTargetConfig` / `normalizeServiceRoutingConfig` normalizers — leaking into `first-run-persistence.restart`. - `auth-pairing-routes` mocks `./auth/sessions` (stubbed `createMachineSession`) and `../services/auth-store` — leaking into `auth-pairing-flow`, whose real AuthStore mint is then a no-op so `findSession` reads back null. The victim is non-deterministic because vitest's size-based sequencer order varies run to run (observed as `auth-pairing-flow:293` and `first-run-persistence.restart` on different runs of the same tree). Fix at the correct layer: each mock-heavy suite clears the shared module registry on teardown (`afterAll(() => vi.resetModules())`) so its mocks cannot outlive the file. No assertion, status code, or mock behavior is changed. Full app-core lane is green 3/3 consecutive runs (164 files, 0 fail), each modified suite passes standalone, and all five polluters + both former victims pass in one combined run. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
test(app-core): stop mock-heavy suites leaking mocks across the isolate:false registry
Removes the stale mobile null-stub for @elizaos/plugin-aosp-local-inference so Android all-local bundles expose ensureAospLocalInferenceHandlers.
…ico) Regenerated from packages/app/public/brand/favicons/app-icon-512.png with the macOS squircle mask; replaces the stale gold Milady art the desktop bundle was shipping. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…kflow's artifacts build-android.yml died at gradle :app:copyForkLlamaLib — the task hard-requires the fused libelizainference.so set for arm64-v8a, and CI had no staging step (no ~/.eliza, no in-workflow NDK cross-compile). The fused libs are built by build-llama-ffi-android (green again since #15565), so stage its latest successful artifacts and export ELIZA_MTP_ANDROID_LIBDIR{,_X86_64} for gradle. Fails loud with a pointer at the ffi workflow when no green run exists. Fixes the build-android half of #15540
The staged fused lib exports the fused-voice ABI, so the elizavoice JNI wrapper compiles against the omnivoice headers inside the plugins/plugin-local-inference/native/llama.cpp submodule — which the workflow never initialized (layer 2 of #15540).
…us-4-8 Both the SDK session and the CLI path hard-defaulted to claude-opus-4-7, a generation behind the current Opus. Deployments that set ELIZA_CLI_CLAUDE_MODEL were unaffected; anyone on the bare default was silently pinned to the older model. Test pins updated; 94/94 green.
…n-device agent
On a sub-12GB device the on-device agent has no local text model
(DeviceRamTierPolicy), so in hybrid mode its @elizaos/plugin-elizacloud must
reach Eliza Cloud (→ Cerebras) for TEXT_LARGE/TEXT_EMBEDDING. The agent runs as
a separate Bun process and ElizaAgentService passed it NO cloud credential, so
plugin-elizacloud booted unauthenticated ('No provider registered for
TEXT_LARGE') and the agent could not generate.
Read the account's Eliza Cloud API key from the CapacitorStorage pref
'eliza:cloud-inference-api-key' (+ optional base URL) and inject it into the
agent process env as ELIZAOS_CLOUD_API_KEY / ELIZAOS_CLOUD_ENABLED. No-op when
the pref is absent (pure-local / not-yet-onboarded), so existing flows are
unchanged.
Proven on a real Light Phone III (6GB, with #15576): pref set → agent restart →
'[CloudAuth] API key validated' → the on-device agent answered 'Say hello in
exactly three words' with 'hello there, friend.' via Cerebras, and its planner
selected the TAKE_PHOTO device action for a camera request. The renderer half —
writing the key to the pref during hybrid onboarding — is the paired follow-up.
Refs #14390, #15539
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
Bypass queued CI per operator instruction.
LifeOps Multi-Tier BenchmarkSuite:
|
Bypass queued/unstable CI per operator instruction.
LifeOps Multi-Tier BenchmarkSuite:
|
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
Bypass queued/unstable CI per operator instruction.
Bypass queued/unstable CI per operator instruction.
Bypass queued/unstable CI per operator instruction.
Bypass queued/unstable CI per operator instruction.
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
LifeOps Multi-Tier BenchmarkSuite:
|
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
Bypass queued/unstable CI per operator instruction.
Bypass queued/unstable CI per operator instruction.
|
Claude encountered an error —— View job I'll analyze this and get back to you. |
|
Promotion branch refresh / local verification update (2026-07-09) Merged latest Local checks run on the updated head: Visual/OCR/color evidence was also run locally against the generated screenshots via: Summary: Manual screenshot review:
The GitHub checks for the new head are still queued/running. I will inspect any completed failures once Actions reports them. |
LifeOps Multi-Tier BenchmarkSuite:
|
LifeOps Multi-Tier BenchmarkSuite:
|
LifeOps Benchmark —
|
LifeOps Benchmark —
|
Promotes verified develop snapshot
97f6425484to main → prod. Closes the 82-commit gap (prod was on9ff78abfb).Carries (highlights)
Migrations (2, additive — migrate-db gate will run + needs reviewer approval)
0173_agent_backup_verification.sql0174_agent_backup_latest_index.sqlBoth additive (backup verification + index); no destructive/omnibus schema change.
Gate
Standard promote: migrate-db (prod-env reviewer) + full CI. Do not merge until the meaningful lanes are green and migrate-db is approved. QA-gated by [qa-agent]; sign-in matrix (Google/Magic/Passkey/Discord/GitHub) verified live on prod, EVM fix verified on develop.
Evidence