Skip to content

chore: release 0.9.31 - #522

Merged
jubaoliang merged 13 commits into
mainfrom
release/0.9.31
Sep 1, 2026
Merged

chore: release 0.9.31#522
jubaoliang merged 13 commits into
mainfrom
release/0.9.31

Conversation

@jubaoliang

Copy link
Copy Markdown
Collaborator

[0.9.31] - 2026-09-01

新增

  • 聊天流式输出时默认展开思考/工具过程,回答完成后收起(历史记录仍收起)
  • 聊天侧栏与 @ 选择仅展示运行中的专家
  • 默认专家与控制台创建的专家一样使用家目录存储;聊天待办按计划顺序展示
  • 工作台浏览器可显式结束本地 Chrome 进程;空闲超时后也会回收(登录态仍保留在磁盘 profile)
  • 桌面端右上角窗口控制(最小化 / 最大化 / 关闭进托盘)

修复

  • 过期 hashed 静态资源返回 404,避免升级后桌面壳加载旧脚本
  • 桌面无边框窗口改为 CSS/JS 拖拽,去掉会挡住右上角按钮的 InvisibleTitleBarHeight
  • macOS 点击程序坞只恢复主窗口,不再同时弹出托盘设置窗
  • 专家详情技能/子智能体卡片:图标在标题左侧,状态或 id 在标题右侧,描述单独一行
  • 桌面端等待本机服务就绪失败时改为中英文说明(跟随桌面语言设置),不再显示 /api/health 英文报错
  • 桌面启动页补齐右上角窗口按钮,并收紧启动/失败状态的展示
  • 桌面托盘设置窗去掉多余空白,右上角只保留关闭;macOS 单击菜单栏图标也会弹出设置

Release checklist

  • CI green
  • Merge this PR into main
  • After merge, GitHub Action auto-pushes v0.9.31 tag on main tip

Made with Cursor

github-actions Bot and others added 13 commits August 31, 2026 03:12
…nual

chore: sync develop onto main after manual
- api: answer a missing /assets/<hash>.js with 404 instead of the SPA
  shell, so the browser no longer rejects index.html as a module script
  ("not a valid JavaScript MIME type") and hides a stale shell left
  behind by an upgrade.
- dashboard: extend the stale-chunk reload regex to also match MIME
  rejection errors surfaced by WebKit / Chrome / Firefox.
- desktop: split the macOS icon onto an 824/1024 canvas (icons.icns) and
  add applyAppIcon / applyTrayIcon so the Dock glyph is not oversized.
- agents: hand harness an absolute workspace_dir on Windows, where the
  agent-facing /.octop/workspaces/<id> form has no drive letter.
…et-and-desktop-icons

fix: serve 404 for stale hashed assets and harden desktop shell
Configure MacWindow.InvisibleTitleBarHeight (32px) on the frameless desktop
window so macOS keeps a draggable region beneath the custom title bar.
Only affects the macOS build; other platforms are unchanged.
… rolling latest

- scripts/build-fpk.sh: emit Octop-fnos-docker-<ver>.fpk / Octop-fnos-native-<ver>.fpk (variant in the name, not a bare -native suffix).
- fnos-build-fpk.yml: FPK_NAME_PREFIX is now Octop-fnos; stop passing FPK_ITER; the release tag is fnos-<ver> (no -NN iteration, no -vanilla) and the rolling fnos-vanilla-latest release is no longer produced.
- fnos/README.md: document the new versioned artifact names.
…r clicks

The dashboard is loaded from a remote origin, so Wails never injects
runtime.js. Arm wails:drag ourselves, put window controls on the right, and
drop InvisibleTitleBarHeight. Expert profile skill/subagent cards now show
the icon beside the title, with status or slug on the same row.

Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(desktop): restore only the main window on macOS dock click

Wails shows every hidden window on ApplicationShouldHandleReopen, which
also popped the tray settings overlay. Cancel that default and restore
the main window only.


* fix(desktop): polish splash, tray settings, and health-wait copy

Show window controls on the splash and settings shell, open the
macOS menu-bar popover on left click, and replace /api/health
English errors with locale-aware status text.


* fix(desktop): show only close on the settings popover

Minimise and maximise do not apply to the tray settings window.
Close hides that overlay instead of sending the main window to the tray.


---------
Stop Octop-managed Chromium after real CDP inactivity, and let the
workbench close the process without wiping on-disk login state.
…an order (#519)

Linux octop run now ensures bubblewrap in the background without blocking boot.
Setup and invite default agents use the same home-scoped local backend as
dashboard-created experts. Chat task progress sorts by original numeric ids
instead of status, so completed steps stay in plan order.
* feat(chat): only show running experts in the chat sidebar

The chat page left sidebar and the minimal-layout records pane both used
to list every expert returned by GET /api/agents regardless of runtime
state. Once a user opened a chat with a focused expert and then stopped
it (via /experts or any other path), the expert would linger in the
sidebar even though its harness was unloaded.

- selectEnabledExperts (in AgentContext) narrows an agents list down to
  running experts. pinActive is opt-in (off by default) so stopping the
  focused expert makes it disappear from the nav immediately. The main
  chat panel still renders AgentNotReadyScreen on the same URL, so the
  user gets a clear path back to /experts to re-enable the expert.
- projectChatAgentOption projects OctopAgent into the lightweight
  ChatAgentOption shape used by the composer, replacing a duplicated
  inline map in Chat/index.tsx.
- The @ button popover (ExpertPickerPopover) and the @ mention menu
  (MentionPickerMenu) now only list running experts. Picking a stopped
  one would dispatch into an unloaded harness and silently fail.
- availableAgents stays as the full list so ChatInputPreviewBar and
  composerLookups.agents keep rendering historical and currently
  selected expert chips even after the underlying expert is stopped.

Files:
- dashboard/src/context/AgentContext.tsx (helpers)
- dashboard/src/context/AgentContext.test.ts (unit tests)
- dashboard/src/pages/Chat/index.tsx
- dashboard/src/pages/Chat/components/ChatInput.tsx
- dashboard/src/pages/Chat/hooks/useSlashMentionInput.ts
- dashboard/src/layouts/MinimalRecordsHost.tsx

Verification:
- npx tsc --noEmit -> exit 0
- npm run lint -> 0 errors

* docs(dashboard): correct pinActive JSDoc default

The EnabledExpertsOptions.pinActive doc claimed the default was true
("kept for API stability"), but selectEnabledExperts defaults it to
false. Fix the comment to match the code and the stated intent.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Co-authored-by: Claude <noreply@anthropic.com>
Keep thinking/tool process open during live generation so users can follow it, then collapse when the turn finishes. History stays collapsed.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@jubaoliang
jubaoliang merged commit d52b37c into main Sep 1, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants