From 4107fb144653c3240c569f345cf06b028dd7747a Mon Sep 17 00:00:00 2001 From: "oma-release-bot[bot]" <315310457+oma-release-bot[bot]@users.noreply.github.com> Date: Sat, 19 Sep 2026 03:04:33 +0800 Subject: [PATCH] chore: release core v1.20.0 and create-oma-app v0.8.6 (#608) Co-authored-by: oma-release-bot[bot] <315310457+oma-release-bot[bot]@users.noreply.github.com> --- CHANGELOG.md | 66 ++++++++++++++----- package-lock.json | 4 +- packages/core/package.json | 2 +- packages/create-oma-app/package.json | 2 +- packages/create-oma-app/template/package.json | 2 +- .../templates/demo/package.json | 2 +- .../templates/pr-review/package.json | 2 +- .../templates/security/package.json | 2 +- 8 files changed, 57 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e5a397..d33e40b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,25 +2,57 @@ ## Unreleased +## 1.20.0 - 2026-09-18 + ### Added -- Added an optional positive-integer `GateThreshold.minSamples` so an - evaluation gate only accepts a threshold result that is backed by enough - evidence. Score metrics compare it against the selected aggregate's - `scoredCount` and `passRate` compares it against `passSampleCount`. - Tag-scoped thresholds use the tag aggregate's own counts. A count below the - minimum reports the new `insufficient_samples` failure kind carrying the - observed count and the configured limit, and a report written before - `passSampleCount` existed fails closed at zero rather than skipping the - guard. Baseline regression checks honor the same minimum: when either side - holds fewer samples, that comparison is skipped with a warning, so adding - `minSamples` turns a regression failure computed against a small baseline - into a warning. Omitting `minSamples` preserves the previous behavior and the - report schema version is unchanged. -- Added `ScorerAggregate.passSampleCount`, the count of scored records that - define `pass`. It is emitted whenever `passRate` is, including on tag - aggregates, and gives `passRate` guards the denominator that `scoredCount` - does not provide. +- Added an optional positive-integer GateThreshold minSamples guard. A threshold + below the minimum reports insufficient_samples with the observed count as + actual and the configured minimum as limit; score metrics compare against the + selected aggregate scoredCount, passRate compares against passSampleCount, and + tag-scoped thresholds use the tag aggregate own counts. +- Added ScorerAggregate passSampleCount, the number of scored records that + define pass. It is emitted whenever passRate is emitted, including on tag + aggregates. + +### Changed + +- Baseline regression comparisons are skipped with a warning when either the + current or baseline aggregate holds fewer than minSamples samples; this can + turn a previously reported regression failure into a warning. +- A report or baseline written before passSampleCount existed fails closed at + zero samples for passRate guards rather than skipping the guard. +- Updated the shipped README and npm package description to lead with OMA as the + project name and reposition around owning, approving, and auditing. + +### Compatibility + +- Omitting minSamples preserves previous threshold and regression behavior, and + the report schema version remains unchanged, so existing gate policies and + reports need no migration to keep prior behavior. +- Before enabling minSamples on a passRate threshold, regenerate baselines with + a core version that emits passSampleCount; otherwise that regression + comparison skips with a warning, and a passRate guard evaluated against an old + current report fails closed with actual zero. +- Adding minSamples changes gate outcomes in both directions: a short baseline + can downgrade a regression failure to a warning, while a short current report + still fails its own threshold with insufficient_samples. +- A previously ignored minSamples key with a non-positive or non-integer value + now throws minSamples must be a positive integer; remove or correct such keys + in existing gate policies. +- If code exhaustively switches on GateFailure kind, add an insufficient_samples + case. The new kind carries the observed sample count as actual and the + configured minimum as limit, with optional scorer, metric, and tag + coordinates. +- Report JSON now includes passSampleCount on every aggregate that carries + passRate, including tag aggregates. Update snapshots, hashes, or strict + validators; the unchanged schema version cannot distinguish the two shapes. +- Do not rely on an older core to enforce a policy that declares minSamples, + because that core strips the unknown key and silently skips the guard; pin the + gate execution side to a core version that supports it. +- No Node or dependency action is required: the core manifest change is a + description-only edit, and the otel and create-oma-app workspaces have no + changes in this range. ## 1.19.0 - 2026-09-11 diff --git a/package-lock.json b/package-lock.json index fa4f68d..388a1af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5343,7 +5343,7 @@ }, "packages/core": { "name": "@open-multi-agent/core", - "version": "1.19.0", + "version": "1.20.0", "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "^0.52.0", @@ -5426,7 +5426,7 @@ } }, "packages/create-oma-app": { - "version": "0.8.5", + "version": "0.8.6", "license": "MIT", "bin": { "create-oma-app": "dist/index.js" diff --git a/packages/core/package.json b/packages/core/package.json index e628dab..1c7a7d7 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@open-multi-agent/core", - "version": "1.19.0", + "version": "1.20.0", "description": "Self-hosted TypeScript agent runtime with durable approvals and verifiable run records. Own it, approve it, audit it.", "files": [ "dist", diff --git a/packages/create-oma-app/package.json b/packages/create-oma-app/package.json index 0a39a9d..2e6a388 100644 --- a/packages/create-oma-app/package.json +++ b/packages/create-oma-app/package.json @@ -1,6 +1,6 @@ { "name": "create-oma-app", - "version": "0.8.5", + "version": "0.8.6", "description": "Scaffold PR review, security analysis, and multi-agent DAG starters on @open-multi-agent/core.", "type": "module", "bin": { diff --git a/packages/create-oma-app/template/package.json b/packages/create-oma-app/template/package.json index 28b2436..f7d9e48 100644 --- a/packages/create-oma-app/template/package.json +++ b/packages/create-oma-app/template/package.json @@ -10,7 +10,7 @@ "dev": "tsx src/index.ts" }, "dependencies": { - "@open-multi-agent/core": "1.19.0" + "@open-multi-agent/core": "1.20.0" }, "devDependencies": { "tsx": "^4.21.0" diff --git a/packages/create-oma-app/templates/demo/package.json b/packages/create-oma-app/templates/demo/package.json index d8eb5c2..0f39120 100644 --- a/packages/create-oma-app/templates/demo/package.json +++ b/packages/create-oma-app/templates/demo/package.json @@ -11,7 +11,7 @@ "demo": "tsx src/index.ts --demo" }, "dependencies": { - "@open-multi-agent/core": "1.19.0" + "@open-multi-agent/core": "1.20.0" }, "devDependencies": { "tsx": "^4.21.0" diff --git a/packages/create-oma-app/templates/pr-review/package.json b/packages/create-oma-app/templates/pr-review/package.json index 7e412fd..0b6331a 100644 --- a/packages/create-oma-app/templates/pr-review/package.json +++ b/packages/create-oma-app/templates/pr-review/package.json @@ -11,7 +11,7 @@ "demo": "tsx src/index.ts --demo" }, "dependencies": { - "@open-multi-agent/core": "1.19.0", + "@open-multi-agent/core": "1.20.0", "zod": "^3.23.0" }, "devDependencies": { diff --git a/packages/create-oma-app/templates/security/package.json b/packages/create-oma-app/templates/security/package.json index 7e412fd..0b6331a 100644 --- a/packages/create-oma-app/templates/security/package.json +++ b/packages/create-oma-app/templates/security/package.json @@ -11,7 +11,7 @@ "demo": "tsx src/index.ts --demo" }, "dependencies": { - "@open-multi-agent/core": "1.19.0", + "@open-multi-agent/core": "1.20.0", "zod": "^3.23.0" }, "devDependencies": {