refactor: remove Gas Town references from codebase
Replace Gas Town-specific terminology with generic orchestrator concepts: - "Gas Town" → "orchestrator" or "multi-clone" - Hardcoded ~/gt/ paths → GT_ROOT environment variable - signalGasTownActivity → signalOrchestratorActivity - GUPP → hook-based work assignment Updated 21 files across CHANGELOG, cmd/bd/, internal/, docs/, scripts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> Executed-By: beads/crew/dave Rig: beads Role: crew
This commit is contained in:
@@ -456,7 +456,7 @@ func discoverRigDaemons() []rigDaemon {
|
||||
// Find town beads directory (uses findTownBeadsDir from create.go)
|
||||
townBeadsDir, err := findTownBeadsDir()
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Error: not in a Gas Town (%v)\n", err)
|
||||
fmt.Fprintf(os.Stderr, "Error: not in an orchestrator environment (%v)\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
|
||||
@@ -311,8 +311,8 @@ func CheckCompactionCandidates(path string) DoctorCheck {
|
||||
}
|
||||
|
||||
// resolveBeadsDir follows a redirect file if present in the beads directory.
|
||||
// This handles Gas Town's redirect mechanism where .beads/redirect points to
|
||||
// the actual beads directory location.
|
||||
// This handles the redirect mechanism where .beads/redirect points to
|
||||
// the actual beads directory location (used in multi-clone setups).
|
||||
// This is a wrapper around beads.FollowRedirect for use within the doctor package.
|
||||
func resolveBeadsDir(beadsDir string) string {
|
||||
return beads.FollowRedirect(beadsDir)
|
||||
|
||||
@@ -32,7 +32,7 @@ The Rig → Cook → Run lifecycle:
|
||||
Search paths (in order):
|
||||
1. .beads/formulas/ (project)
|
||||
2. ~/.beads/formulas/ (user)
|
||||
3. ~/gt/.beads/formulas/ (town)
|
||||
3. $GT_ROOT/.beads/formulas/ (orchestrator, if GT_ROOT set)
|
||||
|
||||
Commands:
|
||||
list List available formulas from all search paths
|
||||
@@ -48,7 +48,7 @@ var formulaListCmd = &cobra.Command{
|
||||
Search paths (in order of priority):
|
||||
1. .beads/formulas/ (project - highest priority)
|
||||
2. ~/.beads/formulas/ (user)
|
||||
3. ~/gt/.beads/formulas/ (town)
|
||||
3. $GT_ROOT/.beads/formulas/ (orchestrator, if GT_ROOT set)
|
||||
|
||||
Formulas in earlier paths shadow those with the same name in later paths.
|
||||
|
||||
@@ -359,8 +359,11 @@ func getFormulaSearchPaths() []string {
|
||||
// User-level formulas
|
||||
if home, err := os.UserHomeDir(); err == nil {
|
||||
paths = append(paths, filepath.Join(home, ".beads", "formulas"))
|
||||
// Gas Town formulas
|
||||
paths = append(paths, filepath.Join(home, "gt", ".beads", "formulas"))
|
||||
}
|
||||
|
||||
// Orchestrator formulas (via GT_ROOT)
|
||||
if gtRoot := os.Getenv("GT_ROOT"); gtRoot != "" {
|
||||
paths = append(paths, filepath.Join(gtRoot, ".beads", "formulas"))
|
||||
}
|
||||
|
||||
return paths
|
||||
|
||||
@@ -187,7 +187,7 @@ Installed hooks:
|
||||
- post-merge: Import JSONL after pull/merge
|
||||
- pre-push: Prevent pushing stale JSONL
|
||||
- post-checkout: Import JSONL after branch checkout
|
||||
- prepare-commit-msg: Add agent identity trailers (for Gas Town agents)`,
|
||||
- prepare-commit-msg: Add agent identity trailers (for orchestrator agents)`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
force, _ := cmd.Flags().GetBool("force")
|
||||
shared, _ := cmd.Flags().GetBool("shared")
|
||||
@@ -694,7 +694,7 @@ type agentIdentity struct {
|
||||
// detectAgentIdentity returns agent identity if running in agent context.
|
||||
// Returns nil if not in an agent context (human commit).
|
||||
func detectAgentIdentity() *agentIdentity {
|
||||
// Check GT_ROLE environment variable first (set by Gas Town sessions)
|
||||
// Check GT_ROLE environment variable first (set by orchestrator sessions)
|
||||
gtRole := os.Getenv("GT_ROLE")
|
||||
if gtRole != "" {
|
||||
return parseAgentIdentity(gtRole)
|
||||
|
||||
@@ -307,7 +307,7 @@ var versionChanges = []VersionChange{
|
||||
"NEW: bd human command - Focused help menu for humans",
|
||||
"NEW: bd show --short - Compact output mode for scripting",
|
||||
"NEW: bd delete --reason - Audit trail for deletions",
|
||||
"NEW: 'hooked' status - GUPP work assignment for Gas Town",
|
||||
"NEW: 'hooked' status - Hook-based work assignment for orchestrators",
|
||||
"NEW: mol_type schema field - Molecule classification tracking",
|
||||
"FIX: --var flag allows commas in values (GH#786)",
|
||||
"FIX: bd sync in bare repo worktrees (GH#785)",
|
||||
@@ -327,7 +327,7 @@ var versionChanges = []VersionChange{
|
||||
"NEW: bd where command - Show active beads location after following redirects",
|
||||
"NEW: --parent flag for bd update - Reparent issues between epics",
|
||||
"NEW: Redirect info in bd prime - Shows when database is redirected",
|
||||
"FIX: bd doctor follows redirects - Gas Town compatibility",
|
||||
"FIX: bd doctor follows redirects - Multi-clone compatibility",
|
||||
"FIX: Remove 8-char prefix limit - bd rename-prefix allows longer prefixes",
|
||||
"CHANGED: Git context consolidation - Internal refactor for efficiency",
|
||||
"DOCS: Database Redirects section - ADVANCED.md documentation",
|
||||
|
||||
@@ -9,17 +9,17 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
// mailCmd delegates to an external mail provider (e.g., gt mail)
|
||||
// mailCmd delegates to an external mail provider.
|
||||
// This enables agents to use 'bd mail' consistently, while the actual
|
||||
// mail implementation is provided by the orchestrator (Gas Town, etc.)
|
||||
// mail implementation is provided by the orchestrator.
|
||||
var mailCmd = &cobra.Command{
|
||||
Use: "mail [subcommand] [args...]",
|
||||
Short: "Delegate to mail provider (e.g., gt mail)",
|
||||
Long: `Delegates mail operations to an external mail provider.
|
||||
|
||||
Agents often type 'bd mail' when working with beads, but mail functionality
|
||||
is typically provided by an orchestrator like Gas Town (gt). This command
|
||||
bridges that gap by delegating to the configured mail provider.
|
||||
is typically provided by the orchestrator. This command bridges that gap
|
||||
by delegating to the configured mail provider.
|
||||
|
||||
Configuration (checked in order):
|
||||
1. BEADS_MAIL_DELEGATE or BD_MAIL_DELEGATE environment variable
|
||||
|
||||
@@ -147,8 +147,8 @@ var rootCmd = &cobra.Command{
|
||||
// Set up signal-aware context for graceful cancellation
|
||||
rootCtx, rootCancel = signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
|
||||
|
||||
// Signal Gas Town daemon about bd activity (best-effort, for exponential backoff)
|
||||
defer signalGasTownActivity()
|
||||
// Signal orchestrator daemon about bd activity (best-effort, for exponential backoff)
|
||||
defer signalOrchestratorActivity()
|
||||
|
||||
// Apply verbosity flags early (before any output)
|
||||
debug.SetVerbose(verboseFlag)
|
||||
|
||||
@@ -44,31 +44,15 @@ const (
|
||||
GroupIntegrations = "integrations"
|
||||
)
|
||||
|
||||
// signalGasTownActivity writes an activity signal for Gas Town daemon.
|
||||
// signalOrchestratorActivity writes an activity signal for orchestrator daemon.
|
||||
// This enables exponential backoff based on bd usage detection.
|
||||
// Best-effort: silent on any failure, never affects bd operation.
|
||||
func signalGasTownActivity() {
|
||||
// Determine town root
|
||||
// Priority: GT_ROOT env > detect from cwd path > skip
|
||||
func signalOrchestratorActivity() {
|
||||
// Determine town root from environment
|
||||
// Priority: GT_ROOT env > skip (no default path detection)
|
||||
townRoot := os.Getenv("GT_ROOT")
|
||||
if townRoot == "" {
|
||||
// Try to detect from cwd - if under ~/gt/, use that as town root
|
||||
home, err := os.UserHomeDir()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
gtRoot := filepath.Join(home, "gt")
|
||||
cwd, err := os.Getwd()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if strings.HasPrefix(cwd, gtRoot+string(os.PathSeparator)) {
|
||||
townRoot = gtRoot
|
||||
}
|
||||
}
|
||||
|
||||
if townRoot == "" {
|
||||
return // Not in Gas Town, skip
|
||||
return // Not in orchestrator environment, skip
|
||||
}
|
||||
|
||||
// Ensure daemon directory exists
|
||||
|
||||
@@ -20,8 +20,8 @@ var migrateSyncCmd = &cobra.Command{
|
||||
|
||||
This command configures the repository to commit .beads changes to a separate
|
||||
branch (e.g., "beads-sync") instead of the current working branch. This is
|
||||
essential for multi-clone setups like Gas Town where multiple clones work
|
||||
independently but need to sync beads data.
|
||||
essential for multi-clone setups where multiple clones work independently
|
||||
but need to sync beads data.
|
||||
|
||||
The command will:
|
||||
1. Validate the current state (not already configured, not on sync branch)
|
||||
|
||||
@@ -34,7 +34,7 @@ The squash operation:
|
||||
|
||||
AGENT INTEGRATION:
|
||||
Use --summary to provide an AI-generated summary. This keeps bd as a pure
|
||||
tool - the calling agent (Gas Town polecat, Claude Code, etc.) is responsible
|
||||
tool - the calling agent (orchestrator worker, Claude Code, etc.) is responsible
|
||||
for generating intelligent summaries. Without --summary, a basic concatenation
|
||||
of child issue content is used.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user