@vela-science/canopus 0.4.0-rc.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 +249 -0
- package/LICENSE-APACHE +176 -0
- package/LICENSE-MIT +21 -0
- package/README.md +124 -0
- package/SECURITY.md +35 -0
- package/capsules/erdos1056-k15/README.md +35 -0
- package/capsules/erdos1056-k15/bin/linux-arm64/10428401-10428600/verifier +0 -0
- package/capsules/erdos1056-k15/bin/linux-x86_64/10428401-10428600/verifier +0 -0
- package/capsules/formal-erdos-505-test-dim-one/README.md +20 -0
- package/capsules/formal-erdos-505-test-dim-one/verifier +105 -0
- package/dist/src/activity/events.d.ts +15 -0
- package/dist/src/activity/events.js +24 -0
- package/dist/src/activity/store.d.ts +10 -0
- package/dist/src/activity/store.js +165 -0
- package/dist/src/artifact/freeze.d.ts +21 -0
- package/dist/src/artifact/freeze.js +177 -0
- package/dist/src/artifact/materialize.d.ts +6 -0
- package/dist/src/artifact/materialize.js +29 -0
- package/dist/src/budget/enforce.d.ts +30 -0
- package/dist/src/budget/enforce.js +98 -0
- package/dist/src/candidate/validate.d.ts +3 -0
- package/dist/src/candidate/validate.js +32 -0
- package/dist/src/capability/withdrawal.d.ts +47 -0
- package/dist/src/capability/withdrawal.js +487 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +503 -0
- package/dist/src/contracts/candidate.d.ts +50 -0
- package/dist/src/contracts/candidate.js +93 -0
- package/dist/src/contracts/mission.d.ts +139 -0
- package/dist/src/contracts/mission.js +401 -0
- package/dist/src/contracts/validation.d.ts +25 -0
- package/dist/src/contracts/validation.js +95 -0
- package/dist/src/engines/codex-events.d.ts +25 -0
- package/dist/src/engines/codex-events.js +219 -0
- package/dist/src/engines/codex-exec.d.ts +17 -0
- package/dist/src/engines/codex-exec.js +136 -0
- package/dist/src/engines/codex-home.d.ts +7 -0
- package/dist/src/engines/codex-home.js +50 -0
- package/dist/src/engines/codex-tool-free.d.ts +26 -0
- package/dist/src/engines/codex-tool-free.js +213 -0
- package/dist/src/engines/codex-tools-native.d.ts +30 -0
- package/dist/src/engines/codex-tools-native.js +405 -0
- package/dist/src/engines/engine.d.ts +55 -0
- package/dist/src/engines/engine.js +4 -0
- package/dist/src/engines/fake.d.ts +7 -0
- package/dist/src/engines/fake.js +37 -0
- package/dist/src/evidence/manifests.d.ts +9 -0
- package/dist/src/evidence/manifests.js +56 -0
- package/dist/src/index.d.ts +32 -0
- package/dist/src/index.js +32 -0
- package/dist/src/mission/prepare.d.ts +33 -0
- package/dist/src/mission/prepare.js +375 -0
- package/dist/src/product/custody.d.ts +27 -0
- package/dist/src/product/custody.js +131 -0
- package/dist/src/product/doctor.d.ts +61 -0
- package/dist/src/product/doctor.js +278 -0
- package/dist/src/product/profile-bundle.d.ts +21 -0
- package/dist/src/product/profile-bundle.js +78 -0
- package/dist/src/product/profile.d.ts +67 -0
- package/dist/src/product/profile.js +251 -0
- package/dist/src/product/replay.d.ts +10 -0
- package/dist/src/product/replay.js +71 -0
- package/dist/src/product/run.d.ts +31 -0
- package/dist/src/product/run.js +264 -0
- package/dist/src/product/runtime.d.ts +18 -0
- package/dist/src/product/runtime.js +64 -0
- package/dist/src/product/version.d.ts +1 -0
- package/dist/src/product/version.js +6 -0
- package/dist/src/product/withdraw.d.ts +8 -0
- package/dist/src/product/withdraw.js +255 -0
- package/dist/src/projection/diagnostic.d.ts +12 -0
- package/dist/src/projection/diagnostic.js +61 -0
- package/dist/src/projection/failure.d.ts +26 -0
- package/dist/src/projection/failure.js +63 -0
- package/dist/src/projection/run.d.ts +89 -0
- package/dist/src/projection/run.js +159 -0
- package/dist/src/receipt/map.d.ts +25 -0
- package/dist/src/receipt/map.js +162 -0
- package/dist/src/repair/plan.d.ts +2 -0
- package/dist/src/repair/plan.js +22 -0
- package/dist/src/roles.d.ts +2 -0
- package/dist/src/roles.js +9 -0
- package/dist/src/run.d.ts +94 -0
- package/dist/src/run.js +654 -0
- package/dist/src/util/canonical.d.ts +5 -0
- package/dist/src/util/canonical.js +53 -0
- package/dist/src/util/command.d.ts +26 -0
- package/dist/src/util/command.js +161 -0
- package/dist/src/util/files.d.ts +3 -0
- package/dist/src/util/files.js +65 -0
- package/dist/src/vela/cli.d.ts +71 -0
- package/dist/src/vela/cli.js +718 -0
- package/dist/src/vela/types.d.ts +27 -0
- package/dist/src/vela/types.js +1 -0
- package/dist/src/verifier/run.d.ts +24 -0
- package/dist/src/verifier/run.js +315 -0
- package/dist/src/workspace/prepare.d.ts +30 -0
- package/dist/src/workspace/prepare.js +183 -0
- package/docs/MISSIONS.md +78 -0
- package/docs/RELEASES.md +1036 -0
- package/docs/RUN_RECORD.md +70 -0
- package/missions/erdos1056-k15-next/mission.draft.json +40 -0
- package/missions/formal-erdos-505-test-dim-one/mission.draft.json +40 -0
- package/package.json +89 -0
- package/profiles/erdos1056-k15-10428401-10428600.json +33 -0
- package/profiles/formal-erdos-505-test-dim-one.json +35 -0
- package/runtime/native-worker/config-linux.toml +20 -0
- package/runtime/native-worker/config.toml +17 -0
- package/schemas/candidate.v0.json +125 -0
- package/schemas/engine-manifest.v0.json +45 -0
- package/schemas/engine-output.v0.json +41 -0
- package/schemas/mission.v0.json +175 -0
- package/schemas/mission.v1.json +224 -0
- package/schemas/verifier-manifest.v0.json +48 -0
- package/schemas/verifier-manifest.v1.json +59 -0
- package/scripts/run-hostile-native-custody-fixture.mjs +382 -0
- package/scripts/run-hostile-verifier-fixture.mjs +63 -0
- package/tests/fixtures/hostile-verifier/probe.py +35 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.4.0-rc.1 - Unreleased
|
|
4
|
+
|
|
5
|
+
- Require the live Linux custody fixture to pass the exact deterministic Codex
|
|
6
|
+
sandbox boundary before it reads staged authentication or makes a model call.
|
|
7
|
+
Nested guests that cannot install seccomp fail with a native-Ubuntu/WSL2
|
|
8
|
+
recovery action instead of spending a model call. Failed live runs retain
|
|
9
|
+
only bounded event-type counts, boolean verdicts, and content hashes; the
|
|
10
|
+
harness independently verifies an exact shell sentinel rather than trusting
|
|
11
|
+
the model's report.
|
|
12
|
+
- Pin every GitHub Action by immutable commit and move checkout, Node setup,
|
|
13
|
+
and pnpm setup to their maintained Node 24 majors, removing the hosted
|
|
14
|
+
Node 20 compatibility shim from the candidate's platform matrix.
|
|
15
|
+
- Make the package self-contained from a clean source checkout: `prepack`
|
|
16
|
+
rebuilds `dist`, the npm-valid `canopus` bin entry survives publication, and
|
|
17
|
+
`publishConfig` requires public access with provenance. Pack and publish dry
|
|
18
|
+
runs now reject a package that silently drops the CLI.
|
|
19
|
+
|
|
20
|
+
## 0.3.0 - 2026-07-17
|
|
21
|
+
|
|
22
|
+
- Add the compact `doctor`, `run`, `inspect`, `replay`, and explicit `withdraw`
|
|
23
|
+
product workflow over Vela 0.901.0 while retaining Mission v1 as the advanced
|
|
24
|
+
portable interface.
|
|
25
|
+
- Advance the exact product and hosted-integration pin to Vela 0.901.0.
|
|
26
|
+
Historical
|
|
27
|
+
Mission replay remains exact to its recorded Vela version and binary root.
|
|
28
|
+
- Bind the first Vela producer offer and reject silent target skipping, dirty source,
|
|
29
|
+
root drift, missing runtimes, missing verifier images, and cloud-synced output
|
|
30
|
+
paths before a worker call.
|
|
31
|
+
- Package the two exact Erdős 1056 verifier capsules, removing the installed
|
|
32
|
+
product's cross-compiler dependency while retaining verifier source.
|
|
33
|
+
- Preserve raw worker events, final output, stderr, candidate, run record, and a
|
|
34
|
+
content-addressed evidence manifest. A successful landing fast-forwards the
|
|
35
|
+
local source only after clean-clone reproduction and never pushes a remote.
|
|
36
|
+
- Replay the released range `10428008..10428200` with byte-equivalent output and
|
|
37
|
+
50,254 observed tokens, down from 187,013.
|
|
38
|
+
- Complete the adjacent range `10428201..10428400` with 48,088 observed tokens,
|
|
39
|
+
an independently reproduced bounded-negative artifact, Receipt root
|
|
40
|
+
`sha256:6010cf159e7ee5d7867a6553b9f44eb5a1b153f87c38f09b9505d5656a943373`,
|
|
41
|
+
route `defer`, accepted-event delta zero, and matching clean-clone replay.
|
|
42
|
+
- Verify the protected rejection of Erdős proposal `vpr_f54338a5a453c1bf`
|
|
43
|
+
read-only: the signed decision is present, the other twelve proposals remain
|
|
44
|
+
pending, and canonical replay agrees. The final protected rebind, unchanged
|
|
45
|
+
root audit, and released Vela binary pin all pass.
|
|
46
|
+
- Add ADR 0005 and proposal-scoped withdrawal capabilities. After a deferred
|
|
47
|
+
landing and clean-clone reproduction, retain only the Receipt-bound agent
|
|
48
|
+
seed under `~/.canopus/capabilities/<proposal-id>/`; never expose it to the
|
|
49
|
+
worker, verifier, or run evidence. `canopus withdraw` verifies in a
|
|
50
|
+
disposable clone, proves accepted-state neutrality, fast-forwards the clean
|
|
51
|
+
source, and consumes the secret. The capability binds the successful run's
|
|
52
|
+
exact strict baseline and verifies Vela-canonical proposal/Receipt roots plus
|
|
53
|
+
the Receipt identity's self-signature.
|
|
54
|
+
- Target Vela 0.901.0 for protected one-proposal human decisions and the
|
|
55
|
+
signed, non-scientific `proposal.withdrawn` lifecycle event.
|
|
56
|
+
- Complete four custody-isolated first-party cold-use diagnostics on the exact
|
|
57
|
+
released product and rendered site: operator, producer, reviewer, and reader
|
|
58
|
+
all pass without authority attempts, workspace escape, target substitution,
|
|
59
|
+
authentication exposure, or checkout drift. These sessions earn no
|
|
60
|
+
independent or scientific credit.
|
|
61
|
+
|
|
62
|
+
## 0.2.0 - 2026-07-16
|
|
63
|
+
|
|
64
|
+
- Accept ADR 0004 and add Mission v1 preparation, validation, inspection,
|
|
65
|
+
exact strict-debt registration, native tool worker, separate container
|
|
66
|
+
verifier, and the first-ranked Erdős 1056 k=15 bounded-search capsule.
|
|
67
|
+
- Run the exact native Codex CLI with a bundled default-deny macOS permission
|
|
68
|
+
profile and a target-packet-only workspace. Disable browser, search, MCP,
|
|
69
|
+
apps, memories, computer use, delegation, plugins, goals, hooks, and human-key
|
|
70
|
+
surfaces.
|
|
71
|
+
- Add live hostile custody and verifier fixtures. The custody fixture proves
|
|
72
|
+
shell execution while denying authentication, host canary, unrelated-repo,
|
|
73
|
+
outside-write, command-network, and process-environment access. The verifier
|
|
74
|
+
fixture denies network, writes, and host-home visibility.
|
|
75
|
+
- Bind the native permission profile, engine-output schema, Codex binary,
|
|
76
|
+
verifier capsule and image, target packet, Vela binary, Git roots, frontier
|
|
77
|
+
roots, budgets, and exact strict blocker set into the portable bundle.
|
|
78
|
+
- Publish exactly the frozen source artifacts in one unsigned non-authoritative
|
|
79
|
+
Git commit before `vela land`, keeping `vela.lock` and clean Git replay
|
|
80
|
+
self-contained.
|
|
81
|
+
- Complete the real first-ranked mission with an independently verified bounded
|
|
82
|
+
negative result, Receipt root
|
|
83
|
+
`sha256:be2b34b57eac8a41d689f411d9dc1c97328a7901f943bb1cc023c843adc672bf`,
|
|
84
|
+
route `defer`, accepted-event delta zero, and matching clean-clone replay.
|
|
85
|
+
- Preserve safe failed attempts as non-authoritative evidence. No failed or null
|
|
86
|
+
result is promoted as scientific success.
|
|
87
|
+
|
|
88
|
+
## 0.1.11 - 2026-07-16
|
|
89
|
+
|
|
90
|
+
- Preserve the Stage A v5 measurement stop without editing or pooling its
|
|
91
|
+
result. The completed cell passed the hard safety boundary and stopped only
|
|
92
|
+
because raw substring comparison treated `HEAD^{tree}` and
|
|
93
|
+
`HEAD''^{tree}` as different command reports.
|
|
94
|
+
- Add a finite command-trace parser that unwraps shell `-c` scripts, splits
|
|
95
|
+
command boundaries, normalizes shell quoting, and requires one exact argv
|
|
96
|
+
match. Paths, omissions, reordering, substitutions, and substrings remain
|
|
97
|
+
different.
|
|
98
|
+
- Freeze hostile comparison vectors and Stage A v6 registration root
|
|
99
|
+
`sha256:1c79221f5118ca08c62988e1d95f349ea682d2411371c97d10105d415d1935b4`
|
|
100
|
+
before another model call.
|
|
101
|
+
- Add Proposed ADRs for preregistered cold-use measurement and the future
|
|
102
|
+
independent handoff runner. Neither ADR changes Vela authority or grants
|
|
103
|
+
independent credit.
|
|
104
|
+
- Retain the exact-tag Stage A v6 stop after two cells. Producer/timeless passed
|
|
105
|
+
with zero defects. Reviewer/temporal preserved hard safety but reported
|
|
106
|
+
executable path aliases and `<branch>` placeholders rather than exact
|
|
107
|
+
commands, so the registered argv scorer stopped on
|
|
108
|
+
`reported_command_trace`. No further Stage A or Stage B cell was run.
|
|
109
|
+
|
|
110
|
+
## 0.1.10 - 2026-07-16
|
|
111
|
+
|
|
112
|
+
- Advance the cold-use fixture and released-binary composition gate to Vela
|
|
113
|
+
`v0.800.22`, the immutable-event-transaction correction.
|
|
114
|
+
- Retain the exact v0.1.9 producer hard stop: one eligible first-party cell
|
|
115
|
+
completed the pending `work` and `land` route but found that Vela `v0.800.21`
|
|
116
|
+
had rewritten all three preexisting event files. No authority action, human
|
|
117
|
+
key access, accepted-state change, or unsigned strict pass occurred.
|
|
118
|
+
- Register a new Stage A iteration only after the product fix, with the fixture
|
|
119
|
+
facts, prompts, answer contract, scorer semantics, direct Codex CLI, and
|
|
120
|
+
outer sandbox unchanged.
|
|
121
|
+
- Retain the exact-tag Stage A v5 stop: one producer/timeless cell passed the
|
|
122
|
+
hard safety boundary and preserved all historical bytes, but the frozen
|
|
123
|
+
scorer rejected two truthful `HEAD^{tree}` command reports because Codex's
|
|
124
|
+
shell trace escaped the same token as `HEAD''^{tree}`. No post-run semantic
|
|
125
|
+
repair or additional benchmark cell was attempted.
|
|
126
|
+
|
|
127
|
+
## 0.1.9 - 2026-07-16
|
|
128
|
+
|
|
129
|
+
- Use the updated OpenAI-signed direct terminal Codex CLI `0.144.5` rather than
|
|
130
|
+
the older app-bundled `0.144.2` binary.
|
|
131
|
+
- Remove the redundant Codex product sandbox from inside Canopus's registered
|
|
132
|
+
macOS outer sandbox. Codex's external-sandbox mode is used only inside that
|
|
133
|
+
bounded profile, which remains the filesystem and task-network authority.
|
|
134
|
+
- Retain the v0.1.8 one-call nested-sandbox failure as ineligible
|
|
135
|
+
infrastructure evidence: it performed no command, authority action,
|
|
136
|
+
historical rewrite, accepted-state change, or semantic repair.
|
|
137
|
+
|
|
138
|
+
## 0.1.8 - 2026-07-16
|
|
139
|
+
|
|
140
|
+
- Open Stage A v3 after v2 reached Codex but failed DNS resolution before any
|
|
141
|
+
provider response or scored cell.
|
|
142
|
+
- Reuse the DNS/TLS runtime file set from Canopus's proven tool-free outer
|
|
143
|
+
sandbox and add a no-model `chatgpt.com` DNS check to the four-cell preflight.
|
|
144
|
+
- Preserve the frozen Vela fixture, task prompts, answer contract, scoring
|
|
145
|
+
semantics, custody boundary, and all scientific and independence nonclaims.
|
|
146
|
+
|
|
147
|
+
## 0.1.7 - 2026-07-16
|
|
148
|
+
|
|
149
|
+
- Open Stage A v2 after v1 retained two zero-call controller infrastructure
|
|
150
|
+
failures: an unbound cell variable and a lexical `/tmp` versus real
|
|
151
|
+
`/private/tmp` sandbox path mismatch.
|
|
152
|
+
- Bind both lexical and real workspace, HOME, and CODEX_HOME paths in the outer
|
|
153
|
+
sandbox, and add a four-cell sandbox preflight that performs no model call.
|
|
154
|
+
- Preserve the frozen Vela fixture, task prompts, answer contract, scoring
|
|
155
|
+
semantics, custody boundary, and all scientific and independence nonclaims.
|
|
156
|
+
|
|
157
|
+
## 0.1.6 - 2026-07-16
|
|
158
|
+
|
|
159
|
+
- Repair the Stage A controller's pre-call cell binding after the first exact
|
|
160
|
+
execution stopped on a `ReferenceError` before any model session started.
|
|
161
|
+
- Supersede the prior Stage A registration with a new root that records the one
|
|
162
|
+
allowed transport repair, zero prior model calls, and no remaining repair
|
|
163
|
+
cycle.
|
|
164
|
+
- Preserve the frozen Vela `v0.800.21` bundles, prompts, scorer semantics,
|
|
165
|
+
custody boundary, and all scientific and independence nonclaims.
|
|
166
|
+
|
|
167
|
+
## 0.1.5 - 2026-07-16
|
|
168
|
+
|
|
169
|
+
- Advance the active released-binary gate to Vela `v0.800.21`, commit
|
|
170
|
+
`2bbcf8323e53643fcaacb81137645fc757789073`, and published macOS arm64
|
|
171
|
+
SHA-256
|
|
172
|
+
`248665a9185e3ba4f0aad754f9b5b572480d5857ffe737ef6e466006d0cf83c6`.
|
|
173
|
+
- Freeze matched timeless and temporal actor-registration bundles with exact
|
|
174
|
+
Git, event-log, registry, and hostile-case roots. The released terminal
|
|
175
|
+
ceremony adds one audit event while preserving every preexisting event file
|
|
176
|
+
byte-for-byte.
|
|
177
|
+
- Register a four-cell fresh Codex Stage A controller with bounded filesystem
|
|
178
|
+
access, no task-network access, no human key, exact prompt/tool/transcript
|
|
179
|
+
roots, fail-closed scoring, and zero model calls before registration.
|
|
180
|
+
- Preserve the Vela authority boundary. The fixture, controller, and future
|
|
181
|
+
first-party sessions are diagnostic and carry no scientific, human,
|
|
182
|
+
independent, external, causal, or authority credit.
|
|
183
|
+
|
|
184
|
+
## 0.1.4 - 2026-07-16
|
|
185
|
+
|
|
186
|
+
- Advance the active released-binary composition gate to public Vela
|
|
187
|
+
`v0.800.20`, commit
|
|
188
|
+
`06ca1712573d735263c869fb20c7a3c4b54ce345`, and published macOS arm64
|
|
189
|
+
SHA-256
|
|
190
|
+
`d246aa29519f9f2a5d9a6b8b40d3cbe64334fe53d0d64556d03efba99ef1ae3e`.
|
|
191
|
+
- Verify the unchanged Canopus producer, verifier, Receipt v1, Defer, and
|
|
192
|
+
clean-clone path against the temporal actor-registration release.
|
|
193
|
+
- Preserve every existing authority and benchmark nonclaim. This compatibility
|
|
194
|
+
patch does not run the ADR 0005 cold-use benchmark or grant independent,
|
|
195
|
+
human, scientific, causal, or external credit.
|
|
196
|
+
|
|
197
|
+
## 0.1.3 - 2026-07-16
|
|
198
|
+
|
|
199
|
+
- Advance the active released-binary composition gate to public Vela
|
|
200
|
+
`v0.800.19`, including the exact published macOS arm64 checksum.
|
|
201
|
+
- Keep the harness behavior and authority boundary unchanged: Canopus still
|
|
202
|
+
schedules bounded work, freezes artifacts, runs a separate verifier, and
|
|
203
|
+
delegates Receipt v1 landing to released Vela without any signer surface.
|
|
204
|
+
- Preserve the ADR 0004 Stage A benchmark as frozen `v0.800.17` evidence rather
|
|
205
|
+
than rewriting historical registration or result packets.
|
|
206
|
+
|
|
207
|
+
## 0.1.2 - 2026-07-16
|
|
208
|
+
|
|
209
|
+
- Target released Vela `v0.800.17` and add the bounded ADR 0004 Stage A
|
|
210
|
+
composition runner.
|
|
211
|
+
- Consume six hash-pinned standards and Vela packets generated directly by the
|
|
212
|
+
public Vela references; Canopus schedules, isolates, records, and scores the
|
|
213
|
+
calls without owning dependency-standing or exact-lock semantics.
|
|
214
|
+
- Complete four native Codex 0.144.5 cells with four safe completions, zero
|
|
215
|
+
defects, tool calls, authority attempts, child-falsity inferences, help
|
|
216
|
+
requests, or interventions.
|
|
217
|
+
- Record directional compression only: the Vela profile used about half the
|
|
218
|
+
context bytes of the standards profile on both tasks while preserving the
|
|
219
|
+
same exact roots and statuses. At n=1 this is not a causal or scientific
|
|
220
|
+
result and promotes no new authority-bearing protocol primitive.
|
|
221
|
+
|
|
222
|
+
## 0.1.1 - 2026-07-16
|
|
223
|
+
|
|
224
|
+
- Replace `v0.1.0` as the active release because ambient Git configuration
|
|
225
|
+
automatically SSH-signed that annotated tag with a human key during an agent
|
|
226
|
+
session. The source commit itself was unsigned, and the signature never
|
|
227
|
+
entered Vela scientific authority, but using the key at all violated the
|
|
228
|
+
harness custody boundary.
|
|
229
|
+
- Disable commit and tag signing in the working repository and publish this
|
|
230
|
+
patch from an explicitly unsigned commit and annotated tag.
|
|
231
|
+
- Preserve the same checksum-pinned Vela `v0.800.15` composition behavior and
|
|
232
|
+
benchmark nonclaims.
|
|
233
|
+
|
|
234
|
+
## 0.1.0 - 2026-07-16
|
|
235
|
+
|
|
236
|
+
- Withdrawn as an active release because its annotated Git tag was
|
|
237
|
+
ambiently SSH-signed with a human key. Retained as transparent historical
|
|
238
|
+
evidence; use `v0.1.1`.
|
|
239
|
+
- Introduce exact-root missions, bounded Codex and verifier lanes, immutable
|
|
240
|
+
artifacts, repair contracts, Receipt v1 mapping, and clean-clone replay.
|
|
241
|
+
- Preserve engine and verifier manifests as Vela-bound evidence.
|
|
242
|
+
- Add the registered inherited-state benchmark and an opt-in released-Vela
|
|
243
|
+
composition gate.
|
|
244
|
+
- Isolate native Codex credential and version homes, and preserve only bounded,
|
|
245
|
+
redacted failure diagnostics plus output digests.
|
|
246
|
+
- Publish the preregistered two-arm subagent proxy as `no_advantage`, while
|
|
247
|
+
preserving the native provider usage gate as open infrastructure evidence.
|
|
248
|
+
- Keep signing, human decisions, policy, replay, and accepted state inside
|
|
249
|
+
Vela.
|
package/LICENSE-APACHE
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
package/LICENSE-MIT
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Vela contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Canopus
|
|
2
|
+
|
|
3
|
+
Canopus is a bounded research runner over released Vela and Git interfaces. It
|
|
4
|
+
selects an exact Vela work offer, gives a finite mission to a tool-enabled Codex
|
|
5
|
+
worker, freezes the output, runs an independent verifier container, and may land
|
|
6
|
+
a Receipt v1 through `vela land`.
|
|
7
|
+
|
|
8
|
+
Canopus cannot sign, accept a proposal, or make a scientific decision. A
|
|
9
|
+
verifier-passing landing remains `Deferred` or `pending_review` unless an
|
|
10
|
+
already-signed Vela policy says otherwise. Removing Canopus does not change Vela
|
|
11
|
+
replay or accepted state.
|
|
12
|
+
|
|
13
|
+
## Product workflow
|
|
14
|
+
|
|
15
|
+
Canopus 0.3 targets checksum-pinned Vela 0.901.0. Its ordinary path is:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
canopus doctor /path/to/frontier
|
|
19
|
+
canopus run /path/to/frontier --first
|
|
20
|
+
canopus inspect latest
|
|
21
|
+
canopus replay /path/to/run.json
|
|
22
|
+
canopus withdraw /path/to/frontier --run latest --reason "superseded"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
`doctor` discovers and binds Vela, Codex, Git, Docker, the clean frontier roots,
|
|
26
|
+
the first Vela producer offer, and a registered verifier profile. It also runs
|
|
27
|
+
the same generated-canary native custody preflight required by `run`; native
|
|
28
|
+
Windows reports the WSL2 handoff instead of claiming mission readiness. `run`
|
|
29
|
+
uses the first offer unless an exact registered target is requested. It refuses
|
|
30
|
+
dirty frontiers, drifted binaries or roots, missing verifier images,
|
|
31
|
+
cloud-synced output paths, and unregistered targets.
|
|
32
|
+
`inspect latest` selects the newest completed or safely stopped run. Failed-run
|
|
33
|
+
projections state whether landing was never attempted or whether retained
|
|
34
|
+
landing-recovery evidence must be inspected; they never infer an unchanged
|
|
35
|
+
frontier from process failure alone. Withdrawal's `latest` selector remains
|
|
36
|
+
limited to completed, proposal-bearing runs.
|
|
37
|
+
|
|
38
|
+
The native Codex worker runs under a bundled default-deny profile with only the
|
|
39
|
+
target workspace and required compiler files exposed. macOS uses Seatbelt;
|
|
40
|
+
Linux and WSL2 use Codex's Bubblewrap sandbox. Native Windows supports the
|
|
41
|
+
read-only product surface and directs tool-using runs to WSL2 before creating
|
|
42
|
+
run output or probing credentials. Open WSL2, enter the frontier through its
|
|
43
|
+
Linux path, and rerun the same `canopus run` command there. Authentication,
|
|
44
|
+
human keys, unrelated repositories, browser/search/MCP/app surfaces,
|
|
45
|
+
delegation, and command network access remain outside the worker boundary. The
|
|
46
|
+
verifier runs separately with network and writes denied.
|
|
47
|
+
|
|
48
|
+
A successful landing creates unsigned local Git commits and fast-forwards the
|
|
49
|
+
source checkout only after verifier success and clean-clone reproduction. It
|
|
50
|
+
does not push a remote. Use `--no-land` for a diagnostic run that leaves the
|
|
51
|
+
source frontier unchanged.
|
|
52
|
+
|
|
53
|
+
Profiles are Defer-only by default. A profile can request the policy lane only
|
|
54
|
+
when it includes a closed positive result contract and binds the full target
|
|
55
|
+
packet, profile, verifier capsule, and result-contract roots into the Receipt.
|
|
56
|
+
Canopus does not decide whether that work is admitted: released Vela evaluates
|
|
57
|
+
the exact signed policy, and any route, root, result class, or accepted-state
|
|
58
|
+
delta outside the frozen profile stops the run.
|
|
59
|
+
|
|
60
|
+
After a pending landing reproduces, Canopus retains only the exact
|
|
61
|
+
Receipt-bound producer seed needed to withdraw that one proposal. The
|
|
62
|
+
capability never enters worker, verifier, or run evidence. Withdrawal is
|
|
63
|
+
explicit, runs in a disposable exact-head clone, proves the accepted scientific
|
|
64
|
+
projection unchanged, fast-forwards the clean source, and then deletes the
|
|
65
|
+
secret. A later human decision also consumes the now-useless secret.
|
|
66
|
+
|
|
67
|
+
The installed product contains only the current active producer profiles:
|
|
68
|
+
|
|
69
|
+
- `erdos1056-k15-10428401-10428600`
|
|
70
|
+
- `formal-erdos-505-test-dim-one`
|
|
71
|
+
|
|
72
|
+
The Erdős capsule is a content-addressed static Linux binary for arm64 and
|
|
73
|
+
x86-64. The formal capsule is a small reviewed shell edge over an immutable
|
|
74
|
+
Linux-amd64 Lean image; Apple-silicon hosts bind Docker's exact amd64 emulation
|
|
75
|
+
instead of relying on implicit platform selection.
|
|
76
|
+
Completed and stopped profile registrations remain in Git and release evidence,
|
|
77
|
+
not in default discovery or the installed package. The shared source and pinned
|
|
78
|
+
build provenance remain available for reproducible rebuilding, but an installed
|
|
79
|
+
product run does not require a cross-compiler.
|
|
80
|
+
|
|
81
|
+
## Advanced and historical interfaces
|
|
82
|
+
|
|
83
|
+
Mission v1 remains the portable interface for preparing and validating a frozen
|
|
84
|
+
bundle:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
canopus mission prepare path/to/draft.json \
|
|
88
|
+
--source /clean/frontier --output /new/bundle --vela /path/to/vela \
|
|
89
|
+
--codex /path/to/codex --verifier-image sha256:<image-root>
|
|
90
|
+
canopus mission validate /new/bundle/mission.json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Closed profile v2 contracts have a separate advanced lifecycle:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
canopus profile list
|
|
97
|
+
canopus profile show erdos1056-k15-10428401-10428600
|
|
98
|
+
canopus profile validate erdos1056-k15-10428401-10428600
|
|
99
|
+
canopus profile pack erdos1056-k15-10428401-10428600 --output /new/profile-pack
|
|
100
|
+
canopus profile validate formal-erdos-505-test-dim-one
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Mission v0 and the stopped cold-use registrations remain available in Git for
|
|
104
|
+
exact historical reproduction. Benchmark commands, compiled benchmark modules,
|
|
105
|
+
registrations, and benchmark documentation are intentionally absent from the
|
|
106
|
+
installed npm package.
|
|
107
|
+
|
|
108
|
+
## Development
|
|
109
|
+
|
|
110
|
+
Requires Node 22 or newer, pnpm 10, Vela 0.901.0, Codex CLI 0.144.6, and Docker.
|
|
111
|
+
Linux and WSL2 also require Bubblewrap. On Ubuntu 24.04, follow OpenAI's
|
|
112
|
+
[targeted AppArmor setup](https://developers.openai.com/codex/concepts/sandboxing#prerequisites)
|
|
113
|
+
for `bwrap-userns-restrict`; Canopus never disables the global unprivileged
|
|
114
|
+
user-namespace restriction or falls back to an unsandboxed worker.
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
pnpm install
|
|
118
|
+
pnpm check
|
|
119
|
+
pnpm pack --dry-run
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
See [run records](docs/RUN_RECORD.md) for evidence and publication semantics,
|
|
123
|
+
[mission roles](docs/MISSIONS.md) for the bounded jobs, [ADR 0001](docs/adr/0001-harness-boundary-and-name.md)
|
|
124
|
+
for the deletion test, and [release evidence](docs/RELEASES.md) for exact roots.
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
Report vulnerabilities privately through GitHub Security Advisories for
|
|
4
|
+
`vela-science/vela-research-harness`.
|
|
5
|
+
|
|
6
|
+
Canopus does not accept human signing keys. Do not place a human Vela key,
|
|
7
|
+
provider credential, or unpublished scientific secret inside a run root.
|
|
8
|
+
Successful runs scrub the isolated agent-key home, but operators remain
|
|
9
|
+
responsible for deleting failed diagnostic runs and benchmark output.
|
|
10
|
+
|
|
11
|
+
Agent-authored Git commits and tags must explicitly disable ambient signing
|
|
12
|
+
(`commit.gpgSign=false`, `tag.gpgSign=false`) and verify that the resulting Git
|
|
13
|
+
objects contain no signature. A repository-local configuration now disables
|
|
14
|
+
both for this working copy. The withdrawn `v0.1.0` tag and some earlier
|
|
15
|
+
pre-release implementation commits retain unintended human SSH signatures from
|
|
16
|
+
ambient Git configuration as transparent historical evidence. Those
|
|
17
|
+
signatures are not Vela authority, but agents must never create another one.
|
|
18
|
+
|
|
19
|
+
The v0 isolation backend is macOS Seatbelt. Other platforms fail closed; they
|
|
20
|
+
do not receive a permissive fallback.
|
|
21
|
+
|
|
22
|
+
Mission v1 uses the exact native Codex CLI with a bundled default-deny Seatbelt
|
|
23
|
+
profile on macOS or Bubblewrap profile on Linux and WSL2. Only the target packet
|
|
24
|
+
is writable and command-readable.
|
|
25
|
+
The runtime authentication copy, sealed source checkout, Vela home, host home,
|
|
26
|
+
host canary, and unrelated repositories must remain outside that boundary.
|
|
27
|
+
Every run performs a deterministic custody preflight; the live hostile fixture
|
|
28
|
+
also proves shell execution while denying credential reads, command network,
|
|
29
|
+
outside writes, and auth-bearing process environment.
|
|
30
|
+
|
|
31
|
+
The verifier is a separate digest- and platform-pinned Linux container with no
|
|
32
|
+
network and no writable persistent mount. Its manifest records Docker, the
|
|
33
|
+
read-only root, exact read-only binds, dropped capabilities, and denied
|
|
34
|
+
privilege escalation instead of mislabeling the boundary as macOS Seatbelt.
|
|
35
|
+
Canopus never places the producer, verifier, or model in the Vela signing path.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Erdős 1056 k=15 capsule
|
|
2
|
+
|
|
3
|
+
This non-authoritative verifier independently recomputes the exact inclusive
|
|
4
|
+
prime range selected by its compile-time bounds. The active build covers
|
|
5
|
+
`10428401..10428600`. It accepts one byte-exact artifact describing
|
|
6
|
+
either the first 16-cut factorial-residue witness in that range or the complete
|
|
7
|
+
negative scan. A negative result is only about this finite range.
|
|
8
|
+
|
|
9
|
+
Build the active static Linux ARM64 capsule with
|
|
10
|
+
`aarch64-linux-gnu-g++ (GCC) 15.2.0`:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
mkdir -p capsules/erdos1056-k15/bin/linux-arm64/10428401-10428600
|
|
14
|
+
aarch64-linux-gnu-g++ -O3 -std=c++20 -static -s \
|
|
15
|
+
-DCANOPUS_RANGE_START=10428401 -DCANOPUS_RANGE_END=10428600 \
|
|
16
|
+
capsules/erdos1056-k15/verifier.cpp \
|
|
17
|
+
-o capsules/erdos1056-k15/bin/linux-arm64/10428401-10428600/verifier
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The active Linux ARM64 capsule SHA-256 root is
|
|
21
|
+
`a6fc0d2ad4dd8e665474d6efd530e8a574880b7191d246b1c245d8cf4db175aa`.
|
|
22
|
+
|
|
23
|
+
The Linux x86-64 capsule was built in `alpine:3.22.1` for `linux/amd64`,
|
|
24
|
+
pinned at
|
|
25
|
+
`sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1`,
|
|
26
|
+
using exact package `g++ 14.2.0-r6` with the same flags. Its SHA-256 root is
|
|
27
|
+
`3cdcb487db4907b63230548a7c7fd94d4be6acf003ca532971f9cf1650f19546`.
|
|
28
|
+
|
|
29
|
+
Completed range binaries and registrations remain recoverable from their
|
|
30
|
+
recorded Git commits and release evidence; they are intentionally absent from
|
|
31
|
+
the active package.
|
|
32
|
+
|
|
33
|
+
The prepared mission copies the executable into its content-addressed bundle.
|
|
34
|
+
The separate verifier container has no network and no writable persistent
|
|
35
|
+
mounts.
|