Proma v0.12.23
对比基准:v0.12.1
这一版把重心放在整体观感上:一次全局视觉质感升级(字体、阴影、圆角 token 重做 + 原子组件改造),以及三个深色特殊主题经过多轮打磨后的配色定稿——其中「苍穹暮色」正式更名为「远山暮霭」。功能侧,预览支持侧边分屏、智谱 GLM-5.2 带来 1M 超长上下文、定时任务新增月度调度并默认按自然日切片会话。稳定性方面,彻底修正了困扰已久的上下文占用量显示失真问题,并清理了 worktree 改动面板、外部 MCP 加载、定时任务等一批缺陷。
新功能
- 全局视觉质感升级 — token 重做 + 原子组件改造 + 字体升级。引入 Inter Variable 字体并启用
cv11/ss01/tnumOpenType 特性;新增--radius/--shadow-*五档 elevation token(亮 / 暗双套,暗色叠加 inset 顶高光制造浮起感),覆写 Tailwind 内置 shadow / radius,让现有 78+ 处 shadow 类、308+ 处 rounded 类零业务改动整体升级。原子组件(Button/Input/Textarea/Dialog/Popover/DropdownMenu/Select/Sheet)统一改为 hairline border + 多层柔阴影 + 双层 focus glow + active scale。顺带修复了SearchDialog/SettingsDialog/ImageLightbox/TabSwitcher四处浮层 backdrop 模糊逃逸的问题。新增依赖@fontsource-variable/inter@5.2.8 - 深色主题精修与配色焕新 — 三个深色特殊主题经过多轮迭代后定稿:建立清晰的 elevation 阶梯、可见 hairline border、明亮的 focus ring,并统一按「背景调灰、显眼小块加饱和」的配色公式收敛饱和度,逃出「中等饱和 + 低亮度」的色彩泥潭。「苍穹暮色」正式更名为「远山暮霭」(雾蓝灰雾感配色,与「晴空碧海」形成昼 / 夜对偶,预览图用 GPT Image 2 重绘为层叠远山);「森息夜语」收为雾绿灰;「莫兰迪夜」保持克制。文字选区按主题分组适配,深色主题下侧边栏选中态、定时任务入口图标 / 数字不可见或颜色错乱的问题一并修复。theme id 保持不变,不影响老用户已选主题
- 预览支持侧边分屏 — 预览除了以 Tab 形式打开,现可常驻在右侧分屏。新增持久化偏好
previewModePreferenceAtom(标签页 / 分屏,默认标签页),可在外观设置里切换,也能直接把预览 Tab 拖出上下边界转为分屏(带高亮提示与 24px 缓冲避免误触)。PreviewTabContent顶栏新增PanelRight显式入口,偏好切换按钮明确标注「仅影响下次打开」 - GLM-5.2 与 1M 超长上下文 — 智谱(zhipu / zhipu-coding)渠道默认模型追加 GLM-5.2(默认启用)和 GLM-X-Preview[1m],支持 1M 上下文窗口,连通性测试改用 glm-5.2。同时把
supports1MContext/inferContextWindow抽到packages/shared作为单一事实来源,修掉前后端模型列表不一致的旧问题 - 月度定时任务调度 — 定时任务新增
monthly模式,可在日历选择器里挑每月某天(1–31)。正确处理短月边界(选 31 号时在 2/4/6/9/11 月落到月末),列表与表单都会提示「短月落在最后一天」,避免误以为漏跑;建议表达「每月底」时优先用 28 号 - 定时任务默认按自然日切片会话 + 上下文安全阀 — 会话模式默认从「每次新建」改为「按自然日」:同一天内多次触发复用同一子会话、跨天自动新建,既保留当天上下文又不会无限累积。叠加 70% 上下文占用率安全阀——同日复用前若上一会话占用已达 70%(与 SDK 77.5% 自动压缩阈值留 7.5% 余量),主动切到新会话。
reuse(始终复用)保留为高级选项。索引版本 1→2 自动迁移,回滚场景改为只读降级而非清空,避免丢失 automation 配置 - 定时任务跨运行记忆机制 — automation skill 升级,引导 Agent 在创建任务时就把「读取 / 滚动维护工作区
notes.md」写进 prompt,让每次自动触发形成自我迭代闭环;约定.context/automation/<task-slug>/notes.md路径与 kebab-case 命名,并强调滚动清理过时条目避免变成新的上下文负担 - 点击工作区标题折叠 / 展开会话列表 — 侧边栏工作区标题可点击折叠其下会话列表,标题前新增可旋转的
ChevronRight指示图标并补齐aria-expanded/aria-controls无障碍属性(折叠状态刻意不持久化) - 文件芯片右键「在文件管理器中显示」 — 右键路径芯片可直接在系统文件管理器中定位该文件,新增
shell:show-item-in-folderIPC 通道,无工作区路径限制 - 编辑文件时自动切换到文件所在 Tab — 文件面板拆成 session / workspace / changes 三 Tab 后,Agent 写文件触发的自动定位高亮会同步切到文件所属 Tab,避免高亮落在不可见的 Tab 上;仅响应 Agent 写入、不抢占用户手动切换
- 定时任务表单自动保存状态徽章 — 编辑表单名称右侧新增 5 态保存指示器(idle / dirty / saving / saved / error),无论在左栏写描述还是右栏改配置都能即时确认改动已保存;成功路径不弹 toast,仅失败时提示,避免连续编辑时的通知轰炸
- 搜索弹窗复用会话迷你地图预览 — 搜索结果的会话预览改为复用左栏的
SessionMiniMapPopover(portal 到 body + 高 z-index),不再被弹窗的 overflow 裁剪或被列表项遮挡,与左栏共享预读缓存,净减约 226 行自实现预览代码 - 侧边栏按钮细节打磨 — 新会话 / 搜索按钮去掉暗示「未完成」的虚线 border,改为与
Input/Card同款实线 hairline;展开态新会话主按钮补上动态⌘N快捷键提示(跟随用户自定义快捷键),气质对齐 Linear / Raycast 命令栏
Bug 修复
- 彻底修正上下文占用量显示失真 — 贯穿多个 PR 的修复线。明确 Anthropic API 的
input_tokens/cache_read_input_tokens/cache_creation_input_tokens是三个分立可相加的字段(启用 prompt caching 后上下文绝大部分落在cache_read上),占用量 = 三者之和。修复点:① OpenAI 兼容渠道(zhipu / openai / doubao / qwen / custom)的prompt_tokens已含缓存命中部分、映射到 Anthropic schema 时未扣减,导致缓存被计两次、显示值约为真实值的 1.5–2 倍;②result.usage是整个 query 内所有模型调用的累计求和,被当作当前上下文会让进度环虚高冲破 100%——complete 分支只信任流式 usage,不再用累计值覆盖 token;③ 真实contextWindow未透传、分母永远显示 200K,现经context_window事件透传,智谱等端点剥掉[1m]后缀导致误判窗口的问题改用用户原始选择修复;④ 模型 / 会话切换时清空旧值,避免残留上一会话数据。Popover 新增数据时效提示 - 外部 MCP 服务器因缺少 type 字段加载失败 — 手动编写的
mcp.json通常不含type字段,导致服务器被静默跳过、UI 显示 undefined。现在读取后自动按command→ stdio、url→ http 推断类型,配置不完整时输出 warn 而非静默丢弃,UI 把未知类型显示为「未知」 - 带 BOM 的 SKILL.md 解析失败 — 带 BOM 字节的
SKILL.md会导致 frontmatter / version 解析失败、版本误判为 0.0.0 触发不必要的更新。parseSkillFrontmatter/parseSkillVersion/extractSkillBody/rebuildSkillMd统一增加 BOM 处理 - 文件改动面板找不到 worktree 及选中报错 — worktree 选择器三个问题逐层修复:下拉为空(改为从工作区附加目录自动探测 git 仓库根并过滤失效路径)、选中后报「不是 git 仓库」(worktree 在主仓库外被路径授权拦截,新增回溯主仓库的
ensurePathAllowedWithWorktree放行逻辑、安全边界不变)、看 diff 会污染会话目录(移除多余的attachDirectory,「看 diff」与「授予 Agent 访问权」彻底解耦) - 消除 worktree 选择器加载闪现 — 改动面板的
WorktreeSelector下沉到DiffChangesList,加载期间不渲染、仅在有数据时显示,去掉 tab 栏下方的冗余行 - task_notification 不再截断进行中的回复 — Agent 思考 / 输出过程中收到后台任务完成通知时,回复不再被错误切成两块;仅在没有进行中 turn(真正的后台唤醒场景)时才设唤醒边界
- 归档会话发送消息时立即取消归档显示 — 给归档会话发消息时做乐观更新,发送瞬间即把它移回未归档列表并刷新时间,不必等流式输出结束
- 删除 Agent 会话后右侧文件面板不再报 ENOENT —
list-directory对已不存在的目录优雅返回空列表,并清理滞留的会话工作目录路径映射 - 修复 ModelSelector 在瞬态 null 时误显「选择模型」 — 在
AgentView层保持上一次有效的模型选择,避免启动时序 / 工具栏 remount 等竞态把已选模型变回 null - 教程加载失败显示错误状态 —
tutorial.md缺失或读取失败时不再永久卡在「加载中」,归一化为 loading / ready / error 三态显式呈现 - 会话引用大文件时引导智能读取 — 通过
&session:引用其他 Agent 会话时,提示优先用 Grep 搜索关键词定位相关片段再局部读取,避免一次性 Read 整个大文件带来的性能与 token 问题 - 定时任务一批修复与体验调整 —
- 子会话持久化
modelId,避免打开自动任务触发的子会话时输入框模型选择被清空 - 「无工作区 / 无模型」视为草稿态,禁止启用和立即运行并自动打开编辑面板提示补全;工作区改为必选、新建时默认填当前工作区,启用副文案动态列出真实缺失项
computeNextRunAt调度字段改为可选,修复 monthly / daily / weekly 场景下的 tsc 报错;并修复 31 号 + 短月时Date.setMonth溢出跳过整月的问题- Windows 下关闭按钮不再与原生窗口控制按钮重叠;按钮布局调整(移除右栏「运行一次」、底部新增「运行测试」)
- 上下文占用率改为计入 cache token 并从会话 JSONL 尾部惰性解析,避免高频任务全量 parse
- 子会话持久化
下载
- macOS Apple Silicon —
Proma-0.12.23-arm64.dmg - macOS Intel —
Proma-0.12.23.dmg - Windows —
Proma-Setup-0.12.23.exe