owlrunkit 0.14.0 → 0.15.1

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
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.15.1
4
+
5
+ - Treats preserved active lease bytes in trusted `blocked` or `rejected`
6
+ history as non-active during upgrade safety checks.
7
+ - Validates closeout hashes, decisions, authorization boundaries, accepted
8
+ evidence, and execution pins before trusting historical closeout state.
9
+ - Keeps active executions, invalid closeouts, and accepted closeouts with an
10
+ inconsistent active lease fail-closed.
11
+
12
+ ## 0.15.0
13
+
14
+ - Makes detected npm launchers resolve to absolute regular files that Formal
15
+ verification can execute without weakening symlink rejection.
16
+ - Adds workspace-aware `apps/*` and `packages/*` profile candidates with exact
17
+ workspace script commands.
18
+ - Expands read-only runtime-isolation diagnostics across common formatters,
19
+ linters, and explicitly broad test collectors.
20
+ - Preserves rejected verification preflights as append-only execution evidence
21
+ and persists non-accepted finalize outcomes with their request binding.
22
+ - Consumes completed adoption/profile facts in doctor and inspect guidance only
23
+ when the launcher and exact local registry bindings are still safe.
24
+ - Keeps Contract v0.2, 0.13/0.14 configurations, profiles, historical
25
+ executions, receipts, and verifier Core identities readable; repeated
26
+ upgrades write exclusive sequenced ConfigV2 Core-refresh receipts.
27
+ - Refuses Core or process-wide Codex Skill upgrades before mutation when any
28
+ explicitly enrolled project has an active execution, writer lease,
29
+ ambiguous closeout, or invalid config.
30
+ - Archives the exact prior Skill and project config bytes, adds receipt-bound
31
+ exact rollback, and adds an exact-Core active-fleet recovery path for
32
+ installations already drifted by an older unsafe replacement.
33
+ - Runs registry pack/install/upgrade/rollback gates through npm owned by each
34
+ selected Node runtime and proves active work blocks upgrade before mutation
35
+ and rollback restores the exact prior Skill identity and config bytes.
36
+ - Keeps OwlCoda CLI `0.15.31` unchanged and grants no Git, publish, release, or
37
+ deploy authority.
38
+
3
39
  ## 0.14.0
4
40
 
5
41
  - Adds ordinary `--help` and `--version`, read-only `doctor`, exact official
package/README.md CHANGED
@@ -11,7 +11,7 @@ release authority.
11
11
  ## Install
12
12
 
13
13
  ```bash
14
- npm install --save-exact owlrunkit@0.14.0
14
+ npm install --save-exact owlrunkit@0.15.1
15
15
  ```
16
16
 
17
17
  Check the ordinary CLI surface, then initialize a project:
@@ -22,7 +22,7 @@ owlrunkit --version
22
22
  owlrunkit init --workspace /absolute/path/to/project
23
23
  owlrunkit doctor --workspace /absolute/path/to/project
24
24
  owlrunkit profiles detect --workspace /absolute/path/to/project --dry-run
