@zhivex-ai/harness 1.3.0-rc.7 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ All notable changes to Zhivex Harness are documented in this file.
4
4
 
5
5
  The project follows Semantic Versioning. During `0.x`, minor releases may change user-facing contracts when the change is documented with a migration note. Patch releases remain backwards compatible bug fixes.
6
6
 
7
+ ## 1.3.0 - 2026-10-02
8
+
9
+ - Prepare Harness 1.3.0 and the independent Code CLI 0.1.0 for protected publication to npm `latest`; Code pins exactly Harness 1.3.0 and must publish after its verified engine dependency.
10
+ - Preserve the RC7 runtime and Code RC2 provider/terminal fixes; no new product features or changes to historical Harness binaries, state contracts or stable API signatures.
11
+ - Validate Code stable/latest and RC/next channels, canonical versions, exact engine pins, channel ordering and immutable artifact recovery. Preserve annotated-tag, exact main CI/CodeQL, installed acceptance, integrity and provenance gates.
12
+ - Keep beta and experimental API tiers, provisional Anthropic/Gemini/Vertex support and private Desktop alpha unchanged. RC7's six-provider live gates and Meta/Qwen/OpenAI 42-case representative evidence remain bound to RC7; stable artifacts require new protected evidence.
13
+ - Refresh the recorded verified latest publication to Harness 1.2.0 without fabricating an uncreated GitHub Release, and align active release/installation documentation without claiming that the prepared stable versions are already published.
14
+
7
15
  ## 1.3.0-rc.7 - 2026-10-01
8
16
 
9
17
  - Pin Qwen contract certification to zero sampling temperature in approval and conversation continuity smokes, preserving all approval, compaction, effect and context assertions. Application model defaults remain unchanged.
package/README.md CHANGED
@@ -11,19 +11,21 @@ implement a change. Conversation context retains decisions, hypotheses and bound
11
11
  diagnostic excerpts across compaction. Edits and command execution keep their
12
12
  own permission checks; a conversational summary never grants approval.
13
13
 
14
- Version `1.3.0-rc.7` prepares the terminal-independent engine API and the local
15
- Code package for candidate validation on npm `next`. Publication remains pending
16
- the protected release workflow. RC4 includes Anthropic, Gemini/Vertex, Desktop package migration, isolated MCP/ACP,
17
- checkpoints and experimental governance controls. Code publication is independent.
18
- Stable `1.2.0` remains available under npm `latest`.
19
- Desktop retains its separate private alpha status.
14
+ Version `1.3.0` is prepared for npm `latest`, with terminal-independent engine
15
+ entrypoints and the separately released Code CLI `0.1.0`. Publication remains
16
+ pending the protected workflow. Harness `1.2.0` is currently published on `latest`;
17
+ Harness RC7 and Code RC2 are published on `next`. Stable package numbering does
18
+ not change API stability tiers: beta and experimental APIs retain their policies,
19
+ Gemini/Anthropic/Vertex remain provisional, and Desktop remains a private alpha.
20
20
 
21
21
  ## Quick start
22
22
 
23
23
  Requires Node.js 22.13.0 or newer, Git and a provider API key.
24
24
 
25
+ After protected publication of 1.3.0:
26
+
25
27
  ```sh
26
- npm install -g @zhivex-ai/harness@1.3.0-rc.7
28
+ npm install -g @zhivex-ai/harness@1.3.0
27
29
  cd /path/to/your/project
28
30
  zhx
29
31
  ```
@@ -81,5 +83,5 @@ Gemini, [Anthropic](docs/ANTHROPIC.md) and [Vertex](docs/VERTEX.md) remain provi
81
83
  Version `1.2.0` is the current stable public npm release. Source checkout changes can be
82
84
  newer than the published package. Consult the [changelog](CHANGELOG.md) and
83
85
  [repository release status](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json)
84
- for the recorded 1.0.0 release; [release evidence](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md)
86
+ for the verified 1.2.0 publication; [release evidence](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md)
85
87
  records validation scope and limitations.
package/SECURITY.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Supported versions
4
4
 
5
- Security fixes are provided for the latest published `1.1.x` patch. Older minors and private checkpoints are not supported release channels. Registry integrity and provenance do not substitute for the separate provider and execution evidence recorded in [docs/LIVE_CERTIFICATION.md](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md).
5
+ Security fixes are provided for the latest published stable Harness minor (currently `1.2.x`; `1.3.x` after verified publication) and the latest stable Code `0.1.x` patch after its publication. RCs on `next` are validation candidates; older minors and private checkpoints are not supported release channels. Desktop remains a separate private alpha. Beta and experimental features retain their documented limitations. Registry integrity and provenance do not substitute for the separate provider and execution evidence recorded in [docs/LIVE_CERTIFICATION.md](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md).
6
6
 
7
7
  ## Reporting a vulnerability
8
8
 
package/SUPPORT.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Support
2
2
 
