Skip to content

feat(desktop): Octop 桌面客户端 - #462

Merged
jubaoliang merged 22 commits into
TencentCloud:mainfrom
forcemeter:feature/desktop-client
Aug 27, 2026
Merged

feat(desktop): Octop 桌面客户端#462
jubaoliang merged 22 commits into
TencentCloud:mainfrom
forcemeter:feature/desktop-client

Conversation

@forcemeter

Copy link
Copy Markdown
Contributor

Summary

新增 Octop 桌面客户端(Wails v3):用绿色便携 CPython 在本机拉起 Octop,并提供原生窗口壳(托盘、设置、拖拽最大化、防止休眠、开机自启)。

产物为 macOS DMG / Windows EXE / Linux tar,运行时 zip 打进包内,壳层不从网络下载 Octop。
目前已经在 macOS、Windows、Ubuntu 下验证通过。
绿色运行时解压到 ~/.octop/portable/,数据目录仍是 ~/.octop

注:Wails 不自带 WebView 运行时,Windows 10 及以下部分操作系统需要手动安装 WebView2;Linux 下需要自行安装相关依赖和中文字体。

apt install -y libwebkitgtk-6.0-4
apt install -y libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config
apt install -y fonts-noto-cjk fonts-wqy-microhei fonts-wqy-zenhei
apt install -y libgtk-4-dev libwebkitgtk-6.0-dev pkg-config build-essential

