[package]
edition = "2024"
rust-version = "1.88"
name = "beads_rust"
version = "0.1.23"
build = "build.rs"
exclude = [
"sample_beads_db_files/",
".beads/",
".github/",
".claude/",
".ntm/",
"agent_baseline/",
"docs/",
"scripts/",
"skills/",
"temp_test/",
"temp_test_2/",
"*.webp",
"*.png",
"*.db",
"*.db-wal",
"*.db-shm",
"custom.db",
"EXISTING_BEADS_STRUCTURE_AND_ARCHITECTURE.md",
"PLAN_TO_PORT_BEADS_WITH_SQLITE_AND_ISSUES_JSONL_TO_RUST.md",
"PROPOSED_ARCHITECTURE_FOR_BR_USING_RUST_BEST_PRACTICES.md",
"RICH_INTEGRATION_PLAN.md",
"AGENT_FRIENDLINESS_REPORT.md",
"ROBOT_MODE_EXAMPLES.jsonl",
"CLI_SCHEMA.json",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Agent-first issue tracker (SQLite + JSONL)"
readme = "README.md"
keywords = [
"cli",
"issue-tracker",
"sqlite",
"agent",
]
categories = [
"command-line-utilities",
"development-tools",
]
license = "MIT"
repository = "https://github.com/Dicklesworthstone/beads_rust"
[features]
default = ["self_update"]
self_update = ["dep:self_update"]
[lib]
name = "beads_rust"
path = "src/lib.rs"
[[bin]]
name = "br"
path = "src/main.rs"
[[test]]
name = "bench_cold_warm"
path = "tests/bench_cold_warm.rs"
[[test]]
name = "bench_cold_warm_start"
path = "tests/bench_cold_warm_start.rs"
[[test]]
name = "bench_real_datasets"
path = "tests/bench_real_datasets.rs"
[[test]]
name = "bench_synthetic_scale"
path = "tests/bench_synthetic_scale.rs"
[[test]]
name = "benchmark_comparison"
path = "tests/benchmark_comparison.rs"
[[test]]
name = "benchmark_datasets"
path = "tests/benchmark_datasets.rs"
[[test]]
name = "conformance"
path = "tests/conformance.rs"
[[test]]
name = "conformance_edge_cases"
path = "tests/conformance_edge_cases.rs"
[[test]]
name = "conformance_labels_comments"
path = "tests/conformance_labels_comments.rs"
[[test]]
name = "conformance_schema"
path = "tests/conformance_schema.rs"
[[test]]
name = "conformance_text_output"
path = "tests/conformance_text_output.rs"
[[test]]
name = "conformance_workflows"
path = "tests/conformance_workflows.rs"
[[test]]
name = "e2e_audit"
path = "tests/e2e_audit.rs"
[[test]]
name = "e2e_basic_lifecycle"
path = "tests/e2e_basic_lifecycle.rs"
[[test]]
name = "e2e_changelog"
path = "tests/e2e_changelog.rs"
[[test]]
name = "e2e_claim_atomic"
path = "tests/e2e_claim_atomic.rs"
[[test]]
name = "e2e_cold_warm_benchmarks"
path = "tests/e2e_cold_warm_benchmarks.rs"
[[test]]
name = "e2e_comments"
path = "tests/e2e_comments.rs"
[[test]]
name = "e2e_comments_stdin"
path = "tests/e2e_comments_stdin.rs"
[[test]]
name = "e2e_completions"
path = "tests/e2e_completions.rs"
[[test]]
name = "e2e_concurrency"
path = "tests/e2e_concurrency.rs"
[[test]]
name = "e2e_config_precedence"
path = "tests/e2e_config_precedence.rs"
[[test]]
name = "e2e_create_output"
path = "tests/e2e_create_output.rs"
[[test]]
name = "e2e_defer"
path = "tests/e2e_defer.rs"
[[test]]
name = "e2e_dep_tree_mermaid"
path = "tests/e2e_dep_tree_mermaid.rs"
[[test]]
name = "e2e_env_overrides"
path = "tests/e2e_env_overrides.rs"
[[test]]
name = "e2e_epic"
path = "tests/e2e_epic.rs"
[[test]]
name = "e2e_errors"
path = "tests/e2e_errors.rs"
[[test]]
name = "e2e_git_safety_full_cli"
path = "tests/e2e_git_safety_full_cli.rs"
[[test]]
name = "e2e_global_flags"
path = "tests/e2e_global_flags.rs"
[[test]]
name = "e2e_graph"
path = "tests/e2e_graph.rs"
[[test]]
name = "e2e_graph_ordering"
path = "tests/e2e_graph_ordering.rs"
[[test]]
name = "e2e_harness_demo"
path = "tests/e2e_harness_demo.rs"
[[test]]
name = "e2e_history"
path = "tests/e2e_history.rs"
[[test]]
name = "e2e_history_custom_path"
path = "tests/e2e_history_custom_path.rs"
[[test]]
name = "e2e_history_restore_prune"
path = "tests/e2e_history_restore_prune.rs"
[[test]]
name = "e2e_installer"
path = "tests/e2e_installer.rs"
[[test]]
name = "e2e_labels"
path = "tests/e2e_labels.rs"
[[test]]
name = "e2e_lint"
path = "tests/e2e_lint.rs"
[[test]]
name = "e2e_list_comprehensive"
path = "tests/e2e_list_comprehensive.rs"
[[test]]
name = "e2e_list_priority"
path = "tests/e2e_list_priority.rs"
[[test]]
name = "e2e_list_scenarios"
path = "tests/e2e_list_scenarios.rs"
[[test]]
name = "e2e_orphans"
path = "tests/e2e_orphans.rs"
[[test]]
name = "e2e_queries"
path = "tests/e2e_queries.rs"
[[test]]
name = "e2e_quick_capture"
path = "tests/e2e_quick_capture.rs"
[[test]]
name = "e2e_ready"
path = "tests/e2e_ready.rs"
[[test]]
name = "e2e_ready_limit"
path = "tests/e2e_ready_limit.rs"
[[test]]
name = "e2e_relations"
path = "tests/e2e_relations.rs"
[[test]]
name = "e2e_report_generation"
path = "tests/e2e_report_generation.rs"
[[test]]
name = "e2e_routing"
path = "tests/e2e_routing.rs"
[[test]]
name = "e2e_schema"
path = "tests/e2e_schema.rs"
[[test]]
name = "e2e_search_scenarios"
path = "tests/e2e_search_scenarios.rs"
[[test]]
name = "e2e_stale"
path = "tests/e2e_stale.rs"
[[test]]
name = "e2e_sync_artifacts"
path = "tests/e2e_sync_artifacts.rs"
[[test]]
name = "e2e_sync_failure_injection"
path = "tests/e2e_sync_failure_injection.rs"
[[test]]
name = "e2e_sync_fuzz_edge_cases"
path = "tests/e2e_sync_fuzz_edge_cases.rs"
[[test]]
name = "e2e_sync_git_safety"
path = "tests/e2e_sync_git_safety.rs"
[[test]]
name = "e2e_sync_preflight_integration"
path = "tests/e2e_sync_preflight_integration.rs"
[[test]]
name = "e2e_undefer"
path = "tests/e2e_undefer.rs"
[[test]]
name = "e2e_upgrade"
path = "tests/e2e_upgrade.rs"
[[test]]
name = "e2e_version"
path = "tests/e2e_version.rs"
[[test]]
name = "e2e_workspace_commands"
path = "tests/e2e_workspace_commands.rs"
[[test]]
name = "e2e_workspace_scenarios"
path = "tests/e2e_workspace_scenarios.rs"
[[test]]
name = "e2e_wrap"
path = "tests/e2e_wrap.rs"
[[test]]
name = "jsonl_import_export"
path = "tests/jsonl_import_export.rs"
[[test]]
name = "markdown_import"
path = "tests/markdown_import.rs"
[[test]]
name = "package_manifests"
path = "tests/package_manifests.rs"
[[test]]
name = "proptest_hash"
path = "tests/proptest_hash.rs"
[[test]]
name = "proptest_id"
path = "tests/proptest_id.rs"
[[test]]
name = "proptest_time"
path = "tests/proptest_time.rs"
[[test]]
name = "proptest_validation"
path = "tests/proptest_validation.rs"
[[test]]
name = "repro_auto_flush_inefficiency"
path = "tests/repro_auto_flush_inefficiency.rs"
[[test]]
name = "repro_cache_crash"
path = "tests/repro_cache_crash.rs"
[[test]]
name = "repro_collision_labels"
path = "tests/repro_collision_labels.rs"
[[test]]
name = "repro_create_output"
path = "tests/repro_create_output.rs"
[[test]]
name = "repro_create_path_traversal_check"
path = "tests/repro_create_path_traversal_check.rs"
[[test]]
name = "repro_dep_tree"
path = "tests/repro_dep_tree.rs"
[[test]]
name = "repro_epic_blocking"
path = "tests/repro_epic_blocking.rs"
[[test]]
name = "repro_history_collision"
path = "tests/repro_history_collision.rs"
[[test]]
name = "repro_id_collision"
path = "tests/repro_id_collision.rs"
[[test]]
name = "repro_import_collision_remap"
path = "tests/repro_import_collision_remap.rs"
[[test]]
name = "repro_list_sort"
path = "tests/repro_list_sort.rs"
[[test]]
name = "repro_list_sort_alias"
path = "tests/repro_list_sort_alias.rs"
[[test]]
name = "repro_pinned_blocker"
path = "tests/repro_pinned_blocker.rs"
[[test]]
name = "repro_sync_relations"
path = "tests/repro_sync_relations.rs"
[[test]]
name = "repro_time_panic"
path = "tests/repro_time_panic.rs"
[[test]]
name = "repro_truncate_width"
path = "tests/repro_truncate_width.rs"
[[test]]
name = "snapshots"
path = "tests/snapshots.rs"
[[test]]
name = "storage_blocked_cache"
path = "tests/storage_blocked_cache.rs"
[[test]]
name = "storage_crud"
path = "tests/storage_crud.rs"
[[test]]
name = "storage_deps"
path = "tests/storage_deps.rs"
[[test]]
name = "storage_export_atomic"
path = "tests/storage_export_atomic.rs"
[[test]]
name = "storage_history"
path = "tests/storage_history.rs"
[[test]]
name = "storage_id_hash_parity"
path = "tests/storage_id_hash_parity.rs"
[[test]]
name = "storage_invariants"
path = "tests/storage_invariants.rs"
[[test]]
name = "storage_list_filters"
path = "tests/storage_list_filters.rs"
[[test]]
name = "storage_ready"
path = "tests/storage_ready.rs"
[[bench]]
name = "benchmarks"
path = "benches/storage_perf.rs"
harness = false
[dependencies.anyhow]
version = "1.0.102"
[dependencies.chrono]
version = "0.4.43"
features = ["serde"]
[dependencies.clap]
version = "4.5.60"
features = [
"derive",
"env",
"unstable-ext",
]
[dependencies.clap_complete]
version = "4.5.66"
features = ["unstable-dynamic"]
[dependencies.crossterm]
version = "0.29"
[dependencies.dunce]
version = "1.0.5"
[dependencies.fsqlite]
version = "0.1.0"
[dependencies.fsqlite-ast]
version = "0.1.0"
[dependencies.fsqlite-btree]
version = "0.1.0"
[dependencies.fsqlite-core]
version = "0.1.0"
[dependencies.fsqlite-error]
version = "0.1.0"
[dependencies.fsqlite-func]
version = "0.1.0"
[dependencies.fsqlite-mvcc]
version = "0.1.0"
[dependencies.fsqlite-observability]
version = "0.1.0"
[dependencies.fsqlite-pager]
version = "0.1.0"
[dependencies.fsqlite-parser]
version = "0.1.0"
[dependencies.fsqlite-planner]
version = "0.1.0"
[dependencies.fsqlite-types]
version = "0.1.0"
[dependencies.fsqlite-vdbe]
version = "0.1.0"
[dependencies.fsqlite-vfs]
version = "0.1.0"
[dependencies.fsqlite-wal]
version = "0.1.0"
[dependencies.indicatif]
version = "0.18.4"
[dependencies.once_cell]
version = "1.21"
[dependencies.regex]
version = "1.12"
[dependencies.rich_rust]
version = "0.2.0"
features = ["full"]
[dependencies.schemars]
version = "1.0"
features = [
"derive",
"chrono04",
]
[dependencies.self_update]
version = "0.42"
features = [
"rustls",
"archive-tar",
"compression-flate2",
]
optional = true
default-features = false
[dependencies.semver]
version = "1.0.27"
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.149"
[dependencies.serde_yml]
version = "0.0.12"
[dependencies.sha2]
version = "0.10.9"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.toon_rust]
version = "0.2.0"
package = "tru"
[dependencies.tracing]
version = "0.1.44"
[dependencies.tracing-subscriber]
version = "0.3.22"
features = [
"env-filter",
"fmt",
"json",
]
[dependencies.unicode-width]
version = "0.2.2"
[dev-dependencies.assert_cmd]
version = "2.1"
[dev-dependencies.criterion]
version = "0.8.2"
features = ["html_reports"]
[dev-dependencies.insta]
version = "1.46"
features = [
"json",
"yaml",
]
[dev-dependencies.predicates]
version = "3.1.4"
[dev-dependencies.proptest]
version = "1.10"
[dev-dependencies.rand]
version = "0.10"
[dev-dependencies.tempfile]
version = "3.25"
[dev-dependencies.walkdir]
version = "2.5"
[build-dependencies.vergen-gix]
version = "9.1"
features = [
"build",
"cargo",
"rustc",
]
[lints.clippy.cast_precision_loss]
level = "allow"
priority = 1
[lints.clippy.doc_markdown]
level = "allow"
priority = 1
[lints.clippy.format_push_string]
level = "allow"
priority = 1
[lints.clippy.missing_const_for_fn]
level = "allow"
priority = 1
[lints.clippy.nursery]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "deny"
priority = -1
[lints.clippy.uninlined_format_args]
level = "allow"
priority = 1
[lints.clippy.useless_let_if_seq]
level = "allow"
priority = 1
[lints.rust]
unsafe_code = "forbid"
[profile.dev]
opt-level = 1
[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
panic = "abort"
strip = true