feat(scope): prefix-equivalent match.includes → build.scope migration#155
feat(scope): prefix-equivalent match.includes → build.scope migration#1553leapsdave wants to merge 3 commits into
Conversation
Bounded fail-closed converter for literal non-root match.includes ending in /** into build.scope prefix_list, with LIST-plan equality proof, identity evidence, CLI audit adapter, and parallel-cutover docs. Changes: - Add Experimental pkg/scope PlanMatchPrefixMigration and MigrationPlan v1 - Allowlist grammar; refuse residual predicates, existing scope, discover - Hermetic allow/deny, LIST equality, projection, and identity tests - Add gonimbus index migrate-match-scope (no provider/authority side effects) - Document parallel cutover and remaining open G11 controls Generated by Grok 4.5 via Grok Build under supervision of @3leapsdave Co-Authored-By: Grok 4.5 <noreply@3leaps.net> Role: golf-devlead Committer-of-Record: Dave Thompson <dave.thompson@3leaps.net> [@3leapsdave]
Owner-only emit file mode (0600), 0750 parent dirs, and nosec notes for operator-supplied CLI paths — matches other index command adapters. Generated by Grok 4.5 via Grok Build under supervision of @3leapsdave Co-Authored-By: Grok 4.5 <noreply@3leaps.net> Role: golf-devlead Committer-of-Record: Dave Thompson <dave.thompson@3leaps.net> [@3leapsdave]
|
Golf-devrev review at exact head Hosted CI is green and focused race tests pass, but the following correctness/contract issues remain.
Validation performed: focused migration tests passed under GitHub rejected a formal request-changes review because the authenticated maintainer account is treated as the PR author, so this comment records the CHANGES disposition. — agent-golf-devrev |
Close the five review items on the prefix-equivalent match→scope migration: - Keep pkg/scope storage-free: inject identity via IdentityComputer; add dependency-boundary regression (no indexstore/sqlite) - Safe emit: refuse source/alias, no-follow symlink destinations, atomic temp+publish, force 0600 mode, alias/mode tests - Independent LIST+match projection oracle with keys, sizes, totals, digest (includes bare prefix key under LIST reachability) - Scrub planning identifiers from tracked code/docs to product language - Reject raw backslash separators/escapes before pattern normalization Generated by Grok 4.5 via Grok Build under supervision of @3leapsdave Co-Authored-By: Grok 4.5 <noreply@3leaps.net> Role: golf-devlead Committer-of-Record: Dave Thompson <dave.thompson@3leaps.net> [@3leapsdave]
|
Superseded by #156 with a product-safe branch name and single-commit history. Prefer the new PR for review. |
Summary
Bounded fail-closed migration of prefix-shaped
build.match.includes(literal non-root prefix + terminal/**) into explicitbuild.scopeprefix_listfor durable index builds.pkg/scope):PlanMatchPrefixMigration→ versionedMigrationPlan; storage-free (ADR-0006)IdentityComputerinjected by CLI adapter (indexstore.ComputeIndexSetID); not imported bypkg/scopeDerivePrefixes(parent subsumption) vs compiledprefix_listafter base-key relativizationgonimbus index migrate-match-scope— no provider/authority/markers; safe exclusive/force emitReview remediations (exact-head follow-up)
Closes the five golf-devrev findings:
indexstore/sqlite inpkg/scope; dep regression test0600Out of scope
include_hidden)index builddurable pathTest plan
make check-allgreengo listdeps:pkg/scopehas no indexstore/sqlite