What's shipped.
A running log of meaningful changes to the platform.
Self-improvement loop closes (Phase 3)
The proposal_executor daemon now scans approved proposals every 60 seconds and dispatches them: skill_update promotes a candidate variant; graph_update calls wylde-graph /relate and /upsert; adapter_promotion registers a candidate profile with the orchestrator's model registry; training_run reuses TrainerBridge.submit_approved_training().
The orchestrator now reads skill variants per stage before each LLM/DCCD node (30s cache, 60s circuit-breaker on improve unavailability) and posts a blended outcome score per stage at workflow end. Workflow score finally replaces the verdict→1.0/0.5/0.3 heuristic with a real _compute_outcome_score blending critic verdict, debugger pass-rate, critic-gate human action, and per-node guard / grounding penalties.
Voice assistant: Phase 4 lands
Multi-wake-word support (per-model thresholds, custom slugs auto-loaded), a custom YAML intent loader with 30s hot-reload, seven new built-in intents (logs, model switch, current model, VRAM, GPU temp, active workflows, navigate), command aliases applied as a pre-NLU pass, voice profiles (default / fast / deep / calm), and a feedback loop that logs corrections to data/voice-commands/corrections.jsonl. NLU retraining script with a built-in smoke test.
Agent Orchestra: graph context + harness hardening
New graph_context stage between context_gather and planner calls a pure-graph graph_query tool on wylde-rag. Output is templated into both planner and architect prompts.
Tier-1 hardening: skill variants from wylde-improve override the autotuner default; per-stage scores fan out to /api/skill-variants/{stage}/score; _eval_condition dropped Python eval() in favour of an AST walker that whitelists comparisons, booleans, and binary ops only — closing an attribute-access sandbox-escape vector. DCCD phase-2 fallback now tags output with _dccd_parse_error and warns loudly instead of returning silently.
wylde-improve Phase 2: graph + skill + training loop
Three new modules behind the scoring service: graph_restructurer mines interaction co-occurrence and proposes edge adds, reviews, node merges, and community restructuring; skill_evolver tracks per-stage outcomes and A/B-tests prompt variants (explore_rate=0.3, promotion when candidate beats baseline by >0.05 over the configured min runs); trainer_bridge watches SFT sample accumulation, stages train/test splits, submits to wylde-trainer, polls, and proposes promotion or rollback after eval.
Voice: Phase 2 NPU hardening + benchmark harness
Fixed a dropped STTCfg field that silently swallowed YAML config; npu_compile.py now handles NNCF 2.14+ TargetDevice removal and uses the new OVWeightQuantizationConfig API for STT INT8. Added --skip-verify for the slow first-compile verification, plus a benchmark_npu.py that times every backend (ORT+OV-EP, OV-Core-IR, CPU-ONNX for wake word; OV-GenAI, OV-Optimum, faster-whisper for STT) and writes logs/benchmark.json.
Voice assistant: Phases 1–3 complete
Always-on voice path live: openWakeWord → Silero VAD → faster-whisper → Snips NLU → executor → Kokoro TTS, with a system-tray icon and Ctrl+Shift+M hotkey. Phase 3 wires it into the rest of the platform — orchestrator bridge, RAG queries, service control via launcher API, graph queries via wylde-graph /traverse, heartbeat, and a pipeline-injection endpoint for external pipes.
Native migration complete — twenty services off Docker
Every Wylde service now ships as a native Windows process. wylde-graph joined as the final piece — a Neo4j Community swap-in for Memgraph since Memgraph has no native Windows binary; identical Bolt + Cypher means callers don't change. Only coturn (under --profile relay) remains as an optional Docker dependency for WyldeLink remote peers.
Cooperative pattern across the board: start_<svc>.bat creates a venv, installs requirements, runs run.py; run.py loads config.yaml, sets env vars, and starts the service on its named pipe. launch_wylde.bat brings them up in seven groups; stop_wylde.bat tears them down by window title in reverse order.
Service merger: wylde-sysmon
resource-monitor + diagnostics-backup merged into wylde-sysmon (port 9100). Identical runtime and no cross-service callers other than tool-registry. The wylde-model-registry service was also folded into wylde-orchestrator; all model endpoints now serve under /models/ on the orchestrator pipe.
wylde-caption: LoRA dataset captioning
New service on port 8015 generating training captions for SDXL image LoRAs and Wan 2.2 video LoRAs. Florence-2-large (MIT) is the default — purpose-built for dense image captions, batches well on the 5080. Qwen2.5-VL-3B-Instruct (Apache 2.0) is the alternate backend when instruction-followable prompts matter. Outputs one .txt per image alongside the file (standard kohya convention); videos sample frames, caption each, and aggregate.
Agent Orchestra v1: 15-stage multi-agent coding workflow
Replaces the old 9-stage coding pipeline with a research-backed 15-stage system: lessons_lookup → spec_preview → context_gather → planner → plan_gate → architect → test_writer → test_gate → coder → debugger → docs_checker → adversarial_critic → critic_gate → experiential_logger → summariser. Includes delegation loops (coder↔test-writer, debugger↔coder with forced reflection) and an experiential learning store written into the RAG memories table — no new service needed.
Security hardening pass
All service ports bound to 127.0.0.1 except the LAN-facing fletch-web:3000, which is gated by device-gate. Every compose file got security_opt: [no-new-privileges:true]; non-root users added to gateway, registry, webcrawler, RAG, orchestrator, model-registry, and device-gate. security-api container start/stop now enforces an ALLOWED_CONTAINERS allowlist with strict input validation. OLLAMA_ORIGINS tightened from * to a specific allowlist. New port/access registry at docs/PORTS_AND_ACCESS.md with a drift-detection script.
wylde-trainer: 19-tool LLM fine-tuning service
New FastAPI service on port 8013 wrapping LLaMA-Factory: dataset CRUD, generate-training-pairs, config builder, start/stop/status with SSE loss curves, eval runner with comparative model eval, and a cooperative VRAM lease shared across services. Backed by the new Studio page in Fletch (six tabs: Dashboard, Dataset Workshop, Training Config, Monitor, Eval Lab, Model Gallery).
Manifest system + Fletch Devices tab
New per-device approval flow: services write a 30s heartbeat manifest; the Fletch Devices tab exposes the Tailscale toggle that brings up fletch-web and device-gate, and shows pending phones for approval or denial. The web build of the SPA auto-authenticates after the gate clears the device — no double login.
NVMe attention offload — Phase 1
Public C API and async I/O engine for streaming attention weights from NVMe during inference (io_uring + pread fallback + Windows OVERLAPPED). Build flag -DGGML_NVME_ATTN_OFFLOAD=ON. Phase-1 hypothesis: ≥85% throughput at batch≥4 vs GPU baseline, ≥70% VRAM savings. Phase 2 (graph integration) deferred.
Wylde 0.1 — first public build
Initial public preview. Tauri 2 + Svelte 5 desktop app, Python microservice backend, dynamic tool discovery, unified gateway, RAG, voice, n8n integration, and a sandboxed tool runner. Loopback-only by default.