Dev Log: Launch recipes, email scheduler rewrite, capability descriptions, addon migration
This entry covers three days of work (Apr 7–9).
Launch Recipes
The old tutorial system (/tutorial + auto-greeting) has been replaced by launch recipes — structured onboarding flows that guide agents through their first interactions.
What changed:
- Recipes are a new step in the first-run wizard, between capabilities and agent details
- Adaptive (default recipe): progressively reveals features across the agent’s first few conversations instead of dumping everything at once
- Running agents can switch recipes mid-life via
/setup— triggers nirvana + fresh start - Each agent tracks recipe progress in
recipe_state.json - Recipe assets are embedded in the binary and bootstrapped to
~/.lingtai-tui/recipes/ - Migration m008 auto-migrates existing agents
Removed: /tutorial command, TutorialConfirmModel, greet/ embed, buildGreetPrompt, auto-greet path, Greeting setting.
Email Scheduler Rewrite
The kernel’s email scheduling subsystem (email schedule) has been rebuilt around a proper state machine.
Old system problems:
- Used
.cancelsentinel files — no pause/resume, no crash recovery - Agent restart lost in-flight schedule state
- List view didn’t show status
New system:
- Every schedule record has a
statusfield:active→completed, orpaused - Cancel = Pause:
cancelrenamed topause; newreactivateaction resumes - Crash recovery: startup reconciliation pauses all in-flight schedules, preventing mass-send after restart
- Self-heal:
reactivatedetects “crashed right after final send” and auto-marks as completed - Trilingual i18n for all schedule actions
Mail System Improvements
- Sender field split into separate
addressandnamein notifications - New-mail check trailer now conditional on truncation — no more spurious “you have mail” noise
- Email tool description clarified: internal address space (agent names) vs external (IMAP), reply-routing behavior documented
Capability Descriptions + Provider Toggle
The first-run capability selection page now shows descriptions on hover.
- Narrow terminals (< 110 cols): one-line summary below the grid
- Wide terminals (≥ 110 cols): right-side description pane with full text + live provider metadata from
check-caps - All 16 capabilities and 3 addons described in en, zh, and wen (literary Chinese uses canonical vocabulary: 阅卷之器, 飞鸽传书, 游历之器, 藏经阁…)
Provider toggle: capabilities with multiple compatible providers (web_search, vision, talk, draw, listen) now show a Tab picker. Only providers usable with the current preset are offered — e.g., on a MiniMax preset, web_search offers minimax and duckduckgo.
Addon Migration
Addon config path moved from user-level (~/.lingtai-tui/addons/) to project-level (.lingtai/.addons/<addon>/config.json). Different projects can now use different mailboxes/bots.
Other addon changes:
- Setup migrated from hardcoded pip-install to the skill system — the agent helps you configure
/cprand/refreshuse import check instead of pip install — much faster- One-time migration notice for legacy addon comment blocks
- Fixed JSON error swallowing in config reads
Avatar System
- Network rules (
action=rules): admin-gated rule distribution across the avatar tree viasystem/rules.md+.rulessignal files - Birth prompt: new avatars seeded with parent-identity prompt + social contract
- Principle path fix: relative
principle_fileresolves correctly for spawned avatars
Molt Fixes
molt_countpreserved across refresh and restart (was resetting to zero)- Broken file-load replaced with i18n warning ladder
{pressure}/{remaining}placeholders format correctly- Canonical vocabulary enforced: 凝蜕 (zh), 转世 (wen)
Rebrand
Lingtai Agent → Lingtai Orchestration / 灵台相阵 across all UI strings.
Agent Agora
/agora: browse published agent networks/agora publish: 5-step publishing flow (scrub → package → upload → verify → generate recipient recipe)- Imported networks show welcome banner and pre-fill orchestrator details during rehydration
Other Fixes
- Vision
localprovider (mlx-vlm) hidden fromcheck-caps— too early to advertise /cpr,/refresh,/clearnow surface errors instead of failing silently- CJK character width calculation fixed for input height
- TUI no longer auto-relaunches intentionally stopped agents
- Preset picker supports deleting saved presets
Versions
- TUI: v0.4.37
- Kernel: v0.5.18 (PyPI)
brew upgrade huangzesen/lingtai/lingtai-tui
pip install --upgrade lingtai