Kernel v0.14.2 · TUI/Portal v0.9.6
LingTai release day: multi-account Codex, trend reports, and a calmer cockpit
A paired kernel and TUI/Portal release centered on running several Codex identities side by side and seeing how a fleet actually spends its calls: per-agent and per-preset Codex OAuth token files, a multi-OAuth setup UI, swiss-knife tool-call and API-call trend reports, a scrollable `/doctor`, bilingual loading strings, a lower default context cap, cache-miss detail in the kanban call view, and the daemon and bash fixes that keep long-running work honest.
Upgrade / runtime
The Homebrew command updates the TUI/Portal surface. The kernel package lingtai v0.14.2 is published on PyPI as the runtime package source used by LingTai-managed environments; existing projects should follow their normal TUI-managed refresh or setup path rather than treating a bare global pip command as the user upgrade story.
New features and improvements
-
01
Many Codex identities, one fleet
Kernel v0.14.2 and TUI/Portal v0.9.6 let different agents and presets sign in to Codex as different OAuth identities instead of sharing one global token.
- A new
manifest.llm.codex_auth_pathlets each agent or preset point at its own Codex OAuth token file, so multiple ChatGPT accounts can run side by side (kernel #484). - TUI/Portal setup gained multi-OAuth UI and preset support, so picking which Codex identity a preset uses is a first-class choice rather than a manual file edit (TUI #415).
- The default falls back to the shared token path, so existing single-account setups keep working untouched.
Why it matters:A fleet that mixes accounts needs each agent to authenticate as itself; one shared token makes attribution and rate limits everyone's problem at once.
- A new
-
02
Seeing where the calls go
TUI/Portal v0.9.6 turns raw call logs into trend reports, so a fleet's tool-call and API-call behavior becomes something operators can read at a glance.
- A new swiss-knife script and skill produce tool-call and API-call trend reports, with wording aligned across the script and the skill (#414).
- The kanban call view now shows cache-miss detail, so a turn that paid full price instead of hitting cache is visible where operators already look (#410).
-
/doctoris scrollable and has section headers, so a long diagnostic readout is navigable instead of a single wall of text (#413).
Why it matters:You cannot tune what you cannot see; making call trends and cache misses legible is the first step toward trimming them.
-
03
A calmer, more legible cockpit
Several smaller TUI changes lower the noise floor and make the default cockpit kinder to readers of more than one language.
- Loading strings are bilingual and i18n-aware, so the cockpit speaks the operator's language while it warms up (#412).
- The default context/token cap was lowered to 250k, a more conservative working budget out of the box (#411).
- These defaults can still be raised per setup; the change is about what an unconfigured cockpit does, not a hard ceiling.
Why it matters:Defaults are what most sessions actually run with, so a saner default cap and language-aware text matter more than any single advanced toggle.
-
04
Daemon and bash fixes that keep long work honest
Kernel v0.14.2 repairs two run-directory and working-directory edge cases that previously made long-running daemon work misreport its own state.
- A daemon historical check now resolves run directories correctly after a refresh or molt, so prior-run inspection no longer breaks across a context shed (#483).
- An empty
working_dirin a bash call is now treated as unset and falls back to the default agent directory, instead of running against an ambiguous path (#480). - Both fixes target the moments — post-molt, empty-field — where a long session is most likely to lose track of where it is.
Why it matters:A long-running agent that loses track of its run directory or working directory will quietly act on the wrong place; these fixes keep it honest about where it is.
-
05
Release hygiene, validation, and contributors
The window also carried release-hygiene work and was validated from clean release worktrees before publication.
- The kernel update command is confirm-gated, and a destructive global preset-split migration was neutralized so it can no longer rewrite operator presets.
- TUI release version comparisons are now classified explicitly (@TZZheng), and the release star CSV was normalized as release hygiene.
- Kernel gates:
compileallclean; focused/expanded pytest over daemon/bash/notification/preset/deep-refresh/tool-executor/openai/codex/provider/auth surfaces513 passed;python -m buildplustwine checkPASSED; PyPI reportsinfo.version=0.14.2. - TUI/Portal gates:
git diff --checkclean; TUI and Portal Go tests passed;portal/web npm ci && npm run buildpassed; TUI and Portalmake clean && make buildpassed; Homebrew Release workflow succeeded for tag v0.9.6.
Why it matters:A small version bump still deserves confirm-gated mutations, neutralized destructive migrations, and full gate evidence before it ships.
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 009f1aa84eb6.
- Kernel compileall src + tests compiled clean
- Kernel focused/expanded pytest 513 passed
- Kernel build and twine check wheel + sdist built; both PASSED
- PyPI verification info.version = 0.14.2
- TUI diff-check git diff --check clean (v0.9.5...HEAD)
- TUI Go tests/build go test + make clean && make build passed
- Portal web npm ci/build passed (npm audit warnings noted, not blocking)
- Portal Go tests/build go test + make clean && make build passed
- Homebrew tap Release workflow auto-bumped lingtai-tui to 0.9.6 (sha256 c944…2aca)