diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3da01f5..e8d49ad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,6 +39,7 @@ jobs: shell: bash run: | set -euo pipefail + # Version bumps are reviewed separately; this workflow publishes package.json verbatim. version="$(node -p "require('./package.json').version")" if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+-beta\.[0-9]+$ ]]; then echo "Expected package version X.Y.Z-beta.N, got: $version" >&2 diff --git a/.gitignore b/.gitignore index 2f6369c..55d6e34 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ dist/ # Local agent notes / environment-specific AGENTS.md +.opencode/ # Graphify knowledge graph output graphify-out/ diff --git a/.opencode/opencode.json b/.opencode/opencode.json deleted file mode 100644 index cb75d07..0000000 --- a/.opencode/opencode.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://opencode.ai/config.json", - "plugin": [ - "@otto-assistant/opencode-cursor-oauth@2.2.0" - ] -} diff --git a/README.md b/README.md index 7d7c0ad..bfeea31 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,17 @@ npm run verify dependencies with lifecycle scripts disabled, imports it independently, and loads that extracted package through the pinned `opencode2` beta. +### Beta release + +Before dispatching the **Release V2 Beta** workflow, land a reviewed commit that +updates `package.json` to the next unused `X.Y.Z-beta.N` version and updates any +lockfiles changed by the package manager. Run the workflow from `beta` with +`dry_run` enabled first, then rerun the same commit with `dry_run` disabled to +publish. + +The workflow does not bump versions or create release commits. It validates, +packs, and publishes the exact reviewed version to npm's `beta` dist-tag. + ## Debugging Enable plugin logs: diff --git a/test/shared-constants.test.ts b/test/shared-constants.test.ts index 3978172..1cf07f2 100644 --- a/test/shared-constants.test.ts +++ b/test/shared-constants.test.ts @@ -1,6 +1,8 @@ import { describe, expect, test } from "bun:test"; import { execFileSync } from "node:child_process"; +// The suite runs under Bun, so process.execPath intentionally launches a fresh +// Bun process that can import the TypeScript module without a build step. const readFallbackLimits = (environment: NodeJS.ProcessEnv) => JSON.parse( execFileSync( process.execPath,