@vela-science/canopus 0.4.4 → 0.4.6

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/BUILD_WEEK.md CHANGED
@@ -9,114 +9,115 @@
9
9
  - **Repository:** <https://github.com/vela-science/vela-research-harness>
10
10
  - **Live evidence:** <https://app.vela.space/build-week>
11
11
 
12
- The OpenAI Build Week submission period began July 13, 2026 at 9:00 a.m.
13
- Pacific and ends July 21, 2026 at 5:00 p.m. Pacific. Canopus did not exist at
14
- the start of that period. Its first commit,
12
+ The submission period began July 13, 2026 at 9:00 a.m. Pacific and ends July
13
+ 21 at 5:00 p.m. Pacific. Canopus did not exist at the start. Its first commit,
15
14
  `9d95924f27842ceb14a45bb0ecaf5a777c3b2736`, was created July 15 at 11:05
16
15
  p.m. Toronto time.
17
16
 
18
17
  ## Baseline and Build Week delta
19
18
 
20
- The pre-existing substrate is distinguished from the submitted work:
21
-
22
- | Repository or layer | Submission-period baseline | Build Week contribution |
19
+ | Layer | Submission-period baseline | Build Week contribution |
23
20
  | --- | --- | --- |
24
- | Canopus | none | Entire bounded runner, custody boundary, verifier separation, npm package, retained runs, public projection, and advisory audit |
25
- | Vela protocol | `26386aef9126594c27888d511b76ad65a8d56870` | Released Vela 0.910.0 is consumed through existing public interfaces; Canopus changes no protocol, Receipt, policy, or authority primitive |
26
- | Erdős frontier | `a143c351f8488e0c621598307e248373d9dc3374` | Retains the exact bounded 1056 artifact, Receipt, Defer proposal, and replayable final commit used by the demo |
27
- | Vela Observatory | `37eca05ae3bc1e2f2832ed99c58ba9fdc4bd1787` | Adds a pinned public-run type, retained-run detail route, and stable anonymous `/build-week` evidence page |
28
-
29
- Canopus releases `0.1.0` through `0.4.3` and their dated commits were all made
30
- during the submission period. Version `0.4.4` advances the product and CI pin
31
- to Vela 0.910.0, adds the GPT-5.6 formal registration, preserves the exact
32
- GPT-5.4 registration from `v0.4.3`, and adds the sanitized public projection
33
- and claim-fidelity fallback.
34
-
35
- ## Exact evidence used by the submission
36
-
37
- ### Retained bounded research result
38
-
39
- The successful research example is the existing Canopus Erdős 1056 run. Its
40
- worker used GPT-5.4; the separate Build Week advisory below is the GPT-5.6
41
- addition over its immutable evidence.
42
-
43
- - Run: `run_eb6bcd46-cffd-4ae8-b630-2681bd84da71`
44
- - Mission: `mission_erdos1056_k15_range_10428401_10428600_native1`
45
- - Target: `erdos:1056`
46
- - Activity: worker success; verifier pass; clean-clone replay matched
47
- - Bounded range: `10428401..10428600`; 15 primes tested
48
- - Maximum multiplicity: 12 at `p=10428581`, residue `5141590`
49
- - Artifact root: `sha256:79370d5243095f28e65c218f3d5dc4710802e4dbe462fcfff1a35a8697a6f225`
50
- - Verifier root: `sha256:6d3f61b9111fde87d57340404ad5b7561a4aa777ce54c8bf639d081c216cb165`
51
- - Receipt root: `sha256:263506aae0144fb2aa4784ff9c145c6c41886b2956191c6458214cedd0bfd4aa`
21
+ | Canopus | none | Entire bounded runner, worker custody boundary, verifier separation, npm package, retained runs, public projection, and evidence workflow |
22
+ | Vela protocol | `26386aef9126594c27888d511b76ad65a8d56870` | Released Vela 0.910.0 is consumed without changing its protocol, Receipt, policy, or authority interfaces |
23
+ | Sidon frontier | `5f138a51a6c8723d5a85ff0ffc265728c2c33c6e` | A root-bound GPT-5.6 target, a new 7,194-point witness, frozen verification, Receipt, Defer proposal, and replayable final commit |
24
+ | Vela Observatory | `37eca05ae3bc1e2f2832ed99c58ba9fdc4bd1787` | A pinned public-run type, retained-run detail route, and stable anonymous `/build-week` evidence page |
25
+
26
+ Canopus versions `0.1.0` through `0.4.6` were built during the submission
27
+ period. Version `0.4.6` adds the successful GPT-5.6 Sidon profile and evidence,
28
+ secure workspace-backed artifact retention, and the exact private Vela work
29
+ session handoff required to carry a large scientific artifact through Defer.
30
+
31
+ ## Primary GPT-5.6 scientific result
32
+
33
+ ### What is new
34
+
35
+ GPT-5.6 found an explicit Sidon subset of `{0,1}^24` with **7,194 points**.
36
+ Every one of its `7,194 × 7,195 / 2 = 25,880,415` unordered componentwise
37
+ integer pair sums is distinct. This advances the repository's mechanically
38
+ verified but unaccepted 7,193-point seed by one point, establishing the bounded
39
+ candidate lower bound `a(24) ≥ 7,194`. The accepted Vela state remains at its
40
+ prior human-authorized lower bound; the new result is pending review.
41
+
42
+ The discovery occurred in bounded run
43
+ `run_230412bc-01f4-4805-9152-7fc8f8a5b8e0`. GPT-5.6 designed and executed an
44
+ exact exchange search, removed zero-based baseline point 72, and added the
45
+ 24-bit points `970f25` and `246891`. It independently enumerated all
46
+ 25,880,415 sums. That run then failed closed because the 359 KB artifact
47
+ remained in its transient worker workspace instead of crossing the artifact
48
+ freeze boundary. It produced no Receipt and changed no frontier state.
49
+
50
+ Canopus `0.4.6` repairs that product boundary without widening custody. A
51
+ workspace-backed artifact is accepted only from its exact allowlisted path,
52
+ must remain inside the sealed worker workspace, must be one regular singly
53
+ linked file, must fit the mission byte budget, must be valid UTF-8, and is
54
+ scanned for authentication material before being frozen. Symlinks, hardlinks,
55
+ escapes, missing or empty files, invalid bytes, oversize files, and unrelated
56
+ Git changes fail closed.
57
+
58
+ ### Completed primary run
59
+
60
+ - Run: `run_f68e4cfc-e5c7-4c73-86cb-d79807c47ec4`
61
+ - Mission: `mission_sidon_a24_at_least_7194_gpt56_v3`
62
+ - Profile: `sidon-a24-at-least-7194-gpt56-v3`
63
+ - Model: `gpt-5.6-sol`
64
+ - Target packet root: `sha256:09977a08357cbe240c5a7f5c3ea8e5c7055d6b5d71bcfb5f947b49accee1a3a8`
65
+ - Profile root: `sha256:3b529df4304b96890cdd7eed5f90fd862422b8b1e7b4da1cef0a478e6e7cdebe`
66
+ - Worker: success
67
+ - Artifact: 359,754 bytes at `sha256:878b05e01dbc4a785e5a671f977509f0bb338dfcb58ac53bf03d47bf6465f01e`
68
+ - Frozen verifier: pass in a network-denied, read-only Linux capsule
69
+ - Verifier root: `sha256:89130864b3ca4f354673416d4352616265b1e3dc25147a4ae91bbbf3874fbff8`
70
+ - Receipt root: `sha256:91b9f0c72e2934d3f98a34de93b61a168c8a9ff560a18a63ff4a1ee6ae2f897c`
71
+ - Evidence root: `sha256:072d5d45501fdf4fdae0481230e8b61536afbd4b02a097360bf9583a4c993a56`
72
+ - Proposal: `vpr_491cc97cfdfe98ff`
52
73
  - Route: `defer`
53
74
  - Accepted-state delta: `0`
54
- - Final frontier commit: `807f0a8f770cfed05ac0dff00b952dc41052a720`
55
- - Public projection root: `sha256:056d7a3d9ba8d5fb682b6271e73616bff72cd9fa11f62f1ac93d76e89a699350`
75
+ - Clean-clone replay: matched
76
+ - Final frontier commit: `4289e05876f142e72af622672e190be26f6a6f1d`
77
+ - Usage: 105,553 observed tokens, 88.131 seconds, 7 research processes, 1 attempt
78
+ - Public projection root: `sha256:cf2c2ed8d54f68b8adca94f25f7ff2adcb39501fb2e68fa0b5640403dba5266e`
56
79
 
57
- The generated, sanitized projection is
58
- [`evidence/build-week/run_eb6bcd46-cffd-4ae8-b630-2681bd84da71.public.json`](evidence/build-week/run_eb6bcd46-cffd-4ae8-b630-2681bd84da71.public.json).
80
+ The generated sanitized projection is
81
+ [`evidence/build-week/run_f68e4cfc-e5c7-4c73-86cb-d79807c47ec4.public.json`](evidence/build-week/run_f68e4cfc-e5c7-4c73-86cb-d79807c47ec4.public.json).
59
82
  It contains no raw worker events, isolated home, authentication, private path,
60
83
  or unrestricted log.
