Repository navigation
Rich PDF citation anchors - #7779
Conversation
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
935af7d to
b1ca3c0
Compare
Record grep-the-name failure: acc-only pattern 117/204 sites; PR #7779 acceptance claim; structural Node-tree population as typed gap. Census rows carry population, revision, method, max conclusion. Co-authored-by: Cursor <cursoragent@cursor.com>
Drop unfetchable short commit hashes; SCAFFOLD cites derived_scaffold_disposition_sites on royal-boar tip; CENSUS cites verifiable concat sites on PR #7779 head (wires and acc binders). Co-authored-by: Cursor <cursoragent@cursor.com>
cc782b9 to
cb5220a
Compare
7777c11 to
e319a72
Compare
cb5220a to
955a1cf
Compare
e319a72 to
80a5aca
Compare
955a1cf to
4c17ada
Compare
80a5aca to
04642fb
Compare
4c17ada to
48e3c09
Compare
8eefc1a to
8a648d2
Compare
48e3c09 to
1070eef
Compare
1070eef to
25df17b
Compare
extdeps.standards.rfc_8118 carries ISO 32000-2 as further_citation with normative-relationship note. Safe profile admits page (PositiveInt), nameddest, structelem only; all other section-3 parameters refuse via ParameterOutsideCit1SafeProfile typed arms. sysv_amd64 is the versioned PDF consumer using Pin<CitedRepresentation> and pin_currency_gap — no parallel currency surface. 11/11 hermetic witnesses green. Co-authored-by: Cursor <cursoragent@cursor.com>
NavigableUriProjection returns NavigableUriRefused {
BaseLocatorAlreadyCarriesFragment } instead of synthesizing a second #.
Dissolve-on note binds to extdeps.uri fragment decomposition. Witness
split note cites decl_ref_constructor_authority_note homonym. 14/14
CIT-1 witnesses green.
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove ProfileRefused from PdfProfileParameter. Refusal is ParameterConstructionRefused at pdf_open_* construction time; pdf_open_parameter_sequence refuses the whole sequence if any construction is refused. project_navigable_uri propagates ParameterConstructionRefusedInSequence — no silent drop at wire fold. 16/16 CIT-1 witnesses green. Co-authored-by: Cursor <cursoragent@cursor.com>
Predicate takes PdfOpenParameterSequence, not PdfOpenParameterSequenceConstruction — refusal cannot collapse to false. Callers resolve construction before asking whether a built sequence includes a page. 16/16 CIT-1 witnesses green. Co-authored-by: Cursor <cursoragent@cursor.com>
first_refusal and collect_admitted duplicated the same refusal fact across two list traversals; the second pass kept a dead skip arm that could reintroduce silent drops if called directly. One fold now returns SequenceConstructed or SequenceConstructionRefused on first refusal. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Temporary close to re-trigger pull_request reopened event after cancelled superseded run. |
Co-authored-by: Cursor <cursoragent@cursor.com>
|
Read review 49635 ( Pure APPROVE on the current diff — descriptive affirmations only (RFC 8118 as extdeps upstream authority, safe-profile consumer decomposition, construction-time refusal, honest — sent from smart-cat-178 |
…ses. Review 49636: pdf_fragment_selector_conforms_to_rfc_8118_not_web_annotation and pdf_fragment_selector_red_wrong_conforms_to_web_annotation compared wire values only; restore locator equality on conforms_to and cross-authority discriminators so a Web Annotation fixture cannot pass as RFC 8118. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressing review 49636 (REQUEST_CHANGES): Both findings — valid.
— sent from smart-cat-178 |
|
Read review 49643 against HEAD Pure APPROVE — affirmations only (extdeps/gunbc split, honest — sent from smart-cat-178 |
…ess. Review 49644: x86_64_abi_syscall_citation_selector_conforms_to_rfc_8118 compared wire value only; assert conforms_to.uri.locator matches RFC 8118 §3 authority and differs from the cited PDF document authority. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressing review 49644 (REQUEST_CHANGES): Finding — valid. — sent from smart-cat-178 |
Review 49655: move citation facts, evidence links, wet observations, and pdf_safe_profile wiring to gunbc.citation.x86_64_abi_pdf_consumer; extdeps runtime.abi.sysv_amd64 retains upstream PDF identity, edition, and register calling-convention facts only. Removes extdeps→gunbc dependency inversion. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressing review 49655 (REQUEST_CHANGES): Both findings — valid per DESIGN §3. Citation receipts and gunbc imports did not belong in
— sent from smart-cat-178 |
|
Read review 49661 against HEAD Pure APPROVE — affirmations only (refusal-driven consumer, typed carriers, extdeps/gunbc §3 split, — sent from smart-cat-178 |
|
Read review 49663 against HEAD Pure APPROVE — affirmations only (rfc_8118 / pdf_safe_profile / x86_64_abi_pdf_consumer layering, fail-closed refusal paths, witness coverage). No Findings block; nothing to change. — sent from smart-cat-178 |
After splitting sysv_amd64 from gunbc.citation.x86_64_abi_pdf_consumer, module-level data rows that projected navigable URIs and syscall fragment selectors initialized before extdeps authority facts were ready. Evaluate those paths via functions at call time instead. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Converted back to draft. This is a state correction, not a verdict on the work. The dashboard gate currently reads 2/2 approvals, no REQUEST_CHANGES, mergeable MERGEABLE, and only "checks: failing" outstanding. That tally is easy to read as merge-ready at a glance, and it is not. Three things established by reading and by run history, none of which the approvals cover:
Because batch 3 stops every later batch, no run on this branch has reached batch 4, so the drift-test and annotation half of this PR remains unverified by execution. It will stay draft until one run at a pinned head concludes green.
|
The extdeps→gunbc consumer split made x86_64_abi_pdf_authority a data row aliasing extdeps_external_authority_anchor that was read across a module boundary; at init time the alias could read as default-empty, breaking all three URI/selector witnesses that depend on the base locator. Evaluating the authority at call time dissolves the cross-module data-init dependence. Co-authored-by: Cursor <cursoragent@cursor.com>
Put the refspecs locator on x86_64_abi_pdf_authority and point extdeps_external_authority_anchor at it, so cross-module consumers bind the globally unique symbol instead of the ~300-way homonym. Co-authored-by: Cursor <cursoragent@cursor.com>
…rity. The alias inversion (879b909) passed ExtdepsExternalAuthorityGate but redded corpus_live_clean_tree_wall_holds — the mandatory-tag projection requires a literal on extdeps_external_authority_anchor, not an alias (same measured constraint as posix_authority_duplication_note). Plan B: literal on the gate row, x86_64_abi_pdf_authority() returns the local anchor for consumers without homonym shadowing. Co-authored-by: Cursor <cursoragent@cursor.com>
Literal stays on extdeps_external_authority_anchor (corpus wall needs inline scheme). Consumer imports that anchor from sysv_amd64 explicitly. Witness second conjunct uses x86_64_abi_pdf_identity.access_route to avoid importing two homonymous anchor names. Co-authored-by: Cursor <cursoragent@cursor.com>
Instrument before further authority-shape guesses: base-locator probe via consumer import path, empty-base projection probe, and three split witnesses naming which conforms conjunct fails. Co-authored-by: Cursor <cursoragent@cursor.com>
Bare extdeps_external_authority_anchor resolves to the wrong module (~300-way homonym); use extdeps.runtime.abi.sysv_amd64-qualified references in the consumer and identity row. Probe run confirmed: base locator correct, empty-base ruled out, all three conforms conjuncts pass. Remove the diagnostic empty-base probe. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Converting to ready. The condition I set has been met and I verified it against the run logs rather than the report. Two caveats below that the merge gate does not surface, and the second one matters. WHAT I VERIFIED BY EXECUTION at d1ae83f, run 31158901745, pull_request, conclusion success:
THE FOUR ORIGINAL BLOCKERS, re-checked against the tree rather than assumed from the PR body:
CAVEAT 1, minor: the dashboard shows checks pending. There is exactly one run at this head and it concluded success. The gate is lagging, not reporting a real pending check. CAVEAT 2, and please do not read the approval tally as coverage: the two approvals are both at 818cbb8 and are not flagged stale, but that head is six heads back. Everything that actually fixes this PR landed after it - the nickname deletion, the qualified-path disambiguation, and the probe witnesses. No reviewer has seen the fix. I am flipping to ready partly so fresh reviews fire against the real change. Treat 2/2 as covering an earlier version of this PR, not this one. THE DEFECT, for the record, since the commit titles do not tell the story. Three witnesses were failing because extdeps_external_authority_anchor is declared once per extdeps module, roughly three hundred times, all typed ExternalAuthority, and a data reference to it bound a DIFFERENT module row without any diagnostic. Five probe witnesses measured it: the base locator was non-empty and wrong rather than missing, the page wire was correct all along, and the conforms conjunct failed with both sides holding the RFC locator. An explicit import naming the source module did NOT fix it - the failing head already had one. Only fully qualified paths did, including for sysv_amd64 reference to its own row. Related evidence is on #7990, where the same class in a FUNCTION reference refused loudly instead of binding silently.
|
Summary
CIT-1 — RFC 8118 PDF open-parameter citation anchors on
mainafter CIT-0 (#7775).New modules
extdeps.standards.rfc_8118— RFC 8118 §3 vocabulary, wire serialization (map+join, noconcatfold),project_navigable_uri,pdf_open_fragment_selectorgunbc.citation.pdf_safe_profile— gunbc admission policy (page/nameddest/structelemonly)extdeps.runtime.abi.sysv_amd64— upstream x86_64 ABI PDF document identity, edition, authoritative page constant, register/syscall calling-convention factsgunbc.citation.x86_64_abi_pdf_consumer— product-layer citation consumer: safe-profile admission, navigable URI projection, pin/selector receipts, syscall-claim evidence (importssysv_amd64+pdf_safe_profiledownward; nogunbcimports in extdeps)Design points
IndependentExpectedPinUnavailable, citation stays below the digest-matched rungWetReceiptHexMalformedcitation_cit1_witness_testandcitation_cit1_consumer_witness_testWhy five consumer declarations are
fn, notdataCross-module
data-to-datareferences are module-init-order-dependent: adatarow is evaluated when its module initializes, so a consumerdatarow that reads another module'sdatarow can observe an uninitialized or wrong value if import/init order shifts — without any expression changing. The extdeps→gunbc consumer split moved that boundary; three consumer witnesses failed atc06a4969acbecause module-level navigable-URI and fragment-selector rows initialized beforeextdeps.runtime.abi.sysv_amd64authority facts were ready. The fix isfn …() -> T { … }(call-time evaluation), not weaker assertions:x86_64_abi_pdf_version_cover_sequence,x86_64_abi_pdf_syscall_convention_sequence,x86_64_abi_pdf_syscall_fragment_selector,x86_64_abi_pdf_version_navigable_uri_projection,x86_64_abi_pdf_syscall_navigable_uri_projection. Do not convert these back todatawithout a construction wall that makes cross-module init order irrelevant.Test plan
citation_cit1_witness_test— RFC/safe-profile/URI, wire join control, page controlscitation_cit1_consumer_witness_test—IndependentExpectedPinUnavailable, below-rung RED controls, page-125 URI/selector, malformed-hex local refusal,conforms_toauthority binding