fix(nix): use gms_pure_go, fix vendorHash, drop ICU dependency#3278
Open
TheCTD wants to merge 39 commits intogastownhall:mainfrom
Open
fix(nix): use gms_pure_go, fix vendorHash, drop ICU dependency#3278TheCTD wants to merge 39 commits intogastownhall:mainfrom
TheCTD wants to merge 39 commits intogastownhall:mainfrom
Conversation
The Nix flake failed to build on NixOS due to three issues: 1. Stale vendorHash (reported in gastownhall#3221) — updated to the correct value for proxyVendor mode. 2. ICU C headers required by go-icu-regex unavailable in the Nix sandbox. PR gastownhall#3064 added icu to buildInputs, but gastownhall#3066 and gastownhall#3240 established the correct fix: build with -tags gms_pure_go to use Go's stdlib regex instead. Beads does not use SQL REGEXP functions so there is no functional impact. ICU and its CGO flags are removed from default.nix and flake.nix. 3. vendor/modules.txt inconsistency — several packages are marked # explicit in vendor/modules.txt but only appear as indirect requires in go.mod (fixed upstream by go mod tidy && go mod vendor). Added proxyVendor = true so nixpkgs serves modules via a local GOPROXY instead of the vendor directory, bypassing the consistency check. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: remove sources of conflict when working on multiple clones
Executed-By: beads/crew/emma
Executed-By: beads/crew/emma
Beads is now a dependency of Gas City, which expects a standard PR-based workflow. Remove the hook that blocked PR creation and update AGENT_INSTRUCTIONS.md so crew workers use PRs by default. Direct push to main stays available for releases and narrow operational fixes. Keep the CI-polling rate-limit block in the hook — that guard is about the 5000/hr GitHub API quota, not workflow policy. Executed-By: beads/crew/emma
…nd (gastownhall#3287) The TestEmbeddedMemoryConcurrent workaround disables export.auto so the test doesn't hit the race investigated in GH#3260. The probe on PR gastownhall#3269 confirmed the race is engine-shutdown-level (Dolt working-set persistence can lag flock release), not flock-level. Point future readers at that investigation so they don't try to fix it with another flock. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* test: share epic DB setup in one suite (bd-itp.5) * test: pass subtest testing.T through epic helper
…astownhall#3297) The vendorHash in default.nix went stale after several dependabot updates to go.mod/go.sum landed post-PR gastownhall#3064. Updates to the value reported by Nix as "got" by @luccahuguet. Fixes gastownhall#3221 Co-authored-by: luccahuguet <luccahuguet@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4 tasks
…GH#3303) The replace directive never worked for \`go install\` (per \`go help install\`, replace is not honored for install@version). Removing it fixes \`go install\` on Linux/macOS; Windows was already broken and stays broken pending GH#3307. Full analysis in gastownhall#3303.
Option D from GH#3303. Routes go install users through CGO_ENABLED=0 as the simplest path (server-mode only, no C toolchain needed). install.sh falls back to nocgo if cgo install fails. Detailed nocgo error message guides users to server mode or an embedded-capable install. Updates INSTALLING.md and ICU-POLICY.md accordingly.
Converges the sprinkle of -tags=gms_pure_go fixes into a single source plus a source-time CI guard. .buildflags is now canonical (exports GOFLAGS, CGO_ENABLED), scripts source it, scripts/check-build-tags.sh runs in CI to catch bare go commands. Fixes 5 latent bugs the guard caught (regression.yml, Makefile bench/test-regression, devcontainer, embedded-test-shard fallback, smoke-test scripts).
Both are local-tool state files with no business in the repo: - `.codex` — zero-byte marker dropped by the Codex CLI - `.claude/scheduled_tasks.lock` — Claude Code session lock Existing .claude/ entries already covered settings.local.json, worktrees/, and *.log; extending the pattern to *.lock and adding the separate .codex entry.
…#3230) * fix: rebind target workspace for db commands * fix: isolate rebinding from caller workspace state * fix: restore no-db target selection semantics * fix: honor no-db target precedence consistently * test: restore db flag state in context rebinding tests
…all#3318) Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4 to 5. - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](actions/upload-pages-artifact@v4...v5) --- updated-dependencies: - dependency-name: actions/upload-pages-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…mcp (gastownhall#3319) Bumps [fastmcp](https://github.com/PrefectHQ/fastmcp) from 3.2.3 to 3.2.4. - [Release notes](https://github.com/PrefectHQ/fastmcp/releases) - [Changelog](https://github.com/PrefectHQ/fastmcp/blob/main/docs/changelog.mdx) - [Commits](PrefectHQ/fastmcp@v3.2.3...v3.2.4) --- updated-dependencies: - dependency-name: fastmcp dependency-version: 3.2.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#3322) Bumps [github.com/anthropics/anthropic-sdk-go](https://github.com/anthropics/anthropic-sdk-go) from 1.34.0 to 1.37.0. - [Release notes](https://github.com/anthropics/anthropic-sdk-go/releases) - [Changelog](https://github.com/anthropics/anthropic-sdk-go/blob/main/CHANGELOG.md) - [Commits](anthropics/anthropic-sdk-go@v1.34.0...v1.37.0) --- updated-dependencies: - dependency-name: github.com/anthropics/anthropic-sdk-go dependency-version: 1.37.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ric (gastownhall#3323) Bumps [go.opentelemetry.io/otel/exporters/stdout/stdoutmetric](https://github.com/open-telemetry/opentelemetry-go) from 1.42.0 to 1.43.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md) - [Commits](open-telemetry/opentelemetry-go@v1.42.0...v1.43.0) --- updated-dependencies: - dependency-name: go.opentelemetry.io/otel/exporters/stdout/stdoutmetric dependency-version: 1.43.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…l#3324) Bumps [golang.org/x/term](https://github.com/golang/term) from 0.41.0 to 0.42.0. - [Commits](golang/term@v0.41.0...v0.42.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-version: 0.42.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…hall#3325) Bumps [charm.land/lipgloss/v2](https://github.com/charmbracelet/lipgloss) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/charmbracelet/lipgloss/releases) - [Commits](charmbracelet/lipgloss@v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: charm.land/lipgloss/v2 dependency-version: 2.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.12.5 to 2.13.2. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/v2.13.2/HISTORY.md) - [Commits](pydantic/pydantic@v2.12.5...v2.13.2) --- updated-dependencies: - dependency-name: pydantic dependency-version: 2.13.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…_APPEND (gastownhall#3301) The previous implementation used bufio.NewWriter which could split a single entry into multiple write() syscalls. Under concurrent O_APPEND from multiple goroutines, these partial writes interleave, producing corrupted lines that the scanner silently drops. Fix: encode into a bytes.Buffer first, then issue a single f.Write() call. For payloads under PIPE_BUF (4096 bytes on Linux), this is guaranteed atomic by POSIX. Fixes flaky TestAppend_ConcurrentWritersUniqueIDs in CI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…townhall#3315) The Tracker.getConfig() method only checked the Dolt database and environment variables. Since `bd config set linear.api_key` writes to config.yaml (yaml-only key), `bd linear sync --pull` could never find the API key. Mirror the check from cmd/bd/linear.go:getLinearConfig() by calling config.IsYamlOnlyKey() and config.GetString() first. Co-authored-by: mayor <root@vmi3233510.contaboserver.net> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix macOS lsof cwd filtering in doltserver * Keep regular epics open after last child closes
…mulation (gastownhall#3326) When DOLT_FETCH fails (network error, timeout, authentication), Dolt leaves orphaned tmp_pack_* files in .dolt/git-remote-cache/. These accumulate unboundedly across repeated failures and are never cleaned up automatically. Observed impact: 194 GB of tmp_pack_* debris on a single machine after months of failed federation syncs. Call DoltGC best-effort after a failed fetch so orphaned pack temporaries are reclaimed before the error propagates. DoltGC requires a non-transactional connection; if db is a transaction the GC will fail silently, which is acceptable — the original fetch error is still returned correctly. Cherry-picked from gastownhall#3308 by @athosmartins. The original PR bundled an unrelated Gas Town schema migration (re-adding the `crystallizes` column that migration 012 explicitly dropped) and accidentally deleted a working #nosec directive in rules.go, so this pulls out just the valuable fix. Closes bd-fst Co-authored-by: Athos Bernardes <athosmartins@gmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…astownhall#3327) Closes gastownhall#3290 — auto-recovery from corrupt dolt manifest on startup (GH#3290 signature: 'root hash doesn't exist').
Closes gastownhall#3289, gastownhall#3309, gastownhall#3252, gastownhall#3253 — hardens Linear push: requires explicit linear.state_map.* config, rejects ambiguous state resolution, narrows push dedup to pushable fields, blocks unscoped project-filtered push from creating unlinked beads, and adds regression test for the orphan-ownership rule (parent-filtered push must not update external issues Beads hasn't claimed via external_ref).
…all#3345) Thanks @harry-miller-trimble for the clean fix and thorough test updates!
…astownhall#3231) (gastownhall#3232) Auto-sanitize hyphenated `dolt_database` names on embedded-mode upgrade. Projects initialized before gastownhall#2142 retain hyphenated names in `metadata.json`; after the 1.0.0 embedded-mode default flip, those names are rejected by the embedded Dolt engine. This change detects legacy names on store open, renames the database directory, persists the fix to `metadata.json`, and adds a doctor check + init guard for future prevention. Closes gastownhall#3231. Related: gastownhall#2142, gastownhall#2160, gastownhall#3128, gastownhall#3129. Thanks @kevglynn for the thorough fix, migration safety (collision detection, crash-safe ordering), and test coverage.
…all#3364) Adds a CI job that runs `nix build .#default` on PRs touching go.mod, go.sum, default.nix, flake.nix, or flake.lock, so dependabot bumps that invalidate vendorHash fail loudly in CI instead of silently breaking Nix users on main (as happened in GH#3221). Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Nix flake failed to build on NixOS due to three issues: 1. Stale vendorHash (reported in gastownhall#3221) — updated to the correct value for proxyVendor mode. 2. ICU C headers required by go-icu-regex unavailable in the Nix sandbox. PR gastownhall#3064 added icu to buildInputs, but gastownhall#3066 and gastownhall#3240 established the correct fix: build with -tags gms_pure_go to use Go's stdlib regex instead. Beads does not use SQL REGEXP functions so there is no functional impact. ICU and its CGO flags are removed from default.nix and flake.nix. 3. vendor/modules.txt inconsistency — several packages are marked # explicit in vendor/modules.txt but only appear as indirect requires in go.mod (fixed upstream by go mod tidy && go mod vendor). Added proxyVendor = true so nixpkgs serves modules via a local GOPROXY instead of the vendor directory, bypassing the consistency check. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Nix flake failed to build on NixOS due to three issues:
Stale vendorHash (reported in Nix flake build fails: go-modules hash mismatch on v1.0.0 #3221) — updated to the correct value for proxyVendor mode.
ICU C headers required by go-icu-regex unavailable in the Nix sandbox. PR Update nix install for v1.0.0 #3064 added icu to buildInputs, but fix: remove ICU runtime dependency from release binaries #3066 and fix(ci): drop ICU linkage from test jobs, use -tags gms_pure_go everywhere #3240 established the correct fix: build with -tags gms_pure_go to use Go's stdlib regex instead. Beads does not use SQL REGEXP functions so there is no functional impact. ICU and its CGO flags are removed from default.nix and flake.nix.
vendor/modules.txt inconsistency — several packages are marked # explicit in vendor/modules.txt but only appear as indirect requires in go.mod (fixed upstream by go mod tidy && go mod vendor). Added proxyVendor = true so nixpkgs serves modules via a local GOPROXY instead of the vendor directory, bypassing the consistency check.