Skip to content

Releases: kanzaki-chiya/Nocturne

Nocturne v0.20.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 07:37

插话与排队

  • 新增:对话进行中也能发消息。「插话」会在当前步骤结束后交给模型,用来中途纠正方向;「排队」会等这一轮完成后作为新的一轮发出。模型正在输出文字时不会被打断,等它说完再接上。
  • 新增:桌面端运行中 Enter 插话、Alt+Enter 排队;手机端用输入栏旁的「插话 / 排队」切换;TUI 运行中 Enter 插话、Tab 排队,Alt+E 编辑、Alt+X 撤回、Alt+T 切换方式、Alt+R 继续发送。
  • 新增:输入框上方列出还没发出的消息,发出前可以修改文字、在插话和排队之间切换或撤回;要换附件请撤回后重发。已送达的插话在消息流里带「插话」标签。
  • 新增:中断或出错结束的一轮,剩下的消息会暂停,不会自动发出;确认后点「继续发送」即可。关闭还有待发消息的会话时会提醒,待发消息不会保存到磁盘。
  • 说明:行模式 CLI 运行中仍然只能中断。

会话重命名

  • 新增:桌面侧栏的会话菜单可以直接重命名,手机会话菜单用弹框重命名;TUI 与 CLI 用 /rename <标题>,不带标题时恢复自动生成的标题。
  • 新增:手动起的标题优先显示,之后自动生成的标题不会覆盖它;不在运行中的会话也能改名。

其他

  • 新增:项目主页 nocturne.koxia.cn;README 改写为面向使用者的介绍和快速上手。

  • 改进:打开很长的会话更快,回放时界面不再卡顿。

  • 修复:桌面端 MCP 状态提示框不再被挤成一条窄列。

  • 修复:TUI 刚打开就发出的消息,之后按 ↑ 有时翻不出来。

  • 变更:内置 models.dev 快照刷新(2026-10-29,607 个模型)。

  • Windows 中继 tgz 冒烟:通过

  • Linux tgz 安装冒烟:通过

  • Linux 中继 tgz 冒烟:通过

  • macOS tgz 安装冒烟:通过

  • macOS 中继 tgz 冒烟:通过

Nocturne v0.19.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 14:37
  • 新增:桌面端「后台日志」页提供「按键诊断」,可查看焦点、输入法状态与快捷键处理记录,帮助排查快捷键偶发失效;记录仅保存在内存里,不采集普通输入内容,普通输入法按键也不会留下可还原拼音的物理键位。

  • 修复:中文输入法组字时,桌面端面板快捷键照常生效,Ctrl+P 可打开快速打开;Esc 仍用于取消输入法候选。

  • 新增:面板浏览器的网页和视频可以全屏显示,退出后恢复原窗口状态与面板位置;网页全屏期间应用快捷键交给网页处理。

  • 变更:TUI 与 CLI 的「轮」「子代理」「思考档位」等用词与桌面端保持一致,恢复提示使用中文说明。

  • 变更:内置 models.dev 快照刷新(2026-10-26,606 个模型)。

  • Windows 中继 tgz 冒烟:通过

  • Linux tgz 安装冒烟:通过

  • Linux 中继 tgz 冒烟:通过

  • macOS tgz 安装冒烟:通过

  • macOS 中继 tgz 冒烟:通过

Nocturne v0.18.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 10:11
  • 修复:桌面侧栏不再把同一后台里打开的会话误标为 🔒;锁标记只表示正在别的进程中使用。

  • 修复:手机网页和安卓 App 离开空闲会话后会释放它,运行结束后也会自动释放不再查看的会话,避免长期占用;等待确认或回答的会话继续保留。

  • 变更:内置 models.dev 快照更新到 2026-10-26。

  • Windows 中继 tgz 冒烟:通过

  • Linux tgz 安装冒烟:通过

  • Linux 中继 tgz 冒烟:通过

  • macOS tgz 安装冒烟:通过

  • macOS 中继 tgz 冒烟:通过

Nocturne v0.18.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 08:18

授权管理

  • 新增:设置里的「授权」页。按工作区列出你在确认时点过「本项目允许」的记录,可以逐条撤销或全部撤销;撤销立即生效,下一次同样的操作会重新询问。
  • 新增:桌面端可以直接信任项目。信任前会列出项目配置里将要运行的 MCP 服务器命令、Hook 和放宽的权限规则,确认后新开或重新打开的会话生效,不必再回终端执行 nctrn trust。
  • 新增:状态栏权限菜单底部显示「本会话已允许 N 项」,可以逐项或全部撤销,子代理同时生效。
  • 新增:由授权直接放行的工具调用标「已授权」,悬停可以看到是本项目还是本会话允许、授予时间和目标。旧会话记录照常显示「已授权」,只是不区分范围。
  • 新增:手机网页可以查看和撤销项目授权、本会话授权;信任项目仍然只能在电脑上操作。
  • 新增:TUI /grants 授权管理页;CLI nctrn grants list|revoke 命令,会话内 /grants、/grants revoke <编号>。

