Skip to content

Views step D: verified bind, view token and steady-state cost token (4v-4, 4v-5) - #1016

Open
aft-alfonso[bot] wants to merge 31 commits into
land/views-e-legacy-importsfrom
land/views-d-verified-bind
Open

aft-alfonso[bot] wants to merge 31 commits into
land/views-e-legacy-importsfrom
land/views-d-verified-bind

Conversation

@aft-alfonso

@aft-alfonso aft-alfonso Bot commented Oct 26, 2026

Copy link
Copy Markdown

Stacked on #999 (views step E). Views stay default-off and unrouted; nothing changes for users.

  • v3-only checkout registration and driver: a fresh checkout builds a base through the base builder (admission and disk budget) and publishes a base-referencing view without writing old-format storage; fresh bootstrap is lexical-only, and other planes refuse with a typed reason before claiming (they get bootstrap in steps G and H).
  • Publication: the driver's PublishFence and transition mutex enclose final validation and the pointer CAS, so a retired driver cannot publish after validating.
  • Watcher: cookies, overflow recovery that clears only the epoch a strict re-check covered, and typed partial-coverage status on inotify (a root with an unreadable subfolder keeps watching the rest; incomplete coverage never grants verified-bind trust).
  • View token bound to root and git dir at first consumption; stat evidence files are reclaimed with their generation by the existing pinned sweep.
  • Verified bind on every base stays strict for now: proving a base's git tree needs a full-index tree builder and per-file proof receipts, sketched for a follow-up step. FSEvents (macOS) verified bind stays off.
  • Includes the 4v-1 (git index reader) and 4v-2 (watcher cookies) code commits from land: views-4v-1-git-index-reader #995 and land: views-4v-2-watcher-cookies #994 via cherry-pick.

ualtinok and others added 30 commits October 26, 2026 19:32
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
(cherry picked from commit 2f67e55)
The large bidirectional-pump golden test exposed BrokenPipe because check-attr --stdin treats arguments after -- as forbidden pathnames, not attribute names. Keep the fixed conversion attribute names before any pathname separator. The initial module run passed the other 19 tests; the corrected query test passes on Linux. Windows tests compile with warnings denied.

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
(cherry picked from commit 32d1489)
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
(cherry picked from commit 9f8edb6)
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
(cherry picked from commit ffd2761)
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
…tokens

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
…tion

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
… continuity

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
…ration

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
…iptions

Keep the sparse-v3 fixture's sparse/restart/no-v2 assertions unchanged, but establish a real reconciled and installed driver cut before publication. Merely naming its generation installed-worker no longer satisfies the final CAS identity check.

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Keep artifact construction and admission outside the ownership fence. Preserve the old publication helper as an unfenced delegate, serialize the driver's installed-bundle transition with validate+CAS, and release a completed lexical-only bootstrap claim even when publication is refused.

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Preserve views-off startup when a descendant cannot be listed or watched. Initial coverage now names gaps on the retained native handle; v3 trust refuses incomplete or opaque handles. This intentionally replaces the temporary whole-watcher-refusal test with partial-service and strict-v3 controls, per the compatibility ruling. Configure's generic attachment API is unchanged.

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Fresh bootstrap is lexical-only until the G/H base completion coordinators exist; typed preflight refuses unsupported planes before reads or claims. Existing bases remain plane-independent. Reuse the source stamp already taken before the read instead of adding a duplicate stat, and preserve resolution-input metadata on cached callgraph attachments.

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Registry format 3 is now supported. Probe the compiled maximum plus one so the existing newer-format refusal assertion remains a newer-format test rather than schema drift within a supported version.

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Missing paths intentionally cost zero bytes, so the earlier missing-file fixture could not distinguish a skipped probe. Keep the same assertions but use a directory at the live file path: the probe must classify it as large after an intent, and must not run for an already reconciled delta.

Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Co-authored-by: alfonso-aft <289616620+alfonso-aft@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant