Files
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
11 KiB
JSON

{"repo": "abcdlsj/sumi", "files": {"scripts/dev-seed.test.mjs": {"05568ec21fc6c725a0ef46c39d39bbb6a91ec10f": {"t": 1786068485.6136346, "n": 10460, "h": "e4dab0a48015b125", "c": "import assert from \"node:assert/strict\";\nimport { chmodSync, existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, statSync, writeFileSync } from \"node:fs\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport test from \"node:test\";\nimport { fileURLToPath } from \"node:url\";\n\nimport {\n AGENT_PROFILES,\n CODEX_HOME,\n CODEX_COMMAND,\n DEV_CHANNEL_SLUG,\n DEV_SPACE,\n buildSeedComputerConfig,\n cleanDevelopmentSeedState,\n computerStateDirectory,\n createBrowserSessionHandoff,\n extractComputerPairingUrl,\n findComputerStateForSpace,\n prepareComputerStateDirectory,\n} from \"./dev-seed.mjs\";\n\ntest(\"development seed exposes a codex command override for optional codex use\", () => {\n assert.equal(typeof CODEX_COMMAND, \"string\");\n assert.ok(CODEX_COMMAND.length > 0);\n assert.equal(typeof CODEX_HOME, \"string\");\n assert.ok(CODEX_HOME.length > 0);\n\n const taskScript = readFileSync(new URL(\"./dev-seed-task.sh\", import.meta.url), \"utf8\");\n assert.match(\n taskScript,\n /SUMI_SEED_CODEX_HOME=\"\\$\\{SUMI_SEED_CODEX_HOME:-}\"[\\s\\S]*?SUMI_SEED_CODEX_COMMAND=\"\\$\\{SUMI_SEED_CODEX_COMMAND:-}\"[\\s\\S]*?mise run dev/,\n );\n assert.match(taskScript, /SUMI_SEED_CODEX_COMMAND=\"\\$1\" run_dev/);\n assert.match(taskScript, /SUMI_SEED_CODEX_HOME=\\/path\\/to\\/codex-home/);\n assert.match(readFileSync(new URL(\"./dev-seed.mjs\", import.meta.url), \"utf8\"), /SUMI_CODEX_COMMAND: CODEX_COMMAND/);\n assert.match(\n readFileSync(new URL(\"./dev-seed.mjs\", import.meta.url), \"utf8\"),\n /SUMI_SEED_CODEX_HOME \\?\\? join\\(homedir\\(\\), \"\\.codex\"\\)/,\n );\n assert.match(\n readFileSync(new URL(\"./dev-seed.mjs\", import.meta.url), \"utf8\"),\n /codexHomeFromEnv: CODEX_HOME_FROM_ENV/,\n );\n});\n\ntest(\"development seed copies local Computer configuration with isolated runtime overrides\", () => {\n const config = buildSeedComputerConfig(\n `[server]\\ndatabase_url = \"postgres://localhost/sumi_prod\"\\n\\n[computer]\\nserver_url = \"https://sumi.example.test\"\\nstate_dir = \"/var/lib/sumi\"\\nopen_pairing_browser = true\\ncodex_config_source = \"/custom/codex/config.toml\"\\n\\n[computer.builtin]\\napi_base = \"https://api.deepseek.com\"\\ntoken = \"test-token\"\\nmodel = \"deepseek-v4-pro\"\\n`,\n { server: \"http://127.0.0.1:3000\", stateDir: \"/tmp/sumi-seed/computer\", codexHome: \"/fallback/codex\" },\n );\n\n assert.match(config, /database_url = \"postgres:\\/\\/localhost\\/sumi_prod\"/);\n assert.match(config, /server_url = \"http:\\/\\/127\\.0\\.0\\.1:3000\"/);\n assert.match(config, /state_dir = \"\\/tmp\\/sumi-seed\\/computer\"/);\n assert.match(config, /open_pairing_browser = false/);\n assert.match(config, /codex_config_source = \"\\/custom\\/codex\\/config\\.toml\"/);\n assert.match(config, /api_base = \"https:\\/\\/api\\.deepseek\\.com\"/);\n assert.match(config, /token = \"test-token\"/);\n assert.match(config, /model = \"deepseek-v4-pro\"/);\n assert.match(config, /codex_auth_source = \"\\/fallback\\/codex\\/auth\\.json\"/);\n});\n\ntest(\"development seed env Codex home overrides explicit base config sources\", () => {\n const config = buildSeedComputerConfig(\n `[computer]\\ncodex_config_source = \"/custom/codex/config.toml\"\\ncodex_auth_source = \"/custom/codex/auth.json\"\\n`,\n {\n server: \"http://127.0.0.1:3000\",\n stateDir: \"/tmp/sumi-seed/computer\",\n codexHome: \"/env/codex\",\n codexHomeFromEnv: true,\n },\n );\n\n assert.match(config, /codex_config_source = \"\\/env\\/codex\\/config\\.toml\"/);\n assert.match(config, /codex_auth_source = \"\\/env\\/codex\\/auth\\.json\"/);\n});\n\ntest(\"development seed extracts the Computer pairing URL without depending on log prose\", () => {\n const pairingUrl = \"http://127.0.0.1:3000/pair-computer/019fa900-0000-7000-8000-000000000001/?code=test-code\";\n\n assert.equal(\n extractComputerPairingUrl(`INFO Confirm this Computer in Sumi url=${pairingUrl} expires_at=2026-07-30T06:00:00Z`),\n pairingUrl,\n );\n assert.equal(\n extractComputerPairingUrl(`INFO Open this URL to pair the Computer url=\\\"${pairingUrl}\\\"`),\n pairingUrl,\n );\n assert.equal(extractComputerPairingUrl(\"INFO request completed url=http://127.0.0.1:3000/api/v1/health\"), undefined);\n assert.equal(extractComputerPairingUrl(\"INFO Confirm this Computer in Sumi url=not-a-url\"), undefined);\n});\n\ntest(\"dev-seed provisions its PostgreSQL database and exposes an explicit clean command\", () => {\n const repositoryRoot = fileURLToPath(new URL(\"..\", import.meta.url));\n const miseConfig = readFileSync(join(repositoryRoot, \"mise.toml\"), \"utf8\");\n const taskScript = readFileSync(join(repositoryRoot, \"scripts\", \"dev-seed-task.sh\"), \"utf8\");\n const task = miseConfig.match(/\\[tasks\\.dev-seed\\]\\n(?<body>(?:[^\\[]|\\[(?!tasks\\.))*?)(?=\\n\\[|$)/)?.groups?.body;\n\n assert.ok(task, \"mise.toml must define tasks.dev-seed\");\n assert.match(task, /run = \"sh scripts\\/dev-seed-task\\.sh\"/);\n assert.match(task, /RUST_LOG = \"sumi=warn,tower_http=warn\"/);\n assert.match(taskScript, /mise run db-start/);\n assert.match(taskScript, /dropdb\" --if-exists --force sumi_dev/);\n assert.match(taskScript, /node scripts\\/dev-seed\\.mjs clean/);\n\n const developmentTask = miseConfig.match(/\\[tasks\\.dev\\]\\n(?<body>(?:[^\\[]|\\[(?!tasks\\.))*?)(?=\\n\\[|$)/)?.groups?.body;\n assert.ok(developmentTask, \"mise.toml must define tasks.dev\");\n assert.match(developmentTask, /SUMI_SERVER__DATABASE_URL = \"postgres:\\/\\/localhost\\/sumi_dev\"/);\n\n const databaseTask = miseConfig.match(/\\[tasks\\.db-start\\]\\n(?<body>(?:[^\\[]|\\[(?!tasks\\.))*?)(?=\\n\\[|$)/)?.groups?.body;\n assert.ok(databaseTask, \"mise.toml must define tasks.db-start\");\n assert.match(databaseTask, /dropdb\" --force sumi_dev/);\n assert.match(databaseTask, /schema_version=/);\n assert.match(databaseTask, /schema\\/postgres\\.sql/);\n assert.match(databaseTask, /installed_version.*!= \"\\$schema_version\"/);\n assert.doesNotMatch(databaseTask, /installed_version.*!= \"[0-9]+\"/);\n});\n\ntest(\"development seed cleanup removes only its resolved state root\", (context) => {\n const parent = mkdtempSync(join(tmpdir(), \"sumi-dev-seed-clean-test-\"));\n context.after(() => rmSync(parent, { recursive: true, force: true }));\n const stateRoot = join(parent, \".sumi-dev-seed\");\n const unrelated = join(parent, \"keep.txt\");\n mkdirSync(join(stateRoot, \"computer\", \"space\", \"computer\"), { recursive: true });\n writeFileSync(join(stateRoot, \"computer\", \"computer.toml\"), \"[computer]\\n\");\n writeFileSync(join(stateRoot, \"computer\", \"space\", \"computer\", \"daemon.db\"), \"stale\");\n writeFileSync(unrelated, \"keep\");\n\n const removed = cleanDevelopmentSeedState(stateRoot);\n\n assert.equal(removed, stateRoot);\n assert.equal(existsSync(stateRoot), false);\n assert.equal(readFileSync(unrelated, \"utf8\"), \"keep\");\n});\n\ntest(\"development seed cleanup rejects broad filesystem targets\", () => {\n assert.throws(() => cleanDevelopmentSeedState(\"/\"), /unsafe dev-seed state root/);\n});\n\ntest(\"development seed cleanup rejects an unrelated custom directory\", (context) => {\n const target = mkdtempSync(join(tmpdir(), \"unrelated-clean-test-\"));\n context.after(() => rmSync(target, { recursive: true, force: true }));\n writeFileSync(join(target, \"keep.txt\"), \"keep\");\n\n assert.throws(() => cleanDevelopmentSeedState(target), /unrecognized dev-seed state root/);\n assert.equal(readFileSync(join(target, \"keep.txt\"), \"utf8\"), \"keep\");\n});\n\ntest(\"development seed defines one stable Space and Iris/Leo/Nora group\", () => {\n assert.deepEqual(DEV_SPACE, { name: \"Sumi Dev\", slug: \"sumi-dev\", accent: \"#F0602F\" });\n assert.equal(DEV_CHANNEL_SLUG, \"general\");\n assert.deepEqual(AGENT_PROFILES.map(({ name, driver_kind }) => ({ name, driver_kind })), [\n { name: \"Iris\", driver_kind: \"builtin\" },\n { name: \"Leo\", driver_kind: \"builtin\" },\n { name: \"Nora\", driver_kind: \"builtin\" },\n ]);\n assert.equal(new Set(AGENT_PROFILES.map((profile) => profile.role_text)).size, 3);\n for (const profile of AGENT_PROFILES) assert.ok(profile.role_text.length > 80);\n});\n\ntest(\"development seed enforces private Computer state permissions\", (context) => {\n const parent = mkdtempSync(join(tmpdir(), \"sumi-dev-seed-test-\"));\n context.after(() => rmSync(parent, { recursive: true, force: true }));\n const stateDir = join(parent, \"computer\");\n\n prepareComputerStateDirectory(stateDir);\n assert.equal(statSync(stateDir).mode & 0o777, 0o700);\n\n chmodSync(stateDir, 0o755);\n prepareComputerStateDirectory(stateDir);\n assert.equal(statSync(stateDir).mode & 0o777, 0o700);\n});\n\ntest(\"development seed stores Computer state under Space and Computer IDs\", (context) => {\n const parent = mkdtempSync(join(tmpdir(), \"sumi-dev-seed-test-\"));\n context.after(() => rmSync(parent, { recursive: true, force: true }));\n const spaceId = \"019fa900-0000-7000-8000-000000000001\";\n const computerId = \"019fa900-0000-7000-8000-000000000002\";\n const stateDir = computerStateDirectory(parent, spaceId, computerId);\n mkdirSync(stateDir, { recursive: true });\n writeFileSync(join(stateDir, \"secrets.json\"), JSON.stringify({ computer_id: computerId, space_id: spaceId }));\n\n const result = findComputerStateForSpace(parent, spaceId);\n\n assert.equal(result.stateDir, join(parent, spaceId, computerId));\n assert.deepEqual(result.pairedIdentity, { computerId, spaceId });\n});\n\ntest(\"development seed allows a deep Computer state path when its runtime path is short\", { skip: process.platform !== \"darwin\" }, (context) => {\n const stateDir = join(tmpdir(), \"x\".repeat(110));\n context.after(() => rmSync(stateDir, { recursive: true, force: true }));\n assert.doesNotThrow(() => prepareComputerStateDirectory(stateDir));\n});\n\ntest(\"browser Session handoff sets the Cookie and remains retryable\", async (context) => {\n const destination = \"http://127.0.0.1:5173/s/dev-space/channels/general\";\n const handoff = await createBrowserSessionHandoff(\"sumi_session=test-token\", destination);\n context.after(() => handoff.close());\n\n const response = await fetch(handoff.url, { redirect: \"manual\" });\n assert.equal(response.status, 302);\n assert.equal(response.headers.get(\"location\"), destination);\n assert.match(\n response.headers.get(\"set-cookie\") ?? \"\",\n /^sumi_session=test-token; Path=\\/; HttpOnly; SameSite=Lax$/,\n );\n assert.equal(response.headers.get(\"cache-control\"), \"no-store\");\n\n const replay = await fetch(handoff.url, { redirect: \"manual\" });\n assert.equal(replay.status, 302);\n assert.equal(replay.headers.get(\"location\"), destination);\n assert.match(replay.headers.get(\"set-cookie\") ?? \"\", /^sumi_session=test-token;/);\n});\n"}}}}