61
84
 
62
- ### GPT-5.6 claim-fidelity advisory
63
-
64
- The fallback registration uses `gpt-5.6-sol` once, without tools, over the
65
- immutable run, artifact, and five final Vela roots. Deterministic replay binds
66
- the schema, roots, artifact, and numeric correspondences. Language and
67
- publication recommendations are explicitly labeled `model_assessment`.
68
-
69
- - Registration: `erdos1056-run-eb6b-claim-fidelity-gpt56`
70
- - Registration root: `sha256:371390871e1a371207e3de797e45989e84bbb766e07afdab5d47fdb3536f2c1b`
71
- - Output-schema root: `sha256:874c61b6fbd44a2bcb68cde8b5a9a89b74f6d00f3d9a9723cb67c682bd64e045`
72
- - Assessment root: `sha256:9205390df001a428b4b3e2fbb0a855e9f1061754b3f87771a85fc7328824ed1f`
73
- - Deterministic checks: source run, all five roots, artifact root, all six
74
- numeric correspondences, and the verifier/acceptance distinction pass
75
- - Model assessment: no universal claim; no “solved” language; publishable only
76
- with the bounded-result and non-acceptance caveats
77
- - Scientific state landed: `false`
78
-
79
- See the [registration](advisories/erdos1056-claim-fidelity/registration.json),
80
- [assessment](advisories/erdos1056-claim-fidelity/results/assessment.json), and
81
- [verification](advisories/erdos1056-claim-fidelity/results/verification.json).
82
-
83
- ### Formal GPT-5.6 fail-closed case
84
-
85
- The active `formal-erdos-505-test-dim-one-gpt56` profile binds
86
- `gpt-5.6-sol`, profile root
87
- `sha256:e2330e477bdab48aede90512b4cf3f86cccda5fa014b4e64edfed23797f8e254`,
88
- the frozen Lean 4.27.0 capsule, one proof-term artifact, expected route Defer,
89
- and maximum accepted-state delta zero.
90
-
91
- The preregistered attempt `run_4c2ba5f5-04ac-44d5-adb6-8937eb2ea165`
92
- produced candidate root
93
- `sha256:ef81cbf548d8a08e3811f0aa070b6ce0d58b52792f0bb56b5584dd806da4cb30`.
94
- The frozen verifier rejected an unsolved one-dimensional inverse goal and
95
- reported `sorryAx`, with stdout root
96
- `sha256:04e31b07889f94a1d205231942bf30fa6c3b27864520b6a42de58604da53e544`.
97
- Canopus stopped before landing. There is no Receipt, proposal, policy route,
98
- accepted-state delta, Git commit, or frontier mutation for this attempt. The
99
- raw failure directory is intentionally not published.
85
+ ## Secondary evidence
86
+
87
+ The earlier retained Erdős 1056 run remains a useful bounded-research example:
88
+
89
+ - Run `run_eb6bcd46-cffd-4ae8-b630-2681bd84da71`
90
+ - Artifact root `sha256:79370d5243095f28e65c218f3d5dc4710802e4dbe462fcfff1a35a8697a6f225`
91
+ - Verifier pass, Receipt `sha256:263506aae0144fb2aa4784ff9c145c6c41886b2956191c6458214cedd0bfd4aa`, Defer, accepted delta zero, and matched replay
92
+
93
+ The GPT-5.6 claim-fidelity advisory over that immutable run also remains
94
+ published as a non-authoritative `model_assessment`. Its deterministic checks
95
+ bind the source run, all five roots, artifact, numeric correspondences, and the
96
+ verifier-versus-acceptance distinction. It was not landed as scientific state.
97
+
98
+ The formal profile `formal-erdos-505-test-dim-one-gpt56` supplies the public
99
+ fail-closed counterexample. Run
100
+ `run_4c2ba5f5-04ac-44d5-adb6-8937eb2ea165` produced a candidate, but the
101
+ frozen Lean verifier rejected an unsolved inverse goal and `sorryAx`. Canopus
102
+ stopped before Receipt creation or frontier mutation.
100
103
 
101
104
  ## Reproduce without rebuilding Canopus
102
105
 
103
- The retained scientific-state transition needs only released Vela and the
104
- public frontier:
106
+ The primary state transition needs released Vela and the public frontier:
105
107
 
106
108
  ```bash
107
- git clone https://github.com/vela-science/erdos-frontier.git
108
- cd erdos-frontier
109
- git checkout 807f0a8f770cfed05ac0dff00b952dc41052a720
109
+ git clone https://github.com/vela-science/sidon-frontier.git
110
+ cd sidon-frontier
111
+ git checkout 4289e05876f142e72af622672e190be26f6a6f1d
110
112
  vela reproduce .
111
113
  ```
112
114
 
113
- To inspect the packaged product under Node 22 or 24 without rebuilding:
115
+ Inspect the packaged product under Node 22 or 24:
114
116
 
115
117
  ```bash
116
- npm install --global @vela-science/canopus@0.4.4
118
+ npm install --global @vela-science/canopus@0.4.6
117
119
  canopus --version
118
- canopus profile list
119
- canopus profile validate formal-erdos-505-test-dim-one-gpt56
120
+ canopus profile validate sidon-a24-at-least-7194-gpt56-v3
120
121
  ```
121
122
 
122
123
  Supported tool-using worker platforms are macOS arm64 and Linux x86-64,
@@ -125,27 +126,24 @@ replay surface and directs tool-using work into WSL2.
125
126
 
126
127
  ## Codex collaboration and human decisions
127
128
 
128
- Codex implemented and tested the harness, custody profiles, verifier routing,
129
- release automation, Vela 0.910.0 compatibility, public projection, GPT-5.6
130
- advisory, and evidence surface. The main Build Week completion task also used
131
- Codex to audit the live GitHub organization, verify official submission rules,
132
- run the exact custody preflight, execute the preregistered formal attempt, and
133
- diagnose its fail-closed result.
129
+ Codex implemented and tested Canopus, its custody profiles, verifier routing,
130
+ release automation, Vela 0.910.0 compatibility, public projection, and
131
+ evidence surface. In the primary task, Codex also registered the GPT-5.6 Sidon
132
+ mission, diagnosed two fail-closed handoff defects, implemented bounded
133
+ artifact retention, reran all gates, executed the completed mission, and
134
+ published the resulting pending frontier state.
134
135
 
135
- The human chose the product boundary, Developer Tools track, mission and
136
- fallback criteria, public presentation, and the rule that no model or Canopus
137
- process receives a human key. The human remains the only party that can make a
138
- protected scientific decision or submit the final Devpost entry. The private
139
- `/feedback` Session ID is kept in the submission checklist, not this repository.
136
+ The human chose the product boundary, Developer Tools track, mission target,
137
+ public presentation, and the rule that no model or Canopus process receives a
138
+ human key. The human remains the only party that can make a protected
139
+ scientific decision or submit the final Devpost entry. The private `/feedback`
140
+ Session ID is kept in the submission checklist, not this repository.
140
141
 
141
142
  ## Nonclaims
142
143
 
143
144
  - A verifier pass is not scientific acceptance.
144
- - The retained Erdős 1056 result covers one exact finite range; it does not
145
- solve Erdős 1056.
146
- - The rejected formal candidate does not prove the one-dimensional theorem or
147
- the general Erdős 505 statement.
148
- - The GPT-5.6 advisory is a non-authoritative model assessment and was not
149
- landed as scientific state.
150
- - Vela predates Build Week. The submission is the Canopus product and its
151
- Build Week additions, not the whole Vela ecosystem.
145
+ - The 7,194-point construction does not establish maximality, classification, or a world record.
146
+ - The accepted Vela state did not change; the proposal remains pending human review.
147
+ - The retained Erdős 1056 result covers one finite range and does not solve Erdős 1056.
148
+ - The rejected formal candidate does not prove the one-dimensional theorem or Erdős 505.
149
+ - Vela predates Build Week. The submission is Canopus and its Build Week additions, not the whole ecosystem.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.6 - 2026-07-20
4
+
5
+ - Register and complete the GPT-5.6 Sidon mission that produces a new
6
+ 7,194-point construction in `{0,1}^24`, passes the frozen verifier, lands a
7
+ Receipt through Defer with accepted-state delta zero, and clean-clone replays
8
+ the same evidence.
9
+ - Retain large declared artifacts from their exact allowlisted worker path
10
+ before workspace cleanup. Reject path escapes, symlinks, hardlinks, empty or
11
+ missing files, oversize files, invalid UTF-8, and authentication material.
12
+ - Preserve the exact private Vela work-session capability needed by `vela land`
13
+ while the publication guard continues to reject every unrelated Git change.
14
+ - Ship both Sidon verifier capsules in the npm package and cover the package
15
+ allowlist with a regression test.
16
+ - Make the sanitized public projection target-neutral and distinguish a
17
+ worker-time verifier-pending handoff from the final recorded verifier pass.
18
+
19
+ ## 0.4.5 - 2026-07-20
20
+
21
+ - Correct the judge quickstart so the retained Erdős 1056 evidence chain is
22
+ identified as GPT-5.4 with an independent verifier, while the GPT-5.6 formal
23
+ attempt and claim-fidelity advisory remain clearly separate Build Week
24
+ additions. Runtime behavior, evidence roots, and Vela interfaces are
25
+ unchanged from 0.4.4.
26
+
3
27
  ## 0.4.4 - 2026-07-20