3
- Zhivex Harness `1.1.x` is the latest supported Node-first CLI and TypeScript library. Stable 1.x contracts follow [the stability policy](./docs/STABILITY.md); incompatible changes require a major release except documented urgent security corrections. Beta and experimental surfaces retain their declared policies. The mutable machine-readable `release-status.json` record preserves the verified 1.0.0 release; check npm for the current published version.
3
+ Zhivex Harness `1.2.x` is the latest supported Node-first CLI and TypeScript library. Stable 1.x contracts follow [the stability policy](./docs/STABILITY.md); incompatible changes require a major release except documented urgent security corrections. Beta and experimental surfaces retain their declared policies. The mutable machine-readable `release-status.json` record records the verified 1.2.0 publication. Harness 1.3.0 and Code 0.1.0 are prepared for latest but remain pending their protected workflows.
4
4
 
5
5
  The 1.1 support scope is tracked in the [machine-readable support matrix](./docs/support-matrix-1.1.json) and its [human-readable view](./docs/SUPPORT_MATRIX_1_1.md). The [1.0 matrix](./docs/SUPPORT_MATRIX.md) remains historical. Compatibility and removals follow [DEPRECATIONS.md](./docs/DEPRECATIONS.md) for the published 1.x line.
6
6
 
@@ -13,11 +13,11 @@ The 1.1 support scope is tracked in the [machine-readable support matrix](./docs
13
13
  - the provider/model combinations marked certified in the package documentation; and
14
14
  - HTTPS or explicitly allowed loopback-HTTP MCP endpoints using the documented bounded JSON-RPC subset.
15
15
 
16
- Only the most recent published `1.1.x` patch receives routine fixes. The exact `v1.1.1` tag passed the protected artifact, live-provider and representative release jobs. Gemini remains provisional until its complete harness live matrix passes against an exact release candidate. Live provider evidence is account-, model-, endpoint-, artifact-, and date-dependent; see [docs/LIVE_CERTIFICATION.md](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md).
16
+ Only the most recent published stable minor receives routine fixes. The exact `v1.2.0` tag passed the protected artifact, live-provider and representative release jobs. After verified publication, 1.3.x and Code 0.1.x become the supported stable lines. Gemini, Anthropic and Vertex remain provisional despite RC7 live gates; the representative repository matrix covers only Meta, Qwen and OpenAI. Live provider evidence is account-, model-, endpoint-, artifact-, and date-dependent; see [docs/LIVE_CERTIFICATION.md](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md).
17
17
 
18
18
  ## Installation diagnostics
19
19
 
20
- Follow the [stable installation commands](./README.md#installation) or [isolated Bun example](./examples/README.md). Run `zhx --version`, `zhx --help`, and `zhx doctor` before reporting an installation issue. Doctor is local: a missing provider credential produces a diagnostic failure until that credential is configured. Include the version, OS, Node/Bun versions and sanitized diagnostics in a report; never include keys or your `.env` file.
20
+ Follow the [stable installation commands](./README.md#quick-start) or [isolated Bun example](./examples/README.md). Run `zhx --version`, `zhx --help`, and `zhx doctor` before reporting an installation issue. Doctor is local: a missing provider credential produces a diagnostic failure until that credential is configured. Include the version, OS, Node/Bun versions and sanitized diagnostics in a report; never include keys or your `.env` file.
21
21
 
22
22
  ## Support channels
23
23
 
@@ -25,4 +25,4 @@ Use [GitHub Issues](https://github.com/Zhivex/zhivex-harness/issues) for reprodu
25
25
 
26
26
  ## Explicit limits
27
27
 
28
- The harness does not promise arbitrary shell access, `stdio` MCP, permanent deletion, Windows support, a managed sandbox, a desktop UI, or exact feature parity between upstream providers. Tools run with the permissions of the local harness process unless an application supplies a stronger execution environment.
28
+ The harness does not promise arbitrary shell access, general-purpose `stdio` MCP interoperability, permanent deletion, Windows support, a managed sandbox, a stable desktop UI, or exact feature parity between upstream providers. Tools run with the permissions of the local harness process unless an application supplies a stronger execution environment.
package/dist/acp-cli.js CHANGED
@@ -12,13 +12,13 @@ import {
12
12
  import {
13
13
  createHarness,
14
14
  createHarnessClientAdapter
15
- } from "./index-jgrx804e.js";
15
+ } from "./index-hnaxfpb5.js";
16
16
  import"./index-h0mqx2ed.js";
17
17
  import"./index-8zzhggxv.js";
18
18
  import {
19
19
  usagePricingSchema
20
20
  } from "./index-42gp2hy8.js";
21
- import"./index-t60rva31.js";
21
+ import"./index-azmwjp95.js";
22
22
  import"./index-z0qxmkm2.js";
23
23
  import {
24
24
  FileChangedWhileReadingError,
@@ -3,7 +3,7 @@ import {
3
3
  HARNESS_VERSION,
4
4
  resolveHelpTopic,
5
5
  validateCliCommandOptions
6
- } from "./cli-entry-ev76ezcd.js";
6
+ } from "./cli-entry-bx3vjw7h.js";
7
7
  import {
8
8
  DEFAULT_PROVIDER_REGISTRY,
9
9
  HARNESS_CONFIG_SCHEMA_VERSION,
@@ -402,7 +402,7 @@ Use zhx help all for the full reference and exit codes.`;
402
402
  // package.json
403
403
  var package_default = {
404
404
  name: "@zhivex-ai/harness",
405
- version: "1.3.0-rc.7",
405
+ version: "1.3.0",
406
406
  description: "Governed, provider-portable runtime for coding agents with durable approvals and isolated repository execution.",
407
407
  type: "module",
408
408
  license: "MIT",
@@ -120,14 +120,14 @@ import {
120
120
  withTemporaryHarnessProfiles,
121
121
  workspaceCheckpointSchema,
122
122
  workspaceRestoreOperationSchema
123
- } from "./cli-entry-ae7x44d4.js";
123
+ } from "./cli-entry-1gfg3brj.js";
124
124
  import {
125
125
  BUN_ENGINE_RANGE,
126
126
  HARNESS_VERSION,
127
127
  NODE_ENGINE_RANGE,
128
128
  formatCliHelp,
129
129
  shortCliHelp
130
- } from "./cli-entry-ev76ezcd.js";
130
+ } from "./cli-entry-bx3vjw7h.js";
131
131
  import {
132
132
  DEFAULT_HARNESS_MAX_STEPS,
133
133
  DEFAULT_PROVIDER_REGISTRY,
@@ -4360,7 +4360,7 @@ var main = async (argv = process.argv.slice(2)) => {
4360
4360
  parsedOptions = { ...parsedOptions, prompt: await readStdinTask() };
4361
4361
  }
4362
4362
  if (parsedOptions.serviceFile) {
4363
- const { runServiceCli } = await import("./service-client-cli-kns4mf57.js");
4363
+ const { runServiceCli } = await import("./service-client-cli-3365rfav.js");
4364
4364
  await runServiceCli(parsedOptions, annotateCliStreamError);
4365
4365
  return;
4366
4366
  }
package/dist/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  HARNESS_VERSION,
4
4
  shortCliHelp
5
- } from "./cli-entry-ev76ezcd.js";
5
+ } from "./cli-entry-bx3vjw7h.js";
6
6
  import {
7
7
  __require
8
8
  } from "./cli-entry-1bx83sw4.js";
@@ -16,6 +16,6 @@ if (argv.length === 1 && ["--version", "-v", "version"].includes(argv[0])) {
16
16
  process.stdout.write(`${shortCliHelp(HARNESS_VERSION)}
17
17
  `);
18
18
  } else {
19
- const { runCli } = await import("./cli-t7hrhayq.js");
19
+ const { runCli } = await import("./cli-etsmtst3.js");
20
20
  await runCli(argv);
21
21
  }
@@ -2,7 +2,7 @@ import {
2
2
  discardMcpWorkspaceSnapshot,
3
3
  launchDockerMcpGroup,
4
4
  prepareMcpWorkspaceSnapshot
5
- } from "../index-z4e8d0ph.js";
5
+ } from "../index-6m08wvab.js";
6
6
  import {
7
7
  createAcpConnection,
8
8
  issueAcpMcpSessionProvider,
@@ -11,11 +11,11 @@ import {
11
11
  import {
12
12
  createHarness,
13
13
  createHarnessClientAdapter
14
- } from "../index-jgrx804e.js";
14
+ } from "../index-hnaxfpb5.js";
15
15
  import"../index-h0mqx2ed.js";
16
16
  import"../index-8zzhggxv.js";
17
17
  import"../index-42gp2hy8.js";
18
- import"../index-t60rva31.js";
18
+ import"../index-azmwjp95.js";
19
19
  import"../index-z0qxmkm2.js";
20
20
  import"../index-yb239ghk.js";
21
21
  import"../index-gq9xagx2.js";
@@ -2,11 +2,11 @@ import {
2
2
  createHarnessClientAdapter,
3
3
  runResultDocument,
4
4
  terminalContinuationMessages
5
- } from "../index-jgrx804e.js";
5
+ } from "../index-hnaxfpb5.js";
6
6
  import"../index-h0mqx2ed.js";
7
7
  import"../index-8zzhggxv.js";
8
8
  import"../index-42gp2hy8.js";
9
- import"../index-t60rva31.js";
9
+ import"../index-azmwjp95.js";
10
10
  import"../index-z0qxmkm2.js";
11
11
  import"../index-yb239ghk.js";
12
12
  import"../index-gq9xagx2.js";
@@ -91,7 +91,7 @@ import {
91
91
  recoverHarnessLocalService,
92
92
  requestHarnessLocalService,
93
93
  startHarnessLocalService
94
- } from "../index-2gz7jv7g.js";
94
+ } from "../index-w2sj0wkw.js";
95
95
  import {
96
96
  createAcpConnection,
97
97
  serveAcpStdio
@@ -144,7 +144,7 @@ import {
144
144
  runHarness,
145
145
  runHarnessReviewGroup,
146
146
  selectHarnessModel
147
- } from "../index-jgrx804e.js";
147
+ } from "../index-hnaxfpb5.js";
148
148
  import {
149
149
  HARNESS_OPERATIONS_SCHEMA_VERSION,
150
150
  HARNESS_SQLITE_FILE,
@@ -184,7 +184,7 @@ import {
184
184
  createHttpMcpClient,
185
185
  loadHarnessMcpConfiguration,
186
186
  normalizeHarnessMcpConfiguration
187
- } from "../index-t60rva31.js";
187
+ } from "../index-azmwjp95.js";
188
188
  import {
189
189
  CliOciRuntimeAdapter,
190
190
  HARNESS_EXECUTION_ARTIFACT_SCHEMA_VERSION,
@@ -8,8 +8,8 @@ import {
8
8
  mcpResourcePlanSchema,
9
9
  prepareMcpWorkspaceSnapshot,
10
10
  recoverDockerMcpResources
11
- } from "../index-z4e8d0ph.js";
12
- import"../index-t60rva31.js";
11
+ } from "../index-6m08wvab.js";
12
+ import"../index-azmwjp95.js";
13
13
  import"../index-z0qxmkm2.js";
14
14
  import"../index-yb239ghk.js";
15
15
  import"../index-gq9xagx2.js";
@@ -5,12 +5,12 @@ import {
5
5
  recoverHarnessLocalService,
6
6
  requestHarnessLocalService,
7
7
  startHarnessLocalService
8
- } from "../index-2gz7jv7g.js";
9
- import"../index-jgrx804e.js";
8
+ } from "../index-w2sj0wkw.js";
9
+ import"../index-hnaxfpb5.js";
10
10
  import"../index-h0mqx2ed.js";
11
11
  import"../index-8zzhggxv.js";
12
12
  import"../index-42gp2hy8.js";
13
- import"../index-t60rva31.js";
13
+ import"../index-azmwjp95.js";
14
14
  import"../index-z0qxmkm2.js";
15
15
  import"../index-yb239ghk.js";
16
16
  import"../index-gq9xagx2.js";
@@ -12120,7 +12120,7 @@ import { z as z30 } from "zod";
12120
12120
  // package.json
12121
12121
  var package_default = {
12122
12122
  name: "@zhivex-ai/harness",
12123
- version: "1.3.0-rc.7",
12123
+ version: "1.3.0",
12124
12124
  description: "Governed, provider-portable runtime for coding agents with durable approvals and isolated repository execution.",
12125
12125
  type: "module",
12126
12126
  license: "MIT",
@@ -3,7 +3,7 @@ import {
3
3
  combineMcpHostSessions,
4
4
  createHarnessMcpTools,
5
5
  issueMcpHostSession
6
- } from "./index-t60rva31.js";
6
+ } from "./index-azmwjp95.js";
7
7
  import {
8
8
  collectSnapshotInventory,
9
9
  readSnapshotFile
@@ -11,7 +11,7 @@ import {
11
11
  // package.json
12
12
  var package_default = {
13
13
  name: "@zhivex-ai/harness",
14
- version: "1.3.0-rc.7",
14
+ version: "1.3.0",
15
15
  description: "Governed, provider-portable runtime for coding agents with durable approvals and isolated repository execution.",
16
16
  type: "module",
17
17
  license: "MIT",
@@ -59,7 +59,7 @@ import {
59
59
  mcpConfigurationFingerprintInput,
60
60
  normalizeHarnessMcpConfiguration,
61
61
  resolveMcpHostSession
62
- } from "./index-t60rva31.js";
62
+ } from "./index-azmwjp95.js";
63
63
  import {
64
64
  EnvironmentPatchDriftError,
65
65
  Workspace,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createHarnessClientAdapter,
3
3
  harnessPolicyDecisionEventSchema
4
- } from "./index-jgrx804e.js";
4
+ } from "./index-hnaxfpb5.js";
5
5
  import {
6
6
  openCliSessionStore
7
7
  } from "./index-42gp2hy8.js";
package/dist/index.js CHANGED
@@ -100,7 +100,7 @@ import {
100
100
  recoverHarnessLocalService,
101
101
  requestHarnessLocalService,
102
102
  startHarnessLocalService
103
- } from "./index-2gz7jv7g.js";
103
+ } from "./index-w2sj0wkw.js";
104
104
  import {
105
105
  createAcpConnection,
106
106
  serveAcpStdio
@@ -147,7 +147,7 @@ import {
147
147
  runHarness,
148
148
  runHarnessReviewGroup,
149
149
  selectHarnessModel
150
- } from "./index-jgrx804e.js";
150
+ } from "./index-hnaxfpb5.js";
151
151
  import {
152
152
  HARNESS_OPERATIONS_SCHEMA_VERSION,
153
153
  HARNESS_SQLITE_FILE,
@@ -180,7 +180,7 @@ import {
180
180
  createHttpMcpClient,
181
181
  loadHarnessMcpConfiguration,
182
182
  normalizeHarnessMcpConfiguration
183
- } from "./index-t60rva31.js";
183
+ } from "./index-azmwjp95.js";
184
184
  import {
185
185
  CliOciRuntimeAdapter,
186
186
  HARNESS_EXECUTION_ARTIFACT_SCHEMA_VERSION,
@@ -2,14 +2,14 @@
2
2
  import {
3
3
  recoverHarnessLocalService,
4
4
  startHarnessLocalService
5
- } from "./index-2gz7jv7g.js";
5
+ } from "./index-w2sj0wkw.js";
6
6
  import {
7
7
  createHarness
8
- } from "./index-jgrx804e.js";
8
+ } from "./index-hnaxfpb5.js";
9
9
  import"./index-h0mqx2ed.js";
10
10
  import"./index-8zzhggxv.js";
11
11
  import"./index-42gp2hy8.js";
12
- import"./index-t60rva31.js";
12
+ import"./index-azmwjp95.js";
13
13
  import"./index-z0qxmkm2.js";
14
14
  import"./index-yb239ghk.js";
15
15
  import"./index-gq9xagx2.js";
@@ -14,10 +14,10 @@ import {
14
14
  printPolicyInspection,
15
15
  sanitizeTerminalText,
16
16
  serializeStreamResult
17
- } from "./cli-entry-ae7x44d4.js";
17
+ } from "./cli-entry-1gfg3brj.js";
18
18
  import {
19
19
  HARNESS_VERSION
20
- } from "./cli-entry-ev76ezcd.js";
20
+ } from "./cli-entry-bx3vjw7h.js";
21
21
  import {
22
22
  HARNESS_ERROR_CODES,
23
23
  HARNESS_ERROR_SCHEMA_VERSION,
@@ -12556,7 +12556,7 @@ import { z as z32 } from "zod";
12556
12556
  // package.json
12557
12557
  var package_default = {
12558
12558
  name: "@zhivex-ai/harness",
12559
- version: "1.3.0-rc.7",
12559
+ version: "1.3.0",
12560
12560
  description: "Governed, provider-portable runtime for coding agents with durable approvals and isolated repository execution.",
12561
12561
  type: "module",
12562
12562
  license: "MIT",
package/dist/zhx.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  HARNESS_VERSION,
4
4
  shortCliHelp
5
- } from "./cli-entry-ev76ezcd.js";
5
+ } from "./cli-entry-bx3vjw7h.js";
6
6
  import {
7
7
  __require
8
8
  } from "./cli-entry-1bx83sw4.js";
@@ -16,6 +16,6 @@ if (argv.length === 1 && ["--version", "-v", "version"].includes(argv[0])) {
16
16
  process.stdout.write(`${shortCliHelp(HARNESS_VERSION)}
17
17
  `);
18
18
  } else {
19
- const { runCli } = await import("./cli-t7hrhayq.js");
19
+ const { runCli } = await import("./cli-etsmtst3.js");
20
20
  await runCli(argv);
21
21
  }
@@ -1,10 +1,14 @@
1
1
  # Code release procedure
2
2
 
3
- Code is released independently of Harness. The initial candidate is
4
- `@zhivex-ai/code@0.1.0-rc.2`, with the sole binary `zhivex-code`, npm tag `next`,
5
- and the exact dependency `@zhivex-ai/harness@1.3.0-rc.7`. Harness must first be
6
- published and verified through its protected release workflow. This document
7
- records preparation, not successful publication.
3
+ Code is released independently of Harness. The prepared stable release is
4
+ `@zhivex-ai/code@0.1.0`, with the sole binary `zhivex-code`, npm tag `latest`,
5
+ and the exact dependency `@zhivex-ai/harness@1.3.0`. Harness must first be
6
+ published and verified through its protected release workflow. Code RC2 is
7
+ already published on `next` and RC1 is still on `latest`; trusted
8
+ publishing succeeded in [run 36902929707](https://github.com/Zhivex/zhivex-harness/actions/runs/36902929707).
9
+ The stable release uses that existing OIDC path; no new credentials or publisher
10
+ configuration are part of preparation. This document records preparation, not
11
+ successful stable publication.
8
12
 
9
13
  ## Release preparation
10
14
 
@@ -12,19 +16,23 @@ records preparation, not successful publication.
12
16
  2. Wait for the latest `ci.yml` and `codeql.yml` **push runs on main** to succeed
13
17
  for the exact commit. Keep the Code manifest, version and engine pin unchanged
14
18
  after selecting that commit.
15
- 3. From a clean checkout of that main commit, create an annotated
16
- `code-v0.1.0-rc.2` tag and push it. Never move or overwrite release tags.
19
+ 3. Wait for Harness `1.3.0` publication and successful registry/provenance
20
+ verification as ordered in [the Harness release procedure](https://github.com/Zhivex/zhivex-harness/blob/main/docs/RELEASE.md).
21
+ From a clean checkout of that main commit, create an annotated
22
+ `code-v0.1.0` tag and push it. Never move or overwrite release tags.
17
23
  4. Dispatch `release-code.yml` **at that tag**, with input `tag` matching it and
18
- `mode=bootstrap`. Dispatching main while supplying a different tag is rejected.
24
+ `channel=latest`, `mode=oidc`, and `confirm_publication=true`. Dispatching
25
+ main while supplying a different tag is rejected.
19
26
 
20
27
  ```sh
21
- gh workflow run release-code.yml --ref code-v0.1.0-rc.2 \
22
- -f tag=code-v0.1.0-rc.2 -f mode=bootstrap -f confirm_publication=false
28
+ gh workflow run release-code.yml --ref code-v0.1.0 \
29
+ -f tag=code-v0.1.0 -f channel=latest -f mode=oidc -f confirm_publication=true
23
30
  ```
24
31
 
25
32
  The workflow validates tag identity, main ancestry, exact CI/CodeQL, Code source
26
33
  and package boundaries. It downloads the pinned Harness version from npm and
27
- verifies its integrity; missing publication or provenance stops the release.
34
+ verifies its integrity and SLSA artifact/workflow/tag/source binding; missing
35
+ publication or provenance stops the release.
28
36
  It builds Code once, inspects package contents, installs it against the actual
29
37
  registry dependency without overrides, and tests the retained Code and Harness
30
38
  artifacts with npm, pnpm, Yarn and Bun. The paired matrix uses explicit engine
@@ -36,13 +44,18 @@ inside the GitHub-hosted build job. It retains `code.tgz`, `code.sigstore.json`,
36
44
  `SHA512SUMS`, and installed acceptance in `code-release-<full-source-sha>`.
37
45
  Bootstrap mode **does not publish**. No npm token is copied into GitHub.
38
46
 
39
- ## First publication
47
+ ## Historical first publication / future package bootstrap
40
48
 
41
49
  npm requires the package to exist before configuring its trusted publisher;
42
50
  staged publishing also requires an existing package. An authenticated scope
43
51
  owner performs the first publication using the successful workflow's retained
44
52
  artifact and provenance bundle. Do not rebuild the tarball locally.
45
53
 
54
+ These bootstrap commands apply only if authenticated first publication is
55
+ explicitly authorized for a new package. They are unnecessary for the existing
56
+ Code package. Set `RELEASE_CHANNEL` from `bun run scripts/code-release.ts channel`
57
+ and keep it consistent with the artifact.
58
+
46
59
  Download the artifact from the exact successful run, then verify it in a clean
47
60
  checkout of its annotated Code tag. `CODE_EXPECTED_SHA` must be that tag's full
48
61
  commit SHA. Install npm 11.6.1 into an isolated tools directory and set
@@ -51,12 +64,12 @@ commit SHA. Install npm 11.6.1 into an isolated tools directory and set
51
64
  ```sh
52
65
  (cd release-code-artifacts && shasum -a 512 -c SHA512SUMS)
53
66
  bun run scripts/code-release.ts inspect release-code-artifacts/code.tgz
54
- CODE_EXPECTED_SHA="$(git rev-list -n 1 code-v0.1.0-rc.2)" \
67
+ CODE_EXPECTED_SHA="$(git rev-list -n 1 code-v0.1.0)" \
55
68
  node scripts/code-bootstrap-provenance.cjs verify \
56
69
  release-code-artifacts/code.tgz release-code-artifacts/code.sigstore.json
57
70
  node "$CODE_PROVENANCE_NPM_ROOT/bin/npm-cli.js" publish \
58
71
  ./release-code-artifacts/code.tgz --ignore-scripts --access public \
59
- --tag next --provenance-file ./release-code-artifacts/code.sigstore.json
72
+ --tag "$RELEASE_CHANNEL" --provenance-file ./release-code-artifacts/code.sigstore.json
60
73
  bun run scripts/code-release.ts verify release-code-artifacts/code.tgz
61
74
  ```
62
75
 
@@ -74,16 +87,20 @@ repository `zhivex-harness`, workflow filename `release-code.yml`, and environme
74
87
  `npm`. Enable the allowed action `npm publish`; the OIDC job uses direct
75
88
  publishing after GitHub approval, not `npm stage publish`. Preserve the GitHub
76
89
  environment's required human approval. Then prepare a
77
- new Code RC/version and annotated tag through the same PR and main CI process.
78
- Dispatch its tag with `mode=oidc` and `confirm_publication=true`.
90
+ new Code stable or RC version and annotated tag through the same PR and main CI process.
91
+ Dispatch its tag with the matching channel, `mode=oidc` and
92
+ `confirm_publication=true`. Stable versions require `latest` and a stable exact
93
+ Harness dependency; canonical RC versions require `next`. Version/channel drift
94
+ fails before engine downloads. An RC may pin a stable engine. Stable publication
95
+ does not upgrade beta/experimental APIs, provisional providers or Desktop alpha.
79
96
 
80
97
  All Code tags share one workflow concurrency group. Before publishing, the
81
- registry gate also rejects moving `next` back to an older RC, including when
98
+ registry gate rejects moving the selected channel back to an older release, including when
82
99
  GitHub schedules queued workflows out of order.
83
100
 
84
101
  The publish job downloads the validated artifact without rebuilding it,
85
102
  rechecks identity and digest after protected approval, and uses npm OIDC plus
86
- provenance. It verifies registry tarball bytes, the `next` distribution tag and
103
+ provenance. It verifies registry tarball bytes, the selected `latest`/`next` distribution tag and
87
104
  SLSA source/workflow identity. A successful dispatch or tag is not publication;
88
105
  only successful registry verification confirms the release. When a run has
89
106
  already published, rerun only the failed publish job to retain original bytes.
@@ -1,8 +1,8 @@
1
1
  # Engine API and Code integration
2
2
 
3
3
  This checkout adds terminal-independent package entrypoints for
4
- Harness 1.3.0-rc.7. They are not present in the previously published Harness 1.2.0.
5
- Publication is pending the protected workflow; use the documented
4
+ Harness 1.3.0 (prepared for `latest`). They are not present in the previously published Harness 1.2.0.
5
+ Stable publication is pending the protected workflow; use the documented
6
6
  local candidate smoke to validate these bytes. Do not install registry 1.2.0 and
7
7
  expect the new entrypoints to exist.
8
8
 
@@ -32,9 +32,9 @@ prompt for credentials. Hosts explicitly construct and close the runtime, supply
32
32
  credentials/model instances, resolve approvals and choose their storage policy.
33
33
  Importing the engine does not itself execute a task or grant permissions.
34
34
 
35
- The `/models` subpath is an **unpublished addition after RC3**, introduced for
36
- HAR-HU-39. It is present in local candidate tarballs from this checkout, not the
37
- previously deployed RC3 bytes. Its six runtime exports and two types are listed
35
+ The beta `/models` subpath was introduced after RC3 for HAR-HU-39 and is
36
+ published in RC7. Stable 1.3.0 retains its beta tier; previous RC3 bytes do not
37
+ contain it. Its six runtime exports and two types are listed
38
38
  in `contracts/engine-api.json`. It performs no file access, credential resolution,
39
39
  provider requests or process startup. Remote catalog loading remains host-owned.
40
40
  Installed-package smoke compiles the public subpath for a browser and checks its
@@ -68,8 +68,8 @@ switching presentation does not migrate state or authorize new effects.
68
68
  ## Terminal product
69
69
 
70
70
  `packages/code` is the independently built terminal product. Its current version
71
- is `0.1.0-rc.2`, prepared for independent publication to `next` with the exact
72
- engine dependency `@zhivex-ai/harness@1.3.0-rc.7`. Publication remains gated by
71
+ is `0.1.0`, prepared for independent publication to `latest` with the exact
72
+ engine dependency `@zhivex-ai/harness@1.3.0`. Publication remains gated by
73
73
  reviewed main, CI and registry evidence in the [Code release procedure](CODE_RELEASE.md).
74
74
  Code imports declared package APIs, never Harness source paths. Its build leaves
75
75
  Harness external.
@@ -111,10 +111,11 @@ verifies that engine and state entrypoints in one installation share ownership.
111
111
  Compatibility with older clients that do not participate in this locking
112
112
  protocol is not implied.
113
113
 
114
- The new subpaths are unpublished local additions after the deployed RC3.
114
+ The new subpaths were introduced after RC3 and are published in RC7. Stable
115
+ 1.3.0 retains their declared tiers.
115
116
  Desktop migration and packaged acceptance are documented in
116
117
  the repository-only report `docs/reports/HAR_HU_39_2026-09-29.md`. Its dependency is pinned to the
117
- candidate version and checked for required contracts/artifact identity; this does
118
+ exact prepared engine version and checked for required contracts/artifact identity; this does
118
119
  not claim compatibility with the earlier published RC3 bytes or a broader range.
119
120
 
120
121
  ```sh
package/docs/FIRST_USE.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # First use
2
2
 
3
- This guide targets the prepared `1.3.0-rc.7` candidate. Installation commands become available after protected publication to npm `next`; stable users can keep npm `latest`.
3
+ This guide targets the prepared stable `1.3.0` release. These exact-version commands become available after protected publication to npm `latest`; currently latest resolves to 1.2.0.
4
4
 
5
5
  ## Install and start
6
6
 
7
7
  Install Node.js 22.13.0 or newer and Git. Then:
8
8
 
9
9
  ```sh
10
- npm install -g @zhivex-ai/harness@1.3.0-rc.7
10
+ npm install -g @zhivex-ai/harness@1.3.0
11
11
  cd /path/to/your/project
12
12
  zhx
13
13
  ```
@@ -82,16 +82,16 @@ For command execution, configure [OCI isolation](EXECUTION_ENVIRONMENTS.md).
82
82
  With Bun 1.4.0 or newer and a supported Node runtime:
83
83
 
84
84
  ```sh
85
- bun add --global @zhivex-ai/harness@1.3.0-rc.7
85
+ bun add --global @zhivex-ai/harness@1.3.0
86
86
  zhx
87
87
  ```
88
88
 
89
89
  For a disposable version/help/environment check without a global installation:
90
90
 
91
91
  ```sh
92
- bunx @zhivex-ai/harness@1.3.0-rc.7 --version
93
- bunx @zhivex-ai/harness@1.3.0-rc.7 --help
94
- bunx @zhivex-ai/harness@1.3.0-rc.7 doctor
92
+ bunx @zhivex-ai/harness@1.3.0 --version
93
+ bunx @zhivex-ai/harness@1.3.0 --help
94
+ bunx @zhivex-ai/harness@1.3.0 doctor
95
95
  ```
96
96
 
97
97
  For source development, use the [contributor guide](https://github.com/Zhivex/zhivex-harness/blob/main/CONTRIBUTING.md).
package/docs/STABILITY.md CHANGED
@@ -4,7 +4,7 @@ The additive [engine entrypoints](ENGINE_API.md) are enumerated in
4
4
  [`../contracts/engine-api.json`](../contracts/engine-api.json). Aliases preserve
5
5
  their existing root tiers; newly exposed helpers have explicit tiers. The root
6
6
  compatibility surface remains unchanged. These entrypoints are source changes
7
- for the planned 1.3 line, not APIs available in the registry 1.2.0 package.
7
+ for the prepared 1.3.0 release and are available in the published RC7; they are absent from registry 1.2.0. Stable package numbering does not upgrade any export tier.
8
8
 
9
9
  [`../contracts/public-api.json`](../contracts/public-api.json) is the machine-checked 1.0 baseline for the package root, binaries, CLI commands/subcommands, exit codes, and document schemas. Every runtime and type export is present in the snapshot and belongs to exactly one explicit tier. Exports listed as stable form the intended 1.x compatibility surface; Time-to-Safe-Fix exports are experimental; the explicitly listed beta exports may evolve under the policy below.
10
10
 
@@ -52,7 +52,8 @@
52
52
  "v1.3.0-rc.4",
53
53
  "v1.3.0-rc.5",
54
54
  "v1.3.0-rc.6",
55
- "v1.3.0-rc.7"
55
+ "v1.3.0-rc.7",
56
+ "v1.3.0"
56
57
  ],
57
58
  "expectedModels": [
58
59
  {
@@ -462,6 +463,14 @@
462
463
  "qwen": "qwen3.8-flash",
463
464
  "openai": "gpt-6-luna"
464
465
  }
466
+ },
467
+ {
468
+ "releaseTag": "v1.3.0",
469
+ "models": {
470
+ "meta": "muse-spark-1.3-contributor",
471
+ "qwen": "qwen3.8-flash",
472
+ "openai": "gpt-6-luna"
473
+ }
465
474
  }
466
475
  ],
467
476
  "expectedCases": [
@@ -2,19 +2,19 @@
2
2
 
3
3
  ## Isolated Bun installation
4
4
 
5
- Requirements: Bun 1.4.0+, Node.js 22.13.0+, and Git on macOS or Linux. After protected 1.2.0 publication, this installs the stable artifact in a temporary consumer, without building the source checkout or changing global tools:
5
+ Requirements: Bun 1.4.0+, Node.js 22.13.0+, and Git on macOS or Linux. After protected 1.3.0 publication, this installs the stable artifact in a temporary consumer, without building the source checkout or changing global tools:
6
6
 
7
7
  ```bash
8
8
  harness_demo_dir=$(mktemp -d)
9
9
  cd "$harness_demo_dir"
10
10
  printf '{"name":"harness-first-run","private":true}\n' > package.json
11
- bun add --exact --ignore-scripts @zhivex-ai/harness@1.3.0-rc.7
11
+ bun add --exact --ignore-scripts @zhivex-ai/harness@1.3.0
12
12
  ./node_modules/.bin/zhx --version
13
13
  ./node_modules/.bin/zhx --help
14
14
  ./node_modules/.bin/zhx doctor --provider openai --json
15
15
  ```
16
16
 
17
- Version must print `1.2.0`; help lists commands. Doctor does not contact a provider. Without `OPENAI_API_KEY`, it reports the missing credential and exits with code `3`; inspect the JSON checks before proceeding. A directory without Git initialization can also produce a diagnostic warning. No paid model call is required for these checks. Both `zhx` and `zhivex-harness` are installed aliases; Bun manages installation, and their shebang runs Node.
17
+ Version must print `1.3.0`; help lists commands. Doctor does not contact a provider. Without `OPENAI_API_KEY`, it reports the missing credential and exits with code `3`; inspect the JSON checks before proceeding. A directory without Git initialization can also produce a diagnostic warning. No paid model call is required for these checks. Both `zhx` and `zhivex-harness` are installed aliases; Bun manages installation, and their shebang runs Node.
18
18
 
19
19
  To continue in your actual project, use the [global installation and credential setup](../README.md#installation), then `zhx init --profile daily --provider openai` and `zhx doctor --profile daily`. Real tasks require the selected provider credential in the process environment. Profiles store provider/model choices, never credentials. See [CLI](../docs/CLI.md) and [support](../SUPPORT.md).
20
20
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhivex-ai/harness",
3
- "version": "1.3.0-rc.7",
3
+ "version": "1.3.0",
4
4
  "description": "Governed, provider-portable runtime for coding agents with durable approvals and isolated repository execution.",
5
5
  "type": "module",
6
6
  "license": "MIT",