fix: doctor checks follow redirect for Gas Town support (bd-tvus)
Extended bd-tvus fix to all doctor check functions that access .beads/ directory. In Gas Town multi-clone setups, crew/polecat clones use .beads/redirect files to point to the shared mayor/rig beads directory. Doctor checks now use resolveBeadsDir() to follow these redirects: - daemon.go: CheckDaemonStatus - git.go: CheckSyncBranchConfig, FindOrphanedIssues, CheckOrphanedIssues - installation.go: CheckMultipleDatabases, CheckPermissions - integrity.go: CheckIDFormat, CheckDependencyCycles, CheckTombstones, CheckDeletionsManifest, CheckRepoFingerprint - jsonl_integrity.go: CheckJSONLIntegrity - legacy.go: CheckFreshClone - maintenance.go: CheckStaleClosedIssues, CheckExpiredTombstones, CheckCompactionCandidates - perf.go: RunPerformanceDiagnostics, CollectPlatformInfo - validation.go: CheckMergeArtifacts, CheckOrphanedDependencies, CheckDuplicateIssues, CheckTestPollution, CheckChildParentDependencies, CheckGitConflicts - version.go: CheckMetadataVersionTracking Intentionally NOT changed (check local files): - CheckInstallation: checks local .beads/ exists - CheckUntrackedBeadsFiles: checks git tracking of local files 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,7 +20,8 @@ import (
|
||||
|
||||
// CheckIDFormat checks whether issues use hash-based or sequential IDs
|
||||
func CheckIDFormat(path string) DoctorCheck {
|
||||
beadsDir := filepath.Join(path, ".beads")
|
||||
// Follow redirect to resolve actual beads directory (bd-tvus fix)
|
||||
beadsDir := resolveBeadsDir(filepath.Join(path, ".beads"))
|
||||
|
||||
// Check metadata.json first for custom database name
|
||||
var dbPath string
|
||||
@@ -108,7 +109,8 @@ func CheckIDFormat(path string) DoctorCheck {
|
||||
|
||||
// CheckDependencyCycles checks for circular dependencies in the issue graph
|
||||
func CheckDependencyCycles(path string) DoctorCheck {
|
||||
beadsDir := filepath.Join(path, ".beads")
|
||||
// Follow redirect to resolve actual beads directory (bd-tvus fix)
|
||||
beadsDir := resolveBeadsDir(filepath.Join(path, ".beads"))
|
||||
dbPath := filepath.Join(beadsDir, beads.CanonicalDatabaseName)
|
||||
|
||||
// If no database, skip this check
|
||||
@@ -204,7 +206,8 @@ func CheckDependencyCycles(path string) DoctorCheck {
|
||||
// CheckTombstones checks the health of tombstone records
|
||||
// Reports: total tombstones, expiring soon (within 7 days), already expired
|
||||
func CheckTombstones(path string) DoctorCheck {
|
||||
beadsDir := filepath.Join(path, ".beads")
|
||||
// Follow redirect to resolve actual beads directory (bd-tvus fix)
|
||||
beadsDir := resolveBeadsDir(filepath.Join(path, ".beads"))
|
||||
dbPath := filepath.Join(beadsDir, beads.CanonicalDatabaseName)
|
||||
|
||||
// Skip if database doesn't exist
|
||||
@@ -302,7 +305,8 @@ func CheckTombstones(path string) DoctorCheck {
|
||||
|
||||
// CheckDeletionsManifest checks the status of deletions.jsonl and suggests migration to tombstones
|
||||
func CheckDeletionsManifest(path string) DoctorCheck {
|
||||
beadsDir := filepath.Join(path, ".beads")
|
||||
// Follow redirect to resolve actual beads directory (bd-tvus fix)
|
||||
beadsDir := resolveBeadsDir(filepath.Join(path, ".beads"))
|
||||
|
||||
// Skip if .beads doesn't exist
|
||||
if _, err := os.Stat(beadsDir); os.IsNotExist(err) {
|
||||
@@ -400,7 +404,8 @@ func CheckDeletionsManifest(path string) DoctorCheck {
|
||||
// This detects when a .beads directory was copied from another repo or when
|
||||
// the git remote URL changed. A mismatch can cause data loss during sync.
|
||||
func CheckRepoFingerprint(path string) DoctorCheck {
|
||||
beadsDir := filepath.Join(path, ".beads")
|
||||
// Follow redirect to resolve actual beads directory (bd-tvus fix)
|
||||
beadsDir := resolveBeadsDir(filepath.Join(path, ".beads"))
|
||||
|
||||
// Get database path
|
||||
var dbPath string
|
||||
|
||||
Reference in New Issue
Block a user