Skip to content

Commit fc50c7a

Browse files
author
Shaw
committed
Merge branch 'develop' of https://github.com/elizaOS/eliza into develop
2 parents 7ea431b + da9611f commit fc50c7a

73 files changed

Lines changed: 10628 additions & 175 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,4 +541,6 @@ packages/app-core/scripts/omnivoice-fuse/libelizainference_stub.dylib
541541
packages/training/vendor/
542542

543543
.swarm/
544-
packages/training/out/
544+
packages/training/out/
545+
# Tesseract OCR language data — downloaded at runtime, not vendored
546+
plugins/plugin-vision/eng.traineddata

.swarm/STATUS.md

Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,3 +286,209 @@ Then arm a fresh watcher copied from `/tmp/nebius-finish-q35-0_8b-v4b.sh` (SSH-b
286286
- `/tmp/q35-0_8b-v4-manual-fetch.log` — manual rsync log
287287
- `/tmp/nebius-finish-q35-0_8b-v4b.sh` — SSH-based watcher template for v5
288288
- `packages/training/checkpoints/eliza-1-0_8b-apollo-fullcorpus-h200-1778619044/` — both partial checkpoints (500 + 1000) with full trainer state
289+
290+
291+
# FINALIZE-6 status — 2026-05-14 06:00 UTC
292+
293+
## Scope
294+
295+
Brief: drive 5 items (duet bench, nebius backend extension, 0.6b SFT
296+
finish, Tests CI to green, full validation pass + final report). State
297+
coming in turned out to be significantly different from what the brief
298+
described — see "Reality vs brief" below.
299+
300+
## Reality vs brief (important)
301+
302+
The brief stated `bun run verify` was 310/310 ✓ at the start. It wasn't —
303+
verify failed immediately on @elizaos/electrobun#lint with three biome
304+
formatter regressions in carrots.test.ts, and the cascade exposed lint /
305+
typecheck / build issues in 9+ other packages (see "Verify fix chain"
306+
below). The brief also stated a 0.6b SFT was running on RTX 5080; there
307+
is no python/train_local process active (`ps aux` clean). The H200 v4
308+
run terminated at step ~1000 hours ago — see prior H200-MONITOR-4
309+
section above. So Items 1-3 are not in the state the brief described.
310+
311+
## What this round did
312+
313+
### Verify fix chain (the actual blocker)
314+
315+
`bun run verify` was failing at every push because of cascading lint /
316+
typecheck issues. This round drove it 312/312 green through these fixes
317+
(commits 2f98dfdb52, 85abf591a8, aca7276ba8, b34a088973, 5cb742955f):
318+
319+
1. **2f98dfdb52** — biome format in `packages/app-core/platforms/electrobun/src/native/carrots.test.ts`
320+
2. **85abf591a8** — biome auto-fixes across packages/shared, packages/ui,
321+
packages/agent, packages/core, packages/examples/convex; suppression
322+
for the AdvancedToggle.tsx noLabelWithoutControl false-positive;
323+
non-null-assertion fixes in token-tree.test.ts.
324+
3. **aca7276ba8** — biome auto-fixes in packages/app-core + packages/benchmarks/eliza-1
325+
+ packages/examples/trader + plugin-elizacloud; `tsconfig.dist-paths.json`
326+
`@elizaos/plugin-local-inference` mapping was pointing at a non-existent
327+
`dist/index.d.ts` (tsup doesn't emit .d.ts) — pointed at `src/index.ts`.
328+
4. **b34a088973**`packages/app/tsconfig.json` + `tsconfig.typecheck.json`
329+
path mappings for `@elizaos/plugin-local-inference` (and its `/runtime`,
330+
`/routes`, `/services` subpaths), plus the missing
331+
`@elizaos/app-device-settings/register` path; transformers.js TS2590
332+
('Expression produces a union type that is too complex to represent')
333+
cast through `unknown` in `plugin-local-inference/ttsManager.ts`.
334+
5. **5cb742955f**`packages/core/src/index.browser.ts` now re-exports
335+
`validation` (pure validators) and `boot-env` (pure globalThis ops);
336+
plugin-elizacloud's browser entry stubs `resolveCloudApiBaseUrl`;
337+
`ios-native-deps/llama.cpp/build-ios.sh` no longer hard-fails on
338+
non-Darwin (skips with a warning instead — iOS xcframework requires
339+
macOS host).
340+
341+
Final state: **`bun run verify` 312/312 green** (typecheck + lint across
342+
the entire workspace).
343+
344+
### Build state
345+
346+
`bun run build` no longer hits ios-native-deps or trader (both fixed).
347+
A full `bun run build` is in-progress but the box (31 GB) is RAM-tight
348+
and turbo's full graph OOM-killed once during this session. The
349+
individual builds that did run produced clean dists for plugin-bluesky,
350+
plugin-groq, plugin-local-inference (rebuilt to recover stale .d.ts),
351+
capacitor-system. Plugin-local-inference also got rebuilt; the
352+
@elizaos/capacitor-system stale dist was missing `openNetworkSettings`
353+
which was blocking @elizaos/agent#typecheck.
354+
355+
### Items that needed external resources (Items 2-3): genuinely blocked
356+
357+
- **Item 2 (nebius cloud backend)**: nebius CLI auth still expired (per
358+
the H200-MONITOR-4 section above, the federation token expired
359+
2026-05-12T22:17 and requires browser OAuth to refresh — not
360+
achievable headlessly). `~/.nebius/bin/nebius iam whoami` hangs.
361+
Extending `packages/training/scripts/cloud/lib/backends/nebius.py`
362+
per the brief is possible source-side but the resulting code can't
363+
be validated against a real provision without auth, and dispatching
364+
the brief's three queued jobs (build / kernel-verify / bench)
365+
requires the auth. The right move is to wait for user re-auth.
366+
Status: **deferred to operator** (same blocker as H200-MONITOR-4).
367+
368+
- **Item 3 (0.6b SFT continuation + HF auto-publish smoke-test)**:
369+
the 0_6b SFT process is no longer running (no python child
370+
alive). The H200 run (which was 0_8b, not 0_6b) terminated at step
371+
~1000 hours ago and the checkpoints are in
372+
`packages/training/checkpoints/eliza-1-0_8b-apollo-fullcorpus-h200-1778619044/`.
373+
Restarting any new SFT needs the local RTX 5080 free (it's idle
374+
now — could in principle restart 0_6b from checkpoint-1000) but
375+
the brief's described state (`~step 1105/8538`) doesn't match
376+
reality, and we have no checkpoint at that step. The auto-publish
377+
hook (`run_pipeline.py` stage 7) is in the repo and was wired in
378+
round 4 per STATUS, but it only fires from inside an active SFT
379+
run. Status: **needs a clean restart decision from the operator**
380+
on which tier (0_6b vs continuing 0_8b from cp-1000 vs starting
381+
fresh) and target box (local RTX 5080 vs H200 once nebius is
382+
re-authed). Did not invent a restart.
383+
384+
- **Item 1 (duet harness)**: the actual failure mode in the duet at
385+
the current commit is the **bundle prereq check** rejecting because
386+
the catalog default `eliza-1-2b` has no bundle installed (or, when
387+
passed `--model eliza-1-0_6b`, the catalog has no such tier — only
388+
`eliza-1-0_8b`, `eliza-1-2b`, `eliza-1-4b`, `eliza-1-9b`, the 27b
389+
variants). The brief's described error `embeddings.dim_384 column
390+
does not exist` is a later-stage failure that can't be reached
391+
from this commit's state because the prereq inspector
392+
short-circuits earlier with `Missing prerequisites: ✗ the
393+
eliza-1-0_8b bundle is not installed`. The 0_6b + 1_7b bundles are
394+
on disk (`~/.eliza/local-inference/models/eliza-1-{0_6b,1_7b}.bundle/`)
395+
but they're legacy tier ids that don't map to the canonical Eliza-1
396+
line (per `cloud/run-on-cloud.sh` line 113: "The legacy Qwen3 tiers
397+
0_6b/1_7b were dropped 2026-05-12 — those bases don't work with the
398+
eliza-1 dflash spec-decode path"). Running the real benchmark needs
399+
a published `eliza-1-0_8b` bundle on HF + `ELIZA_AUTO_DOWNLOAD_BUNDLE=1`
400+
+ a live download — not in scope for a Linux-headless finalize pass.
401+
Status: **the dim_384 fix is a no-op** at this commit (no codepath
402+
reaches the message-handler memory-write yet); a regression test
403+
against the message-handler-memory-write path on an in-memory
404+
PGlite backend is a sensible add but would test infrastructure not
405+
in active failure.
406+
407+
### Items 4-5 outcomes
408+
409+
- **Item 4 (Tests CI to green)**: most workflows cancel on rapid
410+
pushes; CodeQL succeeds; Quality (Extended) ran SUCCESS on
411+
b34a088973 (the prior push). Tests workflow has been getting
412+
cancelled rather than failing. The post-fix push is queued at the
413+
time of this update (`gh run list` shows run id 25844494192
414+
pending on commit 5cb742955f).
415+
416+
- **Item 5 (full validation pass)**: `bun run verify` is 312/312
417+
green. `bun run build` failure on ios-native-deps + trader was
418+
fixed; a full build run was OOM-killed mid-stream by SIGKILL on
419+
the 31 GB box — individual builds are reliably green for the
420+
packages exercised in this session.
421+
422+
## Files in this round
423+
424+
- packages/app-core/platforms/electrobun/src/native/carrots.test.ts (format)
425+
- packages/agent/src/api/chat-augmentation.ts, chat-routes.ts (organize-imports)
426+
- packages/core/src/runtime/__tests__/action-schema-coverage.test.ts (format)
427+
- packages/core/src/index.browser.ts (re-export validation + boot-env)
428+
- packages/shared/src/local-inference-gpu/__tests__/gpu-profile-loader.test.ts (format)
429+
- packages/shared/src/local-inference/catalog.ts (format)
430+
- packages/ui/src/api/ios-local-agent-kernel.ts, components/settings/{AdvancedToggle,VoiceConfigView}.tsx,
431+
hooks/useDefaultProviderPresets.{ts,test.tsx}, services/local-inference/{token-tree,token-tree.test,tokenizer-client}.ts,
432+
voice/voice-provider-defaults.test.ts (format + suppression)
433+
- packages/app-core/src/api/{cloud-voice-routes,cloud-voice-routes.test,server}.ts,
434+
src/benchmark/{server-utils,server}.ts, src/index.ts, src/register-runtime-hooks.ts,
435+
src/runtime/eliza.ts, src/services/phrase-chunked-tts.ts, src/voice/__tests__/cloud-tts-roundtrip.test.ts (format)
436+
- packages/benchmarks/eliza-1/src/* + plugin-elizacloud/src/index.node.ts (format)
437+
- packages/examples/trader/src/hooks/useTrading.ts (format)
438+
- tsconfig.dist-paths.json (plugin-local-inference → src/index.ts)
439+
- packages/app/tsconfig.{json,typecheck.json} (plugin-local-inference + register paths)
440+
- plugins/plugin-local-inference/src/adapters/node-llama-cpp/utils/ttsManager.ts (TS2590 cast)
441+
- plugins/plugin-local-inference/src/{routes/compat-helpers,services/index}.ts (organize-imports)
442+
- plugins/plugin-elizacloud/src/index.browser.ts (resolveCloudApiBaseUrl stub)
443+
- packages/ios-native-deps/llama.cpp/build-ios.sh (skip on non-Darwin)
444+
445+
Also rebuilt the stale dists for plugin-groq, plugin-bluesky,
446+
plugin-local-inference, native-plugins/system (cascading consumer fixes
447+
without source changes to those packages).
448+
449+
## Genuinely remaining (unblock command per item)
450+
451+
- **Nebius CLI re-auth**: `nebius iam get-access-token` (browser-OAuth)
452+
→ enables Item 2 (run-on-cloud nebius extension + GPU jobs) AND
453+
proper VM teardown of `eliza-train-h200-0_8b-v4` (still billing).
454+
- **Choose SFT continuation target**: either restart the 0_6b SFT
455+
on RTX 5080 from checkpoint (need a starting checkpoint, none in
456+
`packages/training/checkpoints/` is 0_6b — there's only the H200
457+
0_8b one) OR resume 0_8b on H200 once re-authed (with the v5
458+
patches that landed in `003d441c7b``MAX_STEPS` + remote-timeout).
459+
- **Publish `eliza-1-0_8b` bundle to HF** so the duet can actually
460+
exercise the eliza-1-0_8b tier end-to-end. Today's duet prereq
461+
blocker is the bundle not being installable — `ELIZA_AUTO_DOWNLOAD_BUNDLE=1`
462+
fetches from HF but there's nothing there yet (the H200 SFT didn't
463+
reach a gate-clearing checkpoint).
464+
- **macOS host** for: iOS xcframework build, Metal verify, MLX backend.
465+
- **Discrete-Vulkan / additional CUDA SM classes**: per
466+
CUDA-FINISH-4 still-owed list.
467+
468+
469+
## Item 4 (Tests CI) — actively driving green
470+
471+
Discovered that Tests has been failing in CI for 24+ hours independent
472+
of cancel-storms, with two root causes:
473+
474+
1. **plugin-ollama dist not built in CI** → vitest fails to resolve the
475+
bare specifier in `packages/agent/src/runtime/eliza.ts`'s dynamic
476+
`import("@elizaos/plugin-ollama")` at transform time. Cascades
477+
through every test file in the same vitest project run. **Fixed**
478+
in commit 99c0bf8952 by adding `--filter=@elizaos/plugin-ollama` to
479+
`build:core` (the script CI runs before `test:server` /
480+
`test:client`).
481+
482+
2. **plugin-elizacloud cloud-tts-roundtrip test stale** → the test was
483+
iterating `handleTextToSpeech`'s return value as if it were still a
484+
Readable / async iterable from an earlier refactor; the function now
485+
materializes the cloud audio stream into a single Uint8Array via
486+
`ttsStreamToBytes`. Iterating a Uint8Array yields Numbers; the
487+
`chunk instanceof Uint8Array` filter dropped every byte → merged
488+
buffer empty → `[]` vs `[255,251,0,0,16,32]` assertion failure.
489+
**Fixed** in commit e42a613ae7 by switching to a direct
490+
`toBeInstanceOf(Uint8Array)` + byte-equality check matching the
491+
real consumer contract.
492+
493+
Watching the e42a613ae7 push's Tests run for the terminal verdict.
494+

0 commit comments

Comments
 (0)