Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
38171a5
Merge pull request #444 from TencentCloud/chore/sync-develop-after-ma…
github-actions[bot] Aug 26, 2026
00508f6
feat(channels): add DingTalk QR registration
Aug 27, 2026
c38e5c0
Feature/long session issue fix (#453)
Bosheng0422 Aug 27, 2026
fef9b2b
fix(dashboard): theme confirmation dialogs via App.useApp() (#442)
liukewia Aug 27, 2026
91fbcc8
fix(dashboard): hide bubblewrap skipped toast on non-Linux
jubaoliang-tencent Aug 27, 2026
a64c640
fix(fnos): FPK 部署禁止无效内置在线升级,修复原生版启动加载 common.sh (#446)
veenyi Aug 27, 2026
90b8ca2
feat(knowledge): 支持按知识库配置文档数量上限 (#427)
chujieHong Aug 27, 2026
10e8624
fix(db): duplicate v10 migration skipped thread projection tables (#461)
jubaoliang Aug 27, 2026
803c859
ci: GHCR+Hub Docker, auto FnOS, cascade desktop after release (#459)
jubaoliang Aug 27, 2026
94375d1
chore: sync develop onto main after accidental main merges (#464)
jubaoliang Aug 27, 2026
99a9b56
feat: backup/restore UX, chat tool dock, SSO presets, and friendly pr…
jubaoliang Aug 28, 2026
eaf0c41
feat(connectors): add OAuth for custom MCP servers (#452)
huangcheng Aug 28, 2026
a6d9caa
ci: run desktop packaging on PRs (macOS + Windows) (#469)
liukewia Aug 29, 2026
1fc14af
fix(channels): filter malformed thinking output (#470)
Pandakingxbc Aug 29, 2026
b984ba8
chore: sync develop onto main after accidental main merges (#473)
jubaoliang Aug 29, 2026
17effe4
fix(connectors): mark custom MCP OAuth reauth when refresh fails (#474)
jubaoliang Aug 29, 2026
b8e7ecd
feat(connectors): add WeKnora and Dify integrations (#475)
Pandakingxbc Aug 30, 2026
6c7824a
fix(dashboard): make chat STT follow UI locale for Chinese speech (#477)
jubaoliang Aug 30, 2026
282aa68
chore: bump orcakit-harness-agent to 1.0.0 (#478)
jubaoliang Aug 30, 2026
fbe33e4
feat(tests): add live WeChat/Feishu channel credential probes (#479)
jubaoliang Aug 30, 2026
11457e3
feat(skills): localize skill presentation from metadata.octop (#480)
jubaoliang Aug 30, 2026
7e74b1e
fix(ui): polish expert root-dir UX, connector order, and FnOS icons (…
jubaoliang Aug 30, 2026
8f27e78
feat(providers): 接入腾讯云 Token Plan 企业版与 Hy 套餐 (#472)
Pandakingxbc Aug 30, 2026
8e70633
chore: release 0.9.30
jubaoliang-tencent Aug 30, 2026
f7c5040
feat(chat): integrate ask-user-question HITL flow (#482)
Pandakingxbc Aug 31, 2026
d53b054
fix(channels): 弹框文案统一为「通道」,新建默认实时过程 (#488)
jubaoliang Aug 31, 2026
c6a49bf
chore: merge develop into release/0.9.30
jubaoliang-tencent Aug 31, 2026
5abfafb
docs: update 0.9.30 changelog for develop follow-ups
jubaoliang-tencent Aug 31, 2026
34f483b
fix(cli): point acp registry attr at acp_cmd (#489)
huangcheng Aug 31, 2026
3a3282a
chore: merge develop into release/0.9.30
jubaoliang-tencent Aug 31, 2026
b767016
chore: merge main into release/0.9.30
jubaoliang-tencent Aug 31, 2026
edca823
fix: silence CodeQL oauth log and HITL selection ReDoS
jubaoliang-tencent Aug 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .cursor/skills/publish/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: publish
description: >-
Publish the Octop Python package: cut a release branch from develop, bump
version, update CHANGELOG, open a PR to main; after merge, Actions tag on
main (PyPI / Docker Hub) and sync main into develop. Use when the user asks
main (PyPI / Docker Hub + GHCR) and sync main into develop. Use when the user asks
to publish, release, bump version, cut a release, or run /publish.
disable-model-invocation: true
---
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/auto-tag-on-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,9 @@ jobs:

# GITHUB_TOKEN tag pushes do not cascade to other workflows. Explicitly
# dispatch Release / Docker Publish / Desktop Package (workflow_dispatch
# is exempt). Desktop builds in parallel; its release job upserts zips
# onto the same v* GitHub Release.
# is exempt). FnOS FPK is cascaded from Release after the GitHub Release
# exists (reuses Release wheel + waits for GHCR image from Docker Publish).
# Desktop builds in parallel; its release job upserts zips onto the same v*.
- name: Trigger Release, Docker Publish, and Desktop Package
if: steps.check_tag.outputs.should_publish == 'true'
env:
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,4 +115,10 @@ jobs:
CONNECTOR_TENCENT_LEXIANG_COMPANY_FROM: ${{ secrets.LIVE_CONNECTOR_TENCENT_LEXIANG_COMPANY_FROM }}
CONNECTOR_MEITUAN_TRAVEL_TOKEN: ${{ secrets.LIVE_CONNECTOR_MEITUAN_TRAVEL_TOKEN }}
CONNECTOR_YUANDIAN_TOKEN: ${{ secrets.LIVE_CONNECTOR_YUANDIAN_TOKEN }}
# Channel probes (WeChat iLink + Feishu)
WEIXIN_BOT_UIN: ${{ secrets.LIVE_WEIXIN_BOT_UIN }}
WEIXIN_TOKEN: ${{ secrets.LIVE_WEIXIN_TOKEN }}
WEIXIN_BASE_URL: ${{ secrets.LIVE_WEIXIN_BASE_URL }}
FEISHU_APP_ID: ${{ secrets.LIVE_FEISHU_APP_ID }}
FEISHU_APP_SECRET: ${{ secrets.LIVE_FEISHU_APP_SECRET }}
run: make test-live
69 changes: 56 additions & 13 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,59 @@
name: Docker Publish

# 仅在推送版本标签(v*)时构建并发布镜像到 Docker Hub。
# 与 .github/workflows/release.yml(发 PyPI)相互独立、可并行。
# 普通 push / PR 不会触发,CI 开销保持在最低。
# 仅在版本标签(v*)上构建并同步发布镜像到 Docker Hub 与 GHCR。
# 文档与对外引用统一使用:ghcr.io/tencentcloud/octop
# (Hub 仍用 DOCKERHUB_* secrets 同步推送。)
#
# 触发路径:
# 1. 人工推送 v* tag → on.push.tags
# 2. Auto Tag 用 GITHUB_TOKEN 推 tag 后显式 workflow_dispatch(token push 不会触发 push 工作流)
#
# 注意:workflow_dispatch 下 metadata-action 的 type=semver 不可靠,
# 必须从 GITHUB_REF_NAME 显式解析版本号。
#
# FnOS FPK 由 Release 成功后自动 dispatch,并等待本工作流推送的 :{version} 就绪。
#
# 拉取示例:
# docker pull ghcr.io/tencentcloud/octop:latest
# docker pull ghcr.io/tencentcloud/octop:0.9.28
on:
push:
tags:
- "v*"
# Allow Auto Tag On Release Merge to cascade after a GITHUB_TOKEN tag push
# (token-authored pushes do not retrigger push workflows).
workflow_dispatch:

permissions:
contents: read
packages: write

jobs:
docker:
name: Build and push image
runs-on: ubuntu-latest
# 拒绝在非 v* ref 上误跑(例如 UI 里对 main 点 Run workflow)
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Resolve version from tag ref
id: ver
run: |
set -euo pipefail
ref="${GITHUB_REF_NAME}"
case "$ref" in
v*)
echo "version=${ref#v}" >> "$GITHUB_OUTPUT"
echo "tag=$ref" >> "$GITHUB_OUTPUT"
;;
*)
echo "::error::Expected refs/tags/v*, got ref_name=$ref"
exit 1
;;
esac

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

Expand All @@ -30,16 +63,29 @@ jobs:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Image names
id: image
run: |
echo "ghcr=ghcr.io/$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]')" >> "$GITHUB_OUTPUT"
echo "hub=${{ secrets.DOCKERHUB_USERNAME }}/octop" >> "$GITHUB_OUTPUT"

- name: Docker metadata
id: meta
uses: docker/metadata-action@v5
with:
# 镜像名 = <DOCKERHUB_USERNAME>/octop(个人或组织命名空间均可)。
images: ${{ secrets.DOCKERHUB_USERNAME }}/octop
images: |
${{ steps.image.outputs.hub }}
${{ steps.image.outputs.ghcr }}
# 显式 raw tag:兼容 push.tags 与 Auto Tag 的 workflow_dispatch
tags: |
# v1.2.3 -> 1.2.3
type=semver,pattern={{version}}
# 每个 tag 同时打 latest
type=raw,value=${{ steps.ver.outputs.version }}
type=raw,value=latest

- name: Build and push
Expand All @@ -48,11 +94,8 @@ jobs:
context: .
file: ./docker/Dockerfile
push: true
# 默认仅 amd64,构建最快最稳。如需 ARM64(Apple Silicon / Graviton),
# 改为 "linux/amd64,linux/arm64" 并加上 docker/setup-qemu-action@v3 步骤。
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
# 复用 GitHub Actions 缓存加速后续构建
cache-from: type=gha
cache-to: type=gha,mode=max
Loading
Loading