owlrunkit 0.18.3 → 0.19.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 +80 -0
- package/README.md +223 -52
- package/docs/architecture/OWLCODA_RUNKIT_0184_EXTERNAL_DELIVERY_INTAKE_PRODUCT_DECISION_20260812.md +209 -0
- package/docs/architecture/OWLCODA_RUNKIT_0190_CONSOLIDATED_DAILY_USE_PRODUCT_DECISION_20260812.md +97 -0
- package/docs/architecture/OWLCODA_RUNKIT_USAGE_MODE_SELECTION_PRODUCT_DECISION_20260811.md +8 -7
- package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_2.md +57 -0
- package/integrations/codex/skills/owlcoda-runkit/SKILL.md +133 -77
- 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 +205 -12
- package/packages/attest/src/quick.mjs +45 -4
- package/packages/attest/src/workspace-snapshot.mjs +143 -7
- package/registry-release-policy-v1.json +5 -5
- package/sbom.spdx.json +5 -5
- package/scripts/runkit-contract/assurance-router.mjs +25 -6
- package/scripts/runkit-contract/core-contract.mjs +29 -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 +3 -2
- package/scripts/runkit-contract/outcome-presentation.mjs +171 -0
- package/scripts/runkit-contract/profile-onboarding.mjs +285 -17
- package/scripts/runkit-contract/project-cli-resolver.mjs +29 -5
- package/scripts/runkit-contract/project-external-delivery.mjs +707 -0
- 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 +217 -26
- package/scripts/runkit-contract/quick-workspace-snapshot.mjs +1 -0
- package/scripts/runkit-contract/runkit-bootstrap.mjs +7 -1
- package/scripts/runkit-contract/runkit-cli.mjs +602 -152
- package/scripts/runkit-contract/runtime-transition.mjs +478 -0
- package/scripts/runkit-contract/schemas/assurance-route-v2.schema.json +26 -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/profile-detection-v3.schema.json +170 -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-v3.schema.json +146 -0
- package/scripts/runkit-contract/schemas/team-project-event-v4.schema.json +142 -0
- package/scripts/runkit-contract/schemas/team-project-status-v2.schema.json +85 -0
- package/scripts/runkit-contract/schemas/usage-mode-recommendation-v2.schema.json +136 -0
- package/scripts/runkit-contract/team-project.mjs +1172 -22
- package/scripts/runkit-contract/usage-mode.mjs +28 -7
- package/scripts/runkit-contract/verification-envelope.mjs +15 -18
package/docs/architecture/OWLCODA_RUNKIT_0184_EXTERNAL_DELIVERY_INTAKE_PRODUCT_DECISION_20260812.md
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# OwlRunKit 0.18.4 External Delivery Intake Product Decision
|
|
2
|
+
|
|
3
|
+
> Status: implemented source candidate; unpublished, uninstalled, unadopted
|
|
4
|
+
>
|
|
5
|
+
> Date: 2026-08-12, Asia/Shanghai
|
|
6
|
+
>
|
|
7
|
+
> Scope: controller/target separation, external DeliveryPacket intake,
|
|
8
|
+
> dirty-overlay classification, actionable profile detection, takeover truth
|
|
9
|
+
> delta, and project-local command identity
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
RunKit remains a flight recorder and stage controller. Its default posture is
|
|
14
|
+
light: ordinary analysis and small reversible source work do not require a
|
|
15
|
+
RunKit execution. Quick binds one important verification command. Project
|
|
16
|
+
Driver preserves continuity across sessions and writers. Formal remains
|
|
17
|
+
reserved for facts that actually require stronger assurance, such as multiple
|
|
18
|
+
writers or authorities, permissions, security, funds, irreversible change,
|
|
19
|
+
uncertain rollback, schema/data migration, or an explicit Formal acceptance
|
|
20
|
+
contract.
|
|
21
|
+
|
|
22
|
+
Version 0.18.4 addresses one narrower gap: a Project Driver in a controller
|
|
23
|
+
worktree must be able to record a candidate produced in a different frozen
|
|
24
|
+
worktree without installing dependencies, writing `.owlcoda`, or changing
|
|
25
|
+
package metadata in the target. Three adjacent onboarding and recovery defects
|
|
26
|
+
are included because they otherwise leave this path non-actionable: false-success
|
|
27
|
+
profile detection, missing stale/current candidate truth in takeover, and
|
|
28
|
+
inconsistent CLI help/local metrics behavior.
|
|
29
|
+
|
|
30
|
+
## Accepted dogfood facts
|
|
31
|
+
|
|
32
|
+
These facts come from the Sierac MES, OwlChen, OwlFootball, Luna, and Cursor
|
|
33
|
+
dogfood reports accepted as product input. This candidate does not re-run those
|
|
34
|
+
foreign-project workflows.
|
|
35
|
+
|
|
36
|
+
- Project Driver is a net benefit for long threads, cross-session takeover,
|
|
37
|
+
multi-stage test deployment, and explicit Gate ownership.
|
|
38
|
+
- Quick is useful when it binds a frozen candidate and one decision-changing
|
|
39
|
+
command. It is not the mechanism that discovers most source bugs.
|
|
40
|
+
- Ordinary single-writer source micro-batches become slower when every command
|
|
41
|
+
is wrapped in RunKit ceremony.
|
|
42
|
+
- A controller worktree may have a valid RunKit project while a frozen source
|
|
43
|
+
worktree cannot accept `.owlcoda`, `package.json`, a lockfile, or
|
|
44
|
+
`node_modules` changes.
|
|
45
|
+
- External Luna and Cursor deliveries currently require manual path/hash
|
|
46
|
+
aggregation before their candidate identity appears in Project Driver.
|
|
47
|
+
- `npx --no-install owlrunkit` can use the exact project package while a bare
|
|
48
|
+
`owlrunkit` may resolve an older global binary. An old binary cannot safely
|
|
49
|
+
predict or trust a future Core identity.
|
|
50
|
+
- Visible test-tool cache files can change a dirty-worktree fingerprint even
|
|
51
|
+
when the intended source candidate did not change.
|
|
52
|
+
- Profile detection can look successful while its candidates do not cover the
|
|
53
|
+
Git-visible source candidate or provide an actionable primary repair.
|
|
54
|
+
- A blank-session takeover needs to distinguish stale handoffs and show the
|
|
55
|
+
current external candidate delta instead of presenting historical facts as
|
|
56
|
+
competing next actions.
|
|
57
|
+
- Source/test success is not UX completion, deployment activation, production
|
|
58
|
+
truth, or business effectiveness.
|
|
59
|
+
|
|
60
|
+
## Long-term product decision
|
|
61
|
+
|
|
62
|
+
Continuity and assurance remain independent dimensions. External source lanes
|
|
63
|
+
do not become Formal merely because they use another worktree or Agent.
|
|
64
|
+
|
|
65
|
+
| Situation | Continuity | Assurance |
|
|
66
|
+
| --- | --- | --- |
|
|
67
|
+
| Analysis, documentation discussion, disposable exploration | none | none |
|
|
68
|
+
| One low-risk frozen candidate and one exact command | none | quick |
|
|
69
|
+
| Cross-session or multi-stage ordinary reversible source work | project_driver | none or quick |
|
|
70
|
+
| Mandatory high-risk fact or explicit Formal acceptance | as needed | formal |
|
|
71
|
+
|
|
72
|
+
The user-facing presets remain `off`, `light`, `managed`, `formal`, and `auto`.
|
|
73
|
+
They are preferences, not authorization, and cannot weaken a mandatory Formal
|
|
74
|
+
route.
|
|
75
|
+
|
|
76
|
+
## Released capability before this candidate
|
|
77
|
+
|
|
78
|
+
The public npm release remains `owlrunkit@0.18.3`. It already provides:
|
|
79
|
+
|
|
80
|
+
- independent continuity/assurance mode recommendation;
|
|
81
|
+
- one-command `quick-verify --attest`;
|
|
82
|
+
- hash-bound `--stdin-file` input;
|
|
83
|
+
- bounded head-and-tail Quick output;
|
|
84
|
+
- actionable Quick issues and aggregate-by-default metrics;
|
|
85
|
+
- atomic failed-work `reject-and-return`;
|
|
86
|
+
- self-contained packaged Skill contract references.
|
|
87
|
+
|
|
88
|
+
Those features are not new 0.18.4 claims.
|
|
89
|
+
|
|
90
|
+
## 0.18.4 candidate implementation
|
|
91
|
+
|
|
92
|
+
### Controller-owned entry snapshot
|
|
93
|
+
|
|
94
|
+
`project target-snapshot --dry-run|--apply` reads a target Git worktree twice
|
|
95
|
+
and binds:
|
|
96
|
+
|
|
97
|
+
- canonical target workspace reference;
|
|
98
|
+
- repository identity and target HEAD;
|
|
99
|
+
- tracked tree, submodules, dependency lockfiles, and visible dirty overlay;
|
|
100
|
+
- the WorkItem's allowed path boundary;
|
|
101
|
+
- one full workspace snapshot fingerprint.
|
|
102
|
+
|
|
103
|
+
Only the controller's `.owlcoda/runkit/project/target-snapshots` path may be
|
|
104
|
+
written. Controller and target must be disjoint real directories, and target
|
|
105
|
+
must resolve to the exact Git worktree root. The target worktree is read-only.
|
|
106
|
+
|
|
107
|
+
### External DeliveryPacket import
|
|
108
|
+
|
|
109
|
+
`project import-delivery --dry-run|--apply` verifies the packet's exact
|
|
110
|
+
whole-file hashes against the target and records append-only Event V3 with:
|
|
111
|
+
|
|
112
|
+
- `deliveryCandidateFingerprint` for the packet file set;
|
|
113
|
+
- `workspaceSnapshotFingerprint` for the complete target snapshot;
|
|
114
|
+
- target HEAD, producer, WorkItem, and current assignment;
|
|
115
|
+
- entry snapshot reference and hash when available;
|
|
116
|
+
- candidate paths and entry-to-candidate changed paths;
|
|
117
|
+
- tool-cache, dependency-environment, unchanged-packet, and out-of-scope
|
|
118
|
+
classifications;
|
|
119
|
+
- explicit `proven` and `notProven` statements;
|
|
120
|
+
- `targetWritePerformed=false` and `authorizationGranted=false`.
|
|
121
|
+
|
|
122
|
+
If no entry snapshot exists, the packet can still prove the current candidate
|
|
123
|
+
bytes. The event is then `candidate_only`; it cannot claim that the historical
|
|
124
|
+
entry-to-candidate delta was observed. Any packet path outside WorkItem
|
|
125
|
+
ownership or any unclassified source delta rejects the import before project
|
|
126
|
+
truth is written. Import brackets packet verification with stable workspace
|
|
127
|
+
snapshots, compares HEAD, tracked tree, submodules, and visible dirty overlay,
|
|
128
|
+
and treats both source and destination of a rename as changed paths. Event V3
|
|
129
|
+
is reserved for this verified intake path; legacy raw event requests cannot
|
|
130
|
+
manufacture an external-delivery fact.
|
|
131
|
+
|
|
132
|
+
### Command and Skill identity
|
|
133
|
+
|
|
134
|
+
Installed-project instructions use `npx --no-install owlrunkit`. A process-level
|
|
135
|
+
shared Skill or bare global CLI with an older version is reported as drift, not
|
|
136
|
+
used as authority to reinterpret current project truth. Safe fleet Skill
|
|
137
|
+
replacement remains a separate installation action and is not performed by
|
|
138
|
+
this candidate.
|
|
139
|
+
|
|
140
|
+
### Actionable profile onboarding
|
|
141
|
+
|
|
142
|
+
Public `profiles detect --dry-run` returns Profile Detection V3. V2 remains an
|
|
143
|
+
unchanged compatibility contract for existing consumers; V3 adds actionable
|
|
144
|
+
coverage fields. It reads Git-visible changed paths without writing the
|
|
145
|
+
workspace and reports
|
|
146
|
+
`profiles_insufficient` when source paths remain uncovered or no actionable
|
|
147
|
+
primary exists. The result includes exact uncovered paths, primary blockers, a
|
|
148
|
+
minimal profile using only real project surfaces, and copyable preview/apply
|
|
149
|
+
repair commands. Existing-profile repair continues through atomic
|
|
150
|
+
`profiles reconcile`; absent conventional directories are not blockers.
|
|
151
|
+
Detection and apply bind the same Git-visible changed-path set, including both
|
|
152
|
+
sides of a rename. Status failure or drift blocks apply before configuration is
|
|
153
|
+
written.
|
|
154
|
+
|
|
155
|
+
### Takeover truth delta and CLI consistency
|
|
156
|
+
|
|
157
|
+
`project status` and `project takeover` emit V2 projections while their V1
|
|
158
|
+
exports remain unchanged for existing consumers. Takeover V2 projects handoffs
|
|
159
|
+
made stale by later project facts, the current imported external delivery, and
|
|
160
|
+
an exact added/changed/removed path
|
|
161
|
+
delta from the previous delivery. The human projection remains one-screen.
|
|
162
|
+
`project assign --help` is action-specific, and `quick-metrics` is local by
|
|
163
|
+
definition: `--local` is optional and retained only as a compatibility no-op.
|
|
164
|
+
|
|
165
|
+
Assurance and usage-mode routing follow the same rule: their V1 contracts retain
|
|
166
|
+
the original bare-command machine values, while the CLI uses Assurance Route V2
|
|
167
|
+
and Usage Mode Recommendation V2 with project-local
|
|
168
|
+
`npx --no-install owlrunkit` commands.
|
|
169
|
+
|
|
170
|
+
## Acceptance-level presentation
|
|
171
|
+
|
|
172
|
+
Every imported delivery must keep these layers distinct:
|
|
173
|
+
|
|
174
|
+
1. candidate file identity verified;
|
|
175
|
+
2. entry-to-candidate visible overlay attested, or explicitly not attested;
|
|
176
|
+
3. verification command/test result, if separately run;
|
|
177
|
+
4. UX or independent product acceptance, if separately performed;
|
|
178
|
+
5. deployment/runtime activation, if separately authorized and read back;
|
|
179
|
+
6. production or business effectiveness, if separately accepted.
|
|
180
|
+
|
|
181
|
+
No lower layer promotes a higher one.
|
|
182
|
+
|
|
183
|
+
## Follow-up gaps
|
|
184
|
+
|
|
185
|
+
Ten issue classes remain outside 0.18.4 and need separate contracts:
|
|
186
|
+
|
|
187
|
+
- isolated temporary dependency consumer and test-cache execution;
|
|
188
|
+
- binding ignored paths when a task explicitly needs them;
|
|
189
|
+
- delta-oriented reuse of an older receipt plus a small allowed-path change;
|
|
190
|
+
- external runtime mutation, rollback, final-state, and stage-failure fields;
|
|
191
|
+
- upstream WorkItem invalidation/reopen with downstream waiting propagation;
|
|
192
|
+
- recovery evidence semantics;
|
|
193
|
+
- large-artifact deduplication;
|
|
194
|
+
- atomic onboarding/bootstrap and safer shared-Skill fleet activation;
|
|
195
|
+
- business-first stage summaries and acceptance-level UI projection;
|
|
196
|
+
- efficiency metrics for repeated commands, false blocks, manual intervention,
|
|
197
|
+
handoff wait, and time to acceptable result.
|
|
198
|
+
|
|
199
|
+
## What this candidate cannot claim
|
|
200
|
+
|
|
201
|
+
- It is not published `owlrunkit@0.18.4`.
|
|
202
|
+
- It is not installed, adopted, activated, committed, tagged, or pushed.
|
|
203
|
+
- It does not auto-detect a source lane that was never assigned or imported.
|
|
204
|
+
- It does not prove ignored cache paths; workspace snapshots continue to say
|
|
205
|
+
`ignoredPathsBound=false`.
|
|
206
|
+
- It does not isolate dependencies or automatically reuse prior tests.
|
|
207
|
+
- It does not run tests, create a Quick/Formal execution, modify Git, deploy,
|
|
208
|
+
access production, or grant business authority.
|
|
209
|
+
- It does not move domain contracts or product judgment into OwlCoda.
|
package/docs/architecture/OWLCODA_RUNKIT_0190_CONSOLIDATED_DAILY_USE_PRODUCT_DECISION_20260812.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# OwlRunKit 0.19.0 Consolidated Daily-Use Product Decision
|
|
2
|
+
|
|
3
|
+
状态:**Owner 已授权实施;七个 Wave 的源代码候选已完成,正式发布验证进行中**
|
|
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
|
+
## What Cannot Be Claimed Yet
|
|
91
|
+
|
|
92
|
+
- 0.19.0 尚未 tag、publish 或被任何外部项目采用;
|
|
93
|
+
- 本文不是 npm registry receipt,源代码完成不能替代 packed consumer 与
|
|
94
|
+
registry consumer 验证;
|
|
95
|
+
- 当前可以声称七个 Wave 已进入单一 0.19.0 release candidate,不能声称
|
|
96
|
+
npm latest 已改变;
|
|
97
|
+
- public mirror、官网、8019、全局 Skill 与外部项目升级不属于本次授权。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OwlCoda RunKit 使用模式选择:Sierac MES Dogfood 产品决议
|
|
2
2
|
|
|
3
|
-
状态:**0.18.
|
|
3
|
+
状态:**0.18.3 已发布;本文主体保留既有产品决议,0.18.4 外部候选纳管决议另见同日架构文档**
|
|
4
4
|
日期:2026-08-11
|
|
5
5
|
|
|
6
6
|
## 已验证现场事实
|
|
@@ -165,7 +165,7 @@ RunKit contract/package gate、Core 身份同步、pack 内容检查和安装 sm
|
|
|
165
165
|
上述 0.18.2 内容已经发布;准确 Git/npm 身份以 `docs/PRODUCT-TRUTH.md` 和独立发布
|
|
166
166
|
回执为准。发布本身没有更新全局 Skill、迁移外部项目或授予业务权限。
|
|
167
167
|
|
|
168
|
-
## 0.18.3 Sierac recovery dogfood
|
|
168
|
+
## 0.18.3 Sierac recovery dogfood 修复(已发布)
|
|
169
169
|
|
|
170
170
|
### 新增现场事实
|
|
171
171
|
|
|
@@ -205,12 +205,13 @@ attestation,且没有扩大到 Formal、生产、Git 或业务验收。
|
|
|
205
205
|
|
|
206
206
|
### 后续缺口
|
|
207
207
|
|
|
208
|
-
|
|
209
|
-
evidence 的 `captured_before` / `restores_to`
|
|
208
|
+
`project takeover` stale-handoff 与外部候选 delta 已进入未发布的 0.18.4 源码候选;
|
|
209
|
+
recovery evidence 的 `captured_before` / `restores_to` 语义字段仍未实现。Project Driver 自动 ID、时间戳、
|
|
210
210
|
单项完成与 integrate 合并,以及路径范围指纹仍保留在既有 backlog。
|
|
211
211
|
|
|
212
212
|
### 不能声称
|
|
213
213
|
|
|
214
|
-
`0.18.3`
|
|
215
|
-
|
|
216
|
-
|
|
214
|
+
`0.18.3` 已在后续独立发布 Gate 中完成 commit、tag、npm publication 与 registry
|
|
215
|
+
consumer smoke;安装、项目 adoption、共享 Skill 激活和业务结果仍是不同事实。
|
|
216
|
+
`0.18.4` 的 controller/target 分离与外部 DeliveryPacket 纳管边界见
|
|
217
|
+
`OWLCODA_RUNKIT_0184_EXTERNAL_DELIVERY_INTAKE_PRODUCT_DECISION_20260812.md`;该版本当前仍只是源码候选。
|
|
@@ -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,
|