修复: 缓存原子写与 fork 关系持久化,优化摘要重试

- 原子写: 新增 atomicWriteFile,缓存/收藏/forks 改为临时文件+rename,避免崩溃损坏
- fork 关系: executeFork 记录待绑定项,扫描后按 cwd+时间窗口匹配新会话并持久化
- 摘要重试: 去掉 needDetail 反复刷新逻辑,仅对未生成摘要的会话触发,避免浪费 claude -p 调用
- 脚本转义: pwsh/bash 的 Prompt 回显段转义双引号与 $,防止注入和语法错误
- 输入限制: 工作空间数字输入限制 4 位,避免无限增长
- 品牌统一: 底部版本号文案 绝尘 → U-TABS
This commit is contained in:
lxy
2026-07-01 01:29:01 +08:00
parent baec416df7
commit 45e32193af
6 changed files with 156 additions and 34 deletions
+5 -4
View File
@@ -4,9 +4,10 @@ import (
"fmt"
"strings"
"charm.land/bubbletea/v2"
"charm.land/lipgloss/v2"
"u-tabs/internal/style"
tea "charm.land/bubbletea/v2"
"charm.land/lipgloss/v2"
)
// --- View 入口 ---
@@ -66,7 +67,7 @@ func (m *Model) render() string {
helpParts := m.renderHelp()
helpStr := " " + strings.Join(helpParts, " ")
verStr := style.DimFg.Render("绝尘 v" + Version)
verStr := style.DimFg.Render("U-TABS v" + Version)
padW := m.width - lipgloss.Width(helpStr) - lipgloss.Width(verStr)
if padW > 0 {
b.WriteString(helpStr + strings.Repeat(" ", padW) + verStr)
@@ -129,7 +130,7 @@ func (m *Model) renderHelp() []string {
func (m *Model) fmtHelp(key, desc string) string {
return style.AccentFg.Render(key) +
style.DimFg.Render(":" + desc)
style.DimFg.Render(":"+desc)
}
func renderNavEntry(lines *[]string, w int, label string, activeFg string, isCur, focused bool) {