@vela-science/canopus 0.5.0 → 0.5.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 +7 -0
- package/README.md +8 -8
- package/dist/src/projection/public-run.js +4 -1
- package/dist/src/receipt/map.js +7 -1
- package/docs/RUN_RECORD.md +4 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.1 - 2026-07-20
|
|
4
|
+
|
|
5
|
+
- Preserve exact pending-result replay roots instead of recomputing a receipt
|
|
6
|
+
projection with incomplete post-run state.
|
|
7
|
+
- Keep the published `0.5.0` package and failed post-publication workflow as
|
|
8
|
+
audit evidence; `0.5.1` is the corrected default install target.
|
|
9
|
+
|
|
3
10
|
## 0.5.0 - 2026-07-20
|
|
4
11
|
|
|
5
12
|
- Compose against released Vela 0.911.0 and surface configured, available, and
|
package/README.md
CHANGED
|
@@ -38,8 +38,8 @@ Mission → GPT-5.6 → artifact → verifier → Receipt → Defer.
|
|
|
38
38
|
**90 seconds — inspect the shipped product:**
|
|
39
39
|
|
|
40
40
|
```sh
|
|
41
|
-
bunx @vela-science/canopus@0.5.
|
|
42
|
-
bunx @vela-science/canopus@0.5.
|
|
41
|
+
bunx @vela-science/canopus@0.5.1 --version
|
|
42
|
+
bunx @vela-science/canopus@0.5.1 profile validate sidon-a24-at-least-7194-gpt56-v3
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
**Full workflow — reproduce without rebuilding Canopus:**
|
|
@@ -56,22 +56,22 @@ vela reproduce .
|
|
|
56
56
|
Run the provenance-backed public package with Bun:
|
|
57
57
|
|
|
58
58
|
```sh
|
|
59
|
-
bunx @vela-science/canopus@0.5.
|
|
59
|
+
bunx @vela-science/canopus@0.5.1 --version
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
Inspect a clean frontier, then run its first ranked producer offer:
|
|
63
63
|
|
|
64
64
|
```sh
|
|
65
|
-
bunx @vela-science/canopus@0.5.
|
|
66
|
-
bunx @vela-science/canopus@0.5.
|
|
67
|
-
bunx @vela-science/canopus@0.5.
|
|
68
|
-
bunx @vela-science/canopus@0.5.
|
|
65
|
+
bunx @vela-science/canopus@0.5.1 doctor /path/to/frontier
|
|
66
|
+
bunx @vela-science/canopus@0.5.1 run /path/to/frontier --first
|
|
67
|
+
bunx @vela-science/canopus@0.5.1 inspect latest
|
|
68
|
+
bunx @vela-science/canopus@0.5.1 replay /path/to/run.json
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
Use `--no-land` for a diagnostic mission that cannot change the source frontier:
|
|
72
72
|
|
|
73
73
|
```sh
|
|
74
|
-
bunx @vela-science/canopus@0.5.
|
|
74
|
+
bunx @vela-science/canopus@0.5.1 run /path/to/frontier --first --no-land
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
`doctor` binds the exact Vela, Codex, Git, frontier, packet, profile, and verifier
|
|
@@ -16,6 +16,9 @@ function publicCaveat(value) {
|
|
|
16
16
|
}
|
|
17
17
|
return value;
|
|
18
18
|
}
|
|
19
|
+
function shellArgument(value) {
|
|
20
|
+
return `'${value.replaceAll("'", `'"'"'`)}'`;
|
|
21
|
+
}
|
|
19
22
|
export function projectPublicRun(options) {
|
|
20
23
|
const { record, mission } = options;
|
|
21
24
|
if (mission.schema !== "canopus.mission.v1") {
|
|
@@ -91,7 +94,7 @@ export function projectPublicRun(options) {
|
|
|
91
94
|
`git clone ${repository.url}.git`,
|
|
92
95
|
`cd ${repository.directory}`,
|
|
93
96
|
`git checkout ${record.final_roots.git_commit}`,
|
|
94
|
-
|
|
97
|
+
...mission.allowed_paths.map((artifact) => `vela reproduce ${shellArgument(artifact)}`),
|
|
95
98
|
],
|
|
96
99
|
},
|
|
97
100
|
nonclaims: [
|
package/dist/src/receipt/map.js
CHANGED
|
@@ -6,6 +6,12 @@ import { parseCandidate } from "../contracts/candidate.js";
|
|
|
6
6
|
function unique(values) {
|
|
7
7
|
return [...new Set(values)];
|
|
8
8
|
}
|
|
9
|
+
function finalizeWorkerCaveat(value) {
|
|
10
|
+
if (/verif(?:y|ication|ier).*(?:pending|has not run)|pending.*verif(?:y|ication|ier)/iu.test(value)) {
|
|
11
|
+
return "The worker handed off without verifier authority; Canopus subsequently recorded the separate verifier outcome.";
|
|
12
|
+
}
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
9
15
|
export function finalizeCandidate(options) {
|
|
10
16
|
const draftPaths = options.engine.draft.artifacts.map((artifact) => `${artifact.path}:${artifact.kind}`).sort();
|
|
11
17
|
const supporting = new Map((options.supportingArtifacts ?? []).map((entry) => [entry.path, entry.kind]));
|
|
@@ -34,7 +40,7 @@ export function finalizeCandidate(options) {
|
|
|
34
40
|
? `The engine proposed a candidate, but the declared verifier did not pass: ${options.engine.draft.claim}`
|
|
35
41
|
: exactPositiveClaim ?? options.engine.draft.claim;
|
|
36
42
|
const caveats = unique([
|
|
37
|
-
...options.engine.draft.caveats,
|
|
43
|
+
...options.engine.draft.caveats.map(finalizeWorkerCaveat),
|
|
38
44
|
`Declared verifier outcome: ${options.verifier.status}.`,
|
|
39
45
|
"Canopus produced this record; it is not a human acceptance decision.",
|
|
40
46
|
]);
|
package/docs/RUN_RECORD.md
CHANGED
|
@@ -44,7 +44,10 @@ canopus public-run /local/run/run.json \
|
|
|
44
44
|
`canopus.public-run.v1` contains only mission and model identity, a bounded
|
|
45
45
|
activity summary, claim and caveats, artifact/verifier/Receipt roots, route,
|
|
46
46
|
accepted delta, usage, source/final commits, and clean-clone reproduction
|
|
47
|
-
commands.
|
|
47
|
+
commands. Those public commands target the mission's exact allowed artifact
|
|
48
|
+
paths; they do not substitute frontier-wide accepted-state replay for
|
|
49
|
+
verification of a pending artifact. It cannot export a failed or admitted run.
|
|
50
|
+
Never publish the raw run
|
|
48
51
|
directory, isolated homes, authentication, private paths, or unrestricted logs.
|
|
49
52
|
|
|
50
53
|
The run root also contains isolated checkouts and content-addressed artifacts.
|