feat: use neutral Code section roots for new repositories - #81
Open
dayebishouji wants to merge 3 commits into
Open
dayebishouji wants to merge 3 commits into
dayebishouji wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes and why
New
aoci initrepositories start their Code Volume with===project/.code/===; later sections use coordinates such as===/.code/src/===instead of a contributor's machine path. This implements the new-repository default discussed for 0.2.0 in #76.The exact marker selects neutral resolution before runtime-path matching, including checkouts at
/.code/src. It survives deletion of the last Entry so reinsertion keeps neutral coordinates. Existing unmarked indexes retain their interpretation and bytes. An interrupted older initialization can finish with its exact marker-only Code skeleton and matching Baseline fingerprint.Fixes #76.
Affected public contracts
spec/public/aoci-index-format-v1.txt)The existing header grammar, canonical object identities, layout version, and transaction schemas are unchanged. rc15 reads a newly authored neutral index aligned in ordinary original/clone locations, verified against the checksum-verified release binary. Older readers do not provide the new overlapping-path or last-deletion guarantees; the upgrade guide explains these limits.
Verification
Remote fast CI: 8/8 passed for
ee0bfd3(run).Passed locally:
make fast, fullgo test ./... -count=1, and fullgo test -race -count=1 -timeout=30m ./....govulncheck: no reachable vulnerabilities; it reported 26 findings in required modules that this code does not call.clean-room-smoke: neutral anchor, zero Entries, production scope roles, and bounded authoring Guide.git diff --check.make verifywas run with keep-going aggregation and all three black-box suites. Its initial run was not green: local tools were missing, WSL could not resolve the Windows worktree's.gitpointer, and the database lifecycle suite could not start Docker. Missing tools were installed and their gates passed on rerun; clean-room smoke and conformance passed from an ordinary clone. The lifecycle result was 53 PASS, 2 CHAR, 1 FAIL, with the sole failure in Docker-backed database setup. The integration-tag Go command passed with live database tests skipped because no database environment was configured. Live database acceptance remains unverified locally.Regression coverage includes relocation, Windows paths, nested worktrees, runtime roots overlapping neutral coordinates, same-named Entry updates, delete/reinsert, inconsistent section families, unchanged historical interpretation, repeated init, and interrupted older init. The black-box harness and clean-room assertion now expect the new default.
Operating system impact
Pure index-coordinate handling shared by Linux, macOS, and Windows. No
internal/fschange or new dependency. Native Windows tests and Linux/Windows builds passed.Migration and recovery
No migration or extra approval is required. Existing indexes are not rewritten or retroactively marked. Initialization retains the dependency-before-Root publication order and exact-postimage conflict checks.
Cognition
complete=true,next_action=none.