Skip to content

fix(smoke): serve the -portable linux asset from the artifact server#894

Merged
DeusData merged 1 commit into
mainfrom
fix/smoke-serve-linux-portable
Jul 5, 2026
Merged

fix(smoke): serve the -portable linux asset from the artifact server#894
DeusData merged 1 commit into
mainfrom
fix/smoke-serve-linux-portable

Conversation

@DeusData

@DeusData DeusData commented Jul 5, 2026

Copy link
Copy Markdown
Owner

The dry-run smoke Phase 14 runs the binary's real update command, which on
linux downloads the fully-static "-portable" asset (build_update_url in
src/cli/cli.c appends -portable on linux; _build.yml's build-linux-portable job
ships codebase-memory-mcp[-ui]-linux--portable.tar.gz). The smoke artifact
server only served the non-portable name, so update 404'd and the config-
refresh assertion failed on every linux smoke leg. The mismatch (the smoke half
of the -portable delivery change) was masked until every smoke leg became a
required gate.

Mirror the tarball under the -portable name on linux (standard and ui) so the
served names match build_update_url; checksums.txt globs *.tar.gz and picks up
the new files. Verified the fixed logic serves the exact name the binary
requests for both variants; the gating smoke Phase 14 is the regression guard.

Root cause

The release dry run's smoke Phase 14 runs the binary's real update, which on linux requests the static -portable asset (build_update_url). The smoke artifact server (_smoke.yml) only served the non--portable name → update 404'd → config-refresh assertion failed on every linux smoke leg (ui + standard). Masked until #882 made each smoke leg a required gate; surfaced in dry run 28748103992.

Fix

Serve the -portable tarball name on linux (both variants). Real releases already ship it (_build.yml build-linux-portable); only the fake smoke server was missing it. Verified locally that the served names now match what the binary requests.

The dry-run smoke Phase 14 runs the binary's real `update` command, which on
linux downloads the fully-static "-portable" asset (build_update_url in
src/cli/cli.c appends -portable on linux; _build.yml's build-linux-portable job
ships codebase-memory-mcp[-ui]-linux-<arch>-portable.tar.gz). The smoke artifact
server only served the non-portable name, so `update` 404'd and the config-
refresh assertion failed on every linux smoke leg. The mismatch (the smoke half
of the -portable delivery change) was masked until every smoke leg became a
required gate.

Mirror the tarball under the -portable name on linux (standard and ui) so the
served names match build_update_url; checksums.txt globs *.tar.gz and picks up
the new files. Verified the fixed logic serves the exact name the binary
requests for both variants; the gating smoke Phase 14 is the regression guard.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
@DeusData DeusData enabled auto-merge July 5, 2026 18:46
@DeusData DeusData merged commit 1dae94f into main Jul 5, 2026
18 checks passed
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.

1 participant