diff --git a/flake.lock b/flake.lock index f7c4528..49924ee 100644 --- a/flake.lock +++ b/flake.lock @@ -8,15 +8,16 @@ ] }, "locked": { - "lastModified": 1769405733, - "narHash": "sha256-WpROnW0dRi5ub0SlpKrMBs3pYlSBY4xw22hnTNvBMgI=", + "lastModified": 1768533782, + "narHash": "sha256-+5wZHjGfe2bf+FUDc99avz+ASc8Qx34QVkd85s0VU/U=", "owner": "steveyegge", "repo": "beads", - "rev": "6e82d1e2eea121ce5dc0964d554879f8b0c08563", + "rev": "55e733cf624a94c63257a657970f1fc9a287883d", "type": "github" }, "original": { "owner": "steveyegge", + "ref": "55e733c", "repo": "beads", "type": "github" } @@ -81,11 +82,11 @@ "gastown": { "flake": false, "locked": { - "lastModified": 1769538736, - "narHash": "sha256-A33gyS/ERUCFcaFG9PJdIHfIOafguqkRe+DuIZteH5s=", + "lastModified": 1770098007, + "narHash": "sha256-CFlN57BXlR5FobTChdE2GgdIGx4xJcFFCk1E5Q98cSQ=", "owner": "steveyegge", "repo": "gastown", - "rev": "177094a2335786d1d450fd9e14b935877291c004", + "rev": "13461161063bf7b2365fe5fd4df88e32c3ba2a28", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 449e640..2302315 100644 --- a/flake.nix +++ b/flake.nix @@ -43,7 +43,9 @@ }; beads = { - url = "github:steveyegge/beads"; + # Pinned to 55e733c (v0.47.2) - uses Go 1.24.0 which is available in nixpkgs + # Later versions require Go 1.25.6 which isn't in nixpkgs-unstable yet + url = "github:steveyegge/beads/55e733c"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; diff --git a/home/roles/development/default.nix b/home/roles/development/default.nix index 14ff066..4231857 100644 --- a/home/roles/development/default.nix +++ b/home/roles/development/default.nix @@ -5,20 +5,9 @@ with lib; let cfg = config.home.roles.development; - # FIXME: Temporary override for upstream beads vendorHash mismatch - # Remove after upstream fix: https://github.com/steveyegge/beads/issues/XXX - beadsPackage = globalInputs.beads.packages.${system}.default.overrideAttrs (old: { - vendorHash = "sha256-YU+bRLVlWtHzJ1QPzcKJ70f+ynp8lMoIeFlm+29BNPE="; - - # Performance fix: avoid WHERE IN (8000+ IDs) query pattern that hammers Dolt CPU - # See: hq-ihwsj - bd list uses inefficient WHERE IN (all_ids) query pattern - # The fix changes SearchIssues to SELECT all columns directly instead of: - # 1. SELECT id FROM issues WHERE ... -> collect IDs - # 2. SELECT * FROM issues WHERE id IN (all_ids) -> 8000+ placeholder IN clause - patches = (old.patches or []) ++ [ - ./beads-search-query-optimization.patch - ]; - }); + # Use beads package from flake input + # Pinned to 0.47.2 in flake.nix due to Go 1.25.6 requirement in newer versions + beadsPackage = globalInputs.beads.packages.${system}.default; # Gastown - multi-agent workspace manager (no upstream flake.nix yet) # Source is tracked via flake input for renovate updates @@ -47,14 +36,10 @@ let ./gastown-fix-validate-recipient.patch # Fix agentBeadToAddress to use title field for hq- prefixed beads ./gastown-fix-agent-bead-address-title.patch - # Fix agentBeadToAddress to handle rig-specific prefixes (j-, sc-, etc.) - ./gastown-fix-agent-bead-rig-prefix.patch # Fix crew/polecat home paths: remove incorrect /rig suffix ./gastown-fix-role-home-paths.patch # Fix town root detection: don't map to Mayor (causes spurious mismatch warnings) ./gastown-fix-town-root-detection.patch - # Fix copyDir to handle symlinks (broken symlinks cause "no such file" errors) - ./gastown-fix-copydir-symlinks.patch # Statusline optimization: skip expensive beads queries for detached sessions # Reduces Dolt CPU from ~70% to ~20% by caching and early-exit ./gastown-statusline-optimization.patch diff --git a/home/roles/development/gastown-fix-agent-bead-address-title.patch b/home/roles/development/gastown-fix-agent-bead-address-title.patch index 84975b2..7aef29c 100644 --- a/home/roles/development/gastown-fix-agent-bead-address-title.patch +++ b/home/roles/development/gastown-fix-agent-bead-address-title.patch @@ -1,15 +1,15 @@ diff --git a/internal/mail/router.go b/internal/mail/router.go --- a/internal/mail/router.go +++ b/internal/mail/router.go -@@ -326,7 +326,10 @@ func agentBeadToAddress(bead *agentBead) string { +@@ -315,7 +315,10 @@ func agentBeadToAddress(bead *agentBead) string { } - - // Fall back to parsing description for role_type and rig + + // For other hq- agents, fall back to description parsing - return parseAgentAddressFromDescription(bead.Description) + if bead.Title != "" && strings.Contains(bead.Title, "/") { + return bead.Title + } + return parseAgentAddressFromDescription(bead.Description) } - + // Handle gt- prefixed IDs (legacy format)