From c11ecfdd51100b5e97583d0c5bc7cddf329b86d2 Mon Sep 17 00:00:00 2001 From: Ajay Krishnan Date: Fri, 26 Jun 2026 23:31:50 -0700 Subject: [PATCH] Add Repomix release smoke --- scripts/release-check | 17 ++++++++++++++++- scripts/smoke-repomix.mjs | 30 ++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 scripts/smoke-repomix.mjs diff --git a/scripts/release-check b/scripts/release-check index ffd6529..7ec46a3 100755 --- a/scripts/release-check +++ b/scripts/release-check @@ -18,6 +18,7 @@ PY release_id="release-$$" export CONTEXT_KIT_COMPOSE_PROJECT="context-kit-${release_id}" export CONTEXT_KIT_DATA_DIR="${tmp_dir}/data" +export CONTEXT_KIT_PROJECT_DIR="${ROOT}" export CONTEXT_KIT_SEARXNG_PORT="$(pick_port)" export CONTEXT_KIT_DOCS_PORT="$(pick_port)" export CONTEXT_KIT_DOCS_SOURCES="config/sources.default.txt" @@ -90,13 +91,26 @@ git ls-files --cached --error-unmatch \ scripts/mcp-smoke-client.mjs \ scripts/smoke-web-search.mjs \ scripts/smoke-docs.mjs \ + scripts/smoke-repomix.mjs \ scripts/release-check >/dev/null bash -n bin/context-kit bash -n scripts/release-check sh -n docker/docs/entrypoint.sh -check_node docker/web-search/patch-mcp-web-search.mjs docker/web-search/overrides/bing.js scripts/mcp-smoke-client.mjs scripts/smoke-web-search.mjs scripts/smoke-docs.mjs +check_node docker/web-search/patch-mcp-web-search.mjs docker/web-search/overrides/bing.js scripts/mcp-smoke-client.mjs scripts/smoke-web-search.mjs scripts/smoke-docs.mjs scripts/smoke-repomix.mjs node -e 'const fs=require("node:fs"); JSON.parse(fs.readFileSync("snippets/opencode.json", "utf8")); JSON.parse(fs.readFileSync("snippets/claude.mcp.json", "utf8"));' +CONTEXT_KIT_DOCS_HTTP_URL="http://127.0.0.1:8776/mcp" bin/context-kit install opencode > "${tmp_dir}/opencode-default.json" +cmp -s snippets/opencode.json "${tmp_dir}/opencode-default.json" || { + printf 'snippets/opencode.json differs from bin/context-kit install opencode output\n' >&2 + diff -u snippets/opencode.json "${tmp_dir}/opencode-default.json" >&2 || true + exit 1 +} +CONTEXT_KIT_DOCS_HTTP_URL="http://127.0.0.1:8776/mcp" bin/context-kit install claude > "${tmp_dir}/claude-default.json" +cmp -s snippets/claude.mcp.json "${tmp_dir}/claude-default.json" || { + printf 'snippets/claude.mcp.json differs from bin/context-kit install claude output\n' >&2 + diff -u snippets/claude.mcp.json "${tmp_dir}/claude-default.json" >&2 || true + exit 1 +} bin/context-kit install opencode > "${tmp_dir}/opencode.json" bin/context-kit install opencode --absolute > "${tmp_dir}/opencode-absolute.json" bin/context-kit install claude > "${tmp_dir}/claude.json" @@ -122,5 +136,6 @@ bin/context-kit restart bin/context-kit doctor node scripts/smoke-web-search.mjs bin/context-kit web-search node scripts/smoke-docs.mjs bin/context-kit docs +node scripts/smoke-repomix.mjs bin/context-kit repomix printf 'pass release-check\n' diff --git a/scripts/smoke-repomix.mjs b/scripts/smoke-repomix.mjs new file mode 100644 index 0000000..5fccc6e --- /dev/null +++ b/scripts/smoke-repomix.mjs @@ -0,0 +1,30 @@ +import { requireToolSuccess, runSmoke, textFrom } from "./mcp-smoke-client.mjs"; + +runSmoke({ + usage: "usage: node scripts/smoke-repomix.mjs [args...]", + tmpPrefix: "context-kit-repomix-smoke-", + timeoutMs: 120000, + clientInfo: { name: "context-kit-repomix-smoke", version: "0.0.0" }, + scenario: async client => { + const toolNames = await client.requireTools(["pack_codebase"]); + + const pack = requireToolSuccess("pack_codebase", await client.callTool("pack_codebase", { + directory: process.cwd(), + compress: true, + includePatterns: "README.md,snippets/opencode.json", + ignorePatterns: "", + topFilesLength: 2, + style: "xml" + })); + + const packText = textFrom(pack) || JSON.stringify(pack); + if (!packText.includes("Successfully packed codebase") && !packText.includes("outputId")) { + throw new Error(`pack_codebase returned unexpected payload: ${packText.slice(0, 500)}`); + } + + return { + tools: Array.from(toolNames).sort(), + pack_codebase: "pass" + }; + } +});