feat(sei): re-point legis git-rename consumer to /git/rename-feed#73
Merged
Conversation
LegisGitRenameSource now reads the committed leg of legis's additive superset
endpoint GET /git/rename-feed?base=<base>&head=HEAD instead of the legacy
GET /git/renames?rev_range=<base>..HEAD. legis pins committed[] byte-identical to
the old /git/renames array with a contract-lock test
(legis/tests/contract/test_git_rename_feed_contract.py), so committed renames
resolve unchanged.
- legis_renames_url -> legis_rename_feed_url (base/head params; include_worktree
omitted -> committed-leg-only, committed-window semantics preserved).
- parse/classify_legis_rename_json -> *_rename_feed_json: reads .committed,
unchanged per-item old_path/new_path extraction. The working_tree leg is
ignored (the shell source remains the sole working-tree authority).
- G16 wire-drift guard preserved and adapted to the feed shape: the
RenameParseOutcome now distinguishes a legacy flat-array body (legis did not
migrate), a committed-less object envelope, and the committed key-rename
under-carry case — each warned distinctly. An honest empty {"committed":[]} is
not flagged.
- Tests adapted to the object shape (unit + the mock-driven integration tests);
added a URL-builder assertion pinning ?base=X&head=HEAD with include_worktree
absent, plus legacy-array and missing-committed drift cases.
- docs/federation/contracts.md + CHANGELOG updated.
Re-implements the stale feat/legis-rename-feed-repoint (63745e7, 337 behind on
the pre-rename clarion-cli path) against current main. Federation ledger B3.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Re-implements the stale
feat/legis-rename-feed-repoint(63745e7, 1 commit but 337 behind on the pre-renamecrates/clarion-cli/path) against currentmain. Federation ledger B3 (Loomweave/Clarion half).What
LegisGitRenameSourcenow reads the committed leg oflegis's additive superset endpointGET /git/rename-feed?base=…&head=HEADinstead of the legacyGET /git/renames?rev_range=….legispins eachcommitted[]entry byte-identical to the old/git/renamesarray with a contract-lock test (legis/tests/contract/test_git_rename_feed_contract.py:test_rename_feed_committed_leg_matches_loomweave_parser), so committed renames resolve unchanged.legis_renames_url→legis_rename_feed_url—?base=X&head=HEAD;include_worktreeomitted (defaults false on legis) ⇒ committed-leg-only, committed-window semantics preserved.parse/classify_legis_rename_json→*_rename_feed_json— reads.committed; per-itemold_path/new_pathextraction unchanged. Theworking_treeleg is not consumed (the shell source stays the sole working-tree authority).RenameParseOutcomenow distinguishes a legacy flat-array body (legis didn't migrate), acommitted-less object envelope, and the committed key-rename under-carry case — each warned distinctly. Honest-empty{"committed":[]}is not flagged.?base=X&head=HEAD,include_worktreeabsent), plus legacy-array and missing-committed drift cases.docs/federation/contracts.md+CHANGELOGupdated.Why a fresh PR (not a merge)
The original branch can't be merged: it predates the
clarion-cli→loomweave-clirename and the G16 drift-detection split, so it would fight the rename and drop the silent-under-carry guard. This re-applies the intent against current structure.Verification
Full Rust floor green locally:
fmt,clippy --all-targets --all-features -D warnings,build, nextest 1941 passed (incl. allsei_gitunit + mock-driven integration tests),doc -D warnings,cargo deny. Rust + docs only (no Python touched).🤖 Generated with Claude Code