chore: Convert scattered TODOs to tracked issues (bd-lrj8)

Created 7 new beads to track TODOs that were previously inline comments:

- bd-7l27: Integrate migration detection into bd doctor (5 files)
- bd-6x6g: Add multi-repo target repo switching in bd create
- bd-ag35: Add daemon RPC endpoints for config and stale check
- bd-2dwo: Remove deprecated daemon logger function
- bd-0qx5: Implement Jira issue timestamp comparison for sync
- bd-7zka: Implement formula features (repeat, for_each, branch, gate, split)
- bd-h048: Refactor sync_test to use direct import logic

Updated 16 TODO comments to include bead ID references for tracking.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Steve Yegge
2025-12-28 16:34:24 -08:00
parent dedf5cfe92
commit 27de61fbd0
11 changed files with 16 additions and 16 deletions

View File

@@ -161,7 +161,7 @@ var createCmd = &cobra.Command{
repoPath = routing.DetermineTargetRepo(routingConfig, userRole, ".") repoPath = routing.DetermineTargetRepo(routingConfig, userRole, ".")
} }
// TODO: Switch to target repo for multi-repo support // TODO(bd-6x6g): Switch to target repo for multi-repo support
// For now, we just log the target repo in debug mode // For now, we just log the target repo in debug mode
if repoPath != "." { if repoPath != "." {
debug.Logf("DEBUG: Target repo: %s\n", repoPath) debug.Logf("DEBUG: Target repo: %s\n", repoPath)
@@ -205,7 +205,7 @@ var createCmd = &cobra.Command{
// Get database prefix from config // Get database prefix from config
var dbPrefix string var dbPrefix string
if daemonClient != nil { if daemonClient != nil {
// TODO: Add RPC method to get config in daemon mode // TODO(bd-ag35): Add RPC method to get config in daemon mode
// For now, skip validation in daemon mode (needs RPC enhancement) // For now, skip validation in daemon mode (needs RPC enhancement)
} else { } else {
// Direct mode - check config // Direct mode - check config

View File

@@ -128,7 +128,7 @@ func setupDaemonLogger(logPath string, jsonFormat bool, level slog.Level) (*lumb
} }
// setupDaemonLoggerLegacy is the old signature for backward compatibility during migration. // setupDaemonLoggerLegacy is the old signature for backward compatibility during migration.
// TODO: Remove this once all callers are updated to use the new signature. // TODO(bd-2dwo): Remove this once all callers are updated to use the new signature.
func setupDaemonLoggerLegacy(logPath string) (*lumberjack.Logger, daemonLogger) { func setupDaemonLoggerLegacy(logPath string) (*lumberjack.Logger, daemonLogger) {
return setupDaemonLogger(logPath, false, slog.LevelInfo) return setupDaemonLogger(logPath, false, slog.LevelInfo)
} }

View File

@@ -630,7 +630,7 @@ func detectJiraConflicts(ctx context.Context) ([]JiraConflict, error) {
// Check if updated since last sync // Check if updated since last sync
if issue.UpdatedAt.After(lastSync) { if issue.UpdatedAt.After(lastSync) {
// This is a potential conflict - for now, mark as conflict // This is a potential conflict - for now, mark as conflict
// TODO: In a full implementation, we'd fetch the Jira issue and compare timestamps // TODO(bd-0qx5): In a full implementation, we'd fetch the Jira issue and compare timestamps
conflicts = append(conflicts, JiraConflict{ conflicts = append(conflicts, JiraConflict{
IssueID: issue.ID, IssueID: issue.ID,
LocalUpdated: issue.UpdatedAt, LocalUpdated: issue.UpdatedAt,

View File

@@ -19,7 +19,7 @@ import (
_ "github.com/ncruces/go-sqlite3/embed" _ "github.com/ncruces/go-sqlite3/embed"
) )
// TODO: Consider integrating into 'bd doctor' migration detection // TODO(bd-7l27): Consider integrating into 'bd doctor' migration detection
var migrateCmd = &cobra.Command{ var migrateCmd = &cobra.Command{
Use: "migrate", Use: "migrate",
GroupID: "maint", GroupID: "maint",

View File

@@ -21,7 +21,7 @@ import (
"github.com/steveyegge/beads/internal/ui" "github.com/steveyegge/beads/internal/ui"
) )
// TODO: Consider integrating into 'bd doctor' migration detection // TODO(bd-7l27): Consider integrating into 'bd doctor' migration detection
var migrateHashIDsCmd = &cobra.Command{ var migrateHashIDsCmd = &cobra.Command{
Use: "hash-ids", Use: "hash-ids",
Short: "Migrate sequential IDs to hash-based IDs (legacy)", Short: "Migrate sequential IDs to hash-based IDs (legacy)",

View File

@@ -12,7 +12,7 @@ import (
"github.com/steveyegge/beads/internal/storage/sqlite" "github.com/steveyegge/beads/internal/storage/sqlite"
) )
// TODO: Consider integrating into 'bd doctor' migration detection // TODO(bd-7l27): Consider integrating into 'bd doctor' migration detection
var migrateIssuesCmd = &cobra.Command{ var migrateIssuesCmd = &cobra.Command{
Use: "issues", Use: "issues",
Short: "Move issues between repositories", Short: "Move issues between repositories",

View File

@@ -13,7 +13,7 @@ import (
"github.com/steveyegge/beads/internal/syncbranch" "github.com/steveyegge/beads/internal/syncbranch"
) )
// TODO: Consider integrating into 'bd doctor' migration detection // TODO(bd-7l27): Consider integrating into 'bd doctor' migration detection
var migrateSyncCmd = &cobra.Command{ var migrateSyncCmd = &cobra.Command{
Use: "sync <branch-name>", Use: "sync <branch-name>",
Short: "Migrate to sync.branch workflow for multi-clone setups", Short: "Migrate to sync.branch workflow for multi-clone setups",

View File

@@ -69,7 +69,7 @@ func loadLegacyDeletionsCmd(path string) (map[string]legacyDeletionRecordCmd, []
return records, warnings, nil return records, warnings, nil
} }
// TODO: Consider integrating into 'bd doctor' migration detection // TODO(bd-7l27): Consider integrating into 'bd doctor' migration detection
var migrateTombstonesCmd = &cobra.Command{ var migrateTombstonesCmd = &cobra.Command{
Use: "tombstones", Use: "tombstones",
Short: "Convert deletions.jsonl entries to inline tombstones", Short: "Convert deletions.jsonl entries to inline tombstones",

View File

@@ -64,7 +64,7 @@ func runMolStale(cmd *cobra.Command, args []string) {
if daemonClient != nil { if daemonClient != nil {
// For now, stale check requires direct store access // For now, stale check requires direct store access
// TODO: Add RPC endpoint for stale check // TODO(bd-ag35): Add RPC endpoint for stale check
fmt.Fprintf(os.Stderr, "Error: mol stale requires direct database access\n") fmt.Fprintf(os.Stderr, "Error: mol stale requires direct database access\n")
fmt.Fprintf(os.Stderr, "Hint: use --no-daemon flag: bd --no-daemon mol stale\n") fmt.Fprintf(os.Stderr, "Hint: use --no-daemon flag: bd --no-daemon mol stale\n")
os.Exit(1) os.Exit(1)

View File

@@ -441,7 +441,7 @@ func TestHasJSONLConflict_MultipleConflicts(t *testing.T) {
func TestZFCSkipsExportAfterImport(t *testing.T) { func TestZFCSkipsExportAfterImport(t *testing.T) {
// Skip this test - it calls importFromJSONL which spawns bd import as subprocess, // Skip this test - it calls importFromJSONL which spawns bd import as subprocess,
// but os.Executable() returns the test binary during tests, not the bd binary. // but os.Executable() returns the test binary during tests, not the bd binary.
// TODO: Refactor to use direct import logic instead of subprocess. // TODO(bd-h048): Refactor to use direct import logic instead of subprocess.
t.Skip("Test requires subprocess spawning which doesn't work in test environment") t.Skip("Test requires subprocess spawning which doesn't work in test environment")
if testing.Short() { if testing.Short() {
t.Skip("Skipping test that spawns subprocess in short mode") t.Skip("Skipping test that spawns subprocess in short mode")

View File

@@ -167,23 +167,23 @@ type Step struct {
// Expand references an expansion formula to inline here. // Expand references an expansion formula to inline here.
// When set, this step is replaced by the expansion's steps. // When set, this step is replaced by the expansion's steps.
// TODO(future): Not yet implemented in bd cook. Filed as future work. // TODO(bd-7zka): Not yet implemented in bd cook. Filed as future work.
Expand string `json:"expand,omitempty"` Expand string `json:"expand,omitempty"`
// ExpandVars are variable overrides for the expansion. // ExpandVars are variable overrides for the expansion.
// TODO(future): Not yet implemented in bd cook. Filed as future work. // TODO(bd-7zka): Not yet implemented in bd cook. Filed as future work.
ExpandVars map[string]string `json:"expand_vars,omitempty"` ExpandVars map[string]string `json:"expand_vars,omitempty"`
// Condition makes this step optional based on a variable. // Condition makes this step optional based on a variable.
// Format: "{{var}}" (truthy) or "{{var}} == value". // Format: "{{var}}" (truthy) or "{{var}} == value".
// TODO(future): Not yet implemented in bd cook. Filed as future work. // TODO(bd-7zka): Not yet implemented in bd cook. Filed as future work.
Condition string `json:"condition,omitempty"` Condition string `json:"condition,omitempty"`
// Children are nested steps (for creating epic hierarchies). // Children are nested steps (for creating epic hierarchies).
Children []*Step `json:"children,omitempty"` Children []*Step `json:"children,omitempty"`
// Gate defines an async wait condition for this step. // Gate defines an async wait condition for this step.
// TODO(future): Not yet implemented in bd cook. Will integrate with bd-udsi gates. // TODO(bd-7zka): Not yet implemented in bd cook. Will integrate with bd-udsi gates.
Gate *Gate `json:"gate,omitempty"` Gate *Gate `json:"gate,omitempty"`
// Loop defines iteration for this step. // Loop defines iteration for this step.
@@ -207,7 +207,7 @@ type Step struct {
} }
// Gate defines an async wait condition (integrates with bd-udsi). // Gate defines an async wait condition (integrates with bd-udsi).
// TODO(future): Not yet implemented in bd cook. Schema defined for future use. // TODO(bd-7zka): Not yet implemented in bd cook. Schema defined for future use.
type Gate struct { type Gate struct {
// Type is the condition type: gh:run, gh:pr, timer, human, mail. // Type is the condition type: gh:run, gh:pr, timer, human, mail.
Type string `json:"type"` Type string `json:"type"`