Tags

Tags give the ability to mark specific points in history as being important
  • v0.8.1

    v0.8.1 — codex GitHub-bot review fixes for v0.8.0 (3 real / 2 FP)
  • v0.8.0

    v0.8.0 — multi-tool reliability stack
    
    Multi-tool agent loop reliability: ~40 % → 100 % on Gemma 4 E4B
    via 5 stacked techniques (constrained decoding + RAG + exemplars +
    multi-pass repair + name fuzzy harden).
    
    Tested on Galaxy S25 / Adreno 830:
    - 30/30 PASS multi-tool n=30 baseline
    - Vision + tools regression intact (22 s)
    - Snake game with sidecar opt-out (`constrained_decode=0`) works
    
    77 tests / 0 failures.
  • v0.5.0

    v0.5.0 — 4-CLI bare-mode matrix + v0.6.0 fork plan
    
    Goal: every supported coding-agent CLI runs against the on-device
    service in a bare/lightweight mode that fits Gemma 4 E4B's 16 k
    context. Claude Code (--bare), Codex CLI (--oss + project_doc_max_bytes=0),
    OpenCode (custom bare agent + tools off), Gemini CLI (LiteLLM bridge).
    
    scripts/temuxllm launch <cli> defaults to the bare config for each.
    
    Plus v0.6.0 research artifact: concrete fork-LiteRT-LM plan to
    expose Conversation::Clone + INT8 KV (activation_data_type) for
    24-28 k context on 12 GB devices. 4-week plan, 7/10 confidence.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
  • v0.4.1

    v0.4.1 — PR codex P2 fixes + v0.5.0 research
    
    Patch release. Two P2 PR-review issues from chatgpt-codex-connector
    on v0.4.0 fixed (CLI wrapper backslash-escape expansion in user
    prompts; MemoryProbe wired into inference lifecycle so the LMK
    auto-fallback design actually has data to work with).
    
    5 parallel research agents + codex deep-search ran for v0.5.0
    planning — findings under .omc/research/16-20.md. Bottom line: the
    real path to break the 16k context wall is llama.cpp + Adreno
    OpenCL backend with Q4 KV cache. ~600 LOC, ~4-8 hr work.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
  • v0.4.0

    v0.4.0 — TDD foundation + memory observability + 5 codex blockers fixed
    
    First release with a unit-test suite (45 tests, JUnit 4 + MockK +
    JSONassert + coroutines-test). Plus memory hygiene via MemoryProbe
    + AutoFallback (reads getHistoricalProcessExitReasons, auto-
    downshifts maxNumTokens after LMK kill, persists with device
    fingerprint).
    
    Codex CLI outside-review caught 5 blockers PRE-tag, all fixed:
    - inference mutex serializes /api/chat concurrency
    - AutoFallback reads only most-recent exit (not 5)
    - auto_max_tokens.conf priority below adb-pushable manual override
    - onTrimMemory matches RUNNING_CRITICAL|COMPLETE only (TRIM_MEMORY_*
      constants are NOT linearly ordered — UI_HIDDEN >= RUNNING_CRITICAL)
    - chunked-body 413 off-by-one + Content-Length:0 fast-path
    - nextLowerTier(20000) returns 16384 (rung-just-below contract)
    
    Verified on Galaxy S25 (SD 8 Elite, 12 GB, Android 16): 45/45 unit
    tests green, real Gemma 4 E4B + 16 k context smoke OK on CPU.
    
    Deferred to v0.5+: FGS type mediaPlayback (Android 15 BOOT conflict),
    Stateful ConversationPool (needs Clone JNI), llama.cpp swap.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
  • v0.3.3

    v0.3.3 — Tool name validation + RAM-aware context + small-model launcher
    
    Codex CLI outside-reviewer pass on v0.3.2 caught a security blocker:
    ChatFormat.parseToolCalls accepted any tool name the model emitted,
    so a prompt-injected user message could trick a small model into
    faking a tool call for any name. Fixed: parser now cross-checks
    against the request's declared tools array.
    
    LlmEngine.maxNumTokens auto-detects from /proc/meminfo MemTotal
    (S25 12 GB → 16 k verified, Fold7 16 GB → 24 k projected).
    Override via <filesDir>/temuxllm.conf or
    /data/local/tmp/litertlm/temuxllm.conf.
    
    scripts/temuxllm launches now default to small-model squeezed
    configs: claude --bare (no agent system prompt) and codex with
    -c project_doc_max_bytes=0. Both have env-var opt-outs.
    
    Verified end-to-end on Galaxy S25 (SD 8 Elite, 12 GB) with
    Gemma 4 E4B + 16 k context.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
  • v0.3.2

    v0.3.2 — Tool calling on all 4 wire envelopes
    
    Verified on Galaxy S25 (SD 8 Elite, 12 GB, Android 16) with Gemma 4
    E4B + 16k context: a get_weather(city) tool sent to /api/chat,
    /v1/chat/completions, /v1/messages, and /v1/responses round-trips
    through the model and comes back as the correct shape per envelope:
    
      /api/chat                : message.tool_calls[].function.{name,
                                 arguments:object}, done_reason='tool_calls'
      /v1/chat/completions    : choices[0].message.tool_calls[].{id, type,
                                 function:{name, arguments:stringified}},
                                 finish_reason='tool_calls'
      /v1/messages            : content[] with tool_use blocks
                                 {id,name,input:object},
                                 stop_reason='tool_use'
      /v1/responses           : output[] with function_call items
    
    Streaming with tools is buffered (model output collected, parsed,
    synthesized streaming frames emitted at once) — character-by-character
    tool-arg streaming is deferred to a future release.
    
    CLI wrapper (scripts/litertlm-native-wrapper.sh) gains --tools <JSON>
    flag for parity with the HTTP server. install-termux-native.sh's
    embedded heredoc copy will be synced in a follow-up.
    
    PR review fixes (chatgpt-codex-connector):
    - /v1/models now lists only the active model (was offering IDs that
      resolve() would 404 on)
    - scripts/temuxllm 'status' subcommand now calls ensure_forward()
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
  • v0.3.1

    v0.3.1 — Real Claude Code + Codex CLI verified on Gemma 4 E4B
    
    End-to-end verified on Galaxy S25 (SD 8 Elite, 12 GB, Android 16):
    real Claude Code 2.1 (`claude --print`) and real Codex CLI 0.125
    (`codex exec --oss`) both send their full agent system prompts
    through our HTTP and receive on-device Gemma 4 E4B output.
    
    What changed since v0.3.0:
    
    - Engine context bumped from 4096 to 16384 (override via
      TEMUXLLM_MAX_TOKENS env var). Claude Code's ~16k agent prompt
      fits; Codex CLI's ~8k fits with headroom.
    - Codex CLI `/v1/models` parser strict-mode now satisfied
      (`slug` + `display_name` per entry).
    - Two PR-review blockers from chatgpt-codex-connector fixed:
      - resolve() always returns the active model so response.model
        matches what actually generated the text
      - /v1/* default stream=false (OpenAI/Anthropic convention)
    - Plus the four pre-merge codex CLI outside-reviewer fixes from
      v0.3.0 (kept).
    
    Memory limits: 16k context fits comfortably on 12 GB Adreno 830.
    For 24k+ contexts use a ≥16 GB device (Galaxy Z Fold7, Tab S10
    Ultra) and set TEMUXLLM_MAX_TOKENS=24576.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
  • v0.3.0

    v0.3.0 — Ollama compat for Claude Code / Codex / OpenCode / OpenClaw
    
    Drop-in HTTP impersonation of Ollama 0.13.5 on 127.0.0.1:11434, plus a
    launcher CLI that wires up Claude Code / Codex / OpenCode / OpenClaw
    the way 'ollama launch <cli>' does upstream.
    
    What works in v0.3.0:
    
    - All four wire envelopes (Anthropic SSE, OpenAI Chat SSE, OpenAI
      Responses SSE, Ollama NDJSON) emit well-formed text streams under
      success and error paths. Verified on Galaxy S21+ (SD888, Android 15).
    - Real Codex CLI 0.125 passes /api/version (>=0.13.4), /api/pull,
      /v1/models (with required slug field) probes; reaches /v1/responses.
    - Real Claude Code 2.1 passes /api/version + reaches /v1/messages.
    - Backward-compatible with v0.2.x /api/generate clients.
    - Direct curl with short prompts works end-to-end on every endpoint.
    
    What does NOT work in v0.3.0 (documented in CHANGELOG):
    
    - Agent loops with tool calling — no tool_use / tool_call /
      function_call streaming translation in any envelope.
    - Agent loops with the bundled Gemma 4 E2B/E4B (4K context) — real
      Claude Code (~16k system prompt) and Codex CLI (~8k) overflow on
      the inference call.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
  • v0.2.0

    v0.2.0 — CLI rivals or beats APK on Snapdragon
  • v0.1.3

    v0.1.3 — install.sh smoke + wrapper error detection (Codex-found)
  • v0.1.2

    v0.1.2 — restore GPU on Adreno (uses-native-library fix)
  • v0.1.1

    v0.1.1 — open-source polish + honest device matrix
  • v0.1.0

    release v0.1.0 — first OSS-ready cut
    
    In-process LiteRT-LM via Maven SDK 0.11.0-rc1.
    NDJSON streaming on 127.0.0.1:11434.
    Termux `litertlm` wrapper.
    One-shot scripts/install.sh.
    Gemma 4 E2B / Qwen3-0.6B verified on Galaxy S21+ + S25.
    
    Apache 2.0.