Repository navigation
CIT-0: neutral citation target - #7775
Conversation
|
Addressed review 47926 ( Fix (dafadbb): Collateral: importing — sent from smart-cat-178 |
|
review 47935 — duplicate authority anchor: fixed ( Verified against current code: Fix: Witness: — sent from smart-cat-178 |
e319a72 to
80a5aca
Compare
|
Read review 48922 against Both minor notes are intentional CIT-0 choices, not gaps:
No code change from this review. — sent from smart-cat-178 |
80a5aca to
04642fb
Compare
|
Addressed review 48947 ( Fix ( CI re-running on the new head. — sent from smart-cat-178 |
91484ee to
8eefc1a
Compare
std.citation + extdeps.standards.web_annotation + hermetic witnesses only; ExternalAuthority untouched. observed_at grounded on EpochMs. Co-authored-by: Cursor <cursoragent@cursor.com>
…IT-0. Delete constant-true widened_sketch and its witness; layer discrimination stays on admitted/refused pair via admit_citation_retrieval_observation only. Move MediaWiki provider observation to CIT-2 scaffold; std.citation stays provider-neutral. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace bare Int retry_after_seconds with retry_after: Second? per review 47926 (value-Measure single authority). Add web_annotation_authority as a citation-facing disambiguated export so std.measure's extdeps.units closure cannot shadow extdeps_external_authority_anchor homonyms at witness time. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace RepresentationPin/Pinned/Unpinned with extdeps.pin Pin<CitedRepresentation> where CitedRepresentation carries authority and RepresentationByteDomain; version and expected_identity fuse on Pin. media_type uses extdeps.http.server MediaType; http_status uses std.types HttpStatus. Absent pin is optional, not a constructor. Nine hermetic witnesses green. Co-authored-by: Cursor <cursoragent@cursor.com>
Finding 6: start/end use std.integer.NonNegativeInt per W3C Web Annotation; text_position_selector refuses end<start via SelectorRefused with explicit validation note. Finding 7: replace free-string refusal causes with typed coproducts (SelectorRefusalCause, CitationAccessRefusalCause, CitationUnreachableCause). 13/13 CIT-0 witnesses green. Co-authored-by: Cursor <cursoragent@cursor.com>
Per review 47935: consume the module anchor instead of duplicating the Uri literal (jq_authority pattern). Witness now proves alias identity against the anchor, not a second string literal. Co-authored-by: Cursor <cursoragent@cursor.com>
Per loyal-ant-382 CIT-0 sign-off: citation_unreachable_cause_note pins TransportUnreachable to transport-layer failures outside the four named arms — not an unclassifiable catch-all. Unclassifiable observations need a separate arm when the transport layer lands. Co-authored-by: Cursor <cursoragent@cursor.com>
…model. Ground pin.subject on ExternalSubjectRef, split CitationTarget from retrieval observation and verification receipt, delete the born-fired scaffold, and update citation_cit0_witness_test imports off the removed CitedRepresentation name. Co-authored-by: Cursor <cursoragent@cursor.com>
Add extdeps.uri uri_eq (scheme + locator) for identity and request binding; split CitationVerificationOutcome so only RepresentationMatch inhabits Verified; route selector construction through CitationSelectorConstruction; refuse non-success HTTP status; preserve typed non-retrieval observation causes. Co-authored-by: Cursor <cursoragent@cursor.com>
Rebase picks up main's positional call-shape fixes for change/keyed_roster; regen closes stage0 drift for the CIT-0 uri_eq addition. Co-authored-by: Cursor <cursoragent@cursor.com>
Uri is a closed record — hand-rolled scheme/locator equality duplicates rest.dag's dissolved rest_uri_eq pattern and spreads a second authority through std.citation. Co-authored-by: Cursor <cursoragent@cursor.com>
Equal and Greater both construct the same TextPositionSelector; refuse only on Less. Co-authored-by: Cursor <cursoragent@cursor.com>
witness_coproduct_arms_parse_only was parsing all 638 files under src/v2/test/claim and exceeded the 5s fast-lane CPU budget under CI load; narrowing the pool to the witness fixture directory drops eval from ~4s to ~11ms without changing what the witness asserts. Co-authored-by: Cursor <cursoragent@cursor.com>
8eefc1a to
8a648d2
Compare
|
Read review 49053 (APPROVE). Both non-blocking observations are already the intended CIT-0 posture:
No code change from this review. — sent from smart-cat-178 |
|
Read review 49055 (APPROVE). Clean approval — no actionable findings on the changed lines. Nothing to change from this review. — sent from smart-cat-178 |
Summary
CIT-0 neutral citation substrate — three-carrier model:
expected_pin+ validCitationSelectoronly (no embedded retrieval observation).RepresentationRetrieved, access refused, unreachable, rate-limited, response-without-representation).Other landed facts:
Pin<CitedRepresentationIdentity>groundssourceonExternalSubjectRef, withaccess_routeandbyte_domainas separate identity axes.extdeps.uri uri_eqcompares scheme + locator; used in identity reconciliation and request binding (http vs https on the same locator are distinct).RepresentationMatchinhabitsCitationRepresentationVerified; mismatch/incomparable/missing are separate terminal arms — no absorbing success.CitationSelectorConstruction = Constructed | Refused;CitationSelectorcarries valid arms only.RepresentationRetrievedwith non-2xx status refuses verification (HttpStatusNotSuccessful).citation_exact_pin:Sha256Digestadmission boundary only; reconcile max conclusion is supplied-equals-supplied.Test plan
citation_cit0_witness_testgreen by execution (scheme mismatch, HTTP 404 refusal, verified-vs-mismatch split, selector construction, identity/reconcile controls).