No description
- Rust 95.9%
- Nix 3.7%
- CSS 0.3%
- JavaScript 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
krisbuild/kris/krisbuild/nix/hello cached
krisbuild/kris/krisbuild/nix/workspace-deps cached
krisbuild/kris/krisbuild/nix/test-deps cached
krisbuild/kris/krisbuild/nix/build cached
krisbuild/kris/krisbuild/nix/test cached
krisbuild/kris/krisbuild/nix/world cached
krisbuild/kris/krisbuild/nix/clippy cached
krisbuild/kris/krisbuild/nix/kb-check cached
krisbuild/kris/krisbuild/nix/deployed succeeded
krisbuild/kris/krisbuild krisbuild kris/krisbuild: all tasks succeeded
The agent unit is delegated and keeps run supervisors alive across a restart (KillMode=process), and the agent enables cpu and memory in the unit cgroup's subtree_control so runs get limits. A control process of that unit (ExecStartPre=) is then spawned into the unit's own cgroup, which cgroup v2 refuses while leftover runs keep it alive: every restart with a run in flight failed with "Failed to spawn 'start-pre' task: Device or resource busy", and the unit crashlooped until the run ended. The preflight is now krisbuild-agent-preflight.service, a root oneshot the agent requires and starts after, so it still runs before every start. The agent unit itself only ever starts its main process, into the `agent` leaf. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
| .claude/agents | ||
| .kb | ||
| crates | ||
| docs | ||
| examples | ||
| nix | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
| SPEC.md | ||
krisbuild
A prototype CI system for self-hosted infrastructure, built as a content-addressed task scheduler on top of Nix. See SPEC.md for the design; docs/briefs/ for per-crate implementation briefs.
Layout
| Crate | Role |
|---|---|
kb-core |
Shared types: task model, GraphChunk NDJSON interchange, agent protocol. The contract between all binaries — treat as frozen. |
kb-control-plane |
Single-binary server: SQLite state, scheduler/matchmaker, agent WebSocket endpoint, HTTP API. |
kb-agent |
Per-node daemon: dials out to the control plane, advertises resources, executes tasks (none/container isolation, nix realization). |
kb-eval-nix |
Nix frontend: evaluates a flake into GraphChunk NDJSON, one task per derivation, edges from the real derivation graph. |
Quick start (prototype)
cargo build --workspace
kb-control-plane --config cp.toml &
kb-agent --control-plane ws://localhost:8080/agent &
kb-eval-nix --flake .#checks | curl -X POST --data-binary @- \
'http://localhost:8080/api/graphs?pipeline=dev&rev=…'