Spaces:
Running
Running
Commit History
-
Diagnostics: timeouts + structured logging on all model/media calls
Root cause of 'stuck at loading': none of the image/voice/skill/text fetches had a timeout, so a slow/hung backend spun forever. Added web/diag.js — diagFetch (timeout + timing + console log + ring buffer) and diagStream (connect + idle timeouts for SSE): - image /portrait: 120s ceiling - voice /qwen-tts + /voxcpm (synth + clone): 90s - skill + text /text/generate/stream: 30s connect, 60s idle-stall Calls now FAIL LOUDLY with a clear timing-stamped error instead of hanging. Every call is logged ([tinyarmy:kind] ✓/✗ in Ns) and recorded; dump with tinyDiag() in the console, or open Settings → Diagnostics for a live readout. Skill-forge icon failures now warn too. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>c90f2a6
-
Skill Forge: optional "show thinking" for coding models
Add a "show model thinking" toggle (off by default) that reveals the reasoning models' trace in a collapsible debug panel, mirroring the persona debug div and reusing stripThink/stripThinkFinal. A `think` flag flows from the checkbox -> streamCoding -> /text/generate/stream -> the model. Reasoning comes back inline as <think>…</think>; the clean answer shows in the output, the raw trace in the panel. - Nemotron (_nim_text_stream): when think=true, drop reasoning_budget=0 and surface reasoning_content wrapped as <think>…</think>. - BLS sidecar: new 5th `think` arg streams the reasoning wrapped in <think> instead of discarding it; threaded through _space_text_stream's *extra (defaults keep existing 4-arg callers on the clean path). - Mellum2 has no reasoning, so the flag is a no-op there. Verified end-to-end through /text/generate/stream for both models (think on/off) plus the backward-compat 4-arg sidecar call. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.co…6e155d8
-
Add BLS Mini-Code 1.0 (Cohere 30B MoE) coding sidecar
ZeroGPU sidecar serving CohereLabs/BLS-Mini-Code-1.0 via the same /generate + /generate_stream contract as Mellum2. Source under spaces/bls-code-zerogpu. - No FP8 weight upstream (BF16 only), so the Space quantizes to 4-bit at load. - cohere2_moe is new, so transformers is pulled from git. - It's a reasoning model: the chat template force-opens <|START_RESPONSE|> (non-reasoning), which made it ramble reasoning as prose. The Space instead opens a <|START_THINKING|> block (discarded) and streams only the clean <|START_RESPONSE|> code, stripping <|START_TEXT|>/<|END_TEXT|> markers, with a thinking-token budget so requested max_tokens applies to the visible code. App side mirrors Mellum2: TINY_BLS_CODE_SPACE env var, _bls_code_stream + _bls_code_stream_with_fallback (Nemotron NIM fallback when the sidecar is asleep/over quota), bls-mini-code-zerogpu routing branch, and a codingModel.js dropdown entry. Verified end-to-end through /text/generate/stream. Co-Authored-By: Claude Opus…37982be -
Add Coding Model setting + Skill Forge sandbox
New "Coding Model" settings section (below Persona Prompt) selecting between two backends: • Nemotron 3 Nano 30B-A3B via NVIDIA NIM (integrate.api.nvidia.com, reasoning off) — too large to self-host on ZeroGPU. • Mellum2 12B-A2.5B via a ZeroGPU sidecar (polats/tiny-army-mellum-zerogpu), same /generate(+_stream) contract as the Aya/MiniCPM5 sidecars. New "Skill Forge" tab (Sandbox group, after Sprite Animations): pick a recruited hero, describe a skill, and the chosen coding model authors a tailored skill definition. Reuses personaStore (roster) + streamCoding. Backend: app.py routes mellum2-zerogpu and nemotron-3-nano-30b-nim model ids in /text/generate/stream; _nim_text_stream() streams NIM's OpenAI-compatible SSE. Frontend: codingModel.js store (separate from the persona/diary model), codingModelBar.js picker, shared sseText.js SSE reader (extracted from engineServer.js). Needs Space config: TINY_MELLUM_SPACE + NVIDIA_NIM_API_KEY. Co-Authored-By: Claude Opus 4.8 (1M c…1f1908e