4
28
 
5
29
  - Advance the product, CI assets, runtime inspection, and released-interface
package/README.md CHANGED
@@ -1,151 +1,134 @@
1
- # Canopus
1
+ <p align="center">
2
+ <img src="docs/assets/canopus-readme-hero.jpg" width="960" alt="Canopus carries one bounded target through an isolated Codex worker and separate verifier into a Receipt pending human review." />
3
+ </p>
2
4
 
3
- **Canopus: Bounded Research for Codex**
5
+ <p align="center"><strong>Bounded research for Codex.</strong></p>
4
6
 
5
- Give Codex a mission. Verify the work. Keep humans in authority.
7
+ <p align="center">
8
+ Give Codex one finite mission. Verify the artifact independently. Keep humans in authority.
9
+ </p>
6
10
 
7
- ## Build Week judge quickstart
11
+ <p align="center">
12
+ <a href="https://www.npmjs.com/package/@vela-science/canopus"><img alt="npm" src="https://img.shields.io/npm/v/@vela-science/canopus?style=flat-square&color=C9A664&labelColor=081224" /></a>
13
+ <a href="https://github.com/vela-science/vela-research-harness/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/vela-science/vela-research-harness/ci.yml?branch=main&style=flat-square&label=build&labelColor=081224" /></a>
14
+ <a href="LICENSE-APACHE"><img alt="Apache-2.0 OR MIT" src="https://img.shields.io/badge/license-Apache--2.0%20OR%20MIT-4F8F8B?style=flat-square&labelColor=081224" /></a>
15
+ </p>
8
16
 
