Repository navigation
feat: publish repository-owned pointer pendants - #200
Conversation
…y-pendant-20261020
…aegis-ro425e.16) Engines whose share usage advertises --alignments now receive the reviewed physical carrier, and the builder refuses a manifest whose alignments_hash, files.alignments member or copied bytes differ from it. Older engines keep the existing inline empty carrier and never emit an undeclared member. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BkdpDkAkbTvXvNbNacVpJb
The public-repository identifier guard refuses any /home/<account>/ path outside its placeholder list. The private-summary negative only needs a /home/ path, so a placeholder account keeps that refusal under test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BkdpDkAkbTvXvNbNacVpJb
|
CHANGES — #200, exact 60733f1 / e3296e0. P1: queries/repository-share-bobbin.rq omits the public publication-policy catalogue. The builder loads the catalogue then projects this query, and subsequently invokes verify-repository-share-receiver.py, which requires all four reviewed rules. Independent RDF control with the exact query: four rules in source -> zero in share; the README pointer positive survives. Add the bounded public policy branch, preserving private-policy exclusions, with catalogue-positive and secret/private negative controls. P1: scripts/publish_repository_share.py:18-26 omits alignments.ttl from MEMBERS. The same proposal builder detects native --alignments support, carries/hash-verifies that file, but check_share/package and the hosted verifier reject it as unexpected. Independent paired control: old valid share passes; adding exactly the declared/hash-bound reviewed empty carrier passes builder.verify_carried_alignments but publisher.check_share raises unexpected or non-regular share member. Admit only the manifest-declared/hash-bound carrier end to end, retaining missing/corrupt/undeclared/symlink refusals. Full18path proposal read; Tim two-witness refresh qualified. No heavy build, actual native corpus, upload, merge, install or runtime write. Green hosted five SUCCESS + conditional Pages skip independently confirmed. Controls are private synthetic source-level tests, not native corpus acceptance. Exact source preserved. Tim retains landing; same-feedback delta after fixes/fresh green. |
The share query never projected the public publication-policy catalogue, so the receiver verifier, which requires all four reviewed rules, could not pass. Add a bounded branch for publication-policy rule IRIs with only their label, regex and tier, leaving out any IRI the private release policy also names, so a private pattern cannot ride along and the receiver fails closed. The publisher's member allowlist rejected alignments.ttl, which a native engine with --alignments carries and the builder already hash-verifies. Admit it only when the manifest declares it and binds its exact bytes; an undeclared, missing, altered or symlinked carrier still refuses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BkdpDkAkbTvXvNbNacVpJb
|
SOURCE APPROVE — SAME feedback, exact 5eb7b22. Both prior P1 findings are repaired. The public policy catalogue survives; native NOT EXISTS/GRAPH controls exclude private-only and shadowed rules, with explicit graph and repository-pointer positive controls. Native 0.16.0 clean 5fb93a0f was copied and hash-pinned before the private run. The old query omits the rules; removing the exclusion retains a shadowed public rule. Native default scope is ROOT, distinct from the RDF union fixture. Declared/hash-bound alignments now pass packaging and hosted readback; missing, corrupt, undeclared and symlinked carriers still refuse. Four query and eleven publication controls pass. HOME157 paths +5 resources clean; no full corpus/build/upload/runtime claim. Normal strict-base refusal is preserved. Current diff-bound T3 classification 319572475a4dbdb42f9745f730a1366e472ffa787212abea9494c7737a169ee5; accepted review 43f66d77bf04a4b9ecad28a0ea726d80d324e38f2b159d7b7672533f9b7ae393. Tim retains normal landing/current gates. Original CHANGES retained; this verdict supersedes those two findings only. |
…egration-20261023
Bobbin currently has no repository-owned release pendant job. This adds a copied pointer-only builder/publisher and a hosted post-release verifier for the archive, checksum and provenance assets. The trusted host keeps publication policy private; default host dispatch still enables only Quipu.
The corpus includes source-bound idea/interface/decision/start-here summaries, freshness metadata, stored queries and validating shapes. It retains code/document pointers and excludes chunk text and line spans. The SSSOM/RDF carrier is explicitly empty because no approved Bobbin cross-repository mapping set was supplied; missing/corrupt inputs still refuse. No accepted identity mapping is fabricated.
Validation: nine knowledge/refusal controls (including actual native schema validation), six packaging/refusal controls, three RDF query controls, existing release-workflow contracts, actual native stored-query registration and actual label positive/absent lookup pass. A real private native index of the current README produced22 chunks, resolved its label and kept the absent pointer absent; this is bounded pointer coverage, not a full corpus build. HOME guard:157 watched paths+5 UID resources clean. Source compilation and whitespace checks pass. The refreshed README witness preserves current signing-key guidance.
Limits: full Bobbin native corpus build, model-recipe integration, actual public assets, fresh-load search quality and twelve-repository rollout remain unaccepted. The engine's manifest recipe/default rebuild work is separate. This source does not install a service, change credentials, enable runtime loading, or clear deployment holds.
Rollback: revert the scoped proposal to current b036433; the existing binary release and Quipu-only host behavior remain the baseline.