Tags give the ability to mark specific points in history as being important
-
-
v0.8.0
95a2eee2 · ·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
42cc1962 · ·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
651e7c10 · ·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
54ab91eb · ·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
bdfde43f · ·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
0fa9819d · ·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
77d32026 · ·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
0876f7d5 · ·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.1.0
ffada29f · ·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.