Skip to main content

Crate balls

Crate balls 

Source
Expand description

Ball: git-native task tracker for parallel agent workflows.

Tasks are JSON files committed to your repo. Worktrees provide isolation. Git provides sync, history, and collaboration. There is no database, no daemon, no external service.

§Library usage

use balls::{Store, Task};
use std::env;

let store = Store::discover(&env::current_dir().unwrap()).unwrap();
let tasks = store.all_tasks().unwrap();
for t in balls::ready::ready_queue(&tasks) {
    println!("[P{}] {} {}", t.priority, t.id, t.title);
}

Re-exports§

pub use config::Config;
pub use error::BallError;
pub use error::Result;
pub use store::Store;
pub use task::validate_id;
pub use task::ArchivedChild;
pub use task::LinkType;
pub use task::NewTaskOpts;
pub use task::Note;
pub use task::Status;
pub use task::Task;
pub use task::TaskType;

Modules§

commit_msg
Format a review-time commit message in the standard git 50/72 shape: a single title line with the delivery tag appended, a blank line, then the optional body. Keeps git log --oneline readable.
config
delivery
Delivery-link resolution (SPEC §6).
display
CLI display primitives: colors, glyphs, badges, tree prefixes.
error
git
git_state
Git plumbing for the state branch topology: orphan branch creation, remote-tracking setup, and worktree attachment for an existing branch. Separate from git.rs so that module stays under the 300-line cap.
link
Typed relationships between tasks: Link and LinkType.
plugin
progress
Epic completion bar: 10-cell block with closed/total and percent.
ready
render_list
Grouped/nested/glyphed rendering for bl list.
render_ready
Single-status (always open) ready-queue rendering.
render_show
Rich rendering for bl show.
render_show_text
Text helpers for render_show: relative timestamps and paragraph word-wrap. Split out so render_show.rs stays under the 300-line cap while keeping the helpers testable in isolation.
resolve
review
Review, close, and archive — the submit side of the task lifecycle. Lives alongside worktree.rs (claim/drop/orphans) but kept separate so neither file hits the 300-line cap.
store
task
task_io
Task file I/O. Separated from task.rs to keep that file under the 300-line cap and to localize the on-disk format in one place.
task_type
TaskType enum. Split from task.rs to keep that file under the 300-line cap, mirroring the link.rs split pattern.
tree
Parent-edge tree rendering for bl dep tree.
worktree
Worktree scaffolding: claim, drop, and orphan cleanup. The submit side (review, close, archive) lives in review.rs to keep both files under the 300-line cap.