9
- 1. **20-second public demo:** open
10
- [app.vela.space/build-week](https://app.vela.space/build-week) to inspect the
11
- retained Mission → GPT-5.6 artifact → Lean → Receipt → Defer chain. No
12
- account or rebuild is required.
13
- 2. **90-second package inspection:** install the provenance-backed release with
14
- `npm install --global @vela-science/canopus@0.4.4`, then run `canopus
15
- --version`, `canopus profile list`, and `canopus profile validate
16
- formal-erdos-505-test-dim-one-gpt56`.
17
- 3. **Full local workflow:** use the exact `doctor` and `run` commands below on
18
- a clean supported frontier checkout. The public run page includes a separate
19
- no-model `vela reproduce .` path for the retained evidence.
17
+ <p align="center">
18
+ <a href="https://app.vela.space/build-week">Live evidence</a> ·
19
+ <a href="BUILD_WEEK.md">Build Week record</a> ·
20
+ <a href="docs/MISSIONS.md">Missions</a> ·
21
+ <a href="docs/RUN_RECORD.md">Run records</a> ·
22
+ <a href="https://github.com/vela-science/vela">Vela</a>
23
+ </p>
20
24
 
21
- The Build Week delta, baseline commits, Codex collaboration, exact run roots,
22
- and nonclaims are recorded in [BUILD_WEEK.md](BUILD_WEEK.md).
25
+ Canopus is a removable producer over released Vela and Git. It gives Codex one
26
+ exact work offer, freezes the result, runs a separate verifier, and can land a
27
+ Receipt through `vela land`.
23
28
 
24
- Canopus is a bounded research runner over released Vela and Git interfaces. It
25
- selects an exact Vela work offer, gives a finite mission to a tool-enabled Codex
26
- worker, freezes the output, runs an independent verifier container, and may land
27
- a Receipt v1 through `vela land`.
29
+ It cannot sign, accept a proposal, or make a scientific decision. Removing
30
+ Canopus does not change accepted state or Vela replay.
28
31
 
29
- Canopus cannot sign, accept a proposal, or make a scientific decision. A
30
- verifier-passing landing remains `Deferred` or `pending_review` unless an
31
- already-signed Vela policy says otherwise. Removing Canopus does not change Vela
32
- replay or accepted state.
32
+ ## Judge quickstart
33
33
 
34
- ## Product workflow
34
+ **20 seconds — inspect the real result:** open the anonymous
35
+ [Build Week evidence page](https://app.vela.space/build-week) and follow
36
+ Mission → GPT-5.6 → artifact → verifier → Receipt → Defer.
35
37
 
36
- Canopus 0.4.4 targets checksum-pinned Vela 0.910.0. Install the released CLI:
38
+ **90 seconds inspect the shipped product:**
37
39
 
38
- ```bash
39
- npm install --global @vela-science/canopus
40
+ ```sh
41
+ npx -p @vela-science/canopus@0.4.6 canopus --version
42
+ npx -p @vela-science/canopus@0.4.6 canopus profile validate sidon-a24-at-least-7194-gpt56-v3
40
43
  ```
41
44
 
42
- Its ordinary path is:
45
+ **Full workflow reproduce without rebuilding Canopus:**
43
46
 
44
- ```bash
47
+ ```sh
48
+ git clone https://github.com/vela-science/sidon-frontier.git
49
+ cd sidon-frontier
50
+ git checkout 4289e05876f142e72af622672e190be26f6a6f1d
51
+ vela reproduce .
52
+ ```
53
+
54
+ ## Quickstart
55
+
56
+ Install the provenance-backed public package:
57
+
58
+ ```sh
59
+ npm install --global @vela-science/canopus@0.4.6
60
+ canopus --version
61
+ ```
62
+
63
+ Inspect a clean frontier, then run its first ranked producer offer:
64
+
65
+ ```sh
45
66
  canopus doctor /path/to/frontier
46
67
  canopus run /path/to/frontier --first
47
68
  canopus inspect latest
48
69
  canopus replay /path/to/run.json
49
- canopus withdraw /path/to/frontier --run latest --reason "superseded"
50
70
  ```
51
71
 
52
- `doctor` discovers and binds Vela, Codex, Git, Docker, the clean frontier roots,
53
- the first Vela producer offer, and a registered verifier profile. It also runs
54
- the same generated-canary native custody preflight required by `run`; native
55
- Windows reports the WSL2 handoff instead of claiming mission readiness. `run`
56
- uses the first offer unless an exact registered target is requested. It refuses
57
- dirty frontiers, drifted binaries or roots, missing verifier images,
58
- cloud-synced output paths, and unregistered targets.
59
- `inspect latest` selects the newest completed or safely stopped run. Failed-run
60
- projections state whether landing was never attempted or whether retained
61
- landing-recovery evidence must be inspected; they never infer an unchanged
62
- frontier from process failure alone. Withdrawal's `latest` selector remains
63
- limited to completed, proposal-bearing runs.
64
-
65
- The native Codex worker runs under a bundled default-deny profile with only the
66
- target workspace and required compiler files exposed. macOS uses Seatbelt;
67
- Linux and WSL2 use Codex's Bubblewrap sandbox. Native Windows supports the
68
- read-only product surface and directs tool-using runs to WSL2 before creating
69
- run output or probing credentials. Open WSL2, enter the frontier through its
70
- Linux path, and rerun the same `canopus run` command there. Authentication,
71
- human keys, unrelated repositories, browser/search/MCP/app surfaces,
72
- delegation, and command network access remain outside the worker boundary. The
73
- verifier runs separately with network and writes denied.
74
-
75
- A successful landing creates unsigned local Git commits and fast-forwards the
76
- source checkout only after verifier success and clean-clone reproduction. It
77
- does not push a remote. Use `--no-land` for a diagnostic run that leaves the
78
- source frontier unchanged.
79
-
80
- Profiles are Defer-only by default. A profile can request the policy lane only
81
- when it includes a closed positive result contract and binds the full target
82
- packet, profile, verifier capsule, and result-contract roots into the Receipt.
83
- Canopus does not decide whether that work is admitted: released Vela evaluates
84
- the exact signed policy, and any route, root, result class, or accepted-state
85
- delta outside the frozen profile stops the run.
86
-
87
- After a pending landing reproduces, Canopus retains only the exact
88
- Receipt-bound producer seed needed to withdraw that one proposal. The
89
- capability never enters worker, verifier, or run evidence. Withdrawal is
90
- explicit, runs in a disposable exact-head clone, proves the accepted scientific
91
- projection unchanged, fast-forwards the clean source, and then deletes the
92
- secret. A later human decision also consumes the now-useless secret.
93
-
94
- The installed product contains only the current active producer profiles:
95
-
96
- - `erdos1056-k15-10428401-10428600`
97
- - `formal-erdos-505-test-dim-one-gpt56`
98
-
99
- The Erdős capsule is a content-addressed static Linux binary for arm64 and
100
- x86-64. The formal capsule is a small reviewed shell edge over an immutable
101
- Linux-amd64 Lean image; Apple-silicon hosts bind Docker's exact amd64 emulation
102
- instead of relying on implicit platform selection.
103
- Completed and stopped profile registrations remain in Git and release evidence,
104
- not in default discovery or the installed package. The shared source and pinned
105
- build provenance remain available for reproducible rebuilding, but an installed
106
- product run does not require a cross-compiler.
107
-
108
- ## Advanced and historical interfaces
109
-
110
- Mission v1 remains the portable interface for preparing and validating a frozen
111
- bundle:
112
-
113
- ```bash
114
- canopus mission prepare path/to/draft.json \
115
- --source /clean/frontier --output /new/bundle --vela /path/to/vela \
116
- --codex /path/to/codex --verifier-image sha256:<image-root>
117
- canopus mission validate /new/bundle/mission.json
72
+ Use `--no-land` for a diagnostic mission that cannot change the source frontier:
73
+
74
+ ```sh
75
+ canopus run /path/to/frontier --first --no-land
118
76
  ```
119
77
 
120
- Closed profile v2 contracts have a separate advanced lifecycle:
78
+ `doctor` binds the exact Vela, Codex, Git, frontier, packet, profile, and verifier
79
+ roots. `run` refuses dirty frontiers, drifted roots, missing capsules, and
80
+ unregistered targets. It never silently skips the first ranked offer.
81
+
82
+ ## Custody and authority
121
83
 
122
- ```bash
123
- canopus profile list
124
- canopus profile show erdos1056-k15-10428401-10428600
125
- canopus profile validate erdos1056-k15-10428401-10428600
126
- canopus profile pack erdos1056-k15-10428401-10428600 --output /new/profile-pack
127
- canopus profile validate formal-erdos-505-test-dim-one-gpt56
84
+ | Surface | Can do | Cannot do |
85
+ | --- | --- | --- |
86
+ | Codex worker | Use tools inside one bounded workspace | Reach the network, host home, human keys, or verifier |
87
+ | Verifier | Read frozen candidate bytes and declared inputs | Write, use the network, or make an authority decision |
88
+ | Canopus | Preserve evidence, replay, land a Receipt, withdraw its own proposal | Sign, accept, reject, or call verifier success acceptance |
89
+
90
+ The worker uses macOS Seatbelt or Codex's Bubblewrap sandbox on Linux and WSL2.
91
+ The verifier runs in a separate pinned container with network and writes denied.
92
+
93
+ ## Everyday commands
94
+
95
+ ```sh
96
+ canopus doctor [frontier]
97
+ canopus run [frontier] [--first | --target <id>] [--profile <name>] [--no-land]
98
+ canopus inspect [run.json | latest]
99
+ canopus replay <run.json>
128
100
  ```
129
101
 
130
- Mission v0 and the stopped cold-use registrations remain available in Git for
131
- exact historical reproduction. Benchmark commands, compiled benchmark modules,
132
- registrations, and benchmark documentation are intentionally absent from the
133
- installed npm package.
102
+ Advanced profile and withdrawal commands are documented in
103
+ [Missions](docs/MISSIONS.md). Installed profiles are closed,
104
+ content-addressed contracts that bind the target, packet, objective, artifact
105
+ types, worker, verifier, replay command, budgets, and landing ceiling.
106
+
107
+ ## OpenAI Build Week
108
+
109
+ Inspect the retained Mission → worker → artifact → verifier → Receipt → Defer
110
+ chain on the [live evidence surface](https://app.vela.space/build-week). Exact
111
+ commits, run roots, audit evidence, and nonclaims live in
112
+ [`BUILD_WEEK.md`](BUILD_WEEK.md).
134
113
 
135
114
  ## Development
136
115
 
137
116
  Requires Node 22 or 24, pnpm 10, Vela 0.910.0, Codex CLI 0.144.6, and Docker.
138
- Linux and WSL2 also require Bubblewrap. On Ubuntu 24.04, follow OpenAI's
139
- [targeted AppArmor setup](https://developers.openai.com/codex/concepts/sandboxing#prerequisites)
140
- for `bwrap-userns-restrict`; Canopus never disables the global unprivileged
141
- user-namespace restriction or falls back to an unsandboxed worker.
142
117
 
143
- ```bash
144
- pnpm install
118
+ ```sh
119
+ pnpm install --frozen-lockfile
145
120
  pnpm check
146
121
  pnpm pack --dry-run
147
122
  ```
148
123
 
149
- See [run records](docs/RUN_RECORD.md) for evidence and publication semantics,
150
- [mission roles](docs/MISSIONS.md) for the bounded jobs, [ADR 0001](docs/adr/0001-harness-boundary-and-name.md)
151
- for the deletion test, and [release evidence](docs/RELEASES.md) for exact roots.
124
+ ## Documentation
125
+
126
+ - [Missions and profiles](docs/MISSIONS.md)
127
+ - [Run records and publication](docs/RUN_RECORD.md)
128
+ - [Release evidence](docs/RELEASES.md)
129
+ - [Why the harness stays removable](docs/adr/0001-harness-boundary-and-name.md)
130
+
131
+ ## License
132
+
133
+ Apache-2.0 OR MIT, at your option. Canopus is a replaceable producer; Vela
134
+ remains the protocol and authority boundary.
@@ -1,3 +1,4 @@
1
+ import { parseCandidateDraft } from "../candidate/validate.js";
1
2
  import { type CommandRunner } from "../util/command.js";
2
3
  import type { Engine, EngineContext, EngineResult } from "./engine.js";
3
4
  export declare const NATIVE_WORKER_DISABLED_FEATURES: readonly ["apps", "artifact", "auth_elicitation", "browser_use", "browser_use_external", "computer_use", "enable_fanout", "enable_mcp_apps", "goals", "hooks", "image_generation", "in_app_browser", "memories", "multi_agent", "multi_agent_v2", "plugin_sharing", "plugins", "remote_plugin", "standalone_web_search", "tool_call_mcp_elicitation", "tool_suggest", "workspace_dependencies"];
@@ -8,6 +9,12 @@ export interface CodexToolsNativeOptions {
8
9
  permissionProfile: string;
9
10
  runner?: CommandRunner;
10
11
  }
12
+ export declare function hydrateWorkspaceArtifacts(options: {
13
+ draft: ReturnType<typeof parseCandidateDraft>;
14
+ workspace: string;
15
+ maxArtifactBytes: number;
16
+ secrets: readonly Buffer[];
17
+ }): Promise<ReturnType<typeof parseCandidateDraft>>;
11
18
  export declare function assertNativeRuntimeProfile(options: {
12
19
  binary: string;
13
20
  runner: CommandRunner;
@@ -3,6 +3,7 @@ import { constants } from "node:fs";
3
3
  import { chmod, copyFile, lstat, mkdir, realpath, rm, writeFile } from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import process from "node:process";
6
+ import { TextDecoder } from "node:util";
6
7
  import { assertDraftArtifactsAllowed, parseCandidateDraft } from "../candidate/validate.js";
7
8
  import { canonicalJson, contentDigest, sha256Bytes } from "../util/canonical.js";
8
9
  import { isolatedEnvironment, runCommand } from "../util/command.js";
@@ -53,7 +54,14 @@ function prompt(mission) {
53
54
  "Return the artifact path and kind exactly as output_contract specifies. Status success means only that those complete candidate bytes exist; the separate frozen Lean capsule owns elaboration and the axiom audit.",
54
55
  "Use at most four shell or patch tool calls. A token-efficient handoff is part of this mission's product contract.",
55
56
  ]
56
- : [];
57
+ : mission.target === "sidon:a24-improve"
58
+ ? [
59
+ "The shell and apply_patch tools are active in this worker. Begin with a narrow shell call against the one registered packet; do not report a missing-tool failure without attempting that call.",
60
+ `Read only current_state.tracked_unaccepted_seed, output_contract, verification, and negative_contract from ${mission.target_packet.path}. The tracked seed's encoded_points field contains every exact baseline point needed for the search; no other input file exists or is required.`,
61
+ "Write search source and temporary data only inside the current workspace. On macOS compile with the exposed Xcode clang++ and TMPDIR=$PWD/tmp; do not invoke xcrun, xcodebuild, a package manager, a container, Vela, or the frozen verifier.",
62
+ "Spend the bounded runtime on an exact net-positive exchange over the supplied baseline. Independently recheck a positive candidate before returning its compact witness JSON at the exact declared workspace path. Inline it when practical; for a large artifact use the workspace-backed handoff described below. A failed bounded search is null, never a universal maximality claim.",
63
+ ]
64
+ : [];
57
65
  return [
58
66
  "Execute one bounded Canopus research mission inside a fresh writable workspace containing only the exact hash-verified target packet.",
59
67
  "Use shell and apply_patch only when useful. Browser, web search, MCP, apps, memories, computer use, delegation, signing, and human keys are forbidden.",
@@ -64,7 +72,7 @@ function prompt(mission) {
64
72
  "Keep tool output narrow. Do not print or ingest the whole target packet.",
65
73
  "Worker status reports producer completion, not verifier or scientific standing. Return status success when you produced all artifact bytes required by the output contract, even though you cannot run the separate verifier. State that verification remains pending; Canopus will freeze the bytes and run the verifier after you exit.",
66
74
  "Return null only when the bounded work produced no candidate. Return failed only when you could not produce a contract-complete candidate or observed disqualifying evidence. Never turn a bounded negative search into universal nonexistence, verifier failure into success, or Git publication into scientific acceptance.",
67
- "Return only the supplied engine-output JSON shape. Artifact bytes must be inline UTF-8 content at mission.allowed_paths.",
75
+ "Return only the supplied engine-output JSON shape. Artifact bytes must be UTF-8 at mission.allowed_paths. Inline small artifacts. For a large declared artifact, content may be the empty string only when the complete bytes exist at that exact path inside the current workspace; Canopus will bound, scan, and freeze those bytes before workspace cleanup.",
68
76
  ...execution,
69
77
  "Mission:",
70
78
  canonicalJson(mission),
@@ -134,6 +142,42 @@ function assertNoSecrets(buffers, secrets) {
134
142
  }
135
143
  }
136
144
  }
145
+ export async function hydrateWorkspaceArtifacts(options) {
146
+ const workspace = await realpath(options.workspace);
147
+ const artifacts = await Promise.all(options.draft.artifacts.map(async (artifact) => {
148
+ if (artifact.content !== "")
149
+ return artifact;
150
+ const candidate = path.join(workspace, artifact.path);
151
+ const relative = path.relative(workspace, candidate);
152
+ if (relative === "" || relative === ".." || relative.startsWith(`..${path.sep}`)) {
153
+ throw new Error(`workspace-backed artifact escapes the native worker workspace: ${artifact.path}`);
154
+ }
155
+ let resolved;
156
+ try {
157
+ resolved = await realpath(candidate);
158
+ }
159
+ catch (error) {
160
+ throw new Error(`workspace-backed artifact is missing at ${artifact.path}: ${String(error)}`);
161
+ }
162
+ if (resolved !== candidate) {
163
+ throw new Error(`workspace-backed artifact must not traverse a symbolic link: ${artifact.path}`);
164
+ }
165
+ const bytes = await readBoundedRegularFile(resolved, options.maxArtifactBytes);
166
+ if (bytes.length === 0) {
167
+ throw new Error(`workspace-backed artifact is empty at ${artifact.path}`);
168
+ }
169
+ assertNoSecrets([bytes], options.secrets);
170
+ let content;
171
+ try {
172
+ content = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
173
+ }
174
+ catch (error) {
175
+ throw new Error(`workspace-backed artifact is not valid UTF-8 at ${artifact.path}: ${String(error)}`);
176
+ }
177
+ return { ...artifact, content };
178
+ }));
179
+ return { ...options.draft, artifacts };
180
+ }
137
181
  function workerArgv(options) {
138
182
  return [
139
183
  options.binary,
@@ -369,8 +413,14 @@ export class CodexToolsNativeEngine {
369
413
  catch (error) {
370
414
  throw new Error(`native Codex final response is not JSON: ${String(error)}`);
371
415
  }
372
- const draft = parseCandidateDraft(raw);
373
- assertDraftArtifactsAllowed(draft, mission.allowed_paths);
416
+ const parsedDraft = parseCandidateDraft(raw);
417
+ assertDraftArtifactsAllowed(parsedDraft, mission.allowed_paths);
418
+ const draft = await hydrateWorkspaceArtifacts({
419
+ draft: parsedDraft,
420
+ workspace,
421
+ maxArtifactBytes: mission.budgets.max_artifact_bytes,
422
+ secrets,
423
+ });
374
424
  return {
375
425
  draft,
376
426
  engine: {
@@ -10,6 +10,12 @@ function publicRepository(value) {
10
10
  throw new Error("public run repository is invalid");
11
11
  return { url, directory };
12
12
  }
13
+ function publicCaveat(value) {
14
+ if (/verif(?:y|ication|ier).*(?:pending|has not run)|pending.*verif(?:y|ication|ier)/iu.test(value)) {
15
+ return "The worker handed off without verifier authority; Canopus subsequently recorded the separate verifier pass shown in this projection.";
16
+ }
17
+ return value;
18
+ }
13
19
  export function projectPublicRun(options) {
14
20
  const { record, mission } = options;
15
21
  if (mission.schema !== "canopus.mission.v1") {
@@ -54,7 +60,7 @@ export function projectPublicRun(options) {
54
60
  clean_clone_replay: "matched",
55
61
  },
56
62
  claim: record.candidate.claim,
57
- caveats: [...record.candidate.caveats],
63
+ caveats: [...new Set(record.candidate.caveats.map(publicCaveat))],
58
64
  artifact_roots: record.candidate.artifacts.map((artifact) => artifact.digest).sort(),
59
65
  verifier_root: contentDigest(record.verifier),
60
66
  receipt_root: record.landing.receipt_root,
@@ -90,7 +96,7 @@ export function projectPublicRun(options) {
90
96
  },
91
97
  nonclaims: [
92
98
  "Verifier success is not scientific acceptance.",
93
- "The bounded result does not solve its general Erdős problem.",
99
+ "The bounded result does not establish maximality or settle the broader scientific problem.",
94
100
  "Canopus did not sign or perform a human decision.",
95
101
  ],
96
102
  };
package/dist/src/run.d.ts CHANGED
@@ -90,5 +90,6 @@ export declare function validateTargetOffer(target: string, response: VelaComman
90
90
  index: number;
91
91
  id: string;
92
92
  };
93
+ export declare function isPrivateWorkSessionStatus(entry: string): boolean;
93
94
  export declare function runCanopus(options: CanopusNoLandOptions): Promise<CanopusDiagnosticRunResult>;
94
95
  export declare function runCanopus(options: CanopusRunOptions): Promise<CanopusRunResult>;
package/dist/src/run.js CHANGED
@@ -99,6 +99,18 @@ function publicationState(land) {
99
99
  const value = land.publication.state;
100
100
  return typeof value === "string" ? value : "unknown";
101
101
  }
102
+ export function isPrivateWorkSessionStatus(entry) {
103
+ if (!entry.startsWith("?? "))
104
+ return false;
105
+ const relative = entry.slice(3);
106
+ const parts = relative.split("/");
107
+ return (parts.length === 4 &&
108
+ parts[0] === ".vela" &&
109
+ parts[1] === "work" &&
110
+ parts[2] !== undefined &&
111
+ /^[a-zA-Z0-9._-]+$/u.test(parts[2]) &&
112
+ parts[3] === "session.json");
113
+ }
102
114
  async function writeExclusive(file, value) {
103
115
  await writeFile(file, canonicalJson(value), { flag: "wx", mode: 0o600 });
104
116
  }
@@ -138,7 +150,17 @@ async function publishArtifactSources(options) {
138
150
  }
139
151
  const status = (await git(["status", "--porcelain=v1", "-z", "--untracked-files=all"]))
140
152
  .toString("utf8").split("\0").filter((entry) => entry.length > 0).sort();
141
- const expectedStatus = paths.map((entry) => `A ${entry}`).sort();
153
+ // `vela work` deliberately keeps its producer capability in one private,
154
+ // untracked session file until `vela land` consumes it. The worker cannot
155
+ // access the landing clone, and every other unstaged path remains fatal.
156
+ const privateWorkSessions = status.filter(isPrivateWorkSessionStatus);
157
+ if (privateWorkSessions.length > 1) {
158
+ throw new Error("artifact publication observed multiple private Vela work sessions");
159
+ }
160
+ const expectedStatus = [
161
+ ...paths.map((entry) => `A ${entry}`),
162
+ ...privateWorkSessions,
163
+ ].sort();
142
164
  if (canonicalJson(status) !== canonicalJson(expectedStatus)) {
143
165
  throw new Error("artifact publication observed unrelated or unstaged repository changes");
144
166
  }
package/docs/RELEASES.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Release evidence
2
2
 
3
+ ## Canopus v0.4.5
4
+
5
+ Version `0.4.5` is a documentation-only truthfulness correction over 0.4.4.
6
+ It identifies the retained Erdős 1056 worker as GPT-5.4 and its verifier as an
7
+ independent verifier, while keeping the separate GPT-5.6 formal failure and
8
+ claim-fidelity advisory explicit. Runtime behavior, mission registrations,
9
+ evidence roots, Vela compatibility, and authority boundaries are unchanged.
10
+
11
+ The correction is independently release-verifiable:
12
+
13
+ - Source/tag: `eccb3975505706b12c48c372e471c34303dffbd2` / `v0.4.5`
14
+ - Cross-platform CI and installed-package smoke:
15
+ [run 29772472168](https://github.com/vela-science/vela-research-harness/actions/runs/29772472168)
16
+ - CodeQL:
17
+ [run 29772445358](https://github.com/vela-science/vela-research-harness/actions/runs/29772445358)
18
+ - OIDC publish, SLSA provenance audit, and GitHub release:
19
+ [run 29772472340](https://github.com/vela-science/vela-research-harness/actions/runs/29772472340)
20
+ - Package SHA-256: `b0b8f0357337b79e3dca0ef4a1c1b90a14885f3f01759666cd31f082675474c5`
21
+ - npm shasum: `fd55cc35d22e82b1976adab2265dff09cc84a948`
22
+ - npm integrity:
23
+ `sha512-J9BqSPjqfp6OMW/7odlYtluSRkY3WfQpa/5ky/nuhzCdUOa8ksb7Be8oTtu19KuqEL/9BY4PhOHyUgptr5drHQ==`
24
+ - The npm and GitHub release tarballs are byte-identical.
25
+ - A clean registry execution under Node `v24.18.0` returned `canopus 0.4.5`,
26
+ listed both packaged profiles, and validated
27
+ `formal-erdos-505-test-dim-one-gpt56` at the registered profile and draft
28
+ roots.
29
+ - Public package and matching release:
30
+ [npm](https://www.npmjs.com/package/@vela-science/canopus/v/0.4.5),
31
+ [GitHub](https://github.com/vela-science/vela-research-harness/releases/tag/v0.4.5)
32
+
3
33
  ## Canopus v0.4.4
4
34
 
5
35
  Version `0.4.4` advances the product and hosted integration from Vela 0.901.0
@@ -16,10 +46,35 @@ run and all five final Vela roots, validates every reported numeric against the
16
46
  frozen artifact, and labels language judgments `model_assessment`. It is not
17
47
  landed as scientific state.
18
48
 
19
- Release publication remains the existing tag-triggered GitHub Actions OIDC
20
- workflow. The final tag, workflow runs, package root, npm integrity, and
21
- byte-equivalence audit are appended here after hosted gates complete; no
22
- reusable npm token is introduced.
49
+ The hosted release closed the product and provenance gates:
50
+
51
+ - Source/tag: `26dc0518cbeb3377d285dc4aa90bd3bc70a6e013` / `v0.4.4`
52
+ - Cross-platform CI:
53
+ [run 29768275757](https://github.com/vela-science/vela-research-harness/actions/runs/29768275757)
54
+ - CodeQL:
55
+ [run 29768274600](https://github.com/vela-science/vela-research-harness/actions/runs/29768274600)
56
+ - OIDC publish and build attestation:
57
+ [run 29769118124](https://github.com/vela-science/vela-research-harness/actions/runs/29769118124)
58
+ - Package SHA-256:
59
+ `593a3a5caa64cee5ebb2fe91a5e8518d780172462671607398f2ef6f45e79fa7`
60
+ - npm integrity:
61
+ `sha512-6H4ZmnQ4nAOhRLbrkUM15AAgn4uoB+xJsLm7t7kSLbU+J3Fq4kA50HBrhEjwiRTlntCOy3/SPyvYy4WpeYJLwA==`
62
+ - npm shasum: `36ad1a8647320ad314e081b6daa6b261e286988b`
63
+ - npm reports the SLSA provenance v1 predicate, and `npm audit signatures`
64
+ verifies the registry signatures and one attestation.
65
+ - A clean registry install under Node `v24.18.0` returned `canopus 0.4.4`,
66
+ listed both packaged profiles, and validated the exact GPT-5.6 formal
67
+ profile root.
68
+ - The [GitHub release](https://github.com/vela-science/vela-research-harness/releases/tag/v0.4.4)
69
+ tarball is byte-identical to the npm tarball and its published
70
+ `SHA256SUMS`.
71
+
72
+ The OIDC workflow's immediate npm-attestation endpoint check encountered a
73
+ transient registry `404` after publication, so its final GitHub-release step
74
+ did not run. Once the same endpoint and `npm audit signatures` both returned
75
+ the expected provenance, the matching GitHub release was created from the
76
+ exact attested npm tarball. No tag moved and no reusable npm token was
77
+ introduced.
23
78
 
24
79
  ## Canopus v0.4.3
25
80
 
@@ -0,0 +1 @@
1
+ {"activity":{"clean_clone_replay":"matched","verifier":"pass","worker":"success"},"artifact_roots":["sha256:5eca82c582a9d3b6ae63d137cf7dadd4a01e40d52bc1bfac99932d1d8752f884","sha256:878b05e01dbc4a785e5a671f977509f0bb338dfcb58ac53bf03d47bf6465f01e","sha256:ba5da48c4f6fd744a70eb82d5e1a8291f981bf5ee4df9ec2d86d8184fde22de3"],"authority":"read_only_projection","caveats":["The worker handed off without verifier authority; Canopus subsequently recorded the separate verifier pass shown in this projection.","Declared verifier outcome: passed.","Canopus produced this record; it is not a human acceptance decision."],"claim":"Produced the exact reconstructed 7,194-point Sidon witness for {0,1}^24.","final":{"commit":"4289e05876f142e72af622672e190be26f6a6f1d","event_log_root":"sha256:11a668d1cdd9caa18f6c3c78ac8c03431bd2ab9beb71f3c62c747d8a7b6571cd","snapshot_root":"sha256:0441baf3d3c0f7f58e51d8d0b54d2e20ee94c57cfe3fd52ec0ea6dde2ee0c92d"},"mission":{"digest":"sha256:611dc75d2dce98b218deeaf68985dec961a0722446fe1d2879447997ffcfa2ba","id":"mission_sidon_a24_at_least_7194_gpt56_v3","model":"gpt-5.6-sol","registration_kind":"profile","registration_name":"sidon-a24-at-least-7194-gpt56-v3","registration_root":"sha256:3b529df4304b96890cdd7eed5f90fd862422b8b1e7b4da1cef0a478e6e7cdebe","target":"sidon:a24-improve","target_packet_root":"sha256:09977a08357cbe240c5a7f5c3ea8e5c7055d6b5d71bcfb5f947b49accee1a3a8"},"nonclaims":["Verifier success is not scientific acceptance.","The bounded result does not establish maximality or settle the broader scientific problem.","Canopus did not sign or perform a human decision."],"policy":{"accepted_state_delta":0,"proposal_id":"vpr_491cc97cfdfe98ff","route":"defer"},"receipt_root":"sha256:91b9f0c72e2934d3f98a34de93b61a168c8a9ff560a18a63ff4a1ee6ae2f897c","reproduction":{"commands":["git clone https://github.com/vela-science/sidon-frontier.git","cd sidon-frontier","git checkout 4289e05876f142e72af622672e190be26f6a6f1d","vela reproduce ."]},"run_id":"run_f68e4cfc-e5c7-4c73-86cb-d79807c47ec4","schema":"canopus.public-run.v1","source":{"commit":"6f9dca7e30ea3d9db3f440fcb4b50ece21dcf40e","event_log_root":"sha256:f063218142b0995179f751036108c94e7f368eb257be31e6807a36121f7a13aa","repository":"https://github.com/vela-science/sidon-frontier","snapshot_root":"sha256:fe5498193ab1079696af6de6f8a899334908a247fd78f7a25fb476b5b36b43b8"},"usage":{"attempts":1,"observed_tokens":105553,"research_elapsed_ms":88131,"research_processes":7},"verifier_root":"sha256:89130864b3ca4f354673416d4352616265b1e3dc25147a4ae91bbbf3874fbff8"}
@@ -0,0 +1,42 @@
1
+ {
2
+ "id": "mission_sidon_a24_at_least_7194_gpt56_v1",
3
+ "target": "auto",
4
+ "frontier": ".",
5
+ "actor": "agent:canopus-local",
6
+ "role": "producer",
7
+ "claim_type": "computational",
8
+ "replayability": "exact",
9
+ "objective": "Produce exactly one genuinely new Vela-native Sidon witness at artifacts/sidon-a24-gpt56-7194.witness.json and declare it as kind vela-witness. The input frontier contains a mechanically verified but pending 7,193-point baseline at artifacts/sidon-a24-improvement.witness.json with SHA-256 f3712b47633a239133b5e0491e68fffc85831b761c27402ba9de8057f09252e7, plus the prior exact 1-for-2 exchange implementation and benchmark under research/. Use those immutable inputs as a starting point, but do not return the existing 7,193 witness or merely replay its already-known one-point-extension and 1-for-2 result. Design, implement, and execute a stronger bounded search capable of a net improvement, such as a broader 1-for-2 search on the 7,193 baseline, a 2-for-3 or larger conflict-hypergraph exchange, or another exact collision-preserving repair method. Temporary source and diagnostics may be created outside the declared artifact path, but the only declared scientific artifact is the final witness. The artifact must be compact JSON with kind sidon, n 24, claimed_size at least 7194, and points as claimed_size distinct arrays of exactly 24 binary integers. Before reporting success, independently recheck the complete candidate by generating all m(m+1)/2 componentwise integer pair sums and confirming they are distinct. Report engine status success only after that check passes. If the bounded search does not find a valid improvement, return null with the strongest exact negative observations and no artifact. Do not claim maximality, classification, scientific acceptance, or a world record.",
10
+ "completion_condition": "The separate frozen Vela verifier parses the declared witness, independently checks 24-bit distinctness and every unordered componentwise pair sum, binds the exact claim that a Sidon subset of {0,1}^24 with at least 7,194 elements exists, and exits zero in a network-denied, read-only container. Canopus then clean-clone replays the same artifact and verifier roots and Vela routes the Receipt to Defer with accepted-state delta zero.",
11
+ "allowed_paths": [
12
+ "artifacts/sidon-a24-gpt56-7194.witness.json"
13
+ ],
14
+ "budgets": {
15
+ "max_research_wall_time_ms": 1800000,
16
+ "max_research_processes": 16,
17
+ "max_research_output_bytes": 16777216,
18
+ "max_prompt_bytes": 2097152,
19
+ "max_artifact_bytes": 1048576,
20
+ "max_attempts": 1,
21
+ "max_observed_tokens": 400000
22
+ },
23
+ "worker": {
24
+ "model": "gpt-5.6-sol"
25
+ },
26
+ "verifier": {
27
+ "argv": [
28
+ "capsule/verifier",
29
+ "--claim",
30
+ "There exists a Sidon subset of {0,1}^24 with at least 7,194 elements.",
31
+ "{artifact:artifacts/sidon-a24-gpt56-7194.witness.json}"
32
+ ],
33
+ "cwd": "targets",
34
+ "timeout_ms": 300000,
35
+ "max_output_bytes": 65536,
36
+ "capsule_path": "capsule/verifier"
37
+ },
38
+ "scientific_chain": {
39
+ "predicted_observable": "A newly produced set contains at least 7,194 distinct 24-bit points and all of its unordered componentwise integer pair sums are distinct.",
40
+ "performed_test": "capsule/verifier --claim 'There exists a Sidon subset of {0,1}^24 with at least 7,194 elements.' artifacts/sidon-a24-gpt56-7194.witness.json"
41
+ }
42
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "id": "mission_sidon_a24_at_least_7194_gpt56_v2",
3
+ "target": "auto",
4
+ "frontier": ".",
5
+ "actor": "agent:canopus-local",
6
+ "role": "producer",
7
+ "claim_type": "computational",
8
+ "replayability": "exact",
9
+ "objective": "Produce exactly one genuinely new Vela-native Sidon witness at artifacts/sidon-a24-gpt56-7194.witness.json and declare it as kind vela-witness. This repairs the first GPT-5.6 attempt's unavailable-input defect: the exact target packet now embeds the complete mechanically verified pending 7,193-point baseline in current_state.tracked_unaccepted_seed.encoded_points. Require its encoded_points_sha256 to equal sha256:cbf35310bafabb05a610e3e4e6ff3c5f5c60c5a80cb6821a3cde165b672c643a and its witness root to equal sha256:f3712b47633a239133b5e0491e68fffc85831b761c27402ba9de8057f09252e7 before using it. The packet also records the prior exact one-removal/two-addition exchange that improved 7,192 to 7,193. Do not return that existing witness or merely replay its already-known exchange. Design, implement, and execute a stronger bounded search capable of another net improvement, such as a broader 1-for-2 search on the 7,193 baseline, a 2-for-3 or larger conflict-hypergraph exchange, or another exact collision-preserving repair method. Temporary source and diagnostics may be created inside the worker workspace, but the only declared scientific artifact is the final witness. The artifact must be compact JSON with kind sidon, n 24, claimed_size at least 7194, and points as claimed_size distinct arrays of exactly 24 binary integers. Before reporting success, independently recheck the complete candidate by generating all m(m+1)/2 componentwise integer pair sums and confirming they are distinct. Report engine status success only after that check passes. If the bounded search does not find a valid improvement, return null with the strongest exact negative observations and no artifact. Do not claim maximality, classification, scientific acceptance, or a world record.",
10
+ "completion_condition": "The separate frozen Vela verifier parses the declared witness, independently checks 24-bit distinctness and every unordered componentwise integer pair sum, binds the exact claim that a Sidon subset of {0,1}^24 with at least 7,194 elements exists, and exits zero in a network-denied, read-only container. Canopus then clean-clone replays the same artifact and verifier roots and Vela routes the Receipt to Defer with accepted-state delta zero.",
11
+ "allowed_paths": [
12
+ "artifacts/sidon-a24-gpt56-7194.witness.json"
13
+ ],
14
+ "budgets": {
15
+ "max_research_wall_time_ms": 1800000,
16
+ "max_research_processes": 16,
17
+ "max_research_output_bytes": 16777216,
18
+ "max_prompt_bytes": 2097152,
19
+ "max_artifact_bytes": 1048576,
20
+ "max_attempts": 1,
21
+ "max_observed_tokens": 600000
22
+ },
23
+ "worker": {
24
+ "model": "gpt-5.6-sol"
25
+ },
26
+ "verifier": {
27
+ "argv": [
28
+ "capsule/verifier",
29
+ "--claim",
30
+ "There exists a Sidon subset of {0,1}^24 with at least 7,194 elements.",
31
+ "{artifact:artifacts/sidon-a24-gpt56-7194.witness.json}"
32
+ ],
33
+ "cwd": "targets",
34
+ "timeout_ms": 300000,
35
+ "max_output_bytes": 65536,
36
+ "capsule_path": "capsule/verifier"
37
+ },
38
+ "scientific_chain": {
39
+ "predicted_observable": "A newly produced set contains at least 7,194 distinct 24-bit points and all of its unordered componentwise integer pair sums are distinct.",
40
+ "performed_test": "capsule/verifier --claim 'There exists a Sidon subset of {0,1}^24 with at least 7,194 elements.' artifacts/sidon-a24-gpt56-7194.witness.json"
41
+ }
42
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "id": "mission_sidon_a24_at_least_7194_gpt56_v3",
3
+ "target": "auto",
4
+ "frontier": ".",
5
+ "actor": "agent:canopus-local",
6
+ "role": "producer",
7
+ "claim_type": "computational",
8
+ "replayability": "exact",
9
+ "objective": "Retain and independently recheck the genuinely new 7,194-point Sidon construction discovered by GPT-5.6 in bounded Canopus run run_230412bc-01f4-4805-9152-7fc8f8a5b8e0. That discovery run was bound to target packet sha256:09977a08357cbe240c5a7f5c3ea8e5c7055d6b5d71bcfb5f947b49accee1a3a8 and baseline encoded_points_sha256 sha256:cbf35310bafabb05a610e3e4e6ff3c5f5c60c5a80cb6821a3cde165b672c643a. Its exact successful exchange removed baseline point index 72 and added the two new 24-bit points encoded as hexadecimal 970f25 and 246891. Reconstruct the candidate from the complete baseline embedded in current_state.tracked_unaccepted_seed.encoded_points, write exactly one artifact at artifacts/sidon-a24-gpt56-7194.witness.json, and declare it as kind vela-witness. The artifact must be compact JSON with kind sidon, n 24, claimed_size 7194, and points as 7,194 distinct arrays of exactly 24 binary integers. Before reporting success, independently regenerate all 7,194*7,195/2 unordered componentwise integer pair sums and confirm all 25,880,415 are distinct. Leave the complete artifact at its declared workspace path and use the workspace-backed handoff by returning an empty inline content field if the artifact is too large to inline. Report engine status success only after the complete check passes. This mission repairs the prior transport failure; it does not claim a second discovery. If reconstruction or the exact check fails, return failed with no artifact. Do not claim maximality, classification, scientific acceptance, or a world record.",
10
+ "completion_condition": "The separate frozen Vela verifier parses the declared witness, independently checks 24-bit distinctness and every unordered componentwise integer pair sum, binds the exact claim that a Sidon subset of {0,1}^24 with at least 7,194 elements exists, and exits zero in a network-denied, read-only container. Canopus then clean-clone replays the same artifact and verifier roots and Vela routes the Receipt to Defer with accepted-state delta zero.",
11
+ "allowed_paths": [
12
+ "artifacts/sidon-a24-gpt56-7194.witness.json"
13
+ ],
14
+ "budgets": {
15
+ "max_research_wall_time_ms": 600000,
16
+ "max_research_processes": 12,
17
+ "max_research_output_bytes": 16777216,
18
+ "max_prompt_bytes": 2097152,
19
+ "max_artifact_bytes": 1048576,
20
+ "max_attempts": 1,
21
+ "max_observed_tokens": 300000
22
+ },
23
+ "worker": {
24
+ "model": "gpt-5.6-sol"
25
+ },
26
+ "verifier": {
27
+ "argv": [
28
+ "capsule/verifier",
29
+ "--claim",
30
+ "There exists a Sidon subset of {0,1}^24 with at least 7,194 elements.",
31
+ "{artifact:artifacts/sidon-a24-gpt56-7194.witness.json}"
32
+ ],
33
+ "cwd": "targets",
34
+ "timeout_ms": 300000,
35
+ "max_output_bytes": 65536,
36
+ "capsule_path": "capsule/verifier"
37
+ },
38
+ "scientific_chain": {
39
+ "predicted_observable": "The GPT-5.6-discovered set contains exactly 7,194 distinct 24-bit points and all 25,880,415 unordered componentwise integer pair sums are distinct.",
40
+ "performed_test": "capsule/verifier --claim 'There exists a Sidon subset of {0,1}^24 with at least 7,194 elements.' artifacts/sidon-a24-gpt56-7194.witness.json"
41
+ }
42
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vela-science/canopus",
3
- "version": "0.4.4",
3
+ "version": "0.4.6",
4
4
  "description": "A bounded, replaceable research harness over released Vela interfaces",
5
5
  "type": "module",
6
6
  "private": false,
@@ -55,6 +55,8 @@
55
55
  "capsules/erdos1056-k15/bin/linux-arm64/10428401-10428600/verifier",
56
56
  "capsules/erdos1056-k15/bin/linux-x86_64/10428401-10428600/verifier",
57
57
  "capsules/formal-erdos-505-test-dim-one/verifier",
58
+ "capsules/sidon-a24/bin/linux-arm64/verifier",
59
+ "capsules/sidon-a24/bin/linux-x86_64/verifier",
58
60
  "missions",
59
61
  "profiles",
60
62
  "runtime",
@@ -0,0 +1,35 @@
1
+ {
2
+ "schema": "canopus.profile.v2",
3
+ "name": "sidon-a24-at-least-7194-gpt56-v2",
4
+ "target": "sidon:a24-improve",
5
+ "target_packet_schema": "sidon-frontier.a24-improvement-work.v1",
6
+ "draft": "missions/sidon-a24-at-least-7194-gpt56-v2/mission.draft.json",
7
+ "draft_sha256": "sha256:e48a3b7c839d24e65ce716265f15cdf0524039be51d2f0bfc7161c126d371d90",
8
+ "objective_sha256": "sha256:3bfd95405a7cff86f473cf626c9e5ab7fc54e08747a8c0cbf540994c078b5c3e",
9
+ "completion_condition_sha256": "sha256:7141926b5d72c01a817b80ad054e2e664e3c3d16c0b0531228036ad9fd082a86",
10
+ "allowed_artifacts_sha256": "sha256:7ad061b9970829e7456088cb267e141dcabba592f45c086666e5df866735fe02",
11
+ "budgets_sha256": "sha256:651b5fa8060b5b52269f957bba0319e72e9cc3cad74a053fc6206c1ec1679494",
12
+ "replay_argv_sha256": "sha256:b2ad1c73f144ee0dee9707bb9fdf18cad65a6a9fdeac467fab50f2602dac6108",
13
+ "landing": {
14
+ "expected_routes": ["defer"],
15
+ "max_accepted_delta": 0
16
+ },
17
+ "platforms": {
18
+ "darwin-arm64": {
19
+ "worker_profile": "runtime/native-worker/config.toml",
20
+ "worker_profile_sha256": "sha256:12b58762819481ad101e7a172a296224b6050a8a07a7431272e521a4102908da",
21
+ "verifier_capsule": "capsules/sidon-a24/bin/linux-arm64/verifier",
22
+ "verifier_capsule_sha256": "sha256:7641fdaf11a3ad0c4110ade53b7d905c1ce1dae5a16234ed0d4e8d1dc79f548c",
23
+ "verifier_image": "ghcr.io/vela-science/canopus-verifier@sha256:a6f354862f2a3f7d72eb99244c65fa8583c98b74e17e3d5ce6e31ef48aa16536",
24
+ "verifier_platform": "linux/arm64"
25
+ },
26
+ "linux-x86_64": {
27
+ "worker_profile": "runtime/native-worker/config-linux.toml",
28
+ "worker_profile_sha256": "sha256:fddecc4b7458b91f6d55ae16b666d297ae7bcd1a2f5deeb6650dcea60fc0242c",
29
+ "verifier_capsule": "capsules/sidon-a24/bin/linux-x86_64/verifier",
30
+ "verifier_capsule_sha256": "sha256:799b6ba5afb372dd74abd7952b76640d19a2edca9fdd9c54aecb024de5e100cd",
31
+ "verifier_image": "ghcr.io/vela-science/canopus-verifier@sha256:a6f354862f2a3f7d72eb99244c65fa8583c98b74e17e3d5ce6e31ef48aa16536",
32
+ "verifier_platform": "linux/amd64"
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "schema": "canopus.profile.v2",
3
+ "name": "sidon-a24-at-least-7194-gpt56-v3",
4
+ "target": "sidon:a24-improve",
5
+ "target_packet_schema": "sidon-frontier.a24-improvement-work.v1",
6
+ "draft": "missions/sidon-a24-at-least-7194-gpt56-v3/mission.draft.json",
7
+ "draft_sha256": "sha256:6cb1866832cba030d88bd15ae22c0b44766b859f34302320041f170ed02360e0",
8
+ "objective_sha256": "sha256:479105be0f2b4d0f0dfc46ecdb36119f4f3231bc66b8e576ba8d1a61be3bea3f",
9
+ "completion_condition_sha256": "sha256:7141926b5d72c01a817b80ad054e2e664e3c3d16c0b0531228036ad9fd082a86",
10
+ "allowed_artifacts_sha256": "sha256:7ad061b9970829e7456088cb267e141dcabba592f45c086666e5df866735fe02",
11
+ "budgets_sha256": "sha256:6c4d10a504e32935442feea296a4143d1e5769b0b8905939cd60a3a5d8aea40c",
12
+ "replay_argv_sha256": "sha256:b2ad1c73f144ee0dee9707bb9fdf18cad65a6a9fdeac467fab50f2602dac6108",
13
+ "landing": {
14
+ "expected_routes": ["defer"],
15
+ "max_accepted_delta": 0
16
+ },
17
+ "platforms": {
18
+ "darwin-arm64": {
19
+ "worker_profile": "runtime/native-worker/config.toml",
20
+ "worker_profile_sha256": "sha256:12b58762819481ad101e7a172a296224b6050a8a07a7431272e521a4102908da",
21
+ "verifier_capsule": "capsules/sidon-a24/bin/linux-arm64/verifier",
22
+ "verifier_capsule_sha256": "sha256:7641fdaf11a3ad0c4110ade53b7d905c1ce1dae5a16234ed0d4e8d1dc79f548c",
23
+ "verifier_image": "ghcr.io/vela-science/canopus-verifier@sha256:a6f354862f2a3f7d72eb99244c65fa8583c98b74e17e3d5ce6e31ef48aa16536",
24
+ "verifier_platform": "linux/arm64"
25
+ },
26
+ "linux-x86_64": {
27
+ "worker_profile": "runtime/native-worker/config-linux.toml",
28
+ "worker_profile_sha256": "sha256:fddecc4b7458b91f6d55ae16b666d297ae7bcd1a2f5deeb6650dcea60fc0242c",
29
+ "verifier_capsule": "capsules/sidon-a24/bin/linux-x86_64/verifier",
30
+ "verifier_capsule_sha256": "sha256:799b6ba5afb372dd74abd7952b76640d19a2edca9fdd9c54aecb024de5e100cd",
31
+ "verifier_image": "ghcr.io/vela-science/canopus-verifier@sha256:a6f354862f2a3f7d72eb99244c65fa8583c98b74e17e3d5ce6e31ef48aa16536",
32
+ "verifier_platform": "linux/amd64"
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "schema": "canopus.profile.v2",
3
+ "name": "sidon-a24-at-least-7194-gpt56",
4
+ "target": "sidon:a24-improve",
5
+ "target_packet_schema": "sidon-frontier.a24-improvement-work.v1",
6
+ "draft": "missions/sidon-a24-at-least-7194-gpt56/mission.draft.json",
7
+ "draft_sha256": "sha256:34ff550847aad6a4f832b9ef6ee5cff8901020d3e88291c3f9ba95ebc40368d4",
8
+ "objective_sha256": "sha256:509eba95a790b0addd56f67179c9692f93d339db67c9a915b188d3feebc10f92",
9
+ "completion_condition_sha256": "sha256:f5051ed38a914c9efcb677f5db5e49d1fa7f1186ad68e966e0e97f096880c2e7",
10
+ "allowed_artifacts_sha256": "sha256:7ad061b9970829e7456088cb267e141dcabba592f45c086666e5df866735fe02",
11
+ "budgets_sha256": "sha256:94337a17242923ff4c923a88dd101902ee244f09809faba1bcdf090bb0e4ff00",
12
+ "replay_argv_sha256": "sha256:b2ad1c73f144ee0dee9707bb9fdf18cad65a6a9fdeac467fab50f2602dac6108",
13
+ "landing": {
14
+ "expected_routes": ["defer"],
15
+ "max_accepted_delta": 0
16
+ },
17
+ "platforms": {
18
+ "darwin-arm64": {
19
+ "worker_profile": "runtime/native-worker/config.toml",
20
+ "worker_profile_sha256": "sha256:12b58762819481ad101e7a172a296224b6050a8a07a7431272e521a4102908da",
21
+ "verifier_capsule": "capsules/sidon-a24/bin/linux-arm64/verifier",
22
+ "verifier_capsule_sha256": "sha256:7641fdaf11a3ad0c4110ade53b7d905c1ce1dae5a16234ed0d4e8d1dc79f548c",
23
+ "verifier_image": "ghcr.io/vela-science/canopus-verifier@sha256:a6f354862f2a3f7d72eb99244c65fa8583c98b74e17e3d5ce6e31ef48aa16536",
24
+ "verifier_platform": "linux/arm64"
25
+ },
26
+ "linux-x86_64": {
27
+ "worker_profile": "runtime/native-worker/config-linux.toml",
28
+ "worker_profile_sha256": "sha256:fddecc4b7458b91f6d55ae16b666d297ae7bcd1a2f5deeb6650dcea60fc0242c",
29
+ "verifier_capsule": "capsules/sidon-a24/bin/linux-x86_64/verifier",
30
+ "verifier_capsule_sha256": "sha256:799b6ba5afb372dd74abd7952b76640d19a2edca9fdd9c54aecb024de5e100cd",
31
+ "verifier_image": "ghcr.io/vela-science/canopus-verifier@sha256:a6f354862f2a3f7d72eb99244c65fa8583c98b74e17e3d5ce6e31ef48aa16536",
32
+ "verifier_platform": "linux/amd64"
33
+ }
34
+ }
35
+ }