feat(community): add cross-platform full-package updates - #2698
Conversation
# Conflicts: # chat2db-community-client/package.json # chat2db-community-client/src/blocks/Setting/About/index.tsx # chat2db-community-client/src/blocks/UpdateDetection/index.tsx # chat2db-community-client/src/jcef/index.tsx # chat2db-community-client/src/store/global/slices/hotUpdate/action.test.ts # chat2db-community-client/src/store/global/slices/hotUpdate/action.ts # chat2db-community-server/chat2db-community-jcef/src/main/java/ai/chat2db/community/jcef/handler/biz/update/AppCheckUpdateHandler.java # chat2db-community-server/chat2db-community-jcef/src/main/java/ai/chat2db/community/jcef/handler/biz/update/TriggerInstallationHandler.java
|
当前 PR 还不能合并,阻塞点如下:
处理完成后请重新推送,届时再重新检查冲突和 CI。 |
# Conflicts: # .github/workflows/jcef_release.yml
|
Thanks for the feedback. All reported blocking issues have been addressed:
The PR is now mergeable, and all frontend/backend CI checks, Dependency Review, and Java/JavaScript CodeQL checks are passing. Could you please review it again when you have time? Thank you! |
Adapt the Community updater to client-runtime and desktop updater extension points, publish canonical updater assets through GitHub Releases only, preserve the current release title contract, and remove obsolete CDN bridge and committed updater binary paths.
|
Maintainer adaptation is complete on
Verification passed locally: full 48-module Community reactor, 223 JCEF/tools tests, 17 standalone updater tests, frontend lint/i18n/prebuild/production build, release fixtures, Actionlint/YAML/Shell/Python/whitespace checks. GitHub now reports the PR as mergeable with all five required checks passing. Native installed Windows update acceptance remains pending; Java CodeQL is still running and is not a required check. |
Replace the file-level updater and release-payload changes from the original PR with a lightweight GitHub Release check and manual download link. Keep the existing installer-based release process unchanged.
|
已按当前讨论收敛方案:原文件级 updater、Windows 提权 helper、canonical payload、Release workflow 改动、CDN/OSS bridge 均已从最终树移除。当前 PR 只保留 GitHub |
Check the public GitHub Latest Release from the Community About page and open the validated Release for manual installation. Keep the existing installer release process unchanged.
|
更正上一条说明:轻量版最终方案的提交不是 |
|
Requirement correction: the manual Release-link-only flow has been replaced. Current head |
|
按最新要求再次收敛:已移除 Windows/macOS/Linux 安装失败或取消后的旧版本回拉起逻辑,也移除 macOS 备份回滚。现在只有安装成功才启动新版本;安装取消或失败直接结束,不额外恢复旧应用。最新提交: |
|
已按代码审查修复并推送 |
|
补齐端到端更新审计日志,提交 |
|
Pushed macOS review fixes in
Local verification passed 31 focused updater/audit tests, 86 JCEF tests, 68 tools tests, the full 48-module Maven test/package reactor, and |
|
CI follow-up for |
|
Scope reduction pushed in This PR now supports automatic updates on macOS Community Desktop only. Windows MSI and Linux AppImage/DEB/RPM implementation, detection, artifacts, and tests were removed. Windows and Linux disable the frontend capability and resolve the Community backend default to The change removes 755 lines and adds 132 focused lines. Local verification passed 26 focused updater/audit tests, 81 JCEF tests, 68 tools tests, the full 48-module Maven reactor, full Community frontend prebuild/production build, lint, i18n, and bundle verification. No installed App was replaced. |
Related issue
N/A — maintainer-requested completion of this desktop update PR.
Summary
Enable packaged Community desktops to discover and install full updates from GitHub Releases on macOS, Windows, and Linux. Add a product-configured update module, standalone helper, signed manifests, package verification, and trial/normal startup health checks while retaining the existing desktop update API and execution behavior.
The release workflow prepares all nine platform/package targets, signs Windows MSI and EXE layers through the configured remote signer, and publishes the GitHub index only with the completed Release. Existing runtime problems are outside this migration.
Affected surfaces
Verification
mvn -B -f chat2db-community-server/pom.xml -pl :chat2db-community-jcef -am -Dmaven.test.skip=false -DskipTests=false '-Dtest=FullPackage*Test,Update*Test,NativePackageInstallerTest,SemanticVersionTest,InstalledAppVersionReaderTest,TrustedUpdateKeysTest,GitHubReleaseDesktopUpdaterTest,DesktopUpdaterRegistryTest,RestartAppHandlerTest' -Dsurefire.failIfNoSpecifiedTests=false -Dmaven.test.failure.ignore=false install— 75 tests, zero failures/errors, one Windows-only test skipped on macOS. An isolated Maven repository was used.mvn -B -f chat2db-community-server/pom.xml -pl :chat2db-community-start -am -Dmaven.test.skip=true -Dchat2db.finalName=chat2db-community install— backend packaging passed; tests explicitly skipped in this build.yarn test:hot-update,yarn test:application-exit,yarn lint,yarn run build:web:community --app_version=0.0.0— passed.actionlint .github/workflows/ci.yml .github/workflows/jcef_release.yml— passed.SKIP_BACKEND=true SKIP_FRONTEND=true COMMUNITY_RELEASE_EPOCH=1 bash script/package/package-community-jcef.sh 0.0.0 prepare— passed; all platform input directories contained version metadata and the standalone helper.Risk and compatibility
script/package/README-updates.md.release_epochannotation.Reviewer map
chat2db-community-updater,FullPackageDesktopUpdater,GitHubReleaseDesktopUpdater, and.github/workflows/jcef_release.yml.Contributor declaration
AI assistance: Codex implemented and reviewed the migration, packaging integration, and tests under maintainer direction.