5 Commits (e9b6e97116732b74833dbfcc3647a74449804f86)

Author SHA1 Message Date
Elijah Voigt e9b6e97116 feat(nbd): implement display layer (Phase 4)
Add output formatting for tickets via display.rs:
- print_ticket / format_ticket: key-value table view
- print_ticket_json / format_ticket_json: pretty JSON
- print_list / format_list: compact summary table with header
- print_list_json / format_list_json: JSON array output

format_* variants return String for testability. Unit tests added
covering field presence, dependency joining, header row, and JSON
validity. All 26 tests pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 months ago
Elijah Voigt 8d7ee96b99 feat(nbd): implement storage layer (Phase 3)
Add async-std file I/O and directory traversal in store.rs:
- find_nbd_root / find_nbd_root_from: walk up from cwd to locate .nbd/
- tickets_dir, ticket_path: pure path helpers
- ensure_tickets_dir: create .nbd/tickets/ on first use
- write_ticket / read_ticket: JSON serialisation round-trip
- list_tickets: read all *.json files, sort by priority descending

Add 8 unit tests covering write/read round-trip, missing-ticket
error, priority-sorted list, empty directory, grandparent traversal,
traversal failure, and path helpers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 months ago
Elijah Voigt 142a1898e2 feat(nbd): implement ticket data model (Phase 2)
Define Status and TicketType enums with serde snake_case/lowercase
serialization, Ticket struct with all fields, Ticket::new constructor,
validate_priority, and generate_id using RandomState entropy. Add 9
unit tests covering roundtrips, enum serialization, priority validation,
and ID format/uniqueness.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 months ago
Elijah Voigt 2698c6ea84 Scaffolding for nbd cli 3 months ago
Elijah Voigt a7adc1659c feat(nbd): scaffold crate with module stubs and dependencies
Creates Cargo.toml with clap, async-std, serde/serde_json and tempfile
dev-dep. Adds placeholder src/{main,ticket,store,display,tests}.rs and
tests/integration.rs with rustdoc module comments. Phase 1 complete.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 months ago