1. 24 Jul, 2026 8 commits
  2. 23 Jul, 2026 9 commits
  3. 22 Jul, 2026 20 commits
  4. 21 Jul, 2026 2 commits
    • Stefy Lanza (nextime / spora )'s avatar
      frontproxy: accept port-specific session_<port> cookie in telemetry auth · 8a9e0183
      Stefy Lanza (nextime / spora ) authored
      The session cookie is named session_<port> so two instances on one host don't
      clobber each other's cookie, but the lightweight front telemetry auth only
      checked the literal "session" name — 401'ing every front-served status call.
      Match the engine's get_current_user and accept any session / session_* cookie.
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      Claude-Session: https://claude.ai/code/session_01EPLnsRpNBzWCHLgkXATqRz
      8a9e0183
    • Stefy Lanza (nextime / spora )'s avatar
      embeddings: multimodal (text+image) support + correct VRAM tracking/eviction · dd848607
      Stefy Lanza (nextime / spora ) authored
      Wire up real image embeddings and make embedding models first-class in the
      VRAM lifecycle.
      
      - api/embeddings.py: detect CLIP/SigLIP dual encoders and drive them through
        transformers get_text_features/get_image_features so text and images share
        one projected space (ST path kept for repos shipping a native recipe).
        request.image is now actually read (URL/data-URI/path/base64), vectors are
        appended after the text ones, and text-only models return a clear 400.
        Handle the transformers 5.x pooled-output return shape.
      - Wrap the loaded model in _EmbeddingModel (unpacks as (backend, model) but
        exposes cleanup()) and register it via add_model() + record_vram_delta() on
        the request path, so it is measured, LRU-tracked, and cleanly evicted like
        every other model type instead of leaking as a bare tuple.
      - admin: fix the model-load button for embeddings (was routed to the diffusers
        loader) to use _load_embedding_model, matching the request path.
      - admin: backfill used_vram_gb after a download completes, since the entry is
        saved before the weights exist on disk; factor the estimate into a shared
        _estimate_used_vram_gb helper. A freshly-downloaded CLIP/SigLIP entry now
        always carries a reasonable estimate so pre-load eviction sizes correctly.
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      Claude-Session: https://claude.ai/code/session_01EPLnsRpNBzWCHLgkXATqRz
      dd848607
  5. 03 Jul, 2026 1 commit
    • Stefy Lanza (nextime / spora )'s avatar
      township: Run page invents characters/environments from scratch, phased · 15a0e81b
      Stefy Lanza (nextime / spora ) authored
      Two changes to the Run-page character/environment generation:
      
      1. Generate FROM SCRATCH via the text model instead of the built-in static pool.
         stage_characters/stage_environments always iterated FIGHTER_POOL/
         ENVIRONMENT_POOL and used their hardcoded (pre-fallback) prompts — the LLM was
         never invoked for a full run. New _invent_profiles() calls the text model
         (_autogen_profile_payload) to invent fresh profiles; the static pool is only a
         fallback when no text model is configured (with a clear warning).
      
      2. Phase the pipeline: invent ALL prompts first, then render ALL reference images,
         then train image LoRAs, then video LoRAs (prompts → images → image-LoRA →
         video-LoRA). New _render_profile_images() does the image phase from the saved
         prompts; the reuse/skip paths are unchanged. num_fighters/num_environments set
         how many to invent (default: the pool size).
      
      (CLI main() still uses the pool-based stage_characters/stage_environments; the
      web Run page is the phased-from-scratch path.)
      Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
      Claude-Session: https://claude.ai/code/session_01RdMufYvtTbtGDWsiZVoXce
      15a0e81b