桌面端

  • 修复:设置页的滚动条贴在窗口右边,不再停在内容中间。
  • 修复:权限菜单在对话进行中打开时不再出现横向滚动条,底部说明会换行。
  • 修复:定时任务保存后刷新列表时,不再丢掉删除任务的二次确认。

运行时

  • 改进:MCP 按需调用找不到目标工具时,列出可用的服务器,并提示先搜索工具。

兼容性

  • 旧日志和配置仍可读取,不提升日志格式版本,不新增事件类型。新增可选字段 tool.started.permission.grant、permission.resolved.grant,旧版本会忽略。授权文件格式不变。

  • 变更:内置 models.dev 快照更新到 2026-10-26。

  • Windows 中继 tgz 冒烟:通过

  • Linux tgz 安装冒烟:通过

  • Linux 中继 tgz 冒烟:通过

  • macOS tgz 安装冒烟:通过

  • macOS 中继 tgz 冒烟:通过

Nocturne v0.17.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 19:22

运行时

  • 新增:定时任务。桌面端可以按计划自动运行任务,只在 Nocturne 打开时运行,错过的只补最近一次。每次运行新开一个会话;运行时无人值守,需要确认的操作会被直接拒绝,并在结果里标出被拒绝的次数。
  • 新增:也可以在对话里让模型创建、修改、暂停或删除定时任务。这些动作默认都要你确认,包括「全部放行」预设。
  • 变更:一轮里可以多次自动压缩上下文。以前每轮修剪和摘要各只能做一次,长任务跑到后面上下文再涨满时会以「压缩失败」中断,只能手动发「继续」;现在每次模型回复后重新计算。摘要失败后本轮仍不再重试摘要。
  • 新增:任务清单还有未完成项、而模型连续 30 次工具调用都没更新清单时,会在工具结果后附一句提醒,让面板跟上实际进度。
  • 新增:修剪上限。上下文里的旧工具输出超过 20 万 token 就会修剪(换成占位,保留工具名和参数摘要),不再等到窗口的 80%——对 500k、1M 窗口的模型来说,以前几乎永远不会修剪。只修剪,不会因此提前摘要。可用 compaction.pruneLimit 调整,设 0 恢复只按窗口比例。
  • 新增:MCP 工具按需加载。MCP 工具的说明合计超过 1 万 token 时,不再逐个列给模型,改为两个固定工具:先搜索、再调用。权限规则、授权和 Hook 都按实际调用的工具生效,照常可用;工具列表保持不变,不影响提示缓存。可用 mcp.toolSearch(auto / always / never)调整。

模型与服务商

  • 修复:模型限额未声明的提示只写真正缺的那一项。以前只缺最大输出时也会说「上下文按 128000 估算」,看起来像预算被压小了。只缺最大输出、而协议本来就不发送这个值时(OpenAI 兼容、Responses、Gemini),不再提示。
  • 修复:上游声明的最大输出不小于上下文窗口时视为填错,按未声明处理;服务商页把这类值显示为灰色删除线。自己在设置里填的值不受影响。

桌面端

  • 新增:侧栏「新会话」下方的「定时任务」页,可以新建、编辑、立即运行和查看运行历史;定时任务开的会话单独成组。手机网页可以查看和立即运行。
  • 变更:模型菜单显示模型的显示名(例如中文名),没有才显示模型 id;模型不少于 8 个时顶部有搜索框,可按显示名、id、服务商名搜索。
  • 修复:会话里的警告停在出现的位置,随对话往上滚走,不再一直钉在消息流末尾。
  • 修复:提问卡片的「其他」输入框改为多行,粘贴的分条内容不再被压成一行。
  • 新增:经 MCP 按需加载调用的工具,在对话、确认卡片和手机网页里照样显示真实的工具名和参数;/context 标出按需模式下未列出的 MCP 工具数。

兼容性

  • 旧日志和配置仍可读取,不提升日志格式版本,不新增事件类型。新增的可选字段:tool.started.target、会话 meta.schedule、ModelInfo.requiresMaxOutputTokens、视图里提示的 afterEntry;旧版本会忽略它们。新增配置 compaction.pruneLimit、mcp.toolSearch 均有默认值;定时任务存在 <NOCTURNE_HOME>/schedules.json。

  • 变更:内置 models.dev 快照更新到 2026-10-26。

  • Windows 中继 tgz 冒烟:通过

  • Linux tgz 安装冒烟:通过

  • Linux 中继 tgz 冒烟:通过

  • macOS tgz 安装冒烟:通过

  • macOS 中继 tgz 冒烟:通过

