Conversation
Replace Go-based beads (bd) with Rust rewrite (br v0.1.19) from beads_rust. Prebuilt binaries for x86_64-linux, x86_64-darwin, aarch64-darwin. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Code Review: Switch to beads_rust (br)Good direction overall — removing the Go runtime dependency simplifies the dev environment. A few issues to address before merging: Bugs / Will Likely Break1. Missing The pre-built Linux binary ( Fix by adding beads-rust = pkgs.stdenv.mkDerivation {
pname = "beads-rust";
version = beadsRustVersion;
src = pkgs.fetchurl { ... };
nativeBuildInputs = pkgs.lib.optionals pkgs.stdenv.isLinux [
pkgs.autoPatchelfHook
];
buildInputs = pkgs.lib.optionals pkgs.stdenv.isLinux [
pkgs.stdenv.cc.cc.lib # libgcc_s, libstdc++
];
...
};This is the most critical issue — the Linux target will fail without this. 2. No
If devShells = nixpkgs.lib.genAttrs
(builtins.filter (s: beadsRustHashes ? ${s}) allSystems)
(system: ...);Or add Code Quality3.
4. Shell hook lacks error handling The old shellHook had a graceful fallback. The new one will emit a raw error if # Current — will show command-not-found on failure
echo " Beads: $(br --version)"
# Safer
echo " Beads: $(br --version 2>/dev/null || echo 'br not available')"Documentation5. The project instructions reference Minor / Informational6. Consider
src = pkgs.fetchzip {
url = "...";
hash = "...";
stripRoot = false;
};Summary: The Linux binary will almost certainly fail without |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: da84104c3e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| url = "https://github.com/Dicklesworthstone/beads_rust/releases/download/v${beadsRustVersion}/br-v${beadsRustVersion}-${beadsRustTargets.${system}}.tar.gz"; | ||
| hash = beadsRustHashes.${system}; |
There was a problem hiding this comment.
Add aarch64-linux mapping for beads-rust download
allSystems still includes aarch64-linux, but beadsRustTargets and beadsRustHashes do not define that key while the download URL and hash are indexed with ${system} directly. When an ARM Linux user evaluates devShells.aarch64-linux.default, Nix will fail with a missing attribute error, so nix develop is broken on a platform this flake claims to support.
Useful? React with 👍 / 👎.
Summary
bd) with Rust rewrite (brv0.1.19) from beads_rustgodependency (only needed for old beads)Test plan
nix develop --command br --versionreturnsbr 0.1.19🤖 Generated with Claude Code