Conversation
The PR description includes sufficient real-CLI end-to-end verification for this runtime change. |
23f026e to
9703fcb
Compare
|
Addressed both findings in 9703fcb after rebasing onto e465eec. Clone-mode |
|
Findings
Review Status
|
|
Addressed this review in 59f40d8. Dedicated-clone previews now refuse uncommitted changes with commit/stash guidance and exit 1, preserving dirty files and HEAD. Dirty self-mode business files remain supported, and prior refresh policies are unchanged. Incremental import previews query the cached branch at its configured origin using fetch authentication; full-clone and missing-cache/LAST_SYNC previews follow remote HEAD. Both reported cases failed before the fix and pass now, including a real incremental command confirming unchanged master after remote HEAD moved to main. Build, tsc, lint, 7,644 unit tests and 87 relevant e2e tests pass. Built CLI records verify unchanged clone/cache hashes, including .git, with normal diagnostic logging excluded. Body updated before normal push; reviews left untouched. |
|
Findings
Review Status
|
|
This branch has merge conflicts with |
…nt#900) roles add/remove/update and projects add/update/remove pulled the team repo before their dry-run guard, and a pull that cannot fast-forward resets the clone to origin, discarding unpushed commits. In single-repo mode they also created the knowledge worktree. runManifestEdit now takes { dryRun }: a preview fetches and reads origin/<default> from a --shared clone in the OS temp dir (withDefaultBranchPreview), so the member's repo only sees a fetch. roles init skips its pull on a dry run. Refs Tencent#900 (C5)
…#900) remove pulled the team repo and saved the reconciled placement records before its dry-run guard; in single-repo mode it ran inside the knowledge worktree. A dry run now resolves names in a temporary checkout of origin/<default>, as the real run does after its pull, and hands the reconciled records to publishedNameFor in memory instead of saving them for it to read back. Refs Tencent#900 (C1)
A dry run of import --from-repo and --from-repo-list deleted and re-cloned the repo cache (or fetched and reset it), took the import lock and ran the LLM scan. It now reads the remote head with git ls-remote, using the clone's auth (resolveCloneAuth, extracted from shallowClone), compares it with LAST_SYNC and prints "Would import <owner>/<repo> at <sha>" with the cache state, then stops. Refs Tencent#900 (C3)
59f40d8 to
7ffe273
Compare
|
Addressed the three findings from #971 (comment) in 7ffe273. Clean clone previews now match the checked-out branch's real ff-only pull/reset outcome (pushed, ahead, behind and diverged); self mode still reads origin/default and dirty dedicated clones still refuse. Clone |
|
Findings
Review Status
|
|
Addressed both findings from #971 (comment) in 0dd1ab5. Removal preview now explicitly fetches the active branch, so a local-only branch produces the same refresh refusal and exit 1 as real removal, with HEAD/files/state untouched. Incremental import preview uses a deleted branch's retained origin ref when the real non-pruning fetch/reset retains it; pruning, explicit deleted-branch refspec and missing origin-ref cases keep the full-clone fallback. Real import semantics are unchanged. Both public regressions failed before the fixes and pass now, including comparisons with real CLI execution and public shallowFetch fallback checks. Build, tsc, lint, 8,021 unit tests and 111 relevant E2E tests passed. The PR body includes fresh built-CLI evidence and cache/application-state hash checks. Extra providers/agents remain CI coverage; no reviews were dismissed or resolved. |
|
Findings
Review Status
|
|
Addressed #971 (comment) in 20d68c4. Clone previews now fetch the configured remote/merge ref first and model its ff-only result; origin/current-local-branch is used only for the real pull/reset fallback. Public red/green tests cover release tracking origin/main, a non-origin upstream with origin unavailable, a distinct reset target after divergence, and no-upstream fallback. Roles, projects and removal read the same post-pull tree; earlier dirty/self-mode/local-only/import regressions remain green. Build, tsc, lint, 8,021 unit tests and 115 relevant E2E tests passed. Fresh built CLI evidence shows preview parity with a real upstream/main pull and unchanged dry-run HEAD/files/state. Prior hosted E2E's five C guard failures remain the integration dependency owned by #977; C rows and tests are untouched. PR body includes the evidence and dependency status. No reviews were dismissed or resolved. |
|
Findings
Review Status
|
Summary
Evidence
releasetrackingorigin/mainorupstream/mainfetched nonexistent origin/release before its configured upstream, so removal refused and manifests previewed stale contents. Public regressions also exposed stale upstream ancestry selecting the wrong divergence outcome (3 failing tests).After: previews fetch the configured remote/ref first and select the same tree as real
pullRepo. Both upstream naming cases pass for roles, projects and removal. Non-origin upstream works with origin unavailable. A distinct origin/release target is used only after upstream divergence; a no-upstream clone retains its reset fallback.Fresh built CLI after build, isolated HOME: clean local
releasetracksupstream/main; origin is unavailable and the upstream has new role/rule contents.Source fetch metadata and normal diagnostic logs are explicitly excluded from application-state snapshots. Import previews additionally verify all cache hashes including .git/LAST_SYNC.
Test Plan
npm run buildnpx tsc --noEmitnpm run lintnpx vitest run: 388 files passed, 1 skipped; 8,021 tests passed, 20 skipped.git diff --checkpassed.Hosted full E2E at prior head
0dd1ab51failed five C preview cases because stats/recall guard entries are still refused. This is the integration work owned by open #977, not included or weakened here. See the hosted E2E job. Local B checks pass; hosted full-suite success depends on that integration.Related Issues
Refs #900 (C1, C3, C5)
Merge Danger
Door: two-way
No migration. Reverting restores previous behavior.
Blast Radius: narrow
Git admin/removal previews model the real configured-upstream pull and origin/current reset fallback without moving the member checkout. Dirty clones refuse; self-mode default-branch behavior remains. Real import clone/fetch/reset semantics are unchanged.
Notes for Reviewers
a8957a89, preserving merged fix(dry-run): refuse --dry-run on commands with no preview (#900) #969/fix(dry-run): stats and recall <query> dry runs write no local state (#900) #970/fix(rules): use native formats and scope-specific delivery #957/fix(code-knowledge): veto a Swift bare call only inside a type body #966 and fix(import): preview current organization repositories safely #960/fix(recall): honor --dry-run for feedback (#900) #965/fix(votes): read votes without migrating in viz and hasPendingVoteDeltas (#972) #973 behavior. B guard integration is implemented; no later restoration is needed for B.