owlrunkit 0.18.4 → 0.19.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 +49 -0
- package/README.md +109 -4
- package/docs/architecture/OWLCODA_RUNKIT_0190_CONSOLIDATED_DAILY_USE_PRODUCT_DECISION_20260812.md +100 -0
- package/docs/architecture/OWLCODA_RUNKIT_0191_PROFILE_RECONCILE_PATCH_PRODUCT_DECISION_20260813.md +30 -0
- package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_2.md +57 -0
- package/integrations/codex/skills/owlcoda-runkit/SKILL.md +28 -4
- package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
- package/integrations/codex/skills/owlcoda-runkit/references/contract-v0.2.md +57 -0
- package/package.json +1 -1
- package/packages/attest/README.md +9 -5
- package/packages/attest/consumer-surface-v2.json +263 -0
- package/packages/attest/distribution-manifest-v1.json +14 -1
- package/packages/attest/schemas/quick-verification-receipt-v3.schema.json +244 -0
- package/packages/attest/schemas/workspace-snapshot-v2.schema.json +114 -0
- package/packages/attest/src/dependency-environment.mjs +128 -0
- package/packages/attest/src/index.mjs +1 -0
- package/packages/attest/src/quick-receipt-contract.mjs +202 -9
- package/packages/attest/src/quick.mjs +45 -4
- package/packages/attest/src/workspace-snapshot.mjs +133 -6
- package/registry-release-policy-v1.json +5 -5
- package/sbom.spdx.json +5 -5
- package/scripts/runkit-contract/core-contract.mjs +21 -1
- package/scripts/runkit-contract/efficiency-metrics.mjs +559 -0
- package/scripts/runkit-contract/evidence-store.mjs +130 -0
- package/scripts/runkit-contract/onboarding-bootstrap.mjs +685 -0
- package/scripts/runkit-contract/onboarding-doctor.mjs +2 -1
- package/scripts/runkit-contract/outcome-presentation.mjs +171 -0
- package/scripts/runkit-contract/profile-onboarding.mjs +74 -35
- package/scripts/runkit-contract/project-cli-resolver.mjs +26 -5
- package/scripts/runkit-contract/quick-evidence-reuse.mjs +590 -0
- package/scripts/runkit-contract/quick-isolation.mjs +314 -0
- package/scripts/runkit-contract/quick-metrics.mjs +51 -3
- package/scripts/runkit-contract/quick-receipt.mjs +31 -1
- package/scripts/runkit-contract/quick-verify.mjs +216 -25
- package/scripts/runkit-contract/quick-workspace-snapshot.mjs +1 -0
- package/scripts/runkit-contract/runkit-bootstrap.mjs +1 -0
- package/scripts/runkit-contract/runkit-cli.mjs +330 -18
- package/scripts/runkit-contract/runtime-transition.mjs +478 -0
- package/scripts/runkit-contract/schemas/efficiency-event-v1.schema.json +56 -0
- package/scripts/runkit-contract/schemas/efficiency-metrics-v1.schema.json +220 -0
- package/scripts/runkit-contract/schemas/external-runtime-report-v1.schema.json +125 -0
- package/scripts/runkit-contract/schemas/onboarding-bootstrap-plan-v1.schema.json +168 -0
- package/scripts/runkit-contract/schemas/onboarding-bootstrap-receipt-v1.schema.json +130 -0
- package/scripts/runkit-contract/schemas/outcome-summary-v1.schema.json +83 -0
- package/scripts/runkit-contract/schemas/quick-evidence-reuse-plan-v1.schema.json +59 -0
- package/scripts/runkit-contract/schemas/quick-evidence-reuse-receipt-v1.schema.json +79 -0
- package/scripts/runkit-contract/schemas/runtime-transition-receipt-v1.schema.json +185 -0
- package/scripts/runkit-contract/schemas/team-project-event-v4.schema.json +142 -0
- package/scripts/runkit-contract/team-project.mjs +704 -16
- package/scripts/runkit-contract/verification-envelope.mjs +15 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.19.1
|
|
4
|
+
|
|
5
|
+
- Fixes profile reconciliation for mature projects where an existing profile
|
|
6
|
+
already owns command IDs such as `npm-build` or `npm-test`. When those
|
|
7
|
+
detected commands have one existing owner, reconciliation extends that owner
|
|
8
|
+
with the detected paths and current authoritative command definitions instead
|
|
9
|
+
of creating an invalid duplicate-command profile.
|
|
10
|
+
- Preserves create-only receipts, atomic rollback, strict profile validation,
|
|
11
|
+
project-local CLI binding, `authorizationGranted=false`, and the separate
|
|
12
|
+
fleet/shared Skill activation gate.
|
|
13
|
+
|
|
14
|
+
## 0.19.0
|
|
15
|
+
|
|
16
|
+
- Adds `bootstrap --dry-run|--apply` as one exact-registry, project-local,
|
|
17
|
+
lifecycle-locked onboarding transaction. It initializes or upgrades Core,
|
|
18
|
+
reconciles and validates profiles, adopts the release, runs doctor, and
|
|
19
|
+
restores its bounded preimage on failure without refreshing shared Skills.
|
|
20
|
+
- Makes first-use help and empty-profile repair actionable, and reports the
|
|
21
|
+
installed package/Core/Skill identity independently instead of accepting a
|
|
22
|
+
matching version string with drifted Core bytes.
|
|
23
|
+
- Runs Quick commands in an isolated temporary consumer with bounded dependency
|
|
24
|
+
projection and tool-cache directories, separating workspace source changes,
|
|
25
|
+
requested ignored-artifact bindings, and dependency-environment identity.
|
|
26
|
+
- Adds `quick-reuse` planning and execution for a passed prior receipt plus an
|
|
27
|
+
explicitly allowed small delta. Reuse fails closed on prior candidate,
|
|
28
|
+
command, dependency, ignored-binding, or out-of-scope path drift.
|
|
29
|
+
- Stores repeated Quick and Verification Envelope stdout/stderr as verified
|
|
30
|
+
content-addressed evidence objects while retaining the existing receipt-local
|
|
31
|
+
references and create-only receipt semantics.
|
|
32
|
+
- Adds `quick-runtime-verify` with explicit workspace mutation, external
|
|
33
|
+
mutation, rollback, final external state, failed/last-passed stage, and
|
|
34
|
+
recovery lineage fields. Command-reported runtime truth remains distinct from
|
|
35
|
+
independent deployment or business acceptance.
|
|
36
|
+
- Adds Project Event V4 actions for reopening or invalidating upstream work,
|
|
37
|
+
propagating downstream waiting, and atomically transferring responsibility.
|
|
38
|
+
Immutable prior failures, assignments, handoffs, and evidence remain visible.
|
|
39
|
+
- Adds a six-layer human outcome projection that separates candidate identity,
|
|
40
|
+
workspace attestation, verification, product/UX acceptance, deployment/runtime
|
|
41
|
+
activation, and production/business validity; lower layers never promote the
|
|
42
|
+
higher ones automatically.
|
|
43
|
+
- Adds local-only `efficiency record|status` metrics for repeated commands,
|
|
44
|
+
explicit false blocks and manual interventions, handoff wait, and
|
|
45
|
+
time-to-acceptable-result. Receipt count is intentionally not a success
|
|
46
|
+
metric and no telemetry is sent.
|
|
47
|
+
- Preserves the independent continuity and assurance axes, mandatory Formal
|
|
48
|
+
risk routing, strict predecessor contracts, and
|
|
49
|
+
`authorizationGranted=false` for Git, release, deployment, production, and
|
|
50
|
+
business authority.
|
|
51
|
+
|
|
3
52
|
## 0.18.4
|
|
4
53
|
|
|
5
54
|
- Adds controller-owned `project target-snapshot --dry-run|--apply` for binding
|
package/README.md
CHANGED
|
@@ -37,6 +37,21 @@ These additions use Profile Detection V3, Status/Takeover V2, Assurance Route
|
|
|
37
37
|
V2, and Usage Mode Recommendation V2; the published predecessor contracts
|
|
38
38
|
remain unchanged.
|
|
39
39
|
|
|
40
|
+
RunKit 0.19.0 consolidates the daily-use dogfood backlog into one release. It
|
|
41
|
+
adds atomic onboarding, isolated Quick dependency/cache execution, bounded
|
|
42
|
+
reuse of unchanged evidence, content-addressed output storage, explicit
|
|
43
|
+
external-runtime and rollback truth, upstream rework propagation, atomic
|
|
44
|
+
transfer actions, business-layer outcome projection, and local efficiency
|
|
45
|
+
metrics. These conveniences do not weaken Formal routing or grant Git,
|
|
46
|
+
release, deployment, production, or business authority.
|
|
47
|
+
|
|
48
|
+
RunKit 0.19.1 fixes mature-project onboarding when an existing owner profile
|
|
49
|
+
already owns command IDs proposed by detection. Reconciliation now extends that
|
|
50
|
+
sole command owner with the newly detected paths and authoritative command
|
|
51
|
+
binding instead of creating a second profile with duplicate IDs. Existing
|
|
52
|
+
owner profiles, strict validation, atomic rollback, and shared-Skill activation
|
|
53
|
+
boundaries remain unchanged.
|
|
54
|
+
|
|
40
55
|
The 0.18 Project Driver is a bounded surface for new projects and controlled
|
|
41
56
|
dogfood. Its product name does not claim to be a general long-running,
|
|
42
57
|
multi-phase, or enterprise control plane. Version 0.18 adds one bounded
|
|
@@ -51,7 +66,7 @@ separate authority boundaries.
|
|
|
51
66
|
## Install
|
|
52
67
|
|
|
53
68
|
```bash
|
|
54
|
-
npm install --save-exact owlrunkit@0.
|
|
69
|
+
npm install --save-exact owlrunkit@0.19.1
|
|
55
70
|
```
|
|
56
71
|
|
|
57
72
|
Use `npx --no-install owlrunkit` for project commands. The package bootstrap
|
|
@@ -66,12 +81,23 @@ the project Config must independently bind the same Core.
|
|
|
66
81
|
|
|
67
82
|
```bash
|
|
68
83
|
npx --no-install owlrunkit --version
|
|
84
|
+
npx --no-install owlrunkit bootstrap --workspace /absolute/path/to/project \
|
|
85
|
+
--exact owlrunkit@0.19.1 --dry-run
|
|
86
|
+
npx --no-install owlrunkit bootstrap --workspace /absolute/path/to/project \
|
|
87
|
+
--exact owlrunkit@0.19.1 --apply
|
|
69
88
|
npx --no-install owlrunkit init --workspace /absolute/path/to/project
|
|
70
89
|
npx --no-install owlrunkit doctor --workspace /absolute/path/to/project
|
|
71
90
|
npx --no-install owlrunkit mode recommend --workspace /absolute/path/to/project
|
|
72
91
|
npx --no-install owlrunkit mode status --workspace /absolute/path/to/project
|
|
73
92
|
```
|
|
74
93
|
|
|
94
|
+
`bootstrap` is the complete first-onboarding and eligible idle-upgrade entry.
|
|
95
|
+
It binds the exact project-local package to the official registry, initializes
|
|
96
|
+
Core, reconciles and validates profiles, writes adoption evidence, and reads
|
|
97
|
+
back doctor. Dry-run is zero-write; failed apply restores the governed preimage
|
|
98
|
+
and keeps a failure receipt. It reports shared Skill drift but never silently
|
|
99
|
+
updates a user or fleet Skill.
|
|
100
|
+
|
|
75
101
|
`mode recommend` is read-only and defaults to human output; add `--json` for a
|
|
76
102
|
machine contract. The five user modes are presets over `continuity`
|
|
77
103
|
(`none | project_driver`) and `assurance` (`none | quick | formal`). They never
|
|
@@ -186,10 +212,10 @@ classification, and explicit `proven` / `notProven` statements. Omitting
|
|
|
186
212
|
`--entry-snapshot` verifies the current candidate bytes but records
|
|
187
213
|
`overlayStatus=candidate_only`.
|
|
188
214
|
|
|
189
|
-
|
|
215
|
+
External-delivery intake cache classification covers paths visible to Git status, such as
|
|
190
216
|
`.vitest/**`, `.vite/**`, `.pytest_cache/**`, and `__pycache__/**`. It does not
|
|
191
|
-
claim to bind ignored paths (`ignoredPathsBound=false`) and does not
|
|
192
|
-
|
|
217
|
+
claim to bind ignored paths (`ignoredPathsBound=false`) and does not create a
|
|
218
|
+
Quick isolated consumer. Lockfile or
|
|
193
219
|
`node_modules` changes outside the packet are disclosed as dependency
|
|
194
220
|
environment changes. Any other entry-to-candidate delta, or any packet path
|
|
195
221
|
outside the WorkItem's allowed ownership, blocks import before project truth is
|
|
@@ -320,6 +346,17 @@ Run Quick with:
|
|
|
320
346
|
npx --no-install owlrunkit quick-verify --workspace . -- npm test
|
|
321
347
|
npx --no-install owlrunkit quick-verify --workspace . --stdin-file ./remote-check.sh --attest \
|
|
322
348
|
-- ssh test-host /bin/sh
|
|
349
|
+
npx --no-install owlrunkit quick-verify --workspace . --isolate \
|
|
350
|
+
--dependency-root /absolute/dependency-consumer -- npm test
|
|
351
|
+
npx --no-install owlrunkit quick-verify --workspace . \
|
|
352
|
+
--bind-ignored .generated/audit.json -- node ./verify-generated.mjs
|
|
353
|
+
npx --no-install owlrunkit quick-reuse --workspace . \
|
|
354
|
+
--base-receipt .owlcoda/runkit/quick/receipts/<id>/receipt.json \
|
|
355
|
+
--allow-path src/new-adapter.mjs --dry-run -- node --test tests/new-adapter.test.mjs
|
|
356
|
+
npx --no-install owlrunkit quick-verify --workspace . --capture-runtime \
|
|
357
|
+
-- ./deploy-and-readback.sh
|
|
358
|
+
npx --no-install owlrunkit quick-runtime-verify --workspace . \
|
|
359
|
+
--receipt .owlcoda/runkit/quick/receipts/<id>/runtime-transition.json
|
|
323
360
|
npx --no-install owlrunkit quick-metrics --workspace .
|
|
324
361
|
npx --no-install owlrunkit quick-metrics --workspace . --verbose
|
|
325
362
|
```
|
|
@@ -333,6 +370,50 @@ restore phases remain visible while the complete artifacts stay receipt-bound.
|
|
|
333
370
|
`--attest` runs the existing attestation immediately and returns its independent
|
|
334
371
|
object alongside the Quick result; it does not promote Quick to Formal.
|
|
335
372
|
|
|
373
|
+
`--isolate` emits Quick Receipt V3 and runs the exact command from a disposable
|
|
374
|
+
copy of Git-visible candidate files. Common cache variables and temporary files
|
|
375
|
+
point outside the source checkout; new ignored artifacts are disclosed and
|
|
376
|
+
discarded, while a visible source edit in the consumer invalidates the receipt.
|
|
377
|
+
The exact caller-owned command is not an OS write sandbox; direct writes it
|
|
378
|
+
performs outside the consumer remain subject to the explicit before/after
|
|
379
|
+
bindings.
|
|
380
|
+
An optional `--dependency-root` projects an already-installed `node_modules`
|
|
381
|
+
into the consumer, prepends its binary directory, and hash-binds package, lock,
|
|
382
|
+
installed-package, and executable metadata before and after execution. RunKit
|
|
383
|
+
does not install dependencies or contact a registry for this command.
|
|
384
|
+
|
|
385
|
+
Repeatable literal `--bind-ignored` paths opt specific ignored workspace bytes
|
|
386
|
+
into Workspace Snapshot V2. Missing is a bound state; file or directory changes
|
|
387
|
+
invalidate Quick. Unrequested ignored paths remain explicitly outside the
|
|
388
|
+
claim. V1/V2 receipts and Workspace Snapshot V1 keep their existing meanings.
|
|
389
|
+
|
|
390
|
+
`quick-reuse` checks an earlier passed, source-unchanged Quick receipt against
|
|
391
|
+
the current candidate at byte level. A clean commit does not create false drift
|
|
392
|
+
when it preserves the previously dirty candidate bytes. Only literal
|
|
393
|
+
`--allow-path` deltas may remain; any other tracked, untracked, deleted,
|
|
394
|
+
renamed, submodule, or previously bound ignored-path delta blocks before the
|
|
395
|
+
exact command runs. `--apply` then runs only the delta gate and records
|
|
396
|
+
`OwlCodaQuickEvidenceReuseReceiptV1`. It does not promote either Quick receipt
|
|
397
|
+
to Formal, UX, deployment, production, or business acceptance.
|
|
398
|
+
|
|
399
|
+
New Quick output and Verification Envelope stdout/stderr bytes are also placed
|
|
400
|
+
in a project-global create-only SHA-256 object store. Repeated objects reuse the
|
|
401
|
+
same content identity; receipt-local Quick paths remain readable through
|
|
402
|
+
copy-on-write materialization, and historical receipt paths are not rewritten
|
|
403
|
+
or destructively compacted.
|
|
404
|
+
|
|
405
|
+
`--capture-runtime` sets `OWLRUNKIT_RUNTIME_REPORT` to an initially absent,
|
|
406
|
+
receipt-local path. The exact command may write one strict
|
|
407
|
+
`OwlCodaRunKitExternalRuntimeReportV1`; RunKit then keeps the ordinary Quick
|
|
408
|
+
receipt and adds an `OwlCodaRunKitRuntimeTransitionReceiptV1`. The companion
|
|
409
|
+
separates derived `workspaceMutation` from command-reported
|
|
410
|
+
`externalMutation`, and binds ordered stages, failed/last-passed stages,
|
|
411
|
+
rollback, final external state, and recovery artifacts with explicit
|
|
412
|
+
`capturedBefore` and `restoresTo` identities. Missing or inconsistent runtime
|
|
413
|
+
truth fails closed without erasing the Quick receipt. This is a hash-bound
|
|
414
|
+
command report, not an independent external observation or deployment
|
|
415
|
+
authorization; `quick-runtime-verify` verifies stored integrity only.
|
|
416
|
+
|
|
336
417
|
`quick-metrics` is local-only and returns aggregate counts. Add `--verbose`
|
|
337
418
|
when the individual receipt paths are needed. The former `--local` flag remains
|
|
338
419
|
accepted as a compatibility no-op. New successful receipts no longer carry
|
|
@@ -340,6 +421,30 @@ the fixed `quick_ignored_artifact_unbound` issue; historical receipts remain
|
|
|
340
421
|
strictly readable without surfacing that non-actionable code as an attestation
|
|
341
422
|
issue.
|
|
342
423
|
|
|
424
|
+
Quick's default human result is business-first: it says whether the exact
|
|
425
|
+
verification passed, what candidate/workspace evidence is bound, and keeps
|
|
426
|
+
product/UX, deployment/runtime, and production/business acceptance visibly
|
|
427
|
+
separate. A command-reported runtime transition is labeled as reported rather
|
|
428
|
+
than independently observed. Use `--json` for the strict
|
|
429
|
+
`OwlCodaRunKitOutcomeSummaryV1` projection.
|
|
430
|
+
|
|
431
|
+
RunKit can measure its own local workflow friction without telemetry:
|
|
432
|
+
|
|
433
|
+
```bash
|
|
434
|
+
npx --no-install owlrunkit efficiency record --workspace . \
|
|
435
|
+
--event-id wave-start --at 2026-08-13T00:00:00.000Z \
|
|
436
|
+
--kind workflow_started --workflow-id wave-1 --summary 'Wave started.'
|
|
437
|
+
npx --no-install owlrunkit efficiency status --workspace .
|
|
438
|
+
npx --no-install owlrunkit efficiency status --workspace . --verbose --json
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
Repeated Quick command executions are derived from matching command, candidate,
|
|
442
|
+
input, and dependency bindings. False blocks and manual interventions count
|
|
443
|
+
only when explicitly recorded. Handoff wait comes from Project Driver truth;
|
|
444
|
+
time-to-acceptable-result requires paired workflow start/result marks. Receipt
|
|
445
|
+
volume is intentionally not a value metric, and every result keeps Git,
|
|
446
|
+
release, deployment, production, and business authority false.
|
|
447
|
+
|
|
343
448
|
## Formal Delivery in three commands
|
|
344
449
|
|
|
345
450
|
Given a Goal Contract and the paths this work item may write, the happy path is:
|
package/docs/architecture/OWLCODA_RUNKIT_0190_CONSOLIDATED_DAILY_USE_PRODUCT_DECISION_20260812.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# OwlRunKit 0.19.0 Consolidated Daily-Use Product Decision
|
|
2
|
+
|
|
3
|
+
状态:**七个 Wave 已实现;私仓、tag、npm 与 exact-registry consumer 发布闭环已完成**
|
|
4
|
+
|
|
5
|
+
## Decision
|
|
6
|
+
|
|
7
|
+
0.19.0 是一次整合型小版本后的次版本升级。它不会继续拆出多个 0.18.x,
|
|
8
|
+
而是在一个 release candidate 中收敛 0.18.4 明确留下、且已被 OwlChen、MES、
|
|
9
|
+
OwlFootball 和 MERM dogfood 重复验证的十类摩擦。
|
|
10
|
+
|
|
11
|
+
长期产品原则保持不变:RunKit 默认轻、必要时重。它是飞行记录仪和阶段控制器,
|
|
12
|
+
不是每条研发命令的审批系统。
|
|
13
|
+
|
|
14
|
+
## Product Axes
|
|
15
|
+
|
|
16
|
+
用户可见 mode 继续只是两个正交维度的 preset:
|
|
17
|
+
|
|
18
|
+
- continuity:`none | project_driver`
|
|
19
|
+
- assurance:`none | quick | formal`
|
|
20
|
+
|
|
21
|
+
长周期、跨会话和多阶段主要提高 continuity。只有多 authority、多 writer、资金、
|
|
22
|
+
权限、安全、不可逆变更、回滚不确定、schema/data migration 或明确 Formal
|
|
23
|
+
acceptance 才强制 Formal。风险解除后允许降级,升级不成为粘性状态。
|
|
24
|
+
|
|
25
|
+
## 0.19.0 Scope
|
|
26
|
+
|
|
27
|
+
### Wave 1 — Atomic onboarding
|
|
28
|
+
|
|
29
|
+
- 一条可预览、可原子应用、失败可回滚的 bootstrap;
|
|
30
|
+
- `init --help` 与空 profile 首次接入死锁;
|
|
31
|
+
- project-local exact binding 和 shared Skill drift 的明确诊断。
|
|
32
|
+
|
|
33
|
+
### Wave 2 — Isolated verification
|
|
34
|
+
|
|
35
|
+
- 临时 dependency consumer 和工具缓存隔离;
|
|
36
|
+
- 源码、ignored cache、dependency environment 三类变化分离;
|
|
37
|
+
- 只有任务明确需要时才哈希绑定 ignored paths。
|
|
38
|
+
|
|
39
|
+
### Wave 3 — Evidence reuse
|
|
40
|
+
|
|
41
|
+
- 旧 receipt + 小范围允许 delta 的复用规划与精确增量 gate;
|
|
42
|
+
- 大 artifact 以 content-addressed hash/reference 去重,保留可恢复性。
|
|
43
|
+
|
|
44
|
+
### Wave 4 — Runtime and recovery truth
|
|
45
|
+
|
|
46
|
+
- `workspaceMutation`、`externalMutation`、`rollbackPerformed`、
|
|
47
|
+
`finalExternalState`、`failedStage`、`lastPassedStage`、`rollbackOutcome`;
|
|
48
|
+
- recovery evidence 明确 `capturedBefore`、`restoresTo` 等语义。
|
|
49
|
+
|
|
50
|
+
### Wave 5 — Rework lifecycle
|
|
51
|
+
|
|
52
|
+
- 原生 reopen/invalidate upstream WorkItem;
|
|
53
|
+
- downstream waiting propagation;
|
|
54
|
+
- 原子 transfer/reject-and-return 高层动作,同时保留不可变底层事件。
|
|
55
|
+
|
|
56
|
+
### Wave 6 — Human outcome and economics
|
|
57
|
+
|
|
58
|
+
- 收据先展示业务阶段结果、验收层级和未证明边界;
|
|
59
|
+
- 统计重复命令、误阻塞、人工介入、handoff 等待和 time-to-acceptable-result;
|
|
60
|
+
- 指标用于约束 RunKit 自身摩擦,不以 receipt 数量冒充价值。
|
|
61
|
+
|
|
62
|
+
### Wave 7 — Release closure
|
|
63
|
+
|
|
64
|
+
- predecessor contracts 精确兼容或显式版本化 successor;
|
|
65
|
+
- 独立风险审查、Core identity、packed Skill/package、registry consumer;
|
|
66
|
+
- 一次性发布 `owlrunkit@0.19.0`。
|
|
67
|
+
|
|
68
|
+
## Safety And Authority Boundaries
|
|
69
|
+
|
|
70
|
+
- 用户 mode 是偏好,不是授权;较轻 mode 不能绕过强制 Formal 事实;
|
|
71
|
+
- RunKit 结果始终保持 `authorizationGranted=false`;
|
|
72
|
+
- receipt acceptance 不等于 commit、push、tag、publish、deploy、production 或业务验收;
|
|
73
|
+
- controller/target 必须是分离的真实目录,冻结 target 不接受控制 artifacts 注入;
|
|
74
|
+
- 已发布 strict schema 不原地重解释,破坏性变化必须新建版本并让 predecessor 共存;
|
|
75
|
+
- bootstrap 不静默刷新用户级/fleet Skill,不静默修改 Git,不联网执行发布动作。
|
|
76
|
+
|
|
77
|
+
## Evidence Layers
|
|
78
|
+
|
|
79
|
+
界面与 receipt 必须依次区分:
|
|
80
|
+
|
|
81
|
+
1. candidate file identity;
|
|
82
|
+
2. workspace/overlay attestation;
|
|
83
|
+
3. verification command/test result;
|
|
84
|
+
4. UX 或独立产品验收;
|
|
85
|
+
5. deployment/runtime activation;
|
|
86
|
+
6. production 或业务有效性。
|
|
87
|
+
|
|
88
|
+
低层证据不得自动提升为高层结论。
|
|
89
|
+
|
|
90
|
+
## Release Truth And What Cannot Be Claimed
|
|
91
|
+
|
|
92
|
+
- `owlrunkit@0.19.0` 已由私仓 release commit `830aa91c` 发布,npm
|
|
93
|
+
`latest` 已读回为 `0.19.0`;精确 registry consumer 已完成原子
|
|
94
|
+
bootstrap、doctor、profile、inspect、Quick 与 metrics 验证;
|
|
95
|
+
- 发布不等于 fleet/shared Skill 激活、OwlCoda 项目 Core 迁移或任何外部项目
|
|
96
|
+
adoption;这些仍需要各自安全边界和独立读回;
|
|
97
|
+
- 本文记录产品决策和已发布能力,完整 registry 字节、测试与未触碰边界见
|
|
98
|
+
`docs/handoff/OWLCODA_RUNKIT_0190_PRIVATE_GIT_NPM_RELEASE_RECEIPT_20260813.md`;
|
|
99
|
+
- public mirror、官网、8019、全局 Skill、生产与业务验收不属于本次授权,不能
|
|
100
|
+
从本次 package release 推导为已完成。
|
package/docs/architecture/OWLCODA_RUNKIT_0191_PROFILE_RECONCILE_PATCH_PRODUCT_DECISION_20260813.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# OwlRunKit 0.19.1 Profile Reconcile Patch Product Decision
|
|
2
|
+
|
|
3
|
+
状态:**候选实现完成,发布实况以 registry 读回和发布回执为准**
|
|
4
|
+
|
|
5
|
+
## Decision
|
|
6
|
+
|
|
7
|
+
0.19.1 是 0.19.0 的兼容补丁,不扩展 RunKit 的产品范围。真实 OwlCoda
|
|
8
|
+
dogfood 发现,成熟项目已有 profile 持有 `npm-build`、`npm-test` 时,检测器
|
|
9
|
+
提出新的 `node-quality` profile 会重复这些全局 command ID,使 bootstrap 在
|
|
10
|
+
profile reconcile 阶段失败。
|
|
11
|
+
|
|
12
|
+
当检测出的 commands 只有一个现有 owner 时,reconcile 现在复用该 owner:
|
|
13
|
+
增加真实检测到的 paths,并以项目本地 authoritative tool binding 更新对应
|
|
14
|
+
command。它不会新增第二份重复 command,也不会削弱最终 profile 校验。
|
|
15
|
+
|
|
16
|
+
## Preserved Boundaries
|
|
17
|
+
|
|
18
|
+
- owner profile bytes 仍只通过原子 reconcile 事务更新,失败恢复原始 bytes;
|
|
19
|
+
- 多个不同 command owner 的歧义不会被静默合并;
|
|
20
|
+
- bootstrap、receipt 与 mode 仍不授予 Git、发布、部署、生产或业务权限;
|
|
21
|
+
- npm package 发布、项目 Core adoption 与 process-level shared Skill 激活仍是
|
|
22
|
+
三个独立状态转换;bootstrap 只诊断 Skill drift,不静默刷新 fleet Skill;
|
|
23
|
+
- 0.19.0 的 continuity、assurance、Formal 和 predecessor-contract 边界不变。
|
|
24
|
+
|
|
25
|
+
## Evidence And Claims
|
|
26
|
+
|
|
27
|
+
发布前必须通过成熟项目冲突回归、profile/bootstrap 聚焦测试、完整 RunKit
|
|
28
|
+
gate、Core identity、packed package/Skill、干净 consumer 和 npm registry
|
|
29
|
+
字节读回。本文不能在这些 Gate 完成前声称 0.19.1 已发布,也不能把一份
|
|
30
|
+
package receipt 冒充 shared Skill 已激活或其他项目已推广。
|
|
@@ -478,6 +478,44 @@ bytes as exact stdin, and binds their workspace-relative path, byte size, and
|
|
|
478
478
|
SHA-256. V1 remains the no-stdin receipt and stays readable. Neither schema
|
|
479
479
|
binds undeclared ignored outputs or grants any authority.
|
|
480
480
|
|
|
481
|
+
Core `0.19.0` adds `OwlCodaQuickVerificationReceiptV3` for explicit isolation,
|
|
482
|
+
dependency-environment binding, and ignored-path binding. `--isolate` runs a
|
|
483
|
+
Git-visible candidate copy in a disposable consumer and records consumer source
|
|
484
|
+
versus discarded ignored-artifact deltas. `--dependency-root` binds an existing
|
|
485
|
+
dependency environment without installing it. `--bind-ignored` is the only
|
|
486
|
+
operation that emits `OwlCodaWorkspaceSnapshotV2` and claims those selected
|
|
487
|
+
ignored bytes. Workspace source, selected ignored paths, dependency metadata,
|
|
488
|
+
and consumer source mutations are distinct fail-closed facts. Disposable
|
|
489
|
+
ignored artifacts do not mutate or become evidence for the source checkout.
|
|
490
|
+
|
|
491
|
+
Core `0.19.0` also adds `OwlCodaQuickEvidenceReusePlanV1` and
|
|
492
|
+
`OwlCodaQuickEvidenceReuseReceiptV1`. A reuse plan verifies one earlier strict,
|
|
493
|
+
passed, source-unchanged Quick receipt from the same workspace, derives the
|
|
494
|
+
current candidate delta from Git objects plus both snapshots, and refuses any
|
|
495
|
+
path outside literal caller allowances before command execution. Byte-identical
|
|
496
|
+
dirty content later committed to Git remains unchanged evidence. Apply runs one
|
|
497
|
+
exact delta gate through Quick and records both receipt hashes; it grants no
|
|
498
|
+
authority and does not satisfy Formal or higher acceptance layers.
|
|
499
|
+
|
|
500
|
+
Quick output and Verification Envelope stdout/stderr evidence use a project-
|
|
501
|
+
global create-only SHA-256 object store. Existing Quick receipt-local material
|
|
502
|
+
paths remain valid; no historical tree is rewritten or deleted. Object reuse is
|
|
503
|
+
storage/provenance behavior, never additional assurance.
|
|
504
|
+
|
|
505
|
+
Core `0.19.0` can additionally bind external transition truth without changing
|
|
506
|
+
Quick Receipt V1/V2/V3. `quick-verify --capture-runtime` gives the exact child
|
|
507
|
+
an initially absent receipt-local `OWLRUNKIT_RUNTIME_REPORT` path. A strict
|
|
508
|
+
`OwlCodaRunKitExternalRuntimeReportV1` there is projected into a separately
|
|
509
|
+
hashed `OwlCodaRunKitRuntimeTransitionReceiptV1` that binds the Quick receipt
|
|
510
|
+
bytes, report bytes, derived workspace mutation, command-reported external
|
|
511
|
+
mutation, ordered stages, rollback outcome, final external state, and recovery
|
|
512
|
+
artifact `capturedBefore` / `restoresTo` semantics. A failed stage followed by
|
|
513
|
+
a successful rollback remains a failed transition with useful evidence; it is
|
|
514
|
+
not promoted to Quick, Formal, deployment, or business acceptance. Missing or
|
|
515
|
+
inconsistent runtime truth fails closed while preserving the base Quick
|
|
516
|
+
receipt. `quick-runtime-verify` rechecks stored bytes and projection integrity;
|
|
517
|
+
it does not independently re-observe the external runtime or grant authority.
|
|
518
|
+
|
|
481
519
|
Deterministic `repair` persists a reviewable plan before replay, reuses only
|
|
482
520
|
fresh receipt-bound coverage, replays pending exact argv, and appends
|
|
483
521
|
replacement lineage. Failed and orphaned attempts remain inspectable. Repair
|
|
@@ -539,6 +577,25 @@ stale Packet, invalid evidence or engine drift must still follow the Core's
|
|
|
539
577
|
foreign-project authority. Signing, keys, external anchors and GitHub Actions
|
|
540
578
|
remain deferred.
|
|
541
579
|
|
|
580
|
+
## Core v0.19 atomic onboarding
|
|
581
|
+
|
|
582
|
+
Core `0.19.0` keeps Contract `0.2` and all existing authority boundaries. The
|
|
583
|
+
versioned `OwlCodaRunKitOnboardingBootstrapPlanV1` dry-run binds the exact
|
|
584
|
+
project-local package and official registry release, checks upgrade safety,
|
|
585
|
+
previews profile reconciliation, reports shared Skill drift, and performs zero
|
|
586
|
+
writes. `bootstrap --apply` rechecks that plan under a project-owned lock, then
|
|
587
|
+
runs Core initialization, profile reconcile/validation, exact adoption and
|
|
588
|
+
doctor readback as one high-level transaction.
|
|
589
|
+
|
|
590
|
+
The transaction governs RunKit config, profiles, their migration/apply
|
|
591
|
+
receipts, and adoption evidence. A failure after mutation restores their exact
|
|
592
|
+
preimage before writing an append-only
|
|
593
|
+
`OwlCodaRunKitOnboardingBootstrapReceiptV1`. A concurrent bootstrap, active or
|
|
594
|
+
invalid project lifecycle, ambiguous project tool, exact-package mismatch, or
|
|
595
|
+
registry mismatch fails closed. The command does not modify package files,
|
|
596
|
+
source, Git, deployments, production, business state, or shared Skills, and it
|
|
597
|
+
never grants those authorities.
|
|
598
|
+
|
|
542
599
|
## Deferred work
|
|
543
600
|
|
|
544
601
|
Contract v0.2 still does not add a built-in browser or Electron driver, Plugin,
|
|
@@ -7,10 +7,10 @@ description: Run receipt-backed, project-owned work with OwlCoda RunKit. Use whe
|
|
|
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
|
-
Bundled release: standalone `owlrunkit@0.
|
|
11
|
-
Core `0.
|
|
12
|
-
`sha256:
|
|
13
|
-
The published `owlrunkit@0.
|
|
10
|
+
Bundled release: standalone `owlrunkit@0.19.1`, bundling Contract `0.2` and
|
|
11
|
+
Core `0.19.1` with manifest
|
|
12
|
+
`sha256:291ef97c93a513eed24a29f75c400b61cefd6a8c0ab228401cf2c6a73ea9e622`.
|
|
13
|
+
The published `owlrunkit@0.19.0` package is the trusted prior for rollback;
|
|
14
14
|
verify exact official npm registry provenance before adoption. The immutable
|
|
15
15
|
rollback baseline for the prior release is `owlrunkit@0.16.1` with SHA-1
|
|
16
16
|
`1bc119d24879bdd8959af16b364af55ca9d61ea9` and canonical npm tarball URL
|
|
@@ -190,11 +190,23 @@ below has no CLI entry.
|
|
|
190
190
|
## Initialize and inspect
|
|
191
191
|
|
|
192
192
|
```bash
|
|
193
|
+
npx --no-install owlrunkit bootstrap --workspace "$PROJECT_ROOT" \
|
|
194
|
+
--exact owlrunkit@0.19.1 --dry-run
|
|
195
|
+
npx --no-install owlrunkit bootstrap --workspace "$PROJECT_ROOT" \
|
|
196
|
+
--exact owlrunkit@0.19.1 --apply
|
|
193
197
|
npx --no-install owlrunkit init --workspace "$PROJECT_ROOT"
|
|
194
198
|
npx --no-install owlrunkit inspect --json --workspace "$PROJECT_ROOT"
|
|
195
199
|
npx --no-install owlrunkit status --workspace "$PROJECT_ROOT"
|
|
196
200
|
```
|
|
197
201
|
|
|
202
|
+
Prefer `bootstrap` for a new standalone-package consumer or an eligible idle
|
|
203
|
+
project upgrade. Its dry-run is zero-write; apply rechecks the exact local
|
|
204
|
+
package and official registry binding under a project-owned lock, then performs
|
|
205
|
+
Core initialization, profile reconcile/validation, adoption and doctor
|
|
206
|
+
readback. A later-step failure restores the governed preimage and leaves a
|
|
207
|
+
failure receipt. Shared Skill inspection is diagnostic only; bootstrap never
|
|
208
|
+
silently changes a user or fleet Skill.
|
|
209
|
+
|
|
198
210
|
Initialization may write only `.owlcoda/runkit/`. It must not modify business source.
|
|
199
211
|
It atomically upgrades a known ConfigV1 project or refreshes an older v0.2
|
|
200
212
|
Core patch identity and writes a local migration receipt with
|
|
@@ -246,6 +258,9 @@ npx --no-install owlrunkit quick-metrics \
|
|
|
246
258
|
|
|
247
259
|
npx --no-install owlrunkit quick-metrics \
|
|
248
260
|
--workspace "$PROJECT_ROOT" --verbose
|
|
261
|
+
|
|
262
|
+
npx --no-install owlrunkit efficiency status \
|
|
263
|
+
--workspace "$PROJECT_ROOT"
|
|
249
264
|
```
|
|
250
265
|
|
|
251
266
|
`--stdin-file` copies and SHA-256-binds at most 1 MiB of regular non-symlink
|
|
@@ -256,6 +271,15 @@ default; `--verbose` adds receipt paths. Metrics are always local-only and
|
|
|
256
271
|
perform no telemetry or network request; the former `--local` flag remains an
|
|
257
272
|
accepted compatibility no-op.
|
|
258
273
|
|
|
274
|
+
Quick's default human result leads with pass/fail and explicitly separates
|
|
275
|
+
candidate identity, workspace attestation, verification, product/UX,
|
|
276
|
+
deployment/runtime, and production/business evidence. A lower layer never
|
|
277
|
+
promotes a higher layer. Use `efficiency record` only for an observed workflow
|
|
278
|
+
start, confirmed false block, manual intervention, or named acceptable result;
|
|
279
|
+
use `efficiency status` to inspect local repeated commands, handoff wait, and
|
|
280
|
+
time-to-result. These metrics are project-local, perform no telemetry, exclude
|
|
281
|
+
receipt count as a value signal, and grant no additional authority.
|
|
282
|
+
|
|
259
283
|
Core v0.13 also adds deterministic repair and exact-byte offline transport:
|
|
260
284
|
|
|
261
285
|
```bash
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"schemaVersion": "OwlCodaRunKitConfigV2",
|
|
3
3
|
"core": {
|
|
4
4
|
"contractVersion": "0.2",
|
|
5
|
-
"coreVersion": "0.
|
|
6
|
-
"coreManifestSha256": "sha256:
|
|
7
|
-
"coreSourceRef": "artifact:sha256:
|
|
5
|
+
"coreVersion": "0.19.1",
|
|
6
|
+
"coreManifestSha256": "sha256:291ef97c93a513eed24a29f75c400b61cefd6a8c0ab228401cf2c6a73ea9e622",
|
|
7
|
+
"coreSourceRef": "artifact:sha256:291ef97c93a513eed24a29f75c400b61cefd6a8c0ab228401cf2c6a73ea9e622"
|
|
8
8
|
},
|
|
9
9
|
"authorizationPolicy": "external_explicit_authority_required"
|
|
10
10
|
}
|
|
@@ -478,6 +478,44 @@ bytes as exact stdin, and binds their workspace-relative path, byte size, and
|
|
|
478
478
|
SHA-256. V1 remains the no-stdin receipt and stays readable. Neither schema
|
|
479
479
|
binds undeclared ignored outputs or grants any authority.
|
|
480
480
|
|
|
481
|
+
Core `0.19.0` adds `OwlCodaQuickVerificationReceiptV3` for explicit isolation,
|
|
482
|
+
dependency-environment binding, and ignored-path binding. `--isolate` runs a
|
|
483
|
+
Git-visible candidate copy in a disposable consumer and records consumer source
|
|
484
|
+
versus discarded ignored-artifact deltas. `--dependency-root` binds an existing
|
|
485
|
+
dependency environment without installing it. `--bind-ignored` is the only
|
|
486
|
+
operation that emits `OwlCodaWorkspaceSnapshotV2` and claims those selected
|
|
487
|
+
ignored bytes. Workspace source, selected ignored paths, dependency metadata,
|
|
488
|
+
and consumer source mutations are distinct fail-closed facts. Disposable
|
|
489
|
+
ignored artifacts do not mutate or become evidence for the source checkout.
|
|
490
|
+
|
|
491
|
+
Core `0.19.0` also adds `OwlCodaQuickEvidenceReusePlanV1` and
|
|
492
|
+
`OwlCodaQuickEvidenceReuseReceiptV1`. A reuse plan verifies one earlier strict,
|
|
493
|
+
passed, source-unchanged Quick receipt from the same workspace, derives the
|
|
494
|
+
current candidate delta from Git objects plus both snapshots, and refuses any
|
|
495
|
+
path outside literal caller allowances before command execution. Byte-identical
|
|
496
|
+
dirty content later committed to Git remains unchanged evidence. Apply runs one
|
|
497
|
+
exact delta gate through Quick and records both receipt hashes; it grants no
|
|
498
|
+
authority and does not satisfy Formal or higher acceptance layers.
|
|
499
|
+
|
|
500
|
+
Quick output and Verification Envelope stdout/stderr evidence use a project-
|
|
501
|
+
global create-only SHA-256 object store. Existing Quick receipt-local material
|
|
502
|
+
paths remain valid; no historical tree is rewritten or deleted. Object reuse is
|
|
503
|
+
storage/provenance behavior, never additional assurance.
|
|
504
|
+
|
|
505
|
+
Core `0.19.0` can additionally bind external transition truth without changing
|
|
506
|
+
Quick Receipt V1/V2/V3. `quick-verify --capture-runtime` gives the exact child
|
|
507
|
+
an initially absent receipt-local `OWLRUNKIT_RUNTIME_REPORT` path. A strict
|
|
508
|
+
`OwlCodaRunKitExternalRuntimeReportV1` there is projected into a separately
|
|
509
|
+
hashed `OwlCodaRunKitRuntimeTransitionReceiptV1` that binds the Quick receipt
|
|
510
|
+
bytes, report bytes, derived workspace mutation, command-reported external
|
|
511
|
+
mutation, ordered stages, rollback outcome, final external state, and recovery
|
|
512
|
+
artifact `capturedBefore` / `restoresTo` semantics. A failed stage followed by
|
|
513
|
+
a successful rollback remains a failed transition with useful evidence; it is
|
|
514
|
+
not promoted to Quick, Formal, deployment, or business acceptance. Missing or
|
|
515
|
+
inconsistent runtime truth fails closed while preserving the base Quick
|
|
516
|
+
receipt. `quick-runtime-verify` rechecks stored bytes and projection integrity;
|
|
517
|
+
it does not independently re-observe the external runtime or grant authority.
|
|
518
|
+
|
|
481
519
|
Deterministic `repair` persists a reviewable plan before replay, reuses only
|
|
482
520
|
fresh receipt-bound coverage, replays pending exact argv, and appends
|
|
483
521
|
replacement lineage. Failed and orphaned attempts remain inspectable. Repair
|
|
@@ -539,6 +577,25 @@ stale Packet, invalid evidence or engine drift must still follow the Core's
|
|
|
539
577
|
foreign-project authority. Signing, keys, external anchors and GitHub Actions
|
|
540
578
|
remain deferred.
|
|
541
579
|
|
|
580
|
+
## Core v0.19 atomic onboarding
|
|
581
|
+
|
|
582
|
+
Core `0.19.0` keeps Contract `0.2` and all existing authority boundaries. The
|
|
583
|
+
versioned `OwlCodaRunKitOnboardingBootstrapPlanV1` dry-run binds the exact
|
|
584
|
+
project-local package and official registry release, checks upgrade safety,
|
|
585
|
+
previews profile reconciliation, reports shared Skill drift, and performs zero
|
|
586
|
+
writes. `bootstrap --apply` rechecks that plan under a project-owned lock, then
|
|
587
|
+
runs Core initialization, profile reconcile/validation, exact adoption and
|
|
588
|
+
doctor readback as one high-level transaction.
|
|
589
|
+
|
|
590
|
+
The transaction governs RunKit config, profiles, their migration/apply
|
|
591
|
+
receipts, and adoption evidence. A failure after mutation restores their exact
|
|
592
|
+
preimage before writing an append-only
|
|
593
|
+
`OwlCodaRunKitOnboardingBootstrapReceiptV1`. A concurrent bootstrap, active or
|
|
594
|
+
invalid project lifecycle, ambiguous project tool, exact-package mismatch, or
|
|
595
|
+
registry mismatch fails closed. The command does not modify package files,
|
|
596
|
+
source, Git, deployments, production, business state, or shared Skills, and it
|
|
597
|
+
never grants those authorities.
|
|
598
|
+
|
|
542
599
|
## Deferred work
|
|
543
600
|
|
|
544
601
|
Contract v0.2 still does not add a built-in browser or Electron driver, Plugin,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "owlrunkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.1",
|
|
4
4
|
"description": "Project Driver for cross-Agent project continuity and progression; execution, evidence, verification, and recovery are the underlying trust substrate.",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
6
|
"author": "yeemio <owlclaw@163.com>",
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
# `@owlcoda/attest`
|
|
2
2
|
|
|
3
3
|
`@owlcoda/attest` is OwlCoda RunKit's unsigned, read-only verification plane.
|
|
4
|
-
It verifies Quick Receipt V1 and
|
|
4
|
+
It verifies Quick Receipt V1, V2, and V3 artifacts, Formal public verification
|
|
5
5
|
bundles, and local `OwlCodaAttestationRefV1` references without importing the
|
|
6
6
|
private mutation Core. V2 adds one hash-bound stdin material while preserving
|
|
7
|
-
the same unsigned, authorization-free assurance boundary.
|
|
7
|
+
the same unsigned, authorization-free assurance boundary. V3 adds a disposable
|
|
8
|
+
consumer record, optional dependency-environment binding, and explicit ignored
|
|
9
|
+
workspace bindings while leaving V1/V2 unchanged.
|
|
8
10
|
|
|
9
11
|
The package is an unsigned V1 distribution candidate. It is intentionally
|
|
10
12
|
marked private until naming clearance and release authorization exist.
|
|
11
|
-
`consumer-surface-v1.json`
|
|
12
|
-
|
|
13
|
+
`consumer-surface-v1.json` remains the byte-compatible predecessor contract.
|
|
14
|
+
`consumer-surface-v2.json` adds Receipt V3, Snapshot V2, isolated Quick, and
|
|
15
|
+
explicit ignored-path issue codes without reinterpreting V1.
|
|
13
16
|
|
|
14
17
|
## CLI
|
|
15
18
|
|
|
@@ -58,7 +61,8 @@ in the repository documentation under
|
|
|
58
61
|
receipts but does not require N-1 to trust an unknown future Core identity.
|
|
59
62
|
|
|
60
63
|
The packed candidate includes its GPL-3.0-or-later license, a package-level
|
|
61
|
-
SPDX 2.3 SBOM,
|
|
64
|
+
SPDX 2.3 SBOM, the frozen Consumer Surface V1 manifest, and the additive V2
|
|
65
|
+
surface. Local metrics never
|
|
62
66
|
send telemetry and are not a performance target. They describe local receipt
|
|
63
67
|
state; separate consumption must be evidenced by a caller-owned attestation
|
|
64
68
|
result.
|