[Bug][desktop] macOS nightly update feed is missing on the test deployment — dsh-desk/feeds/mac-arm64/nightly-mac.yml returns COS NoSuchKey #7325
overFloweee
started this conversation in
General
Replies: 1 comment
|
补充一条证据链(2026-09-22 实测):这条 feed 缺失不是孤例——公开渠道目前没有任何桌面产物:
另外路径口径已经变了:0.1.7 起 test 发布放在 已把"桌面包整体缺失 + 希望公开下载入口"整理成需求帖:#7446。 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Summary
An installed macOS Desktop nightly (
0.1.6-alpha.1.20260916.2, bundle idcom.deepseek.dsh) is packaged with the internal-test dotenv(
DSH_DESKTOP_AUTO_UPDATE_ENV=test,DOWNLOAD_TEST_ORIGIN=https://download-test.deepseek.com), so Check for Updates requestsThat object does not exist on either deployment origin, so every update check fails with
Could not check for updates. Please try again later./ technical detailCannot find channel "nightly-mac.yml"+HttpError: 404.The client side is correct and matches the repository's own contract; the publication for this target is missing.
Environment
/Applications/DeepSeek Harness.appCFBundleShortVersionString/CFBundleVersion0.1.6-alpha.1.20260916.2CFBundleIdentifiercom.deepseek.dshDeveloper ID Application: Hangzhou DeepSeek Artificial Intelligence Co., Ltd (NAN929V4UM), timestamped 2026-09-16 17:34:30app.asar; matchesapps/desktop/package.json^6.8.9), generic provider, channelnightlyContents/Resources/app-update.ymlprovider: generic/url: https://download-test.deepseek.com/dsh-desk/feeds/mac-arm64//channel: nightly/updaterCacheDirName: '@deepseek-aidsh-desktop-updater'lib/main.jsin the packagedapp.asarhard-codes the channel as well (this.updater.channel = "nightly",allowPrerelease = true), so the requested metadata filename isnightly-mac.ymlby design — the same valuedesktopUpdateMetadataFilename()produces.The updater cache directory
~/Library/Caches/@deepseek-aidsh-desktop-updaterdoes not exist on this machine. electron-updater creates it when it downloads an update, so its absence means no update was ever downloaded here — consistent with the feed never having been reachable.Reproduction
Current behavior
The same
NoSuchKeyis returned by the production origin. Full probe matrix (anonymouscurl, HTTP status):download-test.deepseek.comdownload.deepseek.comdsh-desk/feeds/mac-arm64/nightly-mac.ymldsh-desk/feeds/mac-arm64/latest-mac.ymldsh-desk/feeds/mac-x64/nightly-mac.ymldsh-desk/feeds/win-x64/nightly.ymldsh-desk/feeds/win-x64/latest.ymldsh-desk/bin/mac-arm64/deepseek-harness-0.1.6-alpha.1.20260916.1-mac-arm64.{dmg,zip,zip.blockmap}dsh-desk/bin/mac-arm64/deepseek-harness-0.1.6-alpha.1.20260916.2-mac-arm64.{dmg,zip,zip.blockmap}dsh-desk/bin/win-x64/deepseek-harness-0.1.6-alpha.1.20260916.2-win-x64.exeBucket identity checks (to rule out "wrong region / wrong bucket"):
desktop-cos.tspinsDESKTOP_COS_REGION = 'ap-beijing', andinstalled-update-cos.tsfixes the pairORIGIN = 'https://download-test.deepseek.com'/BUCKET = 'bj-toc-download-test-1320056602', which matches the README deployment table. The CDN error is authoritative for absence — the repo says so itself:So this is not an authentication, proxy, DLP or token problem: the origin answered
NoSuchKey, notAccessDenied.Expected behavior
Per
apps/desktop/README.md:An installed test-deployment client must therefore be able to fetch
dsh-desk/feeds/mac-arm64/nightly-mac.ymlfromhttps://download-test.deepseek.com. Nothing in the client needs to change.Root-cause analysis
package:desktop:mac:arm64writesapp-update.ymlwith the selected origin but uploads nothing;upload:mac:arm64is a second command that requires COS credentials. No workflow performs either:grep -il desktop .github/workflows/*.ymlmatches none of the 20 workflows in this repository. So a nightly build can be produced and distributed to users while its feed is never published.not-performedin the upload result." Combined with (1), a skipped or failedupload:*leaves packaged clients pointing at a feed that does not exist, and nothing fails loudly.README.md→ Release versions: "For each base and date, start the index at 1 and increment after checking retained release records and published objects; never reuse a published version." The installed build carries index.2(0.1.6-alpha.1.20260916.2), yet neither.20260916.1nor.20260916.2payloads, nor any channel metadata, are publicly retrievable formac-arm64. Either the publication step never ran for this target, or it wrote to a location the public origin does not serve.installed-update-qualification.tsallocates its own private namespace and pins it to Windows:feedKey: dsh-desk/feeds/qualification/<id>/win-x64/nightly.yml,binPrefix: dsh-desk/bin/qualification/<id>/win-x64, withkeyAllowed()rejecting every other key. macOS has no equivalent lane, andtest:updates:localruns against a loopback server, so a missing mac feed is invisible to the current qualification suite.Open questions for the release owner
upload:mac:arm64ever executed for the test deployment for the0.1.6-alpha.1.20260916.{1,2}nightlies? The retained.desktop-build/upload-records/test-mac-arm64-*record should settle this (result.jsonpresent = completion).download-test.deepseek.comactually map to bucketbj-toc-download-test-1320056602(ap-beijing)? Observed side fact:https://download-test.deepseek.com/andhttps://download.deepseek.com/return byte-identical content (sha256 prefix11882015de84285f…); if both origins resolve to the same bucket, the test/production feed separation assumed byDSH_DESKTOP_AUTO_UPDATE_ENVdoes not hold and test uploads could clobber production metadata.upload:*at all?Suggested fix and acceptance criteria
pnpm run upload:mac:arm64for the test deployment with the0.1.6-alpha.1.20260916.xartifacts (re-runpnpm run package:desktop:mac:arm64first only if the build output and completion record are gone).200— the uploader already has an explicit place for that result (not-performed), so this is turning a documented manual step into an enforced one.mac-arm64(currently Windows-only), since that is the only lane that exercises the real deployment origin.curl -sI https://download-test.deepseek.com/dsh-desk/feeds/mac-arm64/nightly-mac.ymlreturns200; on the installed0.1.6-alpha.1.20260916.2build, Check for Updates reports an available version (or "up to date") instead ofCould not check for updates.Additional observation (local, unrelated to the feed)
The affected installation has a broken code seal, so it should be reinstalled cleanly before verifying any fix:
Someone replaced the bundled
runtime/bin/nodeon 2026-09-19 and left a backup beside it, which invalidates the signature. This does not cause the 404 above, but a modified bundle must not be used as evidence when testing an update flow.Evidence collected
Contents/Resources/app-update.ymlof the installed nightly (quoted above).dsh-desk/*paths — all three targets, both dated index builds, and both origins, includingdsh-desk/feeds/<target>/directory requests — every one returned404withx-cos-error-code: NoSuchKey.ap-beijing/ap-shanghai/ap-guangzhouto confirm the bucket and its region.codesign --verifyoutput for the local bundle.All reactions