25
- owlrunkit adopt --workspace /absolute/path/to/project --exact owlrunkit@0.14.0
25
+ owlrunkit adopt --workspace /absolute/path/to/project --exact owlrunkit@0.15.1
26
26
  ```
27
27
 
28
28
  `doctor` is read-only and distinguishes offline/DNS timeout, registry
@@ -32,6 +32,50 @@ detection is deterministic and dry-run only; use `profiles validate` and
32
32
  evidence only after the exact installed package and lockfile match the official
33
33
  npm registry release.
34
34
 
35
+ Core 0.15 keeps Contract v0.2 and all 0.13/0.14 project artifact schemas
36
+ readable. `init` refreshes an older ConfigV2 Core binding with an append-only
37
+ migration receipt only when the project has no active execution, active writer
38
+ lease, or ambiguous control state. Otherwise the upgrade exits before changing
39
+ the config or writing migration evidence. Legal refreshes preserve profiles,
40
+ executions, receipts, and adoption evidence byte-for-byte. Existing profiles
41
+ are never rewritten automatically; a fresh `profiles detect --dry-run` supplies
42
+ safer, workspace-aware candidates for human review.
43
+ Repeated Core refreshes create sequenced receipts without replacing an earlier
44
+ migration event, and rejected Formal finalize gates retain their request-bound
45
+ reason as append-only evidence.
46
+
47
+ ## Updating the process-wide Codex Skill
48
+
49
+ Do not replace a shared installed Skill while any consuming project is active.
50
+ For a changed Skill manifest, enumerate the complete consuming fleet with
51
+ repeated `--workspace` arguments:
52
+
53
+ ```bash
54
+ node ./scripts/runkit-contract/install-codex-skill.mjs install \
55
+ --repository /absolute/path/to/owlrunkit-package \
56
+ --target /absolute/path/to/installed/owlcoda-runkit \
57
+ --archive /absolute/path/to/skill-archives \
58
+ --workspace /absolute/project-a \
59
+ --workspace /absolute/project-b
60
+ ```
61
+
62
+ The update is refused before global or project mutation if any listed project
63
+ is active or invalid. A successful update records the exact prior Skill
64
+ identity and each original project config in an append-only receipt. Restore
65
+ that exact state with:
66
+
67
+ ```bash
68
+ node ./scripts/runkit-contract/install-codex-skill.mjs restore \
69
+ --target /absolute/path/to/installed/owlcoda-runkit \
70
+ --archive /absolute/path/to/skill-archives \
71
+ --receipt /absolute/path/to/skill-upgrade-receipt.json
72
+ ```
73
+
74
+ `recover-active` is reserved for a fleet already drifted by an older unsafe
75
+ replacement. It accepts only an archived Skill whose Core identity exactly
76
+ matches every affected config and active execution pin, leaves all project
77
+ bytes untouched, and writes a recovery receipt.
78
+
35
79
  Use Quick Verification for one low-risk source-bound command that needs a
36
80
  reusable receipt but no writer lease or Formal acceptance. Use Formal Delivery
37
81
  for multi-writer, long-running, migration, integration, release, production,
@@ -7,8 +7,8 @@ description: Run receipt-backed, project-owned software execution with OwlCoda R
7
7
 
8
8
  Use the bundled deterministic Core to coordinate work through project artifacts rather than chat memory. Require Node.js 20 or later.
9
9
 
10
- Current release: standalone `owlrunkit@0.14.0`, bundling Contract `0.2` and
11
- Core `0.14.0`. The root `owlcoda` package has a separate version lifecycle.
10
+ Current release: standalone `owlrunkit@0.15.1`, bundling Contract `0.2` and
11
+ Core `0.15.1`. The root `owlcoda` package has a separate version lifecycle.
12
12
 
13
13
  The session is an execution interface. Project artifacts are the system of record.
14
14
 
@@ -111,17 +111,55 @@ node "$RUNKIT_PACKAGE_ROOT/scripts/runkit-contract/install-codex-skill.mjs" \
111
111
 
112
112
  node "$RUNKIT_PACKAGE_ROOT/scripts/runkit-contract/install-codex-skill.mjs" \
113
113
  install --repository "$RUNKIT_PACKAGE_ROOT" \
114
- --target "$RUNKIT_SKILL_TARGET" --archive "$RUNKIT_SKILL_ARCHIVE_ROOT"
114
+ --target "$RUNKIT_SKILL_TARGET" --archive "$RUNKIT_SKILL_ARCHIVE_ROOT" \
115
+ --workspace /absolute/project-a --workspace /absolute/project-b
115
116
  ```
116
117
 
117
118
  The install manifest binds every Skill, Core, contract and attest file.
118
- Unknown installed drift fails closed instead of being overwritten. An accepted
119
- receipt, ready-for-commit receipt, package publication, or valid install still
120
- does not grant Git, npm, release, deploy, or foreign-project authority.
119
+ Unknown installed drift fails closed instead of being overwritten. A changed
120
+ process-wide Skill requires an explicit fleet: pass every project that consumes
121
+ that Skill as a repeated `--workspace`. The installer validates every project
122
+ config and refuses the whole update before replacing the Skill or changing any
123
+ project when one project has an active execution, an active writer lease,
124
+ ambiguous control state, or invalid configuration. Omitting the fleet is an
125
+ error; do not pass a partial fleet to bypass this guard.
126
+
127
+ A successful update archives the exact prior Skill, migrates each inactive
128
+ project, and writes an append-only upgrade receipt containing the prior Skill
129
+ manifest identity and each prior ConfigV2 byte sequence. Use that receipt for
130
+ an exact rollback:
121
131
 
122
- ## Core v0.14 self-service onboarding
132
+ ```bash
133
+ node "$RUNKIT_PACKAGE_ROOT/scripts/runkit-contract/install-codex-skill.mjs" \
134
+ restore --target "$RUNKIT_SKILL_TARGET" \
135
+ --archive "$RUNKIT_SKILL_ARCHIVE_ROOT" \
136
+ --receipt /absolute/path/to/skill-upgrade-receipt.json
137
+ ```
123
138
 
