feat: buzz, basecamp-cli
This commit is contained in:
@@ -6,24 +6,30 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- `buzz` / `buzz-desktop` package — Block's "hive mind" desktop app, consumed as a pass-through from the `mulatta/buzz.nix` flake input. The upstream AppImage lacks the sidecars (`buzz-agent`, `buzz-acp`, `buzz-dev-mcp`, `git-credential-nostr`) and the Tauri-specific GStreamer integration needed to actually run, so we consume mulatta's from-source Tauri build instead. Builds entirely from source — no third-party binary cache (deliberate: don't want to trust mulatta's prebuilt artifacts). First build is slow.
|
||||||
- `opencode-desktop` re-added as a pure pass-through from the `anomalyco/opencode` flake input (Electron app, tracked on `dev`); the input intentionally does not follow nixpkgs so upstream's `node_modules` FOD hashes stay valid
|
- `opencode-desktop` re-added as a pure pass-through from the `anomalyco/opencode` flake input (Electron app, tracked on `dev`); the input intentionally does not follow nixpkgs so upstream's `node_modules` FOD hashes stay valid
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- `openwork` 0.17.30: upstream renamed desktop/icon assets from `@openworkdesktop.{desktop,png}` to `openwork.{desktop,png}` and dropped the `Icon=`/`--no-sandbox` substitutions that are no longer needed
|
- `openwork` 0.17.30: upstream renamed desktop/icon assets from `@openworkdesktop.{desktop,png}` to `openwork.{desktop,png}` and dropped the `Icon=`/`--no-sandbox` substitutions that are no longer needed
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Remove duplicate opencode-rules.nix (backward-compat alias preserved)
|
- Remove duplicate opencode-rules.nix (backward-compat alias preserved)
|
||||||
- Tool-agnostic naming in coding-rules lib internals
|
- Tool-agnostic naming in coding-rules lib internals
|
||||||
- Remove redundant overlay entries for non-existent flake inputs
|
- Remove redundant overlay entries for non-existent flake inputs
|
||||||
- Remove redundant 'additions' overlay (identical to 'default')
|
- Remove redundant 'additions' overlay (identical to 'default')
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
- Dead overlay entries for non-existent flake inputs
|
- Dead overlay entries for non-existent flake inputs
|
||||||
- Legacy `mkOpencodeRules` alias and `lib.opencode-rules` backward-compat entry (use `mkCodingRules` / `lib.coding-rules`)
|
- Legacy `mkOpencodeRules` alias and `lib.opencode-rules` backward-compat entry (use `mkCodingRules` / `lib.coding-rules`)
|
||||||
|
|
||||||
## [0.4.0] - 2026-04-15
|
## [0.4.0] - 2026-04-15
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Pi-agent wrapper with systemd sandbox and per-host-user policy
|
- Pi-agent wrapper with systemd sandbox and per-host-user policy
|
||||||
- Containerized Pi agent
|
- Containerized Pi agent
|
||||||
- `lib.agents.nix` with loadCanonical, renderers (OpenCode, Claude Code, Pi), and shellHook
|
- `lib.agents.nix` with loadCanonical, renderers (OpenCode, Claude Code, Pi), and shellHook
|
||||||
@@ -39,6 +45,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|||||||
- Opencode dev shell with mkCodingRules demo
|
- Opencode dev shell with mkCodingRules demo
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- OpenCode flake input updated through v1.1.65 to v1.3.6
|
- OpenCode flake input updated through v1.1.65 to v1.3.6
|
||||||
- Switched from local opencode package to upstream flake input
|
- Switched from local opencode package to upstream flake input
|
||||||
- Removed opencode-desktop (awaiting upstream fix), later re-enabled
|
- Removed opencode-desktop (awaiting upstream fix), later re-enabled
|
||||||
@@ -46,6 +53,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|||||||
- Flake inputs updated throughout
|
- Flake inputs updated throughout
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Pi settings sync
|
- Pi settings sync
|
||||||
- Remove openwork sidecars in preFixup to prevent .opencode-wrapped conflict
|
- Remove openwork sidecars in preFixup to prevent .opencode-wrapped conflict
|
||||||
- Remove sidecar binaries from openwork $out/bin to fix buildEnv conflict
|
- Remove sidecar binaries from openwork $out/bin to fix buildEnv conflict
|
||||||
@@ -56,6 +64,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|||||||
## [0.3.0] - 2026-02-20
|
## [0.3.0] - 2026-02-20
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- `notesmd-cli` package with flake checks
|
- `notesmd-cli` package with flake checks
|
||||||
- `sidecar` and `td` packages
|
- `sidecar` and `td` packages
|
||||||
- `opencode-desktop` package with Wayland support
|
- `opencode-desktop` package with Wayland support
|
||||||
@@ -63,12 +72,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|||||||
- `kestracli` / `kestractl` package (1.0.0 to 1.2.2)
|
- `kestracli` / `kestractl` package (1.0.0 to 1.2.2)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Nix-update CI workflow optimized with caching and parallel processing
|
- Nix-update CI workflow optimized with caching and parallel processing
|
||||||
- Restructured n8n version handling for nix-update compatibility
|
- Restructured n8n version handling for nix-update compatibility
|
||||||
- Switched formatter from nixpkgs-fmt to alejandra
|
- Switched formatter from nixpkgs-fmt to alejandra
|
||||||
- Replace local opencode with upstream flake input v1.1.27
|
- Replace local opencode with upstream flake input v1.1.27
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- n8n build error
|
- n8n build error
|
||||||
- n8n pnpm hash
|
- n8n pnpm hash
|
||||||
- n8n update script
|
- n8n update script
|
||||||
@@ -85,6 +96,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|||||||
## [0.2.0] - 2026-01-13
|
## [0.2.0] - 2026-01-13
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Gitea Actions workflow for automated package updates with nix-update
|
- Gitea Actions workflow for automated package updates with nix-update
|
||||||
- `n8n`, `beads`, and `opencode` packages
|
- `n8n`, `beads`, and `opencode` packages
|
||||||
- `stt-ptt` package with auto-language detection
|
- `stt-ptt` package with auto-language detection
|
||||||
@@ -95,17 +107,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|||||||
- Port helper library (`lib/ports.nix`)
|
- Port helper library (`lib/ports.nix`)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Beads updated through v0.49.1
|
- Beads updated through v0.49.1
|
||||||
- N8n updated through v2.8.1
|
- N8n updated through v2.8.1
|
||||||
- Opencode updated through v1.1.18
|
- Opencode updated through v1.1.18
|
||||||
- Documentation expanded with comprehensive patterns and HM module docs
|
- Documentation expanded with comprehensive patterns and HM module docs
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Python env version fix for marimo
|
- Python env version fix for marimo
|
||||||
|
|
||||||
## [0.1.0] - 2025-10-04
|
## [0.1.0] - 2025-10-04
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Initial flake setup with packages, overlays, modules, and shells
|
- Initial flake setup with packages, overlays, modules, and shells
|
||||||
- NixOS and Home Manager module infrastructure
|
- NixOS and Home Manager module infrastructure
|
||||||
- `lib/` shared utilities
|
- `lib/` shared utilities
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ These packages are built from source in `pkgs/<name>/`:
|
|||||||
| `launch-webapp` | Launch web applications | Shell | `pkgs/launch-webapp/` |
|
| `launch-webapp` | Launch web applications | Shell | `pkgs/launch-webapp/` |
|
||||||
| `mem0` | AI memory assistant with vector storage | Python | `pkgs/mem0/` |
|
| `mem0` | AI memory assistant with vector storage | Python | `pkgs/mem0/` |
|
||||||
| `msty-studio` | Msty Studio application | Python | `pkgs/msty-studio/` |
|
| `msty-studio` | Msty Studio application | Python | `pkgs/msty-studio/` |
|
||||||
|
| `buzz` | Hive mind communication platform (desktop app) | Pass-through | `pkgs/default.nix` |
|
||||||
| `openshell` | AI shell assistant | Go | `pkgs/openshell/` |
|
| `openshell` | AI shell assistant | Go | `pkgs/openshell/` |
|
||||||
| `openwork` | Open-source Claude Cowork alternative powered by opencode | AppImage | `pkgs/openwork/` |
|
| `openwork` | Open-source Claude Cowork alternative powered by opencode | AppImage | `pkgs/openwork/` |
|
||||||
| `pomodoro-timer` | Pomodoro timer utility | Shell | `pkgs/pomodoro-timer/` |
|
| `pomodoro-timer` | Pomodoro timer utility | Shell | `pkgs/pomodoro-timer/` |
|
||||||
@@ -44,6 +45,7 @@ These packages are imported directly from flake inputs with minor modifications:
|
|||||||
| Package | Source | Modification | Location |
|
| Package | Source | Modification | Location |
|
||||||
|---------|--------|-------------|----------|
|
|---------|--------|-------------|----------|
|
||||||
| `opencode-desktop` | `inputs.opencode` | Electron desktop app (pure pass-through) | `pkgs/default.nix` |
|
| `opencode-desktop` | `inputs.opencode` | Electron desktop app (pure pass-through) | `pkgs/default.nix` |
|
||||||
|
| `buzz` / `buzz-desktop` | `inputs.buzz` (mulatta/buzz.nix) | From-source Tauri build with sidecars; the upstream AppImage lacks the sidecars + Tauri GStreamer integration. Builds from source without any third-party binary cache — first build is slow (Rust + sherpa-onnx), subsequent builds cached locally | `pkgs/default.nix` |
|
||||||
|
|
||||||
## Adding Package Documentation
|
## Adding Package Documentation
|
||||||
|
|
||||||
|
|||||||
Generated
+69
-4
@@ -23,20 +23,42 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1785348116,
|
"lastModified": 1785979955,
|
||||||
"narHash": "sha256-AVycTcomtfvQJ/AHvMg5xu7lVoOzDXxjN+pV7mqUIQ4=",
|
"narHash": "sha256-OP96Ak4OBydR98keoNYKdGY8j+wrIys0LafSZgwS20g=",
|
||||||
"owner": "basecamp",
|
"owner": "basecamp",
|
||||||
"repo": "basecamp-cli",
|
"repo": "basecamp-cli",
|
||||||
"rev": "e1059fb123a03295ce6176272e4bbaf43d7971c6",
|
"rev": "61a5591de1da9bc99c56b8072a4d6bad2c9b9e47",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "basecamp",
|
"owner": "basecamp",
|
||||||
"ref": "v0.8.0-rc.1",
|
"ref": "v0.9.0",
|
||||||
"repo": "basecamp-cli",
|
"repo": "basecamp-cli",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"buzz": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-overlay": "rust-overlay",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1785934673,
|
||||||
|
"narHash": "sha256-U/hMY9kkcdxt497yfGuT7+ytrRmE+E15KF6Sc6VrbZo=",
|
||||||
|
"owner": "mulatta",
|
||||||
|
"repo": "buzz.nix",
|
||||||
|
"rev": "f4bb77a87f1ec10e5ad51cfe6d0c4fca481c0534",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "mulatta",
|
||||||
|
"repo": "buzz.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1785318670,
|
"lastModified": 1785318670,
|
||||||
@@ -128,11 +150,54 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"agents": "agents",
|
"agents": "agents",
|
||||||
"basecamp": "basecamp",
|
"basecamp": "basecamp",
|
||||||
|
"buzz": "buzz",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-master": "nixpkgs-master",
|
"nixpkgs-master": "nixpkgs-master",
|
||||||
"opencode": "opencode",
|
"opencode": "opencode",
|
||||||
"openspec": "openspec"
|
"openspec": "openspec"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"buzz",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1785820796,
|
||||||
|
"narHash": "sha256-sZXy8mzUMi2cOGulhoW4HWAZB6JhXOAx1x8J4auZFWk=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "b6916ba032e02122d6ed3064f40cabe937363d43",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"buzz",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1785360170,
|
||||||
|
"narHash": "sha256-XE1lKgQ3eIO3E7zWryqcRsax+mYXod/5RHBn4YaR9YE=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "d1187f8bc71fb8aab02395869ec3f5c1920f75c0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
@@ -6,23 +6,22 @@
|
|||||||
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
|
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
|
||||||
|
|
||||||
basecamp = {
|
basecamp = {
|
||||||
url = "github:basecamp/basecamp-cli/v0.8.0-rc.1";
|
url = "github:basecamp/basecamp-cli/v0.9.0";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# openspec - spec-driven development for AI coding assistants
|
|
||||||
openspec = {
|
openspec = {
|
||||||
url = "github:Fission-AI/OpenSpec";
|
url = "github:Fission-AI/OpenSpec";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# opencode - open-source coding agent; provides the opencode-desktop
|
|
||||||
# Electron app. NOTE: intentionally does NOT follow nixpkgs. Upstream
|
|
||||||
# pins a node_modules fixed-output derivation hash in nix/hashes.json
|
|
||||||
# against its own nixpkgs snapshot; following would risk FOD hash
|
|
||||||
# mismatches. Tracking the `dev` default branch (flake.lock pins the rev).
|
|
||||||
opencode.url = "github:anomalyco/opencode/dev";
|
opencode.url = "github:anomalyco/opencode/dev";
|
||||||
|
|
||||||
|
buzz = {
|
||||||
|
url = "github:mulatta/buzz.nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
# Agent definitions and coding rules
|
# Agent definitions and coding rules
|
||||||
agents = {
|
agents = {
|
||||||
url = "git+https://code.m3ta.dev/m3tam3re/AGENTS";
|
url = "git+https://code.m3ta.dev/m3tam3re/AGENTS";
|
||||||
|
|||||||
+19
-7
@@ -44,13 +44,25 @@ in {
|
|||||||
# We override both here so the input builds and reports the rc.1 version.
|
# We override both here so the input builds and reports the rc.1 version.
|
||||||
# When upstream fixes package.nix (expected for the 0.8.0 final), drop this
|
# When upstream fixes package.nix (expected for the 0.8.0 final), drop this
|
||||||
# override back to the plain pass-through.
|
# override back to the plain pass-through.
|
||||||
basecamp = inputs.basecamp.packages.${system}.default.overrideAttrs (_: {
|
# basecamp = inputs.basecamp.packages.${system}.default.overrideAttrs (_: {
|
||||||
version = "0.8.0-rc.1";
|
# version = "0.8.0-rc.1";
|
||||||
vendorHash = "sha256-m1UF/Ga9C9GJF0JtZMXFOX88chb+f279/aoAaiwfxvg=";
|
# vendorHash = "sha256-m1UF/Ga9C9GJF0JtZMXFOX88chb+f279/aoAaiwfxvg=";
|
||||||
# src stays the flake input (lib.cleanSource ./.. pinned by flake.lock to
|
# # src stays the flake input (lib.cleanSource ./.. pinned by flake.lock to
|
||||||
# rc.1) — only the version label that upstream forgot to bump is corrected.
|
# # rc.1) — only the version label that upstream forgot to bump is corrected.
|
||||||
__intentionallyOverridingVersion = true;
|
# __intentionallyOverridingVersion = true;
|
||||||
});
|
# });
|
||||||
|
basecamp = inputs.basecamp.packages.${system}.default;
|
||||||
openspec = inputs.openspec.packages.${system}.default;
|
openspec = inputs.openspec.packages.${system}.default;
|
||||||
opencode-desktop = inputs.opencode.packages.${system}.opencode-desktop;
|
opencode-desktop = inputs.opencode.packages.${system}.opencode-desktop;
|
||||||
|
|
||||||
|
# buzz: Block's "hive mind" desktop app. Consumed from mulatta/buzz.nix
|
||||||
|
# because the upstream AppImage lacks the sidecars + Tauri GStreamer
|
||||||
|
# integration needed to actually run. Exposed under both `buzz-desktop`
|
||||||
|
# (mulatta's name) and `buzz` (the short alias). Builds entirely from
|
||||||
|
# source — no third-party binary cache. First build is slow (Rust + Tauri
|
||||||
|
# + sherpa-onnx); subsequent builds are cached in the local nix store.
|
||||||
|
# Note: mulatta only publishes packages for x86_64-linux, aarch64-linux,
|
||||||
|
# aarch64-darwin — x86_64-darwin will throw at build time.
|
||||||
|
buzz-desktop = inputs.buzz.packages.${system}.buzz-desktop;
|
||||||
|
buzz = inputs.buzz.packages.${system}.buzz-desktop;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user