Thanks for your interest in Beyond! This document covers the practical mechanics of contributing. For the architectural overview, see README.md and CLAUDE.md.
- Be respectful. See
CODE_OF_CONDUCT.md. - By contributing, you agree your work is licensed under the project's GPL-3.0-or-later license.
- Security issues: please do not open a public issue — see
SECURITY.md.
git clone git@github.com:PewterZz/Beyond.git
cd Beyond
cargo build
cargo runYou'll need Rust stable (2021 edition) and a working ollama serve for anything agent-related.
- Open an issue first for non-trivial work. Small bug fixes can go straight to a PR; features and refactors should be discussed first so you don't waste effort.
- Branch from
main:git checkout -b feat/my-thing(orfix/…,refactor/…,docs/…). - Make the change. Keep the diff scoped — one concern per PR.
- Before pushing, run the checks below.
- Open a PR targeting
main. Fill in the PR template.
- Use conventional-ish prefixes:
feat:,fix:,refactor:,docs:,chore:,test:. - Write commits that describe why, not just what. A good body is worth more than a clever title.
- Keep commits logically atomic. Rebase-and-squash fixup commits before review.
cargo fmt --all
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
cargo build --release # optional, but catches LTO-only issuesCI runs the same. PRs that fail fmt/clippy/tests won't be merged.
- No unnecessary comments. Well-named identifiers are the documentation. Only add a comment when the why is non-obvious (a hidden constraint, a workaround, a surprising invariant).
- Don't introduce abstractions for hypothetical future needs. Three similar lines beats a premature trait.
- IDs are ULID-backed. Use
BlockId/AgentId/SessionIdfrombeyonder-core; don't invent new ID types. - Workspace deps go in the root
Cargo.tomland are referenced in crate manifests asfoo = { workspace = true }. - Tool calls go through
CapabilityBroker. Never bypass it. - Don't move state-advancement into
RedrawRequested. Keep it inabout_to_wait— macOS suppresses redraws for hidden windows.
- Prefer integration-style tests that exercise real behavior over mock-heavy unit tests.
- For bug fixes: write a failing test first, then fix it.
- Crate-scoped tests live in each crate's
tests/or inline#[cfg(test)]modules.
Open a GitHub issue with:
- What you did (exact steps, commands, config).
- What you expected.
- What actually happened, including any
RUST_LOG=beyonder=debugoutput. - OS, GPU, and
rustc --version.
Open an issue describing the use case and sketch of the design. For larger changes, a short design note in the issue is better than a surprise PR.
See the crate table in README.md. In brief: core → store/terminal/acp → runtime → gpu/ui → binary.
Thanks for helping make Beyond better.