ruvector/.github/workflows
ruvnet 6176e8f952 fix(ruvllm-esp32): USB-Serial/JTAG VFS + per-toolchain CI matrix; ADR-166 ops manual
Three coordinated fixes from the rc1 device + CI run:

1. **`src/main.rs` — install + use the USB-Serial/JTAG interrupt-mode driver**

   With `CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG=y` alone, ESP-IDF installs a
   polling-mode driver. Bootloader logs reach `/dev/ttyACM0` but Rust
   `std::io::stdout` / `stderr` / `stdin` do not — TX buffers indefinitely
   until reset, RX returns undefined data. Symptom: panic prints work
   (panic flushes on reboot) but `eprintln!` during steady state goes
   nowhere.

   Fix: at the top of main, call `usb_serial_jtag_driver_install` then
   `esp_vfs_usb_serial_jtag_use_driver`. After both calls, `eprintln!`
   flushes via interrupt-driven TX and `stdin().lock().lines()` blocks
   on USB-CDC RX exactly like host stdio.

   Also drops the FFI-write helpers (`jtag_write` / `jtag_writeln`) in
   favor of std::io. The interactive CLI loop becomes the same shape as
   the host-test path: `for line in stdin.lock().lines() { … }`.

2. **`.github/workflows/ruvllm-esp32-firmware.yml` — per-toolchain matrix +
   ldproxy install**

   rc1 CI matrix failures:
   - all Xtensa builds: `error: linker 'ldproxy' not found` —
     `cargo install espflash --locked` only installs espflash; ldproxy
     was missing.
   - both RISC-V builds (esp32c3, esp32c6): `error: toolchain 'esp' is
     not installed` — `espup install --targets <riscv-chip>` is a no-op
     for the Rust toolchain; the build then ran `cargo +esp build` and
     panicked.

   Fix:
   - Install `ldproxy` and `espflash` together: `cargo install espflash
     ldproxy --locked` (always, both toolchains need it).
   - Per-matrix `toolchain: esp` (Xtensa) vs `nightly` (RISC-V).
   - `if: matrix.toolchain == 'esp'` → espup install path.
   - `if: matrix.toolchain == 'nightly'` → `rustup toolchain install
     nightly --component rust-src`.
   - `cargo +${{ matrix.toolchain }} build …` picks the right channel
     per target.
   - `unset RUSTFLAGS` in the build step (mold doesn't speak Xtensa or
     RISC-V-esp).

3. **`docs/adr/ADR-166-esp32-rust-cross-compile-bringup-ops.md` — full
   operations manual**

   Companion to ADR-165. ADR-165 says *what* runs; ADR-166 says *how* to
   build it. 16 sections, ~14 KB. Captures every failure mode hit during
   rc1 (14 distinct ones), with root cause and fix for each, the pinned
   crate trio (esp-idf-svc 0.51 / esp-idf-hal 0.45 / esp-idf-sys 0.36),
   the per-target toolchain matrix, the build.rs `CARGO_CFG_TARGET_OS`
   pattern, the .cargo/config.toml linker contract, the sdkconfig
   defaults split, the USB-Serial/JTAG console two-call setup, the stack
   budget for TinyAgent, the CI workflow contract, the operational
   acceptance gates G1–G6, and a searchable failure → remedy table.

   Includes a verification log section with the actual rc1 transcripts
   from real ESP32-S3 hardware (`ac:a7:04:e2:66:24`).

