← Releases

id 20260609-1 · 2026-06-09 · v0.8.15 / v0.11.3

v0.8.15 / v0.11.3

LingTai TUI/Portal v0.8.15 + Kernel v0.11.3

This release pairs TUI/Portal v0.8.15 with Kernel v0.11.3 and centers on operating the runtime: more visibility and control from the TUI (a skill-backed, multilingual `/help` command, `/notification` for read-only notification inspection, a daemon browser, daemon counts in kanban, tool-call display controls, adaptive mail input, and `/clear` routed through kernel context clear), and a safer agent runtime under real workloads (the nested secondary tool-call channel is removed and residual stale `secondary` args are ignored/logged, notification sync stops leaking diary-looking synthesized text into visible conversation history, top-level tool calls gain lifecycle tracing plus API-call IDs that group tool batches, with enriched error results, plus a strict relay-compatible avatar schema, repeated-tool-error recovery, OpenAI Responses compact-threshold handling, a stale-notification version guard, refresh recovery from stale processes, MCP stale-stdio restart, and daemon limit / dead-parent cleanup). Knowledge and skill surfaces become more teachable — molt history knowledge entries, a strengthened pre-molt checklist, textbook distillation, a read-only preset-health subskill, optional skill repository remotes, a LICC chat tutorial, and Graphify / cyclic-manifold docs — and research and setup paths get more practical with an authorized-publisher PDF tier, in-house publisher extraction, a Zotero institutional handoff, an academic evidence gate, an install.sh writable-bin fallback, an AED max-attempts setting, and a Codex service-tier preset. Candidate window: 189 files changed, +15,541 / -3,428 lines across 44 first-parent merged PRs (25 TUI/Portal + 19 kernel), plus small direct/doc commits and star-count chores. Final release validation is still to be completed before tag, PyPI, and Homebrew publication.

Upgrade / runtime

$ brew update && brew upgrade lingtai-ai/lingtai/lingtai-tui

This is the published release log for TUI/Portal v0.8.15 and Kernel/runtime package lingtai==0.11.3. Ordinary LingTai projects upgrade through the TUI/Homebrew flow; bare pip install lingtai remains a release, diagnostic, or clean-venv validation path rather than the normal user upgrade route.

New features and improvements

  1. 01

    Operators can see and control the runtime better

    The most user-visible work in this release is on the TUI itself: commands and surfaces that let an operator inspect what the agent network is doing and steer it without leaving the terminal.

    • A /help command renders markdown slash-command docs in the TUI; the skill-backed multilingual help assets become the canonical command reference, recipe prompts point at /help instead of duplicating command lists, and the viewer now routes key/mouse input correctly so q/Esc and scrolling work (#277, #279, #281).
    • A /notification command opens a read-only Markdown viewer over the active agent’s .notification/*.json, including an aggregate block plus per-channel entries and r reload support (#283).
    • A TUI daemon browser page lets operators see and navigate running daemons (#275), and the kanban view now shows daemon counts (#207).
    • Tool-call display controls add truncation (off by default), timestamp settings, and API-call batch grouping so noisy tool output can be tamed and separated by LLM round-trip (#276, #282).
    • Mail input height adapts to content (#161), and /clear is routed through the kernel context clear so the TUI and kernel stay in sync (#222).

    Why it matters:A multi-agent runtime is only operable if a human can quickly see what is running and reduce noise on demand. These changes make the TUI the single place to inspect and steer daemons, mail, and command help.

  2. 02

    The agent runtime becomes safer under real workloads

    Kernel v0.11.3 concentrates on failure modes that only show up once agents run continuously: stale resources, backend-incompatible payloads, and recursive calls that should never escalate privileges. The nested secondary tool-call channel — first restricted to read-only, then removed outright in this window — is the clearest example; notification sync now uses tool-only synthesized pairs instead of visible diary-looking text; and top-level tool calls now carry lifecycle tracing.

    • The nested secondary tool-call channel was first narrowed to read-only (#236, with strengthened trigger guidance in #234), then removed entirely: the reserved nested secondary schema, module, and execution path are gone, residual stale secondary args are ignored and logged rather than dispatched, notification/email guidance moves to top-level reads plus direct acknowledgements, and provider-visible _secondary metadata is dropped from spill manifests (#241; focused tests 181 passed, full suite 2072 passed / 2 skipped). Notification sync then changed the normal success path to inject only a synthesized system(action="notification") tool-call/result pair, keeping summary text log-only so notification summaries no longer look like diary/user text in visible history (#249).
    • Top-level provider tool calls gain Phase 1 lifecycle tracing in the ToolExecutor: a stable tool_trace_id threads events across received / normalized / validation / approval / dispatch / durable-log / model-visible stages and into existing tool logs, enriched tool-error results retain model-visible output, and each LLM round-trip now carries an api_call_id through LLM and tool events so the TUI can group tool batches from source-of-truth event data (#242, #246, #247).
    • The avatar schema is reshaped for strict API relay compatibility (#226), repeated tool errors now pair into a hard stop instead of looping (#202), and tool-loop guard non-dispatch recovery now closes blocked calls explicitly instead of leaving pending tool-call wire state (#217).
    • OpenAI Responses honors the configured compact threshold (#227); stale notification-channel dismiss is guarded by a version check (#231); refresh recovers from a stale agent process (#224); and stale MCP stdio sessions are restarted instead of left dead (#222, kernel).
    • Daemon limits are honored (configured max emanations, #225) and dead-parent daemon records are reaped on startup (#233).

    Why it matters:Long-running agents accumulate exactly these conditions — dropped sessions, rejected schemas, recursive sends. Closing them reduces silent hangs and privilege surprises, which matters more than any single new feature for an always-on network.

  3. 03

    Knowledge and skill surfaces become more teachable

    Several changes make the manuals and skills agents read either more durable across molts or more directly useful for a specific task.

    • Molt / session-journal history is documented as knowledge entries under the psyche-manual, with a template asset and a molt_count field in entries (#237); session journals themselves are documented as sub-knowledge (kernel #240), and the pre-molt LingTai update checklist plus memory guidance is strengthened (#272).
    • A new textbook-distillation guide (#273) and a read-only preset-health diagnostic subskill (#265) are added; skill / library pages can expose an optional repository remote (#271).
    • A tutorial explains the LICC chat command flow (#274), and docs cover the Graphify repo-map (#264) and the cyclic-manifold architecture (#267).
    • The bash-manual adds a hard rule that long-running agent/coding CLIs (claude -p, codex exec, opencode run, the Cursor agent CLI) must run via bash async + poll rather than synchronous bash, so the agent stays responsive and avoids ACTIVE blockage (kernel #243).

    Why it matters:Skills are how a fresh agent learns the system. Recording molt history as structured knowledge and adding focused guides keeps that learning consistent across successors instead of relying on whoever happens to be resident.

  4. 04

    Research and setup paths become more practical

    The academic-research and first-run paths pick up fixes that matter on real machines and against real publishers.

    • Academic research gains an authorized publisher PDF tier (#257) and an in-house publisher extractor for publisher metadata (#258), plus a documented Zotero institutional full-text handoff workflow (#266) and an academic evidence verification gate (#269).
    • install.sh falls back to a writable bin directory instead of aborting on non-Homebrew systems (#240), improving community install reliability, and development prerequisites are documented (#260).
    • Setup / first-run exposes an AED max-attempts setting (#253), and a Codex preset service-tier option is added (#256).

    Why it matters:These are the paths a new user and a research agent hit first. Making installs survive non-standard machines and letting research reach authorized full text removes early friction that otherwise blocks real use.

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 lingtai@d9a9.