Target branch

  • Base is develop (feature / fix — default)
  • Base is main (release/* or hotfix/* only)

Type of change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation
  • Refactor / chore
  • Release / hotfix

Test plan

  • make all passes locally
  • Added/updated tests(桌面侧已有 settings / download 等 Go 测试;外链以手工验证为主)

验证:

  • 桌面内 _blank 外链走系统浏览器(头像「帮助与反馈」「项目地址」、Skill Hub、环境变量密钥指南等)
  • 连接器 OAuth 仍用应用内命名窗口,不误开系统浏览器
  • bash desktop/package-release.sh:日志为便携 runtime/bin/python3
  • cd desktop/src && go test -count=1 .
  • cd dashboard && npx tsc --noEmit

Checklist

  • Updated CHANGELOG.md (if user-facing)
  • README / docs updated (if needed)(desktop/README.mddesktop/portable/README.md

cursoragent and others added 22 commits August 25, 2026 10:35
Ship relocatable Octop-<plat>.zip via scripts/green (portable CPython,
frozen uv.lock deps, Windows pywin32 DLL fix) and octop-portable.yml.
No OOB overlay or product trimming; first run uses upstream setup.

Co-authored-by: Harry <forcemeter@users.noreply.github.com>
feat: 绿色便携包(多平台打包,无 OOB 裁剪)
Move green packaging to desktop/portable, add a Wails v3 client that
downloads Octop-<plat>.zip, spawns launch.py with OCTOP_HOME=~/.octop,
and exposes locale/theme/autostart/tray/macOS caffeinate settings.
Green upgrades install into packages via OCTOP_GREEN_PACKAGES.

Co-authored-by: Harry <forcemeter@users.noreply.github.com>
wails3 build/dev look for Taskfile.yml and build/config.yml in
desktop/src. Un-ignore that tree from the repo-wide build/ gitignore.

Co-authored-by: Harry <forcemeter@users.noreply.github.com>
@jubaoliang
jubaoliang merged commit 72e3bfc into TencentCloud:main Aug 27, 2026
5 checks passed
jubaoliang added a commit that referenced this pull request Aug 27, 2026
* feat(desktop): Octop 桌面客户端 (#462)

* feat: add multi-platform green portable packaging

Ship relocatable Octop-<plat>.zip via scripts/green (portable CPython,
frozen uv.lock deps, Windows pywin32 DLL fix) and octop-portable.yml.
No OOB overlay or product trimming; first run uses upstream setup.

Co-authored-by: Harry <forcemeter@users.noreply.github.com>

* feat(desktop): Wails v3 shell with green portable under ~/.octop

Move green packaging to desktop/portable, add a Wails v3 client that
downloads Octop-<plat>.zip, spawns launch.py with OCTOP_HOME=~/.octop,
and exposes locale/theme/autostart/tray/macOS caffeinate settings.
Green upgrades install into packages via OCTOP_GREEN_PACKAGES.

Co-authored-by: Harry <forcemeter@users.noreply.github.com>

* fix(desktop): add Wails v3 Taskfile and build/config.yml

wails3 build/dev look for Taskfile.yml and build/config.yml in
desktop/src. Un-ignore that tree from the repo-wide build/ gitignore.

Co-authored-by: Harry <forcemeter@users.noreply.github.com>

* 初始化桌面客户端

* add drag and toggle

* add prevent sleep

* update

* change dock icon

* clean package/useless files

* add Attach zips to GitHub Release

* pack file into windows bin-file

* Packages a production app

* chanage workflow name

* chanage workflow name

* linux package in single ifle

* linux package in single ifle

* 在浏览器中打开_blank 的链接

* upgrade python to 3.12

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Harry <forcemeter@users.noreply.github.com>
Co-authored-by: 杨树海 <yangshuhai@pdnews.cn>

* ci: cascade desktop package on release and stop all-branch builds (#463)

Auto Tag dispatches Octop Desktop with Release/Docker. Restrict
octop-desktop.yml to v* tags + workflow_dispatch only.

Co-authored-by: jubaoliang <jubaoliang@tencent.com>

---------

Co-authored-by: Harry <56063441+forcemeter@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Harry <forcemeter@users.noreply.github.com>
Co-authored-by: 杨树海 <yangshuhai@pdnews.cn>
Co-authored-by: jubaoliang <jubaoliang@tencent.com>
jubaoliang added a commit that referenced this pull request Aug 29, 2026
* feat(desktop): Octop 桌面客户端 (#462)

* feat: add multi-platform green portable packaging

Ship relocatable Octop-<plat>.zip via scripts/green (portable CPython,
frozen uv.lock deps, Windows pywin32 DLL fix) and octop-portable.yml.
No OOB overlay or product trimming; first run uses upstream setup.

Co-authored-by: Harry <forcemeter@users.noreply.github.com>

* feat(desktop): Wails v3 shell with green portable under ~/.octop

Move green packaging to desktop/portable, add a Wails v3 client that
downloads Octop-<plat>.zip, spawns launch.py with OCTOP_HOME=~/.octop,
and exposes locale/theme/autostart/tray/macOS caffeinate settings.
Green upgrades install into packages via OCTOP_GREEN_PACKAGES.

Co-authored-by: Harry <forcemeter@users.noreply.github.com>

* fix(desktop): add Wails v3 Taskfile and build/config.yml

wails3 build/dev look for Taskfile.yml and build/config.yml in
desktop/src. Un-ignore that tree from the repo-wide build/ gitignore.

Co-authored-by: Harry <forcemeter@users.noreply.github.com>

* 初始化桌面客户端

* add drag and toggle

* add prevent sleep

* update

* change dock icon

* clean package/useless files

* add Attach zips to GitHub Release

* pack file into windows bin-file

* Packages a production app

* chanage workflow name

* chanage workflow name

* linux package in single ifle

* linux package in single ifle

* 在浏览器中打开_blank 的链接

* upgrade python to 3.12

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Harry <forcemeter@users.noreply.github.com>
Co-authored-by: 杨树海 <yangshuhai@pdnews.cn>

* ci: cascade desktop package on release and stop all-branch builds (#463)

Auto Tag dispatches Octop Desktop with Release/Docker. Restrict
octop-desktop.yml to v* tags + workflow_dispatch only.

Co-authored-by: jubaoliang <jubaoliang@tencent.com>

* 优化客户端升级逻辑,支持页面自动重载 (#468)

Co-authored-by: 杨树海 <yangshuhai@pdnews.cn>

---------

Co-authored-by: Harry <56063441+forcemeter@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Harry <forcemeter@users.noreply.github.com>
Co-authored-by: 杨树海 <yangshuhai@pdnews.cn>
Co-authored-by: jubaoliang <jubaoliang@tencent.com>
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.

4 participants