diff --git a/README.md b/README.md index dce3245..31aa17f 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,11 @@ the evidence ledger is read-only: cached prices cannot grade pending signals, expire horizons, or create new observations. Build 124 targets five-minute slots with a serialized, self-chained GitHub Actions runtime. +The mutable snapshot stays on the dedicated `runtime-state` branch, which is +explicitly excluded from Vercel Git deployments through +`git.deploymentEnabled`. This prevents high-frequency state commits from +consuming Preview deployment quota while ordinary `main` source commits still +produce Production deployments. It continues from the previous agent snapshot and runs the next due paper cycle even when no browser is open. After each successful cycle, one repo-scoped workflow dispatch waits for the next five-minute boundary; one concurrency group diff --git a/scripts/test-autonomous-runtime.mjs b/scripts/test-autonomous-runtime.mjs index 56a0c99..060507a 100644 --- a/scripts/test-autonomous-runtime.mjs +++ b/scripts/test-autonomous-runtime.mjs @@ -6,6 +6,7 @@ const index = fs.readFileSync(new URL("../index.html", import.meta.url), "utf8") const api = fs.readFileSync(new URL("../api/state.js", import.meta.url), "utf8"); const workflow = fs.readFileSync(new URL("../.github/workflows/autonomous-cycle.yml", import.meta.url), "utf8"); const releaseWorkflow = fs.readFileSync(new URL("../.github/workflows/release-build-124.yml", import.meta.url), "utf8"); +const vercelConfig = JSON.parse(fs.readFileSync(new URL("../vercel.json", import.meta.url), "utf8")); const runner = fs.readFileSync(new URL("./run-autonomous-cycle.mjs", import.meta.url), "utf8"); const resolutionAudit = JSON.parse(fs.readFileSync(new URL("../research/resolution-week-no-audit.json", import.meta.url), "utf8")); const sportsContestAudit = JSON.parse(fs.readFileSync(new URL("../research/sports-contest-no-exploration-audit.json", import.meta.url), "utf8")); @@ -16,6 +17,7 @@ const sportsEvaluator = fs.readFileSync(new URL("./evaluate-sports-favorites.mjs const build = Number(index.match(/const BUILD_VERSION = (\d+);/)?.[1]); assert.equal(build, 124); +assert.equal(vercelConfig.git?.deploymentEnabled?.["runtime-state"], false); assert.equal(settlementCalibrationAudit.requested_markets, 5000); assert.equal(settlementCalibrationAudit.train_passed, 0); assert.equal(settlementCalibrationAudit.validation_selected, 0); diff --git a/vercel.json b/vercel.json index a31f431..a477fa4 100644 --- a/vercel.json +++ b/vercel.json @@ -1,4 +1,10 @@ { + "$schema": "https://openapi.vercel.sh/vercel.json", + "git": { + "deploymentEnabled": { + "runtime-state": false + } + }, "rewrites": [ { "source": "/api/liquidity",