Kernel v0.15.3 · TUI/Portal v0.10.2
LingTai release day: an honest init contract and steadier reconstruction signals
A small paired patch that makes two runtime contracts honest. Generated, template, and example init.json no longer seed legacy `prompt` or empty `lingtai` fields — long-lived character state is owned by `system/lingtai.md` / psyche after creation, and the kernel treats a missing seed as a valid empty seed. The kernel also makes context-pressure signals more truthful: a delayed-summarization reconstruction now reports one-shot evidence while sustained high-context pressure is surfaced separately as a molt warning. The window rounds out with system-prompt resources refactored into Markdown catalogs, a WeChat MCP config-path fix and stronger inbound-media validation, grep and IMAP ergonomics, runtime-identity stamps on event logs, and the usual release hygiene.
Upgrade / runtime
The Homebrew command updates the TUI/Portal surface. The kernel package lingtai v0.15.3 is 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. This is a paired patch release validated from clean release worktrees before publication.
New features and improvements
-
01
An honest init contract: no more seeded `prompt` / `lingtai`
Generated, template, and example init.json stop writing character-seed fields that the runtime no longer honors. Created character state is owned afterward by
system/lingtai.md/ psyche, and the kernel accepts a missing seed as a valid empty seed.- The kernel formalizes the init contract:
promptis not a legacy alias, a missinglingtai/lingtai_fileis valid and means an empty initial seed, and deprecated brief fields are ignored (kernel #550, #551, #552, #557). - The TUI stops seeding the character field in generated init.json and ships a guard regression test that generated init JSON omits
prompt,prompt_file,lingtai, andlingtai_file(TUI #458). - Stale init-schema tests are aligned with the optional
lingtaiseed, and avatar-anatomy docs clarify how the lingtai seed is inherited (kernel #553 plus the release-hygiene test alignment).
Why it matters:An init file that seeds fields the runtime ignores is a quiet lie about where character state lives; aligning the generator, templates, examples, and schema means a freshly created agent starts from one honest source of truth instead of stale, never-honored prompt text.
- The kernel formalizes the init contract:
-
02
Reconstruction-aware molt warnings
Context-pressure signals are made more truthful: a delayed-summarization reconstruction reports its evidence once, while sustained high-context pressure is surfaced separately so the two are not conflated.
- A delayed summarization reconstruction now reports one-shot reconstruction evidence, while sustained high-context pressure is surfaced separately as a molt warning (kernel #556).
- Resident meta-guidance ordering and prompt-layer documentation were tightened, with delayed-summarize guidance made more precise (kernel #542, #558).
- Event logs are stamped with the kernel runtime identity so a long unattended run can be attributed to the runtime that produced it (kernel #540).
Why it matters:A single reconstruction event and ongoing context pressure are different facts that ask for different responses; reporting the reconstruction once and surfacing sustained pressure on its own keeps an agent from over-reading a one-time rebuild as a standing emergency.
-
03
System-prompt catalogs, MCP, and utility polish
Around the two headline contracts, the kernel refactors its system-prompt resources into Markdown catalogs and lands a round of integration and utility fixes.
- System-prompt resources are refactored into Markdown catalogs with clearer related-file behavior, and the runtime principle layer is kernel-managed rather than injected at runtime (kernel #555, #547, #549).
- WeChat MCP config-path resolution is fixed and inbound media is validated by magic bytes (kernel #554, #543).
- Grep prunes its glob filter before reading files, and IMAP empty-argument ergonomics and flag diagnostics are clearer (kernel #544, #548).
Why it matters:These are the seams a long-running fleet rubs against most — a misresolved MCP config path, an unvalidated inbound file, a grep that reads more than it needs; tidying them keeps the runtime predictable without changing the cockpit operators already know.
-
04
TUI ledger fidelity and cockpit ergonomics
On the cockpit side, the TUI improves how refresh and context-rebuild events are accounted for and restores roomier mail defaults.
- Refresh rebuilds and context rebuilds are now marked in the call ledger so the recent-call view distinguishes a rebuild from an ordinary API call (TUI #457, #455).
- Larger mail page-size defaults are restored and mail renderers are reused across mail views, and
ctrl-yselect mode is now available globally with a prominent indicator (TUI #454, #453, #452).
Why it matters:A ledger that reads a rebuild as a normal call misleads an operator reading per-round cost; marking rebuilds keeps the call view honest, and the mail and select-mode polish removes day-to-day cockpit papercuts.
-
05
Release hygiene, validation, and contributors
The paired patch versions — TUI/Portal v0.10.2 and kernel v0.15.3 — were validated from clean release worktrees off
origin/mainbefore the publish step.- Strict ranges: TUI
v0.10.1..v0.10.2(12 commits, 38 files changed, +1612/-177) and kernelv0.15.2..v0.15.3(38 commits, 99 files changed, +6331/-829). - Kernel gates:
git diff --checkclean;compileallclean; fullpytestpassed;python -m buildproduced sdist + wheel;twine checkPASSED. Release hygiene aligned the init-schema tests with the optionallingtaiseed and bumped the package version to0.15.3. - TUI/Portal gates:
git diff --checkclean against v0.10.1; fulltuiandportalGo tests passed;portal/web npm ci && npm run buildpassed;make buildproduced the TUI and Portal binaries. Release hygiene normalizeddocs/stars/stars.csvwhitespace and isolated the Homebrew install-detection tests from real developer-machine symlinks. - Contributors in this window: @huangzesen (lead, scope and validation owner across both repos) and @TZZheng (kernel dry-run retention reporter, #541).
Why it matters:A patch still deserves full gate evidence and an honest contributor list; recording that the publish artifacts and tags are cut from these exact validated commits is part of shipping responsibly.
- Strict ranges: TUI
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 v0.15.
- TUI strict range v0.10.1..v0.10.2 — 12 commits, 38 files changed, +1612/-177
- Kernel strict range v0.15.2..v0.15.3 — 38 commits, 99 files changed, +6331/-829
- Kernel diff-check passed against v0.15.2
- Kernel compileall src + tests compiled clean
- Kernel full pytest passed
- Kernel build and twine check sdist + wheel built; both PASSED
- TUI diff-check clean against v0.10.1
- TUI Go tests/build go test passed; make build → lingtai-tui v0.10.2
- Portal web npm ci/build passed
- Portal Go tests/build go test passed; make build → lingtai-portal v0.10.2