124
- The bundled Core is `0.14.0`. New users should not need internal module calls,
139
+ If an older unsafe process-wide replacement already drifted a running fleet,
140
+ do not run ordinary `install` or `restore`. Recover only an archived Skill whose
141
+ embedded Core identity exactly matches every affected project config and active
142
+ execution pin:
143
+
144
+ ```bash
145
+ node "$RUNKIT_PACKAGE_ROOT/scripts/runkit-contract/install-codex-skill.mjs" \
146
+ recover-active --target "$RUNKIT_SKILL_TARGET" \
147
+ --archive "$RUNKIT_SKILL_ARCHIVE_ROOT" \
148
+ --archived-installation /absolute/path/to/exact-archived-skill \
149
+ --workspace /absolute/affected-project
150
+ ```
151
+
152
+ Active recovery changes only the process-wide Skill installation. It preserves
153
+ project config, execution, lease, receipt, and closeout bytes and writes an
154
+ append-only recovery receipt. It refuses an approximate version match or a
155
+ fleet with no matching active execution. An accepted receipt, ready-for-commit
156
+ receipt, package publication, valid install, rollback, or recovery still does
157
+ not grant Git, npm, release, deploy, or foreign-project authority.
158
+
159
+ ## Core v0.15 consolidated onboarding and compatibility
160
+
161
+ Core v0.14 introduced self-service onboarding. The bundled Core is now
162
+ `0.15.1`; new users should not need internal module calls,
125
163
  an external schema validator, or the full Formal lifecycle merely to understand
126
164
  whether a project can adopt RunKit.
127
165
 
@@ -132,7 +170,7 @@ owlrunkit doctor --workspace "$PROJECT_ROOT"
132
170
  owlrunkit profiles detect --workspace "$PROJECT_ROOT" --dry-run
133
171
  owlrunkit profiles validate --workspace "$PROJECT_ROOT"
134
172
  owlrunkit profiles impact --workspace "$PROJECT_ROOT" --changed path/to/file