Nocturne v0.16.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 10:31

运行时

  • 新增:重复调用保护。同一个调用(工具名、入参、结果正文都相同)在一轮里连续第 3 次返回完全相同的结果时,工具结果后会附一段提示,让模型换做法或停下说明情况;连续第 6 次时这一轮以「检测到重复调用」结束,不再继续空转。只看连续重复,跨轮和结果在变化的轮询不受影响;子代理同样生效。阈值可用 turn.loopGuard 调整({ "warnAt": 3, "stopAt": 6 }),设 false 关闭。
  • 变更:上下文修剪后如果仍然超过修剪线,同一轮里会接着做一次摘要,不再等下一次越过摘要阈值。压缩阈值本身不变。

兼容性

  • 旧日志和配置仍可读取,不提升日志格式版本;不新增事件类型或字段,turn.loopGuard 是新的可选配置(只出现在手写的 config.json 里)。旧日志在新版本下按新规则重建上下文。

  • Windows 中继 tgz 冒烟:通过

  • Linux tgz 安装冒烟:通过

  • Linux 中继 tgz 冒烟:通过

  • macOS tgz 安装冒烟:通过

  • macOS 中继 tgz 冒烟:通过

Nocturne v0.15.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 08:06

模型与服务商

  • 新增:Magpie Agent 插件(packaging/magpie-plugin)。在 Magpie 的 Agent 页连接 Nocturne 后,Nocturne 多出一个只读的 Magpie 服务商,使用 Magpie 管理的订阅账号和 API 服务商;Magpie 选定的模型成为默认模型,断开后恢复原状。网关 key 只在请求时读取,不复制进 Nocturne 的配置或凭据存储。

  • 新增:配置分层多了一层只读的 <NOCTURNE_HOME>/magpie.json,位于用户配置之上、项目配置之下;/provider、/settings 会标注来源为 Magpie。

  • Windows 中继 tgz 冒烟:通过

  • Linux tgz 安装冒烟:通过

  • Linux 中继 tgz 冒烟:通过

  • macOS tgz 安装冒烟:通过

  • macOS 中继 tgz 冒烟:通过

Nocturne v0.14.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 18:37

模型与服务商

  • 新增:OpenCode Zen 的 9 个和 Go 的 2 个 Gemini 模型可用,支持原生协议、思考摘要及工具调用思考签名回传。Go 的 gemini-4-argon-contributor 在 models.dev 没有能力项,要使用思考档位需在模型编辑里把「推理」设为「是」。
  • 变更:OpenCode 预设的模型请求按 models.dev 走官方 /inference/... 新地址;模型列表仍使用原条目地址。
  • 新增:TUI、桌面端与 CLI 的模型编辑可以指定接口地址,留空自动选择。
  • 变更:TUI 和 CLI 的模型编辑里,「接口地址」紧跟在「协议」之后,与桌面端顺序一致。
  • 变更:内置 models.dev 快照更新到 2026-10-24。

运行时

  • 修复:工具启动的命令不再继承 nctrn 自己注入的 NODE_ENV=production(Hook、MCP、外部 agent 同样)。此前在 nctrn 里跑测试或构建会按生产环境执行;你自己设置的 NODE_ENV 照常继承。
  • 修复:Windows 上终止命令或子进程时,进程树清理不再半途而废。旧版只等 taskkill 2 秒就放弃,在负载较高、taskkill 启动较慢的机器上,命令被中断或超时后它启动的子进程和孙进程可能留在系统里。
  • 修复:长任务中途压缩上下文后,模型不再把原始请求当成新请求而从头开工。原始请求现在排在摘要之后、最近的进展之前,摘要也会写明已提交的提交、任务清单的真实状态和下一步。
  • 变更:子代理超时或失败时,返回给主代理的结果会附上它已完成的工具调用清单和最后一段文字,并注明未完成,不再只有一句「超过 N ms 未完成」。
  • 变更:命令输出或技能正文超出单次上限被截断时,会说明总长、省略的行号范围和用 read 续读的 offset;整文件 read 超出字符预算时按整行截止并给出下一段的 offset。

兼容性

  • 旧日志和配置仍可读取,不提升日志格式版本。写入 gemini 协议或模型接口地址后的 providers.json 降级到旧版本时可能整文件被判无效(ADR-0061 §5);降级前需清除这些新字段。

  • Windows 中继 tgz 冒烟:通过

  • Linux tgz 安装冒烟:通过

  • Linux 中继 tgz 冒烟:通过

  • macOS tgz 安装冒烟:通过

  • macOS 中继 tgz 冒烟:通过