Closes:
- rc1 CI failure modes 13 (ldproxy) + 14 (RISC-V toolchain) — workflow fix
- ADR-165 §7 step 5 (USB-CDC console parity) — VFS fix
- Documentation gap so the next contributor doesn't bisect 14 failures

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-04-30 13:28:28 -04:00
..
agentic-synth-ci.yml feat(agentic-synth): Update RuVector adapter to use native NAPI-RS bindings (#34) 2025-12-01 13:17:26 -05:00
benchmarks.yml ci: fix benchmarks by installing PostgreSQL 17 and pgrx 2025-12-30 15:36:30 +00:00
build-attention.yml fix: use git add -f in CI workflows to commit .node binaries past .gitignore 2026-02-25 14:35:14 +00:00
build-diskann.yml feat(diskann): Vamana ANN + PQ + NAPI bindings — 14 tests, 1.0 recall, 90µs search (#334) 2026-04-06 17:55:06 -04:00
build-gnn.yml fix: use git add -f in CI workflows to commit .node binaries past .gitignore 2026-02-25 14:35:14 +00:00
build-graph-node.yml feat(postgres): Add HNSW index and embedding functions support (#62) 2025-12-09 11:14:52 -05:00
build-graph-transformer.yml fix: use git add -f in CI workflows to commit .node binaries past .gitignore 2026-02-25 14:35:14 +00:00
build-native.yml fix: use git add -f in CI workflows to commit .node binaries past .gitignore 2026-02-25 14:35:14 +00:00
build-router.yml fix(ci): read version from package.json instead of hardcoded value 2026-01-24 12:35:23 -05:00
build-rvf-node.yml fix(ci): resolve all build-rvf-node failures 2026-02-16 22:39:04 +00:00
build-tiny-dancer.yml feat(postgres): Add HNSW index and embedding functions support (#62) 2025-12-09 11:14:52 -05:00
build-verified.yml feat: add formal verification layer with lean-agentic dependent types 2026-02-25 03:45:18 +00:00
ci.yml test(quarantine): #[ignore] 8 pre-existing hanging tests + bump core-and-rest headroom 2026-04-26 11:21:33 -04:00
clippy-fmt.yml chore(workspace): fix pre-existing test flakes + add CI -D warnings enforcement 2026-04-25 20:17:47 -04:00
copilot-setup-steps.yml fix: Add Copilot setup workflow with git clone cleanup step 2026-01-29 11:05:28 -05:00
docker-publish.yml fix(docker): include gated-transformer dependency in builds 2025-12-26 23:39:06 +00:00
edge-net-models.yml chore: Update dependency versions for crates.io publishing 2026-01-04 19:44:24 +00:00
hooks-ci.yml fix(ci): use --memory-type flag for hooks remember command 2025-12-29 17:58:38 +00:00
mirror-rulake.yml ci: mirror crates/ruvector-rulake/ + ADRs to ruvnet/RuLake on push 2026-04-24 10:29:09 -04:00
postgres-extension-ci.yml fix: add missing pg17 feature flag in pgrx test commands and fix rustdoc link errors 2026-02-21 22:44:28 +00:00
publish-all.yml fix: Update ruvector-math-wasm to use @ruvector/math-wasm scoped package 2026-01-11 17:21:16 +00:00
RELEASE-FLOW.md feat: Implement GNN forgetting mitigation (#17) 2025-11-26 23:17:07 +00:00
release-rvf-cli.yml feat(rvf-cli): add cross-platform release workflow and update README 2026-02-16 23:19:39 +00:00
RELEASE.md feat: Implement GNN forgetting mitigation (#17) 2025-11-26 23:17:07 +00:00
release.yml fix: Remove automatic npm publish from CI/CD workflows 2025-11-30 21:23:39 +00:00
ruvector-postgres-ci.yml fix: update pgrx to 0.12.9 in both CI workflows and fix formatting 2026-02-21 22:34:37 +00:00
ruvllm-benchmarks.yml feat(training): RuvLTRA v2.4 Ecosystem Edition - 100% routing accuracy (#123) 2026-01-20 20:08:30 -05:00
ruvllm-build.yml feat: SONA Neural Architecture, RuvLLM, npm packages v0.1.31, and path traversal fix (#51) 2025-12-03 18:40:25 -05:00
ruvllm-esp32-firmware.yml fix(ruvllm-esp32): USB-Serial/JTAG VFS + per-toolchain CI matrix; ADR-166 ops manual 2026-04-30 13:28:28 -04:00
ruvllm-native.yml feat: SONA Neural Architecture, RuvLLM, npm packages v0.1.31, and path traversal fix (#51) 2025-12-03 18:40:25 -05:00
ruvltra-tests.yml fix: CI clippy errors and Windows test failures 2026-03-16 23:21:01 -04:00
sona-napi.yml feat: SONA Neural Architecture, RuvLLM, npm packages v0.1.31, and path traversal fix (#51) 2025-12-03 18:40:25 -05:00
sync-rvf-examples.yml fix: ruvector-postgres v0.3.1 — audit bug fixes, 46 SQL functions, Docker publish (#227) 2026-03-03 12:53:10 -05:00
thermorust-ci.yml feat(thermorust): add thermodynamic neural-motif crate 2026-02-27 14:22:44 +00:00
ui-ci.yml feat(quality): ADR-144 monorepo quality analysis — Phase 1 critical fixes (#336) 2026-04-06 21:19:13 -04:00
validate-lockfile.yml fix: Resolve CI failures from platform-specific npm package conflicts 2025-11-27 15:38:11 +00:00
wasm-dedup-check.yml fix(rvf-wasm): fix Node.js CJS/ESM glue and add rvf-node CI 2026-02-16 21:33:14 +00:00