Releases: snnh/openwebcode
Releases · snnh/openwebcode
Release list
v1.3.8
修复
- 思维链回传摆放修正:reasoning item 改为每个 function_call 前各放一条——DeepSeek 思维模式要求每个工具调用都有紧邻的完整思维链,function_call_output 会打断关联链,1.3.7 只在 assistant 消息前放一条,多工具调用轮仍必 400「The
reasoning_textin the thinking mode must be passed back to the API」(摆放规则经真实端点探针逐项验证)。 - 思维链回传被能力声明关闭且历史含同源 thinking 块时,server 日志留一行提示(此前该配置下 DeepSeek 必 400 但无任何可诊断线索)。
文档
- 出站代理补充:systemd 服务不继承登录 shell 的代理环境变量(env 模式等于直连,更新检测失败最常见原因);仅支持 http/https 代理(socks5 拒绝);低于 1.2.0 无代理支持时的自举更新方法。
v1.3.7
修复
- OpenAI Responses 接口遵循模型目录「思维链回传」设置:开启时历史同源 thinking 块以 reasoning item(
reasoning_text明文)回传——DeepSeek 思维模式(如 deepseek-v4-flash)强制要求回传,此前第二轮起必现 400「Thereasoning_textin the thinking mode must be passed back to the API」;关闭或 OpenAI 官方端点(声明不回传)行为不变。
v1.3.6
修复
- agent bash 持久 shell 不再被分页器挂死:pty 是 TTY,
git log/gh等会启动 less 等待交互导致命令挂到超时(典型表现:工具调用几十秒无返回)。三种 shell(bash/pwsh/cmd)启动时统一置PAGER=cat、GIT_PAGER=cat;人类真终端不受影响。 - 持久 shell 输出清洗对齐 pi:剥离控制字符与 Unicode Format 字符(防二进制垃圾进入上下文),
\r统一归一(进度条覆写帧直接拼接,不再残留回车控制符)。
v1.3.0
初步添加linux版对arm和龙芯的适配
界面设计语言统一专项:引入可复用交互基元(弹层、确认框、徽标、输入框、折叠行、空态/错误态),全面 token 化(字号、圆角、阴影、遮罩、diff 色、z-index),并修复一批界面瑕疵与可靠性问题。
界面与体验
- 新增设计基元:
Overlay弹层组件(Esc/背板关闭、焦点循环与归还)统一命令面板、Quick Open、快捷键速查、通知中心、代码视图五个弹层;ConfirmDialog+useConfirmDialog取代全部原生window.confirm;.pill徽标、.input输入框、.collapse-row折叠行、.composer-popup建议弹层、.muted-empty空态、.panel-error行内错误(带role="alert")六套样式基类收敛全站重复实现。 - 视觉语言 token 化:字号半点值归入整数阶梯(新增
--text-2xs)、font-weight统一 600、圆角收敛为--radius-s/--radius/--radius-l/--radius-xl四档、弹层阴影--shadow-lg与遮罩--backdrop按主题定义、diff 颜色(--diff-add/del-bg/text)亮暗分主题、z-index 归为 11 档分层变量、内容宽度--content-max。 - 可访问性:键盘可见焦点补齐五处缺口(模式下拉、弹层输入、会话内搜索、工作区区域、开关控件);次级文字
--text-3两主题对比度提升至 WCAG AA 档;Unicode 字符图标(✓✗●○■ 等)全部迁入描边 SVG 图标组件,EmptyState 步骤序号改 CSS 计数器。 - 修复:快捷键 Ctrl+P 与浏览器默认冲突(
defaultPrevented检查)、触屏设备 hover 不可达的操作按钮兜底、通知/Toast 错误态样式、徽标在窄屏的截断、自定义强调色非法值残留(回落 graphite)、on-accent 文字色改 WCAG 对比度计算。
服务端修复
- 快照后端支持显式 pin zfs(此前仅 auto 探测链支持);
defaultEffort存储前校验枚举,非法值(如环境变量直写)不再带进运行时。 - 中断补写失败落 stderr 留痕(不再静默,provider 400 可诊断);OpenAI Responses 接口同一 call_id 重复的 function_call 只内联一次(避免被 API 拒绝)。
CI 与打包
- loongarch64 交叉构建产物强制校验目标架构 ELF(防 toolchain 静默回落主机编译器);bundled Node 哈希校验左锚加固;手动下载示例改
<arch>占位。
v1.2.0
Linux 体验与功能专项:快照新增 overlayfs 后端(原语下沉 core C 层)、出站代理设置、安装器 systemd 更新/重装判定、沙盒能力误报修正与界面平台适配。
快照
- 新增 overlayfs 快照后端(Linux):core 新增
overlay.mount/overlay.checkpoint/overlay.restore/overlay.unmount原语(root 走内核 mount,rootless 走 fuse-overlayfs,检查点 reflink 复制优先),core.ping上报features.overlay。探测链变为 btrfs → zfs → overlayfs → git-shadow;ext4 用户不再只有线性成本的 git shadow。会话在 merged 视图中工作、源目录只读,改动在文件面板确认后手动同步回源(复用托管工作区同一套机制);有运行中任务时回滚返回可读错误。
网络
- 新增出站代理设置:关闭 / 跟随环境变量(
HTTPS_PROXY/HTTP_PROXY/NO_PROXY)/ 自定义三模式,自定义支持 HTTP、HTTPS 代理与例外列表(后缀/精确/通配匹配,回环默认绕过)。作用于模型 API、联网搜索/抓取、更新检测与在线更新;界面保存热生效,代理凭据脱敏不出服务端。亦可用OWC_PROXY_*环境变量配置。
安装与更新(Linux)
- 安装器解析既有 systemd unit 的启动路径:同路径判定为更新(保留服务启用状态与启动器变量,一次确认),不同路径提示「切换服务 / 仅装文件 / 中止」,防止双安装抢端口;未检测到可用的 systemd 时不再询问写服务。
- 重跑 install.sh 保留启动器中已设置的端口、数据目录、监听地址与 pin 的系统 Node(命令行显式参数仍最优先)。
- 在线更新修复重启竞态:
Restart=on-failure下 clean exit 不拉起、try-restart对已停止服务无效,此前更新后服务可能停在停止状态;同时支持系统级 unit 自动重启。--use-system-node安装更新不再重复复制约 100MB 的 Node 运行时。 - 安装结束检测
<prefix>/bin是否在 PATH 并给出 export 指引;新写 systemd unit 增加加固指令(NoNewPrivileges等);卸载提示loginctl disable-linger。
沙盒与界面平台适配
- 修复 Linux 沙盒能力误报为「兼容模式(Job Object,无文件系统隔离)」——实际为 Landlock,界面与 capability 上报现已一致;界面按平台出文案:Linux 显示 Landlock 语义、隐藏 AppContainer / Windows Sandbox / Bind Link 选项与提示,shell 选择器隐藏 CMD / PowerShell。
- Landlock 强制模式新增
/tmp、/dev读写与/proc、/sys只读豁免:沙盒内 mktemp、编译器中间文件、测试框架不再批量 EACCES。 - exec 的内存 / 进程数限制在 Linux 经 setrlimit 落地(此前被静默忽略);
fs.stat修改时间在 Linux 提供毫秒精度。
安全与其他
- 数据目录 0700,服务商配置(明文 API Key)、设置文件、会话转录等敏感文件 0600(POSIX 新写入生效);core stderr 归档
<数据目录>/logs/core.log(5MB 轮转,保留一代)。 - 优雅退出加固:第二次 Ctrl+C 立即强制退出、shutdown 5 秒超时兜底、POSIX 接入 SIGHUP;默认 corePath 按平台区分(修复 Linux 手动启动默认指向
.exe)。
v1.1.1
设置界面重组与提示词配置扩展:联网服务与模型选择独立成页,提示词支持全局/项目两级与更多配置面;移动端密度进一步优化。
界面与体验
- 移动端密度优化:零计数芯片(含「定时」)整行隐藏、会话信息条单行紧凑(过长省略号收缩)、Composer 控制行收档(长模型名省略号)、消息区侧距与 Markdown 表格降档;修复空输入框常显滚动条轨道的问题。
- 设置页签拆分:新增「模型选择」(会话默认 + 四档角色 + 快速模型)与「联网服务」(联网服务商与 search/fetch 当前配置)两个独立页签,「模型目录」保留模型服务商与目录同步。
提示词
- 提示词设置升级为「全局 / 当前项目」两级作用域,并新增两个配置面:身份行与子代理附加指令(连同基线覆盖、追加指令共四面)。项目级逐面覆盖全局,优先级 env-sim persona > 项目 > 全局 > 内置,保存即热生效;子代理附加指令对 explore/general/自定义子代理统一生效。
变更与修复
- 移除「快速模型最大输出上限」设置项:输出上限改由各任务按需指定(压缩 2048、翻译 4096、审核 256 等),不再受全局钳制;残留的用户覆盖值自动清理。
- 修复扩展私有存储在 Linux 不拒绝
C:/形态路径的跨平台校验漏洞。 - 修复 core
pty.input在 ptyId 未找到分支的 3 字节内存泄漏(CI ASan 任务检出)。
v1.1.0
多模型角色与工程化专项:新增四档模型角色与会话默认模型,子代理可按任务下发到不同模型执行;SCM 与文件预览大幅增强;第三方扩展 API 面向官方扩展能力看齐;修复快照回退后无法继续等一批问题。
模型与服务商
- 多模型四档角色:极致(高智能)/ 平衡 / 快速 / 廉价,在「设置 → 模型选择」分别指派到任意已启用服务商的模型。
spawn_task/spawn_swarm子代理可按任务用role参数选择角色下发;自定义子代理 frontmatter 新增role:与provider:声明;用量与成本按实际生效的服务商与模型归属。 - 新增「会话默认模型」设置项:新会话默认模型不再固定取第一个服务商的第一个模型。
- 设置「模型接入」重组为「模型选择」(会话默认 + 四档角色,快速模型设置并入)与「模型目录与同步」两组。
SCM 与文件预览
- SCM 面板支持行内 stage / unstage / discard(删除未跟踪文件需二次确认),新增提交历史区与 worktree 一键合回(冲突结构化展示)。
- agent 写文件或编辑器保存后 SCM 面板自动刷新,不再过期。
- 文件预览:超过 2000 行可「加载更多」分页续读;图片直接预览(png/jpg/gif/webp/svg/ico/bmp);Markdown 渲染/源码双态;一键在编辑器中打开;未跟踪文件点开显示内容而非空 diff。
扩展
- 第三方扩展 API 面向官方扩展能力看齐:私有存储(extensions-data,单文件 1 MiB、总量 50 MiB)、REST 路由注册(
/api/ext/<id>/*,http:route权限)、模型调用通道(model:fast权限)、提示词与工具塑形权限(prompt:shape/tools:shaping,不再官方独占)、会话级扩展状态(extensionState)。附examples/extensions/demo示例扩展与重写后的扩展开发文档。
性能与修复
- agent 的 glob/grep 工具切换到 core 四线程并行搜索 job:大仓库搜索提速且不再阻塞 core 主循环;老 core 按能力协商自动回退,工具行为不变。
- 修复快照回退后无法继续:回退进行中发消息返回 409(不再静默进队列)、回退完成后回收持久 shell、openai 系 SSE 流新增 idle 超时(默认 300 秒,仅 data 事件续命,半开连接可重试恢复;
OWC_PROVIDER_STREAM_IDLE_MS可调,0 关闭)。 - 修复索引重建对真实 core 必败(job.output 参数越界且输出未做 base64 解码),诊断与 SCM 的同类输出解码问题一并修复,并补充真实 core 端到端测试守住该链路。
- core 新增
fs.readBase64(20 MiB 上限,root-bound),为图片预览供数。 - 新增 10 万文件级索引基准,接入发布性能门禁(10 万文件/21 万符号下查询 p95 约 41ms)。
界面与其他
- 移动端:抽屉遮罩、紧凑顶栏、状态栏并入底部面板标签条、Popover 视口自适应、iOS 安全区适配。
- 新增
agentMaxTurns设置项(1–1000,热生效,可用OWC_AGENT_MAX_TURNS覆盖)。 - 工程化:server/web 接入 ESLint 并纳入 CI 强制、依赖审计与测试覆盖率上传(非阻断)、Dependabot 周更、core 增加 clang-tidy 与 Linux ASan CI 任务、
.gitattributes固化换行符规则。
v1.0.1
安装与局域网访问体验专项:局域网访问从「手工配置三个环境变量」收敛为「改一个监听地址」,Linux 安装器补齐 root/systemd/防火墙/卸载全链路。
安装与局域网访问
- 非回环监听开箱可用:未显式配置时访问令牌由服务端首次启动自动生成并持久化(
<数据目录>/access-token,0600),启动后控制台打印带令牌的一键访问链接;OWC_ACCESS_TOKEN(≥32 字符)仍可显式覆盖。 - 浏览器来源校验缺省同源自动放行(与访问地址同源的 origin 直接放行),不再强制手工配置
OWC_ALLOWED_ORIGINS;显式设置时维持严格列表。 - 设置 → 远程访问新增「访问链接」卡片:令牌 masked 展示、链接逐条复制、首条链接二维码(手机扫码即登录);自动生成的令牌可一键重新生成,旧链接与已登录设备立即失效。
- Linux 安装器:root 系统级安装(默认
/usr/local+/var/lib/openwebcode,--system显式声明);--with-systemd按 root/用户分层写 unit;--enable-service立即启用并启动服务;--lan一键开启局域网访问;--open-firewall自动放行防火墙端口(firewalld/ufw);局域网安装结束时直接打印访问链接。 - Linux 卸载脚本:安装时落盘
<prefix>/bin/owc-uninstall(发行包同附uninstall.sh),停止并移除 systemd 服务、删除运行时与启动器;数据目录默认保留,--purge-data一并删除,--remove-firewall移除防火墙规则。 - Windows MSI 完成页新增默认勾选的「Launch OpenWebCode」:安装结束即启动服务并打开浏览器。
修复
- 设置对话框搜索框:通用对话框输入规则覆盖了搜索框内边距,导致搜索图标与占位文字重叠;恢复图标左侧 28px 让位。
v1.0.0
首个公测版本。本节为完整项目发版日志,按主题汇总 0.1.0 首个公开版本以来的全部能力;逐版本明细保留在下方各节。
核心能力(Agent 与会话)
- 浏览器打开即用的 AI 编码工作台:三层架构(React WebUI ─ Node 服务层 ─ C 执行器 core),Windows/Linux 原生支持,自带沙盒隔离、快照回滚与上下文管理。
- 完整 Agent 工具链:文件读写/编辑、bash、glob/grep、任务清单、长期记忆、文件引用、Shell 快捷命令、网络抓取与可插拔搜索。
- 会话树导航:任意用户消息可分叉、编辑后重发、对 assistant 回复重新生成;会话从线性历史升级为树。
- 消息记录父消息/运行/轮次归属并可在时间线查看;持久化运行队列支持查看、重排、取消与安全插队。
ask_user结构化提问:agent 运行中发起带选项的提问(单选/多选/自定义输入),回答持久化并注入后续轮次。- 三种 agent 模式:code(默认)/plan(结构化批准流:批准/编辑后批准/拒绝三分支)/goal(主模型自评未达成自动续跑,最多 10 次)。
- 四级权限档:逐次确认 / 接受编辑 / 模型审核(review,低风险自动放行留审计、高风险转人工)/ 完全自主;权限与沙盒正交。
- 子代理体系:
spawn_task单任务与spawn_swarm并行集群(2-16 项、并发上限 4、逐项指定 agent)、explore 只读与 general 通用两类内置类型、实时卡片与标签页转录、共享讨论板、WebUI 手动启动。 - cron 定时任务(会话内 5 字段,持久化并注入 follow-up 队列);Hooks 全事件与桌面通知;agent bash 持久 shell(cd/env 跨调用保持)。
- Skills、MCP(stdio + Streamable HTTP)、Hooks、自定义子代理、自定义斜杠命令与独立 Extension Host;官方扩展:PDF to Image、env-sim 环境模拟、owc-eval 评测。
owc run非交互 CLI(--json 出 NDJSON,面向 CI),中英双语帮助与版本输出。
上下文工程
- 上下文账本与窗口管理、两种压缩策略、选择性 pin/排除、分段 token 成本归因、Provider prompt-cache 断点。
- 工具结果滚动驱逐:lag 按轮计(默认 2)、当轮保护、豁免下限(小结果与短文件始终保留)、read_file 头 50 + 尾 50 行摘录降级、「默认节省」占位符与「超级节省」双模式,阈值会话级热调。
- 上下文窗口可视化:占用表、分段归因条、缓存命中胶囊与水位提示(建议压缩/强制压缩)。
模型与服务商
- 多配置服务商注册表:Anthropic Messages / OpenAI Chat Completions / OpenAI Responses 三种接口;多配置联网服务商(Jina / Brave / Tavily / Custom,Search 与 Fetch 分能力声明)。
- 模型目录:远程同步、持久化与手动编辑;能力声明覆盖思考/力度/文本图片视频输入/图片输出/工具/reasoningContent,逐模型覆盖;未声明模型默认上下文 256k,deepseek 前缀 1M。
- 思维链保留回传(reasoning_content)、服务商自定义请求体(extraBody)、输出长度默认不封顶;快速模型复用服务商配置并可独立设置思考与上限;Provider 并发控制(FIFO 排队)。
界面与体验
- 五区工作台(活动栏/侧栏/主区/底部面板/状态栏)、命令面板、Quick Open、统一快捷键注册表与通知中心。
- Monaco 编辑器与统一 diff:逐 hunk 接受/拒绝、保存快捷键、SHA-256 条件写(并发修改返回 409)。
- 诊断闭环
test_runner(Vitest/Jest、pytest、Go test、.NET test)与 Problems 面板;Git 集成(status/diff/commit、worktree)与 SCM 面板;代码库索引(core index.scan、九语言符号提取、code_search、repo_map)。 - 思考/正文/工具调用按真实顺序交织渲染,相邻工具调用合并折叠组,流式正文平滑追加;对话轮次深浅成组、层级递进,亮暗主题自适应。
- 会话管理:重命名/置顶/分页加载/导入导出(HTML/JSONL/Markdown);首次引导三步上手、服务商测试连接、设置搜索与深链。
- 高频操作:输入历史召回、Esc 中断、代码块悬停复制、断连横幅、草稿按会话持久化、对话内搜索、Ctrl+P 快速切换模型。
- 真终端面板(core PTY:打开/输入/缩放/关闭与输出/退出通知);Bind Link 目录绑定(Windows 11 24H2+,新建会话可视化编辑器,沙盒面板展示生效绑定)。
- 英文界面与中英双语文档(首次访问按浏览器语言选择);移动端单列响应式与 PWA 安装。
安全与沙盒
- 沙盒后端:Windows AppContainer / Windows Sandbox(一会话一 VM)/ Job Object(1.0 起为 Windows 默认)/ Linux Landlock;能力状态如实上报(enforced/partial/advisory)。
- 路径策略 deny > write > read 固定优先级,文件原语 root-bound + no-follow/reparse 防护;deny 变形路径绕过、
.owc可信来源、会话导入清洗等安全复核结论均已固化。 - 非回环监听强制 ≥32 字符访问令牌 + 合法 origin 白名单;TOTP 全局登录(票据滑动 12h、失败锁定);WS 握手三重校验;loopback Host 校验封 DNS rebinding 入口。
- 出站网络统一收口 Node:超时/重试/大小上限/SSRF 防护(手动重定向逐跳复验 + DNS 解析逐 IP 复验)/UA 注入/脱敏;MCP 子进程环境白名单;WebUI CSP 与 nosniff 响应头。
- 权限链加固:bash 前缀规则词边界匹配、控制字符类补 CR(封堵 cmd 拆命令绕过);Hooks 明确等同 yolo 信任级。
快照与工作区
- 自动与手动检查点、时间线回滚;Btrfs/ZFS/ReFS 原生快照探测链 + git 影子仓库兜底。
- VHDX/qcow2 托管工作区(稀疏镜像盘隔离)与同步回源:三方差异预览 + 手动确认,默认只写无冲突改动,关闭/删除会话不自动覆盖源目录。
性能
- 会话解析 LRU 缓存(单轮总耗时 -74.9%)、流式增量 Markdown(平方级降为近线性)、EventBus 单次序列化、buildView 增量路径、索引追加只扫新增字节(p50 13.59→1.40ms)。
- core 并行 grep/glob(4 worker、确定性排序、预算/取消/no-follow 语义保留)与可取消后台作业控制。
- 实测:5000 消息 59.88fps、输入回显约 25ms、长历史缓存分页 p50 0.58ms;完整基准体系(固定 seed、真实 server + Playwright、回归 >15% 标红)。
发布工程
- Windows MSI(可选桌面快捷方式与 PATH)与 Linux tar.gz;
install-online.sh一条命令安装/升级,SHA-256 强制校验;WebUI 在线更新(MSI 覆盖 / tar 替换)。 - 四个独立 CI 工作流 + 发布流水线:测试网关、版本三方一致性校验(server/web package.json 与 CMake 基版本,含手动触发)、CHANGELOG 段落提取为发布说明、bundled Node SHASUMS 校验、MSI 数据库门禁、基准门禁(相对回归警告 / 绝对验收阻断两层)。
升级说明
- 从任意旧版本直接覆盖安装即可,数据目录与设置自动保留。
- Windows MSI 未做 Authenticode 签名,首次安装/升级可能被 SmartScreen 提示;发布资产(MSI/tar.gz)带 SHA256SUMS.txt,安装与在线更新流程均强制校验。