Nocturne v0.13.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 09:04

桌面端

  • 变更:界面字号和圆角统一,最小字号提到 12px。

  • 变更:文案统一:对话的一个来回都叫「轮」(状态栏显示「第 N 轮」,用量页「会话 / 轮」),task 都叫「子代理」,子代理档位里的「思考强度」改为「思考档位」;MCP 传输写「本地命令」「远程地址(HTTP)」;手机上不再提示运行 nctrn trust。标签和状态值之间不再用「 · 」隔开,状态值改用弱化色。

  • 变更:去掉了常驻的按键提示:输入框下方不再显示「Enter 发送 · Shift+Enter 换行」;权限卡、提问卡和快速打开里的按键提示改成按键框,不再用分隔符。远程页的信任说明收进「你需要信任谁」折叠,agent 浏览器标签上的说明缩短为一句,接管的含义放到「接管」按钮的悬停提示里。

  • 新增:打开项目里的会话时,对话页顶部会显示打开时的警告,例如「项目配置未信任」(此前只有命令行会显示)。手机网页同样显示,并把命令行指令改成「请在电脑上信任该项目」。

  • 修复:权限确认卡出现时不再带浏览器默认的粗焦点框,改成和提问卡一样的强调色边框;用 Tab 移到卡片内按钮时仍看得出焦点位置。

  • 变更:子代理的任务原文为空时,摘要兜底显示「子代理」(原来是「子任务」)。

  • 修复:每轮文件更改和撤销确认里的「shell 调用」计数把面板浏览器、子代理和 MCP 工具也算成了 shell。现在按类别说明(如「未计入统计:命令 2 次、MCP 工具 1 次」),面板浏览器的操作不再计入;TUI 与 CLI 的回退页同样按类别说明。

  • Windows 中继 tgz 冒烟:通过

  • Linux tgz 安装冒烟:通过

  • Linux 中继 tgz 冒烟:通过

  • macOS tgz 安装冒烟:通过

  • macOS 中继 tgz 冒烟:通过

Nocturne v0.12.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 12:52

桌面端

  • 新增:agent 可以操作面板里的浏览器。详见下文。
  • 新增:在右侧面板查看子代理的执行过程。详见下文。
  • 修复:打开或切回很长的会话时,界面停在回放中途,一直显示运行中,要点停止才恢复。同时,长会话里刷新上下文用量也快了很多。

agent 可以操作面板里的浏览器:在设置里打开「面板浏览器 · 桌面内置」开关(默认关闭,启用后重启后台生效)并确认风险后,agent 经本机回环 MCP 只操作自己的面板标签(打开网页、截图、读取、点击、输入等),不碰用户的标签。截图显示在电脑上的工具行里;手机上和别的图片一样只显示占位,不把截图拉到手机。agent 用专用的持久目录,不和用户浏览数据共用;需要登录时,在 agent 的标签里点「接管」登录,再点「交给 agent」交回。用户点进 agent 的标签也会自动接管。标签不可见时(切到别的会话、进设置页、关面板、选别的标签)agent 在后台离屏位置照常操作,不盖住主界面,切回来后标签回到正常位置,任务在你离开期间跑完也一样,标签全部关掉后会话才按原规则关闭;离屏期间标签上的 agent 徽标带活动状态。启用即表示接受以下风险:选了「本会话允许」后,同一个工具后面不再逐次确认;smart 只看工具主体,不看网页内容,不能识别网页上的敏感操作。agent 不能打开 file://、应用自己的地址和开发地址;下载直接取消,不弹另存为;网页的脚本对话框(alert、confirm、prompt)不自动答复,agent 标签上方的横幅显示对话框内容,由用户点确定或取消(prompt 可以填写),agent 在用户答复后继续。手机发起的 Turn 也可以用这组工具,权限照常处理。

桌面端现在可以在右侧面板查看内置子代理的执行过程:从会话概览的「子代理」分组或 task 工具行的「在面板中查看」打开,实时查看思考、工具和输出,结束后保留结果、状态与耗时。标签跟随父会话并在重启后从日志恢复;全程只读,不向子代理发送消息、批准权限或中断任务。非正常退出的日志明确标为「未收束」。外部 agent 仍在主对话显示进度和结果,概览中只读列出,不提供面板标签。

  • Windows 中继 tgz 冒烟:通过

  • Linux tgz 安装冒烟:通过

  • Linux 中继 tgz 冒烟:通过

  • macOS tgz 安装冒烟:通过

  • macOS 中继 tgz 冒烟:通过