15 Commits
Author SHA1 Message Date
liukewiaandCursor 8bb79fac0c ci: upload desktop and FnOS release installers to COS (#2036)
* feat(workflows): add COS upload functionality for release assets

- Implemented a new workflow to upload GitHub Release assets to COS.
- Updated existing workflows to trigger the upload process after release creation.
- Enhanced documentation within workflows to clarify asset handling and upload procedures.

* fix(workflows): update COS upload paths in workflows and scripts

- Changed asset upload paths in multiple workflow files to use the new format: `octop/release/<version>/`.
- Updated documentation comments to reflect the new upload structure for clarity.
- Adjusted the upload script to align with the updated path conventions.

* fix(workflows): upload to COS after skipped package jobs

GitHub skips a later reusable workflow when an earlier job in the chain was skipped, even if the release job succeeded. Attach-only desktop runs and FnOS native skips hit that path.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(ci): pin the published coscli v1.0.9 checksum

The linux-amd64 asset hash no longer matches the value baked into the upload script, so COS uploads stop before any object is sent.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(ci): upload release files to COS concurrently

A sequential coscli loop left each multi-hundred-megabyte package waiting on the previous one. Start every file at once and fail the job if any upload fails.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(ci): stream coscli process logs during release upload

Process logs were disabled, so a running upload showed no throughput. Write one log per file and follow it on stdout.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(ci): keep per-file coscli configs named .yaml

coscli rejects a config path that does not end in .yaml. Parallel uploads appended the package name after that suffix, so every file failed before transfer.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(ci): keep Python wheel and sdist off COS

Those packages already go to PyPI and the GitHub Release. COS should only receive desktop installers and FnOS packages.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(ci): read COS release settings from secrets

Reusable workflows only see secrets that callers pass explicitly. Bucket, region, and endpoint now travel with the existing COS credentials.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 18:52:57 +08:00
28b64af9db feat(fnos): harden App Center install and native startup (#1539)
Keep the Docker/native wizards on an account-only flow, fail native start
when 8089 never comes up, and vendor harness storage_errors so current
Octop can boot against PyPI harness 1.0.0.

Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-03 17:43:54 +08:00
liukewia 6a8914d2ba feat(release): append templated download links to GitHub Release notes (#548)
* feat(release): add download links generation for GitHub releases

- Introduced a new script `release_download_links.py` to generate markdown for download links based on version tags.
- Updated the release workflow to append download links to the release notes if not already present.

* refactor(release): update download section headings and links for consistency

- Changed section titles in the release notes from Chinese to English for clarity.
- Updated download link labels in the `release_download_links.py` script to use English terms.
- Adjusted unit tests to reflect the updated headings in the download section.
2026-09-03 19:38:17 +08:00
9950f44e5f fix(ci): fail release cascade, attach desktop from any ref, drop duplicate sync triggers (#532)
Dispatching FnOS or develop-sync must fail the Release workflow when gh workflow
run fails, instead of continue-on-error hiding a missed cascade. Desktop package
attaches whenever release_tag is set, so a develop rebuild does not need a
second attach_from_run hop, and attach-only runs use a separate concurrency
group. Sync listens only to workflow_dispatch so it cannot double-fire.

Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 12:11:46 +08:00
jubaoliangandCursor 51d5e49247 fix(ci): repair FnOS workflow parse error and stop re-running CI per release
The FnOS FPK workflow kept a stray env block when the rolling-release step was
removed, so GitHub rejected the whole file and Release's dispatch failed with
"'env' is already defined" — silently, because that job is continue-on-error.

CI also ran the full suite three times per release (release PR, main push, sync
PR) on identical trees. Drop the main push build, since PR checks already run on
the merge result, and skip the post-release sync PR, which is auto-merged before
its checks even start.

Release now passes the tag to the sync workflow so the branch is named after the
version instead of the constant "manual", which every release force-pushed over.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 10:29:31 +08:00
803c859bd9 ci: GHCR+Hub Docker, auto FnOS, cascade desktop after release (#459)
* ci: publish Docker to GHCR+Hub and auto-build FnOS after Release

Cascade FnOS FPK from Release (reuse GHCR image and release wheel), keep
Docker Hub sync, and fix workflow_dispatch version tags for Auto Tag.

Co-authored-by: Cursor <cursoragent@cursor.com>

* ci: cascade desktop package with release and tighten triggers

Stop running the six-platform desktop matrix on every branch push.
Auto Tag dispatches Octop Desktop alongside Release and Docker so
artifacts attach to the same v* GitHub Release.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: jubaoliang <jubaoliang@tencent.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-27 18:22:27 +08:00
jubaoliangandCursor bc96b9f80f chore: merge main into develop after 0.9.18
Bring v0.9.18 version files/CHANGELOG from main; resolve uv.lock.
Also fix Release sync-develop to pass --repo so gh works without checkout.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-02 09:07:04 +00:00
jubaoliang 0dab5235fb chore: release 0.9.18 (#141) 2026-08-02 16:50:13 +08:00
jubaoliang 5819d504f4 Merge branch 'develop' into feature/dependency-python312-alignment 2026-08-02 09:53:18 +08:00
jubaoliang 42cf519696 chore: sync main into develop after 0.9.17 (#124)
* fix(ci): trigger Sync Main Into Develop via workflow_run

GITHUB_TOKEN-created GitHub Releases do not fire sibling release workflows.
Listen for Release workflow completion instead, and allow manual dispatch.


* chore: release 0.9.17 (#120)

* fix: align sync paths with main and keep Release→Sync dispatch


---------
2026-08-01 11:20:08 +08:00
jubaoliang 2b972b7e9b fix(ci): dispatch Sync Main Into Develop from Release (#125)
Auto Tag starts Release with GITHUB_TOKEN workflow_dispatch; in that
chain, workflow_run and release:published never started Sync. Cascade
explicitly after GitHub Release is created.
2026-08-01 11:18:42 +08:00
luojiyin 3eaa2f89de chore: align Python target and refresh dependencies 2026-07-31 22:46:14 +08:00
jubaoliangandCursor 4ed775a2a1 fix(ci): dispatch Release/Docker after auto-tag
GITHUB_TOKEN tag pushes do not cascade to other workflows. After
pushing v*, explicitly workflow_dispatch Release and Docker Publish.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 03:59:08 +00:00
jubaoliangandjubaoliang 60eafec6af chore: release 0.9.8 (#15)
* fix: tolerate connector kind drift when resolving chat popup logos

getConnectorLogo now falls back to a normalized kind (lower-case,\nunderscore/hyphen unified) so connector instances created before the\ncatalog kind was finalized still resolve their logo in the chat picker\ninstead of showing a placeholder.

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

* chore: release 0.9.8

* fix: align dashboard tool labels with backend; bump harness-agent to 0.9.8

---------

Co-authored-by: jubaoliang <jubaoliang@tencent.com>
2026-07-15 16:44:10 +08:00
jubaoliang 748d998cf2 first commit 2026-07-09 14:32:36 +00:00