rt repos reidentify and the shared-checkout folder paths - #524
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…plugin CI and purity, machine cleanup) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…potent re-key, pool dir stays) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…l reidentify) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…es the real identity stores Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ntities Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d of throwing Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…R_NS Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ting none Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…refuse unlistable teams Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fter any real run Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ls as fallback Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ly after stop Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ath appears Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r move Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…mirror, say when nothing moved Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # lib/command-tree-def.ts
|
Warning Review limit reachedNext included review available in 16 minutes. View limit detailsLimit details: You’ve used all 2 included reviews currently available. Your 76 included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour. This review is too large to run within your organization's remaining usage spending cap. Raise or remove your spending cap in the billing tab, then retry. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (38)
Comment |
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.
Problem
Renaming
m4ttstack/rttom4ttstack/mattstackchanges the identity rt derives from the remote, and every per-repo store keys on that identity: the repo index, the worktree registry and data dir,rt.repoTracking,repos.<id>settings sections, the events cursor, eight state.db tables and herds.db. After aset-urlall of it reads as empty. No tool moved state between two identities, and the shared checkout path~/Documents/GitHub/repo-toolswas hard-coded in the release and settings code.This is Stage 2a of
docs/superpowers/plans/2026-09-27-mattstack-rename-and-plugin-foldins.md. It names nothing new: the repo keeps its name until Stage 2b, and this PR ships in a release before then.Fix
rt repos reidentify <old> <new> [--dry-run] [--json](lib/repo-reidentify.ts)kv:repo-index,data-dir,rt.repoTracking,kv:events-cursor, the eight state.db tables,herds.repo,settings:workspacePrefs.editors, and the user, machine and teamrepos.<id>sections.branch_cacheandgit_badgesare dropped as regenerable caches.refusedline; the other stores still move.alreadyornoneeverywhere. Raw args go throughnormalizeRemote, soGitHub.com/…,.gitand URL forms match.repo:reidentified), locally when none is; a present but silent daemon is a hard stop. A refusal exits 2 with one JSON document under--json.Rename detector (
lib/daemon/rename-detect.ts): after the boot identity migration settles and every 6 hours, reads each indexed repo's remote fresh from git config. When it derives a new GitHub identity, and GitHub's 301 for the old name leads to a repo whosefull_nameis that identity, the detector applies through the samerepos:reidentifyhandler. Fetches time out at 10s, passes never overlap, and nothing applies after stop.Shared checkout (
lib/release/shared-checkout.ts):~/Documents/GitHub/mattstackfirst,repo-toolsas the fallback, inrt release,update-machineandrt settingssource detection. Docs and skills name the new folder and the fallback. AGENTS.md and the rt-release skill state that the old repo name is never recreated.Stage 1: rename redirect proof (2026-09-27)
A throwaway repo
m4ttstack/rename-probe, with a release carryingappcast.xml, was renamed and then deleted./repositories/<id>(the numeric id, not the new name), andgh apifollowed it.Tests
bun run test: 11537 pass, 6 fail. The 6 are incommands/__tests__/flavor-takeover.test.tsanddaemon-logdy-config.test.ts; this diff touches neither, and both files pass 19/0 on their own.bun run check,picker:check,docs:check,test:ptyandscripts/repo-purity.share green.test:e2e: 150 pass, 1 fail (the plugin-scaffold typecheck that fails under a temp HOME on this machine's mise shim, unrelated).🤖 Generated with Claude Code