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
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
-
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.
-
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/-his 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.
-
-
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.
- Kernel focused tests 76 passed
- Kernel local build/install smoke wheel + sdist build, CPython 3.12 no-deps install and import — PASS
- TUI focused and full Go tests, build PASS
- Portal web production build PASS
- PR reviews All four final PR heads received explicit approvals
- TUI release workflow Run 29992038966 — source-release, update-homebrew, windows-release all SUCCESS
- Windows bundle SHA256 5d74e0ad4bef3ad22075e46a4231105904dc2f7541e44311f0a26f5f3cfff1d0; bundle manifest v0.11.6 / kernel v0.18.1 / commit ee27722f… — PASS
- Homebrew formula v0.11.6 source archive SHA256 38271bb50050c61a7eb1d4acb5f5f2eb71d758feb27e4d2a1d7097e51c733970
- Local clean-main smoke /opt/homebrew/bin/lingtai-tui and /opt/homebrew/bin/lingtai both report v0.11.6