Skip to content

feat(ai): serve Laya through Ollaya on THEBATTLESHIP (CPU, localhost) - #89

Merged
fts-forge[bot] merged 1 commit into
mainfrom
feat/sta-630-ollaya
Nov 2, 2026
Merged

fts-forge[bot] merged 1 commit into
mainfrom
feat/sta-630-ollaya

Conversation

@fts-forge

@fts-forge fts-forge Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

What

A new aspect, fleet.ai/ollaya (modules/ai/ollaya.nix), included on THEBATTLESHIP. It serves the open Laya decision model through Ollaya, using TypeSafe Jev's API: POST http://127.0.0.1:11435/v1/systemone. The Paperclip router (STA-631) will call it.

  • It uses nixpkgs' own services.ollaya and pkgs.ollaya 0.17.0, which come from cache.nixos.org, so nothing is built from source.
  • It listens on 127.0.0.1 only and opens no firewall port.
  • OLLAYA_DEVICE=cpu, so it never touches the GPU. OLLAYA_THREADS=8 leaves the other cores for builds. OLLAYA_KEEP_ALIVE=-1 keeps the model loaded, because a cold load takes about 5 s and the TypeSafe SDK times out after 10 s.
  • Ollaya never pulls a model on request. ollaya-model-loader.service pulls laya:en (814 MB) into /var/lib/ollaya/models after the daemon starts.
  • Per-host settings: settings.ai.ollaya.models and settings.ai.ollaya.threads.

Verified

  • nix build .#nixosConfigurations.THEBATTLESHIP.config.system.build.toplevel exits 0. The service environment and loader script evaluate as described above, and 11435 is not in allowedTCPPorts.
  • I ran the same ollaya store path in userspace as agent, on port 11439: ollaya pull laya:en, then a sample "which agent?" question with 3 options sent to /v1/systemone. It returned HTTP 200 and DevOps with p=0.8164 (Librarian 0.0732, Atlas 0.1105).
    • That run's cgroup had 4 CPUs at nice 10, with host load between 17 and 38, so 1.4 to 2.0 s per warm request is a starved number (cold: 4.75 s). The service gets its own cgroup and gets measured after the switch.
    • The runner's RSS was 3.2 GB, not the advertised 1 GB: on a CPU it loads the fp32 graph.

Deploy note

This repo's main doesn't match what is running on THEBATTLESHIP. Generation 1074 was switched from open PR #87 (devenv/direnv), and #85's github-nix-config runners were never activated. Switching from this branch alone would also add those 3 runners and remove devenv, cachix and libghostty-vt. The live switch waits for the Captain's approval (STA-630).

🤖 Generated with Claude Code

fleet.ai/ollaya wraps nixpkgs' services.ollaya: 127.0.0.1:11435 only,
OLLAYA_DEVICE=cpu, 8 ONNX threads, the model kept loaded, and laya:en
pulled by ollaya-model-loader. THEBATTLESHIP includes it for the
Paperclip router (STA-631). STA-630.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@fts-forge
fts-forge Bot merged commit a5683dd into main Nov 2, 2026
1 check passed
@fts-forge
fts-forge Bot deleted the feat/sta-630-ollaya branch November 2, 2026 07:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants