← Releases

id 20260723-1 · 2026-07-23 · Kernel v0.18.1 · TUI/Portal v0.11.6

Kernel v0.18.1 · TUI/Portal v0.11.6

LingTai 0.18.1 / 0.11.6: fixes for first-run Codex, vision routing, and doctor safety

This coordinated patch release fixes three first-run and reliability issues: generic vision requests now follow the active Codex/Codex-pool route instead of guessing from provider spelling, a genuinely empty production-shaped account-pool snapshot now correctly takes the intended legacy fallback instead of being misclassified as non-empty, and `lingtai-tui doctor --help`/`-h` is now read-only. It also clarifies Codex OAuth preset behavior and fresh zsh installer PATH guidance, without changing existing installation destinations or non-OAuth preset behavior.

Upgrade / runtime

$ curl -fsSL https://lingtai.ai/install.sh | bash

Kernel v0.18.1 publishes 18 GitHub release assets: 15 wheels, one sdist, lingtai-kernel-release-manifest.json, and SHA256SUMS. This release is not published to PyPI; the current release flow excludes that channel. TUI/Portal v0.11.6 publishes a GitHub source release, an updated Homebrew formula, and a Windows lingtai-v0.11.6-windows-amd64.zip with its .sha256 sidecar and lingtai-bundle-manifest.json, and pins kernel v0.18.1. The primary install/upgrade path remains curl -fsSL https://lingtai.ai/install.sh | bash; Homebrew continues to be supported for existing users.

New features and improvements

  1. 01

    Codex vision routing fixed, and empty account-pool snapshots correctly reach fallback

    Two new-user-facing kernel bugs are fixed: generic vision requests could mis-route, and a genuinely empty production-shaped account-pool snapshot was misclassified as non-empty, blocking the intended legacy fallback. Separately, a non-empty but exhausted pool still fails terminally rather than being replayed by the AED retry path.

    • Generic vision requests now follow the active Codex/Codex-pool route rather than inferring routing from provider spelling.
    • The legacy fallback path is taken only when the candidate account snapshot is genuinely empty; a non-empty but exhausted pool continues to fail loudly rather than falling back, and its terminal error is no longer replayed by AED.
    • The terminal NoCandidateError (pool exhausted) is treated as terminal and is no longer replayed by the AED retry path.
    • A regression test covers the production-shaped empty-tuple case for WeightedAccountSource.

    Why it matters:New users with a configured pool no longer see misleading failures or silently wrong routing.

  2. 02

    `doctor --help` is read-only, and fresh zsh installs get correct PATH guidance

    Two first-run rough edges are fixed: asking for doctor help could previously enter mutation paths, and a fresh zsh environment could be missing accurate PATH guidance for ~/.local/bin.

    • lingtai-tui doctor --help/-h is now read-only help and no longer enters doctor mutation, update, bootstrap, or export paths.
    • Fresh zsh installer PATH guidance now correctly covers ~/.local/bin, without changing installation destinations or existing Homebrew/uv behavior.

    Why it matters:Asking for help should never carry side effects, and a fresh shell should get accurate setup guidance the first time.

  3. 03

    Self-explanatory Codex OAuth and account pool eligibility

    Codex OAuth and account-pool behavior is now easier to reason about end to end, while preserving every existing behavior for non-OAuth presets.

    • The kernel takes the intended legacy fallback only on a genuinely empty account-source tuple; a non-empty but exhausted pool fails loudly and terminally instead of being replayed.
    • The TUI pool health check filters disabled, blank, malformed, and non-positive-weight entries, matching kernel eligibility rules.
    • The TUI validates selected-model eligibility ahead of time and shows the active preset and whether it needs a refresh.
    • Saved OAuth-backed presets are distinguished from unaffected non-OAuth presets; OAuth never silently creates, rewrites, activates, or switches presets.

    Why it matters:Codex OAuth behavior stays predictable and auditable without changing how non-OAuth presets already work.

Contributors

Thanks to everyone whose commits, co-authored changes, PRs, reviews, assignments, or reported/closed issues are represented in this release window.

Validation

Final release validation was run from a clean release worktree at commit Kernel 81c70.