You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.6 KiB
2.6 KiB
| title | status | type | priority | created_at | updated_at |
|---|---|---|---|---|---|
| Add backlog status to tickets | completed | feature | normal | 2026-03-10T23:30:31Z | 2026-03-10T23:30:31Z |
Goal
Add a backlog status variant so tickets can be created without immediately surfacing in the active work queue. Tickets in backlog are created but intentionally deferred; they should not appear in nbd list, nbd ready, or nbd next by default.
Semantics
backlog= created, but not yet ready to be worked on (intentionally deferred)- Default status for new tickets remains
todo backlogtickets are excluded fromnbd list(same asdoneandclosed)backlogtickets are excluded fromnbd readyandnbd nextbacklogtickets do not count as resolved for dependency purposes (unlikedoneandclosed) — a dependency on abacklogticket still blocksbacklogtickets are visible with--all,--filter status=backlog, or--filter status=*
Files to change
src/ticket.rs
Add Backlog variant to the Status enum:
pub enum Status {
#[default]
Todo,
InProgress,
Done,
Closed,
Backlog, // new
}
Serialises as "backlog".
src/main.rs
parse_status: add"backlog" => Ok(Status::Backlog)arm and update the error messagecmd_list: excludeStatus::Backlogin the default (no--all, nostatus=filter) case, alongsideDoneandClosedcmd_ready: excludeStatus::Backlogfrom the ready set (a backlog ticket is never ready)cmd_next: same exclusion ascmd_ready
src/display.rs
status_str: addStatus::Backlog => "backlog"arm
src/graph.rs
status_str(internal helper, duplicated): addStatus::Backlog => "backlog"arm
README.md
- Update the Status table to include
backlog - Update
nbd listusage examples to mention thatbacklogis also hidden by default
CLAUDE.md
- Update CLI Interface block to show
backlogas a valid status value
src/tests.rs
- Add unit test: a ticket with
Status::Backlogis excluded from the ready list and is visible under--all
tests/integration.rs
- Add integration test: create a ticket with
--status backlog, confirm it does not appear in plainnbd listornbd ready, and does appear innbd list --all
Validation
cargo fmt && cargo check && cargo clippy && cargo test
cargo run -- create --title "Backlog item" --status backlog --json
cargo run -- list --json # should NOT appear
cargo run -- list --all --json # should appear
cargo run -- ready --json # should NOT appear