135
- owlrunkit adopt --workspace "$PROJECT_ROOT" --exact owlrunkit@0.14.0
173
+ owlrunkit adopt --workspace "$PROJECT_ROOT" --exact owlrunkit@0.15.1
136
174
  ```
137
175
 
138
176
  `doctor` and `profiles detect --dry-run` are read-only. Registry diagnostics use
@@ -141,16 +179,40 @@ failures, missing versions and local-install binding mismatches without
141
179
  printing credentials. Profile detection is deterministic evidence for a human
142
180
  decision; it does not write or overwrite project configuration.
143
181
 
144
- `adopt` accepts only an exact `owlrunkit@0.14.0` binding from the official npm
182
+ `adopt` accepts only an exact `owlrunkit@0.15.1` binding from the official npm
145
183
  registry. It recomputes the registry and local install/lock facts, invokes the
146
184
  strict adoption evaluator, and writes typed project evidence only after an
147
185
  eligible result. Worktrees, `file:` dependencies, local tarballs, Git sources,
148
186
  workspace links and mutable tags remain ineligible.
149
187
 
150
- `init` and `inspect` expose an onboarding projection that points new users to
151
- `doctor`, dry-run profile detection, and then exact adoption or Formal start.
152
- This projection does not replace the Core recovery action and does not grant
153
- authority.
188
+ Detected commands use canonical absolute regular-file launchers, including
189
+ NVM-managed npm installs, so a detector result does not conflict with Formal
190
+ symlink rejection. Workspace discovery understands safe literal and one-level
191
+ `apps/*` / `packages/*` patterns and emits exact root-owned npm workspace
192
+ commands. Detection remains dry-run only and never rewrites an existing
193
+ profile.
194
+
195
+ `doctor` warns when explicit broad formatter, linter, or test-collector
196
+ commands can include `.owlcoda/runkit/`; it never edits ignore or tool
197
+ configuration. `init` and `inspect` consume valid current-version adoption and
198
+ profile facts only while the exact local registry binding remains intact and
199
+ every launcher is Formal-safe; otherwise launcher review or adoption remains
200
+ explicitly incomplete. The recovery action remains authoritative. A rejected
201
+ Formal executable preflight or non-accepted finalize gate is preserved under
202
+ the execution before the CLI returns the result.
203
+
204
+ Contract v0.2 remains unchanged. Upgrading a 0.13 or 0.14 ConfigV2 project
205
+ is allowed only while its RunKit control state is inactive and unambiguous. An
206
+ active execution or writer lease refuses the upgrade before `config.json` or
207
+ migration evidence changes. A legal refresh writes an exclusive sequenced
208
+ Core-refresh migration receipt and changes only `config.json`; a repeated
209
+ transition cannot replace its first receipt. Compatibility gates invoke npm
210
+ through each selected Node runtime, prove active 0.13/0.14 work blocks 0.15
211
+ before mutation, and prove upgrade-receipt rollback restores the exact prior
212
+ Skill manifest and ConfigV2 bytes. Existing profiles, adoption evidence,
213
+ executions, delivery packets, snapshots, verification receipts, and closeouts
214
+ remain byte-identical and readable. Neither compatibility nor a completed
215
+ onboarding projection grants authority.
154
216
 
155
217
  ## Choose the smallest assurance lane
156
218
 
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": "OwlCodaRunKitConfigV2",
3
3
  "core": {
4
4
  "contractVersion": "0.2",
5
- "coreVersion": "0.14.0",
5
+ "coreVersion": "0.15.1",
6
6
  "coreManifestSha256": "sha256:replace-with-installed-core-manifest",
7
7
  "coreSourceRef": "artifact:sha256:replace-with-content-addressed-source"
8
8
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owlrunkit",
3
- "version": "0.14.0",
3
+ "version": "0.15.1",
4
4
  "description": "Project-owned execution, evidence, verification, and recovery for coding agents.",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "author": "yeemio <owlclaw@163.com>",
@@ -36,6 +36,16 @@
36
36
  "sha256": "sha256:3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
37
37
  },
38
38
  "supportedProducerCoreIdentities": [
39
+ {
40
+ "contractVersion": "0.2",
41
+ "coreVersion": "0.15.1",
42
+ "coreManifestSha256": "sha256:e8ca57522a8e473da356ceb3768bb650267894638d450d5e49463ab6f51c752b"
43
+ },
44
+ {
45
+ "contractVersion": "0.2",
46
+ "coreVersion": "0.15.0",
47
+ "coreManifestSha256": "sha256:06d7616c369b4b3ece3aca32f05c505d4b30781d3ca87a13bd8d7293c1491f64"
48
+ },
39
49
  {
40
50
  "contractVersion": "0.2",
41
51
  "coreVersion": "0.14.0",
@@ -18,6 +18,16 @@ import { captureWorkspaceSnapshot } from "./workspace-snapshot.mjs";
18
18
  export { validQuickReceiptShape } from "./quick-receipt-contract.mjs";
19
19
 
20
20
  export const SUPPORTED_QUICK_CORE_IDENTITIES = Object.freeze([
21
+ {
22
+ contractVersion: "0.2",
23
+ coreVersion: "0.15.1",
24
+ coreManifestSha256: "sha256:e8ca57522a8e473da356ceb3768bb650267894638d450d5e49463ab6f51c752b",
25
+ },
26
+ {
27
+ contractVersion: "0.2",
28
+ coreVersion: "0.15.0",
29
+ coreManifestSha256: "sha256:06d7616c369b4b3ece3aca32f05c505d4b30781d3ca87a13bd8d7293c1491f64",
30
+ },
21
31
  {
22
32
  contractVersion: "0.2",
23
33
  coreVersion: "0.14.0",
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": "OwlCodaRunKitRegistryReleasePolicyV1",
3
3
  "status": "release_candidate_unpublished",
4
4
  "packageName": "owlrunkit",
5
- "candidateVersion": "0.14.0",
5
+ "candidateVersion": "0.15.1",
6
6
  "registry": "https://registry.npmjs.org",
7
7
  "registryRequiredBeforeAdoption": true,
8
8
  "exactVersionRequired": true,
package/sbom.spdx.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "spdxVersion": "SPDX-2.3",
3
3
  "dataLicense": "CC0-1.0",
4
4
  "SPDXID": "SPDXRef-DOCUMENT",
5
- "name": "owlrunkit-0.14.0",
6
- "documentNamespace": "https://owlcoda.com/spdx/owlrunkit/0.14.0",
5
+ "name": "owlrunkit-0.15.1",
6
+ "documentNamespace": "https://owlcoda.com/spdx/owlrunkit/0.15.1",
7
7
  "creationInfo": {
8
8
  "created": "2026-07-29T00:00:00Z",
9
9
  "creators": [
@@ -14,8 +14,8 @@
14
14
  {
15
15
  "name": "owlrunkit",
16
16
  "SPDXID": "SPDXRef-Package-OwlRunKit",
17
- "versionInfo": "0.14.0",
18
- "downloadLocation": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.14.0.tgz",
17
+ "versionInfo": "0.15.1",
18
+ "downloadLocation": "https://registry.npmjs.org/owlrunkit/-/owlrunkit-0.15.1.tgz",
19
19
  "filesAnalyzed": false,
20
20
  "licenseConcluded": "GPL-3.0-or-later",
21
21
  "licenseDeclared": "GPL-3.0-or-later",
@@ -24,7 +24,7 @@
24
24
  {
25
25
  "referenceCategory": "PACKAGE-MANAGER",
26
26
  "referenceType": "purl",
27
- "referenceLocator": "pkg:npm/owlrunkit@0.14.0"
27
+ "referenceLocator": "pkg:npm/owlrunkit@0.15.1"
28
28
  }
29
29
  ]
30
30
  }