feat: integrate beads_rust as issue tracking backend#429
Merged
Conversation
- New crate: crates/jcode-beads-bridge — BeadsProject facade + BeadsTaskManager with open/init, CRUD, dependency graph, ready/blocked queries - jcode-base: todo.rs, goal.rs, beads.rs rewritten to delegate to beads_rust - New agent tools: beads_list, beads_create, beads_ready, beads_claim, beads_close, beads_dep — registered in base_tools() - Removed jcode-task-types dep from jcode-base (still used by app-core for CatchupBrief/PersistedCatchupState) - Full workspace compiles clean with zero errors
PR #429 needs the dependency to resolve on any machine, not just the developer's local checkout.
- Replace !Sync RefCell with Mutex in BeadsProject for thread safety - Add 9 integration tests covering CRUD, deps, cycles, mapping roundtrips - Fix test path resolution for macOS /var→/private/var symlink handling - Minor import cleanup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Integrates
beads_rust(thebrissue tracker CLI) as a library dependency into jcode, replacing the dormantjcode-task-types/ manual JSON-file task management with a proper SQLite-backed issue tracking system.What was added
New crate:
crates/jcode-beads-bridgeBeadsProject— lifecycle facade:open(),init(),open_or_init(),flush()(JSONL export)BeadsTaskManager— task operations: CRUD, dependency graph, ready/blocked queriesmapping—TodoItem,Goal,GoalMilestonetypes + conversion traits (ToBeadsIssue,ToBeadsEpic,ToJcodeGoal,ToJcodeTodoItem)New agent tools (6)
beads_listbeads_createbeads_readybeads_claimbeads_closebeads_depjcode-base rewired
todo.rs—load_todos(),save_todos(),todos_exist()now backed by beads_rustgoal.rs— full rewrite maintaining same public API, backed by beads Epic issues + side panel renderingplan.rs— unchanged (jcode_plan still actively used by swarm control)Cleanup
jcode-task-typesdependency removed fromjcode-base(still used byjcode-app-coreforCatchupBrief)Verification
cargo check # ✅ full workspace, all targets, zero errorsDesign
BeadsProjectusesRefCell<SqliteStorage>for interior mutability, allowing shared access across toolsBeadsTaskManagerwrapsBeadsProjectfor a clean task-oriented APIopen_or_init()creates a.beads/project if none exists, so agents don't need tobr initmanually