diff --git a/AGENTS.md b/AGENTS.md index 91c73fba..fd7de558 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -41,8 +41,11 @@ required CI, protected main, stage-only publishing, staged-byte review and npm 2FA. See `docs/security/npm-release-security.md` for the exact boundary. -The release-level OIDC alternative in `docs/security/npm-direct-release.md` is -prepared but NOT activated. Do not enable its flags, create its trusted publisher -relationships or publish a new cohort without the owner's final activation -approval. Once explicitly enabled, its own single-release approval and exact -artifact checks replace per-package staged approval for that profile only. +The owner has authorized activation of the release-level OIDC alternative in +`docs/security/npm-direct-release.md` and a fresh release cohort. Complete the +specified trusted publisher/environment configuration and verify it before +setting the enablement flags. Do not request that same activation approval again. +The owner subsequently authorized 1.0.0 stable publication to latest, replacing +the unpublished beta.10 candidate. Platform-required passkey authentication still belongs to the owner. Once enabled, +that profile uses one release-level approval and exact artifact checks; legacy +beta.9 staging and published versions remain intact. diff --git a/AI.md b/AI.md index c02a77c6..0efc7a2a 100644 --- a/AI.md +++ b/AI.md @@ -2,7 +2,7 @@ AgentPlat is an open-source TypeScript framework for persistent human-agent collaboration, with shared artifacts, human approvals and controlled execution on your infrastructure. -AgentPlat Agent Rooms provide the collaboration workspace. AgentPlat Collective Runtime and AgentPlat Agent Mesh add planning and distributed coordination when needed. AgentPlat is a developer preview; source availability, registry distribution and operational evidence must be checked separately. +AgentPlat Agent Rooms provide the collaboration workspace. AgentPlat Collective Runtime and AgentPlat Agent Mesh add planning and distributed coordination when needed. AgentPlat 1.0.0 is being prepared for stable distribution under `docs/stability.md`. Publication is pending; source availability, registry distribution and operational evidence must be checked separately. - Canonical repository: https://github.com/Agentplat/agentplat - Website: https://agentplat.com diff --git a/CHANGELOG.md b/CHANGELOG.md index dac26b74..4f52f2d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,30 @@ ## Unreleased -## 0.3.0-beta.9 — prepared, not yet published +## 1.0.0 — prepared; publication pending + +- Establish a public API compatibility and maintenance policy for the 65-package + coordinated stable line, with explicit experimental capability boundaries. +- Add production deployment and preview migration guidance. +- Target `latest` only through the protected release workflow and complete + registry/consumer verification. No completed publication is claimed here. + +## 0.3.0-beta.10 — superseded before publication by 1.0.0 + +- Carries the Morphogenesis supersession APIs, compensation adapter, Room + projection, fence timestamp recovery and persistent integration example from + beta.9 into a fresh coordinated 65-package release. +- Uses the separately authorized release-level OIDC flow: exact prepared files, + one protected GitHub approval, dependency-order publication and registry checks. +- No registry completion is claimed until all package signatures, bytes, + provenance and consumers pass. `latest` is not promoted. + +## 0.3.0-beta.9 — partially published; not a complete coordinated release + +Three package versions were verified public during migration. Remaining staged +versions and the original artifact are preserved. This release was not announced +as complete; use a subsequently verified coordinated release for adoption. + - Add opt-in Morphogenesis supersession admission and terminal cleanup receipts, retaining stable owner operation identities and the accepted morphology head. diff --git a/README.md b/README.md index 9079ceef..18f0207c 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ AgentPlat is an open-source TypeScript framework for persistent human-agent coll [Website](https://agentplat.com) · [Documentation](https://doc.agentplat.com) · [GitHub](https://github.com/Agentplat/agentplat) -> Developer preview: APIs may change between prereleases. Implementation, distribution and operational evidence are separate. See [component maturity](docs/component-maturity.md). +> Version 1.0.0 is being prepared for stable distribution. See the [stability contract](docs/stability.md) and [production guide](docs/production.md). Publication remains pending; consult [release channels](docs/release-channels.md) for availability. ## A concrete use case diff --git a/docs/component-maturity.md b/docs/component-maturity.md index 4c89a27c..0ca67762 100644 --- a/docs/component-maturity.md +++ b/docs/component-maturity.md @@ -3,7 +3,7 @@ This is the editorial entry point for adoption status. Source availability, registry distribution, executable checks and operational evidence answer different questions. None implies another. The source checkout currently -uses a coordinated preview version; it does not prove that version is on npm. +prepares coordinated version 1.0.0; publication is pending. The [stability contract](stability.md) governs API compatibility independently of operational evidence. ## Source and integration map diff --git a/docs/production.md b/docs/production.md new file mode 100644 index 00000000..a608d06e --- /dev/null +++ b/docs/production.md @@ -0,0 +1,46 @@ +# Production deployment + +AgentPlat's maintainer reports that AgentPlat packages are already used in +production. This is a maintainer-reported deployment statement, not a published +customer study: package versions, workload, observation period and incident +metrics have not yet been recorded here. It does not expand the paper's evidence. + +Version 1.0.0 is being prepared for stable publication. Until the distribution +record confirms the complete release, do not assume it is available on npm. + +## Supported application boundaries + +Use the exported APIs under the [stability contract](stability.md). Start from +[persistent collaboration](getting-started/persistent-collaboration.md) and +[integration controls](getting-started/integration-controls.md). Reference demos +supply development defaults; applications must configure their actual host. + +| Deployment concern | Application configuration and acceptance check | +| --- | --- | +| Runtime and installation | Use a Node version supported by every selected package and adapter; the release includes a Node 22 consumer check. Pin coordinated package versions and commit the lockfile. | +| Persistence | Choose durable PostgreSQL/Redis/Temporal adapters as applicable. Apply documented migrations, back up data and exercise restore before accepting production traffic. In-memory stores provide no restart durability. | +| Identity and authorization | Verify principals and tenant boundaries at ingress. Connect policy and approval checkpoints to the actual execution path; direct provider or handler calls do not inherit opt-in controls. | +| External effects | Supply idempotency keys, bounded retries and reconciliation for uncertain outcomes. Verify that restart after an effect does not duplicate the action. | +| Distributed work | Configure lease expiry, fencing and drain behavior in the owning adapters. Test interruption and recovery with the selected database and worker topology. | +| Operations | Collect structured errors and audit events, monitor backlog and failed/reconciling work, and define alerts, retention and operator recovery procedures. | +| Secrets and network | Supply credentials outside source, restrict database/tool access, and configure authenticated transport and peer key custody for Mesh. | +| Capacity | Measure latency, throughput and recovery on the intended workload. Local deterministic tests do not define a production capacity limit. | + +## Migration from previews + +The 1.0.0 candidate carries the beta.9 runtime improvements and release tooling; +it introduces the stability policy without intentionally changing runtime APIs. +It replaces the unpublished beta.10 candidate. The partially published beta.9 +cohort is not a coordinated upgrade target. + +Once publication is verified, select exact 1.0.0 versions for all @agentplat +packages your application uses and regenerate the lockfile. Compile the +application, run its integration tests and verify its actual adapters in staging. +Exercise restart, approval, failed external-effect and recovery paths before +rolling out. Preserve the old lockfile and deployment artifact for rollback; +restore data only under the adapter's documented migration/restore procedure. + +Publication acceptance requires the complete 65-package release, registry +bytes/signatures/provenance/tag checks, and clean package consumers. Deployment +acceptance additionally depends on the application's configuration and workload. +The [component matrix](component-maturity.md) records the available evidence. diff --git a/docs/release-channels.md b/docs/release-channels.md index 53d98949..939ae1f1 100644 --- a/docs/release-channels.md +++ b/docs/release-channels.md @@ -1,19 +1,23 @@ # Release channels -AgentPlat uses one fixed version for all publishable packages. Preview work is -published under the npm `next` tag; `latest` remains the last promoted preview -until the maintainers explicitly promote a tested release. +AgentPlat uses one fixed version for all 65 publishable packages. The next +planned stable release is **1.0.0**, targeting npm `latest`. It replaces the +unpublished beta.10 candidate. Publication is pending; this document does not +assert that registry tags have moved. -Install the current preview deliberately: +Stable 1.x releases follow the [stability contract](stability.md). Prereleases +use `next` and must never promote `latest`. Stable promotion requires successful +public checks, exact artifact verification, reference integration validation, +and clean registry consumers for the entire coordinated release. + +After the 1.0.0 distribution record is verified, install exact versions: ```sh -pnpm add @agentplat/framework@next @agentplat/sessions@next +pnpm add @agentplat/framework@1.0.0 @agentplat/sessions@1.0.0 ``` -Preview APIs are supported for evaluation and production-preview validation, -but may change between prereleases. A preview is promoted to `latest` only after -the public checks, package smoke test, reference examples and downstream -integration validation are green. +See the [production and migration guide](production.md). Historical observations +below describe previews; they do not override the stable 1.x policy. `0.3.0-alpha.4` was the coordinated Evidence and Trust preview. This paragraph describes that historical release, not the current npm tag. @@ -36,7 +40,7 @@ server-only adapters live at `@agentplat/mesh/trust` and adapters receive Trust filtering or restriction; direct Mesh, provider, handler and dispatcher calls keep their existing behavior. -Session/browser APIs remain on `next` until the reference Next.js controls, +Historically, session/browser APIs remained on `next` until the reference Next.js controls, public contract tests, package smoke test, downstream validation and a stable API review are all green for a promotion candidate. `latest` is intentionally not advanced merely because a preview release is published. @@ -49,7 +53,7 @@ in Alpha 1. Consumers should still install the coordinated channel explicitly while the framework is in preview. -A disabled-by-default [release-level OIDC profile](security/npm-direct-release.md) -prepares one verified cohort for one protected deployment approval. It requires -explicit activation of separate npm publisher permissions; the existing staged -release workflow remains the active default until that activation. +The owner-authorized [release-level OIDC profile](security/npm-direct-release.md) +prepares one verified cohort for one protected deployment approval. Its setup is +in progress; enablement follows verification of every npm publisher relationship. +The existing staged workflow remains available for historical cohorts. diff --git a/docs/security/npm-direct-release.md b/docs/security/npm-direct-release.md index f5f5dca0..17c68d12 100644 --- a/docs/security/npm-direct-release.md +++ b/docs/security/npm-direct-release.md @@ -1,9 +1,11 @@ -# Release-level OIDC publication (prepared, not activated) +# Release-level OIDC publication (activation authorized; setup in progress) The owner requested preparation of this alternative after interactive staged approval failed to reuse a passkey across the coordinated package cohort. -This document is the reviewable activation proposal. No npm publisher permissions, -GitHub environments or enablement variables are changed by merging the code. +The owner subsequently authorized activation and preparation of 1.0.0. The +reviewed implementation is integrated. External configuration is being installed; +publication remains blocked until every package relationship is verified and the +explicit flags are enabled. No repeated activation approval is required. ## Change in authority @@ -53,7 +55,7 @@ publisher verifies existing versions rather than rebuilding, republishing or silently repairing tags. A mismatched existing version requires investigation. The progress report is diagnostic; registry evidence determines resume behavior. -## Activation proposal — requires owner's final authorization +## Authorized activation procedure After the reviewed code is integrated and required CI passes: @@ -75,7 +77,7 @@ After the reviewed code is integrated and required CI passes: using the authenticated maintainer CLI. It checks the owner, exact main-only deployment rule, enablement flags and existing main/Actions protections. - Prepare a fresh coordinated version and run a dry-run first. Then dispatch the - same reviewed main source with `dry_run=false`, tag `next`, scope `all`. + same reviewed main source with `dry_run=false`, tag `latest` for 1.0.0 (`next` for prereleases), scope `all`. After preparation passes, approve the one environment deployment, or use `node scripts/approve-owner-npm-release.mjs RUN_ID --direct` on the owner's behalf. It refuses foreign original/rerun actors, failed preparation, another @@ -93,11 +95,10 @@ Staged and public versions share npm's version uniqueness constraint. The new publisher must not overwrite them, automatically reject staging, unpublish a version or move old tags to disguise this partial release. -Use a fresh coordinated version, proposed `0.3.0-beta.10`, after checking current +Use a fresh coordinated version, proposed `1.0.0`, after checking current registry availability. Bump all package manifests through the existing version script, add the supported release-line entry, regenerate/verify the lockfile if -needed, and produce a NEW manifest from the approved source. No such version -bump or publication is included in this preparation change. Historical paper +needed, and produce a NEW manifest from the approved source. The 1.0.0 version bump is prepared; publication is still pending. Historical paper and beta.9 artifacts keep their original source references. Handling leftover private staging is a separate, explicitly authorized cleanup. diff --git a/docs/security/npm-release-security.md b/docs/security/npm-release-security.md index 69936ecc..e2a5370c 100644 --- a/docs/security/npm-release-security.md +++ b/docs/security/npm-release-security.md @@ -4,12 +4,12 @@ to npm. **Status:** implemented repository controls plus explicitly identified external configuration. -## Prepared alternative (not activated) +## Release-level alternative (activation authorized; setup in progress) A release-level OIDC profile has been prepared at the owner's request. See [npm direct release](npm-direct-release.md) for its gates, tests, migration and -explicit activation proposal. It remains disabled until the owner authorizes -npm permission changes and the enablement flags are set. The stage-only rules +explicit activation proposal. The owner has authorized npm permission changes. It remains disabled until all +relationships are verified and the enablement flags are set. The stage-only rules below remain the active policy for `release.yml` / `npm-production`. ## Security invariant diff --git a/docs/stability.md b/docs/stability.md new file mode 100644 index 00000000..ea6ed53c --- /dev/null +++ b/docs/stability.md @@ -0,0 +1,49 @@ +# Stability and maintenance + +Version 1.0.0 is the first coordinated stable release candidate in source. +Registry publication is pending. This policy takes effect for published 1.x +versions; use the distribution record to identify a verified release. + +## Public compatibility contract + +The 65 packages in `config/public-packages.json` share one release version. +The supported API consists of their package.json export entry points, exported +TypeScript contracts and documented behavior. Internal source paths, examples, +research scripts and undocumented implementation details are outside that API. + +Within 1.x, patches fix defects without intentionally breaking supported +contracts. Minor releases add compatible functionality and deprecations. +Removing exports, incompatible type or behavior changes, or requiring an +incompatible persistence/protocol migration requires a new major release. +Deprecations include an alternative and migration instructions before removal. +Security fixes describe any necessary behavior changes in release notes. + +Persisted data and protocol versions retain their documented compatibility +rules. Back up before migrations; a successful package install does not prove +that a database downgrade is safe. Consumers should upgrade the coordinated +package set together and retain a lockfile. + +## Experimental capabilities + +AgentPlat Agent Morphogenesis, including its V1–V8 entry points and associated +opt-in integrations, remains experimental in operational maturity. Simulation, +research evaluation and features explicitly marked experimental or research-only +are not promises of production reliability. Their public exports still receive +the 1.x compatibility protection above; experimental status is not permission +to silently break a stable package. + +The component maturity matrix and frozen evidence baseline continue to describe +what has actually been exercised. Stable versioning is a maintainer commitment +to compatibility, not a claim that every adapter combination or deployment scale +has been validated. + +## Maintenance and support + +Report reproducible defects through repository issues and follow SECURITY.md +for security reports. Fixes target the current 1.x release; support for older +patch versions and prereleases is not promised. There is no response-time SLA +or implied commercial support. Release notes identify migrations and supported +runtime changes. Future retirement of the 1.x line will be announced explicitly. + +See [production deployment](production.md), [component maturity](component-maturity.md) +and [release channels](release-channels.md). diff --git a/package.json b/package.json index 03d49ce2..5465bf19 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "agentplat", - "version": "0.3.0-beta.9", + "version": "1.0.0", "private": true, "description": "Open-source TypeScript framework for persistent human-agent collaboration, with shared artifacts, human approvals and controlled execution on your infrastructure.", "keywords": [ diff --git a/packages/a2a/package.json b/packages/a2a/package.json index b773478b..2c125f64 100644 --- a/packages/a2a/package.json +++ b/packages/a2a/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/a2a", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Governed A2A 1.0 interoperability for AgentPlat agents and Room services.", "type": "module", "license": "Apache-2.0", diff --git a/packages/agent-registry-postgres/package.json b/packages/agent-registry-postgres/package.json index ffe6a9b0..3537b931 100644 --- a/packages/agent-registry-postgres/package.json +++ b/packages/agent-registry-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/agent-registry-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL persistence for the AgentPlat Agent Registry.", "type": "module", "license": "Apache-2.0", diff --git a/packages/agent-registry/package.json b/packages/agent-registry/package.json index 3535536f..b519f5e2 100644 --- a/packages/agent-registry/package.json +++ b/packages/agent-registry/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/agent-registry", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Tenant-scoped capability discovery with revisioned agent descriptors.", "type": "module", "license": "Apache-2.0", diff --git a/packages/audit-postgres/package.json b/packages/audit-postgres/package.json index f490a221..fc017452 100644 --- a/packages/audit-postgres/package.json +++ b/packages/audit-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/audit-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL audit and session event sinks for AgentPlat without Agent Rooms.", "type": "module", "license": "Apache-2.0", diff --git a/packages/audit/package.json b/packages/audit/package.json index 280858bd..56b8d369 100644 --- a/packages/audit/package.json +++ b/packages/audit/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/audit", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Audit contracts, recursive redaction and an in-memory sink for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/auth/package.json b/packages/auth/package.json index ac5a4d6f..e63ac73c 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/auth", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Provider-neutral auth and tenant-resolution contracts for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/autonomy-postgres/package.json b/packages/autonomy-postgres/package.json index fa6b6a57..505fdaef 100644 --- a/packages/autonomy-postgres/package.json +++ b/packages/autonomy-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/autonomy-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL state and decision journal for AgentPlat progressive autonomy.", "type": "module", "license": "Apache-2.0", diff --git a/packages/autonomy/package.json b/packages/autonomy/package.json index 76e6e2b4..7fe478d0 100644 --- a/packages/autonomy/package.json +++ b/packages/autonomy/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/autonomy", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Evidence-gated progressive supervision for governed AgentPlat actions.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-control-postgres/package.json b/packages/collective-control-postgres/package.json index 14d3cb5e..2c9f2e1b 100644 --- a/packages/collective-control-postgres/package.json +++ b/packages/collective-control-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-control-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL repositories and migrations for Agentplat collective control.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-control/package.json b/packages/collective-control/package.json index a6a80f77..e6bbf6aa 100644 --- a/packages/collective-control/package.json +++ b/packages/collective-control/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-control", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Provider-neutral governed delegation, work and action contracts for AgentPlat collectives.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-host-postgres/package.json b/packages/collective-host-postgres/package.json index c38126e3..a41ed643 100644 --- a/packages/collective-host-postgres/package.json +++ b/packages/collective-host-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-host-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL durability for Agentplat collective host runtimes and protocol artifacts.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-host/package.json b/packages/collective-host/package.json index 349a5b0e..e7132580 100644 --- a/packages/collective-host/package.json +++ b/packages/collective-host/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-host", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Peer-local composition host for decentralized planning, control, trust and governed evolution.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-membership-postgres/package.json b/packages/collective-membership-postgres/package.json index 97a3c50b..de235190 100644 --- a/packages/collective-membership-postgres/package.json +++ b/packages/collective-membership-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-membership-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL durability for certified Agentplat membership epochs and key rotation.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-membership/package.json b/packages/collective-membership/package.json index a2816f8c..e436fbdf 100644 --- a/packages/collective-membership/package.json +++ b/packages/collective-membership/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-membership", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Certified dynamic peer membership and overlapping key rotation for Agentplat collectives.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-planning/package.json b/packages/collective-planning/package.json index f864f74e..2f34ac64 100644 --- a/packages/collective-planning/package.json +++ b/packages/collective-planning/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-planning", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Portable contracts and deterministic primitives for distributed mission planning.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-quorum-postgres/package.json b/packages/collective-quorum-postgres/package.json index 384bbb5b..bc3b730f 100644 --- a/packages/collective-quorum-postgres/package.json +++ b/packages/collective-quorum-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-quorum-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL durability for Agentplat signed peer quorum protocols.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-quorum/package.json b/packages/collective-quorum/package.json index cd2097f4..e63b4508 100644 --- a/packages/collective-quorum/package.json +++ b/packages/collective-quorum/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-quorum", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Signed peer quorum protocols and Agentplat collective runtime adapters.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-runtime/package.json b/packages/collective-runtime/package.json index ca54b5bf..e92237e8 100644 --- a/packages/collective-runtime/package.json +++ b/packages/collective-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-runtime", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "High-level provider-neutral runtime for capability-based AgentPlat collectives.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-sync-postgres/package.json b/packages/collective-sync-postgres/package.json index 05e29691..156b287c 100644 --- a/packages/collective-sync-postgres/package.json +++ b/packages/collective-sync-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-sync-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Transactional PostgreSQL persistence for Agentplat collective causal synchronization.", "type": "module", "license": "Apache-2.0", diff --git a/packages/collective-sync/package.json b/packages/collective-sync/package.json index 45f81ec5..f3a94a78 100644 --- a/packages/collective-sync/package.json +++ b/packages/collective-sync/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/collective-sync", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Authenticated causal anti-entropy, resumable catch-up, and readiness evidence for Agentplat collectives.", "type": "module", "license": "Apache-2.0", diff --git a/packages/core/package.json b/packages/core/package.json index cdde5873..ceec0aaf 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/core", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Foundational types, errors and tenant context for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/events/package.json b/packages/events/package.json index 3779ee6f..2767df74 100644 --- a/packages/events/package.json +++ b/packages/events/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/events", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Event contracts and an in-memory event bus for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/framework/package.json b/packages/framework/package.json index e9fc9eb4..c0f32d32 100644 --- a/packages/framework/package.json +++ b/packages/framework/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/framework", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Open-source TypeScript framework for persistent human-agent collaboration, with shared artifacts, human approvals and controlled execution on your infrastructure.", "type": "module", "license": "Apache-2.0", diff --git a/packages/inference-control/package.json b/packages/inference-control/package.json index c4618428..fb58fbf0 100644 --- a/packages/inference-control/package.json +++ b/packages/inference-control/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/inference-control", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Deterministic inference-control contracts and reducer for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/interop-postgres/package.json b/packages/interop-postgres/package.json index 4286936e..66274d3a 100644 --- a/packages/interop-postgres/package.json +++ b/packages/interop-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/interop-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL custody for governed Agentplat interop sessions and outbound sequences.", "type": "module", "license": "Apache-2.0", diff --git a/packages/interop/package.json b/packages/interop/package.json index 5f50d6ff..18564beb 100644 --- a/packages/interop/package.json +++ b/packages/interop/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/interop", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Provider-neutral SDK for connecting external agents and simulation environments to Agentplat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/mcp-docs/package.json b/packages/mcp-docs/package.json index ed5ea902..dfc5bcfa 100644 --- a/packages/mcp-docs/package.json +++ b/packages/mcp-docs/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mcp-docs", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Read-only MCP documentation server for AgentPlat specifications, concepts, APIs and examples.", "keywords": [ "mcp", diff --git a/packages/mcp-runtime/package.json b/packages/mcp-runtime/package.json index 05d4edd3..d1d808c9 100644 --- a/packages/mcp-runtime/package.json +++ b/packages/mcp-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mcp-runtime", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Self-hosted MCP adapter for operating an authorized AgentPlat runtime.", "keywords": [ "mcp", diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 02d4b637..d3ec2448 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mcp", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "MCP server, tool binding and registry contracts for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/memory/package.json b/packages/memory/package.json index 515f69bf..7baddcea 100644 --- a/packages/memory/package.json +++ b/packages/memory/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/memory", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Memory contracts and an isolated in-memory store for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/mesh-conformance/package.json b/packages/mesh-conformance/package.json index e7f05d68..782e2320 100644 --- a/packages/mesh-conformance/package.json +++ b/packages/mesh-conformance/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mesh-conformance", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Provider-neutral compatibility runners for Agentplat Mesh adapters.", "type": "module", "license": "Apache-2.0", diff --git a/packages/mesh-crypto/package.json b/packages/mesh-crypto/package.json index e679d9c0..549147f0 100644 --- a/packages/mesh-crypto/package.json +++ b/packages/mesh-crypto/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mesh-crypto", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Web Crypto signing and verification contracts for AgentPlat Mesh envelopes.", "type": "module", "license": "Apache-2.0", diff --git a/packages/mesh-http/package.json b/packages/mesh-http/package.json index 51359c2b..72364009 100644 --- a/packages/mesh-http/package.json +++ b/packages/mesh-http/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mesh-http", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Bounded Fetch-compatible HTTP transport for signed Agentplat Mesh envelopes.", "type": "module", "license": "Apache-2.0", diff --git a/packages/mesh-postgres/package.json b/packages/mesh-postgres/package.json index 9ab4962b..f282b7c5 100644 --- a/packages/mesh-postgres/package.json +++ b/packages/mesh-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mesh-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL durable inbox, snapshot, journal and outbox adapter for Agentplat Mesh.", "type": "module", "license": "Apache-2.0", diff --git a/packages/mesh-protocol/package.json b/packages/mesh-protocol/package.json index 41459513..4e2a8c2e 100644 --- a/packages/mesh-protocol/package.json +++ b/packages/mesh-protocol/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mesh-protocol", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Bounded wire contracts for provider-neutral AgentPlat Mesh peers.", "type": "module", "license": "Apache-2.0", diff --git a/packages/mesh-sim-local/package.json b/packages/mesh-sim-local/package.json index f7947bbe..040188fe 100644 --- a/packages/mesh-sim-local/package.json +++ b/packages/mesh-sim-local/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mesh-sim-local", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Local content-addressed evidence store for Agentplat Mesh simulation campaigns.", "type": "module", "license": "Apache-2.0", diff --git a/packages/mesh-sim-postgres/package.json b/packages/mesh-sim-postgres/package.json index 5a5f09dc..c4f44dfe 100644 --- a/packages/mesh-sim-postgres/package.json +++ b/packages/mesh-sim-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mesh-sim-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL campaign custody, fenced execution, and restart-durable scalable evaluation checkpoints for AgentPlat Mesh simulation.", "type": "module", "license": "Apache-2.0", diff --git a/packages/mesh-sim/package.json b/packages/mesh-sim/package.json index b781c0d0..95ddb81f 100644 --- a/packages/mesh-sim/package.json +++ b/packages/mesh-sim/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mesh-sim", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Deterministic simulation contracts for AgentPlat Mesh peer state machines.", "type": "module", "license": "Apache-2.0", diff --git a/packages/mesh/package.json b/packages/mesh/package.json index aaabc813..5867d8c0 100644 --- a/packages/mesh/package.json +++ b/packages/mesh/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/mesh", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Provider-neutral peer state and effect contracts for AgentPlat Mesh applications.", "type": "module", "license": "Apache-2.0", diff --git a/packages/model-anthropic/package.json b/packages/model-anthropic/package.json index b32274a4..7eaf4227 100644 --- a/packages/model-anthropic/package.json +++ b/packages/model-anthropic/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/model-anthropic", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Dependency-light native Anthropic Messages API model adapter for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/model-gemini/package.json b/packages/model-gemini/package.json index 5d36843f..c10d8dda 100644 --- a/packages/model-gemini/package.json +++ b/packages/model-gemini/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/model-gemini", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Dependency-light native Gemini GenerateContent API model adapter for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/model-openai-compatible/package.json b/packages/model-openai-compatible/package.json index 2bf3a226..f7257270 100644 --- a/packages/model-openai-compatible/package.json +++ b/packages/model-openai-compatible/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/model-openai-compatible", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Dependency-light OpenAI-compatible Chat Completions model adapter for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/model/package.json b/packages/model/package.json index 3c994755..4b868184 100644 --- a/packages/model/package.json +++ b/packages/model/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/model", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Provider-neutral model generation and streaming contracts for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/planning-artifacts-postgres/package.json b/packages/planning-artifacts-postgres/package.json index eb482be0..1f2efd88 100644 --- a/packages/planning-artifacts-postgres/package.json +++ b/packages/planning-artifacts-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/planning-artifacts-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Immutable PostgreSQL persistence for Agentplat planning artifacts.", "type": "module", "license": "Apache-2.0", diff --git a/packages/planning-artifacts/package.json b/packages/planning-artifacts/package.json index 67a4eb23..9d2b081f 100644 --- a/packages/planning-artifacts/package.json +++ b/packages/planning-artifacts/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/planning-artifacts", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Authenticated publication and peer-to-peer availability for Agentplat planning artifacts.", "type": "module", "license": "Apache-2.0", diff --git a/packages/postgres/package.json b/packages/postgres/package.json index c2dafe2b..561639a2 100644 --- a/packages/postgres/package.json +++ b/packages/postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Shared PostgreSQL pool, health and migration primitives for AgentPlat adapters.", "type": "module", "license": "Apache-2.0", diff --git a/packages/provider-openai/package.json b/packages/provider-openai/package.json index c6511cc9..671d51f1 100644 --- a/packages/provider-openai/package.json +++ b/packages/provider-openai/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/provider-openai", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "OpenAI Agents SDK provider for the AgentPlat runtime.", "type": "module", "license": "Apache-2.0", diff --git a/packages/rooms-api/package.json b/packages/rooms-api/package.json index 69579433..ba894187 100644 --- a/packages/rooms-api/package.json +++ b/packages/rooms-api/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/rooms-api", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Injectable Hono HTTP API for AgentPlat Agent Rooms.", "type": "module", "license": "Apache-2.0", diff --git a/packages/rooms-mesh/package.json b/packages/rooms-mesh/package.json index d16b964d..1ca278b0 100644 --- a/packages/rooms-mesh/package.json +++ b/packages/rooms-mesh/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/rooms-mesh", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Explicit authority-neutral projections between Agentplat Rooms and Mesh work.", "type": "module", "license": "Apache-2.0", diff --git a/packages/rooms-postgres/package.json b/packages/rooms-postgres/package.json index 3815c1b4..b493704a 100644 --- a/packages/rooms-postgres/package.json +++ b/packages/rooms-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/rooms-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL persistence adapter for AgentPlat Agent Rooms.", "type": "module", "license": "Apache-2.0", diff --git a/packages/rooms-temporal/package.json b/packages/rooms-temporal/package.json index 17ceefa4..6e7f73d0 100644 --- a/packages/rooms-temporal/package.json +++ b/packages/rooms-temporal/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/rooms-temporal", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Optional Temporal adapter for durable AgentPlat Agent Room coordination.", "type": "module", "license": "Apache-2.0", diff --git a/packages/rooms/package.json b/packages/rooms/package.json index 319dd4e7..244382e5 100644 --- a/packages/rooms/package.json +++ b/packages/rooms/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/rooms", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Agent Room domain, lifecycle services and local adapters for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/runtime-mock/package.json b/packages/runtime-mock/package.json index b8072254..7c24fe78 100644 --- a/packages/runtime-mock/package.json +++ b/packages/runtime-mock/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/runtime-mock", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Deterministic mock agent runtime for AgentPlat development and tests.", "type": "module", "license": "Apache-2.0", diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 8d2d3fc8..81e04b4c 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/runtime", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Provider-neutral executable agent runtime for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/sessions-redis/package.json b/packages/sessions-redis/package.json index 48ebf6f6..39890a32 100644 --- a/packages/sessions-redis/package.json +++ b/packages/sessions-redis/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/sessions-redis", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Redis pub/sub SessionRegistry adapter for multi-instance AgentPlat sessions.", "type": "module", "license": "Apache-2.0", diff --git a/packages/sessions/package.json b/packages/sessions/package.json index f3533efb..53bd65a4 100644 --- a/packages/sessions/package.json +++ b/packages/sessions/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/sessions", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Typed ephemeral multi-agent sessions for AgentPlat runtimes.", "type": "module", "license": "Apache-2.0", diff --git a/packages/streaming/package.json b/packages/streaming/package.json index d6bfd076..11379eca 100644 --- a/packages/streaming/package.json +++ b/packages/streaming/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/streaming", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Framework-neutral SSE helpers for AgentPlat runtime streams.", "type": "module", "license": "Apache-2.0", diff --git a/packages/tools/package.json b/packages/tools/package.json index 365bc7e0..2be15805 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/tools", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Tool contracts and an in-memory tool registry for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/trust/package.json b/packages/trust/package.json index 1e2dd10b..88438298 100644 --- a/packages/trust/package.json +++ b/packages/trust/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/trust", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Browser-safe deterministic evidence and trust primitives for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/packages/work-management-asana/package.json b/packages/work-management-asana/package.json index 10625042..b3dcd420 100644 --- a/packages/work-management-asana/package.json +++ b/packages/work-management-asana/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/work-management-asana", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Asana Work Management provider for AgentPlat human contributions.", "type": "module", "license": "Apache-2.0", diff --git a/packages/workflows-conformance/package.json b/packages/workflows-conformance/package.json index 3454fcd9..df820f2d 100644 --- a/packages/workflows-conformance/package.json +++ b/packages/workflows-conformance/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/workflows-conformance", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Provider-neutral conformance runners for AgentPlat governed workflow adapters.", "type": "module", "license": "Apache-2.0", diff --git a/packages/workflows-postgres/package.json b/packages/workflows-postgres/package.json index ac34f2e2..8aecb815 100644 --- a/packages/workflows-postgres/package.json +++ b/packages/workflows-postgres/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/workflows-postgres", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "PostgreSQL durability for AgentPlat governed workflows and delayed outcomes.", "type": "module", "license": "Apache-2.0", diff --git a/packages/workflows-rooms/package.json b/packages/workflows-rooms/package.json index 1970202e..41b39f47 100644 --- a/packages/workflows-rooms/package.json +++ b/packages/workflows-rooms/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/workflows-rooms", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Agent Room approval gates for AgentPlat governed workflows.", "type": "module", "license": "Apache-2.0", diff --git a/packages/workflows-temporal/package.json b/packages/workflows-temporal/package.json index 7108cec2..5db00f63 100644 --- a/packages/workflows-temporal/package.json +++ b/packages/workflows-temporal/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/workflows-temporal", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Optional Temporal wakeup, retry and rollover adapter for AgentPlat governed workflows.", "type": "module", "license": "Apache-2.0", diff --git a/packages/workflows/package.json b/packages/workflows/package.json index 9d24332a..d20288a8 100644 --- a/packages/workflows/package.json +++ b/packages/workflows/package.json @@ -1,6 +1,6 @@ { "name": "@agentplat/workflows", - "version": "0.3.0-beta.9", + "version": "1.0.0", "description": "Workflow contracts and an in-memory workflow store for AgentPlat.", "type": "module", "license": "Apache-2.0", diff --git a/scripts/release-line.mjs b/scripts/release-line.mjs index 0725c443..1a771064 100644 --- a/scripts/release-line.mjs +++ b/scripts/release-line.mjs @@ -85,6 +85,20 @@ export const RELEASE_LINES = Object.freeze([ trustPackageCount: 1, requiredPackageNames: A2A_PACKAGE_NAMES, }), + Object.freeze({ + catalogPackageCount: 65, + id: "beta10", + releaseVersion: "0.3.0-beta.10", + trustPackageCount: 1, + requiredPackageNames: A2A_PACKAGE_NAMES, + }), + Object.freeze({ + catalogPackageCount: 65, + id: "stable1", + releaseVersion: "1.0.0", + trustPackageCount: 1, + requiredPackageNames: A2A_PACKAGE_NAMES, + }), ]); /** diff --git a/tests/release-line.test.mjs b/tests/release-line.test.mjs index b22a6a1a..3252c42d 100644 --- a/tests/release-line.test.mjs +++ b/tests/release-line.test.mjs @@ -223,6 +223,28 @@ test("Beta 9 requires all 65 packages, the A2A group, and exact versions", async await assert.rejects(() => assertReleaseLine({ root: mixed }), /must use 0\.3\.0-beta\.9/); }); +test("Beta 10 requires all 65 packages, the A2A group, and exact versions", async (t) => { + const line = RELEASE_LINES.find((line) => line.id === "beta10"); + const good = await createReleaseLineFixture({ line }); + const missing = await createReleaseLineFixture({ line, includeRequired: false }); + const mixed = await createReleaseLineFixture({ line, packageVersion: "0.3.0-beta.9" }); + t.after(() => Promise.all([good, missing, mixed].map((root) => rm(root, { force: true, recursive: true })))); + assert.equal(await assertReleaseLine({ root: good }), true); + await assert.rejects(() => assertReleaseLine({ root: missing })); + await assert.rejects(() => assertReleaseLine({ root: mixed }), /must use 0\.3\.0-beta\.10/); +}); + +test("Stable 1.0 requires all 65 packages, the A2A group, and exact versions", async (t) => { + const line = RELEASE_LINES.find((line) => line.id === "stable1"); + const good = await createReleaseLineFixture({ line }); + const missing = await createReleaseLineFixture({ line, includeRequired: false }); + const mixed = await createReleaseLineFixture({ line, packageVersion: "0.3.0-beta.10" }); + t.after(() => Promise.all([good, missing, mixed].map((root) => rm(root, { force: true, recursive: true })))); + assert.equal(await assertReleaseLine({ root: good }), true); + await assert.rejects(() => assertReleaseLine({ root: missing })); + await assert.rejects(() => assertReleaseLine({ root: mixed }), /must use 1\.0\.0/); +}); + async function createReleaseLineFixture({ duplicateTrust = false, includeRequired = true,