Update-only helpers. The release build hands updating to the install * script, so none of this ships: no release URL construction, no archive * download, no extract-and-exec. Retained for the C suite, which still * covers the flow through the activation test seam. */ Build the download URL for the update command. */
| 11250 | * covers the flow through the activation test seam. */ |
| 11251 | /* Build the download URL for the update command. */ |
| 11252 | static void build_update_url(char *url, int url_sz, const char *os, const char *arch, |
| 11253 | const char *ext, bool want_ui) { |
| 11254 | char base_url_buf[CLI_BUF_512]; |
| 11255 | const char *base_url = |
| 11256 | cbm_safe_getenv("CBM_DOWNLOAD_URL", base_url_buf, sizeof(base_url_buf), NULL); |
| 11257 | if (!base_url || !base_url[0]) { |
| 11258 | base_url = "https://github.com/DeusData/codebase-memory-mcp/releases/latest/download"; |
| 11259 | } |
| 11260 | /* Linux ships a fully-static "-portable" build; the standard linux binary |
| 11261 | * dynamically links glibc 2.38+ and fails on older distros. macOS/Windows |
| 11262 | * have no such variant. Keep in sync with install.sh / install.js / pypi |
| 11263 | * _cli.py. */ |
| 11264 | const char *portable = (strcmp(os, "linux") == 0) ? "-portable" : ""; |
| 11265 | snprintf(url, url_sz, "%s/codebase-memory-mcp-%s%s-%s%s.%s", base_url, want_ui ? "ui-" : "", os, |
| 11266 | arch, portable, ext); |
| 11267 | } |
| 11268 | |
| 11269 | /* Confirm index deletion before network I/O, but defer the deletion itself to |
| 11270 | * the final guarded activation after the verified binary is ready. Returns 0 |
no test coverage detected