Repository navigation
Register Harbor 0.24.0 as a container harness with a measured install, smoke and route-b probe - #1047
Merged
seathatflowsinourveins merged 2 commits intoOct 12, 2026
Conversation
|
Dependency limit exceeded — report not shown. This pull request scan exceeded the 10,000-dependency limit applied to this scan, so the results are incomplete and may be inaccurate. To avoid reporting false positives, Socket has not posted a report. Upgrade your plan to raise the dependency limit and get complete reports, or view the partial scan in the dashboard. Socket is always free for open source. If this is a non-commercial open source project, contact us to request a free Team account. |
seathatflowsinourveins
marked this pull request as ready for review
October 12, 2026 19:15
…, smoke and route-b probe Records the first measured Harbor 0.24.0 install on this host (private uv tool scope): a zero-spend oracle trial and one claude-code (claude-haiku-5-5) trial of Harbor's own hello-world task through Docker, both reward 1.0, and one container-to-gateway TCP probe that timed out under the rootless daemon's --disable-host-loopback. Adds the decision record with the CC's 2026-10-12 rulings and the receipt, and registers the receipt. Adds the harbor component to the optional profile with the registrations a new component requires: the recipe map and recipe row, a freshness row in the upstream snapshot, a lifecycle audit row, the regenerated decision index, final-stack report and handbook (with its rolling receipt entry), and the one architecture line citation that the insertion moves. The landscape coverage rule also needs a layer candidate: Harbor is added by hand as a conditional candidate in quality-evaluation. It changes no verdict field (verdict review gate: 0 changed rows) and is flagged in the PR body and the decision record for the CC to rule on. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins
force-pushed
the
foundation/harbor-parallel-runtimes-20261012
branch
from
October 12, 2026 20:47
1f5413b to
5164a06
Compare
…tecture grants, source-read route marks The receipt no longer publishes a digest of any unpublished byte. The ten digests of run output, a transcript and home-state snapshots, and the duplicate freeze digest in the record, are removed with every prefix; the private originals are listed by name only. What is published with digests is limited to four sanitized files whose bytes are now in the repository: the resolved-distribution list, the route-b probe's output and script, and a byte-identical copy of the public rootlesskit file at its tag. tests/test_provenance_digest_custody.py rejects a provenance digest that hashes no repository file (fail-first: 14 in this receipt, none after) and freezes the 12 older receipts that carry the shape by count. The Architecture reader refused the new receipt and the earlier Harbor receipt that the candidate row now cites, which stopped every committed catalog build (hosted validate shard failure, one test). Both get an exact architecture_receipt grant in tools/local-pages/source_policy.json and an entry in an explicit post-pin ledger in tests/test_local_pages_policy_grants.py; the committed list must equal the reviewed union plus exactly those paths, and unlisted paths stay refused. From the first Claude read and the CC's ruling: the candidate row cites the 2026-10-09 receipt and is labelled mixed; the terminus-2 api_base gateway route is marked source-read, not live-tested wherever it is stated; the timeout's cause is labelled read from source; the 19.66 s outside the smoke phases is located and attributed; the supersession of the 2026-09-20 defer-install row is recorded as a follow-up. From the GPT read's follow-ups: exact oracle, smoke and probe commands, the daemon's process line and the shim text; restart is not established rather than not applicable; the operating rules separate measured settings from proposed prerequisites. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins
deleted the
foundation/harbor-parallel-runtimes-20261012
branch
October 12, 2026 23:09
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 17, 2026
adoption/platforms/linux-wsl2-new-distro.md:1247 keeps the raw stage-1 transcript private and never committed, and :1240-1274 prescribe a stage-1 receipt filled from adoption/templates/wsl/stage1-receipt.example.json instead. So this commit: - removes evidence/artifacts/live-distro-stage1-logs-20261017/ (the three redacted transcripts and their receipt.json) and its four files[] rows; - adds one receipt per distribution under evidence/receipts/: wsl-new-distro-stage1-nativestack2604-20261002, wsl-new-distro-stage1-nativehorizonny-20261015 and wsl-new-distro-stage1-nativehorizonny-r1-20261015, each filled only from its own private transcript, with the template's 212 recipe steps, null where the transcript holds no record, and source_transcript giving the original's path, size and sha256 on Z:; - registers the three files through scripts/host_receipts.py register_file and adds their receipts[] rows (same id, kind, component_ids, claim and limitations, plus path), as the recipe's Contribute step says. Sanitizing follows :1248-1250 and <win-host>; the transcripts hold no GUID. The Architecture build refuses a registered receipt that has no exact grant (tests.test_local_pages_architecture_landscape_exclusions failed in CI run 39001649622, validate-shard-6, at b72d3d6). Following the post-pin grant precedent (#1047, #1060, #1178, #1191), this commit adds one exact architecture_receipt row per new receipt to tools/local-pages/source_policy.json and one POST_PIN_RECEIPT_GRANTS entry each, with its reason, to tests/test_local_pages_policy_grants.py. Both files are re-registered through register_file. Co-Authored-By: Claude Opus 5.5 <[email protected]>
5 tasks done
seathatflowsinourveins
added a commit
that referenced
this pull request
Oct 17, 2026
…onNY's rehearsal (#1235) * Harvest the live distros' Stage-1 transcripts as sanitized evidence (cleanup H01) Add evidence/artifacts/live-distro-stage1-logs-20261017/ with sanitized copies of the three Stage-1 PowerShell transcripts that existed only on Z: (NativeStack2604, NativeHorizonNY and NativeHorizonNY-r1). Add receipt.json, which gives each original's path, size, sha256 and mtime and lists every redaction by line. The originals stay on Z: unchanged. Sanitizing follows adoption/platforms/linux-wsl2-new-distro.md:1248-1250 and docs/decisions/2026-10-09-host-name-scan.md:160-161. The placeholders are <win-host>, <win-user>, %USERPROFILE% and <WSL_USER>, replaced inside lines only: 66 lines change, and no line is added or removed. CRLF becomes LF per .gitattributes:2. The four files are registered in manifests/evidence.json through scripts/host_receipts.py register_file. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Rework H01 into stage-1 receipts per the WSL recipe's documented form adoption/platforms/linux-wsl2-new-distro.md:1247 keeps the raw stage-1 transcript private and never committed, and :1240-1274 prescribe a stage-1 receipt filled from adoption/templates/wsl/stage1-receipt.example.json instead. So this commit: - removes evidence/artifacts/live-distro-stage1-logs-20261017/ (the three redacted transcripts and their receipt.json) and its four files[] rows; - adds one receipt per distribution under evidence/receipts/: wsl-new-distro-stage1-nativestack2604-20261002, wsl-new-distro-stage1-nativehorizonny-20261015 and wsl-new-distro-stage1-nativehorizonny-r1-20261015, each filled only from its own private transcript, with the template's 212 recipe steps, null where the transcript holds no record, and source_transcript giving the original's path, size and sha256 on Z:; - registers the three files through scripts/host_receipts.py register_file and adds their receipts[] rows (same id, kind, component_ids, claim and limitations, plus path), as the recipe's Contribute step says. Sanitizing follows :1248-1250 and <win-host>; the transcripts hold no GUID. The Architecture build refuses a registered receipt that has no exact grant (tests.test_local_pages_architecture_landscape_exclusions failed in CI run 39001649622, validate-shard-6, at b72d3d6). Following the post-pin grant precedent (#1047, #1060, #1178, #1191), this commit adds one exact architecture_receipt row per new receipt to tools/local-pages/source_policy.json and one POST_PIN_RECEIPT_GRANTS entry each, with its reason, to tests/test_local_pages_policy_grants.py. Both files are re-registered through register_file. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Fold both families' reads of c4c5242 into the three stage-1 receipts The three receipts are rebuilt by the same transcript-line generator, and their files[] and receipts[] rows are re-registered. Claude family: - P2-1 (two real-run receipts, the 29 R1 rows): rows the transcript does not record keep the template's text, so no R1 row names a production distribution (linux-wsl2-new-distro.md:167-168, :172, :1269-1270). The steps[] limitation states the R1 exception; in the r1 receipt only the recorded R1 rows carry its own name. - P3-1 (nativestack2604 steps 90, 91, 94, 95): the unlabeled '0' lines are no longer read as exits; those exits are null and the excerpts say so. - P3-2 (creation_path_basis and the 24 W6 excerpts): no "--from-file" claim; the basis is W3's '#cloud-config' output and the absent W6 block. - P3-3 (nativehorizonny rehearsal block, its limitation and the 29 R1 excerpts): the R1 identity is hedged as "taken as". - P3-4 (r1 rehearsal.basis): cites docs/decisions/2026-10-15-new-wsl-clean-install-plan.md:914-915, whose 18:37:42Z removal equals the transcript's last End time, and drops the "every proof held" implication. - P3-5 (every null field): each receipt names every null field with its reason, and the generator asserts none is left unnamed. - P3-6 (nativestack2604 rehearsal limitation): points to evidence/artifacts/new-wsl-rehearsal-20261002/ and says those records name StackRehearsal2604 and its e1, r2 and r3 runs, not NativeStack2604. Muse family: - P2 (nativehorizonny :15), P2 (nativehorizonny-r1 :15) and P2 (nativestack2604 :15), with their manifest copies: covered by the full null-field naming above. - P2 (nativestack2604 :19): the rehearsal block is described as present with null fields. - P3 (each receipt :14): the sanitizing note lists only the placeholders in copied values, keeps the template's own placeholders apart, and says why <win-user> and <win-host> do not appear. - P3 (nativehorizonny :20): same fix as Claude P3-3. 13 of 13 findings covered. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Cleanup H01 fold: move three 2604 null fields to the no-line bucket, correct the sanitizing note Closes both findings of the CC verdict on 39ab807 (/var/tmp/cc-cc-work/nas1235-micro/CC-DELTA-39ab8072.md, CHANGES_REQUESTED; full read /var/tmp/cc-cc-work/nas1235-micro/MICRO-delta-39ab8072.md). P3-A: in the NativeStack2604 stage-1 receipt, first_launch.user_prompt_marker, first_launch.oobe_failed_marker and first_launch.systemd_user_session_warning sat in the "shows the source command but not the output" null bucket (:17). The transcript has no line for the W5 launch command (its W5 block shows only an unlabeled '0' before its first labeled command, as the receipt's own launch row says), so the three fields move to the "no line for the source command" bucket (:18). The manifest row matches. The NativeHorizonNY receipts keep their buckets: their launch is labeled. P3-B: the sanitizing note (:14 of each of the three receipts) said the Windows user name and computer name occur only in transcript header lines the receipt does not copy. They also occur in transcript body paths and in the Host Application header, of which each receipt copies a sanitized run-from path (deviations[0] in 2604, deviations[1] in the NativeHorizonNY receipts). The note now says so and names the replacements that remove them. The three manifest copies match word for word. The three receipt rows in manifests/evidence.json are re-registered with host_receipts.register_file (sha256 and bytes). validate.py and evidence_manifest.py --check pass. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> * Cleanup H01 fold 4: give each receipt's sanitizing note the facts its own transcript supports Closes P3-1 of the CC verdict on 5ed31f6 (/var/tmp/cc-cc-work/nas1235-micro/CC-DELTA-5ed31f69.md, CHANGES_REQUESTED; full read /var/tmp/cc-cc-work/nas1235-micro/MICRO-delta-5ed31f69.md). The previous fold copied one sentence into all three receipts' :14 note. It was true only for the Windows user name in the NativeStack2604 receipt. The verdict records that the sentence came from the CC's earlier verdict. NativeStack2604 receipt: the Windows user name appears in body paths, in the Host Application header (copied only as the sanitized run-from path at deviations[0]) and in the Username and RunAs User headers, and the listed replacements remove it. The computer name appears only in the Username, RunAs User and Machine headers, which the receipt does not copy. NativeHorizonNY and r1 receipts: the user name appears in two body lines (the user-data name line and the default= line, rendered <WSL_USER>) and in the Username and RunAs User headers. The computer name appears only in the Username, RunAs User and Machine headers. The Host Application header carries neither name, and deviations[1] copies its run-from directory as it stands. The three manifest copies (manifests/evidence.json, the limitations of each receipt row) match the receipts word for word, and the three file rows are re-registered with host_receipts.register_file (sha256 and bytes). No other line changes. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
uv toolscope), one zero-spend oracle trial and oneclaude-codetrial (claude-haiku-5-5) of Harbor's own hello-world task through Docker, and one container-to-gateway TCP probe; registers the receipt, addsharboras an optional stack component with the registrations a new component requires, and adds the decision record with the CC's 2026-10-12 rulings. The second commit answers the first Claude and GPT reads of the first head.489b2632(main at the pure rebase; the pull request was opened on2f59d744). The second commit is a fast-forward on top of the rebased head5164a06band the branch is not rebased again here, so both reads can delta-read it against5164a06b; the one rebase onto main happens at landing (the merged-tree result against main at push time is under "Local commands run").lane:foundation. The change touches two shared hot files (manifests/evidence.json,manifests/stack.json) through the hot-file protocol; re-registration and--writeregeneration do not by themselves make a PR shared (docs/lanes.md), the precedent Register Hindsight research memory and service templates #854 added a stack component underlane:foundation, and no trading path is touched.docs/decisions/,evidence/receipts/,evidence/artifacts/harbor-smoke-20261012/(four sanitized files),manifests/(hot files),adoption/manifest.json,recipes/README.md,catalogs/landscape/(foundation, upstream snapshot, final-stack report),catalogs/us-equities/decision-index.json(generated),catalogs/foundation/new-wsl-architecture-20261001.json(one moved line citation),blueprints/token-native-focus/saturation-audit.json(lifecycle row),docs/new-wsl-handbook.{json,md}andevidence/artifacts/new-wsl-handbook-20261001/receipt.json(regenerated through the builder, with the receipt's regeneration entry),tools/local-pages/(two exact Architecture grants and a README sentence),tests/(one new module, one extended).SOTA sources
bf8996ef6d97d014924dc1a5e4acc7e9b19b27a1peeling tob53b8134e1241686dca7759af188f987ecc48e8b: install routeREADME.md#L22(uv tool install harbor); installed wheelharbor-0.24.0-py3-none-any.whl, SHA25623b7ba616a3aae4eff561ced5e2c51c7186f2981e53a770dea9c689d3969877c(PyPI metadata), re-downloaded and re-hashed here, installedRECORD488 ok / 0 bad.dc933be707feafbb9efcdf092cb8a0e391332617(31 commits after v0.24.0;gh apicompareahead_by=31): adapter and connection sources read for the route table,src/harbor/agents/model_connection.py,agents/factory.py:40-90,agents/installed/{claude_code,codex,opencode,pi,goose,mini_swe_agent,openhands_sdk,deerflow}.py,trial/single_step.py:40-54,trial/trial.py:551-556,1052-1058,cli/jobs.py:542,635,2294,2803(the retry, resume and regrade interfaces),telemetry.py:40-45,479-480,constants.py:4,examples/tasks/hello-world/,docs-mintlify/telemetry/telemetry.mdx. The cited files are identical in the v0.24.0 wheel except five, listed in the decision record.4fab82caf726318cef33bf82912546b8a529eaab):pkg/network/gvisortapvsock/gvisortapvsock.go#L106-L124and#L142-L148: the gateway address and the NAT to host127.0.0.1that exists only without--disable-host-loopback(the installed daemon runs with it). A byte-identical copy (git blob805e97a93257f447aff56ea8d1463d306e77f00c, Apache-2.0) is published in this PR asevidence/artifacts/harbor-smoke-20261012/upstream/gvisortapvsock.go.txt.tools/local-pages/architecture_evidence.py:161-162,193-197,tools/local-pages/source_policy.py(authorize),scripts/local_pages_policy_grants.pyandtools/local-pages/README.md; the hot-file protocol indocs/lanes.md; precedent Register Hindsight research memory and service templates #854 (f24910e5e) for adding a stack component;docs/decisions/2026-10-09-harbor-0240-profile.mdandevidence/artifacts/harbor-0240-currency-20261009/receipt.jsonfor the prior pin and slot.Evidence-class table
uv tool install --no-build harbor==0.24.0into a private scope; wheel digest andRECORDverified (exit 0, 91 distributions, list published)native_provenevidence/receipts/harbor-smoke-20261012.jsondata.installnative_provendata.oracle_dry_runclaude-code+claude-haiku-5-5passes the same task (reward 1.0, 206 s, 32,704 in / 106 out tokens, $0.001053); 19.66 s outside the four phases located and attributed from sourcenative_provendata.smoke10.0.2.1:21128timed out; the control to10.0.2.1:53openednative_provendata.route_b_probe; output and script published--disable-host-loopback, and the daemon runs with itsource_reviewsettings.jsonunchanged; real-HOME Harbor, uv and docker directories unchanged; other movement attributednative_proven(bounded)data.isolationsource_reviewterminus-2--ak api_base=gateway route (model client in the Harbor process on the host)source_review(source-read, not live-tested)provenancedigest hashes a repository filelocal_integrationtests/test_provenance_digest_custody.py(fail-first below); prefix auditlocal_integrationtests/test_local_pages_policy_grants.py, the committed-catalog test (fail-first below)local_integrationLocal commands run
Decision record
docs/decisions/2026-10-12-harbor-parallel-runtimes.md: evidence, the route table and what each route's source accepts, the CC rulings (environment shim accepted as a disclosed scratch-only isolation measure,HARBOR_TELEMETRY=offstanding, route policy: gateway routes useterminus-2with--ak api_base=(source-read, not live-tested), container adapters use route a only until a measured route exists, no change to the Docker daemon or rootlesskit), the custody of the run originals, the Architecture grants and the open questions. What would overturn the container-adapter route policy: a measured container-to-gateway route (for example a gateway address the container network reaches) from one probe like the recorded one.Host evidence
No files under
evidence/hosts/; noplatform_statuschange. The receipt is a repository evidence receipt, not a host receipt.Follow-ups and decisions for the CC
scripts/landscape.py:1326requires every selected stack component to be a layer candidate. Hindsight was already a candidate before Register Hindsight research memory and service templates #854; Harbor was not. This PR adds one hand-written candidateHarbor(conditional,mixed) tofoundation/quality-evaluationincatalogs/landscape/foundation.json. The row records the parallel-runtime harness role; the layer already carries Harbor as the trajectory-analysis companion (slotfoundation/quality-evaluation/trajectory-analysis), a role the row does not qualify. It cites the 2026-10-09 currency receipt by path (evidence/artifacts/harbor-0240-currency-20261009/receipt.json) as the prior evidence it rests on, next to this PR's receipt. It is a recorded addition and changes no verdict field (gate: 0 changed rows). The landscape sweep owns confirming or superseding it. The usual route (sweep first, then stack) was not run, and this PR does not claim the layer was reopened.receipts[]stayed at 239 from the reviewed pinc945ea1fto the base), so the pinned-union test had no way to take one. This PR adds an explicit post-pin ledger (POST_PIN_RECEIPT_GRANTS) with a mutation test; it is the first use, and a different mechanism (for example re-pinning to a landed commit) would replace it.terminus-2--ak api_base=gateway route is source-read and has no live check; restart, replay, retry, refusal and cleanup acceptance through Harbor's own interfaces (harbor jobs resume,--max-retries,harbor jobs regrade) is not established; agent CLIs install latest unless--ak version=is given; agent setup was 171 s of a 204 s trial;openhands-sdkneeds a credential-runner entry that exportsLLM_API_KEY; telemetry is on by default and an earlier user-scope install shows it was used; two 0.24.0 installs now exist; the upstream acceptance command was not run.g5_catalog_reconciliation.current_countsstill reads 70 selected components (written bytools/sota-convergence/merge_fragments.py; Register Hindsight research memory and service templates #854 left it too). CC ruling: a follow-up outside this PR.catalogs/convergence-practice/architecture-wave/harbor-framework__harbor.json,defer-install) is not edited: it is a dated, hash-listed ledger entry bound to the v0.23.0 review, and no generator that writes it was found inscripts/,tools/orblueprints/. The supersession is recorded in the decision record (Supersession, open question 10); a superseding record or pointer from that catalog's owner is a follow-up.1f5413b6and its rebase5164a06b) carry the ten private-byte digests this commit removes. The final tree and a squash merge do not; the branch history keeps them until the branch is deleted.provenancedigests in 12 older receipts that resolve to no repository file. Freezing is not clearing: each older receipt still needs its own review under the same rule, which this PR does not do. The GPT read's fourth P3 (locator and hostname hygiene) reported zero added-line hits; its inherited context lines and the historical pinned locators are left as recorded.Checklist
version comment (no floating tags). (No workflow change.)
permissions: {}and grant each jobonly what it needs (
contents: read, or an explicitly justified addition). (No workflow change.)added without a documented owner.
moved or overwritten).
🤖 Generated with Claude Code