SYMBOL INDEX (7475 symbols across 231 files) FILE: benches/storage_perf.rs function create_test_issue (line 34) | fn create_test_issue(i: usize) -> Issue { function init_bench_logging (line 87) | fn init_bench_logging() { function log_group_start (line 94) | fn log_group_start(name: &str) { function log_group_end (line 98) | fn log_group_end(name: &str) { function log_bench_start (line 102) | fn log_bench_start(name: &str) -> Instant { function log_bench_end (line 107) | fn log_bench_end(name: &str, started_at: Instant) { function setup_db_with_issues (line 112) | fn setup_db_with_issues(count: usize) -> (TempDir, SqliteStorage) { function setup_db_with_multi_label_issues (line 127) | fn setup_db_with_multi_label_issues(count: usize) -> (TempDir, SqliteSto... function setup_db_with_deps (line 146) | fn setup_db_with_deps(issue_count: usize, dep_count: usize) -> (TempDir,... function configure_group (line 200) | fn configure_group( function should_skip_group (line 220) | fn should_skip_group(group_name: &str) -> bool { function configured_sizes (line 224) | fn configured_sizes(defaults: &[usize], env_var: &str) -> Vec { function bench_create_single (line 246) | fn bench_create_single(c: &mut Criterion) { function bench_create_batch (line 279) | fn bench_create_batch(c: &mut Criterion) { function bench_update_issue (line 319) | fn bench_update_issue(c: &mut Criterion) { function bench_close_issue_with_reason (line 383) | fn bench_close_issue_with_reason(c: &mut Criterion) { function bench_delete_issue (line 427) | fn bench_delete_issue(c: &mut Criterion) { function bench_list_issues (line 470) | fn bench_list_issues(c: &mut Criterion) { function bench_list_issues_filtered (line 501) | fn bench_list_issues_filtered(c: &mut Criterion) { function bench_ready_query (line 553) | fn bench_ready_query(c: &mut Criterion) { function bench_blocked_query (line 590) | fn bench_blocked_query(c: &mut Criterion) { function bench_export (line 628) | fn bench_export(c: &mut Criterion) { function bench_import (line 659) | fn bench_import(c: &mut Criterion) { function bench_dirty_tracking_mark (line 707) | fn bench_dirty_tracking_mark(c: &mut Criterion) { function bench_dirty_tracking_query (line 748) | fn bench_dirty_tracking_query(c: &mut Criterion) { function bench_add_dependency (line 796) | fn bench_add_dependency(c: &mut Criterion) { function bench_cycle_detection (line 843) | fn bench_cycle_detection(c: &mut Criterion) { function bench_generate_id (line 913) | fn bench_generate_id(c: &mut Criterion) { function bench_resolve_id_prefix (line 968) | fn bench_resolve_id_prefix(c: &mut Criterion) { function bench_id_hash (line 1010) | fn bench_id_hash(c: &mut Criterion) { function bench_content_hash (line 1040) | fn bench_content_hash(c: &mut Criterion) { function bench_search (line 1088) | fn bench_search(c: &mut Criterion) { FILE: build.rs function main (line 7) | fn main() -> Result<(), Box> { FILE: fuzz/fuzz_targets/common.rs type ByteCursor (line 5) | pub(crate) struct ByteCursor<'a> { function new (line 11) | pub(crate) fn new(data: &'a [u8]) -> Self { function next_byte (line 15) | pub(crate) fn next_byte(&mut self) -> u8 { function next_u16 (line 24) | pub(crate) fn next_u16(&mut self) -> u16 { function next_bool (line 28) | pub(crate) fn next_bool(&mut self) -> bool { function usize (line 32) | pub(crate) fn usize(&mut self, max_exclusive: usize) -> usize { function bytes (line 40) | pub(crate) fn bytes(&mut self, max_len: usize) -> Vec { function optional_text (line 49) | pub(crate) fn optional_text(&mut self, max_len: usize) -> Option { function text (line 57) | pub(crate) fn text(&mut self, max_len: usize) -> String { type TrimmedCustomIssueCursorExt (line 62) | pub(crate) trait TrimmedCustomIssueCursorExt { method prefix (line 63) | fn prefix(&mut self) -> &'static str; method status (line 64) | fn status(&mut self) -> Status; method issue_type (line 65) | fn issue_type(&mut self) -> IssueType; method prefix (line 69) | fn prefix(&mut self) -> &'static str { method status (line 78) | fn status(&mut self) -> Status { method issue_type (line 91) | fn issue_type(&mut self) -> IssueType { type EmptyCustomIssueCursorExt (line 105) | pub(crate) trait EmptyCustomIssueCursorExt { method status (line 106) | fn status(&mut self) -> Status; method issue_type (line 107) | fn issue_type(&mut self) -> IssueType; method status (line 111) | fn status(&mut self) -> Status { method issue_type (line 124) | fn issue_type(&mut self) -> IssueType { type BuiltInIssueCursorExt (line 138) | pub(crate) trait BuiltInIssueCursorExt { method status (line 139) | fn status(&mut self) -> Status; method issue_type (line 140) | fn issue_type(&mut self) -> IssueType; method status (line 144) | fn status(&mut self) -> Status { method issue_type (line 156) | fn issue_type(&mut self) -> IssueType { function non_blank (line 169) | fn non_blank(value: String, fallback: &str) -> String { function non_empty (line 177) | fn non_empty(value: String, fallback: &str) -> String { FILE: fuzz/fuzz_targets/config_yaml.rs constant MAX_INPUT_BYTES (line 10) | const MAX_INPUT_BYTES: usize = 64 * 1024; function run_config_yaml_case (line 24) | fn run_config_yaml_case(data: &[u8]) -> Result<(), Box> { function fuzz_config_path (line 36) | fn fuzz_config_path() -> PathBuf { function validate_config_layer (line 40) | fn validate_config_layer(layer: &ConfigLayer) -> Result<(), Box Result<(), Box Result<(), Bo... function path_like_key (line 124) | fn path_like_key(key: &str) -> bool { function assert_non_empty_error (line 135) | fn assert_non_empty_error(message: &str, context: &str) -> Result<(), Bo... FILE: fuzz/fuzz_targets/content_hash.rs constant MAX_INPUT_BYTES (line 13) | const MAX_INPUT_BYTES: usize = 4 * 1024; constant MAX_FIELD_BYTES (line 14) | const MAX_FIELD_BYTES: usize = 128; function run_hash_case (line 28) | fn run_hash_case(data: &[u8]) -> Result<(), Box> { function issue_from_bytes (line 52) | fn issue_from_bytes(data: &[u8]) -> Issue { function assert_json_formatting_stability (line 82) | fn assert_json_formatting_stability( function assert_randomized_json_formatting_stability (line 106) | fn assert_randomized_json_formatting_stability( function reorder_entries (line 136) | fn reorder_entries(entries: &mut [(String, Value)], data: &[u8]) { function render_json_object_with_spacing (line 151) | fn render_json_object_with_spacing( function push_json_spacing (line 174) | fn push_json_spacing(rendered: &mut String, data: &[u8], salt: usize) { function assert_unknown_json_fields_do_not_affect_hash (line 191) | fn assert_unknown_json_fields_do_not_affect_hash( function assert_empty_optional_equivalence (line 216) | fn assert_empty_optional_equivalence( function assert_nul_space_equivalence (line 238) | fn assert_nul_space_equivalence(issue: &Issue, expected_hash: &str) -> R... function assert_ignored_fields_do_not_affect_hash (line 258) | fn assert_ignored_fields_do_not_affect_hash( function assert_meaningful_change_affects_hash (line 309) | fn assert_meaningful_change_affects_hash( function assert_hash_shape (line 335) | fn assert_hash_shape(hash: &str) -> Result<(), Box> { function assert_hash_eq (line 346) | fn assert_hash_eq(expected: &str, actual: &str, context: &str) -> Result... function flip_empty_optional (line 354) | fn flip_empty_optional(field: &mut Option) { function replace_optional_nul_with_space (line 362) | fn replace_optional_nul_with_space(field: &mut Option) { function replace_nul_with_space (line 368) | fn replace_nul_with_space(value: &mut String) { function non_empty (line 374) | fn non_empty(value: String, fallback: &str) -> String { FILE: fuzz/fuzz_targets/jsonl_import.rs constant MAX_INPUT_BYTES (line 13) | const MAX_INPUT_BYTES: usize = 64 * 1024; constant SENTINEL_PARENT_ID (line 14) | const SENTINEL_PARENT_ID: &str = "fuzz-parent"; constant SENTINEL_CHILD_ID (line 15) | const SENTINEL_CHILD_ID: &str = "fuzz-existing"; constant ACTOR (line 16) | const ACTOR: &str = "jsonl-import-fuzz"; type SentinelSnapshot (line 19) | struct SentinelSnapshot { function run_import_case (line 39) | fn run_import_case(data: &[u8]) -> Result<(), Box> { function seed_sentinel_data (line 91) | fn seed_sentinel_data(storage: &mut SqliteStorage) -> Result<(), Box Issue { function sentinel_snapshot (line 121) | fn sentinel_snapshot(storage: &SqliteStorage) -> Result Result<(), Box<... function assert_import_validation (line 215) | fn assert_import_validation(storage: &SqliteStorage) -> Result<(), Box Result<(), Box> { function validation_candidate (line 51) | fn validation_candidate( function timestamp_for (line 99) | fn timestamp_for(index: usize) -> Result, Box> { FILE: fuzz/fuzz_targets/merge_issue.rs constant MAX_INPUT_BYTES (line 18) | const MAX_INPUT_BYTES: usize = 8 * 1024; constant MAX_FIELD_BYTES (line 19) | const MAX_FIELD_BYTES: usize = 96; type MergeFuzzCase (line 34) | struct MergeFuzzCase { type JsonCase (line 42) | struct JsonCase { type JsonIssue (line 51) | struct JsonIssue { function run_merge_case (line 65) | fn run_merge_case(data: &[u8]) -> Result<(), String> { function parse_json_case (line 99) | fn parse_json_case(data: &[u8]) -> Option { function issue_from_json_spec (line 123) | fn issue_from_json_spec(default_id: &str, spec: &JsonIssue, time_salt: i... function random_case (line 180) | fn random_case(data: &[u8]) -> MergeFuzzCase { function random_side (line 205) | fn random_side( function random_issue (line 226) | fn random_issue(cursor: &mut ByteCursor<'_>, id: &str, side: &str) -> Is... function maybe_change_id (line 263) | fn maybe_change_id(cursor: &mut ByteCursor<'_>, mut issue: Issue, side: ... function mutate_issue (line 270) | fn mutate_issue(cursor: &mut ByteCursor<'_>, issue: &mut Issue, side: &s... function ensure_nonempty_case (line 300) | fn ensure_nonempty_case(mut case: MergeFuzzCase) -> MergeFuzzCase { function assert_input_hashes_are_consistent (line 308) | fn assert_input_hashes_are_consistent(case: &MergeFuzzCase) -> Result<()... function assert_merge_result_invariants (line 318) | fn assert_merge_result_invariants( function assert_validator_on_output (line 336) | fn assert_validator_on_output(result: &MergeResult) -> Result<(), String> { function assert_issue_invariants (line 350) | fn assert_issue_invariants(issue: &Issue) -> Result<(), String> { function assert_unique_labels (line 378) | fn assert_unique_labels(issue: &Issue) -> Result<(), String> { function assert_unique_dependencies (line 391) | fn assert_unique_dependencies(issue: &Issue) -> Result<(), String> { function assert_unique_comments (line 417) | fn assert_unique_comments(issue: &Issue) -> Result<(), String> { function assert_no_silent_conflict_resolution (line 437) | fn assert_no_silent_conflict_resolution( function expected_manual_conflict (line 485) | fn expected_manual_conflict(case: &MergeFuzzCase) -> Option { function assert_uncontested_changes_preserved (line 507) | fn assert_uncontested_changes_preserved( function assert_three_way_merge_invariants (line 532) | fn assert_three_way_merge_invariants( function assert_merge_report_invariants (line 555) | fn assert_merge_report_invariants(report: &MergeReport) -> Result<(), St... function assert_no_tombstone_resurrection (line 577) | fn assert_no_tombstone_resurrection( function assert_force_winner (line 608) | fn assert_force_winner( function assert_kept_matches (line 619) | fn assert_kept_matches( function assert_deleted (line 646) | fn assert_deleted(result: &MergeResult, context: &str) -> Result<(), Str... function newer_issue (line 654) | fn newer_issue<'a>(local: Option<&'a Issue>, external: Option<&'a Issue>... function map_issue (line 664) | fn map_issue(issue: Option) -> HashMap { function tombstone_ids (line 670) | fn tombstone_ids(case: &MergeFuzzCase) -> HashSet { function assert_unique_strings (line 679) | fn assert_unique_strings(values: &[String], context: &str) -> Result<(),... function merge_strategies (line 689) | fn merge_strategies() -> [ConflictResolution; 4] { function normalize_issue (line 698) | fn normalize_issue(mut issue: Issue) -> Issue { function valid_issue_id (line 709) | fn valid_issue_id(raw: &str) -> String { function sanitize_external_ref (line 723) | fn sanitize_external_ref(issue: &mut Issue) { function normalize_status_fields (line 732) | fn normalize_status_fields(issue: &mut Issue) { function normalize_relations (line 759) | fn normalize_relations(issue: &mut Issue) { function unique_nonempty (line 781) | fn unique_nonempty(values: Vec) -> Vec { function random_labels (line 794) | fn random_labels(cursor: &mut ByteCursor<'_>) -> Vec { function random_dependencies (line 803) | fn random_dependencies(cursor: &mut ByteCursor<'_>, issue_id: &str) -> V... function random_comments (line 817) | fn random_comments(cursor: &mut ByteCursor<'_>, issue_id: &str) -> Vec Depe... function comment (line 846) | fn comment(issue_id: &str, id: i64, body: &str) -> Comment { function fixed_time (line 856) | fn fixed_time(seconds: i64) -> DateTime { function parse_status (line 861) | fn parse_status(value: Option<&str>) -> Status { function parse_issue_type (line 875) | fn parse_issue_type(value: Option<&str>) -> IssueType { function clean_id (line 888) | fn clean_id(value: &str) -> String { function truncate (line 897) | fn truncate(value: &str, max_len: usize) -> String { function non_empty (line 901) | fn non_empty(value: String, fallback: &str) -> String { FILE: fuzz/fuzz_targets/search_issues.rs constant MAX_INPUT_BYTES (line 13) | const MAX_INPUT_BYTES: usize = 16 * 1024; constant ACTOR (line 14) | const ACTOR: &str = "search-issues-fuzz"; function run_search_case (line 32) | fn run_search_case(data: &[u8]) -> Result<(), Box> { type SearchHarness (line 47) | struct SearchHarness { method new (line 54) | fn new() -> Result> { method assert_search (line 67) | fn assert_search(&self, query: &str) -> Result<(), Box> { function seed_storage (line 90) | fn seed_storage(storage: &mut SqliteStorage) -> Result, ... function issue (line 121) | fn issue( function timestamp (line 146) | fn timestamp() -> Result, Box> { FILE: fuzz/fuzz_targets/sync_cycle.rs constant MAX_INPUT_BYTES (line 22) | const MAX_INPUT_BYTES: usize = 16 * 1024; constant MAX_FIELD_BYTES (line 23) | const MAX_FIELD_BYTES: usize = 96; constant MAX_MUTATION_BYTES (line 24) | const MAX_MUTATION_BYTES: usize = 512; constant ACTOR (line 25) | const ACTOR: &str = "sync-cycle-fuzz"; function run_sync_cycle_case (line 39) | fn run_sync_cycle_case(data: &[u8]) -> Result<(), Box> { type FuzzWorkspace (line 187) | struct FuzzWorkspace { method new (line 196) | fn new(cursor: &mut ByteCursor<'_>) -> Result> { method assert_outside_untouched (line 219) | fn assert_outside_untouched(&self) -> Result<(), Box> { function create_beads_dir (line 239) | fn create_beads_dir( function create_beads_dir (line 255) | fn create_beads_dir( function choose_jsonl_path (line 264) | fn choose_jsonl_path(beads_dir: &Path, cursor: &mut ByteCursor<'_>) -> P... function write_sidecar_files (line 273) | fn write_sidecar_files( function maybe_write_corrupt_db_family (line 304) | fn maybe_write_corrupt_db_family( function seed_storage (line 338) | fn seed_storage( function issue_from_cursor (line 373) | fn issue_from_cursor(id: String, cursor: &mut ByteCursor<'_>, index: usi... function export_config (line 414) | fn export_config(beads_dir: &Path, jsonl_path: &Path, cursor: &mut ByteC... function import_config (line 426) | fn import_config(beads_dir: &Path, cursor: &mut ByteCursor<'_>) -> Impor... function mutate_jsonl (line 444) | fn mutate_jsonl(path: &Path, cursor: &mut ByteCursor<'_>) -> Result<(), ... function rewrite_generated_jsonl (line 481) | fn rewrite_generated_jsonl(path: &Path, cursor: &mut ByteCursor<'_>) -> ... function append_duplicate_line (line 492) | fn append_duplicate_line(path: &Path) -> Result<(), Box> { function maybe_save_base_snapshot (line 501) | fn maybe_save_base_snapshot( function exercise_rejected_paths (line 513) | fn exercise_rejected_paths( function exercise_symlink_escape_path (line 566) | fn exercise_symlink_escape_path( function exercise_symlink_escape_path (line 590) | fn exercise_symlink_escape_path( function assert_jsonl_parseable (line 598) | fn assert_jsonl_parseable(path: &Path) -> Result> { function assert_storage_invariants (line 612) | fn assert_storage_invariants(storage: &SqliteStorage) -> Result<(), Box<... function assert_storage_invariants_or_expected (line 682) | fn assert_storage_invariants_or_expected( function allow_error (line 698) | fn allow_error(result: Result) -> Result, Box(err: E) -> Result<(), Box> function assert_import_validation (line 721) | fn assert_import_validation(storage: &SqliteStorage) -> Result<(), Box String { FILE: packaging/homebrew/br.rb class Br (line 13) | class Br < Formula method install (line 41) | def install FILE: scripts/check_regression.py function check_regression (line 7) | def check_regression(target_dir, threshold): FILE: src/cli/commands/agents.rs constant BLURB_VERSION (line 16) | pub const BLURB_VERSION: u8 = 1; constant BLURB_START_MARKER (line 19) | pub const BLURB_START_MARKER: &str = ""; constant BLURB_END_MARKER (line 22) | pub const BLURB_END_MARKER: &str = ""; constant SUPPORTED_AGENT_FILES (line 25) | pub const SUPPORTED_AGENT_FILES: &[&str] = &["AGENTS.md", "CLAUDE.md", "... constant AGENT_BLURB (line 28) | pub const AGENT_BLURB: &str = r#" type AgentFileDetection (line 97) | pub struct AgentFileDetection { method found (line 117) | pub const fn found(&self) -> bool { method unreadable (line 123) | pub const fn unreadable(&self) -> bool { method needs_blurb (line 129) | pub const fn needs_blurb(&self) -> bool { method needs_upgrade (line 135) | pub const fn needs_upgrade(&self) -> bool { function inferred_dry_run_action (line 144) | const fn inferred_dry_run_action(detection: &AgentFileDetection) -> &'st... function contains_blurb (line 158) | pub fn contains_blurb(content: &str) -> bool { function contains_legacy_blurb (line 164) | pub fn contains_legacy_blurb(content: &str) -> bool { function contains_any_blurb (line 174) | pub fn contains_any_blurb(content: &str) -> bool { function get_blurb_version (line 185) | pub fn get_blurb_version(content: &str) -> u8 { function detect_agent_file (line 202) | pub fn detect_agent_file(work_dir: &Path) -> AgentFileDetection { function check_agent_file (line 229) | fn check_agent_file(file_path: &Path, file_type: &str) -> Option( function detect_agent_file_in_parents (line 273) | pub fn detect_agent_file_in_parents(work_dir: &Path, max_levels: usize) ... function find_agent_search_root (line 300) | fn find_agent_search_root(work_dir: &Path) -> PathBuf { function detect_agent_file_in_project (line 329) | pub fn detect_agent_file_in_project(work_dir: &Path) -> AgentFileDetecti... function append_blurb (line 356) | pub fn append_blurb(content: &str) -> String { function remove_blurb (line 373) | pub fn remove_blurb(content: &str) -> String { function remove_legacy_blurb (line 385) | pub fn remove_legacy_blurb(content: &str) -> String { function update_blurb (line 402) | pub fn update_blurb(content: &str) -> String { function find_marker_end_after (line 408) | fn find_marker_end_after(content: &str, start_idx: usize, end_marker: &s... function find_marker_block_range (line 414) | fn find_marker_block_range( function contains_marker_block (line 441) | fn contains_marker_block(content: &str, start_marker: &str, end_marker: ... function remove_marker_block (line 445) | fn remove_marker_block(content: &str, start_idx: usize, end_idx: usize) ... function get_preferred_agent_file_path (line 468) | pub fn get_preferred_agent_file_path(work_dir: &Path) -> PathBuf { function require_force_for_json_action (line 472) | fn require_force_for_json_action(force: bool, ctx: &OutputContext) -> Re... function backup_agent_file (line 483) | fn backup_agent_file(file_path: &Path, ctx: &OutputContext) -> Option Result<()> { function search_scope_description (line 550) | fn search_scope_description(work_dir: &Path) -> String { function agent_file_not_found_reason (line 563) | fn agent_file_not_found_reason(work_dir: &Path) -> String { type AgentsArgs (line 579) | pub struct AgentsArgs { function execute (line 599) | pub fn execute(args: &AgentsArgs, ctx: &OutputContext) -> Result<()> { function execute_dry_run_inferred (line 641) | fn execute_dry_run_inferred( function execute_json (line 754) | fn execute_json( function execute_check (line 804) | fn execute_check( function execute_add (line 856) | fn execute_add( function execute_remove (line 975) | fn execute_remove( function execute_update (line 1089) | fn execute_update( function render_check_rich (line 1210) | fn render_check_rich(detection: &AgentFileDetection, work_dir: &Path, ct... function render_unreadable_rich (line 1279) | fn render_unreadable_rich( function render_already_current_rich (line 1312) | fn render_already_current_rich(ctx: &OutputContext) { function render_dry_run_add_rich (line 1326) | fn render_dry_run_add_rich(file_path: &Path, ctx: &OutputContext) { function render_add_success_rich (line 1346) | fn render_add_success_rich(file_path: &Path, _bytes: usize, ctx: &Output... function render_nothing_to_remove_rich (line 1359) | fn render_nothing_to_remove_rich(ctx: &OutputContext) { function render_dry_run_remove_rich (line 1371) | fn render_dry_run_remove_rich(file_path: &Path, ctx: &OutputContext) { function render_remove_success_rich (line 1391) | fn render_remove_success_rich(file_path: &Path, ctx: &OutputContext) { function render_already_up_to_date_rich (line 1404) | fn render_already_up_to_date_rich(ctx: &OutputContext) { function render_dry_run_update_rich (line 1418) | fn render_dry_run_update_rich(file_path: &Path, from_version: &str, ctx:... function render_update_success_rich (line 1443) | fn render_update_success_rich( type DirGuard (line 1472) | struct DirGuard { method new (line 1477) | fn new(target: &Path) -> Self { method drop (line 1485) | fn drop(&mut self) { function test_contains_blurb (line 1491) | fn test_contains_blurb() { function test_contains_blurb_requires_end_marker (line 1498) | fn test_contains_blurb_requires_end_marker() { function test_contains_blurb_skips_incomplete_marker_before_valid_block (line 1506) | fn test_contains_blurb_skips_incomplete_marker_before_valid_block() { function test_contains_legacy_blurb (line 1515) | fn test_contains_legacy_blurb() { function test_contains_legacy_blurb_requires_end_marker (line 1523) | fn test_contains_legacy_blurb_requires_end_marker() { function test_get_blurb_version (line 1530) | fn test_get_blurb_version() { function test_detect_agent_file (line 1547) | fn test_detect_agent_file() { function test_detect_agent_file_with_blurb (line 1565) | fn test_detect_agent_file_with_blurb() { function test_check_agent_file_reads_unreadable_path_once (line 1580) | fn test_check_agent_file_reads_unreadable_path_once() { function test_unreadable_agent_file_does_not_need_blurb (line 1603) | fn test_unreadable_agent_file_does_not_need_blurb() { function test_inferred_dry_run_action_for_unreadable_agent_file_is_none (line 1617) | fn test_inferred_dry_run_action_for_unreadable_agent_file_is_none() { function test_append_blurb (line 1629) | fn test_append_blurb() { function test_append_blurb_to_empty_content_has_no_leading_blank_lines (line 1638) | fn test_append_blurb_to_empty_content_has_no_leading_blank_lines() { function test_remove_blurb (line 1646) | fn test_remove_blurb() { function test_remove_blurb_ignores_earlier_end_marker_text (line 1655) | fn test_remove_blurb_ignores_earlier_end_marker_text() { function test_remove_blurb_skips_incomplete_marker_before_valid_block (line 1669) | fn test_remove_blurb_skips_incomplete_marker_before_valid_block() { function test_update_blurb (line 1683) | fn test_update_blurb() { function test_remove_legacy_blurb_ignores_earlier_end_marker_text (line 1692) | fn test_remove_legacy_blurb_ignores_earlier_end_marker_text() { function test_remove_legacy_blurb_skips_incomplete_marker_before_valid_block (line 1708) | fn test_remove_legacy_blurb_skips_incomplete_marker_before_valid_block() { function test_detect_in_parents (line 1724) | fn test_detect_in_parents() { function test_detect_in_deep_project_parents (line 1740) | fn test_detect_in_deep_project_parents() { function test_execute_json_add_force_creates_file (line 1761) | fn test_execute_json_add_force_creates_file() { function test_execute_json_add_requires_force (line 1785) | fn test_execute_json_add_requires_force() { function test_execute_json_add_dry_run_does_not_require_force (line 1810) | fn test_execute_json_add_dry_run_does_not_require_force() { function test_execute_json_remove_dry_run_without_file_errors (line 1833) | fn test_execute_json_remove_dry_run_without_file_errors() { function test_execute_json_update_dry_run_without_file_errors (line 1859) | fn test_execute_json_update_dry_run_without_file_errors() { function test_search_scope_description_for_project_subdir (line 1885) | fn test_search_scope_description_for_project_subdir() { function test_agent_file_not_found_reason_for_project_subdir (line 1899) | fn test_agent_file_not_found_reason_for_project_subdir() { function test_add_confirmation_message_for_new_file (line 1913) | fn test_add_confirmation_message_for_new_file() { function test_add_confirmation_message_for_existing_file (line 1922) | fn test_add_confirmation_message_for_existing_file() { function test_execute_rejects_conflicting_actions (line 1938) | fn test_execute_rejects_conflicting_actions() { FILE: src/cli/commands/audit.rs type AuditEntry (line 29) | struct AuditEntry { type AuditRecordOutput (line 65) | struct AuditRecordOutput { type AuditLabelOutput (line 71) | struct AuditLabelOutput { type AuditLogOutput (line 79) | struct AuditLogOutput { type AuditEventOutput (line 85) | struct AuditEventOutput { type AuditSummaryOutput (line 99) | struct AuditSummaryOutput { type AuditTotals (line 106) | struct AuditTotals { type ActorSummary (line 115) | struct ActorSummary { function execute (line 129) | pub fn execute( function execute_log (line 147) | fn execute_log( function open_routed_storage_for_issue_input (line 188) | fn open_routed_storage_for_issue_input( function execute_summary (line 214) | fn execute_summary( function map_event_to_output (line 302) | fn map_event_to_output(event: &crate::model::Event) -> AuditEventOutput { function record_entry (line 314) | fn record_entry( function label_entry (line 385) | fn label_entry( function clean_opt (line 445) | fn clean_opt(value: Option<&str>) -> Option { function clean_actor (line 452) | fn clean_actor(actor: &str) -> Option { function append_entry (line 461) | fn append_entry(beads_dir: &Path, entry: &mut AuditEntry) -> Result PathBuf { function ensure_interactions_file (line 496) | fn ensure_interactions_file(beads_dir: &Path) -> Result { function audit_entry_exists (line 513) | fn audit_entry_exists(beads_dir: &Path, entry_id: &str) -> Result { function new_audit_id (line 564) | fn new_audit_id() -> String { function render_audit_log_rich (line 585) | fn render_audit_log_rich(issue_id: &str, events: &[crate::model::Event],... function render_audit_log_plain (line 650) | fn render_audit_log_plain(issue_id: &str, events: &[crate::model::Event]) { function render_audit_summary_rich (line 683) | fn render_audit_summary_rich( function render_audit_summary_plain (line 735) | fn render_audit_summary_plain(days: u32, totals: &AuditTotals, actors: &... function event_type_style (line 757) | fn event_type_style(event_type: &EventType, theme: &Theme) -> rich_rust:... function temp_beads_dir (line 773) | fn temp_beads_dir() -> TempDir { function base_entry (line 780) | fn base_entry(kind: &str) -> AuditEntry { function test_append_preserves_order (line 801) | fn test_append_preserves_order() { function test_record_output_shape (line 824) | fn test_record_output_shape() { function test_label_output_shape (line 835) | fn test_label_output_shape() { function test_audit_entry_exists_finds_existing_parent (line 848) | fn test_audit_entry_exists_finds_existing_parent() { function test_ensure_interactions_file_rejects_symlink_escape (line 861) | fn test_ensure_interactions_file_rejects_symlink_escape() { FILE: src/cli/commands/blocked.rs function execute (line 27) | pub fn execute( function execute_with_storage (line 44) | pub fn execute_with_storage( function execute_with_storage_ctx (line 59) | pub fn execute_with_storage_ctx( function execute_inner (line 77) | fn execute_inner( function include_in_blocked_list (line 228) | fn include_in_blocked_list(status: &crate::model::Status) -> bool { function blocked_issue_outputs (line 232) | fn blocked_issue_outputs(blocked_issues: &[BlockedIssue]) -> Vec BlockedIssueOutput { function sort_blocked_issues (line 257) | fn sort_blocked_issues(issues: &mut [BlockedIssue]) { function filter_by_type (line 267) | fn filter_by_type(issues: &mut Vec, types: &[String]) -> R... function filter_by_priority (line 282) | fn filter_by_priority(issues: &mut Vec, priorities: &[Stri... function filter_by_labels (line 296) | fn filter_by_labels( function print_text_output (line 317) | fn print_text_output( function blocked_id_text (line 389) | fn blocked_id_text(id: &str) -> String { function blocked_id_list_text (line 393) | fn blocked_id_list_text(blocked_by: &[String]) -> String { function blocker_id_from_ref (line 401) | fn blocker_id_from_ref(blocker_ref: &str) -> &str { function render_blocked_rich (line 408) | fn render_blocked_rich( function make_issue (line 530) | fn make_issue(id: &str, title: &str, priority: i32, issue_type: IssueTyp... function make_blocked_issue (line 574) | fn make_blocked_issue( function test_blocked_args_defaults (line 588) | fn test_blocked_args_defaults() { function test_blocked_id_display_helpers_escape_terminal_controls (line 603) | fn test_blocked_id_display_helpers_escape_terminal_controls() { function test_sort_by_priority_then_blocker_count (line 619) | fn test_sort_by_priority_then_blocker_count() { function test_filter_by_type_empty_keeps_all (line 640) | fn test_filter_by_type_empty_keeps_all() { function test_filter_by_type_filters_correctly (line 662) | fn test_filter_by_type_filters_correctly() { function test_include_in_blocked_list_matches_local_blocked_query_statuses (line 690) | fn test_include_in_blocked_list_matches_local_blocked_query_statuses() { function test_filter_by_type_case_insensitive (line 704) | fn test_filter_by_type_case_insensitive() { function test_filter_by_type_multiple_types (line 728) | fn test_filter_by_type_multiple_types() { function test_filter_by_priority_empty_keeps_all (line 759) | fn test_filter_by_priority_empty_keeps_all() { function test_filter_by_priority_single (line 774) | fn test_filter_by_priority_single() { function test_filter_by_priority_multiple (line 790) | fn test_filter_by_priority_multiple() { FILE: src/cli/commands/changelog.rs type ChangelogOutput (line 24) | pub struct ChangelogOutput { type ChangelogGroup (line 37) | pub struct ChangelogGroup { type ChangelogEntry (line 48) | pub struct ChangelogEntry { type ChangelogRenderMode (line 57) | enum ChangelogRenderMode { function execute (line 71) | pub fn execute( function execute_with_storage_ctx (line 88) | pub fn execute_with_storage_ctx( function resolve_render_mode (line 187) | const fn resolve_render_mode(json: bool, output_mode: OutputMode) -> Cha... function type_to_header (line 198) | fn type_to_header(issue_type: &str) -> String { function changelog_display_text (line 218) | fn changelog_display_text(value: &str) -> String { function short_git_reference_label (line 222) | fn short_git_reference_label(reference: &str) -> String { function print_text_output (line 227) | fn print_text_output(output: &ChangelogOutput) { function render_changelog_rich (line 248) | fn render_changelog_rich(output: &ChangelogOutput, ctx: &OutputContext) { function format_date_range (line 304) | fn format_date_range(since: &str, until: &str) -> String { function format_date_brief (line 312) | fn format_date_brief(date_str: &str) -> String { function type_icon (line 324) | fn type_icon(issue_type: &str) -> &'static str { function resolve_since (line 337) | fn resolve_since( function git_commit_date (line 360) | fn git_commit_date(reference: &str, repo_root: Option<&Path>) -> Result<... function git_tag_date (line 398) | fn git_tag_date(reference: &str, repo_root: Option<&Path>) -> Result Option { function test_resolve_since_rfc3339 (line 486) | fn test_resolve_since_rfc3339() { function test_resolve_since_relative (line 500) | fn test_resolve_since_relative() { function test_resolve_since_none (line 514) | fn test_resolve_since_none() { function test_resolve_render_mode_prefers_context_structured_modes (line 522) | fn test_resolve_render_mode_prefers_context_structured_modes() { function test_resolve_render_mode_respects_robot_json_requests (line 534) | fn test_resolve_render_mode_respects_robot_json_requests() { function test_resolve_render_mode_robot_overrides_inherited_toon (line 546) | fn test_resolve_render_mode_robot_overrides_inherited_toon() { function test_resolve_render_mode_respects_quiet_mode (line 554) | fn test_resolve_render_mode_respects_quiet_mode() { function init_git_repo (line 561) | fn init_git_repo(repo_root: &Path) { function commit_file (line 583) | fn commit_file(repo_root: &Path, message: &str, stamp: &str) { function test_git_commit_date_uses_target_repo_root (line 604) | fn test_git_commit_date_uses_target_repo_root() { function test_git_tag_date_prefers_annotated_tag_timestamp (line 630) | fn test_git_tag_date_prefers_annotated_tag_timestamp() { function test_git_tag_date_falls_back_for_lightweight_tags (line 653) | fn test_git_tag_date_falls_back_for_lightweight_tags() { function test_git_tag_date_errors_for_missing_tag_even_if_branch_exists (line 675) | fn test_git_tag_date_errors_for_missing_tag_even_if_branch_exists() { function test_git_reference_errors_sanitize_terminal_controls (line 701) | fn test_git_reference_errors_sanitize_terminal_controls() { function test_git_tag_errors_sanitize_terminal_controls (line 711) | fn test_git_tag_errors_sanitize_terminal_controls() { function test_resolve_render_mode_prefers_robot_json_over_quiet (line 721) | fn test_resolve_render_mode_prefers_robot_json_over_quiet() { function test_type_to_header (line 729) | fn test_type_to_header() { function test_type_to_header_sanitizes_custom_type (line 743) | fn test_type_to_header_sanitizes_custom_type() { function test_type_icon (line 752) | fn test_type_icon() { function test_format_date_brief (line 765) | fn test_format_date_brief() { function test_format_date_brief_sanitizes_unparseable_label (line 774) | fn test_format_date_brief_sanitizes_unparseable_label() { function test_changelog_display_text_sanitizes_terminal_controls (line 782) | fn test_changelog_display_text_sanitizes_terminal_controls() { function test_short_git_reference_label_is_character_boundary_safe (line 795) | fn test_short_git_reference_label_is_character_boundary_safe() { function test_format_date_range (line 802) | fn test_format_date_range() { function test_changelog_grouping (line 810) | fn test_changelog_grouping() { function test_json_serialization (line 855) | fn test_json_serialization() { function test_empty_changelog (line 882) | fn test_empty_changelog() { FILE: src/cli/commands/close.rs type CloseArgs (line 23) | pub struct CloseArgs { method from (line 37) | fn from(cli: &CliCloseArgs) -> Self { function execute_cli (line 53) | pub fn execute_cli( type CloseResult (line 65) | pub struct CloseResult { type CloseWithSuggestResult (line 73) | pub struct CloseWithSuggestResult { type UnblockedIssue (line 82) | pub struct UnblockedIssue { type ClosedIssue (line 89) | pub struct ClosedIssue { type SkippedIssue (line 99) | pub struct SkippedIssue { type CloseExecution (line 106) | struct CloseExecution { type CloseOutcome (line 114) | enum CloseOutcome { function build_close_json_payload (line 119) | fn build_close_json_payload( function render_close_json (line 148) | fn render_close_json( function emit_close_structured_output (line 159) | fn emit_close_structured_output( function close_human_message (line 209) | fn close_human_message(closed: &ClosedIssue) -> String { function skipped_human_message (line 222) | fn skipped_human_message(skipped: &SkippedIssue) -> String { function unblocked_human_line (line 228) | fn unblocked_human_line(issue: &UnblockedIssue) -> String { function issue_input_text (line 234) | fn issue_input_text(input: &str) -> String { function reorder_routed_items_by_requested_inputs (line 238) | fn reorder_routed_items_by_requested_inputs( function compute_batch_closable_ids (line 294) | fn compute_batch_closable_ids( function execute (line 339) | pub fn execute( function execute_with_args (line 362) | pub fn execute_with_args( function execute_route (line 487) | fn execute_route( type DirGuard (line 847) | struct DirGuard { method new (line 852) | fn new(target: &std::path::Path) -> Self { method drop (line 860) | fn drop(&mut self) { function make_issue (line 865) | fn make_issue(id: &str, title: &str) -> Issue { function test_close_args_default (line 884) | fn test_close_args_default() { function test_close_args_with_all_fields (line 894) | fn test_close_args_with_all_fields() { function test_close_result_serialization_empty_skipped_omitted (line 915) | fn test_close_result_serialization_empty_skipped_omitted() { function test_close_result_serialization_with_skipped (line 933) | fn test_close_result_serialization_with_skipped() { function test_close_result_roundtrip (line 947) | fn test_close_result_roundtrip() { function test_close_with_suggest_result_serialization (line 984) | fn test_close_with_suggest_result_serialization() { function test_close_with_suggest_result_empty_unblocked (line 1018) | fn test_close_with_suggest_result_empty_unblocked() { function test_closed_issue_serialization_with_reason (line 1038) | fn test_closed_issue_serialization_with_reason() { function test_closed_issue_serialization_without_reason (line 1051) | fn test_closed_issue_serialization_without_reason() { function test_closed_issue_all_fields (line 1065) | fn test_closed_issue_all_fields() { function close_human_messages_sanitize_terminal_controls (line 1082) | fn close_human_messages_sanitize_terminal_controls() { function reorder_routed_items_sanitizes_missing_input_error (line 1121) | fn reorder_routed_items_sanitizes_missing_input_error() { function reorder_routed_items_sanitizes_unexpected_input_error (line 1141) | fn reorder_routed_items_sanitizes_unexpected_input_error() { function test_skipped_issue_serialization (line 1165) | fn test_skipped_issue_serialization() { function test_skipped_issue_blocked_reason (line 1176) | fn test_skipped_issue_blocked_reason() { function test_unblocked_issue_serialization (line 1193) | fn test_unblocked_issue_serialization() { function test_unblocked_issue_priority_boundaries (line 1206) | fn test_unblocked_issue_priority_boundaries() { function test_close_result_multiple_closed_multiple_skipped (line 1224) | fn test_close_result_multiple_closed_multiple_skipped() { function test_render_close_json_preserves_bare_array_for_pure_success (line 1260) | fn test_render_close_json_preserves_bare_array_for_pure_success() { function test_close_result_shape_with_skipped_is_wrapped (line 1279) | fn test_close_result_shape_with_skipped_is_wrapped() { function test_close_args_clone (line 1303) | fn test_close_args_clone() { function test_close_args_debug_impl (line 1320) | fn test_close_args_debug_impl() { function execute_with_args_closes_requested_blocker_chain_in_one_batch (line 1329) | fn execute_with_args_closes_requested_blocker_chain_in_one_batch() { function execute_with_args_closes_requested_dot_notation_child_with_parent (line 1379) | fn execute_with_args_closes_requested_dot_notation_child_with_parent() { function execute_with_args_keeps_parent_blocked_by_unrequested_dot_notation_child (line 1421) | fn execute_with_args_keeps_parent_blocked_by_unrequested_dot_notation_ch... function execute_with_args_returns_nothing_to_do_when_all_requested_issues_are_skipped (line 1464) | fn execute_with_args_returns_nothing_to_do_when_all_requested_issues_are... FILE: src/cli/commands/comments.rs function execute (line 28) | pub fn execute( function execute_add (line 51) | fn execute_add( function execute_list (line 101) | fn execute_list( function open_routed_storage_for_input (line 125) | fn open_routed_storage_for_input( function prepare_comment_add (line 150) | fn prepare_comment_add( function list_comments_by_id (line 168) | fn list_comments_by_id( function render_comments_list_rich (line 222) | fn render_comments_list_rich( function wrap_rich_text (line 283) | fn wrap_rich_text(text: &Text, panel_width: usize) -> Text { function render_comment_added_rich (line 297) | fn render_comment_added_rich(issue_id: &str, comment: &Comment, ctx: &Ou... function comment_added_message (line 324) | fn comment_added_message(issue_id: &str) -> String { function comments_header (line 328) | fn comments_header(issue_id: &str) -> String { function no_comments_message (line 332) | fn no_comments_message(issue_id: &str) -> String { function comments_panel_title (line 336) | fn comments_panel_title(issue_id: &str, count: usize) -> String { constant MAX_STDIN_COMMENT_BYTES (line 340) | const MAX_STDIN_COMMENT_BYTES: usize = 10 * 1024 * 1024; function read_limited_string (line 342) | fn read_limited_string(reader: &mut R, byte_limit: usize, field... function read_comment_text (line 358) | fn read_comment_text(args: &CommentAddArgs) -> Result { function resolve_author (line 385) | fn resolve_author(author_override: Option<&str>, actor: Option<&str>) ->... function resolve_author_from_env (line 403) | fn resolve_author_from_env(mut lookup: impl FnMut(&str) -> Option Result<(... function write_dynamic_completions (line 54) | fn write_dynamic_completions( function shell_name (line 73) | const fn shell_name(shell: ShellType) -> &'static str { function shell_env_name (line 83) | const fn shell_env_name(shell: ShellType) -> &'static str { function print_install_instructions (line 94) | pub fn print_install_instructions(shell: ShellType) { function init_logging (line 140) | fn init_logging() { function render_shell (line 144) | fn render_shell(shell: ShellType) -> String { function test_bash_completion_generation (line 152) | fn test_bash_completion_generation() { function test_zsh_completion_generation (line 171) | fn test_zsh_completion_generation() { function test_fish_completion_generation (line 185) | fn test_fish_completion_generation() { FILE: src/cli/commands/config.rs type ConfigSource (line 34) | enum ConfigSource { method label (line 46) | fn label(self) -> &'static str { method heading (line 59) | fn heading(self) -> &'static str { type ConfigEntry (line 73) | struct ConfigEntry { type LayerWithSource (line 79) | struct LayerWithSource { type TempConfigFileGuard (line 84) | struct TempConfigFileGuard { method new (line 90) | fn new(path: PathBuf) -> Self { method persist (line 97) | fn persist(&mut self) { method drop (line 103) | fn drop(&mut self) { function create_temp_config_file (line 110) | fn create_temp_config_file(config_path: &Path) -> Result<(PathBuf, File)> { function write_config_atomically (line 136) | fn write_config_atomically(config_path: &Path, yaml: &str) -> Result<()> { function execute (line 164) | pub fn execute( function overrides_without_no_db (line 193) | fn overrides_without_no_db(overrides: &CliOverrides) -> CliOverrides { function build_layers (line 199) | fn build_layers( function load_jsonl_inferred_layer (line 262) | fn load_jsonl_inferred_layer(paths: &ConfigPaths) -> Result { function load_db_layer_without_recovery (line 270) | fn load_db_layer_without_recovery(paths: &ConfigPaths) -> ConfigLayer { function merge_layers (line 308) | fn merge_layers(layers: &[LayerWithSource]) -> ConfigLayer { function canonical_config_key (line 316) | fn canonical_config_key(key: &str) -> String { function resolve_source (line 320) | fn resolve_source(key: &str, layers: &[LayerWithSource]) -> ConfigSource { function format_config_value (line 332) | fn format_config_value(value: &str) -> String { function render_config_table (line 352) | fn render_config_table(title: &str, entries: &[ConfigEntry], ctx: &Outpu... function render_kv_table (line 383) | fn render_kv_table(title: &str, rows: &[(String, String)], ctx: &OutputC... function show_paths (line 406) | fn show_paths(_json_mode: bool, overrides: &CliOverrides, ctx: &OutputCo... function edit_config (line 451) | fn edit_config() -> Result<()> { function parse_editor_command (line 497) | fn parse_editor_command(editor: &str) -> Result<(String, Vec)> { type AllowedEditor (line 509) | enum AllowedEditor { method from_program (line 536) | fn from_program(program: &str) -> Result { method command (line 570) | fn command(self) -> Command { function editor_program_name (line 599) | fn editor_program_name(program: &str) -> &str { function strip_windows_exe_suffix (line 608) | fn strip_windows_exe_suffix(name: &str) -> &str { constant ALLOWED_EDITORS (line 620) | const ALLOWED_EDITORS: &[&str] = &[ function get_config_value (line 647) | fn get_config_value( function set_config_value (line 696) | fn set_config_value( function parse_scalar_config_value (line 805) | fn parse_scalar_config_value(value: &str) -> serde_yml::Value { function set_yaml_value (line 821) | fn set_yaml_value(config: &mut serde_yml::Value, parts: &[&str], value: ... function get_yaml_value (line 851) | fn get_yaml_value(value: &serde_yml::Value, parts: &[&str]) -> Option Option { function load_mutable_yaml_config (line 878) | fn load_mutable_yaml_config(config_path: &Path) -> Result Result) -> R... function delete_from_yaml (line 1025) | fn delete_from_yaml(value: &mut serde_yml::Value, key: &str) -> bool { function delete_nested (line 1030) | fn delete_nested(value: &mut serde_yml::Value, path: &[&str]) -> bool { function show_config (line 1051) | fn show_config( function output_layer (line 1200) | fn output_layer(layer: &ConfigLayer, source: ConfigSource, _json_mode: b... function get_user_config_path (line 1255) | fn get_user_config_path() -> Option { function get_legacy_user_config_path (line 1270) | fn get_legacy_user_config_path() -> Option { function test_user_config_path_format (line 1281) | fn test_user_config_path_format() { function test_set_config_invalid_format (line 1294) | fn test_set_config_invalid_format() { function test_nested_key_parsing (line 1303) | fn test_nested_key_parsing() { function test_parse_editor_command_splits_flags (line 1310) | fn test_parse_editor_command_splits_flags() { function test_parse_editor_command_respects_quotes (line 1317) | fn test_parse_editor_command_respects_quotes() { function test_allowed_editor_accepts_absolute_common_editor_path (line 1324) | fn test_allowed_editor_accepts_absolute_common_editor_path() { function test_allowed_editor_accepts_common_visual_editor_aliases (line 1332) | fn test_allowed_editor_accepts_common_visual_editor_aliases() { function test_allowed_editor_accepts_windows_exe_suffix (line 1348) | fn test_allowed_editor_accepts_windows_exe_suffix() { function test_allowed_editor_rejects_unknown_program (line 1360) | fn test_allowed_editor_rejects_unknown_program() { function test_delete_config_key_from_yaml_file_removes_value (line 1366) | fn test_delete_config_key_from_yaml_file_removes_value() { function test_write_config_atomically_skips_stale_temp_path (line 1381) | fn test_write_config_atomically_skips_stale_temp_path() { function test_write_config_atomically_preserves_existing_permissions (line 1406) | fn test_write_config_atomically_preserves_existing_permissions() { function test_build_layers_does_not_create_missing_db_for_read_only_access (line 1421) | fn test_build_layers_does_not_create_missing_db_for_read_only_access() { function test_build_layers_reads_db_layer_from_startup_db_override (line 1436) | fn test_build_layers_reads_db_layer_from_startup_db_override() { function test_build_layers_infers_prefix_from_jsonl_for_read_only_config_views (line 1463) | fn test_build_layers_infers_prefix_from_jsonl_for_read_only_config_views... function test_set_yaml_value_overwrites_scalar_root (line 1493) | fn test_set_yaml_value_overwrites_scalar_root() { function test_set_yaml_value_overwrites_scalar_child (line 1513) | fn test_set_yaml_value_overwrites_scalar_child() { FILE: src/cli/commands/count.rs type CountOutput (line 13) | struct CountOutput { type CountGroup (line 18) | struct CountGroup { type CountGroupedOutput (line 24) | struct CountGroupedOutput { function execute (line 34) | pub fn execute( function execute_with_storage (line 50) | pub fn execute_with_storage( function execute_inner (line 58) | fn execute_inner(args: &CountArgs, ctx: &OutputContext, storage: &Sqlite... function render_count_simple_rich (line 150) | fn render_count_simple_rich(total: usize, ctx: &OutputContext) { function render_count_grouped_rich (line 168) | fn render_count_grouped_rich( function parse_trimmed_values (line 222) | fn parse_trimmed_values(values: &[String]) -> Result> function group_counts (line 232) | fn group_counts( function group_counts_for_filters (line 294) | fn group_counts_for_filters( function should_use_full_issue_rows_for_count (line 324) | fn should_use_full_issue_rows_for_count(filters: &ListFilters) -> bool { function stats_row_matches_count_filters (line 328) | fn stats_row_matches_count_filters(issue: &StatsIssueRow, filters: &List... function group_stats_counts (line 376) | fn group_stats_counts( function init_logging (line 445) | fn init_logging() { function make_issue (line 449) | fn make_issue(id: &str, status: Status, priority: Priority, issue_type: ... function groups_to_map (line 493) | fn groups_to_map(groups: Vec) -> BTreeMap { function test_group_counts_status (line 501) | fn test_group_counts_status() -> Result<()> { function test_group_counts_label_includes_unlabeled (line 529) | fn test_group_counts_label_includes_unlabeled() -> Result<()> { function test_lean_group_counts_match_full_issue_filtering (line 565) | fn test_lean_group_counts_match_full_issue_filtering() -> Result<()> { function test_lean_group_counts_include_labels_for_filtered_rows (line 601) | fn test_lean_group_counts_include_labels_for_filtered_rows() -> Result<(... function test_parse_count_filters_trim_delimited_whitespace (line 630) | fn test_parse_count_filters_trim_delimited_whitespace() -> Result<()> { FILE: src/cli/commands/create.rs type CreateConfig (line 19) | pub struct CreateConfig { type NewIdInput (line 26) | struct NewIdInput<'a> { function execute (line 41) | pub fn execute(args: &CreateArgs, cli: &config::CliOverrides, ctx: &Outp... function execute_with_storage (line 50) | pub fn execute_with_storage( function auto_flush_after_create (line 175) | fn auto_flush_after_create(storage_ctx: &mut config::OpenStorageResult, ... function create_display_text (line 186) | fn create_display_text(value: &str) -> String { function create_display_list (line 190) | fn create_display_list<'a>(values: impl IntoIterator) ->... function create_display_path (line 198) | fn create_display_path(path: &Path) -> String { function create_issue_summary_line (line 202) | fn create_issue_summary_line(id: &str, title: &str) -> String { function create_issue_impl (line 223) | pub fn create_issue_impl( function generate_new_id (line 384) | fn generate_new_id( function resolve_dependency_id (line 447) | fn resolve_dependency_id( function validate_relations (line 473) | fn validate_relations(args: &CreateArgs, issue_id: &str) -> Result<()> { type RelationContext (line 535) | struct RelationContext<'a> { function populate_relations (line 543) | fn populate_relations( function execute_import (line 607) | fn execute_import( function is_marker_only_dependency (line 1055) | fn is_marker_only_dependency(dep_id: &str) -> bool { function parse_optional_date (line 1059) | fn parse_optional_date(s: Option<&str>) -> Result>> { function default_args (line 1075) | fn default_args() -> CreateArgs { function default_config (line 1099) | fn default_config() -> CreateConfig { function setup_memory_storage (line 1113) | fn setup_memory_storage() -> SqliteStorage { function create_human_display_helpers_escape_terminal_controls (line 1118) | fn create_human_display_helpers_escape_terminal_controls() { function test_create_issue_basic_success (line 1137) | fn test_create_issue_basic_success() { function test_create_issue_validation_empty_title (line 1159) | fn test_create_issue_validation_empty_title() { function test_create_issue_with_parent_propagates_storage_error (line 1173) | fn test_create_issue_with_parent_propagates_storage_error() { function test_create_issue_dry_run_no_writes (line 1199) | fn test_create_issue_dry_run_no_writes() { function test_create_issue_with_overrides (line 1217) | fn test_create_issue_with_overrides() { function test_create_issue_with_labels_and_deps (line 1236) | fn test_create_issue_with_labels_and_deps() { function test_create_issue_with_missing_dependency_fails (line 1268) | fn test_create_issue_with_missing_dependency_fails() { function test_create_parent_dependency (line 1283) | fn test_create_parent_dependency() { function test_create_child_generates_hierarchical_id (line 1304) | fn test_create_child_generates_hierarchical_id() { function test_create_child_with_nonexistent_parent_fails (line 1355) | fn test_create_child_with_nonexistent_parent_fails() { function test_create_issue_custom_type_accepted (line 1378) | fn test_create_issue_custom_type_accepted() { function test_parse_optional_date_none (line 1402) | fn test_parse_optional_date_none() { function test_parse_optional_date_empty_string (line 1412) | fn test_parse_optional_date_empty_string() { function test_parse_optional_date_iso8601 (line 1422) | fn test_parse_optional_date_iso8601() { function test_parse_optional_date_simple_date (line 1437) | fn test_parse_optional_date_simple_date() { function test_parse_optional_date_with_timezone (line 1452) | fn test_parse_optional_date_with_timezone() { function test_parse_optional_date_invalid_format (line 1461) | fn test_parse_optional_date_invalid_format() { function test_parse_optional_date_partial_date (line 1470) | fn test_parse_optional_date_partial_date() { function test_parse_optional_date_year_boundaries (line 1484) | fn test_parse_optional_date_year_boundaries() { function test_parse_optional_date_leap_year (line 1498) | fn test_parse_optional_date_leap_year() { function test_parse_optional_date_end_of_month (line 1513) | fn test_parse_optional_date_end_of_month() { function test_parse_optional_date_whitespace_only (line 1531) | fn test_parse_optional_date_whitespace_only() { function test_create_issue_trims_labels (line 1542) | fn test_create_issue_trims_labels() { function test_create_issue_deduplicates_labels (line 1558) | fn test_create_issue_deduplicates_labels() { FILE: src/cli/commands/defer.rs type DeferredIssue (line 24) | pub struct DeferredIssue { type SkippedIssue (line 35) | pub struct SkippedIssue { type DeferResult (line 41) | struct DeferResult { type UndeferResult (line 50) | struct UndeferResult { type DeferredOutcome (line 59) | enum DeferredOutcome { function restored_status_after_undefer (line 64) | fn restored_status_after_undefer(issue: &Issue) -> Status { function skipped_reason_text (line 72) | fn skipped_reason_text(reason: &str) -> String { function issue_id_text (line 76) | fn issue_id_text(id: &str) -> String { function status_text (line 80) | fn status_text(status: &str) -> String { function execute_defer (line 89) | pub fn execute_defer( function render_defer_output (line 159) | fn render_defer_output( function execute_defer_route (line 206) | fn execute_defer_route( function execute_undefer (line 342) | pub fn execute_undefer( function render_undefer_output (line 415) | fn render_undefer_output( function execute_undefer_route (line 459) | fn execute_undefer_route( function emit_structured_output (line 590) | fn emit_structured_output(payload: &T, ctx: &OutputContext... function reorder_routed_items_by_requested_inputs (line 602) | fn reorder_routed_items_by_requested_inputs( function render_defer_rich (line 663) | fn render_defer_rich(deferred: &[DeferredIssue], skipped: &[SkippedIssue... function render_undefer_rich (line 722) | fn render_undefer_rich( function make_issue (line 793) | fn make_issue(id: &str, title: &str) -> Issue { function deferred_output_item (line 838) | fn deferred_output_item(id: &str) -> DeferredIssue { function skipped_reason_text_sanitizes_terminal_controls (line 849) | fn skipped_reason_text_sanitizes_terminal_controls() { function issue_id_text_sanitizes_terminal_controls (line 862) | fn issue_id_text_sanitizes_terminal_controls() { function status_text_sanitizes_terminal_controls (line 875) | fn status_text_sanitizes_terminal_controls() { function defer_result_serializes_as_object_without_skips (line 888) | fn defer_result_serializes_as_object_without_skips() { function undefer_result_serializes_as_object_without_skips (line 906) | fn undefer_result_serializes_as_object_without_skips() { function reorder_routed_items_preserves_duplicate_requested_inputs (line 927) | fn reorder_routed_items_preserves_duplicate_requested_inputs() -> Result... function reorder_routed_items_sanitizes_missing_input_error (line 950) | fn reorder_routed_items_sanitizes_missing_input_error() { function reorder_routed_items_sanitizes_unexpected_input_error (line 970) | fn reorder_routed_items_sanitizes_unexpected_input_error() { function test_parse_defer_time_rfc3339 (line 990) | fn test_parse_defer_time_rfc3339() { function test_parse_defer_time_simple_date (line 998) | fn test_parse_defer_time_simple_date() { function test_parse_defer_time_relative_hours (line 1006) | fn test_parse_defer_time_relative_hours() { function test_parse_defer_time_relative_days (line 1017) | fn test_parse_defer_time_relative_days() { function test_parse_defer_time_relative_weeks (line 1028) | fn test_parse_defer_time_relative_weeks() { function test_parse_defer_time_tomorrow (line 1039) | fn test_parse_defer_time_tomorrow() { function test_parse_defer_time_next_week (line 1049) | fn test_parse_defer_time_next_week() { function test_parse_defer_time_invalid (line 1058) | fn test_parse_defer_time_invalid() { function test_parse_defer_time_minutes (line 1064) | fn test_parse_defer_time_minutes() { function test_parse_defer_time_negative (line 1075) | fn test_parse_defer_time_negative() { function execute_defer_sets_status_and_until (line 1086) | fn execute_defer_sets_status_and_until() { function execute_defer_without_until_sets_indefinite (line 1123) | fn execute_defer_without_until_sets_indefinite() { function execute_undefer_clears_defer_until (line 1160) | fn execute_undefer_clears_defer_until() { function execute_undefer_preserves_non_deferred_status_for_soft_defer (line 1209) | fn execute_undefer_preserves_non_deferred_status_for_soft_defer() { function execute_undefer_skips_terminal_issue_with_stale_defer_until (line 1247) | fn execute_undefer_skips_terminal_issue_with_stale_defer_until() -> Resu... FILE: src/cli/commands/delete.rs type DeleteResult (line 27) | pub struct DeleteResult { method new (line 38) | const fn new() -> Self { type DeletePreviewResult (line 53) | struct DeletePreviewResult { type PreparedDeleteRoute (line 61) | struct PreparedDeleteRoute { function delete_display_text (line 72) | fn delete_display_text(value: &str) -> String { function execute (line 86) | pub fn execute( function execute_routed (line 376) | fn execute_routed( function prepare_delete_route (line 503) | fn prepare_delete_route( function apply_delete_route (line 548) | fn apply_delete_route( function render_routed_delete_preview (line 625) | fn render_routed_delete_preview(ctx: &OutputContext, preview: &DeletePre... function merge_delete_result (line 698) | fn merge_delete_result(result: &mut DeleteResult, mut batch_result: Dele... function finalize_delete_result (line 709) | fn finalize_delete_result(result: &mut DeleteResult) { function clear_last_touched_if_deleted (line 715) | fn clear_last_touched_if_deleted(beads_dir: &Path, deleted_ids: &[String... function sorted_unique_strings (line 723) | fn sorted_unique_strings(mut values: Vec) -> Vec { function read_ids_from_file (line 730) | fn read_ids_from_file(path: &Path) -> Result> { function collect_cascade_dependents (line 753) | fn collect_cascade_dependents( function collect_direct_dependents (line 778) | fn collect_direct_dependents( function collect_sorted_cascade_dependents (line 799) | fn collect_sorted_cascade_dependents( function render_dependents_warning_rich (line 811) | fn render_dependents_warning_rich( function render_dry_run_rich (line 907) | fn render_dry_run_rich( function render_delete_result_rich (line 996) | fn render_delete_result_rich(result: &DeleteResult, storage: &SqliteStor... function init_logging (line 1081) | fn init_logging() { function create_test_issue (line 1085) | fn create_test_issue(id: &str, title: &str) -> Issue { function delete_display_text_sanitizes_terminal_controls (line 1130) | fn delete_display_text_sanitizes_terminal_controls() { function test_read_ids_from_file (line 1143) | fn test_read_ids_from_file() { function test_delete_creates_tombstone (line 1160) | fn test_delete_creates_tombstone() { function test_delete_nonexistent_fails (line 1184) | fn test_delete_nonexistent_fails() { function test_cascade_dependents_collection (line 1194) | fn test_cascade_dependents_collection() { function test_direct_dependents_collection_is_shallow (line 1232) | fn test_direct_dependents_collection_is_shallow() { function test_sorted_cascade_dependents_include_transitive_dependents (line 1265) | fn test_sorted_cascade_dependents_include_transitive_dependents() { function test_preview_cascade_closure_exceeds_direct_dependents (line 1298) | fn test_preview_cascade_closure_exceeds_direct_dependents() { FILE: src/cli/commands/dep.rs function execute (line 29) | pub fn execute( function execute_dep_add (line 48) | fn execute_dep_add( function execute_dep_remove (line 73) | fn execute_dep_remove( function execute_dep_list (line 98) | fn execute_dep_list( function execute_dep_tree (line 125) | fn execute_dep_tree( function open_routed_storage_for_input (line 150) | fn open_routed_storage_for_input( function validate_dependency_target_route (line 175) | fn validate_dependency_target_route( type DepActionResult (line 201) | struct DepActionResult { function finalize_dep_mutation (line 210) | fn finalize_dep_mutation( type DepListItem (line 221) | struct DepListItem { type TreeNode (line 233) | struct TreeNode { type CyclesResult (line 249) | struct CyclesResult { function dep_add (line 254) | fn dep_add( function dep_remove (line 377) | fn dep_remove( function dependency_type_for_pair (line 459) | fn dependency_type_for_pair( function dep_display_text (line 471) | fn dep_display_text(value: &str) -> String { function parse_dependency_type (line 475) | fn parse_dependency_type(dep_type: &str) -> Result { function normalize_dep_type_filter (line 496) | fn normalize_dep_type_filter(dep_type: &str) -> Result { function dep_list (line 501) | fn dep_list( function render_dep_list_rich (line 654) | fn render_dep_list_rich( function dep_list_panel_title (line 703) | fn dep_list_panel_title(direction: DepDirection, issue_id: &str) -> Stri... function dep_list_section_title (line 712) | fn dep_list_section_title(is_dependency_section: bool, count: usize) -> ... function append_dep_list_section (line 721) | fn append_dep_list_section( function dep_list_status_label (line 762) | fn dep_list_status_label(status: &str) -> String { function append_dep_list_status (line 772) | fn append_dep_list_status(content: &mut Text, status: &str, theme: &Them... function apply_external_dep_list_metadata (line 783) | fn apply_external_dep_list_metadata( function sort_dep_list_items_for_human (line 818) | fn sort_dep_list_items_for_human(items: &mut [DepListItem]) { function resolve_dep_tree_node_metadata (line 828) | fn resolve_dep_tree_node_metadata( function dep_tree_truncated (line 872) | fn dep_tree_truncated(depth: usize, max_depth: usize, dependency_count: ... function dep_tree (line 877) | fn dep_tree( function sanitize_mermaid_label (line 1045) | fn sanitize_mermaid_label(text: &str) -> String { function render_dep_tree_mermaid (line 1051) | fn render_dep_tree_mermaid(nodes: &[TreeNode]) { function sort_dep_tree_siblings (line 1071) | fn sort_dep_tree_siblings( function dep_tree_sibling_priority (line 1090) | fn dep_tree_sibling_priority(meta: Option<&(String, i32, String)>) -> i32 { function dep_tree_sibling_title (line 1094) | fn dep_tree_sibling_title(meta: Option<&(String, i32, String)>) -> &str { function dep_tree_sibling_status_rank (line 1098) | fn dep_tree_sibling_status_rank(meta: Option<&(String, i32, String)>) ->... function render_dep_tree_rich (line 1115) | fn render_dep_tree_rich(ctx: &OutputContext, nodes: &[TreeNode]) { function build_tree_node_rich (line 1142) | fn build_tree_node_rich<'a>( function build_tree_node_label (line 1160) | fn build_tree_node_label(node: &TreeNode, theme: &Theme) -> Text { function dep_tree_status_style (line 1186) | fn dep_tree_status_style(status: &str, theme: &Theme) -> Style { function dep_tree_status_indicator (line 1197) | fn dep_tree_status_indicator(status: &str) -> Option<&'static str> { function parse_external_dep_id (line 1205) | fn parse_external_dep_id(dep_id: &str) -> Option<(String, String)> { function dep_cycles (line 1219) | fn dep_cycles( function render_cycles_rich (line 1259) | fn render_cycles_rich(ctx: &OutputContext, cycles: &[Vec], count... function build_cycles_rich_text (line 1269) | fn build_cycles_rich_text(cycles: &[Vec], count: usize, theme: &... function append_cycle_path_rich (line 1303) | fn append_cycle_path_rich(content: &mut Text, cycle: &[String], theme: &... function format_cycle_plain (line 1312) | fn format_cycle_plain(cycle: &[String]) -> String { function make_test_issue (line 1329) | fn make_test_issue(id: &str, title: &str) -> Issue { function test_dep_list_item (line 1373) | fn test_dep_list_item(issue_id: &str, depends_on_id: &str, priority: i32... function test_dependency_type_parsing (line 1385) | fn test_dependency_type_parsing() { function test_blocking_dependency_types (line 1408) | fn test_blocking_dependency_types() { function test_normalize_dep_type_filter_canonicalizes_standard_types (line 1419) | fn test_normalize_dep_type_filter_canonicalizes_standard_types() { function test_normalize_dep_type_filter_rejects_unknown_types (line 1428) | fn test_normalize_dep_type_filter_rejects_unknown_types() { function test_add_dependency (line 1434) | fn test_add_dependency() { function test_remove_dependency (line 1459) | fn test_remove_dependency() { function test_get_dependencies (line 1487) | fn test_get_dependencies() { function test_get_dependents (line 1515) | fn test_get_dependents() { function test_cycle_detection_simple (line 1543) | fn test_cycle_detection_simple() { function test_cycle_detection_transitive (line 1567) | fn test_cycle_detection_transitive() { function test_no_false_positive_cycle (line 1602) | fn test_no_false_positive_cycle() { function test_dep_action_result_json (line 1628) | fn test_dep_action_result_json() { function test_dep_list_item_json (line 1647) | fn test_dep_list_item_json() { function test_sort_dep_list_items_for_human_orders_by_priority (line 1666) | fn test_sort_dep_list_items_for_human_orders_by_priority() { function test_sort_dep_list_items_for_human_uses_ids_as_tiebreakers (line 1686) | fn test_sort_dep_list_items_for_human_uses_ids_as_tiebreakers() { function test_cycles_result_json (line 1706) | fn test_cycles_result_json() { function dep_cycles_human_output_sanitizes_ids_and_omits_literal_markup (line 1728) | fn dep_cycles_human_output_sanitizes_ids_and_omits_literal_markup() { function dep_display_and_mermaid_labels_escape_terminal_controls (line 1751) | fn dep_display_and_mermaid_labels_escape_terminal_controls() { function dep_list_human_output_sanitizes_relation_ids (line 1762) | fn dep_list_human_output_sanitizes_relation_ids() { function dep_tree_rich_label_sanitizes_text_and_omits_literal_markup (line 1791) | fn dep_tree_rich_label_sanitizes_text_and_omits_literal_markup() { function test_external_dependency_prefix_check (line 1819) | fn test_external_dependency_prefix_check() { function test_dep_direction_default (line 1831) | fn test_dep_direction_default() { function test_apply_external_dep_list_metadata_sets_status_and_title (line 1840) | fn test_apply_external_dep_list_metadata_sets_status_and_title() { function test_apply_external_dep_list_metadata_preserves_title (line 1876) | fn test_apply_external_dep_list_metadata_preserves_title() { function test_apply_external_dep_list_metadata_rewrites_generated_placeholder_title (line 1898) | fn test_apply_external_dep_list_metadata_rewrites_generated_placeholder_... function test_apply_external_dep_list_metadata_external_issue_id (line 1924) | fn test_apply_external_dep_list_metadata_external_issue_id() { function test_dep_list_section_title_uses_neutral_dependents_label (line 1946) | fn test_dep_list_section_title_uses_neutral_dependents_label() { function test_dep_list_panel_title_matches_direction (line 1955) | fn test_dep_list_panel_title_matches_direction() { function test_dep_list_status_label_formats_known_statuses (line 1974) | fn test_dep_list_status_label_formats_known_statuses() { function test_dep_tree_truncated_only_when_children_are_omitted (line 1984) | fn test_dep_tree_truncated_only_when_children_are_omitted() { function test_sort_dep_tree_siblings_uses_metadata_cache (line 1994) | fn test_sort_dep_tree_siblings_uses_metadata_cache() { function test_resolve_dep_tree_node_metadata_missing_internal_issue (line 2038) | fn test_resolve_dep_tree_node_metadata_missing_internal_issue() { function test_dep_direction_variants (line 2061) | fn test_dep_direction_variants() { FILE: src/cli/commands/doctor.rs type CheckStatus (line 31) | enum CheckStatus { type CheckResult (line 38) | struct CheckResult { type DoctorReport (line 48) | struct DoctorReport { type DoctorRepairResult (line 58) | struct DoctorRepairResult { type DoctorRun (line 67) | struct DoctorRun { type LocalRepairResult (line 73) | struct LocalRepairResult { method applied (line 149) | fn applied(&self) -> bool { type RecoveryAuditRecord (line 82) | struct RecoveryAuditRecord { type PriorJsonlRebuildFailureEvidence (line 103) | struct PriorJsonlRebuildFailureEvidence { constant BLOCKED_CACHE_STALE_FINDING (line 108) | const BLOCKED_CACHE_STALE_FINDING: &str = "blocked_issues_cache is marke... constant JSONL_REBUILD_AUTHORITY_ERROR_PREFIX (line 109) | const JSONL_REBUILD_AUTHORITY_ERROR_PREFIX: &str = "Cannot repair: JSONL... constant JSONL_REBUILD_REPEAT_ERROR_PREFIX (line 110) | const JSONL_REBUILD_REPEAT_ERROR_PREFIX: &str = constant JSONL_REBUILD_VERIFICATION_FAILED_SUFFIX (line 112) | const JSONL_REBUILD_VERIFICATION_FAILED_SUFFIX: &str = ".verification-fa... constant ROOT_GITIGNORE_OFFENDING_PATTERNS (line 113) | const ROOT_GITIGNORE_OFFENDING_PATTERNS: &[&str] = &[ constant ROOT_GITIGNORE_REPAIR_MESSAGE (line 125) | const ROOT_GITIGNORE_REPAIR_MESSAGE: &str = constant NO_OP_REPAIR_MESSAGE (line 127) | const NO_OP_REPAIR_MESSAGE: &str = "No errors detected; nothing to repai... constant REINDEX_INCOMPLETE_MESSAGE (line 128) | const REINDEX_INCOMPLETE_MESSAGE: &str = "REINDEX was attempted but did ... type SidecarInspection (line 131) | struct SidecarInspection { type FilesystemPathKind (line 140) | enum FilesystemPathKind { method exists (line 258) | fn exists(self) -> bool { method is_regular_file (line 262) | fn is_regular_file(self) -> bool { method description (line 266) | fn description(self) -> &'static str { function local_repair_applied_actions (line 157) | fn local_repair_applied_actions(repair: &LocalRepairResult) -> Vec RecoveryAuditR... function emit_recovery_audit_record (line 238) | fn emit_recovery_audit_record(record: &RecoveryAuditRecord) { function push_check (line 277) | fn push_check( function has_error (line 292) | fn has_error(checks: &[CheckResult]) -> bool { function push_anomaly (line 298) | fn push_anomaly(anomalies: &mut Vec, anomaly: AnomalyClass) { function check_message (line 304) | fn check_message(check: &CheckResult) -> String { function check_findings (line 308) | fn check_findings(check: &CheckResult) -> Vec { function append_recoverable_anomaly_findings (line 324) | fn append_recoverable_anomaly_findings(check: &CheckResult, anomalies: &... function append_null_default_anomalies (line 356) | fn append_null_default_anomalies(check: &CheckResult, anomalies: &mut Ve... function append_count_mismatch_anomaly (line 385) | fn append_count_mismatch_anomaly(check: &CheckResult, anomalies: &mut Ve... function sidecar_presence_from_check (line 411) | fn sidecar_presence_from_check(check: &CheckResult) -> (bool, bool) { function append_doctor_check_anomalies (line 439) | fn append_doctor_check_anomalies(check: &CheckResult, anomalies: &mut Ve... function classify_doctor_checks (line 513) | fn classify_doctor_checks( function emit_doctor_reliability_audit (line 525) | fn emit_doctor_reliability_audit( function report_has_blocked_cache_stale_finding (line 552) | fn report_has_blocked_cache_stale_finding(report: &DoctorReport) -> bool { function report_has_sidecar_anomaly (line 581) | fn report_has_sidecar_anomaly(report: &DoctorReport) -> bool { function report_has_page_corruption (line 590) | fn report_has_page_corruption(report: &DoctorReport) -> bool { function repair_via_vacuum (line 618) | fn repair_via_vacuum(db_path: &Path, repair: &mut LocalRepairResult) { function write_probe_after_repair (line 668) | fn write_probe_after_repair(db_path: &Path) -> bool { function is_warn_level_page_anomaly_check (line 748) | fn is_warn_level_page_anomaly_check(check: &CheckResult) -> bool { function report_has_warn_level_page_anomaly (line 764) | fn report_has_warn_level_page_anomaly(report: &DoctorReport) -> bool { function repair_report_verified (line 768) | fn repair_report_verified(report: &DoctorReport) -> bool { function report_has_partial_index_warnings (line 774) | fn report_has_partial_index_warnings(report: &DoctorReport) -> bool { function warning_repair_verified (line 789) | fn warning_repair_verified( function local_repair_message (line 800) | fn local_repair_message(local_repair: &LocalRepairResult) -> String { function is_offending_root_gitignore_pattern (line 825) | fn is_offending_root_gitignore_pattern(line: &str) -> bool { function repair_outcome_message (line 833) | fn repair_outcome_message( function classify_path_kind (line 859) | fn classify_path_kind(path: &Path) -> Result { function database_sidecar_paths (line 870) | fn database_sidecar_paths(db_path: &Path) -> [(PathBuf, &'static str); 3] { function inspect_database_sidecars (line 882) | fn inspect_database_sidecars(db_path: &Path) -> Result { function check_database_sidecars (line 953) | fn check_database_sidecars(db_path: &Path, checks: &mut Vec... function check_recovery_artifacts (line 991) | fn check_recovery_artifacts( function db_family_prefix (line 1019) | fn db_family_prefix(db_path: &Path) -> &str { function recovery_artifacts_for_db_family (line 1026) | fn recovery_artifacts_for_db_family(beads_dir: &Path, db_path: &Path) ->... function is_failed_jsonl_rebuild_artifact (line 1057) | fn is_failed_jsonl_rebuild_artifact(path: &Path) -> bool { function prior_jsonl_rebuild_failure_evidence (line 1066) | fn prior_jsonl_rebuild_failure_evidence( function repeated_jsonl_rebuild_refusal_message (line 1082) | fn repeated_jsonl_rebuild_refusal_message(evidence: &PriorJsonlRebuildFa... function repeated_jsonl_rebuild_refusal_reason (line 1090) | fn repeated_jsonl_rebuild_refusal_reason( function push_inspection_error (line 1104) | fn push_inspection_error( function build_issue_write_probe_check (line 1119) | fn build_issue_write_probe_check( function repair_database_from_jsonl (line 1186) | fn repair_database_from_jsonl( function preflight_jsonl_rebuild_authority (line 1265) | fn preflight_jsonl_rebuild_authority(jsonl_path: &Path) -> Result<()> { function jsonl_rebuild_failure_outcome (line 1308) | fn jsonl_rebuild_failure_outcome(err: &BeadsError) -> &'static str { function write_jsonl_rebuild_verification_failed_marker (line 1317) | fn write_jsonl_rebuild_verification_failed_marker( function preserved_tombstones_for_doctor_rebuild (line 1365) | fn preserved_tombstones_for_doctor_rebuild( function repair_recoverable_db_state (line 1406) | fn repair_recoverable_db_state( function repair_partial_indexes (line 1455) | fn repair_partial_indexes(db_path: &Path, repair: &mut LocalRepairResult) { function repair_database_sidecars (line 1501) | fn repair_database_sidecars(beads_dir: &Path, db_path: &Path, repair: &m... function quarantine_anomalous_sidecars (line 1512) | fn quarantine_anomalous_sidecars(beads_dir: &Path, db_path: &Path, repai... function print_report (line 1550) | fn print_report(report: &DoctorReport, ctx: &OutputContext) -> Result<()> { function print_report_plain (line 1567) | fn print_report_plain(report: &DoctorReport) { function render_doctor_rich (line 1586) | fn render_doctor_rich(report: &DoctorReport, ctx: &OutputContext) { function collect_table_columns (line 1661) | fn collect_table_columns(conn: &Connection, table: &str) -> Result bool { function check_integrity (line 1815) | fn check_integrity(conn: &Connection, checks: &mut Vec) { function push_recoverable_anomalies_check (line 1862) | fn push_recoverable_anomalies_check(checks: &mut Vec, findi... function check_recoverable_anomalies (line 1893) | fn check_recoverable_anomalies(conn: &Connection, checks: &mut Vec) { function check_issue_write_probe (line 2046) | fn check_issue_write_probe(conn: &Connection, checks: &mut Vec Result> { function check_sqlite_cli_integrity (line 2137) | fn check_sqlite_cli_integrity(db_path: &Path, checks: &mut Vec]) -> Vec { function check_merge_artifacts (line 2212) | fn check_merge_artifacts(beads_dir: &Path, checks: &mut Vec... function check_root_gitignore (line 2246) | fn check_root_gitignore(beads_dir: &Path, checks: &mut Vec) { function fix_root_gitignore_if_warned (line 2284) | fn fix_root_gitignore_if_warned( function discover_jsonl (line 2326) | fn discover_jsonl(beads_dir: &Path) -> Option { function should_fallback_to_workspace_jsonl (line 2338) | fn should_fallback_to_workspace_jsonl(beads_dir: &Path, paths: &config::... function select_doctor_jsonl_path (line 2348) | fn select_doctor_jsonl_path(beads_dir: &Path, paths: &config::ConfigPath... type JsonlCountState (line 2359) | enum JsonlCountState { function check_jsonl (line 2366) | fn check_jsonl(path: &Path, checks: &mut Vec) -> Result(checks: &'a [CheckResult], name: &str) -> Option<&'a C... function sample_issue (line 3450) | fn sample_issue(id: &str, title: &str) -> Issue { function test_classify_doctor_checks_marks_write_probe_failure_recoverable (line 3495) | fn test_classify_doctor_checks_marks_write_probe_failure_recoverable() { function test_classify_doctor_checks_marks_invalid_jsonl_unsafe (line 3522) | fn test_classify_doctor_checks_marks_invalid_jsonl_unsafe() { function test_classify_doctor_checks_marks_count_mismatch_degraded (line 3547) | fn test_classify_doctor_checks_marks_count_mismatch_degraded() { function test_classify_doctor_checks_preserves_shm_only_sidecar_presence (line 3577) | fn test_classify_doctor_checks_preserves_shm_only_sidecar_presence() { function test_classify_doctor_checks_preserves_shm_only_sidecar_presence_without_details (line 3619) | fn test_classify_doctor_checks_preserves_shm_only_sidecar_presence_witho... function test_local_repair_audit_records_applied_actions_and_artifacts (line 3648) | fn test_local_repair_audit_records_applied_actions_and_artifacts() { function test_jsonl_rebuild_audit_records_import_counts (line 3679) | fn test_jsonl_rebuild_audit_records_import_counts() { function test_repeated_jsonl_rebuild_refusal_reason_detects_failed_marker (line 3697) | fn test_repeated_jsonl_rebuild_refusal_reason_detects_failed_marker() ->... function test_write_jsonl_rebuild_verification_failed_marker_records_failed_checks (line 3723) | fn test_write_jsonl_rebuild_verification_failed_marker_records_failed_ch... function test_check_root_gitignore_warns_for_directory_patterns (line 3790) | fn test_check_root_gitignore_warns_for_directory_patterns() { function test_fix_root_gitignore_if_warned_removes_all_offending_patterns (line 3823) | fn test_fix_root_gitignore_if_warned_removes_all_offending_patterns() { function test_repair_outcome_message_combines_gitignore_and_incomplete_reindex (line 3877) | fn test_repair_outcome_message_combines_gitignore_and_incomplete_reindex... function test_check_jsonl_detects_malformed (line 3889) | fn test_check_jsonl_detects_malformed() -> Result<()> { function test_check_jsonl_detects_invalid_issue_records (line 3905) | fn test_check_jsonl_detects_invalid_issue_records() -> Result<()> { function test_check_jsonl_returns_count_only_for_valid_records (line 3932) | fn test_check_jsonl_returns_count_only_for_valid_records() -> Result<()> { function test_collect_doctor_report_skips_count_comparison_for_invalid_jsonl (line 3950) | fn test_collect_doctor_report_skips_count_comparison_for_invalid_jsonl() { function test_required_schema_checks_missing_tables (line 3994) | fn test_required_schema_checks_missing_tables() { function test_collect_doctor_report_reports_missing_metadata_tables_without_aborting (line 4004) | fn test_collect_doctor_report_reports_missing_metadata_tables_without_ab... function test_select_doctor_jsonl_path_keeps_missing_explicit_override (line 4052) | fn test_select_doctor_jsonl_path_keeps_missing_explicit_override() { function test_collect_doctor_report_surfaces_missing_explicit_metadata_jsonl (line 4080) | fn test_collect_doctor_report_surfaces_missing_explicit_metadata_jsonl() { function test_collect_doctor_report_accepts_configured_external_jsonl (line 4118) | fn test_collect_doctor_report_accepts_configured_external_jsonl() { function test_integrity_check_messages_collects_all_rows (line 4166) | fn test_integrity_check_messages_collects_all_rows() { function test_check_recoverable_anomalies_detects_duplicate_config_and_metadata (line 4182) | fn test_check_recoverable_anomalies_detects_duplicate_config_and_metadat... function test_check_recoverable_anomalies_treats_stale_blocked_cache_as_warning (line 4230) | fn test_check_recoverable_anomalies_treats_stale_blocked_cache_as_warnin... function test_check_database_sidecars_warns_on_wal_without_shm (line 4248) | fn test_check_database_sidecars_warns_on_wal_without_shm() -> Result<()> { function test_check_recovery_artifacts_warns_on_preserved_database_family (line 4279) | fn test_check_recovery_artifacts_warns_on_preserved_database_family() ->... function test_repair_recoverable_db_state_quarantines_orphan_shm_sidecar (line 4308) | fn test_repair_recoverable_db_state_quarantines_orphan_shm_sidecar() -> ... function test_repair_recoverable_db_state_skips_repair_for_wal_without_shm_warn (line 4356) | fn test_repair_recoverable_db_state_skips_repair_for_wal_without_shm_war... function test_report_has_blocked_cache_stale_finding_detects_detail_entry (line 4395) | fn test_report_has_blocked_cache_stale_finding_detects_detail_entry() { function test_report_has_blocked_cache_stale_finding_ignores_other_recoverable_errors (line 4417) | fn test_report_has_blocked_cache_stale_finding_ignores_other_recoverable... function test_check_issue_write_probe_succeeds_on_healthy_database (line 4439) | fn test_check_issue_write_probe_succeeds_on_healthy_database() { function test_inspect_existing_doctor_database_uses_snapshot_write_probe (line 4467) | fn test_inspect_existing_doctor_database_uses_snapshot_write_probe() { function test_build_issue_write_probe_check_marks_rollback_failure_as_error (line 4504) | fn test_build_issue_write_probe_check_marks_rollback_failure_as_error() { function test_build_issue_write_probe_check_marks_zero_row_update_as_error (line 4524) | fn test_build_issue_write_probe_check_marks_zero_row_update_as_error() { function test_build_issue_write_probe_check_reports_zero_row_update_before_rollback_failure (line 4544) | fn test_build_issue_write_probe_check_reports_zero_row_update_before_rol... function test_build_issue_write_probe_check_preserves_write_failure (line 4575) | fn test_build_issue_write_probe_check_preserves_write_failure() { function test_repair_database_from_jsonl_restores_original_db_on_import_failure (line 4594) | fn test_repair_database_from_jsonl_restores_original_db_on_import_failur... function test_repair_database_from_jsonl_refuses_conflict_markers_without_backup (line 4683) | fn test_repair_database_from_jsonl_refuses_conflict_markers_without_back... function test_repair_database_from_jsonl_refuses_duplicate_ids_without_backup (line 4737) | fn test_repair_database_from_jsonl_refuses_duplicate_ids_without_backup() { function test_repair_database_from_jsonl_restores_issue_prefix_from_jsonl (line 4789) | fn test_repair_database_from_jsonl_restores_issue_prefix_from_jsonl() { function test_repair_recoverable_db_state_skips_missing_db (line 4863) | fn test_repair_recoverable_db_state_skips_missing_db() { function report_has_warn_level_page_anomaly_matches_orphan_page_warn (line 4887) | fn report_has_warn_level_page_anomaly_matches_orphan_page_warn() { function report_has_warn_level_page_anomaly_ignores_non_page_warns (line 4927) | fn report_has_warn_level_page_anomaly_ignores_non_page_warns() { function report_has_warn_level_page_anomaly_ignores_error_level_findings (line 4959) | fn report_has_warn_level_page_anomaly_ignores_error_level_findings() { function report_has_warn_level_page_anomaly_ignores_non_integrity_checks (line 4978) | fn report_has_warn_level_page_anomaly_ignores_non_integrity_checks() { function warning_repair_verified_requires_repaired_page_warning_to_clear (line 4994) | fn warning_repair_verified_requires_repaired_page_warning_to_clear() { function warning_repair_verified_rejects_page_warning_introduced_by_other_repair (line 5023) | fn warning_repair_verified_rejects_page_warning_introduced_by_other_repa... FILE: src/cli/commands/epic.rs function execute (line 21) | pub fn execute( function execute_status (line 33) | fn execute_status( type CloseEligibleResult (line 85) | struct CloseEligibleResult { function execute_close_eligible (line 90) | fn execute_close_eligible( function load_epic_statuses (line 205) | fn load_epic_statuses(storage: &SqliteStorage) -> Result> { function render_epic_status (line 231) | fn render_epic_status(epic_status: &EpicStatus, use_color: bool) { function render_status_icon (line 253) | fn render_status_icon(eligible: bool, percentage: usize, use_color: bool... function format_epic_id (line 271) | fn format_epic_id(id: &str, use_color: bool) -> String { function format_epic_title (line 280) | fn format_epic_title(title: &str, use_color: bool) -> String { function render_epic_status_list_rich (line 294) | fn render_epic_status_list_rich(epics: &[EpicStatus], ctx: &OutputContex... function render_progress_bar (line 352) | fn render_progress_bar( function completion_percentage (line 376) | fn completion_percentage(closed: usize, total: usize) -> usize { function completion_bar_filled_width (line 386) | fn completion_bar_filled_width(closed: usize, total: usize, bar_width: u... function render_empty_epics_rich (line 398) | fn render_empty_epics_rich(ctx: &OutputContext) { function render_no_eligible_rich (line 415) | fn render_no_eligible_rich(ctx: &OutputContext) { function render_dry_run_rich (line 432) | fn render_dry_run_rich(epics: &[EpicStatus], ctx: &OutputContext) { function render_close_result_rich (line 470) | fn render_close_result_rich(closed_ids: &[String], ctx: &OutputContext) { function base_issue (line 513) | fn base_issue(id: &str, title: &str, issue_type: IssueType, status: Stat... function find_epic (line 557) | fn find_epic<'a>(epics: &'a [EpicStatus], id: &str) -> Option<&'a EpicSt... function epic_status_tracks_children_and_eligibility (line 562) | fn epic_status_tracks_children_and_eligibility() { function epic_status_childless_epic_not_eligible (line 612) | fn epic_status_childless_epic_not_eligible() { function epic_status_includes_deferred_epics (line 625) | fn epic_status_includes_deferred_epics() { function epic_display_fields_sanitize_terminal_controls (line 643) | fn epic_display_fields_sanitize_terminal_controls() { function epic_completion_helpers_handle_zero_and_inconsistent_counts (line 656) | fn epic_completion_helpers_handle_zero_and_inconsistent_counts() { function epic_progress_bar_clamps_inconsistent_closed_counts (line 669) | fn epic_progress_bar_clamps_inconsistent_closed_counts() { FILE: src/cli/commands/graph.rs type GraphNode (line 28) | struct GraphNode { type SingleGraphOutput (line 38) | struct SingleGraphOutput { type ConnectedComponent (line 47) | struct ConnectedComponent { type AllGraphOutput (line 55) | struct AllGraphOutput { type SingleGraphTraversal (line 62) | struct SingleGraphTraversal { type HumanGraphRenderMode (line 69) | enum HumanGraphRenderMode { function execute (line 80) | pub fn execute(args: &GraphArgs, cli: &config::CliOverrides, ctx: &Outpu... function routed_cli_for_graph (line 87) | fn routed_cli_for_graph( function open_storage_for_graph (line 102) | fn open_storage_for_graph( function execute_with_storage_ctx (line 132) | pub fn execute_with_storage_ctx( function execute_graph_with_storage_ctx (line 161) | fn execute_graph_with_storage_ctx( function graph_single (line 183) | fn graph_single( function graph_all (line 255) | fn graph_all(storage: &SqliteStorage, compact: bool, ctx: &OutputContext... function calculate_depths (line 490) | fn calculate_depths( function dependency_edges_for_component (line 506) | fn dependency_edges_for_component( function collect_single_graph (line 530) | fn collect_single_graph( function build_graph_nodes (line 616) | fn build_graph_nodes( function sort_single_graph_nodes (line 638) | fn sort_single_graph_nodes(nodes: &mut [GraphNode], root_id: &str) { function calculate_depths_from_dependency_edges (line 647) | fn calculate_depths_from_dependency_edges( function build_dependency_map (line 734) | fn build_dependency_map( function strongly_connected_components (line 759) | fn strongly_connected_components( function build_reverse_map (line 804) | fn build_reverse_map( function dfs_finish_order (line 831) | fn dfs_finish_order( function build_parent_map (line 860) | fn build_parent_map(edges: &[(String, String)]) -> HashMap String { function format_id_iter (line 882) | fn format_id_iter<'a>(ids: impl IntoIterator) -> String { function format_id_list (line 893) | fn format_id_list(ids: &[String]) -> String { function format_parent_list (line 897) | fn format_parent_list(parents: Option<&[String]>) -> String { function format_compact_dependency_edges (line 906) | fn format_compact_dependency_edges(root_id: &str, edges: &[(String, Stri... function human_graph_render_mode (line 957) | const fn human_graph_render_mode(mode: OutputMode, compact: bool) -> Hum... function render_single_graph_plain (line 967) | fn render_single_graph_plain(nodes: &[GraphNode], edges: &[(String, Stri... function render_single_graph_rich (line 1003) | fn render_single_graph_rich( function render_no_dependents_rich (line 1089) | fn render_no_dependents_rich(root_id: &str, root_issue: &Issue, ctx: &Ou... function render_all_graph_rich (line 1112) | fn render_all_graph_rich( function render_no_issues_rich (line 1209) | fn render_no_issues_rich(ctx: &OutputContext) { function priority_style (line 1229) | fn priority_style(priority: i32, theme: &crate::output::Theme) -> Style { function status_style (line 1240) | fn status_style(status: &str, theme: &crate::output::Theme) -> Style { function test_graph_node_serialization (line 1256) | fn test_graph_node_serialization() { function test_single_graph_output_serialization (line 1271) | fn test_single_graph_output_serialization() { function graph_human_id_helpers_escape_terminal_controls (line 1300) | fn graph_human_id_helpers_escape_terminal_controls() { function test_connected_component_serialization (line 1322) | fn test_connected_component_serialization() { function test_all_graph_output_serialization (line 1344) | fn test_all_graph_output_serialization() { function test_all_graph_output_empty (line 1377) | fn test_all_graph_output_empty() { function test_graph_node_all_fields_present (line 1391) | fn test_graph_node_all_fields_present() { function test_graph_node_deserialize (line 1412) | fn test_graph_node_deserialize() { function test_connected_component_with_multiple_roots (line 1428) | fn test_connected_component_with_multiple_roots() { function test_connected_component_empty (line 1473) | fn test_connected_component_empty() { function test_single_graph_output_with_complex_edges (line 1487) | fn test_single_graph_output_with_complex_edges() { function test_graph_node_priority_boundaries (line 1538) | fn test_graph_node_priority_boundaries() { function test_all_graph_output_multiple_components (line 1563) | fn test_all_graph_output_multiple_components() { function test_graph_node_all_status_values (line 1611) | fn test_graph_node_all_status_values() { function test_calculate_depths_cycle_has_no_roots (line 1636) | fn test_calculate_depths_cycle_has_no_roots() { function test_graph_all_cycle_robustness (line 1684) | fn test_graph_all_cycle_robustness() { function test_collect_single_graph_preserves_missing_dependent_placeholder (line 1747) | fn test_collect_single_graph_preserves_missing_dependent_placeholder() { function test_collect_single_graph_uses_first_visit_dfs_order (line 1792) | fn test_collect_single_graph_uses_first_visit_dfs_order() { function test_calculate_depths_from_dependency_edges_uses_longest_path (line 1846) | fn test_calculate_depths_from_dependency_edges_uses_longest_path() { function test_calculate_depths_from_dependency_edges_collapses_reachable_cycle (line 1873) | fn test_calculate_depths_from_dependency_edges_collapses_reachable_cycle... function test_calculate_depths_from_dependency_edges_tolerates_external_edge_endpoint (line 1890) | fn test_calculate_depths_from_dependency_edges_tolerates_external_edge_e... function test_format_compact_dependency_edges_preserves_branching (line 1908) | fn test_format_compact_dependency_edges_preserves_branching() { function test_human_graph_render_mode_prefers_compact_over_rich (line 1921) | fn test_human_graph_render_mode_prefers_compact_over_rich() { function test_sort_single_graph_nodes_keeps_root_first_without_reordering_subtrees (line 1941) | fn test_sort_single_graph_nodes_keeps_root_first_without_reordering_subt... FILE: src/cli/commands/history.rs type DiffStatusResult (line 17) | type DiffStatusResult = (&'static str, bool, Option<(u64, u64)>); type TextDiffFallbackReason (line 20) | enum TextDiffFallbackReason { method message (line 26) | const fn message(self) -> &'static str { type TextDiffFallback (line 35) | struct TextDiffFallback { type HistoryFileDiff (line 42) | enum HistoryFileDiff { type TempRestoreGuard (line 47) | struct TempRestoreGuard { method new (line 53) | fn new(path: PathBuf) -> Self { method persist (line 60) | fn persist(&mut self) { method drop (line 66) | fn drop(&mut self) { constant MAX_RESTORE_ROLLBACK_PATH_ATTEMPTS (line 73) | const MAX_RESTORE_ROLLBACK_PATH_ATTEMPTS: u64 = 1024; constant MAX_HISTORY_TEXT_DIFF_BYTES (line 74) | const MAX_HISTORY_TEXT_DIFF_BYTES: u64 = 8 * 1024 * 1024; constant DIFF_COMPARE_BUFFER_SIZE (line 75) | const DIFF_COMPARE_BUFFER_SIZE: usize = 16 * 1024; constant RESTORE_NOTE_DB_UNCHANGED (line 76) | const RESTORE_NOTE_DB_UNCHANGED: &str = "SQLite is unchanged until you r... constant RESTORE_NOTE_TOMBSTONE_PROTECTION (line 77) | const RESTORE_NOTE_TOMBSTONE_PROTECTION: &str = function history_display_text (line 80) | fn history_display_text(value: &str) -> String { function history_display_path (line 84) | fn history_display_path(path: &Path) -> String { function history_display_filename (line 88) | fn history_display_filename(path: &Path) -> String { function create_restore_rollback_snapshot (line 97) | fn create_restore_rollback_snapshot( function commit_restored_target_with_rollback (line 132) | fn commit_restored_target_with_rollback( function emit_restore_output (line 175) | fn emit_restore_output( function ensure_regular_backup_file (line 243) | fn ensure_regular_backup_file(backup_path: &Path, backup_name: &str) -> ... function execute (line 274) | pub fn execute(args: HistoryArgs, cli: &config::CliOverrides, ctx: &Outp... function list_backups (line 309) | fn list_backups(history_dir: &Path, ctx: &OutputContext) -> Result<()> { function history_backup_list_payload (line 390) | fn history_backup_list_payload( function diff_backup (line 421) | fn diff_backup( function restore_backup (line 522) | fn restore_backup( function prune_backups (line 596) | fn prune_backups( function diff_status_for_json (line 651) | fn diff_status_for_json(current_path: &Path, backup_path: &Path) -> Resu... type DiffFileSummary (line 665) | struct DiffFileSummary { function summarize_diff_files (line 673) | fn summarize_diff_files(current_path: &Path, backup_path: &Path) -> Resu... function history_diff_for_files (line 703) | fn history_diff_for_files(current_path: &Path, backup_path: &Path) -> Re... function unified_diff_for_files (line 717) | fn unified_diff_for_files(current_path: &Path, backup_path: &Path) -> Re... function emit_diff_fallback (line 730) | fn emit_diff_fallback(ctx: &OutputContext, fallback: TextDiffFallback) { function file_is_utf8 (line 750) | fn file_is_utf8(path: &Path) -> Result { function files_are_byte_identical (line 755) | fn files_are_byte_identical( function current_jsonl_path_for_backup (line 785) | fn current_jsonl_path_for_backup( function current_jsonl_path_for_backup_with_cwd (line 794) | fn current_jsonl_path_for_backup_with_cwd( function is_external_jsonl_target (line 832) | fn is_external_jsonl_target(beads_dir: &Path, target_path: &Path) -> bool { function is_default_jsonl_target (line 838) | fn is_default_jsonl_target(beads_dir: &Path, target_path: &Path) -> bool { function shell_quote (line 850) | fn shell_quote(value: &str) -> String { function restore_next_step (line 854) | fn restore_next_step(beads_dir: &Path, target_path: &Path) -> String { function normalize_jsonl_match_path (line 872) | fn normalize_jsonl_match_path(path: &Path, cwd: Option<&Path>) -> PathBuf { function validated_backup_filename (line 882) | fn validated_backup_filename(filename: &str) -> Result { function format_size (line 901) | fn format_size(bytes: u64) -> String { function history_display_text_sanitizes_terminal_controls (line 922) | fn history_display_text_sanitizes_terminal_controls() { function validated_backup_filename_errors_escape_terminal_controls (line 935) | fn validated_backup_filename_errors_escape_terminal_controls() { function unified_diff_for_files_escapes_terminal_controls (line 949) | fn unified_diff_for_files_escapes_terminal_controls() { function test_current_jsonl_path_for_backup_rejects_missing_target_metadata (line 970) | fn test_current_jsonl_path_for_backup_rejects_missing_target_metadata() { function test_current_jsonl_path_for_backup_rejects_invalid_name (line 997) | fn test_current_jsonl_path_for_backup_rejects_invalid_name() { function test_current_jsonl_path_for_backup_rejects_path_traversal (line 1012) | fn test_current_jsonl_path_for_backup_rejects_path_traversal() { function test_unified_diff_for_files_reports_differences (line 1028) | fn test_unified_diff_for_files_reports_differences() { function test_unified_diff_for_files_returns_empty_for_identical_files (line 1049) | fn test_unified_diff_for_files_returns_empty_for_identical_files() { function test_diff_status_for_json_falls_back_for_invalid_utf8 (line 1065) | fn test_diff_status_for_json_falls_back_for_invalid_utf8() { function test_history_diff_for_files_reports_identical_non_utf8_without_text_diff (line 1080) | fn test_history_diff_for_files_reports_identical_non_utf8_without_text_d... function test_diff_status_for_json_falls_back_for_large_inputs (line 1102) | fn test_diff_status_for_json_falls_back_for_large_inputs() { function test_restore_backup_uses_metadata_target_path (line 1120) | fn test_restore_backup_uses_metadata_target_path() { function test_current_jsonl_path_for_backup_reads_target_metadata (line 1159) | fn test_current_jsonl_path_for_backup_reads_target_metadata() { function test_current_jsonl_path_for_backup_accepts_relative_external_active_path_when_missing (line 1196) | fn test_current_jsonl_path_for_backup_accepts_relative_external_active_p... function test_restore_next_step_uses_default_import_for_internal_targets (line 1239) | fn test_restore_next_step_uses_default_import_for_internal_targets() { function test_restore_next_step_sets_jsonl_path_for_internal_custom_targets (line 1251) | fn test_restore_next_step_sets_jsonl_path_for_internal_custom_targets() { function test_restore_next_step_requires_external_flag_for_external_targets (line 1266) | fn test_restore_next_step_requires_external_flag_for_external_targets() { function test_shell_quote_escapes_single_quotes (line 1281) | fn test_shell_quote_escapes_single_quotes() { function test_restore_backup_recreates_missing_target_parent_directories (line 1289) | fn test_restore_backup_recreates_missing_target_parent_directories() { function test_restore_backup_cleans_temp_file_when_rename_fails (line 1329) | fn test_restore_backup_cleans_temp_file_when_rename_fails() { function test_commit_restored_target_restores_original_file_when_replace_fails (line 1375) | fn test_commit_restored_target_restores_original_file_when_replace_fails... function test_current_jsonl_path_for_backup_rejects_tampered_absolute_metadata (line 1423) | fn test_current_jsonl_path_for_backup_rejects_tampered_absolute_metadata... function test_diff_backup_reports_missing_current_stem_file (line 1465) | fn test_diff_backup_reports_missing_current_stem_file() { function test_restore_backup_rejects_symlinked_backup_file (line 1506) | fn test_restore_backup_rejects_symlinked_backup_file() { function commit_restored_target_replaces_existing_atomically (line 1534) | fn commit_restored_target_replaces_existing_atomically() { function commit_restored_target_rollback_on_rename_failure (line 1554) | fn commit_restored_target_rollback_on_rename_failure() { FILE: src/cli/commands/info.rs type SchemaInfo (line 18) | struct SchemaInfo { type InfoOutput (line 30) | struct InfoOutput { type InfoSnapshot (line 56) | struct InfoSnapshot { function execute (line 68) | pub fn execute(args: &InfoArgs, cli: &config::CliOverrides, ctx: &Output... function collect_info_output (line 105) | fn collect_info_output(args: &InfoArgs, cli: &config::CliOverrides) -> R... function load_info_snapshot_without_recovery (line 146) | fn load_info_snapshot_without_recovery( function query_issue_count (line 189) | fn query_issue_count(conn: &Connection) -> Option { function load_config_map (line 196) | fn load_config_map(conn: &Connection) -> Option> { function build_schema_info (line 213) | fn build_schema_info( function detect_prefix (line 242) | fn detect_prefix( function actual_table_names (line 261) | fn actual_table_names(conn: &Connection) -> Vec { function actual_schema_version (line 280) | fn actual_schema_version(conn: &Connection) -> String { function print_human (line 287) | fn print_human(info: &InfoOutput) { function print_message (line 340) | fn print_message(ctx: &OutputContext, message: &str, key: &str) -> Resul... function render_info_rich (line 361) | fn render_info_rich(info: &InfoOutput, ctx: &OutputContext) { function format_bytes (line 465) | fn format_bytes(bytes: u64) -> String { function canonicalize_lossy (line 481) | fn canonicalize_lossy(path: &Path) -> PathBuf { function info_display_text (line 485) | fn info_display_text(value: &str) -> String { function info_display_list (line 489) | fn info_display_list<'a>(values: impl IntoIterator) -> S... type DirGuard (line 510) | struct DirGuard { method new (line 515) | fn new(target: &Path) -> Self { method drop (line 523) | fn drop(&mut self) { function test_format_bytes_small (line 529) | fn test_format_bytes_small() { function test_format_bytes_kb (line 535) | fn test_format_bytes_kb() { function test_format_bytes_mb (line 541) | fn test_format_bytes_mb() { function test_format_bytes_gb (line 547) | fn test_format_bytes_gb() { function info_display_helpers_sanitize_terminal_controls (line 552) | fn info_display_helpers_sanitize_terminal_controls() { function test_collect_info_output_does_not_create_missing_db (line 569) | fn test_collect_info_output_does_not_create_missing_db() { function test_collect_info_output_reads_existing_db_without_recovery (line 598) | fn test_collect_info_output_reads_existing_db_without_recovery() { function test_collect_info_output_reports_actual_schema_snapshot (line 681) | fn test_collect_info_output_reports_actual_schema_snapshot() { function test_collect_info_output_prefers_startup_issue_prefix_over_db_config (line 719) | fn test_collect_info_output_prefers_startup_issue_prefix_over_db_config() { function test_collect_info_output_detects_prefix_without_schema_flag (line 754) | fn test_collect_info_output_detects_prefix_without_schema_flag() { function test_collect_info_output_uses_jsonl_prefix_when_db_is_missing (line 796) | fn test_collect_info_output_uses_jsonl_prefix_when_db_is_missing() { function test_collect_info_output_accepts_startup_prefix_alias (line 825) | fn test_collect_info_output_accepts_startup_prefix_alias() { function test_collect_info_output_accepts_db_prefix_alias (line 847) | fn test_collect_info_output_accepts_db_prefix_alias() { FILE: src/cli/commands/init.rs function resolve_init_beads_dir (line 12) | fn resolve_init_beads_dir(base_dir: &Path) -> PathBuf { function execute (line 28) | pub fn execute( type InitStepStatus (line 191) | enum InitStepStatus { type InitStep (line 197) | struct InitStep { function build_init_steps (line 203) | fn build_init_steps( function render_init_rich (line 282) | fn render_init_rich( function append_step (line 333) | fn append_step(content: &mut Text, step: &InitStep, theme: &crate::outpu... function init_logging (line 350) | fn init_logging() { function test_init_creates_beads_directory (line 355) | fn test_init_creates_beads_directory() { function test_init_with_prefix (line 373) | fn test_init_with_prefix() { function test_init_fails_if_already_initialized (line 391) | fn test_init_fails_if_already_initialized() { function test_init_force_overwrites_existing (line 413) | fn test_init_force_overwrites_existing() { function test_metadata_json_content (line 447) | fn test_metadata_json_content() { function test_gitignore_excludes_db_files (line 464) | fn test_gitignore_excludes_db_files() { FILE: src/cli/commands/label.rs function execute (line 29) | pub fn execute( function execute_with_storage (line 61) | pub fn execute_with_storage( type LabelActionResult (line 85) | struct LabelActionResult { type PreparedLabelRoute (line 91) | struct PreparedLabelRoute { type LabelCount (line 102) | struct LabelCount { type RenameResult (line 109) | struct RenameResult { function validate_label (line 118) | fn validate_label(label: &str) -> Result<()> { function label_display_text (line 122) | fn label_display_text(value: &str) -> String { function format_label_action_plain_line (line 126) | fn format_label_action_plain_line(result: &LabelActionResult, action: &s... function format_rename_noop_plain_line (line 142) | fn format_rename_noop_plain_line(label: &str) -> String { function format_rename_not_found_plain_line (line 149) | fn format_rename_not_found_plain_line(label: &str) -> String { function format_rename_result_plain_line (line 156) | fn format_rename_result_plain_line(old_name: &str, new_name: &str, count... function parse_issues_and_label (line 169) | fn parse_issues_and_label( function execute_routed_label_add (line 202) | fn execute_routed_label_add( function label_add (line 231) | fn label_add( function execute_routed_label_remove (line 279) | fn execute_routed_label_remove( function label_remove (line 307) | fn label_remove( function execute_label_list_command (line 351) | fn execute_label_list_command( function prepare_label_routes (line 381) | fn prepare_label_routes( function routed_cli_for_batch (line 420) | fn routed_cli_for_batch(cli: &config::CliOverrides, is_external: bool) -... function render_label_action_results (line 428) | fn render_label_action_results( function label_list (line 449) | fn label_list( function label_list_unique (line 484) | fn label_list_unique(storage: &SqliteStorage, ctx: &OutputContext) -> Re... function label_list_all (line 509) | fn label_list_all(storage: &SqliteStorage, _json: bool, ctx: &OutputCont... function label_rename (line 545) | fn label_rename( function reorder_routed_items_by_requested_inputs (line 643) | fn reorder_routed_items_by_requested_inputs( function label_color (line 709) | fn label_color(label: &str) -> Color { function render_label_action_results_rich (line 733) | fn render_label_action_results_rich( function render_labels_for_issue_rich (line 775) | fn render_labels_for_issue_rich(issue_id: &str, labels: &[String], ctx: ... function render_unique_labels_rich (line 808) | fn render_unique_labels_rich(labels: &[String], ctx: &OutputContext) { function render_label_counts_rich (line 838) | fn render_label_counts_rich(label_counts: &[LabelCount], ctx: &OutputCon... function render_rename_not_found_rich (line 891) | fn render_rename_not_found_rich(old_name: &str, ctx: &OutputContext) { function render_rename_noop_rich (line 908) | fn render_rename_noop_rich(label: &str, ctx: &OutputContext) { function render_rename_result_rich (line 928) | fn render_rename_result_rich(old_name: &str, new_name: &str, count: usiz... function label_display_text_sanitizes_terminal_controls (line 957) | fn label_display_text_sanitizes_terminal_controls() { function label_plain_output_helpers_escape_terminal_controls (line 970) | fn label_plain_output_helpers_escape_terminal_controls() { function test_validate_label_valid (line 990) | fn test_validate_label_valid() { function test_validate_label_invalid (line 1000) | fn test_validate_label_invalid() { function test_validate_label_namespaced_allows_provides (line 1009) | fn test_validate_label_namespaced_allows_provides() { function test_parse_issues_and_label_with_flag (line 1015) | fn test_parse_issues_and_label_with_flag() { function test_parse_issues_and_label_positional (line 1026) | fn test_parse_issues_and_label_positional() { function test_parse_issues_and_label_single_issue (line 1040) | fn test_parse_issues_and_label_single_issue() { function test_parse_issues_and_label_missing_label (line 1050) | fn test_parse_issues_and_label_missing_label() { function test_parse_issues_and_label_no_issues_with_flag (line 1059) | fn test_parse_issues_and_label_no_issues_with_flag() { FILE: src/cli/commands/lint.rs type LintResult (line 22) | struct LintResult { type LintSuggestion (line 35) | struct LintSuggestion { type LintOutput (line 41) | struct LintOutput { type LintSummary (line 48) | struct LintSummary { method exit_code (line 55) | const fn exit_code(&self, structured: bool) -> i32 { type RequiredSection (line 65) | struct RequiredSection { constant BUG_SECTIONS (line 70) | const BUG_SECTIONS: [RequiredSection; 2] = [ constant TASK_SECTIONS (line 81) | const TASK_SECTIONS: [RequiredSection; 1] = [RequiredSection { constant EPIC_SECTIONS (line 86) | const EPIC_SECTIONS: [RequiredSection; 1] = [RequiredSection { function execute (line 96) | pub fn execute( function render_lint_rich (line 175) | fn render_lint_rich(summary: &LintSummary, ctx: &OutputContext) { function issue_type_style (line 257) | fn issue_type_style(theme: &crate::output::Theme, issue_type: &str) -> S... function build_filters (line 270) | fn build_filters(args: &LintArgs) -> Result { function resolve_issues (line 304) | fn resolve_issues( function fetch_issues_in_resolved_order (line 347) | fn fetch_issues_in_resolved_order( function routed_cli_for_batch (line 368) | fn routed_cli_for_batch(cli: &config::CliOverrides, is_external: bool) -... function lint_issues (line 376) | fn lint_issues(issues: &[Issue]) -> LintSummary { function lint_issue (line 394) | fn lint_issue(issue: &Issue) -> Option { function required_sections (line 428) | const fn required_sections(issue_type: &IssueType) -> &'static [Required... function missing_sections (line 437) | fn missing_sections(description: &str, required: &[RequiredSection]) -> ... function strip_heading_prefix (line 452) | fn strip_heading_prefix(heading: &str) -> &str { function make_issue (line 466) | fn make_issue(issue_type: IssueType, description: Option<&str>) -> Issue { function test_missing_sections_for_bug (line 511) | fn test_missing_sections_for_bug() { function test_required_sections_present_case_insensitive (line 536) | fn test_required_sections_present_case_insensitive() { function fetch_issues_in_resolved_order_preserves_duplicate_ids (line 543) | fn fetch_issues_in_resolved_order_preserves_duplicate_ids() { function test_exit_code_behavior (line 561) | fn test_exit_code_behavior() { FILE: src/cli/commands/list.rs function execute (line 27) | pub fn execute( function execute_with_storage (line 44) | pub fn execute_with_storage( function execute_inner (line 54) | fn execute_inner( function build_filters (line 312) | fn build_filters(args: &ListArgs) -> Result { function validate_list_args (line 393) | pub(crate) fn validate_list_args(args: &ListArgs) -> Result<()> { function needs_client_filters (line 400) | fn needs_client_filters(args: &ListArgs) -> bool { function should_use_full_relation_scan (line 410) | fn should_use_full_relation_scan( function apply_client_filters (line 429) | fn apply_client_filters( function render_long_text_issues (line 504) | fn render_long_text_issues( function render_pretty_text_issues (line 517) | fn render_pretty_text_issues( function validate_sort_key (line 535) | fn validate_sort_key(sort: Option<&str>) -> Result<()> { function validate_priority_bounds (line 549) | fn validate_priority_bounds(priority_min: Option, priority_max: Opti... function init_logging (line 577) | fn init_logging() { function test_build_filters_includes_closed_for_terminal_status (line 582) | fn test_build_filters_includes_closed_for_terminal_status() { function test_build_filters_parses_priorities (line 603) | fn test_build_filters_parses_priorities() { function test_needs_client_filters_detects_fields (line 619) | fn test_needs_client_filters_detects_fields() { function issue_with_id (line 646) | fn issue_with_id(id: &str, title: &str) -> Issue { function test_apply_client_filters_honors_id_priority_and_text_filters (line 655) | fn test_apply_client_filters_honors_id_priority_and_text_filters() { function test_apply_client_filters_excludes_deferred_from_overdue_unless_requested (line 688) | fn test_apply_client_filters_excludes_deferred_from_overdue_unless_reque... function test_validate_list_args_rejects_invalid_sort (line 739) | fn test_validate_list_args_rejects_invalid_sort() { function test_full_relation_scan_covers_unbounded_default_json_list (line 751) | fn test_full_relation_scan_covers_unbounded_default_json_list() { function test_validate_list_args_rejects_invalid_priority_bounds (line 786) | fn test_validate_list_args_rejects_invalid_priority_bounds() { FILE: src/cli/commands/mod.rs function report_auto_flush_failure (line 57) | pub fn report_auto_flush_failure( function resolve_issue_id (line 107) | pub(super) fn resolve_issue_id( function resolve_issue_ids (line 121) | pub(super) fn resolve_issue_ids( function rebuild_blocked_cache_after_partial_mutation (line 135) | pub(super) fn rebuild_blocked_cache_after_partial_mutation( function preserve_blocked_cache_on_error (line 172) | pub(super) fn preserve_blocked_cache_on_error( function finalize_batched_blocked_cache_refresh (line 196) | pub(super) fn finalize_batched_blocked_cache_refresh( function update_issue_with_recovery (line 253) | pub(super) fn update_issue_with_recovery( function should_attempt_mutation_jsonl_recovery (line 270) | fn should_attempt_mutation_jsonl_recovery( function auto_import_storage_ctx_if_stale (line 280) | pub(super) fn auto_import_storage_ctx_if_stale( type RoutedWorkspaceWriteLock (line 320) | pub(super) struct RoutedWorkspaceWriteLock { method local (line 326) | pub(super) const fn local() -> Self { function acquire_routed_workspace_write_lock (line 331) | pub(super) fn acquire_routed_workspace_write_lock( function retry_mutation_with_jsonl_recovery (line 344) | pub(super) fn retry_mutation_with_jsonl_recovery( function storage_ctx_with_exported_issue (line 441) | fn storage_ctx_with_exported_issue() -> (TempDir, OpenStorageResult) { function routed_workspace_write_lock_respects_external_timeout (line 475) | fn routed_workspace_write_lock_respects_external_timeout() -> std::resul... function partial_mutation_rebuild_skips_clean_state (line 494) | fn partial_mutation_rebuild_skips_clean_state() { function preserve_returns_original_error_when_cache_is_marked_stale (line 503) | fn preserve_returns_original_error_when_cache_is_marked_stale() { function preserve_surfaces_rebuild_failure_when_stale_marker_write_also_fails (line 515) | fn preserve_surfaces_rebuild_failure_when_stale_marker_write_also_fails() { function finalize_batched_refresh_rebuilds_when_cache_table_is_missing (line 546) | fn finalize_batched_refresh_rebuilds_when_cache_table_is_missing() { function finalize_batched_refresh_clears_preexisting_stale_marker (line 574) | fn finalize_batched_refresh_clears_preexisting_stale_marker() { function retry_mutation_recovers_from_recoverable_database_error (line 592) | fn retry_mutation_recovers_from_recoverable_database_error() { function mutation_recovery_can_be_signaled_by_probe_after_constraint_style_error (line 626) | fn mutation_recovery_can_be_signaled_by_probe_after_constraint_style_err... FILE: src/cli/commands/orphans.rs type OrphanIssue (line 27) | pub struct OrphanIssue { type OrphanRenderMode (line 36) | enum OrphanRenderMode { function resolve_render_mode (line 44) | const fn resolve_render_mode(json: bool, output_mode: OutputMode) -> Orp... function orphan_display_text (line 54) | fn orphan_display_text(value: &str) -> String { function validate_fix_render_mode (line 58) | fn validate_fix_render_mode(args: &OrphansArgs, render_mode: OrphanRende... function execute (line 84) | pub fn execute( function execute_with_storage_ctx (line 104) | pub fn execute_with_storage_ctx( function execute_inner (line 116) | fn execute_inner( function auto_import_owned_storage_ctx_if_stale (line 329) | fn auto_import_owned_storage_ctx_if_stale( function git_repo_root_for_path (line 336) | fn git_repo_root_for_path(path: &Path) -> Option { function get_git_commit_refs (line 360) | fn get_git_commit_refs(prefix: &str, repo_root: &Path) -> Result(reader: R, prefix: &str) -> Result Vec { function push_unique_label (line 27) | fn push_unique_label(labels: &mut Vec, label: &str) { function invalid_label_warning (line 33) | fn invalid_label_warning(label: &str, reason: &str) -> String { function execute (line 47) | pub fn execute(args: QuickArgs, cli: &config::CliOverrides, ctx: &Output... function render_quick_created_rich (line 241) | fn render_quick_created_rich(id: &str, title: &str, ctx: &OutputContext) { function push_unique_label_deduplicates_repeated_values (line 268) | fn push_unique_label_deduplicates_repeated_values() { function invalid_label_warning_sanitizes_terminal_controls (line 278) | fn invalid_label_warning_sanitizes_terminal_controls() { FILE: src/cli/commands/query.rs constant QUERY_KEY_PREFIX (line 16) | const QUERY_KEY_PREFIX: &str = "saved_query:"; type SavedQuery (line 20) | pub struct SavedQuery { type SavedFilters (line 36) | pub struct SavedFilters { method from (line 84) | fn from(args: &ListArgs) -> Self { method to_list_args (line 112) | pub fn to_list_args(&self) -> ListArgs { method merge_with_cli (line 146) | pub fn merge_with_cli(&self, cli: &ListArgs) -> ListArgs { function is_false (line 79) | const fn is_false(b: &bool) -> bool { type QueryListOutput (line 216) | struct QueryListOutput { type QueryListItem (line 223) | struct QueryListItem { type QueryActionOutput (line 233) | struct QueryActionOutput { function execute (line 244) | pub fn execute( function ensure_query_storage_available (line 261) | fn ensure_query_storage_available(storage_ctx: &config::OpenStorageResul... function query_save (line 272) | fn query_save( function query_run (line 344) | fn query_run( function query_list (line 373) | fn query_list(storage: &crate::storage::SqliteStorage, ctx: &OutputConte... function query_delete (line 430) | fn query_delete( function query_display_text (line 480) | fn query_display_text(value: &str) -> String { function format_query_saved_line (line 484) | fn format_query_saved_line(name: &str) -> String { function format_query_deleted_line (line 488) | fn format_query_deleted_line(name: &str) -> String { function format_query_not_found_message (line 492) | fn format_query_not_found_message(name: &str) -> String { function format_query_list_plain_entry (line 496) | fn format_query_list_plain_entry(query: &QueryListItem) -> String { function render_query_save_rich (line 505) | fn render_query_save_rich(name: &str, description: Option<&str>, ctx: &O... function render_query_list_rich (line 529) | fn render_query_list_rich(queries: &[QueryListItem], ctx: &OutputContext) { function render_query_delete_rich (line 587) | fn render_query_delete_rich(name: &str, ctx: &OutputContext) { function test_saved_filters_from_list_args (line 612) | fn test_saved_filters_from_list_args() { function test_saved_filters_to_list_args (line 629) | fn test_saved_filters_to_list_args() { function test_merge_cli_overrides_saved (line 644) | fn test_merge_cli_overrides_saved() { function test_merge_empty_cli_keeps_saved (line 666) | fn test_merge_empty_cli_keeps_saved() { function test_saved_query_serialization (line 683) | fn test_saved_query_serialization() { function query_human_output_helpers_escape_terminal_controls (line 705) | fn query_human_output_helpers_escape_terminal_controls() { function test_saved_filters_default (line 736) | fn test_saved_filters_default() { function test_is_false_helper (line 760) | fn test_is_false_helper() { function test_merge_boolean_fields_cli_true_wins (line 766) | fn test_merge_boolean_fields_cli_true_wins() { function test_merge_boolean_fields_saved_true_preserved (line 794) | fn test_merge_boolean_fields_saved_true_preserved() { function test_merge_assignee_override_clears_saved_unassigned (line 823) | fn test_merge_assignee_override_clears_saved_unassigned() { function test_merge_unassigned_override_clears_saved_assignee (line 840) | fn test_merge_unassigned_override_clears_saved_assignee() { function test_merge_all_vec_fields (line 857) | fn test_merge_all_vec_fields() { function test_merge_option_fields (line 898) | fn test_merge_option_fields() { function test_saved_query_without_description (line 947) | fn test_saved_query_without_description() { function test_saved_filters_serialization_skips_defaults (line 965) | fn test_saved_filters_serialization_skips_defaults() { function test_saved_filters_roundtrip_all_fields (line 982) | fn test_saved_filters_roundtrip_all_fields() { function test_to_list_args_preserves_output_defaults (line 1030) | fn test_to_list_args_preserves_output_defaults() { function test_from_list_args_ignores_output_fields (line 1046) | fn test_from_list_args_ignores_output_fields() { function test_query_save_rejects_invalid_filters_without_persisting (line 1064) | fn test_query_save_rejects_invalid_filters_without_persisting() { FILE: src/cli/commands/ready.rs function execute (line 31) | pub fn execute( function execute_with_storage (line 46) | pub fn execute_with_storage( function execute_with_storage_ctx (line 61) | pub fn execute_with_storage_ctx( function execute_inner (line 72) | fn execute_inner( function empty_ready_message (line 252) | fn empty_ready_message(storage: &SqliteStorage) -> Result<&'static str> { function format_ready_line (line 261) | fn format_ready_line( function parse_types (line 296) | fn parse_types(types: &[String]) -> Result>> { function parse_priorities (line 310) | fn parse_priorities(priorities: &[String]) -> Result( function reopen_reason_suffix (line 400) | fn reopen_reason_suffix(reason: &str) -> String { function reopen_issue_id_text (line 404) | fn reopen_issue_id_text(id: &str) -> String { function render_reopen_rich (line 409) | fn render_reopen_rich( function make_closed_deferred_issue (line 481) | fn make_closed_deferred_issue(id: &str, title: &str) -> Issue { function execute_clears_defer_until_when_reopening_closed_deferred_issue (line 498) | fn execute_clears_defer_until_when_reopening_closed_deferred_issue() { function execute_reopen_tombstone_skips_without_resurrecting_it (line 540) | fn execute_reopen_tombstone_skips_without_resurrecting_it() { function reopen_reason_suffix_sanitizes_terminal_controls (line 596) | fn reopen_reason_suffix_sanitizes_terminal_controls() { function reopen_issue_id_text_sanitizes_terminal_controls (line 611) | fn reopen_issue_id_text_sanitizes_terminal_controls() { function reorder_routed_items_sanitizes_missing_input_error (line 624) | fn reorder_routed_items_sanitizes_missing_input_error() { function reorder_routed_items_sanitizes_unexpected_input_error (line 644) | fn reorder_routed_items_sanitizes_unexpected_input_error() { FILE: src/cli/commands/schema.rs type ErrorEnvelope (line 32) | struct ErrorEnvelope { type ErrorBody (line 37) | struct ErrorBody { type SchemaOutput (line 51) | struct SchemaOutput { type CommandShape (line 67) | struct CommandShape { function execute (line 104) | pub fn execute( function build_schemas (line 148) | fn build_schemas(target: SchemaTarget) -> BTreeMap<&'static str, Schema> { function build_commands (line 205) | fn build_commands(target: SchemaTarget) -> BTreeMap<&'static str, Comman... function insert_issue_command_shapes (line 220) | fn insert_issue_command_shapes(commands: &mut BTreeMap<&'static str, Com... function insert_comment_command_shapes (line 296) | fn insert_comment_command_shapes(commands: &mut BTreeMap<&'static str, C... function insert_dependency_command_shapes (line 313) | fn insert_dependency_command_shapes(commands: &mut BTreeMap<&'static str... function insert_aggregate_command_shapes (line 338) | fn insert_aggregate_command_shapes(commands: &mut BTreeMap<&'static str,... function insert_label_command_shapes (line 381) | fn insert_label_command_shapes(commands: &mut BTreeMap<&'static str, Com... function schema_generation_is_json_serializable (line 400) | fn schema_generation_is_json_serializable() { function commands_target_emits_only_command_map (line 409) | fn commands_target_emits_only_command_map() { function all_target_emits_both_schemas_and_commands (line 423) | fn all_target_emits_both_schemas_and_commands() { function per_row_target_does_not_emit_command_map (line 431) | fn per_row_target_does_not_emit_command_map() { function command_shapes_have_consistent_invariants (line 440) | fn command_shapes_have_consistent_invariants() { function stats_and_status_share_the_same_envelope (line 482) | fn stats_and_status_share_the_same_envelope() { FILE: src/cli/commands/search.rs function execute (line 27) | pub fn execute( function execute_with_storage_ctx (line 52) | pub fn execute_with_storage_ctx( function validate_query (line 72) | fn validate_query(args: &SearchArgs) -> Result<&str> { function collect_search_results (line 83) | fn collect_search_results( function render_search_results (line 134) | fn render_search_results( function attach_counts (line 235) | fn attach_counts( function build_context_snippets (line 264) | fn build_context_snippets(issues: &[crate::model::Issue], query: &str) -... function build_highlight_regex (line 289) | fn build_highlight_regex(query: &str) -> Option { function snippet_around_match (line 301) | fn snippet_around_match(text: &str, start: usize, end: usize, radius: us... function normalize_whitespace (line 334) | fn normalize_whitespace(input: &str) -> String { function build_filters (line 338) | fn build_filters(args: &ListArgs) -> Result { function needs_client_filters (line 415) | fn needs_client_filters(args: &ListArgs) -> bool { function requires_post_query_ordering (line 425) | fn requires_post_query_ordering(_args: &ListArgs, client_filters: bool) ... function validate_sort_key (line 429) | fn validate_sort_key(sort: Option<&str>) -> Result<()> { function apply_client_filters (line 443) | fn apply_client_filters( function apply_sort_by_issue (line 544) | fn apply_sort_by_issue( function apply_sort (line 574) | fn apply_sort(issues: &mut [IssueWithCounts], sort: Option<&str>) -> Res... function apply_issue_sort (line 578) | fn apply_issue_sort(issues: &mut [crate::model::Issue], sort: Option<&st... function make_issue (line 588) | fn make_issue( function test_search_matches_title_description_id (line 638) | fn test_search_matches_title_description_id() { function test_label_filters_do_not_require_client_filtering (line 665) | fn test_label_filters_do_not_require_client_filtering() { function test_label_any_filters_do_not_require_client_filtering (line 675) | fn test_label_any_filters_do_not_require_client_filtering() { function test_requires_post_query_ordering_only_for_client_filters (line 685) | fn test_requires_post_query_ordering_only_for_client_filters() { function test_search_rejects_invalid_sort_without_client_filters (line 709) | fn test_search_rejects_invalid_sort_without_client_filters() { function test_search_respects_sort_before_limit (line 734) | fn test_search_respects_sort_before_limit() { function test_search_applies_offset_after_explicit_sort (line 755) | fn test_search_applies_offset_after_explicit_sort() { function test_search_applies_offset_after_client_filters (line 783) | fn test_search_applies_offset_after_client_filters() { function test_search_respects_reverse_without_explicit_sort (line 817) | fn test_search_respects_reverse_without_explicit_sort() { function test_search_command_pipeline_applies_reverse_once (line 852) | fn test_search_command_pipeline_applies_reverse_once() { function test_sort_by_title_and_reverse (line 886) | fn test_sort_by_title_and_reverse() { function test_sort_created_at_desc_default (line 913) | fn test_sort_created_at_desc_default() { function test_attach_counts_backfills_labels (line 938) | fn test_attach_counts_backfills_labels() { FILE: src/cli/commands/show.rs function execute (line 26) | pub fn execute( function execute_with_storage (line 41) | pub fn execute_with_storage( function execute_with_storage_ctx (line 56) | pub fn execute_with_storage_ctx( function execute_routed (line 67) | fn execute_routed( function requested_target_ids (line 215) | fn requested_target_ids(args: &ShowArgs, beads_dir: &Path) -> Result( function load_issue_details_for_route (line 337) | fn load_issue_details_for_route( function load_issue_details_from_storage (line 402) | fn load_issue_details_from_storage( function load_issue_details_from_jsonl (line 439) | fn load_issue_details_from_jsonl( function build_issue_details_from_jsonl (line 481) | fn build_issue_details_from_jsonl( function dependency_metadata_from_jsonl (line 550) | fn dependency_metadata_from_jsonl( function find_ids_by_hash_in_memory (line 600) | fn find_ids_by_hash_in_memory( function collect_external_dependency_ids (line 631) | fn collect_external_dependency_ids(details_list: &[IssueDetails]) -> Has... function issue_details_have_external_dependencies (line 640) | fn issue_details_have_external_dependencies(details: &IssueDetails) -> b... function apply_external_dependency_metadata (line 648) | fn apply_external_dependency_metadata( function format_external_dependency_title (line 671) | fn format_external_dependency_title(dep_id: &str, satisfied: bool) -> St... function parse_external_dep_id (line 679) | fn parse_external_dep_id(dep_id: &str) -> Option<(String, String)> { function print_issue_details (line 693) | fn print_issue_details(details: &IssueDetails, use_color: bool) { function format_issue_details (line 699) | fn format_issue_details(details: &IssueDetails, use_color: bool) -> Stri... function init_logging (line 876) | fn init_logging() { function make_test_issue (line 880) | fn make_test_issue(id: &str, title: &str) -> Issue { function test_show_retrieves_issue_by_id (line 925) | fn test_show_retrieves_issue_by_id() { function test_show_returns_none_for_missing_id (line 942) | fn test_show_returns_none_for_missing_id() { function test_show_multiple_issues (line 953) | fn test_show_multiple_issues() { function test_issue_json_serialization (line 972) | fn test_issue_json_serialization() { function test_issue_json_serialization_multiple (line 985) | fn test_issue_json_serialization_multiple() { function test_show_resolves_full_id (line 1003) | fn test_show_resolves_full_id() { function test_show_resolves_prefixed_id (line 1015) | fn test_show_resolves_prefixed_id() { function test_show_resolves_partial_id (line 1027) | fn test_show_resolves_partial_id() { function test_show_not_found_error (line 1049) | fn test_show_not_found_error() { function test_show_json_output_shape (line 1059) | fn test_show_json_output_shape() { function test_show_text_includes_dependencies_and_comments (line 1088) | fn test_show_text_includes_dependencies_and_comments() { function test_show_text_sanitizes_ids_and_dependency_types (line 1123) | fn test_show_text_sanitizes_ids_and_dependency_types() { function test_apply_external_dependency_metadata_updates_generated_placeholder (line 1163) | fn test_apply_external_dependency_metadata_updates_generated_placeholder... function test_build_issue_details_from_jsonl_derives_parent_and_dependents (line 1187) | fn test_build_issue_details_from_jsonl_derives_parent_and_dependents() { function test_build_issue_details_from_jsonl_preserves_missing_dependency_placeholder (line 1236) | fn test_build_issue_details_from_jsonl_preserves_missing_dependency_plac... function test_reorder_details_by_requested_inputs_restores_mixed_route_order (line 1267) | fn test_reorder_details_by_requested_inputs_restores_mixed_route_order() { function routed_structured_output_guard_excludes_text_and_csv (line 1325) | fn routed_structured_output_guard_excludes_text_and_csv() { FILE: src/cli/commands/stale.rs function execute (line 15) | pub fn execute(args: &StaleArgs, cli: &config::CliOverrides, ctx: &Outpu... function execute_with_storage (line 33) | pub fn execute_with_storage( function execute_inner (line 48) | fn execute_inner(args: &StaleArgs, ctx: &OutputContext, storage: &Sqlite... function parse_statuses (line 125) | fn parse_statuses(values: &[String]) -> Result> { function render_stale_rich (line 132) | fn render_stale_rich( function stale_display_text (line 216) | fn stale_display_text(value: &str) -> String { function init_logging (line 226) | fn init_logging() { function make_issue (line 230) | fn make_issue(id: &str, updated_at: DateTime) -> Issue { function stale_display_text_escapes_terminal_controls (line 275) | fn stale_display_text_escapes_terminal_controls() { function filter_stale_issues (line 284) | fn filter_stale_issues( function test_filter_stale_issues_orders_oldest_first (line 300) | fn test_filter_stale_issues_orders_oldest_first() { FILE: src/cli/commands/stats.rs function execute (line 31) | pub fn execute( function execute_with_storage (line 46) | pub fn execute_with_storage( function execute_with_storage_ctx (line 61) | pub fn execute_with_storage_ctx( function execute_inner (line 71) | fn execute_inner( function resolve_stats_external_blockers (line 194) | fn resolve_stats_external_blockers( function stats_output_context (line 214) | fn stats_output_context( function ensure_stats_config_layer (line 241) | fn ensure_stats_config_layer<'a>( function load_stats_config_layer (line 261) | fn load_stats_config_layer( function should_include_activity (line 274) | const fn should_include_activity(args: &StatsArgs) -> bool { function should_collect_activity (line 278) | const fn should_collect_activity(args: &StatsArgs, output_mode: OutputMo... type ActivityCounts (line 283) | struct ActivityCounts { method total_changes (line 291) | const fn total_changes(self) -> usize { method merge (line 295) | fn merge(&mut self, other: Self) { method record_transition (line 302) | fn record_transition(&mut self, previous: Option<&Issue>, current: Opt... type GitActivitySummary (line 334) | struct GitActivitySummary { constant GIT_ACTIVITY_COMMIT_MARKER (line 340) | const GIT_ACTIVITY_COMMIT_MARKER: &str = "__BR_ACTIVITY_COMMIT__:"; constant RECENT_ACTIVITY_CACHE_KEY_PREFIX (line 341) | const RECENT_ACTIVITY_CACHE_KEY_PREFIX: &str = "stats_recent_activity"; type GitRepoContext (line 344) | struct GitRepoContext { type RecentActivityCacheEntry (line 350) | struct RecentActivityCacheEntry { type RecentActivityCachePolicy (line 360) | enum RecentActivityCachePolicy { function compute_summary (line 367) | fn compute_summary( function is_wisp_issue_id (line 496) | fn is_wisp_issue_id(id: &str) -> bool { function is_potential_ready_candidate (line 500) | fn is_potential_ready_candidate(issue: &StatsIssueRow, now: &chrono::Dat... function count_epics_eligible_for_closure (line 513) | fn count_epics_eligible_for_closure(storage: &SqliteStorage, epic_ids: &... function compute_type_breakdown (line 534) | fn compute_type_breakdown(issues: &[StatsIssueRow]) -> Breakdown { function compute_priority_breakdown (line 555) | fn compute_priority_breakdown(issues: &[StatsIssueRow]) -> Breakdown { function compute_assignee_breakdown (line 578) | fn compute_assignee_breakdown(issues: &[StatsIssueRow]) -> Breakdown { function compute_label_breakdown (line 603) | fn compute_label_breakdown(storage: &SqliteStorage, issues: &[StatsIssue... function compute_recent_activity (line 634) | fn compute_recent_activity( function git_recent_activity (line 699) | fn git_recent_activity( function parse_issue_activity_stream (line 751) | fn parse_issue_activity_stream(reader: R) -> GitAct... function parse_issue_activity_patch (line 794) | fn parse_issue_activity_patch(patch: &str) -> ActivityCounts { type IssuePatchMarker (line 806) | enum IssuePatchMarker { function record_issue_activity_patch_line (line 811) | fn record_issue_activity_patch_line( function count_issue_activity_transitions (line 835) | fn count_issue_activity_transitions( function parse_issue_patch_line (line 850) | fn parse_issue_patch_line(line: &str) -> Option<(IssuePatchMarker, &str)> { function parse_activity_commit_marker (line 878) | fn parse_activity_commit_marker(line: &str) -> Option { function git_repo_context (line 884) | fn git_repo_context(start: &Path) -> Option { function git_repo_context_from_filesystem (line 888) | fn git_repo_context_from_filesystem(start: &Path) -> Option Option { function read_git_head (line 926) | fn read_git_head(git_dir: &Path) -> Option { function git_common_dir (line 943) | fn git_common_dir(git_dir: &Path) -> PathBuf { function read_git_ref (line 960) | fn read_git_ref(git_dir: &Path, reference: &str) -> Option { function read_packed_git_ref (line 966) | fn read_packed_git_ref(git_dir: &Path, reference: &str) -> Option { function safe_git_ref_path (line 983) | fn safe_git_ref_path(git_dir: &Path, reference: &str) -> Option { function non_empty_string (line 995) | fn non_empty_string(value: &str) -> Option { function git_repo_context_from_command (line 999) | fn git_repo_context_from_command(start: &Path) -> Option { function git_command (line 1024) | fn git_command() -> Command { function git_executable (line 1028) | fn git_executable() -> &'static Path { function resolve_git_executable (line 1033) | fn resolve_git_executable() -> PathBuf { function is_executable_file (line 1054) | fn is_executable_file(path: &Path) -> bool { function is_executable_file (line 1062) | fn is_executable_file(path: &Path) -> bool { function repo_relative_git_path (line 1066) | fn repo_relative_git_path(path: &Path, repo_root: &Path) -> Option String { function recent_activity_cache_key (line 1084) | fn recent_activity_cache_key(pathspec: &str, hours: u32) -> String { function load_recent_activity_cache (line 1088) | fn load_recent_activity_cache( function parse_recent_activity_cache (line 1100) | fn parse_recent_activity_cache( function recent_activity_cache_policy (line 1128) | fn recent_activity_cache_policy( function store_recent_activity_cache (line 1146) | fn store_recent_activity_cache( function print_text_output (line 1164) | fn print_text_output(output: &Statistics) { function render_stats_rich (line 1240) | fn render_stats_rich(output: &Statistics, ctx: &OutputContext) { function render_status_bars (line 1344) | fn render_status_bars(content: &mut Text, summary: &StatsSummary, theme:... function render_breakdown_bars (line 1384) | fn render_breakdown_bars( function capitalize (line 1435) | fn capitalize(s: &str) -> String { function make_issue (line 1451) | fn make_issue(id: &str, status: Status, issue_type: IssueType) -> Issue { function stats_row (line 1495) | fn stats_row(issue: &Issue) -> StatsIssueRow { function compute_test_summary (line 1511) | fn compute_test_summary(storage: &SqliteStorage, issues: &[StatsIssueRow... function test_compute_type_breakdown (line 1520) | fn test_compute_type_breakdown() { function test_compute_priority_breakdown (line 1545) | fn test_compute_priority_breakdown() { function test_compute_assignee_breakdown (line 1569) | fn test_compute_assignee_breakdown() { function test_compute_summary_basic (line 1592) | fn test_compute_summary_basic() { function test_blocked_by_blocks_deps (line 1617) | fn test_blocked_by_blocks_deps() { function test_blocked_by_parent_child_deps (line 1640) | fn test_blocked_by_parent_child_deps() { function test_blocked_by_status_counts_without_dependency_blocker (line 1662) | fn test_blocked_by_status_counts_without_dependency_blocker() { function test_compute_summary_ready_excludes_templates (line 1679) | fn test_compute_summary_ready_excludes_templates() { function test_compute_summary_ready_excludes_wisp_ids (line 1699) | fn test_compute_summary_ready_excludes_wisp_ids() { function test_compute_summary_excludes_template_epics_from_close_eligible_count (line 1718) | fn test_compute_summary_excludes_template_epics_from_close_eligible_coun... function test_blocked_cleared_when_blocker_closed (line 1743) | fn test_blocked_cleared_when_blocker_closed() { function test_label_breakdown (line 1767) | fn test_label_breakdown() { function test_truncate_title_ascii (line 1799) | fn test_truncate_title_ascii() { function test_truncate_title_multibyte (line 1809) | fn test_truncate_title_multibyte() { function test_capitalize (line 1827) | fn test_capitalize() { function git (line 1834) | fn git(cwd: &Path, args: &[&str]) { function git_stdout (line 1843) | fn git_stdout(cwd: &Path, args: &[&str]) -> String { function write_issue_jsonl (line 1853) | fn write_issue_jsonl(path: &Path, issue: &Issue) { function test_compute_recent_activity_uses_resolved_jsonl_path (line 1859) | fn test_compute_recent_activity_uses_resolved_jsonl_path() { function test_compute_recent_activity_counts_issue_transitions_from_git_history (line 1886) | fn test_compute_recent_activity_counts_issue_transitions_from_git_histor... function test_parse_recent_activity_cache_returns_matching_entry (line 1938) | fn test_parse_recent_activity_cache_returns_matching_entry() { function test_activity_counts_tombstone_transition_as_update_not_reopen (line 1977) | fn test_activity_counts_tombstone_transition_as_update_not_reopen() { function test_parse_issue_activity_patch_counts_created_issue (line 1994) | fn test_parse_issue_activity_patch_counts_created_issue() { function test_parse_issue_activity_patch_skips_non_issue_markers (line 2010) | fn test_parse_issue_activity_patch_skips_non_issue_markers() { function test_parse_issue_activity_stream_keeps_commit_boundaries_separate (line 2031) | fn test_parse_issue_activity_stream_keeps_commit_boundaries_separate() { function test_recent_activity_cache_valid_until_expires_at_boundary (line 2069) | fn test_recent_activity_cache_valid_until_expires_at_boundary() { function test_should_include_activity_defaults_on (line 2132) | fn test_should_include_activity_defaults_on() { function test_should_collect_activity_skips_true_quiet_mode (line 2146) | fn test_should_collect_activity_skips_true_quiet_mode() { function test_repo_relative_git_path_rejects_path_outside_repo (line 2165) | fn test_repo_relative_git_path_rejects_path_outside_repo() { function test_git_pathspec_string_normalizes_separators (line 2179) | fn test_git_pathspec_string_normalizes_separators() { function test_git_repo_context_from_filesystem_reads_loose_head (line 2191) | fn test_git_repo_context_from_filesystem_reads_loose_head() { function test_git_repo_context_from_filesystem_reads_gitdir_file (line 2209) | fn test_git_repo_context_from_filesystem_reads_gitdir_file() { function test_git_repo_context_reads_root_and_head (line 2233) | fn test_git_repo_context_reads_root_and_head() { FILE: src/cli/commands/sync.rs type FlushResult (line 33) | pub struct FlushResult { type ImportResultOutput (line 49) | pub struct ImportResultOutput { type SyncStatus (line 60) | pub struct SyncStatus { type SyncPathPolicy (line 75) | struct SyncPathPolicy { type SyncStartupState (line 84) | struct SyncStartupState { type SyncOperation (line 91) | enum SyncOperation { type SyncDispatchOptions (line 98) | struct SyncDispatchOptions { function execute (line 110) | pub fn execute( function prepare_sync_startup (line 138) | fn prepare_sync_startup( function should_defer_jsonl_recovery (line 182) | fn should_defer_jsonl_recovery(args: &SyncArgs) -> bool { function validate_sync_mode_args (line 191) | fn validate_sync_mode_args(args: &SyncArgs) -> Result<()> { function merge_conflict_resolution (line 233) | fn merge_conflict_resolution(args: &SyncArgs) -> ConflictResolution { function merge_conflict_resolution_label (line 245) | fn merge_conflict_resolution_label(strategy: ConflictResolution) -> &'st... function maybe_delegate_rebuild (line 287) | fn maybe_delegate_rebuild( function dispatch_sync_subcommand (line 352) | fn dispatch_sync_subcommand( function sync_dispatch_options (line 403) | fn sync_dispatch_options( function sync_operation (line 419) | fn sync_operation(args: &SyncArgs) -> SyncOperation { function finalize_sync_result (line 434) | fn finalize_sync_result( function should_render_human_sync_output (line 469) | fn should_render_human_sync_output(ctx: &OutputContext, use_json: bool) ... function validate_sync_paths (line 474) | fn validate_sync_paths( function validate_operator_requested_sync_path (line 559) | fn validate_operator_requested_sync_path(beads_dir: &Path, jsonl_path: &... function resolve_requested_sync_path (line 631) | fn resolve_requested_sync_path(jsonl_path: &Path) -> Result { function resolve_sync_parent_path (line 647) | fn resolve_sync_parent_path(jsonl_parent: &Path) -> Result { function contains_git_dir (line 670) | fn contains_git_dir(path: &Path) -> bool { function execute_status (line 678) | fn execute_status( function render_status_rich (line 746) | fn render_status_rich(status: &SyncStatus, ctx: &OutputContext) { function execute_flush (line 830) | fn execute_flush( function write_manifest_atomically (line 1085) | fn write_manifest_atomically(manifest_path: &Path, manifest: &serde_json... function render_flush_result_rich (line 1122) | fn render_flush_result_rich(result: &FlushResult, errors: &[ExportError]... function render_errors_rich (line 1199) | fn render_errors_rich(errors: &[ExportError], ctx: &OutputContext) { function parse_export_policy (line 1227) | fn parse_export_policy(args: &SyncArgs) -> Result { function format_error_suffix (line 1239) | fn format_error_suffix(errors: &[ExportError], entity: ExportEntityType)... function should_show_progress (line 1251) | fn should_show_progress(json: bool, quiet: bool) -> bool { function shell_quote (line 1255) | fn shell_quote(value: &str) -> String { function push_cli_rerun_overrides (line 1259) | fn push_cli_rerun_overrides(rerun: &mut Vec, cli: &config::CliOv... function auto_rebuild_semantic_flag_conflict_reason (line 1295) | fn auto_rebuild_semantic_flag_conflict_reason( function auto_rebuild_semantic_conflict_field (line 1329) | fn auto_rebuild_semantic_conflict_field(args: &SyncArgs) -> &'static str { function jsonl_contains_prefix_mismatch (line 1339) | fn jsonl_contains_prefix_mismatch(jsonl_path: &Path, expected_prefix: &s... function jsonl_contains_duplicate_external_refs (line 1353) | fn jsonl_contains_duplicate_external_refs(jsonl_path: &Path) -> Result Result> { function execute_merge (line 1913) | fn execute_merge( function render_merge_conflicts_rich (line 2111) | fn render_merge_conflicts_rich( function render_merge_result_rich (line 2150) | fn render_merge_result_rich(report: &crate::sync::MergeReport, ctx: &Out... function make_test_issue (line 2236) | fn make_test_issue(id: &str, title: &str) -> Issue { function should_render_human_sync_output_preserves_quiet_json_semantics (line 2281) | fn should_render_human_sync_output_preserves_quiet_json_semantics() { function test_merge_conflict_resolution_defaults_to_manual (line 2292) | fn test_merge_conflict_resolution_defaults_to_manual() { function test_merge_conflict_resolution_supports_explicit_winners (line 2302) | fn test_merge_conflict_resolution_supports_explicit_winners() { function test_merge_resolution_flags_require_merge_mode (line 2334) | fn test_merge_resolution_flags_require_merge_mode() { function test_sync_operation_selects_default_and_explicit_modes (line 2346) | fn test_sync_operation_selects_default_and_explicit_modes() { function test_sync_operation_status_takes_precedence_over_work_modes (line 2369) | fn test_sync_operation_status_takes_precedence_over_work_modes() { function test_should_defer_jsonl_recovery_only_for_rename_prefix_import (line 2380) | fn test_should_defer_jsonl_recovery_only_for_rename_prefix_import() { function sync_status_fast_open_miss_reuses_caller_write_lock_for_rebuild (line 2410) | fn sync_status_fast_open_miss_reuses_caller_write_lock_for_rebuild() { function test_sync_status_empty_db (line 2448) | fn test_sync_status_empty_db() { function test_sync_status_with_dirty_issues (line 2459) | fn test_sync_status_with_dirty_issues() { function test_restore_tombstones_preserves_relations_and_marks_dirty (line 2470) | fn test_restore_tombstones_preserves_relations_and_marks_dirty() { function test_restore_tombstones_rolls_back_when_relation_restore_fails (line 2522) | fn test_restore_tombstones_rolls_back_when_relation_restore_fails() { function test_restore_tombstones_restores_dependencies_between_preserved_tombstones (line 2563) | fn test_restore_tombstones_restores_dependencies_between_preserved_tombs... function test_tombstones_missing_from_jsonl_tombstones_only_skips_already_flushed_deletions (line 2597) | fn test_tombstones_missing_from_jsonl_tombstones_only_skips_already_flus... function test_tombstones_missing_from_jsonl_tombstones_blocks_resurrection (line 2626) | fn test_tombstones_missing_from_jsonl_tombstones_blocks_resurrection() { function test_scan_jsonl_for_tombstone_filter_rejects_duplicate_issue_ids (line 2679) | fn test_scan_jsonl_for_tombstone_filter_rejects_duplicate_issue_ids() { function test_snapshot_tombstones_tolerates_broken_relation_tables (line 2704) | fn test_snapshot_tombstones_tolerates_broken_relation_tables() { function test_snapshot_tombstones_ignores_malformed_non_tombstone_rows (line 2727) | fn test_snapshot_tombstones_ignores_malformed_non_tombstone_rows() { function test_snapshot_tombstones_tolerates_missing_issues_table (line 2749) | fn test_snapshot_tombstones_tolerates_missing_issues_table() { function test_validate_sync_paths_allows_missing_internal_parent_directory (line 2765) | fn test_validate_sync_paths_allows_missing_internal_parent_directory() { function test_validate_sync_paths_allows_missing_external_parent_directory_with_opt_in (line 2779) | fn test_validate_sync_paths_allows_missing_external_parent_directory_wit... function test_validate_sync_paths_allows_external_db_family_effective_policy (line 2797) | fn test_validate_sync_paths_allows_external_db_family_effective_policy() { function test_validate_sync_paths_rejects_external_path_without_effective_policy (line 2819) | fn test_validate_sync_paths_rejects_external_path_without_effective_poli... function test_validate_operator_requested_sync_path_rejects_git_before_resolution (line 2845) | fn test_validate_operator_requested_sync_path_rejects_git_before_resolut... function test_validate_sync_paths_rejects_internal_parent_symlink_escape_with_opt_in (line 2871) | fn test_validate_sync_paths_rejects_internal_parent_symlink_escape_with_... function test_validate_sync_paths_rejects_symlinked_git_parent_with_opt_in (line 2900) | fn test_validate_sync_paths_rejects_symlinked_git_parent_with_opt_in() { function test_validate_sync_paths_rejects_traversal_for_missing_external_parent (line 2931) | fn test_validate_sync_paths_rejects_traversal_for_missing_external_paren... function test_validate_sync_paths_rejects_symlinked_external_jsonl_with_opt_in (line 2956) | fn test_validate_sync_paths_rejects_symlinked_external_jsonl_with_opt_in... function test_validate_sync_paths_rejects_git_symlinked_jsonl_even_with_opt_in (line 2985) | fn test_validate_sync_paths_rejects_git_symlinked_jsonl_even_with_opt_in... function test_detect_prefix_from_jsonl_supports_hyphenated_prefixes (line 3018) | fn test_detect_prefix_from_jsonl_supports_hyphenated_prefixes() { function test_detect_prefix_from_jsonl_rejects_malformed_before_prefix (line 3035) | fn test_detect_prefix_from_jsonl_rejects_malformed_before_prefix() { function test_detect_prefix_from_jsonl_validates_entire_file_before_returning_prefix (line 3053) | fn test_detect_prefix_from_jsonl_validates_entire_file_before_returning_... function test_auto_rebuild_semantic_flag_conflict_reason_absent_for_default_import_semantics (line 3071) | fn test_auto_rebuild_semantic_flag_conflict_reason_absent_for_default_im... function test_auto_rebuild_semantic_flag_conflict_reason_mentions_rename_prefix_rerun (line 3080) | fn test_auto_rebuild_semantic_flag_conflict_reason_mentions_rename_prefi... function test_auto_rebuild_semantic_flag_conflict_reason_ignores_orphans_only_request (line 3098) | fn test_auto_rebuild_semantic_flag_conflict_reason_ignores_orphans_only_... function test_auto_rebuild_semantic_flag_conflict_reason_mentions_both_flags (line 3112) | fn test_auto_rebuild_semantic_flag_conflict_reason_mentions_both_flags() { function test_auto_rebuild_semantic_flag_conflict_reason_preserves_custom_db_override (line 3132) | fn test_auto_rebuild_semantic_flag_conflict_reason_preserves_custom_db_o... function test_auto_rebuild_semantic_flag_conflict_reason_preserves_external_jsonl_flag (line 3155) | fn test_auto_rebuild_semantic_flag_conflict_reason_preserves_external_js... function test_auto_rebuild_semantic_flag_conflict_reason_preserves_cli_startup_flags (line 3174) | fn test_auto_rebuild_semantic_flag_conflict_reason_preserves_cli_startup... function test_auto_rebuild_semantic_conflict_field_prefers_explicit_rebuild_then_force (line 3200) | fn test_auto_rebuild_semantic_conflict_field_prefers_explicit_rebuild_th... function test_jsonl_contains_prefix_mismatch_only_for_non_tombstone_ids (line 3227) | fn test_jsonl_contains_prefix_mismatch_only_for_non_tombstone_ids() { function test_jsonl_contains_duplicate_external_refs_detects_duplicates (line 3258) | fn test_jsonl_contains_duplicate_external_refs_detects_duplicates() { FILE: src/cli/commands/update.rs type UpdatedIssueOutput (line 26) | struct UpdatedIssueOutput { method from (line 35) | fn from(issue: &Issue) -> Self { type UpdateDiff (line 67) | struct UpdateDiff { method from_before_and_update (line 76) | fn from_before_and_update(before: &Issue, update: &IssueUpdate) -> Self { type UpdateRenderItem (line 110) | enum UpdateRenderItem { type UpdateRouteOutput (line 122) | struct UpdateRouteOutput { type ParentUpdatePlan (line 128) | enum ParentUpdatePlan { type PreparedUpdateRoute (line 134) | struct PreparedUpdateRoute { function execute (line 154) | pub fn execute(args: &UpdateArgs, cli: &config::CliOverrides, ctx: &Outp... function prepare_single_route (line 271) | fn prepare_single_route( function execute_prepared_route (line 339) | fn execute_prepared_route( function update_uses_machine_output (line 533) | fn update_uses_machine_output(ctx: &OutputContext) -> bool { function update_uses_human_output (line 537) | fn update_uses_human_output(ctx: &OutputContext) -> bool { function validate_multi_issue_external_ref_update (line 541) | fn validate_multi_issue_external_ref_update( function validate_route_runtime_guards (line 565) | fn validate_route_runtime_guards( function validate_transition_to_in_progress (line 616) | fn validate_transition_to_in_progress( function print_update_summary (line 650) | fn print_update_summary(id: &str, title: &str, diff: &UpdateDiff) { function updated_issue_human_line (line 694) | fn updated_issue_human_line(id: &str, title: &str) -> String { function no_updates_human_line (line 702) | fn no_updates_human_line(id: &str) -> String { function issue_input_text (line 706) | fn issue_input_text(input: &str) -> String { function print_render_items (line 710) | fn print_render_items(render_items: &[UpdateRenderItem]) { function reorder_routed_items_by_requested_inputs (line 721) | fn reorder_routed_items_by_requested_inputs( function build_resolver (line 777) | fn build_resolver(config_layer: &config::ConfigLayer, _storage: &SqliteS... function resolve_target_ids (line 782) | fn resolve_target_ids( function validate_mutable_target_issues (line 803) | fn validate_mutable_target_issues( function build_update (line 828) | fn build_update(args: &UpdateArgs, actor: &str, claim_exclusive: bool) -... function optional_string_field (line 889) | fn optional_string_field(value: Option<&str>) -> Option> { function optional_date_field (line 900) | fn optional_date_field(value: Option<&str>) -> Result Result> { function test_optional_string_field_with_value (line 1004) | fn test_optional_string_field_with_value() { function test_optional_string_field_with_empty (line 1013) | fn test_optional_string_field_with_empty() { function test_optional_string_field_with_none (line 1022) | fn test_optional_string_field_with_none() { function test_optional_date_field_with_valid (line 1031) | fn test_optional_date_field_with_valid() { function test_optional_date_field_with_empty (line 1044) | fn test_optional_date_field_with_empty() { function test_optional_date_field_with_none (line 1053) | fn test_optional_date_field_with_none() { function test_optional_date_field_invalid_format (line 1062) | fn test_optional_date_field_invalid_format() { function test_parse_date_valid_rfc3339 (line 1071) | fn test_parse_date_valid_rfc3339() { function test_parse_date_with_timezone (line 1082) | fn test_parse_date_with_timezone() { function test_parse_date_invalid (line 1095) | fn test_parse_date_invalid() { function test_parse_date_partial_date (line 1104) | fn test_parse_date_partial_date() { function test_build_update_with_claim (line 1118) | fn test_build_update_with_claim() { function test_build_update_with_status (line 1132) | fn test_build_update_with_status() { function test_build_update_with_priority (line 1156) | fn test_build_update_with_priority() { function test_build_update_empty (line 1169) | fn test_build_update_empty() { function test_update_output_partition_matches_previous_mode_checks (line 1179) | fn test_update_output_partition_matches_previous_mode_checks() { function update_human_lines_sanitize_issue_ids_and_titles (line 1197) | fn update_human_lines_sanitize_issue_ids_and_titles() { function reorder_routed_items_sanitizes_missing_input_error (line 1212) | fn reorder_routed_items_sanitizes_missing_input_error() { function reorder_routed_items_sanitizes_unexpected_input_error (line 1231) | fn reorder_routed_items_sanitizes_unexpected_input_error() { function test_validate_mutable_target_issues_rejects_tombstone (line 1250) | fn test_validate_mutable_target_issues_rejects_tombstone() { function test_validate_mutable_target_issues_allows_open_issue (line 1287) | fn test_validate_mutable_target_issues_allows_open_issue() { function test_validate_route_runtime_guards_rejects_assigned_claim_target (line 1310) | fn test_validate_route_runtime_guards_rejects_assigned_claim_target() { function test_validate_multi_issue_external_ref_update_rejects_multiple_distinct_ids (line 1346) | fn test_validate_multi_issue_external_ref_update_rejects_multiple_distin... function test_execute_prepared_route_repairs_blocked_cache_after_late_update_error (line 1368) | fn test_execute_prepared_route_repairs_blocked_cache_after_late_update_e... FILE: src/cli/commands/upgrade.rs constant REPO_OWNER (line 22) | const REPO_OWNER: &str = "Dicklesworthstone"; constant REPO_NAME (line 25) | const REPO_NAME: &str = "beads_rust"; constant BIN_NAME (line 28) | const BIN_NAME: &str = "br"; type UpdateCheckResult (line 32) | struct UpdateCheckResult { type UpdateResult (line 42) | struct UpdateResult { function execute (line 55) | pub fn execute(args: &UpgradeArgs, ctx: &OutputContext) -> Result<()> { function execute_check (line 70) | fn execute_check(current_version: &str, ctx: &OutputContext) -> Result<(... function execute_dry_run (line 109) | fn execute_dry_run(args: &UpgradeArgs, current_version: &str, ctx: &Outp... function execute_upgrade (line 161) | fn execute_upgrade(args: &UpgradeArgs, current_version: &str, ctx: &Outp... function render_not_updated (line 270) | fn render_not_updated( function resolve_auth_token (line 299) | fn resolve_auth_token() -> Option { function asset_target_name (line 312) | fn asset_target_name() -> &'static str { function is_archive_asset_name (line 325) | fn is_archive_asset_name(name: &str) -> bool { function has_tar_gz_extension (line 339) | fn has_tar_gz_extension(path: &Path) -> bool { function release_binary_asset_for (line 348) | fn release_binary_asset_for<'a>( function checksum_asset_for (line 369) | fn checksum_asset_for<'a>(release: &'a Release, archive_name: &str) -> O... function select_release_for_update (line 377) | fn select_release_for_update( function update_with_checksum (line 402) | fn update_with_checksum(updater: &dyn ReleaseUpdate, release: &Release) ... function download_expected_sha256 (line 460) | fn download_expected_sha256( function parse_sha256_checksum (line 472) | fn parse_sha256_checksum(checksum_text: &str, archive_name: &str) -> Res... function verify_sha256 (line 496) | fn verify_sha256(path: &Path, expected_sha256: &str) -> Result<()> { function sha256_file (line 510) | fn sha256_file(path: &Path) -> Result { function download_asset_to_writer (line 529) | fn download_asset_to_writer( function build_updater (line 556) | fn build_updater(current_version: &str) -> Result> { function build_updater_with_target (line 576) | fn build_updater_with_target( function map_update_error (line 601) | fn map_update_error(err: E... function version_newer (line 608) | fn version_newer(new: &str, current: &str) -> bool { function render_check_rich (line 636) | fn render_check_rich(result: &UpdateCheckResult, ctx: &OutputContext) { function render_dry_run_rich (line 677) | fn render_dry_run_rich( function render_up_to_date_rich (line 724) | fn render_up_to_date_rich(current_version: &str, latest_version: &str, c... function render_upgrade_result_rich (line 750) | fn render_upgrade_result_rich(result: &UpdateResult, current_version: &s... function test_version_comparison_basic (line 781) | fn test_version_comparison_basic() { function test_version_comparison_double_digits (line 788) | fn test_version_comparison_double_digits() { function test_version_comparison_equal (line 795) | fn test_version_comparison_equal() { function test_version_comparison_older (line 801) | fn test_version_comparison_older() { function test_version_with_v_prefix (line 807) | fn test_version_with_v_prefix() { function test_version_more_parts (line 814) | fn test_version_more_parts() { function release_with_assets (line 819) | fn release_with_assets(names: &[&str]) -> Release { function release_binary_asset_ignores_checksum_and_signature_assets (line 836) | fn release_binary_asset_ignores_checksum_and_signature_assets() { function checksum_asset_matches_archive_name_exactly (line 848) | fn checksum_asset_matches_archive_name_exactly() { function parse_sha256_checksum_accepts_standard_sha256sum_line (line 860) | fn parse_sha256_checksum_accepts_standard_sha256sum_line() { function parse_sha256_checksum_rejects_wrong_archive_name (line 871) | fn parse_sha256_checksum_rejects_wrong_archive_name() { FILE: src/cli/commands/version.rs type VersionOutput (line 12) | struct VersionOutput<'a> { function execute (line 32) | pub fn execute(args: &VersionArgs, ctx: &OutputContext) -> Result<()> { function render_version_rich (line 139) | fn render_version_rich( function execute_update_check (line 218) | fn execute_update_check(current_version: &str, ctx: &OutputContext) { function fetch_latest_version (line 278) | fn fetch_latest_version() -> Result { function test_version_json_schema (line 324) | fn test_version_json_schema() { function test_version_json_omits_none_fields (line 347) | fn test_version_json_omits_none_fields() { function test_build_info_present (line 368) | fn test_build_info_present() { function test_feature_flags_detection (line 388) | fn test_feature_flags_detection() { function test_version_short_format (line 405) | fn test_version_short_format() { FILE: src/cli/commands/where.rs type WhereOutput (line 19) | struct WhereOutput { function execute (line 36) | pub fn execute(cli: &config::CliOverrides, ctx: &OutputContext) -> Resul... function resolve_where_output (line 58) | fn resolve_where_output(cli: &config::CliOverrides) -> Result Option<... function prefix_from_db_without_recovery (line 143) | fn prefix_from_db_without_recovery(db_path: &Path) -> Option { function prefix_from_jsonl (line 170) | fn prefix_from_jsonl(path: &Path) -> Option { type JsonlPrefixState (line 178) | enum JsonlPrefixState { function inspect_jsonl_prefix (line 184) | fn inspect_jsonl_prefix(path: &Path) -> JsonlPrefixState { function print_human (line 235) | fn print_human(output: &WhereOutput) { function where_display_text (line 251) | fn where_display_text(value: &str) -> String { function render_where_rich (line 256) | fn render_where_rich(output: &WhereOutput, ctx: &OutputContext) { function canonicalize_lossy (line 309) | fn canonicalize_lossy(path: &Path) -> PathBuf { type DirGuard (line 324) | struct DirGuard { method new (line 329) | fn new(target: &Path) -> Self { method drop (line 337) | fn drop(&mut self) { function where_display_text_sanitizes_terminal_controls (line 343) | fn where_display_text_sanitizes_terminal_controls() { function resolve_where_output_uses_explicit_db_override (line 356) | fn resolve_where_output_uses_explicit_db_override() { function resolve_where_output_preserves_redirect_origin (line 390) | fn resolve_where_output_preserves_redirect_origin() { function resolve_where_output_does_not_create_missing_db (line 442) | fn resolve_where_output_does_not_create_missing_db() { function resolve_where_output_falls_back_for_external_db_override (line 471) | fn resolve_where_output_falls_back_for_external_db_override() { function prefix_from_jsonl_returns_none_for_mixed_prefixes (line 510) | fn prefix_from_jsonl_returns_none_for_mixed_prefixes() { function prefix_from_jsonl_skips_invalid_json_lines (line 528) | fn prefix_from_jsonl_skips_invalid_json_lines() { function detect_prefix_prefers_configured_storage_prefix_when_jsonl_prefixes_conflict (line 545) | fn detect_prefix_prefers_configured_storage_prefix_when_jsonl_prefixes_c... function resolve_where_output_accepts_startup_prefix_alias (line 575) | fn resolve_where_output_accepts_startup_prefix_alias() { function detect_prefix_prefers_db_prefix_over_jsonl_inference (line 594) | fn detect_prefix_prefers_db_prefix_over_jsonl_inference() { FILE: src/cli/mod.rs type IssueCompletionFilter (line 23) | enum IssueCompletionFilter { method matches (line 30) | fn matches(self, status: &Status) -> bool { type CompletionIssue (line 40) | struct CompletionIssue { type CompletionIndex (line 56) | struct CompletionIndex { type CompletionConfigIndex (line 65) | struct CompletionConfigIndex { constant STATUS_CANDIDATES (line 73) | const STATUS_CANDIDATES: &[(&str, &str)] = &[ constant STATUS_WITH_ALL_CANDIDATES (line 84) | const STATUS_WITH_ALL_CANDIDATES: &[(&str, &str)] = &[ constant ISSUE_TYPE_CANDIDATES (line 96) | const ISSUE_TYPE_CANDIDATES: &[(&str, &str)] = &[ constant PRIORITY_CANDIDATES (line 106) | const PRIORITY_CANDIDATES: &[(&str, &str)] = &[ constant PRIORITY_NUMERIC_CANDIDATES (line 119) | const PRIORITY_NUMERIC_CANDIDATES: &[(&str, &str)] = &[ constant DEP_TYPE_CANDIDATES (line 127) | const DEP_TYPE_CANDIDATES: &[(&str, &str)] = &[ constant SORT_KEY_CANDIDATES (line 141) | const SORT_KEY_CANDIDATES: &[(&str, &str)] = &[ constant DEP_TREE_FORMAT_CANDIDATES (line 150) | const DEP_TREE_FORMAT_CANDIDATES: &[(&str, &str)] = constant CSV_FIELD_CANDIDATES (line 153) | const CSV_FIELD_CANDIDATES: &[(&str, &str)] = &[ constant EXPORT_ERROR_POLICY_CANDIDATES (line 171) | const EXPORT_ERROR_POLICY_CANDIDATES: &[(&str, &str)] = &[ constant ORPHAN_MODE_CANDIDATES (line 184) | const ORPHAN_MODE_CANDIDATES: &[(&str, &str)] = &[ constant SAVED_QUERY_PREFIX (line 191) | const SAVED_QUERY_PREFIX: &str = "saved_query:"; function completion_index (line 193) | fn completion_index() -> &'static CompletionIndex { function config_index (line 197) | fn config_index() -> &'static CompletionConfigIndex { function add_layer_keys (line 201) | fn add_layer_keys(keys: &mut BTreeSet, layer: &config::ConfigLay... function resolve_completion_paths_for_beads_dir (line 206) | fn resolve_completion_paths_for_beads_dir(beads_dir: &Path) -> Option Option { function saved_queries_from_db (line 215) | fn saved_queries_from_db(db_path: &Path) -> BTreeSet { function build_completion_index (line 246) | fn build_completion_index() -> CompletionIndex { function build_config_index (line 311) | fn build_config_index() -> CompletionConfigIndex { function matches_prefix_case_insensitive (line 337) | fn matches_prefix_case_insensitive(value: &str, prefix: &str) -> bool { function static_candidates (line 346) | fn static_candidates( function static_candidates_with_suffix (line 357) | fn static_candidates_with_suffix( function dynamic_candidates (line 371) | fn dynamic_candidates(prefix: &str, values: &[String]) -> Vec (String, &s... function split_key_prefix (line 394) | fn split_key_prefix(current: &str, delimiter: char) -> Option<(String, &... function static_candidates_delimited (line 405) | fn static_candidates_delimited( function dynamic_candidates_delimited (line 420) | fn dynamic_candidates_delimited( function issue_id_completer (line 435) | fn issue_id_completer(current: &OsStr) -> Vec { function open_issue_id_completer (line 439) | fn open_issue_id_completer(current: &OsStr) -> Vec { function closed_issue_id_completer (line 443) | fn closed_issue_id_completer(current: &OsStr) -> Vec { function issue_id_completer_with_filter (line 447) | fn issue_id_completer_with_filter( function issue_id_candidates (line 458) | fn issue_id_candidates(prefix: &str, filter: IssueCompletionFilter) -> V... function status_completer (line 474) | fn status_completer(current: &OsStr) -> Vec { function status_completer_delimited (line 481) | fn status_completer_delimited(current: &OsStr) -> Vec Vec { function issue_type_is_standard (line 492) | fn issue_type_is_standard(value: &str) -> bool { function issue_type_candidates (line 498) | fn issue_type_candidates(prefix: &str) -> Vec { function issue_type_completer (line 511) | fn issue_type_completer(current: &OsStr) -> Vec { function issue_type_completer_delimited (line 519) | fn issue_type_completer_delimited(current: &OsStr) -> Vec Vec Vec { function priority_completer_delimited (line 544) | fn priority_completer_delimited(current: &OsStr) -> Vec Vec Vec { function label_completer_delimited (line 562) | fn label_completer_delimited(current: &OsStr) -> Vec { function assignee_completer (line 566) | fn assignee_completer(current: &OsStr) -> Vec { function owner_completer (line 573) | fn owner_completer(current: &OsStr) -> Vec { function dep_type_completer (line 580) | fn dep_type_completer(current: &OsStr) -> Vec { function deps_completer (line 587) | fn deps_completer(current: &OsStr) -> Vec { function dep_tree_format_completer (line 607) | fn dep_tree_format_completer(current: &OsStr) -> Vec { function saved_query_completer (line 614) | fn saved_query_completer(current: &OsStr) -> Vec { function config_key_completer (line 621) | fn config_key_completer(current: &OsStr) -> Vec { function config_key_assignment_completer (line 628) | fn config_key_assignment_completer(current: &OsStr) -> Vec Vec Vec { function sort_key_completer (line 660) | fn sort_key_completer(current: &OsStr) -> Vec { function csv_fields_completer (line 667) | fn csv_fields_completer(current: &OsStr) -> Vec { type Cli (line 675) | pub struct Cli { type Commands (line 729) | pub enum Commands { type CompletionsArgs (line 943) | pub struct CompletionsArgs { type ShellType (line 955) | pub enum ShellType { type CreateArgs (line 971) | pub struct CreateArgs { type QuickArgs (line 1049) | pub struct QuickArgs { type UpdateArgs (line 1080) | pub struct UpdateArgs { type DeleteArgs (line 1172) | pub struct DeleteArgs { type InfoArgs (line 1204) | pub struct InfoArgs { type SchemaArgs (line 1220) | pub struct SchemaArgs { type SchemaTarget (line 1236) | pub enum SchemaTarget { type OutputFormat (line 1264) | pub enum OutputFormat { method from_env (line 1281) | pub fn from_env() -> Option { method parse_env_value (line 1295) | fn parse_env_value(value: &str) -> Option { method from (line 1319) | fn from(format: OutputFormatBasic) -> Self { type OutputFormatBasic (line 1308) | pub enum OutputFormatBasic { function resolve_output_format (line 1330) | pub fn resolve_output_format( function command_requests_robot_json (line 1346) | pub const fn command_requests_robot_json(cmd: &Commands) -> bool { type InheritedOutputMode (line 1364) | pub enum InheritedOutputMode { function resolve_output_format_with_outer_mode (line 1379) | pub fn resolve_output_format_with_outer_mode( function resolve_output_format_basic (line 1399) | pub fn resolve_output_format_basic( function resolve_output_format_basic_with_outer_mode (line 1414) | pub fn resolve_output_format_basic_with_outer_mode( type ListArgs (line 1430) | pub struct ListArgs { type SearchArgs (line 1544) | pub struct SearchArgs { type ShowArgs (line 1554) | pub struct ShowArgs { type DepCommands (line 1573) | pub enum DepCommands { type EpicCommands (line 1589) | pub enum EpicCommands { type EpicStatusArgs (line 1599) | pub struct EpicStatusArgs { type EpicCloseEligibleArgs (line 1607) | pub struct EpicCloseEligibleArgs { type DepAddArgs (line 1614) | pub struct DepAddArgs { type DepRemoveArgs (line 1633) | pub struct DepRemoveArgs { type DepListArgs (line 1644) | pub struct DepListArgs { type DepDirection (line 1667) | pub enum DepDirection { type DepTreeArgs (line 1678) | pub struct DepTreeArgs { type DepCyclesArgs (line 1697) | pub struct DepCyclesArgs { type LabelCommands (line 1704) | pub enum LabelCommands { type LabelAddArgs (line 1719) | pub struct LabelAddArgs { type LabelRemoveArgs (line 1730) | pub struct LabelRemoveArgs { type LabelListArgs (line 1741) | pub struct LabelListArgs { type LabelRenameArgs (line 1748) | pub struct LabelRenameArgs { type CommentsArgs (line 1758) | pub struct CommentsArgs { type CommentCommands (line 1772) | pub enum CommentCommands { type CommentAddArgs (line 1778) | pub struct CommentAddArgs { type CommentListArgs (line 1800) | pub struct CommentListArgs { type AuditCommands (line 1811) | pub enum AuditCommands { type AuditRecordArgs (line 1824) | pub struct AuditRecordArgs { type AuditLabelArgs (line 1863) | pub struct AuditLabelArgs { type AuditLogArgs (line 1877) | pub struct AuditLogArgs { type AuditSummaryArgs (line 1884) | pub struct AuditSummaryArgs { type CountArgs (line 1892) | pub struct CountArgs { type CountBy (line 1951) | pub enum CountBy { type StaleArgs (line 1960) | pub struct StaleArgs { type LintArgs (line 1971) | pub struct LintArgs { type DeferArgs (line 1987) | pub struct DeferArgs { type UndeferArgs (line 2003) | pub struct UndeferArgs { type ReadyArgs (line 2016) | pub struct ReadyArgs { type BlockedArgs (line 2087) | pub struct BlockedArgs { type CloseArgs (line 2127) | pub struct CloseArgs { type ReopenArgs (line 2155) | pub struct ReopenArgs { type SortPolicy (line 2171) | pub enum SortPolicy { type SyncArgs (line 2184) | pub struct SyncArgs { type ConfigCommands (line 2269) | pub enum ConfigCommands { type StatsArgs (line 2317) | pub struct StatsArgs { type HistoryArgs (line 2360) | pub struct HistoryArgs { type HistoryCommands (line 2366) | pub enum HistoryCommands { type VersionArgs (line 2395) | pub struct VersionArgs { type DoctorArgs (line 2407) | pub struct DoctorArgs { type UpgradeArgs (line 2420) | pub struct UpgradeArgs { type OrphansArgs (line 2440) | pub struct OrphansArgs { type ChangelogArgs (line 2456) | pub struct ChangelogArgs { type QueryCommands (line 2476) | pub enum QueryCommands { type QuerySaveArgs (line 2489) | pub struct QuerySaveArgs { type QueryRunArgs (line 2504) | pub struct QueryRunArgs { type QueryDeleteArgs (line 2516) | pub struct QueryDeleteArgs { type GraphArgs (line 2524) | pub struct GraphArgs { type AgentsArgs (line 2541) | pub struct AgentsArgs { constant CLI_REFERENCE (line 2580) | const CLI_REFERENCE: &str = include_str!("../../docs/CLI_REFERENCE.md"); function test_list_limit_defaults_to_50 (line 2583) | fn test_list_limit_defaults_to_50() { function test_list_limit_zero_parses_as_unlimited (line 2596) | fn test_list_limit_zero_parses_as_unlimited() { function test_ready_assignee_flag_accepts_missing_value (line 2609) | fn test_ready_assignee_flag_accepts_missing_value() { function test_ready_assignee_conflicts_with_unassigned (line 2622) | fn test_ready_assignee_conflicts_with_unassigned() { function test_create_positional_title_conflicts_with_title_flag (line 2629) | fn test_create_positional_title_conflicts_with_title_flag() { function test_issue_type_delimited_completion_preserves_plain_candidate_order (line 2637) | fn test_issue_type_delimited_completion_preserves_plain_candidate_order() { function test_agents_add_conflicts_with_check (line 2650) | fn test_agents_add_conflicts_with_check() { function test_saved_queries_from_db_reads_saved_query_names_without_config_scan (line 2657) | fn test_saved_queries_from_db_reads_saved_query_names_without_config_sca... function test_resolve_output_format_with_outer_mode_inherits_toon (line 2679) | fn test_resolve_output_format_with_outer_mode_inherits_toon() { function test_resolve_output_format_with_outer_mode_keeps_quiet_over_env_defaults (line 2686) | fn test_resolve_output_format_with_outer_mode_keeps_quiet_over_env_defau... function test_resolve_output_format_basic_with_outer_mode_honors_explicit_format (line 2693) | fn test_resolve_output_format_basic_with_outer_mode_honors_explicit_form... function test_cli_reference_documents_current_clap_surface (line 2703) | fn test_cli_reference_documents_current_clap_surface() { constant CLAP_DRIFT_SENTINELS (line 2708) | const CLAP_DRIFT_SENTINELS: &[&str] = &[ function assert_all_top_level_commands_are_documented (line 2728) | fn assert_all_top_level_commands_are_documented() { function is_generated_help_command (line 2743) | fn is_generated_help_command(name: &str) -> bool { function top_level_command_is_documented (line 2747) | fn top_level_command_is_documented(name: &str) -> bool { function assert_doc_contains_all (line 2757) | fn assert_doc_contains_all(needles: &[&str]) { function candidate_values (line 2766) | fn candidate_values(candidates: Vec) -> Vec { FILE: src/config/mod.rs function is_beads_dir_name (line 47) | pub fn is_beads_dir_name(name: &std::ffi::OsStr) -> bool { constant DEFAULT_DB_FILENAME (line 52) | const DEFAULT_DB_FILENAME: &str = "beads.db"; constant DEFAULT_JSONL_FILENAME (line 54) | const DEFAULT_JSONL_FILENAME: &str = "issues.jsonl"; constant LEGACY_JSONL_FILENAME (line 56) | const LEGACY_JSONL_FILENAME: &str = "beads.jsonl"; constant RECOVERY_DIR_NAME (line 58) | const RECOVERY_DIR_NAME: &str = ".br_recovery"; constant SYMLINKED_DB_RECOVERY_ERROR_PREFIX (line 59) | const SYMLINKED_DB_RECOVERY_ERROR_PREFIX: &str = constant EXCLUDED_JSONL_FILES (line 64) | const EXCLUDED_JSONL_FILES: &[&str] = &[ type Metadata (line 75) | pub struct Metadata { method load (line 101) | pub fn load(beads_dir: &Path) -> Result { method default (line 85) | fn default() -> Self { function discover_jsonl (line 129) | pub fn discover_jsonl(beads_dir: &Path) -> Option { function is_excluded_jsonl (line 150) | pub fn is_excluded_jsonl(filename: &str) -> bool { type ConfigPaths (line 159) | pub struct ConfigPaths { method resolve (line 172) | pub fn resolve(beads_dir: &Path, db_override: Option<&PathBuf>) -> Res... method user_config_path (line 188) | pub fn user_config_path(&self) -> Option { method legacy_user_config_path (line 203) | pub fn legacy_user_config_path(&self) -> Option { method project_config_path (line 211) | pub fn project_config_path(&self) -> Option { function discover_beads_dir (line 223) | pub fn discover_beads_dir(start: Option<&Path>) -> Result { function discover_beads_dir_with_env (line 227) | fn discover_beads_dir_with_env( function discover_beads_dir_candidate_with_env (line 244) | fn discover_beads_dir_candidate_with_env( function discover_beads_dir_with_cli (line 295) | pub fn discover_beads_dir_with_cli(cli: &CliOverrides) -> Result { function discover_optional_beads_dir_with_cli (line 311) | pub fn discover_optional_beads_dir_with_cli(cli: &CliOverrides) -> Resul... function discover_optional_beads_dir_candidate_with_cli (line 319) | pub(crate) fn discover_optional_beads_dir_candidate_with_cli( function discover_beads_dir_with_cli_from (line 329) | fn discover_beads_dir_with_cli_from( function discover_beads_dir_candidate_with_cli_from (line 379) | fn discover_beads_dir_candidate_with_cli_from( function startup_db_override_from_env (line 429) | fn startup_db_override_from_env() -> Option { function derive_beads_dir_from_db_path (line 441) | fn derive_beads_dir_from_db_path(db_path: &Path) -> Result { function validate_explicit_beads_dir (line 453) | fn validate_explicit_beads_dir(path: &Path, source: &str) -> Result Result Option { type RecoveryBackupSet (line 493) | struct RecoveryBackupSet { type RecoveryBackupPath (line 501) | type RecoveryBackupPath = (PathBuf, PathBuf); type VerifiedRecoveryBackupBatch (line 502) | type VerifiedRecoveryBackupBatch = (Vec, Vec bool { function is_recoverable_database_internal_error (line 872) | fn is_recoverable_database_internal_error(detail: &str) -> bool { function rebuild_or_defer_after_recoverable_anomaly (line 891) | fn rebuild_or_defer_after_recoverable_anomaly( function rebuild_or_defer_after_probe_error (line 947) | fn rebuild_or_defer_after_probe_error( function rebuild_with_tombstone_preservation (line 997) | fn rebuild_with_tombstone_preservation( function rebuild_database_from_jsonl (line 1011) | fn rebuild_database_from_jsonl( function preserved_unflushed_tombstones (line 1037) | fn preserved_unflushed_tombstones( function repair_database_from_jsonl (line 1068) | pub(crate) fn repair_database_from_jsonl( function should_surface_recovery_error (line 1106) | fn should_surface_recovery_error(recovery_err: &BeadsError) -> bool { function is_symlinked_database_recovery_error (line 1111) | fn is_symlinked_database_recovery_error(error: &BeadsError) -> bool { function reject_symlinked_database_path_for_recovery (line 1119) | fn reject_symlinked_database_path_for_recovery(db_path: &Path) -> Result... function recovery_restore_failure (line 1137) | fn recovery_restore_failure( function rollback_renamed_paths (line 1151) | fn rollback_renamed_paths(renamed_paths: &[RecoveryBackupPath], operatio... function sha256_file (line 1165) | fn sha256_file(path: &Path) -> Result { function recovery_artifact_fingerprint (line 1191) | fn recovery_artifact_fingerprint(path: &Path) -> Result( function rename_existing_paths_with_backup_verification (line 1359) | fn rename_existing_paths_with_backup_verification( function rebuild_database_family (line 1463) | fn rebuild_database_family( function verify_rebuilt_database_postconditions (line 1531) | fn verify_rebuilt_database_postconditions( function verify_rebuilt_table_count (line 1611) | fn verify_rebuilt_table_count( function count_recovery_table_rows (line 1627) | fn count_recovery_table_rows(storage: &SqliteStorage, table: &str) -> Re... function verify_blocked_cache_payloads (line 1662) | fn verify_blocked_cache_payloads(storage: &SqliteStorage) -> Result<()> { function verify_child_counters (line 1696) | fn verify_child_counters(storage: &SqliteStorage, rebuilt_count: usize) ... function expected_child_counters (line 1715) | fn expected_child_counters(storage: &SqliteStorage) -> Result Result( function backup_database_family_for_recovery (line 1978) | fn backup_database_family_for_recovery( function prepare_missing_database_cleanup_for_recovery (line 1986) | fn prepare_missing_database_cleanup_for_recovery( function move_database_family_to_recovery (line 2003) | fn move_database_family_to_recovery( function restore_database_family_after_failed_rebuild (line 2029) | fn restore_database_family_after_failed_rebuild(backup_set: &RecoveryBac... function recovery_dir_for_db_path (line 2072) | pub(crate) fn recovery_dir_for_db_path(db_path: &Path, beads_dir: &Path)... function database_family_paths (line 2079) | fn database_family_paths(db_path: &Path) -> Vec { function copy_database_family_to_directory (line 2089) | fn copy_database_family_to_directory(db_path: &Path, destination_dir: &P... function with_database_family_snapshot (line 2143) | pub(crate) fn with_database_family_snapshot(db_path: &Path, read: ... function recovery_backup_filename (line 2157) | fn recovery_backup_filename(path: &Path, stamp: &str, suffix: &str) -> S... function quarantine_database_artifacts (line 2165) | pub(crate) fn quarantine_database_artifacts( function open_storage (line 2206) | pub fn open_storage( type OpenStorageResult (line 2229) | pub struct OpenStorageResult { method load_config (line 2254) | pub fn load_config(&self, cli: &CliOverrides) -> Result { method classify (line 2272) | pub fn classify(&self) -> Result Result<()> { method pending_recovery_dir (line 2332) | pub(crate) fn pending_recovery_dir(&self) -> Option<&Path> { method discard_pending_recovery_backup (line 2338) | pub(crate) fn discard_pending_recovery_backup(&mut self) { method restore_pending_recovery_backup (line 2348) | pub(crate) fn restore_pending_recovery_backup(&mut self) -> Result<()> { method flush_no_db_if_dirty (line 2381) | pub fn flush_no_db_if_dirty(&mut self) -> Result<()> { method flush_no_db_then (line 2448) | pub fn flush_no_db_then(&mut self, on_success: F) -> Result method auto_flush_if_enabled (line 2465) | pub fn auto_flush_if_enabled(&mut self) -> Result<()> { function open_storage_with_startup_config (line 2485) | pub fn open_storage_with_startup_config( function open_storage_with_startup_config_under_write_lock (line 2499) | pub fn open_storage_with_startup_config_under_write_lock( function open_sqlite_storage_for_startup (line 2507) | fn open_sqlite_storage_for_startup( function open_storage_with_startup_config_impl (line 2552) | fn open_storage_with_startup_config_impl( function open_storage_with_cli_impl (line 2655) | fn open_storage_with_cli_impl( function open_storage_with_cli (line 2664) | pub fn open_storage_with_cli(beads_dir: &Path, cli: &CliOverrides) -> Re... function open_storage_with_cli_deferred_jsonl_recovery (line 2668) | pub fn open_storage_with_cli_deferred_jsonl_recovery( function no_db_from_layer (line 2676) | pub fn no_db_from_layer(layer: &ConfigLayer) -> Option { function no_auto_flush_from_layer (line 2691) | pub fn no_auto_flush_from_layer(layer: &ConfigLayer) -> Option { function no_auto_import_from_layer (line 2712) | pub fn no_auto_import_from_layer(layer: &ConfigLayer) -> Option { function resolve_bootstrap_issue_prefix (line 2730) | fn resolve_bootstrap_issue_prefix( function import_config_for_resolved_jsonl (line 2759) | fn import_config_for_resolved_jsonl( function resolved_jsonl_path_is_external (line 2772) | pub(crate) fn resolved_jsonl_path_is_external(beads_dir: &Path, jsonl_pa... function implicit_external_jsonl_allowed (line 2784) | pub fn implicit_external_jsonl_allowed( function path_is_within_beads_dir (line 2795) | fn path_is_within_beads_dir(path: &Path, beads_dir: &Path) -> bool { function first_prefix_from_jsonl (line 2816) | pub(crate) fn first_prefix_from_jsonl(jsonl_path: &Path) -> Result) ->... function resolve_db_path (line 2870) | fn resolve_db_path( function resolve_jsonl_path (line 2890) | fn resolve_jsonl_path( type ConfigLayer (line 2937) | pub struct ConfigLayer { method get (line 2945) | pub fn get(&self, key: &str) -> Option<&str> { method merge_from (line 2957) | pub fn merge_from(&mut self, other: &Self) { method merge_layers (line 2988) | pub fn merge_layers(layers: &[Self]) -> Self { method from_yaml (line 3001) | pub fn from_yaml(path: &Path) -> Result { method from_env (line 3013) | pub fn from_env() -> Self { method from_db (line 3048) | pub fn from_db(storage: &SqliteStorage) -> Result { type CliOverrides (line 3063) | pub struct CliOverrides { method as_layer (line 3081) | pub fn as_layer(&self) -> ConfigLayer { function load_project_config (line 3130) | pub fn load_project_config(beads_dir: &Path) -> Result { function load_user_config (line 3139) | pub fn load_user_config() -> Result { function load_legacy_user_config (line 3157) | pub fn load_legacy_user_config() -> Result { function load_startup_config (line 3170) | pub fn load_startup_config(beads_dir: &Path) -> Result { function default_config_layer (line 3186) | pub fn default_config_layer() -> ConfigLayer { function load_config (line 3199) | pub fn load_config( function load_config_from_startup_layers (line 3208) | fn load_config_from_startup_layers( type StartupConfig (line 3242) | pub struct StartupConfig { function load_startup_config_with_paths (line 3254) | pub fn load_startup_config_with_paths( function configured_issue_prefix_from_map (line 3288) | pub(crate) fn configured_issue_prefix_from_map( function id_config_from_layer (line 3302) | pub fn id_config_from_layer(layer: &ConfigLayer) -> IdConfig { function default_priority_from_layer (line 3326) | pub fn default_priority_from_layer(layer: &ConfigLayer) -> Result Result Option { function should_use_color (line 3357) | pub fn should_use_color(layer: &ConfigLayer) -> bool { function external_projects_from_layer (line 3372) | pub fn external_projects_from_layer( function external_project_db_paths (line 3412) | pub fn external_project_db_paths( function actor_from_layer (line 3457) | pub fn actor_from_layer(layer: &ConfigLayer) -> Option { function resolve_actor (line 3466) | pub fn resolve_actor(layer: &ConfigLayer) -> String { function claim_exclusive_from_layer (line 3482) | pub fn claim_exclusive_from_layer(layer: &ConfigLayer) -> bool { function is_startup_key (line 3492) | pub fn is_startup_key(key: &str) -> bool { function insert_key_value (line 3528) | fn insert_key_value(layer: &mut ConfigLayer, key: &str, value: String) { function normalize_key (line 3539) | fn normalize_key(key: &str) -> String { function env_key_variants (line 3543) | fn env_key_variants(raw: &str) -> Vec { function parse_bool (line 3552) | fn parse_bool(value: &str) -> Option { function get_startup_value (line 3560) | fn get_startup_value<'a>(layer: &'a ConfigLayer, keys: &[&str]) -> Optio... function get_value (line 3574) | fn get_value<'a>(layer: &'a ConfigLayer, keys: &[&str]) -> Option<&'a St... function parse_usize (line 3588) | fn parse_usize(layer: &ConfigLayer, keys: &[&str]) -> Option { function parse_f64 (line 3592) | fn parse_f64(layer: &ConfigLayer, keys: &[&str]) -> Option { function db_override_from_layer (line 3596) | fn db_override_from_layer(layer: &ConfigLayer) -> Option { function resolve_db_override_from_layer (line 3607) | fn resolve_db_override_from_layer(beads_dir: &Path, layer: &ConfigLayer)... function lock_timeout_from_layer (line 3618) | pub fn lock_timeout_from_layer(layer: &ConfigLayer) -> Option { function layer_from_yaml_value (line 3623) | fn layer_from_yaml_value(value: &serde_yml::Value) -> ConfigLayer { function flatten_yaml (line 3635) | fn flatten_yaml(value: &serde_yml::Value, prefix: &str, out: &mut HashMa... function yaml_scalar_to_string (line 3666) | fn yaml_scalar_to_string(value: &serde_yml::Value) -> Option { type RelationRichFixture (line 3687) | struct RelationRichFixture { function write_issue_jsonl (line 3693) | fn write_issue_jsonl(path: &Path, issue: &Issue) { function write_single_issue_jsonl (line 3698) | fn write_single_issue_jsonl(path: &Path, id: &str, title: &str) { function relation_rich_rebuild_fixture (line 3710) | fn relation_rich_rebuild_fixture() -> RelationRichFixture { function create_malformed_blocked_cache_db (line 3794) | fn create_malformed_blocked_cache_db(db_path: &Path) { function insert_duplicate_issue_prefix_config_row (line 3815) | fn insert_duplicate_issue_prefix_config_row(db_path: &Path, value: &str) { function metadata_defaults_when_missing (line 3825) | fn metadata_defaults_when_missing() { function metadata_override_paths (line 3836) | fn metadata_override_paths() { function merge_precedence_order (line 3851) | fn merge_precedence_order() { function config_layer_get_checks_runtime_then_startup_without_canonicalizing (line 3879) | fn config_layer_get_checks_runtime_then_startup_without_canonicalizing() { function yaml_startup_keys_are_separated (line 3897) | fn yaml_startup_keys_are_separated() { function yaml_sequence_flattens_to_csv (line 3909) | fn yaml_sequence_flattens_to_csv() { function id_config_parses_numeric_overrides (line 3921) | fn id_config_parses_numeric_overrides() { function default_priority_from_layer_uses_config_value (line 3944) | fn default_priority_from_layer_uses_config_value() { function default_priority_from_layer_errors_on_invalid_value (line 3955) | fn default_priority_from_layer_errors_on_invalid_value() { function default_issue_type_from_layer_uses_config_value (line 3965) | fn default_issue_type_from_layer_uses_config_value() { function db_layer_skips_startup_keys (line 3976) | fn db_layer_skips_startup_keys() { function startup_layer_reads_db_override (line 3989) | fn startup_layer_reads_db_override() { function resolve_db_override_from_layer_anchors_relative_paths_to_beads_cache_dir (line 4000) | fn resolve_db_override_from_layer_anchors_relative_paths_to_beads_cache_... function startup_layer_reads_lock_timeout (line 4016) | fn startup_layer_reads_lock_timeout() { function precedence_default_is_lowest (line 4030) | fn precedence_default_is_lowest() { function precedence_db_overrides_default (line 4044) | fn precedence_db_overrides_default() { function precedence_yaml_overrides_db (line 4055) | fn precedence_yaml_overrides_db() { function precedence_env_overrides_yaml (line 4069) | fn precedence_env_overrides_yaml() { function precedence_cli_overrides_all (line 4084) | fn precedence_cli_overrides_all() { function precedence_chain_includes_legacy_and_user_layers (line 4105) | fn precedence_chain_includes_legacy_and_user_layers() { function precedence_full_chain_with_different_keys (line 4142) | fn precedence_full_chain_with_different_keys() { function metadata_handles_empty_strings (line 4176) | fn metadata_handles_empty_strings() { function metadata_handles_extra_fields (line 4193) | fn metadata_handles_extra_fields() { function metadata_with_backend_and_retention (line 4210) | fn metadata_with_backend_and_retention() { function discover_beads_dir_returns_error_when_not_found (line 4225) | fn discover_beads_dir_returns_error_when_not_found() { function discover_beads_dir_finds_at_root (line 4235) | fn discover_beads_dir_finds_at_root() { function discover_beads_dir_deeply_nested (line 4245) | fn discover_beads_dir_deeply_nested() { function discover_optional_beads_dir_with_cli_uses_explicit_db_override (line 4265) | fn discover_optional_beads_dir_with_cli_uses_explicit_db_override() { function discover_beads_dir_with_cli_from_uses_env_db_override (line 4281) | fn discover_beads_dir_with_cli_from_uses_env_db_override() { function discover_optional_beads_dir_with_cli_follows_redirect_for_explicit_db_override (line 4295) | fn discover_optional_beads_dir_with_cli_follows_redirect_for_explicit_db... function discover_beads_dir_with_env_override_rejects_invalid_path_even_when_workspace_exists (line 4314) | fn discover_beads_dir_with_env_override_rejects_invalid_path_even_when_w... function discover_beads_dir_with_cli_from_falls_back_to_workspace_for_external_db_override (line 4331) | fn discover_beads_dir_with_cli_from_falls_back_to_workspace_for_external... function discover_beads_dir_with_cli_from_falls_back_to_workspace_for_external_cli_db_override (line 4349) | fn discover_beads_dir_with_cli_from_falls_back_to_workspace_for_external... function discover_beads_dir_with_cli_from_falls_back_to_workspace_for_relative_cli_db_override (line 4371) | fn discover_beads_dir_with_cli_from_falls_back_to_workspace_for_relative... function discover_beads_dir_with_cli_from_errors_for_external_cli_db_override_without_workspace (line 4393) | fn discover_beads_dir_with_cli_from_errors_for_external_cli_db_override_... function discover_beads_dir_with_cli_from_errors_for_external_db_override_without_workspace (line 4420) | fn discover_beads_dir_with_cli_from_errors_for_external_db_override_with... function env_key_variants_generates_all_forms (line 4440) | fn env_key_variants_generates_all_forms() { function normalize_key_handles_various_formats (line 4448) | fn normalize_key_handles_various_formats() { function parse_bool_handles_all_truthy_values (line 4456) | fn parse_bool_handles_all_truthy_values() { function parse_bool_handles_all_falsy_values (line 4467) | fn parse_bool_handles_all_falsy_values() { function parse_bool_returns_none_for_invalid (line 4478) | fn parse_bool_returns_none_for_invalid() { function is_startup_key_identifies_startup_keys (line 4485) | fn is_startup_key_identifies_startup_keys() { function is_startup_key_identifies_runtime_keys (line 4500) | fn is_startup_key_identifies_runtime_keys() { function resolve_db_path_absolute_in_metadata (line 4508) | fn resolve_db_path_absolute_in_metadata() { function resolve_db_path_relative_in_metadata (line 4526) | fn resolve_db_path_relative_in_metadata() { function resolve_db_path_override_wins (line 4543) | fn resolve_db_path_override_wins() { function resolve_jsonl_path_absolute_in_metadata (line 4556) | fn resolve_jsonl_path_absolute_in_metadata() { function resolve_jsonl_path_relative_in_metadata (line 4574) | fn resolve_jsonl_path_relative_in_metadata() { function resolve_jsonl_path_db_override_derives_sibling (line 4591) | fn resolve_jsonl_path_db_override_derives_sibling() { function resolve_jsonl_path_db_override_prefers_existing_legacy_sibling (line 4604) | fn resolve_jsonl_path_db_override_prefers_existing_legacy_sibling() { function cli_overrides_as_layer_sets_startup_keys (line 4617) | fn cli_overrides_as_layer_sets_startup_keys() { function cli_overrides_empty_produces_empty_layer (line 4648) | fn cli_overrides_empty_produces_empty_layer() { function no_auto_flush_from_layer_reads_sync_auto_flush_false (line 4657) | fn no_auto_flush_from_layer_reads_sync_auto_flush_false() { function no_auto_flush_from_layer_reads_sync_auto_flush_true (line 4671) | fn no_auto_flush_from_layer_reads_sync_auto_flush_true() { function no_auto_flush_from_layer_canonical_key_beats_legacy_key (line 4685) | fn no_auto_flush_from_layer_canonical_key_beats_legacy_key() { function no_auto_flush_from_layer_hyphen_underscore_equivalence (line 4704) | fn no_auto_flush_from_layer_hyphen_underscore_equivalence() { function cli_no_auto_flush_overrides_config_sync_auto_flush (line 4719) | fn cli_no_auto_flush_overrides_config_sync_auto_flush() { function yaml_nested_keys_flatten_with_dots (line 4745) | fn yaml_nested_keys_flatten_with_dots() { function actor_from_layer_returns_none_for_empty (line 4765) | fn actor_from_layer_returns_none_for_empty() { function actor_from_layer_returns_trimmed_value (line 4777) | fn actor_from_layer_returns_trimmed_value() { function external_projects_runtime_mapping_overrides_startup_mapping (line 4788) | fn external_projects_runtime_mapping_overrides_startup_mapping() { function resolved_jsonl_path_drives_prefix_inference (line 4812) | fn resolved_jsonl_path_drives_prefix_inference() { function first_prefix_from_jsonl_preserves_hyphenated_prefixes (line 4838) | fn first_prefix_from_jsonl_preserves_hyphenated_prefixes() { function first_prefix_from_jsonl_preserves_hyphenated_prefixes_across_multiple_rows (line 4857) | fn first_prefix_from_jsonl_preserves_hyphenated_prefixes_across_multiple... function resolve_paths_honors_relative_project_db_override (line 4890) | fn resolve_paths_honors_relative_project_db_override() { function resolve_actor_falls_back_to_unknown (line 4904) | fn resolve_actor_falls_back_to_unknown() { function merge_from_overwrites_existing_keys (line 4914) | fn merge_from_overwrites_existing_keys() { function merge_from_preserves_non_conflicting_keys (line 4936) | fn merge_from_preserves_non_conflicting_keys() { function config_paths_resolve_with_default_metadata (line 4953) | fn config_paths_resolve_with_default_metadata() { function load_project_config_returns_empty_when_missing (line 4967) | fn load_project_config_returns_empty_when_missing() { function load_project_config_parses_yaml (line 4978) | fn load_project_config_parses_yaml() { function id_config_uses_defaults_when_keys_missing (line 4995) | fn id_config_uses_defaults_when_keys_missing() { function id_config_handles_hyphenated_keys (line 5006) | fn id_config_handles_hyphenated_keys() { function id_config_accepts_legacy_prefix_key (line 5021) | fn id_config_accepts_legacy_prefix_key() { function id_config_normalizes_issue_prefix_values (line 5032) | fn id_config_normalizes_issue_prefix_values() { function discover_jsonl_prefers_issues_over_legacy (line 5046) | fn discover_jsonl_prefers_issues_over_legacy() { function discover_jsonl_falls_back_to_legacy (line 5060) | fn discover_jsonl_falls_back_to_legacy() { function discover_jsonl_returns_none_when_empty (line 5073) | fn discover_jsonl_returns_none_when_empty() { function discover_jsonl_ignores_merge_artifacts (line 5084) | fn discover_jsonl_ignores_merge_artifacts() { function is_excluded_jsonl_detects_merge_artifacts (line 5099) | fn is_excluded_jsonl_detects_merge_artifacts() { function is_excluded_jsonl_detects_deletion_log (line 5106) | fn is_excluded_jsonl_detects_deletion_log() { function is_excluded_jsonl_detects_interaction_log (line 5112) | fn is_excluded_jsonl_detects_interaction_log() { function is_excluded_jsonl_detects_excluded_basename_in_absolute_path (line 5117) | fn is_excluded_jsonl_detects_excluded_basename_in_absolute_path() { function is_excluded_jsonl_allows_valid_files (line 5122) | fn is_excluded_jsonl_allows_valid_files() { function resolve_jsonl_uses_discovery_when_no_override (line 5129) | fn resolve_jsonl_uses_discovery_when_no_override() { function resolve_jsonl_prefers_metadata_override (line 5145) | fn resolve_jsonl_prefers_metadata_override() { function resolve_jsonl_ignores_excluded_metadata (line 5167) | fn resolve_jsonl_ignores_excluded_metadata() { function resolve_jsonl_defaults_when_nothing_exists (line 5189) | fn resolve_jsonl_defaults_when_nothing_exists() { function resolve_jsonl_db_override_derives_sibling (line 5203) | fn resolve_jsonl_db_override_derives_sibling() { function config_paths_uses_discovery (line 5222) | fn config_paths_uses_discovery() { function metadata_jsonl_override_respected (line 5237) | fn metadata_jsonl_override_respected() { function metadata_jsonl_override_respected_even_with_db_override (line 5257) | fn metadata_jsonl_override_respected_even_with_db_override() { function multiple_jsonl_candidates_prefers_issues (line 5282) | fn multiple_jsonl_candidates_prefers_issues() { function should_attempt_jsonl_recovery_only_for_corruption_errors (line 5300) | fn should_attempt_jsonl_recovery_only_for_corruption_errors() { function resolve_bootstrap_issue_prefix_prefers_bootstrap_layer (line 5402) | fn resolve_bootstrap_issue_prefix_prefers_bootstrap_layer() { function resolve_bootstrap_issue_prefix_normalizes_directory_name (line 5420) | fn resolve_bootstrap_issue_prefix_normalizes_directory_name() { function open_storage_with_cli_recovers_corrupt_db_from_valid_jsonl (line 5435) | fn open_storage_with_cli_recovers_corrupt_db_from_valid_jsonl() { function open_storage_with_cli_recovers_malformed_schema_db_from_valid_jsonl (line 5486) | fn open_storage_with_cli_recovers_malformed_schema_db_from_valid_jsonl() { function open_storage_with_cli_recovers_malformed_schema_db_with_in_progress_issue (line 5530) | fn open_storage_with_cli_recovers_malformed_schema_db_with_in_progress_i... function open_storage_with_cli_recovers_when_post_open_probe_finds_duplicate_config_rows (line 5578) | fn open_storage_with_cli_recovers_when_post_open_probe_finds_duplicate_c... function vacuum_into_reopen_failure_returns_error_without_storage_handle (line 5627) | fn vacuum_into_reopen_failure_returns_error_without_storage_handle() { function deferred_recovery_restore_reopens_original_database_family (line 5675) | fn deferred_recovery_restore_reopens_original_database_family() { function deferred_recovery_restore_for_missing_db_cleans_up_fresh_database_family (line 5739) | fn deferred_recovery_restore_for_missing_db_cleans_up_fresh_database_fam... function open_storage_with_startup_config_uses_preloaded_paths (line 5774) | fn open_storage_with_startup_config_uses_preloaded_paths() { function open_storage_with_cli_recovers_using_resolved_external_jsonl (line 5826) | fn open_storage_with_cli_recovers_using_resolved_external_jsonl() { function open_storage_with_cli_rebuilds_missing_db_from_jsonl (line 5854) | fn open_storage_with_cli_rebuilds_missing_db_from_jsonl() { function read_only_fast_open_miss_waits_for_write_lock_before_rebuild (line 5876) | fn read_only_fast_open_miss_waits_for_write_lock_before_rebuild() { function rebuilt_database_postconditions_reject_issue_count_mismatch (line 5902) | fn rebuilt_database_postconditions_reject_issue_count_mismatch() { function rebuilt_database_postconditions_reject_orphaned_issue_references (line 5921) | fn rebuilt_database_postconditions_reject_orphaned_issue_references() { function rebuilt_database_postconditions_allow_external_dependency_targets (line 5953) | fn rebuilt_database_postconditions_allow_external_dependency_targets() { function rebuilt_database_postconditions_accept_relation_rich_state (line 5982) | fn rebuilt_database_postconditions_accept_relation_rich_state() { function rebuilt_database_postconditions_reject_missing_labels (line 5990) | fn rebuilt_database_postconditions_reject_missing_labels() { function rebuilt_database_postconditions_reject_missing_dependencies (line 6006) | fn rebuilt_database_postconditions_reject_missing_dependencies() { function rebuilt_database_postconditions_reject_missing_comments (line 6022) | fn rebuilt_database_postconditions_reject_missing_comments() { function rebuilt_database_postconditions_reject_stale_events (line 6038) | fn rebuilt_database_postconditions_reject_stale_events() { function rebuilt_database_postconditions_reject_child_counter_drift (line 6056) | fn rebuilt_database_postconditions_reject_child_counter_drift() { function open_storage_with_cli_no_db_supports_external_jsonl (line 6073) | fn open_storage_with_cli_no_db_supports_external_jsonl() { function open_storage_with_cli_no_db_keeps_distinct_closed_issues_with_identical_content (line 6118) | fn open_storage_with_cli_no_db_keeps_distinct_closed_issues_with_identic... function implicit_external_jsonl_allowed_requires_external_db_family (line 6177) | fn implicit_external_jsonl_allowed_requires_external_db_family() { function database_snapshot_keeps_live_sidecars_absent (line 6196) | fn database_snapshot_keeps_live_sidecars_absent() { function open_storage_with_cli_no_db_flushes_force_flush_without_dirty_rows (line 6234) | fn open_storage_with_cli_no_db_flushes_force_flush_without_dirty_rows() { function open_storage_with_cli_no_db_refuses_to_flush_stale_snapshot (line 6281) | fn open_storage_with_cli_no_db_refuses_to_flush_stale_snapshot() { function open_storage_with_cli_no_db_does_not_render_after_flush_conflict (line 6328) | fn open_storage_with_cli_no_db_does_not_render_after_flush_conflict() { function open_storage_with_cli_no_db_does_not_update_last_touched_after_flush_conflict (line 6374) | fn open_storage_with_cli_no_db_does_not_update_last_touched_after_flush_... function open_storage_with_cli_backs_up_non_file_sidecars_that_block_recovery (line 6421) | fn open_storage_with_cli_backs_up_non_file_sidecars_that_block_recovery() { function open_storage_result_load_config_matches_direct_load_config (line 6476) | fn open_storage_result_load_config_matches_direct_load_config() { function open_storage_with_cli_backs_up_rollback_journal_sidecars_during_recovery (line 6506) | fn open_storage_with_cli_backs_up_rollback_journal_sidecars_during_recov... function open_storage_with_cli_does_not_recover_from_invalid_jsonl (line 6561) | fn open_storage_with_cli_does_not_recover_from_invalid_jsonl() { function open_storage_with_cli_refuses_recovery_for_symlinked_db_path (line 6593) | fn open_storage_with_cli_refuses_recovery_for_symlinked_db_path() { function deferred_jsonl_recovery_refuses_broken_symlinked_db_path (line 6647) | fn deferred_jsonl_recovery_refuses_broken_symlinked_db_path() { function quarantine_truncated_wal_sidecar_moves_wal_and_shm_to_recovery (line 6694) | fn quarantine_truncated_wal_sidecar_moves_wal_and_shm_to_recovery() { function quarantine_truncated_wal_sidecar_leaves_valid_wal_family_in_place (line 6763) | fn quarantine_truncated_wal_sidecar_leaves_valid_wal_family_in_place() { function move_database_family_to_recovery_records_verified_file_backups (line 6786) | fn move_database_family_to_recovery_records_verified_file_backups() { function verify_recovery_backup_artifact_rejects_digest_mismatch (line 6824) | fn verify_recovery_backup_artifact_rejects_digest_mismatch() { function move_database_family_to_recovery_rolls_back_partial_failure (line 6844) | fn move_database_family_to_recovery_rolls_back_partial_failure() { function restore_database_family_after_failed_rebuild_rolls_back_partial_rebuild_staging (line 6881) | fn restore_database_family_after_failed_rebuild_rolls_back_partial_rebui... function move_database_family_to_recovery_backs_up_dangling_symlink_sidecars (line 6944) | fn move_database_family_to_recovery_backs_up_dangling_symlink_sidecars() { FILE: src/config/routing.rs type RouteEntry (line 30) | pub struct RouteEntry { type RoutingResult (line 39) | pub struct RoutingResult { method local (line 64) | pub const fn local(beads_dir: PathBuf) -> Self { method external (line 74) | pub const fn external(beads_dir: PathBuf, project_path: String) -> Self { type RoutedIssueBatch (line 50) | pub struct RoutedIssueBatch { function extract_prefix (line 92) | pub fn extract_prefix(issue_id: &str) -> Option { function find_town_root (line 100) | pub fn find_town_root(start: &Path) -> Option { function load_routes (line 125) | pub fn load_routes(routes_path: &Path) -> Result> { function find_route (line 163) | pub fn find_route<'a>(routes: &'a [RouteEntry], prefix: &str) -> Option<... function read_redirect (line 177) | pub fn read_redirect(beads_dir: &Path) -> Result> { function follow_redirects (line 216) | pub fn follow_redirects(start: &Path, max_depth: usize) -> Result PathBuf { function resolve_route (line 288) | pub fn resolve_route(issue_id: &str, local_beads_dir: &Path) -> Result bool { function extract_prefix_basic (line 413) | fn extract_prefix_basic() { function load_routes_empty (line 433) | fn load_routes_empty() { function load_routes_valid (line 440) | fn load_routes_valid() { function find_route_match (line 458) | fn find_route_match() { function read_redirect_none (line 476) | fn read_redirect_none() { function read_redirect_absolute (line 482) | fn read_redirect_absolute() { function read_redirect_relative (line 492) | fn read_redirect_relative() { function read_redirect_dot_stays_in_beads_dir (line 510) | fn read_redirect_dot_stays_in_beads_dir() { function follow_redirects_rejects_non_beads_directory_target (line 522) | fn follow_redirects_rejects_non_beads_directory_target() { function follow_redirects_rejects_redirect_chains_beyond_max_depth (line 545) | fn follow_redirects_rejects_redirect_chains_beyond_max_depth() { function follow_redirects_allows_dot_redirect_to_current_beads_dir (line 570) | fn follow_redirects_allows_dot_redirect_to_current_beads_dir() { function follow_redirects_detects_loops_after_canonicalizing_targets (line 582) | fn follow_redirects_detects_loops_after_canonicalizing_targets() { function is_external_id_check (line 605) | fn is_external_id_check() { function resolve_route_no_prefix (line 613) | fn resolve_route_no_prefix() { function resolve_route_no_routes_file (line 624) | fn resolve_route_no_routes_file() { function resolve_route_with_local_route (line 635) | fn resolve_route_with_local_route() { function group_issue_inputs_by_route_preserves_first_seen_batch_order (line 661) | fn group_issue_inputs_by_route_preserves_first_seen_batch_order() { function resolve_route_self_path_is_not_external_after_normalization (line 699) | fn resolve_route_self_path_is_not_external_after_normalization() { function group_issue_inputs_by_route_merges_equivalent_external_paths (line 718) | fn group_issue_inputs_by_route_merges_equivalent_external_paths() { function find_town_root_test (line 751) | fn find_town_root_test() { function find_town_root_not_found (line 768) | fn find_town_root_not_found() { FILE: src/error/context.rs type ResultExt (line 12) | pub trait ResultExt { method context (line 18) | fn context(self, ctx: impl Into) -> Result; method with_context (line 25) | fn with_context(self, f: F) -> Result function context (line 35) | fn context(self, ctx: impl Into) -> Result { function with_context (line 42) | fn with_context(self, f: F) -> Result type OptionExt (line 55) | pub trait OptionExt { method ok_or_context (line 61) | fn ok_or_context(self, ctx: impl Into) -> Result; function ok_or_context (line 65) | fn ok_or_context(self, ctx: impl Into) -> Result { function test_context_on_io_error (line 76) | fn test_context_on_io_error() { function test_with_context_lazy (line 87) | fn test_with_context_lazy() { function test_option_ext (line 98) | fn test_option_ext() { FILE: src/error/mod.rs type BeadsError (line 26) | pub enum BeadsError { method is_transient (line 179) | pub fn is_transient(&self) -> bool { method is_user_recoverable (line 226) | pub const fn is_user_recoverable(&self) -> bool { method suggests_force (line 243) | pub const fn suggests_force(&self) -> bool { method suggestion (line 254) | pub const fn suggestion(&self) -> Option<&'static str> { method exit_code (line 282) | pub fn exit_code(&self) -> i32 { method validation (line 288) | pub fn validation(field: impl Into, reason: impl Into)... method external_command (line 297) | pub fn external_command(command: impl Into, reason: impl Into<... method upgrade (line 306) | pub fn upgrade(reason: impl Into) -> Self { method internal (line 314) | pub fn internal(message: impl Into) -> Self { method from_validation_errors (line 322) | pub fn from_validation_errors(errors: Vec) -> Self { type ValidationError (line 197) | pub struct ValidationError { method new (line 207) | pub fn new(field: impl Into, message: impl Into) -> Se... method fmt (line 216) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type Result (line 338) | pub type Result = std::result::Result; function test_error_display (line 345) | fn test_error_display() { function test_validation_error (line 353) | fn test_validation_error() { function test_external_command_uses_io_error_code (line 359) | fn test_external_command_uses_io_error_code() { function test_internal_uses_internal_error_code (line 368) | fn test_internal_uses_internal_error_code() { function test_upgrade_uses_io_error_code_with_context (line 377) | fn test_upgrade_uses_io_error_code_with_context() { function test_user_recoverable (line 391) | fn test_user_recoverable() { function test_suggestion (line 401) | fn test_suggestion() { function test_validation_error_struct (line 423) | fn test_validation_error_struct() { FILE: src/error/structured.rs constant PRIORITY_DETAIL_HINT (line 28) | const PRIORITY_DETAIL_HINT: &str = constant PRIORITY_SHORT_HINT (line 30) | const PRIORITY_SHORT_HINT: &str = "Priority must be 0-4 (0=critical, 4=b... constant VALID_STATUS_HINT (line 31) | const VALID_STATUS_HINT: &str = constant VALID_TYPE_HINT (line 33) | const VALID_TYPE_HINT: &str = "Valid types: task, bug, feature, epic, ch... function flag_value_hint (line 36) | fn flag_value_hint(flag: &str, detected: &str) -> String { type ErrorCode (line 45) | pub enum ErrorCode { method as_str (line 136) | pub const fn as_str(&self) -> &'static str { method is_retryable (line 190) | pub const fn is_retryable(&self) -> bool { method exit_code (line 215) | pub const fn exit_code(&self) -> i32 { type StructuredError (line 268) | pub struct StructuredError { method from_error (line 286) | pub fn from_error(err: &BeadsError) -> Self { method hint_source (line 299) | fn hint_source(err: &BeadsError) -> &BeadsError { method add_wrapper_context (line 308) | fn add_wrapper_context(wrapper_context: &str, inner_context: Option ... method ambiguous_id (line 356) | pub fn ambiguous_id(partial: &str, matches: &[String]) -> Self { method cycle_detected (line 383) | pub fn cycle_detected(cycle_path: &str) -> Self { method not_initialized (line 402) | pub fn not_initialized() -> Self { method invalid_priority (line 414) | pub fn invalid_priority(provided: &str) -> Self { method invalid_status (line 443) | pub fn invalid_status(provided: &str) -> Self { method invalid_type (line 465) | pub fn invalid_type(provided: &str) -> Self { method to_json (line 487) | pub fn to_json(&self) -> Value { method to_human (line 501) | pub fn to_human(&self, color: bool) -> String { method extract_code_and_context (line 529) | fn extract_code_and_context(err: &BeadsError) -> (ErrorCode, Option) -> Option<... function detect_status_intent (line 842) | fn detect_status_intent(input: &str) -> Option<&'static str> { function detect_type_intent (line 866) | fn detect_type_intent(input: &str) -> Option<&'static str> { function detect_priority_intent (line 890) | fn detect_priority_intent(input: &str) -> Option<&'static str> { function levenshtein_distance (line 929) | fn levenshtein_distance(a: &str, b: &str) -> usize { function find_similar_ids (line 969) | pub fn find_similar_ids( function test_error_code_as_str (line 996) | fn test_error_code_as_str() { function test_error_code_is_retryable (line 1003) | fn test_error_code_is_retryable() { function test_error_code_exit_codes (line 1012) | fn test_error_code_exit_codes() { function test_structured_error_to_json (line 1024) | fn test_structured_error_to_json() { function test_levenshtein_distance (line 1039) | fn test_levenshtein_distance() { function test_find_similar_ids (line 1048) | fn test_find_similar_ids() { function test_detect_status_intent (line 1063) | fn test_detect_status_intent() { function test_detect_type_intent (line 1073) | fn test_detect_type_intent() { function test_detect_priority_intent (line 1082) | fn test_detect_priority_intent() { function test_detect_priority_intent_all_digits (line 1092) | fn test_detect_priority_intent_all_digits() { function test_detect_priority_intent_all_p_prefixed (line 1099) | fn test_detect_priority_intent_all_p_prefixed() { function test_detect_priority_intent_rejects_malformed (line 1121) | fn test_detect_priority_intent_rejects_malformed() { function test_structured_error_not_initialized (line 1134) | fn test_structured_error_not_initialized() { function test_structured_error_invalid_priority (line 1141) | fn test_structured_error_invalid_priority() { function test_structured_error_invalid_status (line 1149) | fn test_structured_error_invalid_status() { function test_structured_error_ambiguous_id (line 1156) | fn test_structured_error_ambiguous_id() { function test_structured_error_preserves_wrapped_beads_error_code (line 1165) | fn test_structured_error_preserves_wrapped_beads_error_code() { function test_structured_error_preserves_wrapped_io_error_code (line 1185) | fn test_structured_error_preserves_wrapped_io_error_code() { function test_to_human_output (line 1202) | fn test_to_human_output() { FILE: src/format/csv.rs constant DEFAULT_FIELDS (line 10) | pub const DEFAULT_FIELDS: &[&str] = &[ constant ALL_FIELDS (line 22) | pub const ALL_FIELDS: &[&str] = &[ function escape_field (line 47) | pub fn escape_field(value: &str) -> String { function get_field_value (line 68) | pub fn get_field_value(issue: &Issue, field: &str) -> String { function parse_fields (line 97) | pub fn parse_fields(fields_arg: Option<&str>) -> Vec<&'static str> { function write_header (line 113) | pub fn write_header(writer: &mut W, fields: &[&str]) -> io::Re... function format_issue_row (line 120) | pub fn format_issue_row(issue: &Issue, fields: &[&str]) -> String { function write_csv (line 133) | pub fn write_csv(writer: &mut W, issues: &[Issue], fields: &[&... function format_csv (line 148) | pub fn format_csv(issues: &[Issue], fields: &[&str]) -> String { function make_test_issue (line 161) | fn make_test_issue(id: &str, title: &str) -> Issue { function test_escape_field_plain (line 206) | fn test_escape_field_plain() { function test_escape_field_with_comma (line 212) | fn test_escape_field_with_comma() { function test_escape_field_with_quotes (line 217) | fn test_escape_field_with_quotes() { function test_escape_field_with_newline (line 222) | fn test_escape_field_with_newline() { function test_escape_field_mixed (line 227) | fn test_escape_field_mixed() { function test_get_field_value (line 235) | fn test_get_field_value() { function test_parse_fields_default (line 249) | fn test_parse_fields_default() { function test_parse_fields_custom (line 255) | fn test_parse_fields_custom() { function test_parse_fields_filters_invalid (line 261) | fn test_parse_fields_filters_invalid() { function test_format_issue_row (line 267) | fn test_format_issue_row() { function test_format_issue_row_with_comma_in_title (line 275) | fn test_format_issue_row_with_comma_in_title() { function test_format_csv (line 283) | fn test_format_csv() { function test_escape_field_formula_injection_equals (line 298) | fn test_escape_field_formula_injection_equals() { function test_escape_field_formula_injection_plus (line 303) | fn test_escape_field_formula_injection_plus() { function test_escape_field_formula_injection_at (line 311) | fn test_escape_field_formula_injection_at() { function test_escape_field_dash_prefix (line 316) | fn test_escape_field_dash_prefix() { function test_escape_field_newline_prefix (line 323) | fn test_escape_field_newline_prefix() { function test_write_header (line 328) | fn test_write_header() { FILE: src/format/markdown.rs function render_markdown (line 51) | pub fn render_markdown(content: &str, ctx: &OutputContext) -> String { function strip_markdown (line 63) | fn strip_markdown(content: &str) -> String { function is_horizontal_rule (line 101) | fn is_horizontal_rule(trimmed: &str) -> bool { function strip_line_markdown (line 108) | fn strip_line_markdown(line: &str) -> String { function try_skip_formatting (line 139) | fn try_skip_formatting(chars: &[char], i: usize, processed: &mut String)... function try_extract_link (line 234) | fn try_extract_link(chars: &[char], i: usize, processed: &mut String) ->... function try_extract_image (line 251) | fn try_extract_image(chars: &[char], i: usize, processed: &mut String) -... function find_matching_bracket (line 271) | fn find_matching_bracket(chars: &[char], start: usize) -> Option { function find_closing_bracket (line 289) | fn find_closing_bracket(chars: &[char], start: usize) -> Option { function skip_parentheses (line 299) | fn skip_parentheses(chars: &[char], start: usize) -> usize { function render_rich_markdown (line 314) | fn render_rich_markdown(content: &str, width: usize) -> String { function contains_markdown (line 336) | pub fn contains_markdown(content: &str) -> bool { function escape_markdown (line 365) | pub fn escape_markdown(content: &str) -> String { function ctx (line 386) | fn ctx(mode: OutputMode) -> OutputContext { function test_render_markdown_plain_strips_formatting (line 391) | fn test_render_markdown_plain_strips_formatting() { function test_render_markdown_json_unchanged (line 402) | fn test_render_markdown_json_unchanged() { function test_render_markdown_quiet_empty (line 409) | fn test_render_markdown_quiet_empty() { function test_render_markdown_toon_unchanged (line 416) | fn test_render_markdown_toon_unchanged() { function test_render_markdown_rich_contains_content (line 423) | fn test_render_markdown_rich_contains_content() { function test_strip_markdown_headers (line 432) | fn test_strip_markdown_headers() { function test_strip_markdown_emphasis (line 440) | fn test_strip_markdown_emphasis() { function test_strip_markdown_preserves_snake_case (line 449) | fn test_strip_markdown_preserves_snake_case() { function test_strip_markdown_preserves_math_asterisks (line 458) | fn test_strip_markdown_preserves_math_asterisks() { function test_strip_markdown_links (line 464) | fn test_strip_markdown_links() { function test_strip_markdown_code (line 471) | fn test_strip_markdown_code() { function test_strip_markdown_code_blocks (line 478) | fn test_strip_markdown_code_blocks() { function test_strip_markdown_blockquotes (line 486) | fn test_strip_markdown_blockquotes() { function test_strip_markdown_horizontal_rule (line 494) | fn test_strip_markdown_horizontal_rule() { function test_contains_markdown_detection (line 500) | fn test_contains_markdown_detection() { function test_escape_markdown (line 510) | fn test_escape_markdown() { function test_strip_markdown_images (line 518) | fn test_strip_markdown_images() { function test_strip_markdown_nested_formatting (line 525) | fn test_strip_markdown_nested_formatting() { function test_strip_markdown_empty (line 534) | fn test_strip_markdown_empty() { function test_render_markdown_multiline (line 539) | fn test_render_markdown_multiline() { FILE: src/format/output.rs type StaleIssue (line 9) | pub struct StaleIssue { method from (line 93) | fn from(issue: Issue) -> Self { type ReadyIssue (line 26) | pub struct ReadyIssue { method from (line 51) | fn from(issue: Issue) -> Self { type BlockedIssueOutput (line 76) | pub struct BlockedIssueOutput { type IssueWithCounts (line 109) | pub struct IssueWithCounts { type ListPage (line 121) | pub struct ListPage { type IssueDetails (line 136) | pub struct IssueDetails { type IssueWithDependencyMetadata (line 154) | pub struct IssueWithDependencyMetadata { type BlockedIssue (line 165) | pub struct BlockedIssue { type TreeNode (line 174) | pub struct TreeNode { type StatsSummary (line 184) | pub struct StatsSummary { type Breakdown (line 202) | pub struct Breakdown { type BreakdownEntry (line 209) | pub struct BreakdownEntry { type RecentActivity (line 216) | pub struct RecentActivity { type Statistics (line 228) | pub struct Statistics { function base_issue (line 241) | fn base_issue(id: &str, title: &str) -> Issue { function issue_with_counts_serializes_counts (line 286) | fn issue_with_counts_serializes_counts() { function issue_details_serializes_parent_and_relations (line 301) | fn issue_details_serializes_parent_and_relations() { function blocked_issue_serializes_blockers (line 319) | fn blocked_issue_serializes_blockers() { FILE: src/format/rich.rs type RichIssueTable (line 49) | pub struct RichIssueTable<'a> { function new (line 59) | pub fn new(issues: &'a [Issue], theme: &'a Theme) -> Self { function show_type (line 70) | pub const fn show_type(mut self, show: bool) -> Self { function max_title_width (line 77) | pub const fn max_title_width(mut self, width: usize) -> Self { function build_table (line 84) | pub fn build_table(&self) -> Table { type RichIssuePanel (line 138) | pub struct RichIssuePanel<'a> { function new (line 147) | pub const fn new(issue: &'a Issue, theme: &'a Theme) -> Self { function show_description (line 157) | pub const fn show_description(mut self, show: bool) -> Self { function build_panel (line 164) | pub fn build_panel(&self) -> Panel<'static> { type RichDependencyTree (line 204) | pub struct RichDependencyTree<'a> { function new (line 214) | pub fn new( function build_tree (line 230) | pub fn build_tree(&self) -> Tree { function issue_label (line 247) | fn issue_label(&self, issue: &Issue, title_width: usize) -> Text { function unknown_issue_label (line 265) | fn unknown_issue_label(&self, issue_id: &str) -> Text { function format_status_badge (line 280) | pub fn format_status_badge(status: &Status, theme: &Theme) -> Text { function format_count_badges (line 292) | pub fn format_count_badges( function build_completion_bar (line 335) | pub fn build_completion_bar(completed: usize, total: usize, _theme: &The... function make_test_issue (line 353) | fn make_test_issue(id: &str, title: &str) -> Issue { function test_rich_issue_table (line 398) | fn test_rich_issue_table() { function test_rich_issue_panel (line 415) | fn test_rich_issue_panel() { function rich_table_and_panel_sanitize_custom_status_and_type (line 429) | fn rich_table_and_panel_sanitize_custom_status_and_type() { function test_rich_dependency_tree_uses_theme_styles (line 451) | fn test_rich_dependency_tree_uses_theme_styles() { function test_format_status_badge (line 482) | fn test_format_status_badge() { function test_format_count_badges (line 494) | fn test_format_count_badges() { function test_build_completion_bar (line 503) | fn test_build_completion_bar() { function test_table_without_type_column (line 513) | fn test_table_without_type_column() { function test_table_with_title_truncation (line 525) | fn test_table_with_title_truncation() { FILE: src/format/syntax.rs function highlight_code (line 48) | pub fn highlight_code(code: &str, language: &str, ctx: &OutputContext) -... function format_plain_code (line 58) | fn format_plain_code(code: &str) -> String { function highlight_rich (line 66) | fn highlight_rich(code: &str, language: &str, width: usize) -> String { function try_highlight (line 75) | fn try_highlight(language: &str, code: &str, _width: usize) -> Result String { function parse_code_fence (line 131) | pub fn parse_code_fence(fence: &str) -> (String, String) { function detect_language_from_filename (line 173) | pub fn detect_language_from_filename(filename: &str) -> String { function supported_languages (line 213) | pub fn supported_languages() -> Vec { function available_themes (line 219) | pub fn available_themes() -> Vec { function ctx (line 227) | fn ctx(mode: OutputMode) -> OutputContext { function test_highlight_code_plain_mode (line 232) | fn test_highlight_code_plain_mode() { function test_highlight_code_plain_multiline (line 240) | fn test_highlight_code_plain_multiline() { function test_highlight_code_json_mode_unchanged (line 247) | fn test_highlight_code_json_mode_unchanged() { function test_highlight_code_quiet_mode_empty (line 254) | fn test_highlight_code_quiet_mode_empty() { function test_highlight_code_toon_mode_unchanged (line 261) | fn test_highlight_code_toon_mode_unchanged() { function test_highlight_code_rich_mode_rust (line 268) | fn test_highlight_code_rich_mode_rust() { function test_highlight_code_rich_mode_python (line 278) | fn test_highlight_code_rich_mode_python() { function test_highlight_code_unknown_language_fallback (line 286) | fn test_highlight_code_unknown_language_fallback() { function test_highlight_code_empty (line 294) | fn test_highlight_code_empty() { function test_normalize_language (line 300) | fn test_normalize_language() { function test_parse_code_fence_with_language (line 313) | fn test_parse_code_fence_with_language() { function test_parse_code_fence_no_language (line 321) | fn test_parse_code_fence_no_language() { function test_parse_code_fence_no_closing (line 329) | fn test_parse_code_fence_no_closing() { function test_parse_code_fence_not_fenced (line 337) | fn test_parse_code_fence_not_fenced() { function test_parse_code_fence_empty (line 345) | fn test_parse_code_fence_empty() { function test_detect_language_from_filename (line 352) | fn test_detect_language_from_filename() { function test_supported_languages_not_empty (line 362) | fn test_supported_languages_not_empty() { function test_available_themes_not_empty (line 368) | fn test_available_themes_not_empty() { function test_highlight_long_code_with_line_numbers (line 374) | fn test_highlight_long_code_with_line_numbers() { FILE: src/format/text.rs constant OPEN (line 17) | pub const OPEN: &str = "○"; constant IN_PROGRESS (line 19) | pub const IN_PROGRESS: &str = "◐"; constant BLOCKED (line 21) | pub const BLOCKED: &str = "●"; constant DEFERRED (line 23) | pub const DEFERRED: &str = "❄"; constant CLOSED (line 25) | pub const CLOSED: &str = "✓"; constant TOMBSTONE (line 27) | pub const TOMBSTONE: &str = "✗"; constant PINNED (line 29) | pub const PINNED: &str = "📌"; constant UNKNOWN (line 31) | pub const UNKNOWN: &str = "?"; function sanitize_terminal_inline (line 40) | pub fn sanitize_terminal_inline(text: &str) -> Cow<'_, str> { function sanitize_terminal_text (line 49) | pub fn sanitize_terminal_text(text: &str) -> Cow<'_, str> { function sanitize_terminal_controls (line 53) | fn sanitize_terminal_controls(text: &str, preserve_layout_controls: bool... type TextFormatOptions (line 86) | pub struct TextFormatOptions { method plain (line 94) | pub const fn plain() -> Self { function format_status_icon (line 105) | pub const fn format_status_icon(status: &Status) -> &'static str { function format_priority (line 120) | pub fn format_priority(priority: &Priority) -> String { function format_status_label (line 126) | pub fn format_status_label(status: &Status, use_color: bool) -> String { function format_status_icon_colored (line 146) | pub fn format_status_icon_colored(status: &Status, use_color: bool) -> S... function format_priority_label (line 165) | pub fn format_priority_label(priority: &Priority, use_color: bool) -> St... function format_priority_badge (line 184) | pub fn format_priority_badge(priority: &Priority, use_color: bool) -> St... function format_type_badge (line 190) | pub fn format_type_badge(issue_type: &IssueType) -> String { function format_type_label (line 196) | pub fn format_type_label(issue_type: &IssueType) -> String { function format_type_badge_colored (line 202) | pub fn format_type_badge_colored(issue_type: &IssueType, use_color: bool... function terminal_width (line 227) | pub fn terminal_width() -> usize { function truncate_title (line 250) | pub fn truncate_title(title: &str, max_len: usize) -> String { function visible_len (line 292) | fn visible_len(text: &str) -> usize { function format_issue_line_with (line 301) | pub fn format_issue_line_with(issue: &Issue, options: TextFormatOptions)... function format_issue_line (line 341) | pub fn format_issue_line(issue: &Issue) -> String { function issue_detail_lines (line 345) | fn issue_detail_lines(issue: &Issue, include_extended: bool) -> Vec Issue { function test_status_icons (line 473) | fn test_status_icons() { function test_format_priority (line 488) | fn test_format_priority() { function test_format_type_badge (line 497) | fn test_format_type_badge() { function status_and_type_labels_escape_terminal_controls (line 512) | fn status_and_type_labels_escape_terminal_controls() { function test_format_issue_line_open (line 523) | fn test_format_issue_line_open() { function test_format_issue_line_in_progress (line 531) | fn test_format_issue_line_in_progress() { function test_format_issue_line_closed (line 539) | fn test_format_issue_line_closed() { function test_format_issue_line_bug_high_priority (line 547) | fn test_format_issue_line_bug_high_priority() { function test_format_issue_line_epic (line 559) | fn test_format_issue_line_epic() { function test_format_issue_line_blocked (line 569) | fn test_format_issue_line_blocked() { function test_format_issue_line_deferred (line 577) | fn test_format_issue_line_deferred() { function test_truncate_title_adds_ellipsis (line 585) | fn test_truncate_title_adds_ellipsis() { function test_format_issue_line_with_truncation (line 592) | fn test_format_issue_line_with_truncation() { function test_format_issue_line_with_wrap (line 605) | fn test_format_issue_line_with_wrap() { function test_format_issue_long_with_includes_extended_fields (line 619) | fn test_format_issue_long_with_includes_extended_fields() { function test_format_issue_long_with_sanitizes_custom_status_and_type (line 635) | fn test_format_issue_long_with_sanitizes_custom_status_and_type() { function test_format_issue_pretty_with_uses_tree_connectors (line 651) | fn test_format_issue_pretty_with_uses_tree_connectors() { function terminal_inline_escapes_control_sequences (line 664) | fn terminal_inline_escapes_control_sequences() { function terminal_text_preserves_layout_but_escapes_controls (line 677) | fn terminal_text_preserves_layout_but_escapes_controls() { FILE: src/format/theme.rs function color (line 15) | fn color(name: &str) -> Color { type Theme (line 27) | pub struct Theme { method new (line 74) | pub fn new() -> Self { method status_style (line 116) | pub fn status_style(&self, status: &Status) -> &Style { method priority_style (line 130) | pub fn priority_style(&self, priority: &Priority) -> &Style { method type_style (line 142) | pub fn type_style(&self, issue_type: &IssueType) -> &Style { method dark (line 157) | pub fn dark() -> Self { method minimal (line 182) | pub fn minimal() -> Self { method default (line 66) | fn default() -> Self { function test_default_theme (line 227) | fn test_default_theme() { function test_priority_styles (line 248) | fn test_priority_styles() { function test_type_styles (line 265) | fn test_type_styles() { function test_dark_theme (line 281) | fn test_dark_theme() { function test_minimal_theme (line 297) | fn test_minimal_theme() { FILE: src/health.rs constant ORPHANED_LOCK_FILE_STALE_AFTER (line 5) | const ORPHANED_LOCK_FILE_STALE_AFTER: Duration = Duration::from_secs(30 ... type WorkspaceHealth (line 8) | pub enum WorkspaceHealth { method as_str (line 17) | pub fn as_str(self) -> &'static str { method is_operable (line 27) | pub fn is_operable(self) -> bool { method needs_recovery (line 32) | pub fn needs_recovery(self) -> bool { method is_fatal (line 37) | pub fn is_fatal(self) -> bool { method fmt (line 43) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type AnomalyClass (line 49) | pub enum AnomalyClass { method code (line 112) | pub fn code(&self) -> &'static str { method severity (line 141) | pub fn severity(&self) -> WorkspaceHealth { method audit_entry (line 171) | pub fn audit_entry(&self) -> AnomalyAuditEntry { method fmt (line 181) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type WorkspaceClassification (line 257) | pub struct WorkspaceClassification { method healthy (line 304) | pub fn healthy() -> Self { method from_anomalies (line 312) | pub fn from_anomalies(anomalies: Vec) -> Self { method is_operable (line 322) | pub fn is_operable(&self) -> bool { method needs_recovery (line 327) | pub fn needs_recovery(&self) -> bool { method recovery_possible (line 332) | pub fn recovery_possible(&self) -> bool { method audit_record (line 337) | pub fn audit_record(&self, source: impl Into) -> ReliabilityAu... method fmt (line 353) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type AnomalyAuditEntry (line 263) | pub struct AnomalyAuditEntry { type ReliabilityAuditRecord (line 270) | pub struct ReliabilityAuditRecord { method anomaly_codes_csv (line 279) | pub fn anomaly_codes_csv(&self) -> String { method emit_tracing (line 287) | pub fn emit_tracing(&self, phase: &str, outcome: &str) { function sqlite_sidecar_path (line 363) | fn sqlite_sidecar_path(db_path: &Path, suffix: &str) -> PathBuf { function classify_file_state (line 368) | pub fn classify_file_state(db_path: &Path, jsonl_path: &Path) -> Vec bool { function lock_modified_time_is_stale (line 438) | fn lock_modified_time_is_stale(modified: SystemTime, now: SystemTime) ->... function setup_workspace (line 451) | fn setup_workspace() -> (TempDir, std::path::PathBuf, std::path::PathBuf) { function healthy_workspace_has_no_anomalies (line 459) | fn healthy_workspace_has_no_anomalies() { function missing_db_with_jsonl_is_recoverable (line 474) | fn missing_db_with_jsonl_is_recoverable() { function non_sqlite_db_is_recoverable (line 487) | fn non_sqlite_db_is_recoverable() { function conflict_markers_in_jsonl_is_unsafe (line 503) | fn conflict_markers_in_jsonl_is_unsafe() { function diff3_style_conflict_markers_are_detected (line 526) | fn diff3_style_conflict_markers_are_detected() { function tiny_db_file_below_sqlite_magic_is_flagged_as_not_sqlite (line 546) | fn tiny_db_file_below_sqlite_magic_is_flagged_as_not_sqlite() { function wal_without_shm_is_expected_for_frankensqlite (line 561) | fn wal_without_shm_is_expected_for_frankensqlite() { function shm_without_wal_is_degraded_sidecar_mismatch (line 583) | fn shm_without_wal_is_degraded_sidecar_mismatch() { function custom_db_filename_uses_sqlite_append_style_shm_path (line 611) | fn custom_db_filename_uses_sqlite_append_style_shm_path() { function custom_db_filename_uses_sqlite_append_style_wal_path (line 638) | fn custom_db_filename_uses_sqlite_append_style_wal_path() { function classification_uses_worst_anomaly (line 659) | fn classification_uses_worst_anomaly() { function anomaly_audit_entry_has_stable_code_and_severity (line 672) | fn anomaly_audit_entry_has_stable_code_and_severity() { function workspace_classification_builds_reliability_audit_record (line 684) | fn workspace_classification_builds_reliability_audit_record() { function anomaly_severity_ordering_is_correct (line 705) | fn anomaly_severity_ordering_is_correct() { function journal_sidecar_detected (line 712) | fn journal_sidecar_detected() { function recent_lock_file_is_not_orphaned (line 732) | fn recent_lock_file_is_not_orphaned() { function stale_lock_modified_time_is_orphaned (line 752) | fn stale_lock_modified_time_is_orphaned() { function new_anomaly_classes_have_correct_severity (line 767) | fn new_anomaly_classes_have_correct_severity() { FILE: src/lib.rs function run (line 49) | pub fn run() -> Result<()> { function run_returns_ok (line 60) | fn run_returns_ok() { function structured_error_exit_code_matches_issue_errors (line 65) | fn structured_error_exit_code_matches_issue_errors() { function upgrade_module_is_available_when_feature_enabled (line 76) | fn upgrade_module_is_available_when_feature_enabled() { FILE: src/logging.rs function init_logging (line 20) | pub fn init_logging(verbosity: u8, quiet: bool, log_file: Option<&Path>)... function resolve_env_filter (line 53) | fn resolve_env_filter(verbosity: u8, quiet: bool) -> Result { function resolve_env_filter_with_override (line 61) | fn resolve_env_filter_with_override( function default_filter (line 75) | fn default_filter(verbosity: u8, quiet: bool) -> String { function init_test_logging (line 104) | pub fn init_test_logging() { function default_filter_respects_quiet (line 124) | fn default_filter_respects_quiet() { function default_filter_varies_with_verbosity (line 129) | fn default_filter_varies_with_verbosity() { function resolve_env_filter_prefers_rust_log (line 142) | fn resolve_env_filter_prefers_rust_log() { function resolve_env_filter_falls_back_on_invalid_env (line 153) | fn resolve_env_filter_falls_back_on_invalid_env() { function init_test_logging_is_idempotent (line 165) | fn init_test_logging_is_idempotent() { function init_logging_does_not_panic (line 171) | fn init_logging_does_not_panic() { FILE: src/main.rs function main (line 16) | fn main() { type StartupContext (line 472) | struct StartupContext { method init (line 481) | fn init(overrides: &config::CliOverrides) -> Result { method empty (line 499) | fn empty(overrides: config::CliOverrides) -> Self { method is_initialized (line 509) | fn is_initialized(&self) -> bool { method no_db (line 513) | fn no_db(&self) -> bool { method no_auto_import (line 520) | fn no_auto_import(&self) -> bool { method no_auto_flush (line 527) | fn no_auto_flush(&self) -> bool { method write_lock_timeout (line 534) | fn write_lock_timeout(&self) -> Option { function open_storage_from_ctx (line 542) | fn open_storage_from_ctx( function resolve_auto_import_expected_prefix (line 554) | fn resolve_auto_import_expected_prefix( function execute_create_command (line 562) | fn execute_create_command( function should_preopen_storage (line 571) | const fn should_preopen_storage( function should_acquire_startup_write_lock (line 578) | const fn should_acquire_startup_write_lock( function is_mutating_command (line 586) | const fn is_mutating_command(cmd: &Commands) -> bool { function needs_write_lock (line 619) | const fn needs_write_lock(cmd: &Commands) -> bool { function should_auto_import (line 682) | const fn should_auto_import(cmd: &Commands) -> bool { function supports_read_only_fast_open (line 732) | const fn supports_read_only_fast_open(cmd: &Commands) -> bool { function supports_auto_import_read_only_probe (line 751) | const fn supports_auto_import_read_only_probe(cmd: &Commands) -> bool { function command_requested_output_format (line 760) | fn command_requested_output_format(cmd: &Commands) -> Option bool { function should_color_human_errors (line 802) | const fn should_color_human_errors( function should_color_human_errors_for_cli (line 810) | fn should_color_human_errors_for_cli(cli: &Cli) -> bool { function handle_error (line 819) | fn handle_error(err: &BeadsError, json_mode: bool, color_mode: bool) -> ! { function build_cli_overrides (line 836) | fn build_cli_overrides(cli: &Cli) -> config::CliOverrides { function make_create_args (line 867) | fn make_create_args() -> beads_rust::cli::CreateArgs { function parse_global_flags_and_command (line 892) | fn parse_global_flags_and_command() { function parse_create_title_positional (line 901) | fn parse_create_title_positional() { function human_error_color_respects_no_color_precedence (line 912) | fn human_error_color_respects_no_color_precedence() { function build_overrides_maps_flags (line 932) | fn build_overrides_maps_flags() { function build_overrides_omits_absent_startup_bool_flags (line 954) | fn build_overrides_omits_absent_startup_bool_flags() { function read_only_fast_open_supports_explicit_suppression_and_safe_list_probe (line 971) | fn read_only_fast_open_supports_explicit_suppression_and_safe_list_probe... function read_only_fast_open_does_not_bypass_required_startup_write_lock (line 1043) | fn read_only_fast_open_does_not_bypass_required_startup_write_lock() { function help_includes_core_commands (line 1059) | fn help_includes_core_commands() { function version_includes_name_and_version (line 1068) | fn version_includes_name_and_version() { function is_mutating_command_detects_mutations (line 1075) | fn is_mutating_command_detects_mutations() { function is_mutating_command_distinguishes_read_only_subcommands (line 1083) | fn is_mutating_command_distinguishes_read_only_subcommands() { function sync_is_not_auto_imported_or_auto_flushed (line 1100) | fn sync_is_not_auto_imported_or_auto_flushed() { function sync_modes_require_write_lock_before_storage_open (line 1107) | fn sync_modes_require_write_lock_before_storage_open() { function doctor_requires_write_lock_before_live_inspection (line 1141) | fn doctor_requires_write_lock_before_live_inspection() { function diagnostic_and_config_commands_skip_auto_import (line 1153) | fn diagnostic_and_config_commands_skip_auto_import() { function orphans_defers_auto_import_but_keeps_write_lock_when_initialized (line 1173) | fn orphans_defers_auto_import_but_keeps_write_lock_when_initialized() { function direct_storage_inspection_commands_require_write_lock (line 1180) | fn direct_storage_inspection_commands_require_write_lock() { function config_path_and_edit_do_not_require_db_write_lock (line 1199) | fn config_path_and_edit_do_not_require_db_write_lock() { function auto_import_expected_prefix_uses_merged_config_layers (line 1212) | fn auto_import_expected_prefix_uses_merged_config_layers() { function preopened_storage_reuses_startup_paths (line 1238) | fn preopened_storage_reuses_startup_paths() { function create_dispatch_reuses_preopened_storage_context (line 1272) | fn create_dispatch_reuses_preopened_storage_context() { function should_render_errors_as_json_when_command_requests_json_format (line 1327) | fn should_render_errors_as_json_when_command_requests_json_format() { function should_render_errors_as_json_for_query_run_json_format (line 1333) | fn should_render_errors_as_json_for_query_run_json_format() { function should_render_errors_as_json_when_command_requests_toon_format (line 1339) | fn should_render_errors_as_json_when_command_requests_toon_format() { function should_render_errors_as_json_when_env_requests_json_format (line 1345) | fn should_render_errors_as_json_when_env_requests_json_format() { function should_render_errors_as_json_when_env_requests_toon_format (line 1354) | fn should_render_errors_as_json_when_env_requests_toon_format() { function should_not_render_errors_as_json_without_json_request (line 1363) | fn should_not_render_errors_as_json_without_json_request() { function preopen_storage_skips_commands_without_bootstrap_or_flush_work (line 1369) | fn preopen_storage_skips_commands_without_bootstrap_or_flush_work() { function preopen_storage_keeps_mutating_auto_flush_path (line 1374) | fn preopen_storage_keeps_mutating_auto_flush_path() { function preopen_storage_keeps_bootstrap_path_for_staleness_checks (line 1379) | fn preopen_storage_keeps_bootstrap_path_for_staleness_checks() { function preopen_storage_requires_write_lock_before_open (line 1384) | fn preopen_storage_requires_write_lock_before_open() { FILE: src/mcp/mod.rs function to_mcp (line 26) | pub(super) fn to_mcp(err: impl std::fmt::Display) -> McpError { function auto_flush_mcp_error (line 30) | fn auto_flush_mcp_error( function sync_lock_mcp_error (line 51) | fn sync_lock_mcp_error( function sync_lock_busy_error (line 72) | fn sync_lock_busy_error(beads_dir: &Path) -> BeadsError { function dirty_auto_flush_incomplete_error (line 79) | fn dirty_auto_flush_incomplete_error(remaining_dirty: usize) -> BeadsErr... type BeadsState (line 91) | pub struct BeadsState { method open_storage (line 107) | pub fn open_storage(&self) -> crate::Result { method open_read_storage (line 122) | pub fn open_read_storage(&self) -> crate::Result { method with_mutation (line 149) | pub fn with_mutation(&self, mut f: F) -> fastmcp_rust::McpResult method flush_dirty_storage (line 199) | fn flush_dirty_storage(&self, storage: &mut SqliteStorage) -> fastmcp_... function test_issue (line 237) | fn test_issue(id: &str, title: &str) -> Issue { function test_state (line 249) | fn test_state(temp: &TempDir, jsonl_path: PathBuf) -> BeadsState { function open_read_storage_uses_read_only_fast_path_without_write_lock (line 267) | fn open_read_storage_uses_read_only_fast_path_without_write_lock() { function with_mutation_requires_openable_sync_lock_before_mutating (line 283) | fn with_mutation_requires_openable_sync_lock_before_mutating() { function with_mutation_reports_auto_flush_failure_and_preserves_dirty_state (line 322) | fn with_mutation_reports_auto_flush_failure_and_preserves_dirty_state() { function with_mutation_flushes_committed_changes_before_returning_late_error (line 359) | fn with_mutation_flushes_committed_changes_before_returning_late_error() { type ServeArgs (line 395) | pub struct ServeArgs { function run_serve (line 407) | pub fn run_serve(args: &ServeArgs, overrides: &config::CliOverrides) -> ... FILE: src/mcp/prompts.rs constant UNASSIGNED_FETCH_LIMIT (line 25) | const UNASSIGNED_FETCH_LIMIT: usize = 50; constant UNASSIGNED_DISPLAY_LIMIT (line 26) | const UNASSIGNED_DISPLAY_LIMIT: usize = 15; constant READY_DISPLAY_LIMIT (line 27) | const READY_DISPLAY_LIMIT: usize = 10; constant DEFERRED_FETCH_LIMIT (line 28) | const DEFERRED_FETCH_LIMIT: usize = 50; constant DEFERRED_DISPLAY_LIMIT (line 29) | const DEFERRED_DISPLAY_LIMIT: usize = 15; constant STATUS_REPORT_IN_PROGRESS_LIMIT (line 30) | const STATUS_REPORT_IN_PROGRESS_LIMIT: usize = 20; constant STATUS_REPORT_BLOCKED_LIMIT (line 31) | const STATUS_REPORT_BLOCKED_LIMIT: usize = 10; constant STATUS_REPORT_LABELS_LIMIT (line 32) | const STATUS_REPORT_LABELS_LIMIT: usize = 10; constant BOTTLENECK_FETCH_LIMIT (line 33) | const BOTTLENECK_FETCH_LIMIT: usize = 10_000; constant BOTTLENECK_DISPLAY_LIMIT (line 34) | const BOTTLENECK_DISPLAY_LIMIT: usize = 10; constant QUICK_WINS_DISPLAY_LIMIT (line 35) | const QUICK_WINS_DISPLAY_LIMIT: usize = 5; constant COMPLETENESS_FETCH_LIMIT (line 36) | const COMPLETENESS_FETCH_LIMIT: usize = 100; constant QUALITY_SAMPLE_LIMIT (line 37) | const QUALITY_SAMPLE_LIMIT: usize = 10; constant ORPHAN_DISPLAY_LIMIT (line 38) | const ORPHAN_DISPLAY_LIMIT: usize = 15; constant DEPENDENCY_HEALTH_FETCH_LIMIT (line 39) | const DEPENDENCY_HEALTH_FETCH_LIMIT: usize = 500; function validate_prompt_arg (line 43) | fn validate_prompt_arg<'a>( function blocked_context (line 63) | fn blocked_context(storage: &SqliteStorage) -> McpResult { function unassigned_context (line 87) | fn unassigned_context(storage: &SqliteStorage) -> McpResult { function ready_context (line 118) | fn ready_context(storage: &SqliteStorage) -> McpResult { function deferred_context (line 145) | fn deferred_context(storage: &SqliteStorage) -> McpResult { function triage_instruction (line 177) | fn triage_instruction(focus: &str) -> &'static str { type TriagePrompt (line 213) | pub struct TriagePrompt(Arc); method new (line 215) | pub fn new(state: Arc) -> Self { method definition (line 221) | fn definition(&self) -> Prompt { method get (line 244) | fn get( type StatusReportPrompt (line 304) | pub struct StatusReportPrompt(Arc); method new (line 306) | pub fn new(state: Arc) -> Self { method definition (line 312) | fn definition(&self) -> Prompt { method get (line 333) | fn get( function bottleneck_context (line 424) | fn bottleneck_context(storage: &SqliteStorage) -> McpResult { function quick_wins_context (line 474) | fn quick_wins_context(storage: &SqliteStorage) -> McpResult { type PlanNextWorkPrompt (line 522) | pub struct PlanNextWorkPrompt(Arc); method new (line 524) | pub fn new(state: Arc) -> Self { method definition (line 530) | fn definition(&self) -> Prompt { method get (line 554) | fn get( function completeness_context (line 660) | fn completeness_context(storage: &SqliteStorage) -> McpResult { function dependency_health_context (line 734) | fn dependency_health_context(storage: &SqliteStorage) -> McpResult); method new (line 790) | pub fn new(state: Arc) -> Self { method definition (line 796) | fn definition(&self) -> Prompt { method get (line 820) | fn get( FILE: src/mcp/resources.rs function read_project_config (line 21) | fn read_project_config(storage: &SqliteStorage) -> McpResult McpRes... type ProjectInfoResource (line 60) | pub struct ProjectInfoResource(Arc); method new (line 62) | pub fn new(state: Arc) -> Self { method definition (line 68) | fn definition(&self) -> Resource { method read (line 85) | fn read(&self, _ctx: &McpContext) -> McpResult> { type IssueResource (line 111) | pub struct IssueResource(Arc); method new (line 113) | pub fn new(state: Arc) -> Self { method definition (line 119) | fn definition(&self) -> Resource { method template (line 135) | fn template(&self) -> Option { method read (line 147) | fn read(&self, _ctx: &McpContext) -> McpResult> { method read_with_uri (line 153) | fn read_with_uri( type SchemaResource (line 206) | pub struct SchemaResource; method definition (line 209) | fn definition(&self) -> Resource { method read (line 225) | fn read(&self, _ctx: &McpContext) -> McpResult> { type LabelsResource (line 316) | pub struct LabelsResource(Arc); method new (line 318) | pub fn new(state: Arc) -> Self { method definition (line 324) | fn definition(&self) -> Resource { method read (line 342) | fn read(&self, _ctx: &McpContext) -> McpResult> { type ReadyIssuesResource (line 365) | pub struct ReadyIssuesResource(Arc); method new (line 367) | pub fn new(state: Arc) -> Self { method definition (line 373) | fn definition(&self) -> Resource { method read (line 391) | fn read(&self, _ctx: &McpContext) -> McpResult> { type BlockedIssuesResource (line 422) | pub struct BlockedIssuesResource(Arc); method new (line 424) | pub fn new(state: Arc) -> Self { method definition (line 430) | fn definition(&self) -> Resource { method read (line 448) | fn read(&self, _ctx: &McpContext) -> McpResult> { type InProgressResource (line 476) | pub struct InProgressResource(Arc); method new (line 478) | pub fn new(state: Arc) -> Self { method definition (line 484) | fn definition(&self) -> Resource { method read (line 502) | fn read(&self, _ctx: &McpContext) -> McpResult> { type EventsResource (line 538) | pub struct EventsResource(Arc); method new (line 540) | pub fn new(state: Arc) -> Self { method definition (line 546) | fn definition(&self) -> Resource { method read (line 564) | fn read(&self, _ctx: &McpContext) -> McpResult> { type DeferredIssuesResource (line 595) | pub struct DeferredIssuesResource(Arc); method new (line 597) | pub fn new(state: Arc) -> Self { method definition (line 603) | fn definition(&self) -> Resource { method read (line 620) | fn read(&self, _ctx: &McpContext) -> McpResult> { function longest_chain_from (line 658) | fn longest_chain_from( function compute_graph_health (line 684) | fn compute_graph_health(storage: &SqliteStorage) -> McpResult); method new (line 783) | pub fn new(state: Arc) -> Self { method definition (line 789) | fn definition(&self) -> Resource { method read (line 808) | fn read(&self, _ctx: &McpContext) -> McpResult> { function compute_bottlenecks (line 827) | fn compute_bottlenecks(storage: &SqliteStorage) -> McpResult); method new (line 883) | pub fn new(state: Arc) -> Self { method definition (line 889) | fn definition(&self) -> Resource { method read (line 907) | fn read(&self, _ctx: &McpContext) -> McpResult> { function issue_not_found_resource_surfaces_id_scan_failure (line 926) | fn issue_not_found_resource_surfaces_id_scan_failure() { function read_project_config_surfaces_storage_failure (line 942) | fn read_project_config_surfaces_storage_failure() { FILE: src/mcp/tools.rs constant UPDATE_FIELD_KEYS (line 31) | const UPDATE_FIELD_KEYS: &[&str] = &[ constant PLACEHOLDER_EXACT (line 46) | const PLACEHOLDER_EXACT: &[&str] = &[ function detect_placeholder (line 93) | fn detect_placeholder(s: &str) -> Option { function placeholder_error (line 121) | fn placeholder_error(s: &str) -> McpError { function tombstone_issue_err (line 138) | fn tombstone_issue_err(id: &str) -> McpError { function require_valid_issue (line 153) | fn require_valid_issue(storage: &SqliteStorage, id: &str) -> McpResult<(... function id_lookup_failed (line 169) | fn id_lookup_failed(operation: &str, err: &BeadsError) -> McpError { function no_available_child_id (line 184) | fn no_available_child_id(parent_id: &str, start: u32, limit: u32) -> Mcp... function next_available_child_id (line 198) | fn next_available_child_id(parent_id: &str, start: u32, id_exists: F)... function generate_issue_id_with_checked_lookup (line 219) | fn generate_issue_id_with_checked_lookup( function beads_to_mcp (line 259) | fn beads_to_mcp(err: impl Into) -> McpError { function issue_not_found_err (line 342) | fn issue_not_found_err(storage: &SqliteStorage, id: &str) -> McpResult ser... function open (line 404) | fn open(state: &BeadsState) -> McpResult { function parse_status (line 414) | fn parse_status(s: &str) -> McpResult<(Status, Option)> { function parse_priority (line 457) | fn parse_priority(s: &str) -> McpResult<(Priority, Option)> { function parse_issue_type (line 501) | fn parse_issue_type(s: &str) -> (IssueType, Option) { function parse_dep_type (line 524) | fn parse_dep_type(s: &str) -> McpResult<(String, Option)> { function parse_timestamp (line 568) | fn parse_timestamp(s: &str) -> McpResult<(chrono::DateTime,... function sanitize_search (line 636) | fn sanitize_search(query: &str) -> Option { function nullable_str (line 654) | fn nullable_str(args: &serde_json::Value, key: &str) -> McpResult McpResult McpResult McpResult McpResult Mcp... function optional_label_array_arg (line 750) | fn optional_label_array_arg(args: &serde_json::Value, key: &str) -> McpR... function validate_mcp_title (line 760) | fn validate_mcp_title(title: &str) -> McpResult<()> { function validate_mcp_comment (line 767) | fn validate_mcp_comment(issue_id: &str, author: &str, body: &str) -> Mcp... function parse_update_fields (line 784) | fn parse_update_fields( function issue_json (line 897) | fn issue_json(issue: &Issue) -> serde_json::Value { function build_list_filters (line 906) | fn build_list_filters( type ListIssuesTool (line 992) | pub struct ListIssuesTool(Arc); method new (line 994) | pub fn new(state: Arc) -> Self { method definition (line 1000) | fn definition(&self) -> Tool { method call (line 1074) | fn call(&self, _ctx: &McpContext, args: serde_json::Value) -> McpResult<... type ShowIssueTool (line 1125) | pub struct ShowIssueTool(Arc); method new (line 1127) | pub fn new(state: Arc) -> Self { method definition (line 1133) | fn definition(&self) -> Tool { method call (line 1171) | fn call(&self, _ctx: &McpContext, args: serde_json::Value) -> McpResult<... type CreateIssueTool (line 1277) | pub struct CreateIssueTool(Arc); method new (line 1279) | pub fn new(state: Arc) -> Self { method definition (line 1285) | fn definition(&self) -> Tool { method call (line 1355) | fn call(&self, _ctx: &McpContext, args: serde_json::Value) -> McpResult<... type UpdateIssueTool (line 1479) | pub struct UpdateIssueTool(Arc); method new (line 1481) | pub fn new(state: Arc) -> Self { method definition (line 1487) | fn definition(&self) -> Tool { method call (line 1583) | fn call(&self, _ctx: &McpContext, args: serde_json::Value) -> McpResult<... type CloseIssueTool (line 1684) | pub struct CloseIssueTool(Arc); method new (line 1686) | pub fn new(state: Arc) -> Self { method definition (line 1692) | fn definition(&self) -> Tool { method call (line 1733) | fn call(&self, _ctx: &McpContext, args: serde_json::Value) -> McpResult<... type ManageDependenciesTool (line 1851) | pub struct ManageDependenciesTool(Arc); method new (line 1853) | pub fn new(state: Arc) -> Self { method definition (line 1859) | fn definition(&self) -> Tool { method call (line 1919) | fn call(&self, _ctx: &McpContext, args: serde_json::Value) -> McpResult<... type ProjectOverviewTool (line 2059) | pub struct ProjectOverviewTool(Arc); method new (line 2061) | pub fn new(state: Arc) -> Self { method definition (line 2067) | fn definition(&self) -> Tool { method call (line 2097) | fn call(&self, _ctx: &McpContext, args: serde_json::Value) -> McpResult<... function mcp_test_state (line 2219) | fn mcp_test_state(temp: &TempDir) -> Arc { function parse_update_fields_rejects_non_string_priority (line 2236) | fn parse_update_fields_rejects_non_string_priority() { function parse_update_fields_rejects_non_string_title (line 2244) | fn parse_update_fields_rejects_non_string_title() { function parse_update_fields_accepts_500_multibyte_character_title (line 2252) | fn parse_update_fields_accepts_500_multibyte_character_title() { function parse_update_fields_rejects_blank_title (line 2263) | fn parse_update_fields_rejects_blank_title() { function optional_string_array_arg_rejects_non_array_values (line 2271) | fn optional_string_array_arg_rejects_non_array_values() { function optional_string_array_arg_rejects_non_string_entries (line 2282) | fn optional_string_array_arg_rejects_non_string_entries() { function optional_label_array_arg_rejects_invalid_label_values (line 2290) | fn optional_label_array_arg_rejects_invalid_label_values() { function optional_label_array_arg_accepts_namespaced_labels (line 2299) | fn optional_label_array_arg_accepts_namespaced_labels() { function create_issue_rejects_description_over_validator_limit_without_persisting (line 2308) | fn create_issue_rejects_description_over_validator_limit_without_persist... function create_issue_accepts_500_multibyte_character_title (line 2339) | fn create_issue_accepts_500_multibyte_character_title() { function create_issue_persists_canonical_content_hash (line 2360) | fn create_issue_persists_canonical_content_hash() { function create_issue_rejects_tombstone_parent_without_persisting_child (line 2392) | fn create_issue_rejects_tombstone_parent_without_persisting_child() { function update_issue_rejects_invalid_comment_before_field_mutation (line 2446) | fn update_issue_rejects_invalid_comment_before_field_mutation() { function build_list_filters_rejects_wrong_limit_type (line 2492) | fn build_list_filters_rejects_wrong_limit_type() { function issue_not_found_err_surfaces_id_scan_failure (line 2504) | fn issue_not_found_err_surfaces_id_scan_failure() { function hash_id_generation_reports_lookup_failure_even_if_later_candidate_is_free (line 2520) | fn hash_id_generation_reports_lookup_failure_even_if_later_candidate_is_... function child_id_generation_reports_lookup_failure (line 2562) | fn child_id_generation_reports_lookup_failure() { function child_id_generation_bounds_collision_retries (line 2586) | fn child_id_generation_bounds_collision_retries() { function storage_read_warning_carries_structured_source_error (line 2615) | fn storage_read_warning_carries_structured_source_error() { FILE: src/model/mod.rs function is_false (line 18) | const fn is_false(b: &bool) -> bool { function serialize_compaction_level (line 24) | fn serialize_compaction_level(value: &Option, serializer: S) -> ... type Status (line 34) | pub enum Status { method deserialize (line 51) | fn deserialize>(deserializer: D) -> Result... method known_value (line 61) | fn known_value(value: &str) -> Option { method as_str (line 76) | pub fn as_str(&self) -> &str { method is_terminal (line 91) | pub const fn is_terminal(&self) -> bool { method is_active (line 96) | pub const fn is_active(&self) -> bool { method is_draft (line 102) | pub const fn is_draft(&self) -> bool { method fmt (line 108) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type Err (line 114) | type Err = crate::error::BeadsError; method from_str (line 116) | fn from_str(s: &str) -> Result { type Priority (line 126) | pub struct Priority(pub i32); constant CRITICAL (line 135) | pub const CRITICAL: Self = Self(0); constant HIGH (line 136) | pub const HIGH: Self = Self(1); constant MEDIUM (line 137) | pub const MEDIUM: Self = Self(2); constant LOW (line 138) | pub const LOW: Self = Self(3); constant BACKLOG (line 139) | pub const BACKLOG: Self = Self(4); method fmt (line 143) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { method default (line 129) | fn default() -> Self { type Err (line 149) | type Err = crate::error::BeadsError; method from_str (line 151) | fn from_str(s: &str) -> Result { type IssueType (line 170) | pub enum IssueType { method deserialize (line 184) | fn deserialize>(deserializer: D) -> Result... method known_value (line 194) | fn known_value(value: &str) -> Option { method as_str (line 208) | pub fn as_str(&self) -> &str { method is_standard (line 224) | pub const fn is_standard(&self) -> bool { method fmt (line 230) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type Err (line 236) | type Err = crate::error::BeadsError; method from_str (line 238) | fn from_str(s: &str) -> Result { type DependencyType (line 246) | pub enum DependencyType { method deserialize (line 263) | fn deserialize>(deserializer: D) -> Result... method as_str (line 284) | pub fn as_str(&self) -> &str { method affects_ready_work (line 302) | pub const fn affects_ready_work(&self) -> bool { method is_blocking (line 310) | pub const fn is_blocking(&self) -> bool { method fmt (line 319) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type Err (line 325) | type Err = crate::error::BeadsError; method from_str (line 327) | fn from_str(s: &str) -> Result { type EventType (line 347) | pub enum EventType { method as_str (line 368) | pub fn as_str(&self) -> &str { method deserialize (line 397) | fn deserialize>(deserializer: D) -> Result... method serialize (line 391) | fn serialize(&self, serializer: S) -> Result std::borrow::Cow<'static, str> { method json_schema (line 426) | fn json_schema(generator: &mut schemars::generate::SchemaGenerator) -> s... type Issue (line 434) | pub struct Issue { method compute_content_hash (line 624) | pub fn compute_content_hash(&self) -> String { method sync_equals (line 635) | pub fn sync_equals(&self, other: &Self) -> bool { method is_expired_tombstone (line 750) | pub fn is_expired_tombstone(&self, retention_days: Option) -> bool { method default (line 571) | fn default() -> Self { type EpicStatus (line 779) | pub struct EpicStatus { type Dependency (line 788) | pub struct Dependency { type Comment (line 817) | pub struct Comment { type Event (line 828) | pub struct Event { function status_custom_roundtrip (line 848) | fn status_custom_roundtrip() { function issue_type_custom_deserialize_preserves_spelling (line 859) | fn issue_type_custom_deserialize_preserves_spelling() { function issue_deserialize_defaults_missing_fields (line 865) | fn issue_deserialize_defaults_missing_fields() { function dependency_type_affects_ready_work (line 883) | fn dependency_type_affects_ready_work() { function test_issue_serialization (line 890) | fn test_issue_serialization() { function test_priority_serialization (line 947) | fn test_priority_serialization() { function test_dependency_type_serialization (line 954) | fn test_dependency_type_serialization() { function test_event_type_serialization (line 965) | fn test_event_type_serialization() { function test_status_from_str_open (line 980) | fn test_status_from_str_open() { function test_status_from_str_in_progress (line 987) | fn test_status_from_str_in_progress() { function test_status_from_str_blocked (line 994) | fn test_status_from_str_blocked() { function test_status_from_str_deferred (line 1000) | fn test_status_from_str_deferred() { function test_status_from_str_closed (line 1006) | fn test_status_from_str_closed() { function test_status_from_str_tombstone (line 1012) | fn test_status_from_str_tombstone() { function test_status_from_str_pinned (line 1018) | fn test_status_from_str_pinned() { function test_status_from_str_unknown_becomes_custom (line 1024) | fn test_status_from_str_unknown_becomes_custom() { function test_status_display (line 1033) | fn test_status_display() { function test_status_is_terminal (line 1045) | fn test_status_is_terminal() { function test_status_is_active (line 1057) | fn test_status_is_active() { function test_status_as_str (line 1069) | fn test_status_as_str() { function test_priority_from_str_with_p_prefix (line 1088) | fn test_priority_from_str_with_p_prefix() { function test_priority_from_str_lowercase_p_prefix (line 1097) | fn test_priority_from_str_lowercase_p_prefix() { function test_priority_from_str_without_prefix (line 1106) | fn test_priority_from_str_without_prefix() { function test_priority_from_str_invalid_too_high (line 1115) | fn test_priority_from_str_invalid_too_high() { function test_priority_from_str_invalid_negative (line 1123) | fn test_priority_from_str_invalid_negative() { function test_priority_from_str_invalid_text (line 1129) | fn test_priority_from_str_invalid_text() { function test_priority_display (line 1137) | fn test_priority_display() { function test_priority_ordering (line 1146) | fn test_priority_ordering() { function test_priority_default (line 1154) | fn test_priority_default() { function test_issue_type_from_str_all_variants (line 1164) | fn test_issue_type_from_str_all_variants() { function test_issue_type_from_str_case_insensitive (line 1180) | fn test_issue_type_from_str_case_insensitive() { function test_issue_type_from_str_custom_accepted (line 1187) | fn test_issue_type_from_str_custom_accepted() { function test_issue_type_display (line 1201) | fn test_issue_type_display() { function test_issue_type_as_str (line 1216) | fn test_issue_type_as_str() { function test_issue_type_default (line 1228) | fn test_issue_type_default() { function test_dependency_type_from_str_all_variants (line 1237) | fn test_dependency_type_from_str_all_variants() { function test_dependency_type_from_str_custom (line 1285) | fn test_dependency_type_from_str_custom() { function test_dependency_type_is_blocking (line 1291) | fn test_dependency_type_is_blocking() { function test_dependency_type_affects_ready_work_all (line 1307) | fn test_dependency_type_affects_ready_work_all() { function test_dependency_type_display (line 1323) | fn test_dependency_type_display() { function create_test_issue (line 1351) | fn create_test_issue() -> Issue { function test_issue_content_hash_deterministic (line 1396) | fn test_issue_content_hash_deterministic() { function test_issue_content_hash_changes_on_title_update (line 1408) | fn test_issue_content_hash_changes_on_title_update() { function test_issue_content_hash_changes_on_description_update (line 1423) | fn test_issue_content_hash_changes_on_description_update() { function test_issue_content_hash_changes_on_status_update (line 1438) | fn test_issue_content_hash_changes_on_status_update() { function test_issue_content_hash_changes_on_priority_update (line 1453) | fn test_issue_content_hash_changes_on_priority_update() { function test_issue_content_hash_unchanged_by_timestamps (line 1468) | fn test_issue_content_hash_unchanged_by_timestamps() { function test_issue_content_hash_unchanged_by_id (line 1481) | fn test_issue_content_hash_unchanged_by_id() { function test_issue_sync_equals_ignores_audit_timestamps_and_relation_order (line 1493) | fn test_issue_sync_equals_ignores_audit_timestamps_and_relation_order() { function test_issue_sync_equals_detects_semantic_changes (line 1546) | fn test_issue_sync_equals_detects_semantic_changes() { function test_issue_sync_equals_treats_duplicate_labels_as_equivalent (line 1555) | fn test_issue_sync_equals_treats_duplicate_labels_as_equivalent() { function test_is_expired_tombstone_not_tombstone (line 1575) | fn test_is_expired_tombstone_not_tombstone() { function test_is_expired_tombstone_no_retention (line 1581) | fn test_is_expired_tombstone_no_retention() { function test_is_expired_tombstone_zero_retention (line 1589) | fn test_is_expired_tombstone_zero_retention() { function test_is_expired_tombstone_no_deleted_at (line 1597) | fn test_is_expired_tombstone_no_deleted_at() { function test_is_expired_tombstone_not_expired (line 1604) | fn test_is_expired_tombstone_not_expired() { function test_is_expired_tombstone_expired (line 1612) | fn test_is_expired_tombstone_expired() { function test_event_type_as_str (line 1624) | fn test_event_type_as_str() { function test_event_type_deserialize_all (line 1647) | fn test_event_type_deserialize_all() { function test_event_type_deserialize_custom (line 1673) | fn test_event_type_deserialize_custom() { function test_comment_serialization_roundtrip (line 1683) | fn test_comment_serialization_roundtrip() { function test_comment_text_field_renamed (line 1699) | fn test_comment_text_field_renamed() { function test_dependency_serialization_roundtrip (line 1710) | fn test_dependency_serialization_roundtrip() { function test_dependency_type_field_renamed (line 1728) | fn test_dependency_type_field_renamed() { function test_event_serialization_roundtrip (line 1739) | fn test_event_serialization_roundtrip() { function test_epic_status_serialization (line 1762) | fn test_epic_status_serialization() { FILE: src/output/components/dep_tree.rs type DependencyTree (line 9) | pub struct DependencyTree<'a> { function new (line 18) | pub fn new(root: &'a Issue, all: &'a [Issue], theme: &'a Theme) -> Self { function max_depth (line 28) | pub fn max_depth(mut self, depth: usize) -> Self { function build (line 34) | pub fn build(&self) -> Tree { function build_node (line 42) | fn build_node(&self, issue: &Issue, depth: usize) -> TreeNode { function find_issue (line 73) | fn find_issue(&self, id: &str) -> Option<&Issue> { function truncate (line 78) | fn truncate(s: &str, max: usize) -> String { function test_dep_tree_truncation_safe (line 122) | fn test_dep_tree_truncation_safe() { function test_dep_tree_truncation_ascii (line 134) | fn test_dep_tree_truncation_ascii() { function test_dep_tree_truncation_short (line 142) | fn test_dep_tree_truncation_short() { function dependency_tree_sanitizes_labels_and_uses_safe_status_icon (line 149) | fn dependency_tree_sanitizes_labels_and_uses_safe_status_icon() { FILE: src/output/components/issue_panel.rs type IssuePanel (line 10) | pub struct IssuePanel<'a> { function new (line 21) | pub fn new(issue: &'a Issue, theme: &'a Theme) -> Self { function from_details (line 33) | pub fn from_details(details: &'a IssueDetails, theme: &'a Theme) -> Self { function show_dependencies (line 45) | pub fn show_dependencies(mut self, show: bool) -> Self { function show_dependents (line 51) | pub fn show_dependents(mut self, show: bool) -> Self { function show_comments (line 57) | pub fn show_comments(mut self, show: bool) -> Self { function print (line 62) | pub fn print(&self, ctx: &OutputContext, wrap: bool) { function append_relationships (line 174) | fn append_relationships(&self, content: &mut Text) { function append_comments (line 196) | fn append_comments(&self, content: &mut Text, comments: &[Comment]) { function wrap_rich_text (line 223) | fn wrap_rich_text(text: &Text, panel_width: usize) -> Text { function render_dependency_list (line 236) | fn render_dependency_list( function dependency_arrow (line 277) | fn dependency_arrow(is_dependent: bool) -> &'static str { function render_dependency_refs (line 281) | fn render_dependency_refs(deps: &[Dependency], content: &mut Text, theme... function test_dependency_arrow_tracks_direction (line 316) | fn test_dependency_arrow_tracks_direction() { function dependency_rendering_sanitizes_ids_and_types (line 322) | fn dependency_rendering_sanitizes_ids_and_types() { FILE: src/output/components/issue_table.rs type IssueTable (line 13) | pub struct IssueTable<'a> { type IssueTableColumns (line 26) | pub struct IssueTableColumns { method compact (line 41) | pub fn compact() -> Self { method standard (line 52) | pub fn standard() -> Self { method full (line 65) | pub fn full() -> Self { function new (line 83) | pub fn new(issues: &'a [Issue], theme: &'a Theme) -> Self { function width (line 97) | pub fn width(mut self, width: Option) -> Self { function wrap (line 103) | pub fn wrap(mut self, wrap: bool) -> Self { function columns (line 109) | pub fn columns(mut self, columns: IssueTableColumns) -> Self { function title (line 115) | pub fn title(mut self, title: impl Into) -> Self { function highlight_query (line 121) | pub fn highlight_query(mut self, query: impl Into) -> Self { function context_snippets (line 130) | pub fn context_snippets(mut self, snippets: HashMap) -> ... function build (line 139) | pub fn build(&self) -> Table { function build_highlight_regex (line 290) | fn build_highlight_regex(query: &str) -> Option { function highlight_text (line 302) | fn highlight_text(text: &str, regex: Option<&Regex>, theme: &Theme) -> T... function test_table_truncation_safe (line 340) | fn test_table_truncation_safe() { function table_sanitizes_custom_status_and_type_cells (line 352) | fn table_sanitizes_custom_status_and_type_cells() { function table_sanitizes_title_controls (line 380) | fn table_sanitizes_title_controls() { FILE: src/output/components/progress.rs type ProgressTracker (line 7) | pub struct ProgressTracker { method new (line 16) | pub fn new(theme: &Theme, total: usize, description: impl Into... method tick (line 32) | pub fn tick(&mut self) { method set (line 37) | pub fn set(&mut self, current: usize) { method progress_ratio (line 42) | fn progress_ratio(&self) -> f64 { method render (line 50) | pub fn render(&self, console: &Console) { method finish (line 59) | pub fn finish(&self, console: &Console) { method render_prefix (line 64) | fn render_prefix(&self) -> Text { method finish_message (line 74) | fn finish_message(&self) -> Text { method display_counts (line 84) | fn display_counts(&self) -> (usize, usize) { function assert_no_control_chars (line 93) | fn assert_no_control_chars(text: &str) { function span_text (line 100) | fn span_text(text: &Text, span: &rich_rust::Span) -> String { function progress_prefix_sanitizes_description_without_markup_parsing (line 109) | fn progress_prefix_sanitizes_description_without_markup_parsing() { function progress_finish_message_sanitizes_description_without_markup_parsing (line 128) | fn progress_finish_message_sanitizes_description_without_markup_parsing() { function progress_counter_never_displays_past_total (line 147) | fn progress_counter_never_displays_past_total() { function zero_total_progress_remains_at_zero_when_ticked (line 161) | fn zero_total_progress_remains_at_zero_when_ticked() { FILE: src/output/components/stats.rs type StatsPanel (line 5) | pub struct StatsPanel<'a> { function new (line 12) | pub fn new(title: impl Into, theme: &'a Theme) -> Self { function add (line 20) | pub fn add(&mut self, label: &'a str, count: usize, style: Style) -> &mu... function build (line 26) | pub fn build(&self) -> Table { FILE: src/output/context.rs type OutputContext (line 17) | pub struct OutputContext { method detect (line 131) | pub fn detect() -> Self { method with_mode (line 140) | pub fn with_mode(mode: OutputMode) -> Self { method from_args (line 154) | pub fn from_args(args: &Cli) -> Self { method from_flags (line 168) | pub fn from_flags(json: bool, quiet: bool, no_color: bool) -> Self { method from_output_format (line 190) | pub fn from_output_format(format: OutputFormat, quiet: bool, no_color:... method detect_mode (line 216) | fn detect_mode(args: &Cli) -> OutputMode { method detect_mode_with_env (line 220) | fn detect_mode_with_env(args: &Cli, env_output_format: Option &Console { method mode (line 257) | pub fn mode(&self) -> OutputMode { method is_rich (line 260) | pub fn is_rich(&self) -> bool { method is_json (line 263) | pub fn is_json(&self) -> bool { method is_toon (line 266) | pub fn is_toon(&self) -> bool { method is_quiet (line 269) | pub fn is_quiet(&self) -> bool { method is_plain (line 272) | pub fn is_plain(&self) -> bool { method inherited_output_mode (line 276) | pub const fn inherited_output_mode(&self) -> InheritedOutputMode { method width (line 286) | pub fn width(&self) -> usize { method theme (line 293) | pub fn theme(&self) -> &Theme { method print (line 301) | pub fn print(&self, content: &str) { method print_line (line 312) | pub fn print_line(&self, content: &str) { method render (line 325) | pub fn render(&self, renderable: &R) { method report_serialization_error (line 331) | fn report_serialization_error(&self, format: &str, err: &serde_json::E... method json_value (line 337) | fn json_value( method json (line 351) | pub fn json(&self, value: &T) { method json_pretty (line 364) | pub fn json_pretty(&self, value: &T) { method toon (line 384) | pub fn toon(&self, value: &T) { method should_emit_toon_stats (line 397) | const fn should_emit_toon_stats(show_stats: bool, env_enabled: bool) -... method pretty_json_len (line 401) | fn pretty_json_len(value: &serde_json::Value) -> Option { method toon_with_stats (line 409) | pub fn toon_with_stats(&self, value: &T, show_sta... method success (line 449) | pub fn success(&self, message: &str) { method error (line 465) | pub fn error(&self, message: &str) { method warning (line 479) | pub fn warning(&self, message: &str) { method info (line 495) | pub fn info(&self, message: &str) { method section (line 511) | pub fn section(&self, title: &str) { method newline (line 522) | pub fn newline(&self) { method error_panel (line 528) | pub fn error_panel(&self, title: &str, description: &str, suggestions:... type OutputMode (line 29) | pub enum OutputMode { constant JSON_OUTPUT_BUFFER_CAPACITY (line 42) | const JSON_OUTPUT_BUFFER_CAPACITY: usize = 128 * 1024; type CountingWriter (line 45) | struct CountingWriter { method len (line 50) | const fn len(&self) -> usize { method write (line 56) | fn write(&mut self, buf: &[u8]) -> io::Result { method flush (line 61) | fn flush(&mut self) -> io::Result<()> { function toon_encode_options (line 67) | fn toon_encode_options() -> EncodeOptions { function sanitize_toon_value (line 77) | fn sanitize_toon_value(value: &mut JsonValue) { function sanitize_toon_string (line 105) | fn sanitize_toon_string(value: &str) -> Cow<'_, str> { type FailingSerialize (line 567) | struct FailingSerialize; method serialize (line 570) | fn serialize(&self, _serializer: S) -> Result function detect_mode_uses_env_json_default_when_no_explicit_format_requested (line 579) | fn detect_mode_uses_env_json_default_when_no_explicit_format_requested() { function detect_mode_uses_env_toon_default_when_no_explicit_format_requested (line 588) | fn detect_mode_uses_env_toon_default_when_no_explicit_format_requested() { function detect_mode_quiet_overrides_env_machine_format (line 597) | fn detect_mode_quiet_overrides_env_machine_format() { function detect_mode_explicit_json_overrides_env_toon_default (line 606) | fn detect_mode_explicit_json_overrides_env_toon_default() { function detect_mode_uses_robot_flag_for_sync (line 615) | fn detect_mode_uses_robot_flag_for_sync() { function detect_mode_global_flag_matrix_has_unambiguous_precedence (line 624) | fn detect_mode_global_flag_matrix_has_unambiguous_precedence() { function detect_mode_short_quiet_alias_matches_long_quiet (line 678) | fn detect_mode_short_quiet_alias_matches_long_quiet() { function should_emit_toon_stats_when_flag_is_set (line 689) | fn should_emit_toon_stats_when_flag_is_set() { function should_emit_toon_stats_when_env_is_set (line 694) | fn should_emit_toon_stats_when_env_is_set() { function should_not_emit_toon_stats_when_flag_and_env_are_absent (line 699) | fn should_not_emit_toon_stats_when_flag_and_env_are_absent() { function pretty_json_len_matches_pretty_serializer_output (line 704) | fn pretty_json_len_matches_pretty_serializer_output() { function sanitize_toon_string_keeps_newline_and_tab_but_escapes_carriage_return (line 722) | fn sanitize_toon_string_keeps_newline_and_tab_but_escapes_carriage_retur... function sanitize_toon_value_escapes_controls_the_encoder_would_emit_raw (line 727) | fn sanitize_toon_value_escapes_controls_the_encoder_would_emit_raw() { function sanitize_toon_value_keeps_entries_when_sanitized_keys_collide (line 757) | fn sanitize_toon_value_keeps_entries_when_sanitized_keys_collide() { function json_value_returns_none_on_serialize_error (line 786) | fn json_value_returns_none_on_serialize_error() { function rich_test_context (line 791) | fn rich_test_context() -> OutputContext { function rich_status_helpers_emit_trailing_newlines (line 801) | fn rich_status_helpers_emit_trailing_newlines() { FILE: src/output/theme.rs function color (line 7) | fn color(name: &str) -> Color { type Theme (line 15) | pub struct Theme { method status_style (line 117) | pub fn status_style(&self, status: &Status) -> Style { method priority_style (line 130) | pub fn priority_style(&self, priority: Priority) -> Style { method type_style (line 141) | pub fn type_style(&self, issue_type: &IssueType) -> Style { method default (line 64) | fn default() -> Self { FILE: src/storage/events.rs constant EVENTS_TABLE_SCHEMA (line 20) | pub const EVENTS_TABLE_SCHEMA: &str = r" function insert_event (line 58) | pub fn insert_event( function insert_created_event (line 94) | pub fn insert_created_event(conn: &Connection, issue_id: &str, actor: &s... function insert_updated_event (line 103) | pub fn insert_updated_event( function insert_status_changed_event (line 128) | pub fn insert_status_changed_event( function insert_closed_event (line 151) | pub fn insert_closed_event( function insert_reopened_event (line 173) | pub fn insert_reopened_event( function insert_commented_event (line 195) | pub fn insert_commented_event( function insert_dependency_added_event (line 217) | pub fn insert_dependency_added_event( function insert_dependency_removed_event (line 241) | pub fn insert_dependency_removed_event( function insert_label_added_event (line 264) | pub fn insert_label_added_event( function insert_label_removed_event (line 286) | pub fn insert_label_removed_event( function insert_deleted_event (line 308) | pub fn insert_deleted_event( function insert_restored_event (line 330) | pub fn insert_restored_event( function get_events (line 358) | pub fn get_events(conn: &Connection, issue_id: &str, limit: usize) -> Re... function event_from_row (line 379) | fn event_from_row(row: &Row) -> Result { function parse_event_timestamp (line 422) | fn parse_event_timestamp(value: &str) -> Result> { function get_all_events (line 443) | pub fn get_all_events(conn: &Connection, limit: usize) -> Result Result { function parse_event_type (line 477) | fn parse_event_type(s: &str) -> EventType { function init_events_table (line 503) | pub fn init_events_table(conn: &Connection) -> Result<()> { function setup_test_db (line 514) | fn setup_test_db() -> Connection { function test_insert_created_event (line 541) | fn test_insert_created_event() { function test_insert_status_changed_event (line 557) | fn test_insert_status_changed_event() { function test_insert_closed_event (line 573) | fn test_insert_closed_event() { function test_insert_commented_event (line 588) | fn test_insert_commented_event() { function test_insert_dependency_added_event (line 603) | fn test_insert_dependency_added_event() { function test_insert_label_events (line 623) | fn test_insert_label_events() { function test_get_events_ordering (line 645) | fn test_get_events_ordering() { function test_get_events_with_limit (line 665) | fn test_get_events_with_limit() { function test_get_events_limit_is_applied_after_timestamp_sort (line 686) | fn test_get_events_limit_is_applied_after_timestamp_sort() { function test_count_events (line 718) | fn test_count_events() { function test_deleted_and_restored_events (line 734) | fn test_deleted_and_restored_events() { function test_reopened_event (line 756) | fn test_reopened_event() { function test_get_all_events (line 771) | fn test_get_all_events() { function test_multiple_event_types_sequence (line 789) | fn test_multiple_event_types_sequence() { function test_get_events_errors_on_invalid_timestamp (line 821) | fn test_get_events_errors_on_invalid_timestamp() { FILE: src/storage/schema.rs constant CURRENT_SCHEMA_VERSION (line 10) | pub const CURRENT_SCHEMA_VERSION: i32 = 7; constant ISSUES_CLOSED_AT_CHECK (line 11) | const ISSUES_CLOSED_AT_CHECK: &str = "CHECK ((status = 'closed' AND clos... constant SCHEMA_SQL (line 15) | pub const SCHEMA_SQL: &str = r" function split_sql_statements (line 230) | fn split_sql_statements(sql: &str) -> Vec<&str> { function execute_batch (line 339) | pub(crate) fn execute_batch(conn: &Connection, sql: &str) -> Result<()> { function apply_schema (line 379) | pub fn apply_schema(conn: &Connection) -> Result<()> { function apply_runtime_compatible_schema (line 450) | pub(crate) fn apply_runtime_compatible_schema(conn: &Connection) -> Resu... function apply_runtime_pragmas (line 461) | pub(crate) fn apply_runtime_pragmas(conn: &Connection) -> Result<()> { function table_exists (line 500) | pub(crate) fn table_exists(conn: &Connection, table: &str) -> bool { function index_exists (line 506) | fn index_exists(conn: &Connection, index: &str) -> bool { function column_exists (line 512) | fn column_exists(conn: &Connection, table: &str, column: &str) -> bool { constant ISSUE_COLUMNS (line 520) | const ISSUE_COLUMNS: &[(&str, &str)] = &[ constant DEPENDENCY_COLUMNS (line 560) | const DEPENDENCY_COLUMNS: &[(&str, &str)] = &[ constant COMMENT_COLUMNS (line 568) | const COMMENT_COLUMNS: &[(&str, &str)] = &[ constant EVENT_COLUMNS (line 574) | const EVENT_COLUMNS: &[(&str, &str)] = &[ function ensure_columns (line 583) | fn ensure_columns(conn: &Connection, table: &str, columns: &[(&str, &str... function table_has_columns (line 598) | fn table_has_columns(conn: &Connection, table: &str, required_columns: &... function current_schema_version_declared (line 605) | fn current_schema_version_declared(conn: &Connection) -> bool { function core_runtime_tables_exist (line 612) | fn core_runtime_tables_exist(conn: &Connection) -> bool { constant EXPECTED_ISSUE_COLUMN_ORDER (line 633) | const EXPECTED_ISSUE_COLUMN_ORDER: &[&str] = &[ function issues_column_order_matches (line 675) | fn issues_column_order_matches(conn: &Connection) -> bool { function issues_filter_columns_require_v3_rebuild (line 703) | fn issues_filter_columns_require_v3_rebuild(conn: &Connection) -> bool { function foreign_keys_enabled (line 725) | fn foreign_keys_enabled(conn: &Connection) -> Result { function restore_foreign_keys (line 730) | fn restore_foreign_keys(conn: &Connection, operation: &str) -> Result<()> { function finish_foreign_key_suppressed_result (line 743) | fn finish_foreign_key_suppressed_result( function rebuild_issues_table (line 772) | fn rebuild_issues_table(conn: &Connection) -> Result<()> { function rebuild_issues_table_inner (line 811) | fn rebuild_issues_table_inner(conn: &Connection, existing_columns: &[Str... function kv_table_uses_primary_key (line 903) | fn kv_table_uses_primary_key(conn: &Connection, table: &str) -> bool { function kv_table_needs_canonical_rebuild (line 921) | fn kv_table_needs_canonical_rebuild(conn: &Connection, table: &str, expe... function rebuild_kv_table_without_unique (line 931) | fn rebuild_kv_table_without_unique(conn: &Connection, table: &str) -> Re... function run_pre_schema_migrations (line 970) | fn run_pre_schema_migrations(conn: &Connection) -> Result { function runtime_schema_compatible (line 1029) | pub(crate) fn runtime_schema_compatible(conn: &Connection) -> bool { function run_migrations (line 1107) | fn run_migrations(conn: &Connection, issues_rebuilt: bool) -> Result<()> { function repair_integer_datetime_columns (line 1350) | fn repair_integer_datetime_columns(conn: &Connection) -> Result<()> { function repair_legacy_status_values (line 1388) | fn repair_legacy_status_values(conn: &Connection) -> Result<()> { function rebuild_content_hashes_for_go_parity (line 1398) | fn rebuild_content_hashes_for_go_parity(conn: &Connection) -> Result Option { function row_optional_text (line 1506) | fn row_optional_text(row: &fsqlite::Row, index: usize) -> Option { function row_bool (line 1510) | fn row_bool(row: &fsqlite::Row, index: usize) -> bool { function test_apply_schema (line 1528) | fn test_apply_schema() { function test_v6_repair_integer_datetime_columns (line 1568) | fn test_v6_repair_integer_datetime_columns() { function test_v6_repair_legacy_status_values (line 1649) | fn test_v6_repair_legacy_status_values() { function test_v7_rebuilds_content_hashes_and_marks_dirty (line 1691) | fn test_v7_rebuilds_content_hashes_and_marks_dirty() { function test_apply_schema_file_backed_has_no_duplicate_issues_columns (line 1732) | fn test_apply_schema_file_backed_has_no_duplicate_issues_columns() { function test_schema_parity_conformance (line 1763) | fn test_schema_parity_conformance() { function test_migration_blocked_cache_upgrade (line 2050) | fn test_migration_blocked_cache_upgrade() { function test_migration_blocked_cache_missing_issue_id (line 2138) | fn test_migration_blocked_cache_missing_issue_id() { function test_migration_adds_missing_issue_columns (line 2231) | fn test_migration_adds_missing_issue_columns() { function test_rebuild_issues_table_errors_when_canonical_columns_are_missing (line 2284) | fn test_rebuild_issues_table_errors_when_canonical_columns_are_missing() { function test_rebuild_issues_table_restores_foreign_keys_when_begin_fails (line 2313) | fn test_rebuild_issues_table_restores_foreign_keys_when_begin_fails() { function test_migration_adds_missing_dependency_type (line 2340) | fn test_migration_adds_missing_dependency_type() { function test_migration_rebuilds_legacy_config_metadata_primary_keys (line 2379) | fn test_migration_rebuilds_legacy_config_metadata_primary_keys() { function test_runtime_schema_compatible_rejects_legacy_kv_primary_keys (line 2454) | fn test_runtime_schema_compatible_rejects_legacy_kv_primary_keys() { function test_active_list_query_plan_uses_composite_index (line 2483) | fn test_active_list_query_plan_uses_composite_index() { function test_split_normal_multi_statement (line 2527) | fn test_split_normal_multi_statement() { function test_split_semicolon_inside_single_quoted_string (line 2537) | fn test_split_semicolon_inside_single_quoted_string() { function test_split_semicolon_inside_double_quoted_identifier (line 2546) | fn test_split_semicolon_inside_double_quoted_identifier() { function test_split_escaped_quotes_in_string (line 2555) | fn test_split_escaped_quotes_in_string() { function test_split_empty_statements (line 2565) | fn test_split_empty_statements() { function test_split_trailing_semicolon (line 2574) | fn test_split_trailing_semicolon() { function test_split_line_comment_with_semicolon (line 2583) | fn test_split_line_comment_with_semicolon() { function test_split_block_comment_with_semicolon (line 2592) | fn test_split_block_comment_with_semicolon() { function test_split_empty_input (line 2601) | fn test_split_empty_input() { function test_split_single_statement_no_semicolon (line 2608) | fn test_split_single_statement_no_semicolon() { FILE: src/storage/sqlite.rs constant WAL_CHECKPOINT_INTERVAL (line 30) | const WAL_CHECKPOINT_INTERVAL: u32 = 50; constant DEFAULT_BUSY_TIMEOUT_MS (line 40) | const DEFAULT_BUSY_TIMEOUT_MS: u64 = 0; constant SQLITE_VAR_LIMIT (line 41) | const SQLITE_VAR_LIMIT: usize = 900; type ListRelationMetadata (line 44) | pub(crate) struct ListRelationMetadata { function unique_label_refs (line 50) | fn unique_label_refs(labels: &[String]) -> Vec<&String> { function append_label_membership_filters (line 61) | fn append_label_membership_filters( function append_issue_source_with_label_and_joins (line 111) | fn append_issue_source_with_label_and_joins( function append_issue_id_membership_filter (line 143) | fn append_issue_id_membership_filter( function append_label_or_membership_exists (line 162) | fn append_label_or_membership_exists( constant EXPORT_HASH_CHUNK_SIZE (line 189) | const EXPORT_HASH_CHUNK_SIZE: usize = 32; constant BLOCKED_CACHE_DELETE_CHUNK_SIZE (line 193) | const BLOCKED_CACHE_DELETE_CHUNK_SIZE: usize = 400; constant DIRTY_ISSUE_CHUNK_SIZE (line 194) | const DIRTY_ISSUE_CHUNK_SIZE: usize = 900; constant IMPORT_LABEL_CHUNK_SIZE (line 195) | const IMPORT_LABEL_CHUNK_SIZE: usize = 400; constant BLOCKS_DEP_EDGE_FILTER_LIMIT (line 196) | const BLOCKS_DEP_EDGE_FILTER_LIMIT: usize = 400; constant IMPORT_DEPENDENCY_CHUNK_SIZE (line 197) | const IMPORT_DEPENDENCY_CHUNK_SIZE: usize = 140; constant DEPENDENCY_TRAVERSAL_MAX_DEPTH (line 198) | const DEPENDENCY_TRAVERSAL_MAX_DEPTH: usize = 500; constant BLOCKED_CACHE_STATE_KEY (line 199) | const BLOCKED_CACHE_STATE_KEY: &str = "blocked_cache_state"; constant BLOCKED_CACHE_STATE_STALE (line 200) | const BLOCKED_CACHE_STATE_STALE: &str = "stale"; constant NEEDS_FLUSH_KEY (line 201) | const NEEDS_FLUSH_KEY: &str = "needs_flush"; constant METADATA_EMPTY_VALUE (line 202) | const METADATA_EMPTY_VALUE: &str = ""; constant METADATA_FALSE_VALUE (line 203) | const METADATA_FALSE_VALUE: &str = "false"; constant KNOWN_METADATA_DEFAULTS (line 204) | const KNOWN_METADATA_DEFAULTS: [(&str, &str); 7] = [ type SqliteStorage (line 216) | pub struct SqliteStorage { method with_connection_write_transaction (line 419) | fn with_connection_write_transaction(conn: &Connection, mut f: F... method metadata_key_exists (line 487) | fn metadata_key_exists(conn: &Connection, key: &str) -> Result { method upsert_metadata_key_in_tx (line 495) | fn upsert_metadata_key_in_tx(conn: &Connection, key: &str, value: &str... method ensure_known_metadata_defaults (line 513) | fn ensure_known_metadata_defaults(conn: &Connection) -> Result<()> { method metadata_equals (line 541) | fn metadata_equals(conn: &Connection, key: &str, expected: &str) -> Re... method apply_blocked_cache_refresh_plan (line 552) | fn apply_blocked_cache_refresh_plan( method foreign_keys_enabled (line 567) | fn foreign_keys_enabled(conn: &Connection) -> Result { method restore_foreign_keys (line 572) | fn restore_foreign_keys(conn: &Connection, operation: &str) -> Result<... method finish_foreign_key_suppressed_result (line 585) | fn finish_foreign_key_suppressed_result( method refresh_blocked_cache_after_commit (line 603) | fn refresh_blocked_cache_after_commit( method handle_blocked_cache_refresh_error (line 621) | fn handle_blocked_cache_refresh_error(&self, op: &str, error: BeadsErr... method blocked_cache_marked_stale (line 646) | pub(crate) fn blocked_cache_marked_stale(&self) -> Result { method mark_blocked_cache_stale (line 659) | pub(crate) fn mark_blocked_cache_stale(&mut self) -> Result<()> { method ensure_blocked_cache_fresh (line 663) | pub(crate) fn ensure_blocked_cache_fresh(&self) -> Result { method open (line 690) | pub fn open(path: &Path) -> Result { method open_with_timeout (line 699) | pub fn open_with_timeout(path: &Path, lock_timeout_ms: Option) ->... method open_current_read_only (line 726) | pub(crate) fn open_current_read_only(path: &Path) -> Result Result { method reset_data_tables (line 780) | pub fn reset_data_tables(&mut self) -> Result<()> { method detect_anomalies (line 815) | pub fn detect_anomalies(&self) -> Result Result Result Result<()> { method execute_raw_query (line 931) | pub(crate) fn execute_raw_query(&self, sql: &str) -> Result Result> { method execute_raw_count (line 1010) | pub(crate) fn execute_raw_count(&self, sql: &str) -> Result { method probe_issue_mutation_write_path (line 1024) | pub(crate) fn probe_issue_mutation_write_path(&self, issue_id: &str) -... method with_write_transaction (line 1046) | pub(crate) fn with_write_transaction(&mut self, mut f: F) -> Res... method jittered_backoff (line 1127) | fn jittered_backoff(base_ms: u64, attempt: u32) -> u64 { method set_export_hashes_in_tx (line 1153) | pub(crate) fn set_export_hashes_in_tx(&self, exports: &[(String, Strin... method set_changed_export_hashes_in_tx (line 1195) | pub(crate) fn set_changed_export_hashes_in_tx( method dedupe_export_hash_batch (line 1233) | fn dedupe_export_hash_batch(exports: &[(String, String)]) -> Vec<(Stri... method clear_export_hashes_in_tx (line 1254) | pub(crate) fn clear_export_hashes_in_tx(&self, issue_ids: &[String]) -... method try_wal_checkpoint (line 1279) | fn try_wal_checkpoint(&self) { method checkpoint_full (line 1307) | pub(crate) fn checkpoint_full(&self) -> Result<()> { method get_events (line 1323) | pub fn get_events(&self, issue_id: &str, limit: usize) -> Result Result> { method mutate (line 1349) | pub fn mutate(&mut self, op: &str, actor: &str, mut f: F) -> Res... method create_issue (line 1470) | pub fn create_issue(&mut self, issue: &Issue, actor: &str) -> Result<(... method check_cycle (line 1691) | fn check_cycle( method update_issue (line 1762) | pub fn update_issue(&mut self, id: &str, updates: &IssueUpdate, actor:... method delete_issue (line 2184) | pub fn delete_issue( method purge_issue (line 2254) | pub fn purge_issue(&mut self, id: &str, actor: &str) -> Result<()> { method get_issue (line 2310) | pub fn get_issue(&self, id: &str) -> Result> { method get_all_issues_metadata (line 2319) | pub fn get_all_issues_metadata(&self) -> Result> { method get_issue_ids_by_status (line 2361) | pub fn get_issue_ids_by_status(&self, status: &Status) -> Result Result Result> { method label_filter_candidate_ids (line 2442) | fn label_filter_candidate_ids( method query_issue_ids_with_all_labels (line 2465) | fn query_issue_ids_with_all_labels(&self, labels: &[String]) -> Result... method query_issue_ids_with_any_label (line 2500) | fn query_issue_ids_with_any_label(&self, labels: &[String]) -> Result<... method query_issue_ids_from_label_sql (line 2520) | fn query_issue_ids_from_label_sql( method list_issues (line 2542) | pub fn list_issues(&self, filters: &ListFilters) -> Result> { method list_stats_issues (line 2728) | pub fn list_stats_issues(&self) -> Result> { method count_issues_with_filters (line 2750) | pub fn count_issues_with_filters(&self, filters: &ListFilters) -> Resu... method count_labels_with_filters (line 2870) | pub fn count_labels_with_filters(&self, filters: &ListFilters) -> Resu... method search_issues (line 3001) | pub fn search_issues(&self, query: &str, filters: &ListFilters) -> Res... method get_ready_issues (line 3193) | pub fn get_ready_issues( method get_ready_issues_for_command_output (line 3210) | pub fn get_ready_issues_for_command_output( method get_ready_issues_with_projection (line 3218) | fn get_ready_issues_with_projection( method build_ready_issue_candidates_query (line 3256) | fn build_ready_issue_candidates_query( method query_ready_issue_candidates_with_projection (line 3411) | fn query_ready_issue_candidates_with_projection( method query_limited_ready_hybrid_high_bucket (line 3451) | fn query_limited_ready_hybrid_high_bucket( method query_ready_issues_without_cache_with_projection (line 3484) | fn query_ready_issues_without_cache_with_projection( method recover_blocked_issues_map (line 3504) | fn recover_blocked_issues_map( method recover_blocked_ids (line 3517) | fn recover_blocked_ids( method get_blocked_ids (line 3533) | pub fn get_blocked_ids(&self) -> Result> { method get_blocks_dep_edges (line 3564) | pub fn get_blocks_dep_edges(&self) -> Result> { method get_blocks_dep_edges_for_issue_ids (line 3605) | pub fn get_blocks_dep_edges_for_issue_ids( method is_blocked (line 3666) | pub fn is_blocked(&self, issue_id: &str) -> Result { method get_blockers (line 3698) | pub fn get_blockers(&self, issue_id: &str) -> Result> { method rebuild_blocked_cache (line 3757) | pub fn rebuild_blocked_cache(&mut self, force_rebuild: bool) -> Result... method rebuild_blocked_cache_in_tx (line 3783) | pub(crate) fn rebuild_blocked_cache_in_tx(&self) -> Result { method rebuild_child_counters_in_tx (line 3796) | pub(crate) fn rebuild_child_counters_in_tx(&self) -> Result { method rebuild_child_counters_impl (line 3800) | fn rebuild_child_counters_impl(conn: &Connection) -> Result { method compute_blocked_issues_map_impl (line 3870) | fn compute_blocked_issues_map_impl(conn: &Connection) -> Result Vec { method load_blocked_issues_from_map (line 3911) | fn load_blocked_issues_from_map( method rebuild_blocked_cache_impl (line 3943) | fn rebuild_blocked_cache_impl(conn: &Connection) -> Result { method reset_blocked_cache_table (line 3971) | fn reset_blocked_cache_table(conn: &Connection) -> Result<()> { method incremental_blocked_cache_update (line 4007) | fn incremental_blocked_cache_update( method insert_blocked_cache_entries (line 4078) | fn insert_blocked_cache_entries( method load_direct_blockers_impl (line 4105) | fn load_direct_blockers_impl(conn: &Connection) -> Result Result)>> { method has_external_dependencies (line 4493) | pub fn has_external_dependencies(&self, blocking_only: bool) -> Result... method resolve_external_dependency_statuses (line 4534) | pub fn resolve_external_dependency_statuses( method resolve_external_dependency_statuses_for_ids (line 4546) | pub(crate) fn resolve_external_dependency_statuses_for_ids( method external_blockers (line 4615) | pub fn external_blockers( method list_external_dependency_ids (line 4715) | fn list_external_dependency_ids(&self, blocking_only: bool) -> Result<... method id_exists (line 4751) | pub fn id_exists(&self, id: &str) -> Result { method find_ids_by_exact_title (line 4760) | pub fn find_ids_by_exact_title(&self, title: &str) -> Result Result Result Result { method get_all_ids (line 4853) | pub fn get_all_ids(&self) -> Result> { method get_epic_counts (line 4869) | pub fn get_epic_counts(&self) -> Result Resul... method add_dependency (line 4947) | pub fn add_dependency( method add_dependency_with_metadata (line 4963) | pub fn add_dependency_with_metadata( method remove_dependency (line 5080) | pub fn remove_dependency( method remove_all_dependencies (line 5125) | pub fn remove_all_dependencies(&mut self, issue_id: &str, actor: &str)... method remove_parent (line 5190) | pub fn remove_parent(&mut self, issue_id: &str, actor: &str) -> Result... method set_parent (line 5236) | pub fn set_parent( method set_parent_with_options (line 5250) | pub fn set_parent_with_options( method add_label (line 5349) | pub fn add_label(&mut self, issue_id: &str, label: &str, actor: &str) ... method remove_label (line 5405) | pub fn remove_label(&mut self, issue_id: &str, label: &str, actor: &st... method remove_all_labels (line 5453) | pub fn remove_all_labels(&mut self, issue_id: &str, actor: &str) -> Re... method set_labels (line 5488) | pub fn set_labels(&mut self, issue_id: &str, labels: &[String], actor:... method get_labels (line 5592) | pub fn get_labels(&self, issue_id: &str) -> Result> { method get_labels_for_issues (line 5608) | pub fn get_labels_for_issues( method get_all_labels (line 5661) | pub fn get_all_labels(&self) -> Result>> { method get_all_list_relation_metadata (line 5693) | pub(crate) fn get_all_list_relation_metadata( method get_labels_for_export (line 5763) | pub fn get_labels_for_export(&self) -> Result Result Result> { method get_comments_for_issues (line 5953) | pub fn get_comments_for_issues( method count_issue_events (line 5998) | pub fn count_issue_events(&self, issue_id: &str) -> Result { method add_comment (line 6016) | pub fn add_comment(&mut self, issue_id: &str, author: &str, text: &str... method get_dependencies_with_metadata (line 6044) | pub fn get_dependencies_with_metadata( method get_dependents_with_metadata (line 6067) | pub fn get_dependents_with_metadata( method prefetch_blocking_dependents (line 6090) | pub fn prefetch_blocking_dependents( method get_parent_id (line 6145) | pub fn get_parent_id(&self, issue_id: &str) -> Result> { method get_dependents (line 6161) | pub fn get_dependents(&self, issue_id: &str) -> Result> { method get_blocker_ids (line 6177) | pub fn get_blocker_ids(&self, issue_id: &str) -> Result> { method get_blocked_issue_ids (line 6200) | pub fn get_blocked_issue_ids(&self, issue_id: &str) -> Result Result> { method count_dependencies (line 6240) | pub fn count_dependencies(&self, issue_id: &str) -> Result { method count_dependents (line 6255) | pub fn count_dependents(&self, issue_id: &str) -> Result { method next_child_number (line 6272) | pub fn next_child_number(&self, parent_id: &str) -> Result { method update_child_counter_in_tx (line 6322) | fn update_child_counter_in_tx( method count_dependencies_for_issues (line 6362) | pub fn count_dependencies_for_issues( method count_relation_counts_for_issues (line 6406) | pub fn count_relation_counts_for_issues( method count_all_relation_counts (line 6480) | pub fn count_all_relation_counts( method count_dependents_for_issues (line 6523) | pub fn count_dependents_for_issues( method get_config (line 6567) | pub fn get_config(&self, key: &str) -> Result> { method get_all_config (line 6583) | pub fn get_all_config(&self) -> Result> { method set_config (line 6608) | pub fn set_config(&mut self, key: &str, value: &str) -> Result<()> { method delete_config (line 6637) | pub fn delete_config(&mut self, key: &str) -> Result { method get_all_issues_for_export (line 6657) | pub fn get_all_issues_for_export(&self) -> Result> { method get_all_dependency_records (line 6687) | pub fn get_all_dependency_records( method get_dependency_records_for_export (line 6735) | pub fn get_dependency_records_for_export( method get_all_comments (line 6788) | pub fn get_all_comments(&self) -> Result>> { method get_comments_for_export (line 6810) | pub fn get_comments_for_export(&self) -> Result Result { method get_dirty_issue_metadata (line 6847) | pub fn get_dirty_issue_metadata(&self) -> Result> { method get_dirty_issue_ids (line 6866) | pub fn get_dirty_issue_ids(&self) -> Result> { method clear_dirty_issues (line 6885) | pub fn clear_dirty_issues(&self, metadata: &[(String, String)]) -> Res... method clear_dirty_issues_legacy (line 6910) | pub fn clear_dirty_issues_legacy(&mut self, issue_ids: &[String]) -> R... method clear_all_dirty_issues (line 6938) | pub fn clear_all_dirty_issues(&mut self) -> Result { method get_export_hash (line 6954) | pub fn get_export_hash(&self, issue_id: &str) -> Result R... method clear_all_export_hashes (line 7023) | pub fn clear_all_export_hashes(&mut self) -> Result { method get_issues_needing_export (line 7036) | pub fn get_issues_needing_export(&self, dirty_ids: &[String]) -> Resul... method get_metadata (line 7078) | pub fn get_metadata(&self, key: &str) -> Result> { method set_metadata (line 7098) | pub fn set_metadata(&mut self, key: &str, value: &str) -> Result<()> { method set_metadata_shared (line 7110) | pub(crate) fn set_metadata_shared(&self, key: &str, value: &str) -> Re... method delete_metadata (line 7122) | pub fn delete_metadata(&mut self, key: &str) -> Result { method count_all_issues (line 7135) | pub fn count_all_issues(&self) -> Result { method count_active_issues (line 7153) | pub fn count_active_issues(&self) -> Result { method has_active_issues (line 7166) | pub fn has_active_issues(&self) -> Result { method get_issue_details (line 7182) | pub fn get_issue_details( method issue_detail_relation_presence (line 7232) | fn issue_detail_relation_presence(&self, id: &str) -> Result Result { method ready_issue_from_row (line 7334) | fn ready_issue_from_row(row: &fsqlite::Row) -> Result { method stats_issue_from_row (line 7397) | fn stats_issue_from_row(row: &fsqlite::Row) -> Result { method get_active_issues_metadata (line 7445) | pub fn get_active_issues_metadata( method set_metadata_in_tx (line 7481) | pub(crate) fn set_metadata_in_tx(&self, key: &str, value: &str) -> Res... method clear_all_export_hashes_in_tx (line 7490) | pub(crate) fn clear_all_export_hashes_in_tx(&self) -> Result { method get_issue_for_export (line 8085) | pub fn get_issue_for_export(&self, id: &str) -> Result> { method get_issues_for_export (line 8105) | pub fn get_issues_for_export(&self, ids: &[String]) -> Result Result Result { method clear_all_dirty_flags (line 8301) | pub fn clear_all_dirty_flags(&mut self) -> Result { method count_exportable_issues (line 8311) | pub fn count_exportable_issues(&self) -> Result { method dependency_exists_between (line 8330) | pub fn dependency_exists_between(&self, issue_id: &str, depends_on_id:... method would_create_cycle (line 8354) | pub fn would_create_cycle( method detect_all_cycles (line 8371) | pub fn detect_all_cycles(&self) -> Result>> { method find_by_external_ref (line 8454) | pub fn find_by_external_ref(&self, external_ref: &str) -> Result Result Result { method import_issue_field_values (line 8507) | fn import_issue_field_values( method insert_issue_row_for_import (line 8582) | fn insert_issue_row_for_import( method update_issue_row_for_import (line 8609) | fn update_issue_row_for_import( method insert_new_issue_for_import (line 8641) | pub(crate) fn insert_new_issue_for_import(&self, issue: &Issue) -> Res... method upsert_issue_for_import (line 8663) | pub fn upsert_issue_for_import(&self, issue: &Issue) -> Result { method replace_dirty_issue_marker (line 8697) | pub(crate) fn replace_dirty_issue_marker(&self, issue_id: &str, marked... method sync_labels_for_import (line 8714) | pub fn sync_labels_for_import(&self, issue_id: &str, labels: &[String]... method sync_dependencies_for_import (line 8762) | pub fn sync_dependencies_for_import( method sync_comments_for_import (line 8831) | pub fn sync_comments_for_import( method issue_exists (line 8899) | fn issue_exists(&self, id: &str) -> std::result::Result Result<()> { type MutationContext (line 223) | pub struct MutationContext { method new (line 336) | pub fn new(op_name: &str, actor: &str) -> Self { method record_event (line 349) | pub fn record_event(&mut self, event_type: EventType, issue_id: &str, ... method record_field_change (line 363) | pub fn record_field_change( method mark_dirty (line 383) | pub fn mark_dirty(&mut self, issue_id: &str) { method invalidate_cache (line 387) | pub fn invalidate_cache(&mut self) { method invalidate_cache_for (line 397) | pub fn invalidate_cache_for(&mut self, ids: &[&str]) { method invalidate_cache_deferred (line 412) | pub fn invalidate_cache_deferred(&mut self) { type BlockedCacheRefreshPlan (line 241) | enum BlockedCacheRefreshPlan { method from_context (line 252) | fn from_context(ctx: &MutationContext) -> Option { type ReadyIssueProjection (line 269) | enum ReadyIssueProjection { method select_clause (line 307) | const fn select_clause(self) -> &'static str { method parse_row (line 326) | fn parse_row(self, row: &fsqlite::Row) -> Result { type IssueDetailRelationPresence (line 274) | struct IssueDetailRelationPresence { type ImportIssueTimestampStrings (line 282) | struct ImportIssueTimestampStrings { method from_issue (line 293) | fn from_issue(issue: &Issue) -> Self { function finish_issue_mutation_write_probe (line 7496) | fn finish_issue_mutation_write_probe( function database_header_user_version (line 7534) | fn database_header_user_version(path: &Path) -> Option { type ListFilters (line 7554) | pub struct ListFilters { type StatsIssueRow (line 7583) | pub struct StatsIssueRow { type IssueUpdate (line 7599) | pub struct IssueUpdate { method is_empty (line 7634) | pub const fn is_empty(&self) -> bool { type ReadyFilters (line 7661) | pub struct ReadyFilters { type IssueMetadata (line 7678) | pub struct IssueMetadata { type ReadySortPolicy (line 7688) | pub enum ReadySortPolicy { function sort_ready_hybrid (line 7698) | fn sort_ready_hybrid(issues: &mut [Issue]) { function should_sort_list_default_in_rust (line 7706) | fn should_sort_list_default_in_rust(filters: &ListFilters) -> bool { function sort_list_default (line 7713) | fn sort_list_default(issues: &mut [Issue]) { function ready_hybrid_bucket (line 7721) | const fn ready_hybrid_bucket(priority: Priority) -> i32 { function ready_hybrid_high_bucket_priorities (line 7725) | fn ready_hybrid_high_bucket_priorities(priorities: Option<&[Priority]>) ... function parse_status (line 7738) | fn parse_status(s: Option<&str>) -> Status { function parse_issue_type (line 7745) | fn parse_issue_type(s: Option<&str>) -> IssueType { function dependency_metadata_from_row (line 7749) | fn dependency_metadata_from_row( function parse_blocked_by_json (line 7807) | fn parse_blocked_by_json(issue_id: &str, blockers_json: Option<&str>) ->... function parse_external_dependency (line 7819) | fn parse_external_dependency(dep_id: &str) -> Option<(String, String)> { function query_external_project_capabilities (line 7833) | fn query_external_project_capabilities( function open_existing_read_only_connection (line 7926) | fn open_existing_read_only_connection(path: &Path) -> Result { function parse_datetime (line 7941) | fn parse_datetime(s: &str) -> Result> { function parse_datetime_value (line 7969) | fn parse_datetime_value(value: Option<&SqliteValue>) -> Result) -> Result Result> { function epoch_remainder_u32 (line 8027) | fn epoch_remainder_u32(n: i64, divisor: i64) -> Result { function datetime_from_epoch_seconds_f64 (line 8032) | fn datetime_from_epoch_seconds_f64(f: f64) -> Result> { function escape_like_pattern (line 8067) | fn escape_like_pattern(s: &str) -> String { function validate_new_comment (line 8920) | fn validate_new_comment(issue_id: &str, author: &str, text: &str) -> Res... function insert_comment_row (line 8932) | fn insert_comment_row(conn: &Connection, issue_id: &str, author: &str, t... function fetch_comment (line 8957) | fn fetch_comment(conn: &Connection, comment_id: i64) -> Result { function comment_from_row (line 8973) | fn comment_from_row(row: &fsqlite::Row) -> Result { function dedupe_preserving_order (line 9013) | fn dedupe_preserving_order(values: &[String]) -> Vec { method drop (line 9025) | fn drop(&mut self) { function make_issue (line 9057) | fn make_issue( function test_open_memory (line 9110) | fn test_open_memory() { function test_create_issue (line 9116) | fn test_create_issue() { function test_create_issue_rejects_invalid_issue_without_persisting (line 9214) | fn test_create_issue_rejects_invalid_issue_without_persisting() { function test_get_all_issues_metadata_preserves_custom_status (line 9261) | fn test_get_all_issues_metadata_preserves_custom_status() { function test_get_all_issues_metadata_errors_on_invalid_updated_at (line 9290) | fn test_get_all_issues_metadata_errors_on_invalid_updated_at() { function test_transaction_rollback_on_error (line 9316) | fn test_transaction_rollback_on_error() { function test_transaction_rolls_back_on_closure_error (line 9344) | fn test_transaction_rolls_back_on_closure_error() { function test_event_insert_for_missing_issue_succeeds_with_fk_disabled (line 9388) | fn test_event_insert_for_missing_issue_succeeds_with_fk_disabled() { function test_external_dependency_blocks_and_propagates_to_children (line 9420) | fn test_external_dependency_blocks_and_propagates_to_children() { function test_add_dependency_rejects_external_parent_child_target (line 9466) | fn test_add_dependency_rejects_external_parent_child_target() { function test_has_external_dependencies_detects_external_parent_child_children (line 9486) | fn test_has_external_dependencies_detects_external_parent_child_children... function test_update_issue_changes_fields (line 9515) | fn test_update_issue_changes_fields() { function test_update_issue_same_priority_is_noop (line 9540) | fn test_update_issue_same_priority_is_noop() { function test_update_issue_rejects_existing_tombstone (line 9574) | fn test_update_issue_rejects_existing_tombstone() { function test_delete_issue_sets_tombstone (line 9706) | fn test_delete_issue_sets_tombstone() { function test_reopen_records_reopened_event (line 9724) | fn test_reopen_records_reopened_event() { function test_delete_issue_recomputes_content_hash_for_tombstone (line 9760) | fn test_delete_issue_recomputes_content_hash_for_tombstone() { function test_delete_issue_is_idempotent_for_tombstones (line 9781) | fn test_delete_issue_is_idempotent_for_tombstones() { function test_purge_issue_succeeds_without_fk_side_effects (line 9815) | fn test_purge_issue_succeeds_without_fk_side_effects() { function test_get_blocked_issues_lists_blockers (line 9846) | fn test_get_blocked_issues_lists_blockers() { function test_count_all_relation_counts_matches_chunked_counts (line 9866) | fn test_count_all_relation_counts_matches_chunked_counts() { function test_all_list_relation_metadata_matches_separate_helpers (line 9893) | fn test_all_list_relation_metadata_matches_separate_helpers() { function test_get_blocked_issues_includes_nonterminal_statuses (line 9938) | fn test_get_blocked_issues_includes_nonterminal_statuses() { function test_add_and_remove_labels_sorted (line 9984) | fn test_add_and_remove_labels_sorted() { function test_set_labels_deduplicates_input (line 10006) | fn test_set_labels_deduplicates_input() { function test_bulk_label_mutations_reject_tombstones (line 10030) | fn test_bulk_label_mutations_reject_tombstones() { function test_unique_label_counts_exclude_tombstone_issues (line 10082) | fn test_unique_label_counts_exclude_tombstone_issues() { function test_rename_label_same_name_is_noop (line 10129) | fn test_rename_label_same_name_is_noop() { function test_rename_label_skips_tombstone_issues (line 10154) | fn test_rename_label_skips_tombstone_issues() { function test_add_dependency_and_remove (line 10202) | fn test_add_dependency_and_remove() { function test_dependency_mutations_reject_tombstone_issue (line 10233) | fn test_dependency_mutations_reject_tombstone_issue() { function test_add_dependency_rejects_missing_target (line 10314) | fn test_add_dependency_rejects_missing_target() { function test_add_dependency_with_metadata_persists_json (line 10329) | fn test_add_dependency_with_metadata_persists_json() { function test_add_dependency_with_metadata_rejects_invalid_json (line 10357) | fn test_add_dependency_with_metadata_rejects_invalid_json() { function test_find_ids_by_hash_only_matches_hash_portion (line 10374) | fn test_find_ids_by_hash_only_matches_hash_portion() { function test_get_dependencies_with_metadata_external_placeholder (line 10395) | fn test_get_dependencies_with_metadata_external_placeholder() { function test_get_dependencies_with_metadata_errors_on_missing_internal_target (line 10415) | fn test_get_dependencies_with_metadata_errors_on_missing_internal_target... function test_get_dependents_with_metadata_errors_on_missing_dependent_issue (line 10441) | fn test_get_dependents_with_metadata_errors_on_missing_dependent_issue() { function test_would_create_cycle_detects_cycle (line 10469) | fn test_would_create_cycle_detects_cycle() { function test_get_comments_orders_by_created_at (line 10494) | fn test_get_comments_orders_by_created_at() { function test_get_comments_errors_on_invalid_timestamp (line 10573) | fn test_get_comments_errors_on_invalid_timestamp() { function test_add_comment_round_trip (line 10646) | fn test_add_comment_round_trip() { function test_add_comment_rejects_invalid_comment_fields_without_inserting (line 10707) | fn test_add_comment_rejects_invalid_comment_fields_without_inserting() { function test_add_comment_rejects_tombstone_issue (line 10754) | fn test_add_comment_rejects_tombstone_issue() { function test_sync_comments_for_import_preserves_comments_on_other_issues (line 10793) | fn test_sync_comments_for_import_preserves_comments_on_other_issues() { function test_external_project_capabilities_ignore_tombstones (line 10844) | fn test_external_project_capabilities_ignore_tombstones() { function test_external_project_capability_probe_does_not_create_missing_database (line 10897) | fn test_external_project_capability_probe_does_not_create_missing_databa... function test_add_comment_marks_dirty (line 10918) | fn test_add_comment_marks_dirty() { function test_events_have_timestamps (line 10983) | fn test_events_have_timestamps() { function test_blocked_cache_invalidation (line 11017) | fn test_blocked_cache_invalidation() { function test_update_issue_skip_cache_rebuild_marks_cache_stale_reads_compute_in_memory (line 11112) | fn test_update_issue_skip_cache_rebuild_marks_cache_stale_reads_compute_... function test_set_parent_skip_cache_rebuild_marks_cache_stale_reads_compute_in_memory (line 11174) | fn test_set_parent_skip_cache_rebuild_marks_cache_stale_reads_compute_in... function test_expand_blocked_cache_component_includes_parent_and_siblings (line 11233) | fn test_expand_blocked_cache_component_includes_parent_and_siblings() { function test_incremental_blocked_cache_update_recomputes_entire_parent_child_component (line 11261) | fn test_incremental_blocked_cache_update_recomputes_entire_parent_child_... function test_rebuild_blocked_cache_impl_recreates_table_and_repopulates_entries (line 11348) | fn test_rebuild_blocked_cache_impl_recreates_table_and_repopulates_entri... function test_get_blocked_ids_and_is_blocked_fall_back_when_cache_table_missing (line 11384) | fn test_get_blocked_ids_and_is_blocked_fall_back_when_cache_table_missin... function test_get_ready_issues_fall_back_when_cache_table_missing (line 11413) | fn test_get_ready_issues_fall_back_when_cache_table_missing() { function test_get_ready_issues_for_command_output_matches_full_ready_output (line 11458) | fn test_get_ready_issues_for_command_output_matches_full_ready_output() { function test_get_ready_issues_for_command_output_falls_back_when_cache_table_missing (line 11533) | fn test_get_ready_issues_for_command_output_falls_back_when_cache_table_... function test_get_blockers_fall_back_on_malformed_cache_json (line 11586) | fn test_get_blockers_fall_back_on_malformed_cache_json() { function test_get_blocked_issues_fall_back_on_malformed_cache_json (line 11619) | fn test_get_blocked_issues_fall_back_on_malformed_cache_json() { function test_blocker_helpers_ignore_non_blocking_related_edges (line 11659) | fn test_blocker_helpers_ignore_non_blocking_related_edges() { function test_update_issue_recomputes_hash (line 11705) | fn test_update_issue_recomputes_hash() { function test_delete_config (line 11741) | fn test_delete_config() { function test_set_config_normalizes_issue_prefix (line 11762) | fn test_set_config_normalizes_issue_prefix() { function test_open_creates_database (line 11776) | fn test_open_creates_database() { function test_database_header_user_version_reads_file_header_value (line 11788) | fn test_database_header_user_version_reads_file_header_value() { function test_open_with_timeout_does_not_require_write_lock_when_schema_current (line 11804) | fn test_open_with_timeout_does_not_require_write_lock_when_schema_curren... function test_open_uses_default_busy_timeout (line 11823) | fn test_open_uses_default_busy_timeout() { function test_open_current_read_only_skips_metadata_default_seeding (line 11842) | fn test_open_current_read_only_skips_metadata_default_seeding() { function test_open_current_read_only_declines_stale_schema_header (line 11874) | fn test_open_current_read_only_declines_stale_schema_header() { function test_open_repairs_runtime_compatible_legacy_db_indexes (line 11892) | fn test_open_repairs_runtime_compatible_legacy_db_indexes() { function test_open_repairs_missing_canonical_indexes_even_when_user_version_is_current (line 11933) | fn test_open_repairs_missing_canonical_indexes_even_when_user_version_is... function test_open_repairs_legacy_kv_primary_key_tables (line 11976) | fn test_open_repairs_legacy_kv_primary_key_tables() { function test_upsert_issue_for_import_coalesces_optional_text_fields_to_empty_strings (line 12061) | fn test_upsert_issue_for_import_coalesces_optional_text_fields_to_empty_... function test_upsert_issue_for_import_preserves_child_rows (line 12125) | fn test_upsert_issue_for_import_preserves_child_rows() { function test_upsert_issue_for_import_overwrites_malformed_existing_row (line 12173) | fn test_upsert_issue_for_import_overwrites_malformed_existing_row() { function test_finish_issue_mutation_write_probe_rejects_zero_row_update (line 12222) | fn test_finish_issue_mutation_write_probe_rejects_zero_row_update() { function test_finish_issue_mutation_write_probe_prefers_zero_row_over_rollback_error (line 12237) | fn test_finish_issue_mutation_write_probe_prefers_zero_row_over_rollback... function test_pragmas_are_set_correctly (line 12250) | fn test_pragmas_are_set_correctly() { function test_foreign_key_restore_reports_noop_inside_transaction (line 12275) | fn test_foreign_key_restore_reports_noop_inside_transaction() { function test_foreign_key_restore_combines_original_error_with_restore_error (line 12302) | fn test_foreign_key_restore_combines_original_error_with_restore_error() { function test_blocked_cache_refresh_restores_foreign_keys_after_rebuild (line 12334) | fn test_blocked_cache_refresh_restores_foreign_keys_after_rebuild() { function test_blocked_cache_refresh_error_with_foreign_keys_off_is_not_deferred (line 12349) | fn test_blocked_cache_refresh_error_with_foreign_keys_off_is_not_deferre... function test_create_duplicate_id_fails (line 12377) | fn test_create_duplicate_id_fails() { function test_set_export_hashes_deduplicates_duplicate_issue_ids_last_value_wins (line 12392) | fn test_set_export_hashes_deduplicates_duplicate_issue_ids_last_value_wi... function test_set_changed_export_hashes_skips_unchanged_rows (line 12415) | fn test_set_changed_export_hashes_skips_unchanged_rows() { function test_set_export_hashes_updates_large_existing_batch (line 12448) | fn test_set_export_hashes_updates_large_existing_batch() { function test_set_export_hashes_rewrites_large_mixed_prefix_batch_on_file_db (line 12487) | fn test_set_export_hashes_rewrites_large_mixed_prefix_batch_on_file_db() { function test_rebuild_blocked_cache_rewrites_large_existing_batch_on_file_db (line 12553) | fn test_rebuild_blocked_cache_rewrites_large_existing_batch_on_file_db() { function test_diag_data_visibility (line 12619) | fn test_diag_data_visibility() { function test_diag_root_page_visibility (line 12723) | fn test_diag_root_page_visibility() { function test_get_issue_not_found_returns_none (line 13070) | fn test_get_issue_not_found_returns_none() { function test_open_nonexistent_parent_fails (line 13082) | fn test_open_nonexistent_parent_fails() { function test_list_issues_empty_db (line 13092) | fn test_list_issues_empty_db() { function test_update_issue_not_found_fails (line 13102) | fn test_update_issue_not_found_fails() { function test_list_issues_filter_by_title (line 13116) | fn test_list_issues_filter_by_title() { function test_list_issues_reverse_default_sort (line 13170) | fn test_list_issues_reverse_default_sort() { function test_search_issues_full_text (line 13195) | fn test_search_issues_full_text() { function test_search_issues_matches_case_insensitive_literal_substrings (line 13243) | fn test_search_issues_matches_case_insensitive_literal_substrings() { function test_search_issues_respects_include_deferred_flag (line 13284) | fn test_search_issues_respects_include_deferred_flag() { function test_search_issues_orders_by_updated (line 13321) | fn test_search_issues_orders_by_updated() { function test_search_issues_applies_offset (line 13371) | fn test_search_issues_applies_offset() { function test_search_issues_filter_by_updated_date (line 13424) | fn test_search_issues_filter_by_updated_date() { function test_list_issues_filter_by_updated_date (line 13486) | fn test_list_issues_filter_by_updated_date() { function test_list_issues_filter_by_labels (line 13536) | fn test_list_issues_filter_by_labels() { function test_list_issues_filter_by_multiple_labels_uses_and_logic (line 13568) | fn test_list_issues_filter_by_multiple_labels_uses_and_logic() { function test_list_issues_combined_type_and_label_filters (line 13619) | fn test_list_issues_combined_type_and_label_filters() { function test_blocked_cache_handles_quotes_in_ids (line 13647) | fn test_blocked_cache_handles_quotes_in_ids() { function test_get_ready_issues_filters_by_labels (line 13679) | fn test_get_ready_issues_filters_by_labels() { function test_get_ready_issues_filters_by_parent (line 13730) | fn test_get_ready_issues_filters_by_parent() { function test_get_ready_issues_treats_null_legacy_flags_as_false (line 13833) | fn test_get_ready_issues_treats_null_legacy_flags_as_false() { function test_get_ready_issues_hybrid_sort_and_limit (line 13926) | fn test_get_ready_issues_hybrid_sort_and_limit() { function test_get_ready_issues_excludes_in_progress (line 14007) | fn test_get_ready_issues_excludes_in_progress() { function test_next_child_number (line 14037) | fn test_next_child_number() { function test_rebuild_child_counters_skips_missing_parents (line 14093) | fn test_rebuild_child_counters_skips_missing_parents() { function test_finish_issue_mutation_write_probe_returns_rollback_error_when_cleanup_fails (line 14136) | fn test_finish_issue_mutation_write_probe_returns_rollback_error_when_cl... function test_finish_issue_mutation_write_probe_prefers_write_error (line 14150) | fn test_finish_issue_mutation_write_probe_prefers_write_error() { function test_parse_datetime_empty_string_returns_epoch (line 14164) | fn test_parse_datetime_empty_string_returns_epoch() { function test_parse_datetime_rfc3339_with_z (line 14170) | fn test_parse_datetime_rfc3339_with_z() { function test_parse_datetime_rfc3339_with_offset (line 14177) | fn test_parse_datetime_rfc3339_with_offset() { function test_parse_datetime_naive_format (line 14183) | fn test_parse_datetime_naive_format() { function test_parse_datetime_garbage_returns_error (line 14190) | fn test_parse_datetime_garbage_returns_error() { function test_parse_datetime_value_text_roundtrips (line 14196) | fn test_parse_datetime_value_text_roundtrips() { function test_parse_datetime_value_integer_microseconds (line 14205) | fn test_parse_datetime_value_integer_microseconds() { function test_parse_datetime_value_integer_seconds (line 14220) | fn test_parse_datetime_value_integer_seconds() { function test_parse_datetime_value_integer_nanoseconds (line 14229) | fn test_parse_datetime_value_integer_nanoseconds() { function test_parse_datetime_value_null_is_epoch (line 14236) | fn test_parse_datetime_value_null_is_epoch() { function test_parse_opt_datetime_value_integer_preserved_not_dropped (line 14248) | fn test_parse_opt_datetime_value_integer_preserved_not_dropped() { function test_parse_opt_datetime_value_null_is_none (line 14258) | fn test_parse_opt_datetime_value_null_is_none() { function test_parse_datetime_value_rejects_blob (line 14271) | fn test_parse_datetime_value_rejects_blob() { function test_datetime_from_epoch_seconds_f64_negative_fraction_floor_split (line 14278) | fn test_datetime_from_epoch_seconds_f64_negative_fraction_floor_split() { function test_parse_datetime_value_integer_negative_is_pre_epoch (line 14295) | fn test_parse_datetime_value_integer_negative_is_pre_epoch() { function test_reset_data_tables_preserves_config (line 14314) | fn test_reset_data_tables_preserves_config() { function test_open_seeds_known_metadata_defaults (line 14353) | fn test_open_seeds_known_metadata_defaults() { function test_metadata_state_updates_keep_single_seeded_row (line 14408) | fn test_metadata_state_updates_keep_single_seeded_row() { function test_update_status_triggers_successful_cache_rebuild (line 14454) | fn test_update_status_triggers_successful_cache_rebuild() { function test_close_blocker_then_claim_unblocked_issue_no_unique_violation (line 14575) | fn test_close_blocker_then_claim_unblocked_issue_no_unique_violation() { function test_multiple_close_claim_cycles_no_unique_violation (line 14636) | fn test_multiple_close_claim_cycles_no_unique_violation() { function dot_notation_children_detects_open_direct_children (line 14721) | fn dot_notation_children_detects_open_direct_children() { function dot_notation_children_excludes_grandchildren (line 14753) | fn dot_notation_children_excludes_grandchildren() { function dot_notation_children_returns_empty_when_none (line 14780) | fn dot_notation_children_returns_empty_when_none() { function dot_notation_children_escapes_like_specials_in_parent_id (line 14796) | fn dot_notation_children_escapes_like_specials_in_parent_id() { function jittered_backoff_increases_with_attempt (line 14826) | fn jittered_backoff_increases_with_attempt() { function jittered_backoff_zero_base_returns_zero (line 14836) | fn jittered_backoff_zero_base_returns_zero() { function write_transaction_propagates_body_error (line 14842) | fn write_transaction_propagates_body_error() { function open_auto_migrates_legacy_integer_datetimes_and_done_status (line 14856) | fn open_auto_migrates_legacy_integer_datetimes_and_done_status() { function connection_write_transaction_propagates_body_error (line 14933) | fn connection_write_transaction_propagates_body_error() { FILE: src/sync/history.rs type HistoryConfig (line 21) | pub struct HistoryConfig { method default (line 28) | fn default() -> Self { type BackupEntry (line 39) | pub struct BackupEntry { type BackupFileGuard (line 47) | struct BackupFileGuard { method new (line 53) | fn new(path: PathBuf) -> Self { method persist (line 60) | fn persist(&mut self) { method drop (line 66) | fn drop(&mut self) { type BackupTarget (line 84) | enum BackupTarget { method from_target_path (line 90) | fn from_target_path(beads_dir: &Path, target_path: &Path) -> Self { method resolve_path (line 102) | fn resolve_path(&self, beads_dir: &Path) -> PathBuf { method key (line 109) | fn key(&self) -> String { type BackupMetadata (line 118) | struct BackupMetadata { method from_target_path (line 123) | fn from_target_path(beads_dir: &Path, target_path: &Path) -> Self { function parse_backup_timestamp (line 130) | fn parse_backup_timestamp(ts_str: &str) -> Option> { function parse_backup_filename (line 145) | pub(crate) fn parse_backup_filename(filename: &str) -> Option<(String, D... function create_backup_file (line 160) | fn create_backup_file(history_dir: &Path, file_stem: &str) -> Result<(Pa... function backup_metadata_path (line 186) | fn backup_metadata_path(backup_path: &Path) -> PathBuf { function validate_history_dir_path (line 190) | pub(crate) fn validate_history_dir_path(history_dir: &Path) -> Result Result<()> { function history_artifact_metadata (line 230) | fn history_artifact_metadata(path: &Path, label: &str) -> Result Resul... function remove_backup_artifacts (line 275) | fn remove_backup_artifacts(backup_path: &Path) -> Result<()> { function read_backup_metadata (line 282) | fn read_backup_metadata(backup_path: &Path) -> Result Res... function invalid_metadata_target_path (line 347) | fn invalid_metadata_target_path(backup_name: &str) -> PathBuf { function backup_target_details (line 351) | fn backup_target_details( function target_key_for_path (line 392) | fn target_key_for_path(beads_dir: &Path, target_path: &Path) -> String { function resolve_backup_target_path (line 398) | pub(crate) fn resolve_backup_target_path(beads_dir: &Path, backup_path: ... function backup_before_export (line 429) | pub fn backup_before_export( function rotate_history (line 489) | fn rotate_history(history_dir: &Path, config: &HistoryConfig, target_key... function list_backups (line 538) | pub fn list_backups(history_dir: &Path, filter_prefix: Option<&str>) -> ... function get_latest_backup (line 599) | fn get_latest_backup(history_dir: &Path, target_key: &str) -> Result Result { function prune_backups (line 654) | pub fn prune_backups( function test_backup_rotation (line 707) | fn test_backup_rotation() { function test_backup_before_export_keeps_same_stem_targets_separate (line 768) | fn test_backup_before_export_keeps_same_stem_targets_separate() { function test_prune_backups_removes_metadata_sidecars (line 813) | fn test_prune_backups_removes_metadata_sidecars() { function test_deduplication (line 843) | fn test_deduplication() { function test_list_backups_parsing (line 868) | fn test_list_backups_parsing() { function test_list_backups_parses_high_precision_timestamps_and_collision_suffix (line 886) | fn test_list_backups_parses_high_precision_timestamps_and_collision_suff... function test_rapid_distinct_backups_do_not_collide (line 917) | fn test_rapid_distinct_backups_do_not_collide() { function test_prune_backups (line 942) | fn test_prune_backups() { function test_prune_backups_applies_keep_per_stem (line 968) | fn test_prune_backups_applies_keep_per_stem() { function test_list_backups_ignores_symlinked_backup_files (line 994) | fn test_list_backups_ignores_symlinked_backup_files() { function test_list_backups_rejects_symlinked_history_directory (line 1007) | fn test_list_backups_rejects_symlinked_history_directory() { function test_prune_backups_returns_error_on_partial_deletion_failure (line 1030) | fn test_prune_backups_returns_error_on_partial_deletion_failure() { function test_list_backups_marks_invalid_metadata_without_guessing_target (line 1061) | fn test_list_backups_marks_invalid_metadata_without_guessing_target() { function test_write_backup_metadata_rejects_existing_symlink (line 1083) | fn test_write_backup_metadata_rejects_existing_symlink() { function test_backup_before_export_rejects_symlinked_history_directory (line 1112) | fn test_backup_before_export_rejects_symlinked_history_directory() { FILE: src/sync/mod.rs constant DEFAULT_WRITE_LOCK_TIMEOUT_MS (line 40) | const DEFAULT_WRITE_LOCK_TIMEOUT_MS: u64 = 30_000; constant WRITE_LOCK_POLL_INTERVAL (line 41) | const WRITE_LOCK_POLL_INTERVAL: Duration = Duration::from_millis(25); constant EXPORT_ISSUE_BATCH_SIZE (line 42) | const EXPORT_ISSUE_BATCH_SIZE: usize = 256; constant EXPORT_FULL_SCAN_MIN_ISSUES (line 43) | const EXPORT_FULL_SCAN_MIN_ISSUES: usize = 512; constant IMPORT_EXPORT_HASH_BATCH_SIZE (line 44) | const IMPORT_EXPORT_HASH_BATCH_SIZE: usize = 512; function blocking_write_lock (line 53) | pub fn blocking_write_lock(beads_dir: &Path) -> Result { function blocking_write_lock_with_timeout (line 63) | pub fn blocking_write_lock_with_timeout( function write_lock_timeout_error (line 124) | fn write_lock_timeout_error(lock_path: &Path, timeout_ms: u64) -> BeadsE... function default_write_lock_timeout_ms (line 133) | pub const fn default_write_lock_timeout_ms() -> u64 { function try_sync_lock (line 144) | pub fn try_sync_lock(beads_dir: &Path) -> Result> { type TempFileGuard (line 168) | struct TempFileGuard { method new (line 174) | fn new(path: PathBuf) -> Self { method persist (line 181) | fn persist(&mut self) { method drop (line 187) | fn drop(&mut self) { function export_temp_path (line 194) | pub(crate) fn export_temp_path(output_path: &Path) -> PathBuf { function set_restrictive_jsonl_permissions (line 199) | fn set_restrictive_jsonl_permissions(path: &Path) { function set_restrictive_jsonl_permissions (line 212) | fn set_restrictive_jsonl_permissions(_path: &Path) {} type ExportConfig (line 217) | pub struct ExportConfig { type ExportErrorPolicy (line 241) | pub enum ExportErrorPolicy { method fmt (line 254) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type Err (line 266) | type Err = String; method from_str (line 268) | fn from_str(input: &str) -> std::result::Result { type ExportEntityType (line 284) | pub enum ExportEntityType { type ExportError (line 293) | pub struct ExportError { method new (line 300) | fn new( method summary (line 313) | pub fn summary(&self) -> String { type ExportReport (line 325) | pub struct ExportReport { method new (line 335) | const fn new(policy: ExportErrorPolicy) -> Self { method has_errors (line 348) | pub fn has_errors(&self) -> bool { method success_rate (line 355) | pub fn success_rate(&self) -> f64 { type ExportContext (line 369) | struct ExportContext { method new (line 375) | const fn new(policy: ExportErrorPolicy) -> Self { method handle_error (line 382) | fn handle_error(&mut self, err: ExportError) -> Result<()> { type ExportResult (line 409) | pub struct ExportResult { type ImportConfig (line 429) | pub struct ImportConfig { method default (line 451) | fn default() -> Self { type OrphanMode (line 467) | pub enum OrphanMode { type ImportResult (line 480) | pub struct ImportResult { type PreflightCheckStatus (line 517) | pub enum PreflightCheckStatus { type PreflightCheck (line 528) | pub struct PreflightCheck { method pass (line 542) | fn pass( method warn (line 556) | fn warn( method fail (line 571) | fn fail( type PreflightResult (line 589) | pub struct PreflightResult { method new (line 597) | const fn new() -> Self { method add (line 604) | fn add(&mut self, check: PreflightCheck) { method is_ok (line 618) | pub fn is_ok(&self) -> bool { method has_no_failures (line 624) | pub fn has_no_failures(&self) -> bool { method failures (line 630) | pub fn failures(&self) -> Vec<&PreflightCheck> { method warnings (line 639) | pub fn warnings(&self) -> Vec<&PreflightCheck> { method into_result (line 651) | pub fn into_result(self) -> Result { constant JSONL_VALIDATION_PREVIEW_LIMIT (line 668) | const JSONL_VALIDATION_PREVIEW_LIMIT: usize = 10; type JsonlIssueValidationFailure (line 671) | pub(crate) struct JsonlIssueValidationFailure { type JsonlIssueValidationSummary (line 677) | pub(crate) struct JsonlIssueValidationSummary { method push_failure (line 684) | fn push_failure(&mut self, line: usize, message: impl Into) { method preview_messages (line 694) | pub(crate) fn preview_messages(&self) -> Vec { function validate_jsonl_issue_records (line 702) | pub(crate) fn validate_jsonl_issue_records(path: &Path) -> Result Result> { function detect_conflict_marker (line 1325) | fn detect_conflict_marker(line: &str) -> Option<(ConflictMarkerType, Opt... function ensure_no_conflict_markers (line 1343) | pub fn ensure_no_conflict_markers(path: &Path) -> Result<()> { type PartialId (line 1372) | struct PartialId { function analyze_jsonl (line 1381) | pub fn analyze_jsonl(path: &Path) -> Result<(usize, HashSet)> { function count_issues_in_jsonl (line 1430) | pub fn count_issues_in_jsonl(path: &Path) -> Result { function get_issue_ids_from_jsonl (line 1439) | pub fn get_issue_ids_from_jsonl(path: &Path) -> Result> { function read_jsonl_lines_by_id (line 1443) | fn read_jsonl_lines_by_id(path: &Path) -> Result Result> { function hydrate_export_issue_batch (line 1497) | fn hydrate_export_issue_batch( function hydrate_export_issues_full_scan (line 1576) | fn hydrate_export_issues_full_scan( function hydrate_export_issues (line 1656) | fn hydrate_export_issues( function write_export_issue_jsonl (line 1672) | fn write_export_issue_jsonl( function export_to_jsonl (line 1724) | pub fn export_to_jsonl( function export_to_jsonl_with_policy (line 1743) | pub fn export_to_jsonl_with_policy( function export_to_writer (line 1980) | pub fn export_to_writer(storage: &SqliteStorage, writer: &mut ... function export_to_writer_with_policy (line 1992) | pub fn export_to_writer_with_policy( constant METADATA_JSONL_CONTENT_HASH (line 2046) | pub const METADATA_JSONL_CONTENT_HASH: &str = "jsonl_content_hash"; constant METADATA_JSONL_MTIME (line 2048) | pub const METADATA_JSONL_MTIME: &str = "jsonl_mtime"; constant METADATA_JSONL_SIZE (line 2050) | pub const METADATA_JSONL_SIZE: &str = "jsonl_size"; constant METADATA_LAST_EXPORT_TIME (line 2052) | pub const METADATA_LAST_EXPORT_TIME: &str = "last_export_time"; constant METADATA_LAST_IMPORT_TIME (line 2054) | pub const METADATA_LAST_IMPORT_TIME: &str = "last_import_time"; type JsonlWitness (line 2057) | struct JsonlWitness { type StalenessCheck (line 2065) | pub struct StalenessCheck { function pending_export_state (line 2073) | fn pending_export_state( function compute_staleness (line 2094) | pub fn compute_staleness(storage: &SqliteStorage, jsonl_path: &Path) -> ... function compute_staleness_refreshing_witnesses (line 2110) | pub fn compute_staleness_refreshing_witnesses( function auto_import_probe_refreshing_witnesses (line 2132) | pub fn auto_import_probe_refreshing_witnesses( function auto_import_probe (line 2155) | pub fn auto_import_probe(storage: &SqliteStorage, jsonl_path: &Path) -> ... function compute_staleness_impl (line 2159) | fn compute_staleness_impl( type JsonlNewerProbe (line 2179) | struct JsonlNewerProbe { function compute_jsonl_newer_impl (line 2186) | fn compute_jsonl_newer_impl(storage: &SqliteStorage, jsonl_path: &Path) ... function observed_jsonl_mtime (line 2279) | fn observed_jsonl_mtime(jsonl_path: &Path) -> Result<(std::time::SystemT... function observed_jsonl_witness (line 2284) | fn observed_jsonl_witness(jsonl_path: &Path) -> Result { function parse_jsonl_size_witness (line 2294) | fn parse_jsonl_size_witness(value: &str) -> Option { function record_observed_jsonl_witness_in_tx (line 2298) | fn record_observed_jsonl_witness_in_tx( function maybe_refresh_jsonl_witness (line 2306) | fn maybe_refresh_jsonl_witness( function refresh_jsonl_witness_best_effort (line 2319) | fn refresh_jsonl_witness_best_effort( type AutoImportResult (line 2335) | pub struct AutoImportResult { function auto_import_if_stale (line 2351) | pub fn auto_import_if_stale( function finalize_export (line 2429) | pub fn finalize_export( function normalize_issue_for_export (line 2464) | fn normalize_issue_for_export(issue: &mut Issue) { function filter_dirty_metadata_for_export (line 2495) | fn filter_dirty_metadata_for_export( function restore_foreign_keys_after_import (line 2516) | fn restore_foreign_keys_after_import( function finish_import_after_foreign_key_restore (line 2558) | fn finish_import_after_foreign_key_restore( function find_post_import_fk_violation (line 2581) | fn find_post_import_fk_violation(storage: &SqliteStorage) -> Result) -> bo... function finalize_incremental_auto_flush (line 2615) | fn finalize_incremental_auto_flush( type ExistingJsonlReplacementScan (line 2658) | struct ExistingJsonlReplacementScan { type ExistingJsonlReplacementWrite (line 2666) | enum ExistingJsonlReplacementWrite { type JsonlTempOutput (line 2677) | struct JsonlTempOutput { function scan_existing_jsonl_replacements (line 2683) | fn scan_existing_jsonl_replacements( function prepare_jsonl_temp_output (line 2747) | fn prepare_jsonl_temp_output(output_path: &Path, config: &ExportConfig) ... function absolute_or_current_dir_join (line 2793) | fn absolute_or_current_dir_join(path: &Path) -> PathBuf { function persist_jsonl_temp_output (line 2803) | fn persist_jsonl_temp_output( function rename_jsonl_temp_output (line 2818) | fn rename_jsonl_temp_output( function sync_jsonl_writer (line 2844) | fn sync_jsonl_writer(mut writer: BufWriter) -> Result<()> { function try_write_existing_jsonl_replacements_atomically (line 2853) | fn try_write_existing_jsonl_replacements_atomically( function write_existing_jsonl_replacements_atomically (line 2878) | fn write_existing_jsonl_replacements_atomically( function write_jsonl_lines_atomically (line 2943) | fn write_jsonl_lines_atomically( type IncrementalAutoFlushChanges (line 2978) | struct IncrementalAutoFlushChanges { function collect_incremental_auto_flush_changes (line 2985) | fn collect_incremental_auto_flush_changes( function try_existing_line_auto_flush (line 3034) | fn try_existing_line_auto_flush( function apply_incremental_auto_flush_changes (line 3084) | fn apply_incremental_auto_flush_changes( function try_incremental_auto_flush (line 3101) | fn try_incremental_auto_flush( type AutoFlushResult (line 3164) | pub struct AutoFlushResult { function auto_flush (line 3192) | pub fn auto_flush( function read_issues_from_jsonl (line 3294) | pub fn read_issues_from_jsonl(path: &Path) -> Result> { type MatchType (line 3340) | pub enum MatchType { type CollisionResult (line 3351) | pub enum CollisionResult { type CollisionAction (line 3367) | pub enum CollisionAction { function detect_collision (line 3377) | fn detect_collision( function determine_action (line 3418) | fn determine_action( function normalize_issue (line 3469) | fn normalize_issue(issue: &mut Issue) { type PrefixRenameSeed (line 3576) | struct PrefixRenameSeed { type ImportValidationPlan (line 3585) | struct ImportValidationPlan { type ImportMetadataMaps (line 3591) | struct ImportMetadataMaps { function parse_normalized_import_issue (line 3597) | fn parse_normalized_import_issue(trimmed: &str, line_num: usize) -> Resu... function for_each_jsonl_import_issue (line 3618) | fn for_each_jsonl_import_issue( function collect_import_validation_plan (line 3641) | fn collect_import_validation_plan( function build_prefix_renames (line 3693) | fn build_prefix_renames( function apply_prefix_renames (line 3729) | fn apply_prefix_renames(issue: &mut Issue, renames: &HashMap Result Result { function stream_import_actions_in_tx (line 3916) | fn stream_import_actions_in_tx( function import_from_jsonl (line 4022) | pub fn import_from_jsonl( function id_matches_expected_prefix (line 4124) | fn id_matches_expected_prefix(id: &str, expected_prefix: &str) -> bool { function process_import_action (line 4130) | fn process_import_action( function insert_new_import_issue (line 4172) | fn insert_new_import_issue(storage: &SqliteStorage, issue: &Issue) -> Re... function record_imported_relation_counts (line 4190) | fn record_imported_relation_counts(result: &mut ImportResult, issue: &Is... function sync_issue_relations (line 4197) | fn sync_issue_relations(storage: &SqliteStorage, issue: &Issue) -> Resul... function compute_jsonl_hash (line 4215) | pub fn compute_jsonl_hash(path: &Path) -> Result { type ConflictType (line 4248) | pub enum ConflictType { type MergeResult (line 4259) | pub enum MergeResult { type MergeContext (line 4274) | pub struct MergeContext { method new (line 4287) | pub fn new( method all_issue_ids (line 4297) | pub fn all_issue_ids(&self) -> std::collections::HashSet { type MergeReport (line 4308) | pub struct MergeReport { method has_conflicts (line 4324) | pub fn has_conflicts(&self) -> bool { method total_actions (line 4330) | pub fn total_actions(&self) -> usize { type ConflictResolution (line 4347) | pub enum ConflictResolution { function merge_issue (line 4374) | pub fn merge_issue( function three_way_merge (line 4543) | pub fn three_way_merge( type MergeConfig (line 4606) | pub struct MergeConfig { function save_base_snapshot (line 4620) | pub fn save_base_snapshot( function save_base_snapshot_from_jsonl (line 4680) | pub fn save_base_snapshot_from_jsonl(jsonl_path: &Path, jsonl_dir: &Path... function load_base_snapshot (line 4696) | pub fn load_base_snapshot(jsonl_dir: &Path) -> Result Vec Result Issue { function blocking_write_lock_errors_when_lock_path_cannot_open (line 5107) | fn blocking_write_lock_errors_when_lock_path_cannot_open() { function blocking_write_lock_with_timeout_errors_when_lock_is_held (line 5126) | fn blocking_write_lock_with_timeout_errors_when_lock_is_held() { function try_sync_lock_errors_when_lock_path_cannot_open (line 5164) | fn try_sync_lock_errors_when_lock_path_cannot_open() { function try_sync_lock_returns_none_when_lock_is_held (line 5183) | fn try_sync_lock_returns_none_when_lock_is_held() { function export_temp_path_is_pid_scoped_and_sibling_to_target (line 5207) | fn export_temp_path_is_pid_scoped_and_sibling_to_target() { function make_issue_at (line 5221) | fn make_issue_at(id: &str, title: &str, updated_at: chrono::DateTime chrono::DateTime { function build_collision_maps (line 5274) | fn build_collision_maps( type LineFailWriter (line 5304) | struct LineFailWriter { method new (line 5312) | fn new(fail_on: &str) -> Self { method into_string (line 5321) | fn into_string(self) -> String { method write (line 5327) | fn write(&mut self, buf: &[u8]) -> io::Result { method flush (line 5341) | fn flush(&mut self) -> io::Result<()> { function test_scan_conflict_markers_detects_all_kinds (line 5347) | fn test_scan_conflict_markers_detects_all_kinds() { function test_ensure_no_conflict_markers_errors (line 5370) | fn test_ensure_no_conflict_markers_errors() { function test_export_empty_database (line 5381) | fn test_export_empty_database() { function test_save_base_snapshot_rejects_existing_temp_symlink (line 5396) | fn test_save_base_snapshot_rejects_existing_temp_symlink() { function test_save_base_snapshot_sorts_issues_deterministically (line 5447) | fn test_save_base_snapshot_sorts_issues_deterministically() { function test_save_base_snapshot_from_jsonl_uses_finalized_export_contents (line 5486) | fn test_save_base_snapshot_from_jsonl_uses_finalized_export_contents() { function test_load_base_snapshot_rejects_symlink_escape (line 5520) | fn test_load_base_snapshot_rejects_symlink_escape() { function test_export_with_issues (line 5540) | fn test_export_with_issues() { function test_safety_guard_empty_over_nonempty (line 5567) | fn test_safety_guard_empty_over_nonempty() { function test_safety_guard_with_force (line 5590) | fn test_safety_guard_with_force() { function test_count_issues_in_jsonl (line 5610) | fn test_count_issues_in_jsonl() { function test_get_issue_ids_from_jsonl (line 5631) | fn test_get_issue_ids_from_jsonl() { function test_analyze_jsonl_rejects_duplicate_issue_ids (line 5651) | fn test_analyze_jsonl_rejects_duplicate_issue_ids() { function test_export_excludes_ephemerals (line 5676) | fn test_export_excludes_ephemerals() { function test_stale_database_guard_prevents_losing_issues (line 5699) | fn test_stale_database_guard_prevents_losing_issues() { function test_stale_database_guard_with_force_succeeds (line 5727) | fn test_stale_database_guard_with_force_succeeds() { function test_auto_import_if_stale_skips_probe_for_allow_stale (line 5755) | fn test_auto_import_if_stale_skips_probe_for_allow_stale() { function test_auto_import_if_stale_skips_probe_for_no_auto_import (line 5782) | fn test_auto_import_if_stale_skips_probe_for_no_auto_import() { function test_compute_staleness_uses_matching_jsonl_mtime_witness (line 5809) | fn test_compute_staleness_uses_matching_jsonl_mtime_witness() { function test_compute_staleness_does_not_trust_matching_mtime_without_hash_match (line 5832) | fn test_compute_staleness_does_not_trust_matching_mtime_without_hash_mat... function test_compute_staleness_refreshing_witnesses_backfills_jsonl_size (line 5854) | fn test_compute_staleness_refreshing_witnesses_backfills_jsonl_size() { function test_refresh_jsonl_witness_best_effort_ignores_missing_jsonl (line 5880) | fn test_refresh_jsonl_witness_best_effort_ignores_missing_jsonl() { function test_compute_staleness_marks_db_newer_when_force_flush_is_pending (line 5896) | fn test_compute_staleness_marks_db_newer_when_force_flush_is_pending() { function test_compute_staleness_marks_db_newer_when_jsonl_is_missing_but_db_has_issues (line 5909) | fn test_compute_staleness_marks_db_newer_when_jsonl_is_missing_but_db_ha... function test_auto_flush_propagates_jsonl_scan_io_errors (line 5922) | fn test_auto_flush_propagates_jsonl_scan_io_errors() { function test_import_records_matching_jsonl_mtime_witness (line 5947) | fn test_import_records_matching_jsonl_mtime_witness() { function test_import_skips_child_counters_for_missing_parents (line 5977) | fn test_import_skips_child_counters_for_missing_parents() { function test_import_rebuilds_nested_child_counters_only_for_existing_parents (line 6010) | fn test_import_rebuilds_nested_child_counters_only_for_existing_parents() { function test_normalize_issue_wisp_detection (line 6062) | fn test_normalize_issue_wisp_detection() { function test_normalize_issue_closed_at_repair (line 6073) | fn test_normalize_issue_closed_at_repair() { function test_normalize_issue_clears_closed_at_for_open (line 6086) | fn test_normalize_issue_clears_closed_at_for_open() { function test_normalize_issue_computes_content_hash (line 6098) | fn test_normalize_issue_computes_content_hash() { function test_normalize_issue_remaps_legacy_done_to_closed (line 6109) | fn test_normalize_issue_remaps_legacy_done_to_closed() { function test_normalize_issue_remaps_mixed_case_terminal_aliases (line 6124) | fn test_normalize_issue_remaps_mixed_case_terminal_aliases() { function test_normalize_issue_preserves_unknown_custom_status (line 6138) | fn test_normalize_issue_preserves_unknown_custom_status() { function test_normalize_issue_normalizes_legacy_standard_dependency_type_with_underscores (line 6146) | fn test_normalize_issue_normalizes_legacy_standard_dependency_type_with_... function test_normalize_issue_preserves_custom_dependency_type_with_underscores (line 6167) | fn test_normalize_issue_preserves_custom_dependency_type_with_underscore... function test_import_collision_by_id_updates_newer (line 6188) | fn test_import_collision_by_id_updates_newer() { function test_import_collision_by_id_skips_older (line 6220) | fn test_import_collision_by_id_skips_older() { function test_import_collision_by_external_ref_same_id (line 6247) | fn test_import_collision_by_external_ref_same_id() { function test_import_tombstone_protection (line 6291) | fn test_import_tombstone_protection() { function test_import_new_issue_creates (line 6318) | fn test_import_new_issue_creates() { function test_get_issue_ids_missing_file_returns_empty (line 6340) | fn test_get_issue_ids_missing_file_returns_empty() { function test_count_issues_missing_file_returns_zero (line 6349) | fn test_count_issues_missing_file_returns_zero() { function test_export_computes_content_hash (line 6358) | fn test_export_computes_content_hash() { function test_export_deterministic_hash (line 6376) | fn test_export_deterministic_hash() { function test_import_skips_ephemerals (line 6397) | fn test_import_skips_ephemerals() { function test_import_handles_empty_lines (line 6416) | fn test_import_handles_empty_lines() { function test_import_keeps_distinct_ids_with_identical_content (line 6433) | fn test_import_keeps_distinct_ids_with_identical_content() { function test_import_restores_foreign_keys_after_relation_sync_failure (line 6457) | fn test_import_restores_foreign_keys_after_relation_sync_failure() { function test_restore_foreign_keys_after_import_errors_on_dangling_rows (line 6486) | fn test_restore_foreign_keys_after_import_errors_on_dangling_rows() { function test_import_error_reports_foreign_key_restore_failure_when_both_fail (line 6515) | fn test_import_error_reports_foreign_key_restore_failure_when_both_fail() { function test_import_rolls_back_partial_changes_after_relation_sync_failure (line 6555) | fn test_import_rolls_back_partial_changes_after_relation_sync_failure() { function test_detect_collision_external_ref_priority (line 6602) | fn test_detect_collision_external_ref_priority() { function test_detect_collision_id_preempts_content_hash (line 6645) | fn test_detect_collision_id_preempts_content_hash() { function test_detect_collision_duplicate_content_hash_keeps_first_match (line 6684) | fn test_detect_collision_duplicate_content_hash_keeps_first_match() { function test_detect_collision_id_match (line 6724) | fn test_detect_collision_id_match() { function test_determine_action_tombstone_skip (line 6759) | fn test_determine_action_tombstone_skip() { function test_determine_action_timestamp_comparison (line 6783) | fn test_determine_action_timestamp_comparison() { function test_import_prefix_mismatch_error (line 6824) | fn test_import_prefix_mismatch_error() { function test_import_prefix_mismatch_error_for_shared_prefix_superset (line 6839) | fn test_import_prefix_mismatch_error_for_shared_prefix_superset() { function test_import_duplicate_external_ref_errors (line 6855) | fn test_import_duplicate_external_ref_errors() { function test_import_duplicate_issue_ids_error (line 6878) | fn test_import_duplicate_issue_ids_error() { function test_import_duplicate_external_ref_clears_and_inserts (line 6899) | fn test_import_duplicate_external_ref_clears_and_inserts() { function test_export_deterministic_order (line 6931) | fn test_export_deterministic_order() { function test_normalize_issue_for_export_orders_identical_comments_by_id (line 6956) | fn test_normalize_issue_for_export_orders_identical_comments_by_id() { function test_finalize_export_updates_metadata_and_clears_dirty (line 6987) | fn test_finalize_export_updates_metadata_and_clears_dirty() { function test_auto_flush_clears_byte_identical_dirty_marker_without_rewrite (line 7029) | fn test_auto_flush_clears_byte_identical_dirty_marker_without_rewrite() { function test_filter_dirty_metadata_for_export_only_includes_exported_ids (line 7057) | fn test_filter_dirty_metadata_for_export_only_includes_exported_ids() { function test_finalize_export_rolls_back_on_failure (line 7082) | fn test_finalize_export_rolls_back_on_failure() { function test_export_policy_strict_fails_on_write_error (line 7135) | fn test_export_policy_strict_fails_on_write_error() { function test_export_policy_best_effort_skips_write_error (line 7148) | fn test_export_policy_best_effort_skips_write_error() { function test_export_policy_partial_collects_write_error (line 7167) | fn test_export_policy_partial_collects_write_error() { function test_export_policy_required_core_fails_on_issue_error (line 7184) | fn test_export_policy_required_core_fails_on_issue_error() { function test_export_policy_required_core_allows_non_core_errors (line 7198) | fn test_export_policy_required_core_allows_non_core_errors() { function test_preflight_check_status_ordering (line 7229) | fn test_preflight_check_status_ordering() { function test_preflight_result_aggregates_status (line 7237) | fn test_preflight_result_aggregates_status() { function test_preflight_result_into_result_succeeds_on_pass (line 7267) | fn test_preflight_result_into_result_succeeds_on_pass() { function test_preflight_result_into_result_succeeds_on_warn (line 7276) | fn test_preflight_result_into_result_succeeds_on_warn() { function test_preflight_result_into_result_fails_on_fail (line 7285) | fn test_preflight_result_into_result_fails_on_fail() { function test_preflight_import_rejects_nonexistent_file (line 7299) | fn test_preflight_import_rejects_nonexistent_file() { function test_preflight_import_rejects_conflict_markers (line 7317) | fn test_preflight_import_rejects_conflict_markers() { function test_preflight_import_passes_valid_jsonl (line 7351) | fn test_preflight_import_passes_valid_jsonl() { function test_preflight_export_passes_with_valid_setup (line 7374) | fn test_preflight_export_passes_with_valid_setup() { function test_preflight_import_rejects_invalid_json_lines (line 7403) | fn test_preflight_import_rejects_invalid_json_lines() { function test_preflight_import_passes_valid_json_lines (line 7435) | fn test_preflight_import_passes_valid_json_lines() { function test_validate_jsonl_issue_records_rejects_duplicate_issue_ids (line 7464) | fn test_validate_jsonl_issue_records_rejects_duplicate_issue_ids() { function test_preflight_import_rejects_duplicate_issue_ids_during_validation (line 7486) | fn test_preflight_import_rejects_duplicate_issue_ids_during_validation() { function test_preflight_import_rejects_semantically_invalid_issue_records (line 7517) | fn test_preflight_import_rejects_semantically_invalid_issue_records() { function test_preflight_import_rejects_prefix_mismatch (line 7552) | fn test_preflight_import_rejects_prefix_mismatch() { function test_preflight_import_rejects_shared_prefix_superset (line 7586) | fn test_preflight_import_rejects_shared_prefix_superset() { function test_preflight_import_prefix_check_skipped_when_override (line 7613) | fn test_preflight_import_prefix_check_skipped_when_override() { function test_preflight_import_prefix_passes_matching_prefix (line 7646) | fn test_preflight_import_prefix_passes_matching_prefix() { function test_preflight_import_prefix_no_check_without_expected (line 7681) | fn test_preflight_import_prefix_no_check_without_expected() { function test_preflight_import_conflict_markers_mixed_content (line 7707) | fn test_preflight_import_conflict_markers_mixed_content() { function test_preflight_import_success_path_all_checks (line 7744) | fn test_preflight_import_success_path_all_checks() { function test_preflight_import_mixed_prefix_partial_mismatch (line 7805) | fn test_preflight_import_mixed_prefix_partial_mismatch() { function test_preflight_import_prefix_skips_tombstones (line 7841) | fn test_preflight_import_prefix_skips_tombstones() { function test_preflight_import_empty_file_passes_json_check (line 7876) | fn test_preflight_import_empty_file_passes_json_check() { function test_preflight_import_only_blank_lines_passes_json_check (line 7899) | fn test_preflight_import_only_blank_lines_passes_json_check() { function fixed_time_merge (line 7924) | fn fixed_time_merge(seconds: i64) -> chrono::DateTime { function make_issue_with_hash (line 7928) | fn make_issue_with_hash( function test_merge_new_local_issue_kept (line 7979) | fn test_merge_new_local_issue_kept() { function test_merge_new_external_issue_kept (line 7987) | fn test_merge_new_external_issue_kept() { function test_merge_deleted_both_sides (line 7996) | fn test_merge_deleted_both_sides() { function test_merge_deleted_external_unmodified_local (line 8004) | fn test_merge_deleted_external_unmodified_local() { function test_merge_deleted_external_modified_local (line 8017) | fn test_merge_deleted_external_modified_local() { function test_merge_deleted_local_modified_external (line 8033) | fn test_merge_deleted_local_modified_external() { function test_merge_only_local_modified (line 8053) | fn test_merge_only_local_modified() { function test_merge_only_external_modified (line 8074) | fn test_merge_only_external_modified() { function test_merge_both_modified_prefer_newer (line 8095) | fn test_merge_both_modified_prefer_newer() { function test_merge_both_modified_prefer_local (line 8123) | fn test_merge_both_modified_prefer_local() { function test_merge_convergent_creation_same_content (line 8150) | fn test_merge_convergent_creation_same_content() { function test_merge_convergent_creation_different_content (line 8166) | fn test_merge_convergent_creation_different_content() { function test_merge_neither_changed (line 8191) | fn test_merge_neither_changed() { function test_merge_report_has_conflicts (line 8208) | fn test_merge_report_has_conflicts() { function test_merge_report_total_actions (line 8219) | fn test_merge_report_total_actions() { function test_three_way_merge_basic (line 8234) | fn test_three_way_merge_basic() { function test_three_way_merge_with_tombstone_protection (line 8268) | fn test_three_way_merge_with_tombstone_protection() { function test_three_way_merge_tombstone_allows_local (line 8297) | fn test_three_way_merge_tombstone_allows_local() { function test_three_way_merge_tombstone_protection_blocks_external_winner (line 8323) | fn test_three_way_merge_tombstone_protection_blocks_external_winner() { function test_three_way_merge_deletions (line 8359) | fn test_three_way_merge_deletions() { function test_three_way_merge_empty_context (line 8379) | fn test_three_way_merge_empty_context() { function test_merge_conflict_manual_strategy (line 8392) | fn test_merge_conflict_manual_strategy() { function test_three_way_merge_with_notes (line 8421) | fn test_three_way_merge_with_notes() { function test_manual_merge_reports_both_modified_conflict (line 8459) | fn test_manual_merge_reports_both_modified_conflict() { function test_manual_merge_reports_convergent_creation_conflict (line 8493) | fn test_manual_merge_reports_convergent_creation_conflict() { function test_compute_jsonl_hash_ignores_empty_lines_and_whitespace (line 8521) | fn test_compute_jsonl_hash_ignores_empty_lines_and_whitespace() { FILE: src/sync/path.rs constant ALLOWED_EXTENSIONS (line 51) | pub const ALLOWED_EXTENSIONS: &[&str] = &[ constant ALLOWED_EXACT_NAMES (line 61) | pub const ALLOWED_EXACT_NAMES: &[&str] = &[".manifest.json", "metadata.j... type PathValidation (line 65) | pub enum PathValidation { method is_allowed (line 87) | pub const fn is_allowed(&self) -> bool { method rejection_reason (line 93) | pub fn rejection_reason(&self) -> Option { function normalize_path_lexically (line 132) | fn normalize_path_lexically(path: &Path) -> Option { function validate_no_git_path (line 167) | pub fn validate_no_git_path(path: &Path) -> PathValidation { function validate_sync_path (line 233) | pub fn validate_sync_path(path: &Path, beads_dir: &Path) -> PathValidati... function validate_extension_and_name (line 428) | fn validate_extension_and_name(path: &Path) -> PathValidation { function is_allowed_jsonl_temp_name (line 462) | fn is_allowed_jsonl_temp_name(file_name: &str) -> bool { function require_valid_sync_path (line 485) | pub fn require_valid_sync_path(path: &Path, beads_dir: &Path) -> Result<... function is_sync_path_allowed (line 502) | pub fn is_sync_path_allowed(path: &Path, beads_dir: &Path) -> bool { function validate_sync_path_with_external (line 542) | pub fn validate_sync_path_with_external( function validate_external_jsonl_path (line 568) | fn validate_external_jsonl_path(path: &Path) -> Result<()> { function require_safe_sync_overwrite_path (line 619) | pub fn require_safe_sync_overwrite_path( function validate_temp_file_path (line 707) | pub fn validate_temp_file_path( function validate_jsonl_fd_metadata (line 759) | pub fn validate_jsonl_fd_metadata(file: &File, path: &Path) -> Result<()> { function setup_test_beads_dir (line 782) | fn setup_test_beads_dir() -> (TempDir, PathBuf) { function test_allowed_jsonl_file (line 790) | fn test_allowed_jsonl_file() { function test_allowed_db_file (line 800) | fn test_allowed_db_file() { function test_allowed_db_wal_file (line 810) | fn test_allowed_db_wal_file() { function test_allowed_db_journal_file (line 820) | fn test_allowed_db_journal_file() { function test_allowed_manifest_file (line 830) | fn test_allowed_manifest_file() { function test_allowed_normalized_internal_path_with_parent_component (line 840) | fn test_allowed_normalized_internal_path_with_parent_component() { function test_allowed_metadata_file (line 855) | fn test_allowed_metadata_file() { function test_allowed_temp_file (line 865) | fn test_allowed_temp_file() { function test_allowed_pid_scoped_temp_file (line 875) | fn test_allowed_pid_scoped_temp_file() { function test_rejected_outside_beads_dir (line 888) | fn test_rejected_outside_beads_dir() { function test_rejected_traversal (line 901) | fn test_rejected_traversal() { function test_rejected_disallowed_extension (line 913) | fn test_rejected_disallowed_extension() { function test_rejected_source_file (line 926) | fn test_rejected_source_file() { function test_rejected_directory_named_like_jsonl (line 939) | fn test_rejected_directory_named_like_jsonl() { function test_rejected_absolute_path_outside (line 952) | fn test_rejected_absolute_path_outside() { function test_rejected_git_path_component (line 964) | fn test_rejected_git_path_component() { function test_new_file_in_beads_dir (line 976) | fn test_new_file_in_beads_dir() { function test_require_valid_sync_path_ok (line 989) | fn test_require_valid_sync_path_ok() { function test_require_valid_sync_path_error (line 999) | fn test_require_valid_sync_path_error() { function test_is_sync_path_allowed_quick_check (line 1009) | fn test_is_sync_path_allowed_quick_check() { function test_is_sync_path_allowed_accepts_normalized_internal_path (line 1023) | fn test_is_sync_path_allowed_accepts_normalized_internal_path() { function test_symlink_escape_rejected (line 1036) | fn test_symlink_escape_rejected() { function test_validate_no_git_path_rejects_symlinked_git_parent (line 1060) | fn test_validate_no_git_path_rejects_symlinked_git_parent() { function test_validate_sync_path_with_external_rejects_symlinked_jsonl (line 1080) | fn test_validate_sync_path_with_external_rejects_symlinked_jsonl() { function test_validation_logs_rejection (line 1108) | fn test_validation_logs_rejection() { function test_safe_overwrite_blocks_external_without_flag (line 1124) | fn test_safe_overwrite_blocks_external_without_flag() { function test_safe_overwrite_allows_external_jsonl_with_flag (line 1136) | fn test_safe_overwrite_allows_external_jsonl_with_flag() { function test_safe_overwrite_rejects_external_non_jsonl (line 1148) | fn test_safe_overwrite_rejects_external_non_jsonl() { function test_safe_overwrite_rejects_external_directory_named_jsonl (line 1160) | fn test_safe_overwrite_rejects_external_directory_named_jsonl() { function test_safe_overwrite_allows_manifest_inside_beads (line 1173) | fn test_safe_overwrite_allows_manifest_inside_beads() { function test_temp_file_valid_same_directory (line 1189) | fn test_temp_file_valid_same_directory() { function test_temp_file_valid_same_directory_with_pid_scoped_name (line 1202) | fn test_temp_file_valid_same_directory_with_pid_scoped_name() { function test_temp_file_rejects_different_directory (line 1215) | fn test_temp_file_rejects_different_directory() { function test_temp_file_rejects_missing_tmp_extension (line 1233) | fn test_temp_file_rejects_missing_tmp_extension() { function test_temp_file_rejects_git_path (line 1251) | fn test_temp_file_rejects_git_path() { function test_temp_file_allows_external_with_flag (line 1266) | fn test_temp_file_allows_external_with_flag() { function test_temp_file_rejects_external_without_flag (line 1281) | fn test_temp_file_rejects_external_without_flag() { function test_temp_file_nested_beads_subdir (line 1296) | fn test_temp_file_nested_beads_subdir() { function test_temp_file_rejects_existing_symlink (line 1312) | fn test_temp_file_rejects_existing_symlink() { function test_validate_jsonl_fd_metadata_accepts_regular_file (line 1330) | fn test_validate_jsonl_fd_metadata_accepts_regular_file() { function test_validate_jsonl_fd_metadata_rejects_directory_fd (line 1343) | fn test_validate_jsonl_fd_metadata_rejects_directory_fd() { FILE: src/util/hash.rs function hex_encode (line 13) | pub fn hex_encode(bytes: &[u8]) -> String { type ContentHashable (line 23) | pub trait ContentHashable { method content_hash (line 25) | fn content_hash(&self) -> String; method content_hash (line 29) | fn content_hash(&self) -> String { function content_hash (line 52) | pub fn content_hash(issue: &Issue) -> String { function content_hash_from_parts (line 75) | pub fn content_hash_from_parts( type HashFieldWriter (line 134) | struct HashFieldWriter { method new (line 139) | fn new() -> Self { method field (line 145) | fn field(&mut self, value: &str) { method field_opt (line 150) | fn field_opt(&mut self, value: Option<&str>) { method field_flag (line 154) | fn field_flag(&mut self, value: bool, label: &str) { method finalize (line 158) | fn finalize(self) -> String { function make_test_issue (line 167) | fn make_test_issue() -> Issue { function test_content_hash_deterministic (line 212) | fn test_content_hash_deterministic() { function test_content_hash_is_hex (line 220) | fn test_content_hash_is_hex() { function test_content_hash_changes_with_title (line 228) | fn test_content_hash_changes_with_title() { function test_content_hash_ignores_timestamps (line 239) | fn test_content_hash_ignores_timestamps() { function test_content_hash_includes_pinned (line 250) | fn test_content_hash_includes_pinned() { function test_content_hash_includes_created_by (line 261) | fn test_content_hash_includes_created_by() { function test_content_hash_includes_source_system (line 272) | fn test_content_hash_includes_source_system() { function test_content_hash_from_parts (line 283) | fn test_content_hash_from_parts() { function test_hex_encode_empty (line 307) | fn test_hex_encode_empty() { function test_hex_encode_single_byte (line 312) | fn test_hex_encode_single_byte() { function test_hex_encode_length_invariant (line 322) | fn test_hex_encode_length_invariant() { function test_hex_encode_32_bytes_sha256_width (line 338) | fn test_hex_encode_32_bytes_sha256_width() { function test_hex_encode_high_bit_bytes (line 349) | fn test_hex_encode_high_bit_bytes() { function test_hex_encode_is_lowercase (line 354) | fn test_hex_encode_is_lowercase() { function test_hex_encode_all_zeros_32_bytes (line 362) | fn test_hex_encode_all_zeros_32_bytes() { function test_hex_encode_all_ff_32_bytes (line 370) | fn test_hex_encode_all_ff_32_bytes() { function test_hex_encode_all_256_byte_values (line 378) | fn test_hex_encode_all_256_byte_values() { function test_hex_encode_matches_sha256_digest (line 391) | fn test_hex_encode_matches_sha256_digest() { FILE: src/util/id.rs constant MAX_ID_PREFIX_LEN (line 9) | pub const MAX_ID_PREFIX_LEN: usize = 64; constant MAX_ID_HASH_LEN (line 10) | pub const MAX_ID_HASH_LEN: usize = 40; constant MAX_ID_LENGTH (line 11) | pub const MAX_ID_LENGTH: usize = MAX_ID_PREFIX_LEN + 1 + MAX_ID_HASH_LEN; type IdConfig (line 15) | pub struct IdConfig { method with_prefix (line 40) | pub fn with_prefix(prefix: impl Into) -> Self { method default (line 27) | fn default() -> Self { type IdGenerator (line 50) | pub struct IdGenerator { method new (line 57) | pub const fn new(config: IdConfig) -> Self { method with_defaults (line 63) | pub fn with_defaults() -> Self { method prefix (line 69) | pub fn prefix(&self) -> &str { method optimal_length (line 82) | pub fn optimal_length(&self, issue_count: usize) -> usize { method generate_candidate (line 100) | pub fn generate_candidate( method generate (line 117) | pub fn generate( function generate_id_seed (line 183) | pub fn generate_id_seed( function append_seed_part (line 202) | fn append_seed_part(seed: &mut String, value: &str) { function compute_id_hash (line 213) | pub fn compute_id_hash(input: &str, length: usize) -> String { function base36_encode (line 238) | fn base36_encode(mut num: u64) -> String { function child_id (line 259) | pub fn child_id(parent_id: &str, child_number: u32) -> String { function issue_id_separator (line 263) | fn issue_id_separator(id: &str) -> Option { function split_prefix_remainder (line 267) | pub(crate) fn split_prefix_remainder(id: &str) -> Option<(&str, &str)> { function is_child_id (line 279) | pub fn is_child_id(id: &str) -> bool { function id_depth (line 291) | pub fn id_depth(id: &str) -> usize { function generate_id (line 301) | pub fn generate_id( type ParsedId (line 321) | pub struct ParsedId { method is_root (line 333) | pub fn is_root(&self) -> bool { method depth (line 339) | pub fn depth(&self) -> usize { method parent (line 347) | pub fn parent(&self) -> Option { method to_id_string (line 365) | pub fn to_id_string(&self) -> String { method is_child_of (line 376) | pub fn is_child_of(&self, potential_parent: &str) -> bool { function format_child_path (line 384) | fn format_child_path(path: &[u32]) -> String { function parse_id (line 398) | pub fn parse_id(id: &str) -> Result { function validate_prefix (line 466) | pub fn validate_prefix(id: &str, expected_prefix: &str, allowed_prefixes... function normalize_id (line 485) | pub fn normalize_id(id: &str) -> String { function normalize_prefix (line 495) | pub fn normalize_prefix(prefix: &str) -> String { function abbreviate_prefix (line 527) | pub fn abbreviate_prefix(prefix: &str) -> String { function is_valid_id_format (line 562) | pub fn is_valid_id_format(id: &str) -> bool { type ResolverConfig (line 572) | pub struct ResolverConfig { method with_prefix (line 594) | pub fn with_prefix(prefix: impl Into) -> Self { method default (line 582) | fn default() -> Self { type ResolvedId (line 604) | pub struct ResolvedId { type MatchType (line 615) | pub enum MatchType { type IdResolver (line 632) | pub struct IdResolver { method new (line 639) | pub const fn new(config: ResolverConfig) -> Self { method with_defaults (line 645) | pub fn with_defaults() -> Self { method with_prefix (line 651) | pub fn with_prefix(prefix: impl Into) -> Self { method default_prefix (line 657) | pub fn default_prefix(&self) -> &str { method resolve (line 678) | pub fn resolve( method resolve_fallible (line 771) | pub fn resolve_fallible( method resolve_all (line 852) | pub fn resolve_all( method resolve_all_fallible (line 873) | pub fn resolve_all_fallible( function find_matching_ids (line 895) | pub fn find_matching_ids(all_ids: &[String], hash_substring: &str) -> Ve... function resolve_id (line 933) | pub fn resolve_id(input: &str, exists_fn: F, substring_match_fn: G... function resolve_id_fallible (line 949) | pub fn resolve_id_fallible(input: &str, exists_fn: F, substring_ma... function mock_db (line 968) | fn mock_db() -> Vec { function exists_in_mock (line 978) | fn exists_in_mock(id: &str) -> bool { function substring_in_mock (line 982) | fn substring_in_mock(pattern: &str) -> Vec { function test_resolve_exact_match (line 987) | fn test_resolve_exact_match() { function test_resolve_prefix_normalized (line 997) | fn test_resolve_prefix_normalized() { function test_resolve_substring_match (line 1007) | fn test_resolve_substring_match() { function test_resolve_ambiguous (line 1018) | fn test_resolve_ambiguous() { function test_resolve_not_found (line 1033) | fn test_resolve_not_found() { function test_resolve_child_id (line 1045) | fn test_resolve_child_id() { function test_resolve_case_insensitive (line 1055) | fn test_resolve_case_insensitive() { function test_resolve_with_custom_prefix (line 1064) | fn test_resolve_with_custom_prefix() { function test_resolve_empty_input (line 1076) | fn test_resolve_empty_input() { function test_resolve_whitespace_trimmed (line 1083) | fn test_resolve_whitespace_trimmed() { function test_resolve_fallible_propagates_lookup_error (line 1092) | fn test_resolve_fallible_propagates_lookup_error() { function test_resolve_all_fallible_propagates_lookup_error (line 1103) | fn test_resolve_all_fallible_propagates_lookup_error() { function test_find_matching_ids_substring (line 1117) | fn test_find_matching_ids_substring() { function test_find_matching_ids_no_match (line 1126) | fn test_find_matching_ids_no_match() { function test_base36_encode (line 1137) | fn test_base36_encode() { function test_compute_id_hash_length (line 1145) | fn test_compute_id_hash_length() { function test_generate_id_seed (line 1155) | fn test_generate_id_seed() { function test_parse_id_root (line 1165) | fn test_parse_id_root() { function test_parse_id_hyphenated_prefix (line 1175) | fn test_parse_id_hyphenated_prefix() { function test_parse_id_hyphenated_prefix_word_like_hash (line 1188) | fn test_parse_id_hyphenated_prefix_word_like_hash() { function test_parse_id_child (line 1197) | fn test_parse_id_child() { function test_parse_id_grandchild (line 1207) | fn test_parse_id_grandchild() { function test_parse_id_external_style (line 1214) | fn test_parse_id_external_style() { function test_parse_id_invalid_no_dash (line 1225) | fn test_parse_id_invalid_no_dash() { function test_parse_id_invalid_empty_hash (line 1230) | fn test_parse_id_invalid_empty_hash() { function test_parse_id_invalid_uppercase (line 1235) | fn test_parse_id_invalid_uppercase() { function test_parse_id_long_hash (line 1240) | fn test_parse_id_long_hash() { function test_parsed_id_parent (line 1249) | fn test_parsed_id_parent() { function test_parsed_id_to_string (line 1261) | fn test_parsed_id_to_string() { function test_parsed_id_is_child_of (line 1270) | fn test_parsed_id_is_child_of() { function test_validate_prefix (line 1281) | fn test_validate_prefix() { function test_normalize_prefix_sanitizes_and_lowercases (line 1288) | fn test_normalize_prefix_sanitizes_and_lowercases() { function test_abbreviate_prefix_handles_mixed_case_and_underscores (line 1294) | fn test_abbreviate_prefix_handles_mixed_case_and_underscores() { function test_is_valid_id_format (line 1300) | fn test_is_valid_id_format() { function test_id_generator_optimal_length (line 1308) | fn test_id_generator_optimal_length() { function test_id_generator_generate (line 1322) | fn test_id_generator_generate() { function test_id_generator_collision_handling (line 1340) | fn test_id_generator_collision_handling() { function test_desperate_fallback_id_format (line 1357) | fn test_desperate_fallback_id_format() { FILE: src/util/markdown_import.rs type ParsedIssue (line 37) | pub struct ParsedIssue { type Section (line 66) | enum Section { method from_header (line 83) | fn from_header(header: &str) -> Self { function parse_markdown_file (line 115) | pub fn parse_markdown_file(path: &Path) -> Result> { function parse_markdown_content (line 174) | pub fn parse_markdown_content(content: &str) -> Result> { function apply_section_to_issue (line 247) | fn apply_section_to_issue(issue: &mut ParsedIssue, section: Section, lin... function split_dependency_content (line 308) | fn split_dependency_content(content: &str) -> Vec { function split_list_content (line 338) | fn split_list_content(content: &str) -> Vec { function split_whitespace_items_preserving_colon_pairs (line 358) | fn split_whitespace_items_preserving_colon_pairs(line: &str) -> Vec &str { function strip_markdown_checkbox_prefix (line 399) | fn strip_markdown_checkbox_prefix(line: &str) -> &str { function is_marker_only_token (line 411) | fn is_marker_only_token(token: &str) -> bool { function validate_dependency_type (line 419) | pub fn validate_dependency_type(dep_type: &str) -> Option<&str> { function parse_dependency (line 441) | pub fn parse_dependency(dep_str: &str) -> (String, String, bool) { function test_parse_simple_issue (line 466) | fn test_parse_simple_issue() { function test_parse_multiple_issues (line 493) | fn test_parse_multiple_issues() { function test_implicit_description_quirk (line 514) | fn test_implicit_description_quirk() { function test_labels_comma_separated (line 533) | fn test_labels_comma_separated() { function test_labels_whitespace_separated (line 543) | fn test_labels_whitespace_separated() { function test_dependencies_parsing (line 553) | fn test_dependencies_parsing() { function test_dependencies_markdown_bullets_ignore_list_markers (line 566) | fn test_dependencies_markdown_bullets_ignore_list_markers() { function test_dependencies_whitespace_separated_typed_tokens (line 581) | fn test_dependencies_whitespace_separated_typed_tokens() { function test_acceptance_criteria_alias (line 594) | fn test_acceptance_criteria_alias() { function test_unknown_sections_ignored (line 612) | fn test_unknown_sections_ignored() { function test_validate_dependency_type (line 628) | fn test_validate_dependency_type() { function test_split_list_content_spaces (line 638) | fn test_split_list_content_spaces() { function test_parse_dependency (line 645) | fn test_parse_dependency() { function test_parse_markdown_file_rejects_parent_dir (line 669) | fn test_parse_markdown_file_rejects_parent_dir() { function test_parse_markdown_file_rejects_directory (line 675) | fn test_parse_markdown_file_rejects_directory() { function test_parse_markdown_file_rejects_non_regular_md_path (line 685) | fn test_parse_markdown_file_rejects_non_regular_md_path() { function test_parse_markdown_file_rejects_symlink (line 699) | fn test_parse_markdown_file_rejects_symlink() { function test_parse_markdown_content_rejects_non_empty_content_without_issue_headers (line 716) | fn test_parse_markdown_content_rejects_non_empty_content_without_issue_h... function test_stand_in_id_section (line 722) | fn test_stand_in_id_section() { function test_title_based_dependencies_bulleted (line 743) | fn test_title_based_dependencies_bulleted() { function test_non_bulleted_deps_still_split_on_whitespace (line 761) | fn test_non_bulleted_deps_still_split_on_whitespace() { function test_design_section (line 772) | fn test_design_section() { function test_case_insensitive_sections (line 784) | fn test_case_insensitive_sections() { function test_explicit_description_overrides_implicit (line 802) | fn test_explicit_description_overrides_implicit() { function test_parent_section_parsing (line 818) | fn test_parent_section_parsing() { FILE: src/util/mod.rs constant LAST_TOUCHED_FILE (line 29) | const LAST_TOUCHED_FILE: &str = "last-touched"; constant BEADS_CACHE_DIR_ENV (line 37) | pub const BEADS_CACHE_DIR_ENV: &str = "BEADS_CACHE_DIR"; function resolve_cache_dir (line 45) | pub fn resolve_cache_dir(beads_dir: &Path) -> PathBuf { function last_touched_path (line 61) | pub fn last_touched_path(beads_dir: &Path) -> PathBuf { constant DB_FILE (line 65) | const DB_FILE: &str = "beads.db"; function db_path (line 76) | pub fn db_path(beads_dir: &Path) -> PathBuf { function set_last_touched_id (line 84) | pub fn set_last_touched_id(beads_dir: &Path, id: &str) { function get_last_touched_id (line 110) | pub fn get_last_touched_id(beads_dir: &Path) -> String { function clear_last_touched (line 124) | pub fn clear_last_touched(beads_dir: &Path) { function durable_rename (line 136) | pub fn durable_rename(from: &Path, to: &Path) -> io::Result<()> { function durable_rename_with_parent_sync (line 140) | fn durable_rename_with_parent_sync(from: &Path, to: &Path, sync_dir: ... function sync_rename_parent_directories_with (line 148) | fn sync_rename_parent_directories_with(from: &Path, to: &Path, mut sy... function sync_parent_directory (line 167) | pub fn sync_parent_directory(path: &Path) -> io::Result<()> { function parent_for_directory_sync (line 171) | fn parent_for_directory_sync(path: &Path) -> &Path { function sync_directory (line 178) | fn sync_directory(path: &Path) -> io::Result<()> { function sync_directory (line 183) | fn sync_directory(path: &Path) -> io::Result<()> { function test_set_get_clear_last_touched (line 203) | fn test_set_get_clear_last_touched() { function test_last_touched_permissions (line 219) | fn test_last_touched_permissions() { function test_set_last_touched_creates_parent_dir (line 232) | fn test_set_last_touched_creates_parent_dir() { function durable_rename_syncs_parent_once_for_same_directory (line 250) | fn durable_rename_syncs_parent_once_for_same_directory() { function durable_rename_syncs_both_parents_for_cross_directory_rename (line 269) | fn durable_rename_syncs_both_parents_for_cross_directory_rename() { function durable_rename_reports_parent_sync_failure_after_successful_rename (line 292) | fn durable_rename_reports_parent_sync_failure_after_successful_rename() { FILE: src/util/progress.rs function should_show_progress (line 18) | pub fn should_show_progress() -> bool { function create_progress_bar (line 42) | pub fn create_progress_bar(total: u64, message: &str, show: bool) -> Pro... function create_spinner (line 76) | pub fn create_spinner(message: &str, show: bool) -> ProgressBar { function create_multi_progress (line 107) | pub fn create_multi_progress(show: bool) -> MultiProgress { type ProgressTracker (line 121) | pub struct ProgressTracker { method new (line 129) | pub fn new(total: u64, message: &str) -> Self { method new_spinner (line 139) | pub fn new_spinner(message: &str) -> Self { method inc (line 148) | pub fn inc(&self, delta: u64) { method set_position (line 153) | pub fn set_position(&self, pos: u64) { method set_message (line 158) | pub fn set_message(&self, message: impl Into) { method finish_with_message (line 163) | pub fn finish_with_message(&self, message: impl Into) { method finish_and_clear (line 168) | pub fn finish_and_clear(&self) { method is_showing (line 174) | pub const fn is_showing(&self) -> bool { method bar (line 180) | pub const fn bar(&self) -> &ProgressBar { function test_progress_bar_hidden_when_not_terminal (line 190) | fn test_progress_bar_hidden_when_not_terminal() { function test_spinner_hidden_when_not_terminal (line 203) | fn test_spinner_hidden_when_not_terminal() { function test_progress_tracker_determinate (line 213) | fn test_progress_tracker_determinate() { function test_progress_tracker_spinner (line 230) | fn test_progress_tracker_spinner() { function test_multi_progress_hidden (line 249) | fn test_multi_progress_hidden() { FILE: src/util/time.rs type RelativeTimeError (line 8) | enum RelativeTimeError { function parse_flexible_timestamp (line 32) | pub fn parse_flexible_timestamp(s: &str, field_name: &str) -> Result Option> { function parse_rfc3339_timestamp (line 142) | fn parse_rfc3339_timestamp(s: &str) -> Option> { function strip_zero_offset_seconds (line 153) | fn strip_zero_offset_seconds(s: &str) -> Option { function parse_relative_timestamp (line 180) | fn parse_relative_timestamp( function format_relative_time (line 222) | pub fn format_relative_time(dt: DateTime, now: DateTime) -> St... function local_to_utc (line 291) | fn local_to_utc(naive_dt: &chrono::NaiveDateTime, field_name: &str) -> R... function local_to_utc_opt (line 311) | fn local_to_utc_opt(naive_dt: &chrono::NaiveDateTime) -> Option Result<(), Vec> { function validate_issue_text_fields (line 119) | fn validate_issue_text_fields(issue: &Issue, errors: &mut Vec, errors: &mut Vec Result; method dependency_exists (line 298) | fn dependency_exists(&self, issue_id: &str, depends_on_id: &str) -> Re... method would_create_cycle (line 304) | fn would_create_cycle(&self, issue_id: &str, depends_on_id: &str) -> R... method issue_exists (line 759) | fn issue_exists(&self, id: &str) -> Result { method dependency_exists (line 766) | fn dependency_exists( method would_create_cycle (line 774) | fn would_create_cycle( type DependencyValidator (line 308) | pub struct DependencyValidator; method validate (line 316) | pub fn validate(dep: &Dependency, store: &impl DependencyStore) -> Res... type LabelValidator (line 362) | pub struct LabelValidator; method validate (line 370) | pub fn validate(label: &str) -> Result<(), ValidationError> { type CommentValidator (line 394) | pub struct CommentValidator; method validate (line 402) | pub fn validate(comment: &Comment) -> Result<(), Vec> { function is_valid_id_format (line 438) | pub fn is_valid_id_format(id: &str) -> bool { type SyncSafetyValidator (line 457) | pub struct SyncSafetyValidator; method validate_no_git_path (line 467) | pub fn validate_no_git_path(path: &Path) -> Result<(), ValidationError> { method validate_path_containment (line 507) | pub fn validate_path_containment( method assert_no_git_in_sync (line 551) | pub const fn assert_no_git_in_sync() { function base_issue (line 566) | fn base_issue() -> Issue { function issue_validation_rejects_empty_title (line 611) | fn issue_validation_rejects_empty_title() { function issue_validation_counts_title_limit_in_chars_not_utf8_bytes (line 620) | fn issue_validation_counts_title_limit_in_chars_not_utf8_bytes() { function issue_validation_rejects_nul_in_content_hash_fields (line 631) | fn issue_validation_rejects_nul_in_content_hash_fields() { function issue_validation_rejects_invalid_id (line 667) | fn issue_validation_rejects_invalid_id() { function issue_validation_rejects_priority_out_of_range (line 676) | fn issue_validation_rejects_priority_out_of_range() { function issue_validation_rejects_large_description (line 685) | fn issue_validation_rejects_large_description() { function issue_validation_rejects_closed_without_closed_at (line 694) | fn issue_validation_rejects_closed_without_closed_at() { function issue_validation_rejects_non_terminal_closed_at (line 703) | fn issue_validation_rejects_non_terminal_closed_at() { function issue_validation_allows_tombstone_without_closed_at (line 712) | fn issue_validation_allows_tombstone_without_closed_at() { function label_validation_rejects_invalid_characters (line 720) | fn label_validation_rejects_invalid_characters() { function label_validation_rejects_empty (line 726) | fn label_validation_rejects_empty() { function label_validation_allows_namespaced_labels (line 732) | fn label_validation_allows_namespaced_labels() { function comment_validation_rejects_empty_body (line 737) | fn comment_validation_rejects_empty_body() { type FakeStore (line 751) | struct FakeStore { function base_dependency (line 783) | fn base_dependency() -> Dependency { function dependency_validation_rejects_self_dependency (line 796) | fn dependency_validation_rejects_self_dependency() { function dependency_validation_rejects_missing_issue (line 814) | fn dependency_validation_rejects_missing_issue() { function dependency_validation_rejects_cycle (line 834) | fn dependency_validation_rejects_cycle() { function dependency_validation_allows_non_blocking_cycle (line 851) | fn dependency_validation_allows_non_blocking_cycle() { function dependency_validation_rejects_duplicate (line 865) | fn dependency_validation_rejects_duplicate() { function issue_validation_collects_multiple_errors (line 882) | fn issue_validation_collects_multiple_errors() { function issue_validation_rejects_external_ref_whitespace (line 898) | fn issue_validation_rejects_external_ref_whitespace() { function id_format_validation_accepts_classic_ids (line 907) | fn id_format_validation_accepts_classic_ids() { function id_format_validation_rejects_invalid_ids (line 913) | fn id_format_validation_rejects_invalid_ids() { function id_format_validation_accepts_long_hash (line 935) | fn id_format_validation_accepts_long_hash() { function sync_safety_rejects_git_path_component (line 945) | fn sync_safety_rejects_git_path_component() { function sync_safety_allows_beads_path (line 960) | fn sync_safety_allows_beads_path() { function sync_safety_allows_gitignore_file (line 969) | fn sync_safety_allows_gitignore_file() { function sync_safety_rejects_git_in_string (line 979) | fn sync_safety_rejects_git_in_string() { function sync_safety_containment_rejects_escape (line 992) | fn sync_safety_containment_rejects_escape() { function sync_safety_containment_allows_beads_subpath (line 1013) | fn sync_safety_containment_allows_beads_subpath() { function sync_safety_containment_allows_external_with_flag (line 1029) | fn sync_safety_containment_allows_external_with_flag() { function sync_safety_containment_rejects_git_even_with_external_flag (line 1043) | fn sync_safety_containment_rejects_git_even_with_external_flag() { function sync_safety_no_git_commands_in_sync_module (line 1060) | fn sync_safety_no_git_commands_in_sync_module() { function sync_safety_no_git_library_dependencies (line 1091) | fn sync_safety_no_git_library_dependencies() { FILE: tests/atomic_manifest_write.rs function init_and_create_issue (line 12) | fn init_and_create_issue(workspace: &BrWorkspace) { function manifest_is_valid_json_after_flush (line 25) | fn manifest_is_valid_json_after_flush() { function manifest_write_leaves_no_temp_files (line 57) | fn manifest_write_leaves_no_temp_files() { function pre_existing_manifest_survives_if_no_manifest_flag (line 82) | fn pre_existing_manifest_survives_if_no_manifest_flag() { function manifest_overwrite_replaces_old_content_atomically (line 101) | fn manifest_overwrite_replaces_old_content_atomically() { FILE: tests/bench_cold_warm.rs type ColdWarmConfig (line 61) | pub struct ColdWarmConfig { method quick (line 90) | pub const fn quick() -> Self { method default (line 76) | fn default() -> Self { type Measurement (line 107) | pub struct Measurement { type TimingStats (line 128) | pub struct TimingStats { method from_measurements (line 139) | pub fn from_measurements(measurements: &[Measurement]) -> Self { type ColdWarmComparison (line 177) | pub struct ColdWarmComparison { type BinaryComparison (line 195) | pub struct BinaryComparison { type ColdWarmBenchmark (line 209) | pub struct ColdWarmBenchmark { type ColdWarmSummary (line 220) | pub struct ColdWarmSummary { function try_drop_caches (line 242) | fn try_drop_caches() -> bool { function run_timed (line 267) | fn run_timed( function measure_cold (line 302) | fn measure_cold( function measure_warm (line 337) | fn measure_warm( function measure_cold_warm (line 377) | fn measure_cold_warm( constant BENCHMARK_COMMANDS (line 420) | const BENCHMARK_COMMANDS: &[(&str, &[&str])] = &[ function benchmark_dataset (line 428) | fn benchmark_dataset( function calculate_summary (line 531) | fn calculate_summary(comparisons: &[BinaryComparison]) -> ColdWarmSummary { function print_results (line 609) | fn print_results(benchmark: &ColdWarmBenchmark) { function write_results_json (line 677) | fn write_results_json(benchmarks: &[ColdWarmBenchmark], output_path: &Pa... function cold_warm_full (line 691) | fn cold_warm_full() { function cold_warm_quick (line 766) | fn cold_warm_quick() { function test_timing_stats (line 798) | fn test_timing_stats() { function test_cold_warm_comparison_structure (line 843) | fn test_cold_warm_comparison_structure() { function test_summary_calculation (line 880) | fn test_summary_calculation() { FILE: tests/bench_cold_warm_start.rs type ColdWarmMetrics (line 53) | pub struct ColdWarmMetrics { type ColdWarmComparison (line 74) | pub struct ColdWarmComparison { type ColdWarmBenchmark (line 86) | pub struct ColdWarmBenchmark { type ColdWarmSummary (line 100) | pub struct ColdWarmSummary { type RunResult (line 118) | struct RunResult { function run_command (line 126) | fn run_command(binary_path: &Path, args: &[&str], cwd: &Path) -> RunResu... function measure_cold_warm (line 148) | fn measure_cold_warm( function create_br_workspace (line 213) | fn create_br_workspace(br_path: &Path, issue_count: usize) -> std::io::R... function copy_workspace_for_bd (line 255) | fn copy_workspace_for_bd(br_root: &Path, bd_path: &Path) -> std::io::Res... function copy_dir_all (line 289) | fn copy_dir_all(src: &Path, dst: &Path) -> std::io::Result<()> { function get_first_issue_id (line 306) | fn get_first_issue_id(br_path: &Path, workspace: &Path) -> Option { constant BENCHMARK_COMMANDS (line 331) | const BENCHMARK_COMMANDS: &[(&str, &[&str])] = &[ constant WARM_RUNS (line 339) | const WARM_RUNS: usize = 5; function benchmark_cold_warm (line 342) | fn benchmark_cold_warm( function print_benchmark (line 480) | fn print_benchmark(benchmark: &ColdWarmBenchmark) { function write_results_json (line 542) | fn write_results_json(benchmarks: &[ColdWarmBenchmark], output_path: &Pa... function cold_warm_small (line 556) | fn cold_warm_small() { function cold_warm_medium (line 592) | fn cold_warm_medium() { function cold_warm_large (line 627) | fn cold_warm_large() { function cold_warm_all (line 662) | fn cold_warm_all() { function cold_warm_real_datasets (line 741) | fn cold_warm_real_datasets() { function test_cold_warm_ratio (line 942) | fn test_cold_warm_ratio() { function test_std_dev_calculation (line 952) | fn test_std_dev_calculation() { FILE: tests/bench_real_datasets.rs type RunMetrics (line 54) | pub struct RunMetrics { type Comparison (line 75) | pub struct Comparison { type DatasetBenchmark (line 87) | pub struct DatasetBenchmark { type DatasetMetadataSummary (line 95) | pub struct DatasetMetadataSummary { method from (line 104) | fn from(m: &DatasetMetadata) -> Self { type BenchmarkSummary (line 117) | pub struct BenchmarkSummary { type CapturedRun (line 133) | struct CapturedRun { type CreatedWriteWorkloads (line 140) | struct CreatedWriteWorkloads { function run_with_capture (line 151) | fn run_with_capture( function run_with_metrics (line 194) | fn run_with_metrics( function summarize_command_failure (line 226) | fn summarize_command_failure(run: &CapturedRun) -> String { function ensure_command_succeeded (line 240) | fn ensure_command_succeeded(run: &CapturedRun, context: &str) -> Result<... function extract_issue_id (line 252) | fn extract_issue_id(output: &str) -> Result { function push_aggregate_total (line 270) | fn push_aggregate_total(comparisons: &mut Vec, prefix: &str,... function get_peak_rss_bytes (line 315) | fn get_peak_rss_bytes() -> Option { function run_read_workloads (line 345) | fn run_read_workloads(br_path: &Path, bd_path: &Path, workspace: &Path) ... function benchmark_create_workloads (line 420) | fn benchmark_create_workloads( function benchmark_update_workloads (line 494) | fn benchmark_update_workloads( function benchmark_close_workloads (line 548) | fn benchmark_close_workloads( function run_write_workloads (line 587) | fn run_write_workloads( function make_comparison (line 618) | fn make_comparison(label: &str, br: RunMetrics, bd: RunMetrics) -> Compa... function calculate_summary (line 642) | fn calculate_summary(comparisons: &[Comparison]) -> BenchmarkSummary { function print_comparison_table (line 698) | fn print_comparison_table(benchmark: &DatasetBenchmark) { function write_results_json (line 747) | fn write_results_json(benchmarks: &[DatasetBenchmark], output_path: &Pat... function benchmark_dataset (line 759) | fn benchmark_dataset( function benchmark_all_datasets (line 824) | fn benchmark_all_datasets() { function benchmark_beads_rust_only (line 934) | fn benchmark_beads_rust_only() { function test_calculate_summary (line 950) | fn test_calculate_summary() { function test_make_comparison (line 1016) | fn test_make_comparison() { function test_extract_issue_id_from_object_output (line 1047) | fn test_extract_issue_id_from_object_output() { function test_extract_issue_id_from_array_output (line 1053) | fn test_extract_issue_id_from_array_output() { FILE: tests/bench_synthetic_scale.rs function stress_tests_enabled (line 55) | fn stress_tests_enabled() -> bool { type ScaleTier (line 61) | pub enum ScaleTier { method issue_count (line 74) | pub const fn issue_count(self) -> usize { method name (line 84) | pub const fn name(self) -> &'static str { method dependency_density (line 95) | pub const fn dependency_density(self) -> f64 { type SyntheticConfig (line 110) | pub struct SyntheticConfig { method from_tier (line 123) | pub fn from_tier(tier: ScaleTier) -> Self { method with_seed (line 133) | pub const fn with_seed(mut self, seed: u64) -> Self { type GenerationMetrics (line 141) | pub struct GenerationMetrics { type SyntheticDataset (line 155) | pub struct SyntheticDataset { method generate (line 169) | pub fn generate(config: SyntheticConfig, br_path: &Path) -> std::io::R... method workspace_root (line 333) | pub fn workspace_root(&self) -> &Path { function generate_title (line 339) | fn generate_title(rng: &mut StdRng, index: usize) -> String { type OperationMetrics (line 388) | pub struct OperationMetrics { type SyntheticBenchmark (line 405) | pub struct SyntheticBenchmark { type BenchmarkSummary (line 420) | pub struct BenchmarkSummary { function run_operation (line 440) | fn run_operation( function get_peak_rss_bytes (line 488) | fn get_peak_rss_bytes() -> Option { function benchmark_synthetic (line 513) | fn benchmark_synthetic(dataset: &SyntheticDataset, br_path: &Path) -> Sy... function print_benchmark (line 631) | fn print_benchmark(benchmark: &SyntheticBenchmark) { function write_benchmark_json (line 683) | fn write_benchmark_json( function stress_synthetic_small (line 701) | fn stress_synthetic_small() { function stress_synthetic_medium (line 736) | fn stress_synthetic_medium() { function stress_synthetic_large (line 771) | fn stress_synthetic_large() { function stress_synthetic_xlarge (line 806) | fn stress_synthetic_xlarge() { function stress_synthetic_all (line 841) | fn stress_synthetic_all() { function test_synthetic_config_from_tier (line 907) | fn test_synthetic_config_from_tier() { function test_scale_tier_properties (line 916) | fn test_scale_tier_properties() { function test_generate_title (line 928) | fn test_generate_title() { FILE: tests/benchmark_comparison.rs function bd_available (line 36) | fn bd_available() -> bool { type CmdOutput (line 55) | pub struct CmdOutput { type BenchmarkWorkspace (line 63) | pub struct BenchmarkWorkspace { method new (line 71) | pub fn new() -> Self { method init_both (line 91) | pub fn init_both(&self) -> (CmdOutput, CmdOutput) { method run_br (line 98) | pub fn run_br(&self, args: I, label: &str) -> CmdOutput method run_bd (line 107) | pub fn run_bd(&self, args: I, label: &str) -> CmdOutput method time_br (line 116) | pub fn time_br(&self, args: I) -> Duration method time_bd (line 127) | pub fn time_bd(&self, args: I) -> Duration type LogConfig (line 139) | struct LogConfig { method from_env (line 147) | fn from_env() -> Self { type RunLogEntry (line 158) | struct RunLogEntry { type SummaryStats (line 173) | struct SummaryStats { type SummaryReport (line 180) | struct SummaryReport { type ComparisonStats (line 190) | struct ComparisonStats { function log_mutex (line 200) | fn log_mutex() -> &'static Mutex<()> { function env_flag (line 204) | fn env_flag(name: &str) -> bool { function collect_dir_listing (line 214) | fn collect_dir_listing(path: &PathBuf) -> Vec { function append_run_entry (line 234) | fn append_run_entry(log_dir: &PathBuf, entry: &RunLogEntry) { function read_run_entries (line 245) | fn read_run_entries(log_dir: &PathBuf) -> Vec { function update_summary (line 256) | fn update_summary(log_dir: &PathBuf, entries: &[RunLogEntry]) { function xml_escape (line 311) | fn xml_escape(input: &str) -> String { function write_junit (line 320) | fn write_junit(log_dir: &PathBuf, entries: &[RunLogEntry]) { function write_failure_context (line 353) | fn write_failure_context( function record_run (line 383) | fn record_run(log_dir: &PathBuf, entry: RunLogEntry, stdout: &str, stder... function run_br_cmd (line 404) | fn run_br_cmd(cwd: &PathBuf, log_dir: &PathBuf, args: I, label: &s... function run_bd_cmd (line 456) | fn run_bd_cmd(cwd: &PathBuf, log_dir: &PathBuf, args: I, label: &s... type BenchmarkConfig (line 514) | pub struct BenchmarkConfig { method default (line 524) | fn default() -> Self { type TimingStats (line 535) | pub struct TimingStats { method from_durations (line 547) | pub fn from_durations(durations: &[Duration]) -> Self { method filter_outliers (line 587) | pub fn filter_outliers(durations: &[Duration], threshold: f64) -> Vec<... function run_benchmark (line 608) | pub fn run_benchmark(config: &BenchmarkConfig, mut f: F) -> TimingStats type BenchmarkComparison (line 634) | pub struct BenchmarkComparison { method new (line 646) | pub fn new( method print (line 674) | pub fn print(&self) { type BenchmarkReport (line 707) | pub struct BenchmarkReport { method new (line 732) | pub fn new( method print_summary (line 779) | pub fn print_summary(&self) { method to_json (line 843) | pub fn to_json(&self) -> String { type BenchmarkConfigJson (line 716) | pub struct BenchmarkConfigJson { type BenchmarkSummary (line 723) | pub struct BenchmarkSummary { type MemoryStats (line 853) | pub struct MemoryStats { type MemoryComparison (line 858) | pub struct MemoryComparison { function parse_max_rss_kb (line 865) | fn parse_max_rss_kb(stderr: &str) -> Option { function time_binary_with_rss (line 874) | fn time_binary_with_rss>( function benchmark_memory_usage_1000 (line 901) | fn benchmark_memory_usage_1000() -> Option { function benchmark_memory_sync_flush_1000 (line 927) | fn benchmark_memory_sync_flush_1000() -> Option { function benchmark_memory_sync_import_1000 (line 953) | fn benchmark_memory_sync_import_1000() -> Option { function benchmark_init (line 995) | fn benchmark_init(config: &BenchmarkConfig) -> BenchmarkComparison { function benchmark_create_single (line 1022) | fn benchmark_create_single(config: &BenchmarkConfig) -> BenchmarkCompari... function benchmark_create_batch_100 (line 1052) | fn benchmark_create_batch_100(config: &BenchmarkConfig) -> BenchmarkComp... function populate_workspace (line 1093) | fn populate_workspace(workspace: &BenchmarkWorkspace, count: usize) { function generate_import_jsonl (line 1111) | fn generate_import_jsonl(count: usize) -> Vec { function benchmark_list_10 (line 1130) | fn benchmark_list_10(config: &BenchmarkConfig) -> BenchmarkComparison { function benchmark_list_100 (line 1149) | fn benchmark_list_100(config: &BenchmarkConfig) -> BenchmarkComparison { function benchmark_list_1000 (line 1168) | fn benchmark_list_1000(config: &BenchmarkConfig) -> BenchmarkComparison { function benchmark_list_filtered (line 1187) | fn benchmark_list_filtered(config: &BenchmarkConfig) -> BenchmarkCompari... function benchmark_search (line 1215) | fn benchmark_search(config: &BenchmarkConfig) -> BenchmarkComparison { function benchmark_ready (line 1234) | fn benchmark_ready(config: &BenchmarkConfig) -> BenchmarkComparison { function benchmark_sync_flush (line 1253) | fn benchmark_sync_flush(config: &BenchmarkConfig) -> BenchmarkComparison { function benchmark_sync_import (line 1277) | fn benchmark_sync_import(config: &BenchmarkConfig) -> BenchmarkComparison { function benchmark_stats (line 1322) | fn benchmark_stats(config: &BenchmarkConfig) -> BenchmarkComparison { function benchmark_comparison_full (line 1350) | fn benchmark_comparison_full() { function benchmark_comparison_quick (line 1443) | fn benchmark_comparison_quick() { function benchmark_infrastructure_works (line 1485) | fn benchmark_infrastructure_works() { function test_timing_stats_calculations (line 1518) | fn test_timing_stats_calculations() { function test_outlier_filtering (line 1566) | fn test_outlier_filtering() { function test_benchmark_comparison_calculations (line 1599) | fn test_benchmark_comparison_calculations() { FILE: tests/benchmark_datasets.rs function bd_available (line 36) | fn bd_available() -> bool { type CmdOutput (line 55) | pub struct CmdOutput { type DatasetBenchmarkWorkspace (line 65) | pub struct DatasetBenchmarkWorkspace { method from_dataset (line 75) | pub fn from_dataset(dataset: KnownDataset) -> std::io::Result { method empty (line 140) | pub fn empty() -> std::io::Result { method metadata (line 186) | pub fn metadata(&self) -> &DatasetMetadata { method run_br (line 191) | pub fn run_br(&self, args: I) -> CmdOutput method run_bd (line 200) | pub fn run_bd(&self, args: I) -> CmdOutput method time_br (line 209) | pub fn time_br(&self, args: I) -> Duration method time_bd (line 218) | pub fn time_bd(&self, args: I) -> Duration function copy_beads_dir (line 228) | fn copy_beads_dir(src: &Path, dst: &Path) -> std::io::Result<()> { function count_jsonl_lines (line 262) | fn count_jsonl_lines(path: &Path) -> usize { function run_cmd (line 268) | fn run_cmd(binary: &str, cwd: &Path, args: I) -> CmdOutput type TimingStats (line 310) | pub struct TimingStats { method from_durations (line 319) | pub fn from_durations(durations: &[Duration]) -> Self { type MemoryStats (line 356) | pub struct MemoryStats { function parse_max_rss_kb (line 360) | fn parse_max_rss_kb(stderr: &str) -> Option { function measure_rss (line 369) | fn measure_rss(binary: &str, cwd: &Path, args: &[&str]) -> MemoryStats { type WorkloadResult (line 402) | pub struct WorkloadResult { method new (line 412) | pub fn new( method print (line 435) | pub fn print(&self) { type DatasetBenchmarkResult (line 459) | pub struct DatasetBenchmarkResult { method print_table (line 468) | pub fn print_table(&self) { type BenchConfig (line 497) | pub struct BenchConfig { method default (line 503) | fn default() -> Self { function benchmark_list (line 515) | fn benchmark_list(workspace: &DatasetBenchmarkWorkspace, config: &BenchC... function benchmark_search (line 545) | fn benchmark_search(workspace: &DatasetBenchmarkWorkspace, config: &Benc... function benchmark_ready (line 574) | fn benchmark_ready(workspace: &DatasetBenchmarkWorkspace, config: &Bench... function benchmark_stats (line 603) | fn benchmark_stats(workspace: &DatasetBenchmarkWorkspace, config: &Bench... function benchmark_blocked (line 632) | fn benchmark_blocked( function benchmark_create (line 668) | fn benchmark_create(workspace: &DatasetBenchmarkWorkspace, config: &Benc... function benchmark_update (line 715) | fn benchmark_update(workspace: &DatasetBenchmarkWorkspace, config: &Benc... function benchmark_close_reopen (line 770) | fn benchmark_close_reopen( function benchmark_dataset (line 857) | fn benchmark_dataset( type DatasetBenchmarkReport (line 956) | pub struct DatasetBenchmarkReport { method new (line 963) | pub fn new(config: &BenchConfig, results: Vec)... method print_summary (line 971) | pub fn print_summary(&self) { method print_aggregate_summary (line 991) | fn print_aggregate_summary(&self) { method to_json (line 1051) | pub fn to_json(&self) -> String { function workload_duration_ms (line 1060) | fn workload_duration_ms(stats: &TimingStats) -> u128 { function workload_ratio (line 1068) | fn workload_ratio(br_stats: &TimingStats, bd_stats: &TimingStats) -> f64 { function workload_rss_ratio (line 1076) | fn workload_rss_ratio(br_rss_kb: Option, bd_rss_kb: Option) ->... function collect_comparisons (line 1083) | fn collect_comparisons( function run_regression_checks (line 1104) | fn run_regression_checks(results: &[DatasetBenchmarkResult]) { function benchmark_dataset_full (line 1176) | fn benchmark_dataset_full() { function benchmark_dataset_quick (line 1222) | fn benchmark_dataset_quick() { function benchmark_dataset_infrastructure_works (line 1256) | fn benchmark_dataset_infrastructure_works() { FILE: tests/common/artifact_validator.rs type ValidationResult (line 15) | pub struct ValidationResult { method ok (line 22) | pub const fn ok() -> Self { method with_error (line 30) | pub fn with_error(mut self, error: ValidationError) -> Self { method with_warning (line 36) | pub fn with_warning(mut self, warning: String) -> Self { method merge (line 41) | pub fn merge(mut self, other: Self) -> Self { type ValidationError (line 51) | pub struct ValidationError { method fmt (line 58) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type EventType (line 73) | pub enum EventType { type RunEvent (line 80) | pub struct RunEvent { type FileEntry (line 102) | pub struct FileEntry { type Summary (line 110) | pub struct Summary { type ArtifactValidator (line 119) | pub struct ArtifactValidator { method new (line 130) | pub const fn new() -> Self { method strict (line 135) | pub const fn strict(mut self, strict: bool) -> Self { method validate_events_file (line 141) | pub fn validate_events_file(&self, path: &Path) -> ValidationResult { method validate_events_content (line 157) | pub fn validate_events_content(&self, content: &str) -> ValidationResu... method validate_event (line 190) | fn validate_event(&self, event: &RunEvent, line_num: usize) -> Validat... method validate_snapshot_file (line 263) | pub fn validate_snapshot_file(&self, path: &Path) -> ValidationResult { method validate_snapshot_content (line 280) | pub fn validate_snapshot_content(&self, content: &str) -> ValidationRe... method validate_summary_file (line 337) | pub fn validate_summary_file(&self, path: &Path) -> ValidationResult { method validate_summary_content (line 354) | pub fn validate_summary_content(&self, content: &str) -> ValidationRes... method validate_artifact_dir (line 399) | pub fn validate_artifact_dir(&self, dir: &Path) -> ValidationResult { method default (line 124) | fn default() -> Self { function valid_event_passes (line 436) | fn valid_event_passes() { function invalid_timestamp_fails (line 444) | fn invalid_timestamp_fails() { function invalid_event_type_fails (line 458) | fn invalid_event_type_fails() { function path_traversal_fails (line 472) | fn path_traversal_fails() { function valid_snapshot_passes (line 486) | fn valid_snapshot_passes() { function valid_summary_passes (line 494) | fn valid_summary_passes() { function empty_suite_fails (line 502) | fn empty_suite_fails() { FILE: tests/common/assertions.rs function assert_issue_exists (line 7) | pub fn assert_issue_exists(storage: &SqliteStorage, id: &str) { function assert_status (line 15) | pub fn assert_status(storage: &SqliteStorage, id: &str, expected: &Statu... FILE: tests/common/baseline.rs type RegressionConfig (line 38) | pub struct RegressionConfig { method from_env (line 67) | pub fn from_env() -> Self { method ci (line 95) | pub fn ci() -> Self { method default (line 55) | fn default() -> Self { type OperationBaseline (line 111) | pub struct OperationBaseline { type DatasetBaseline (line 135) | pub struct DatasetBaseline { type BaselineStore (line 148) | pub struct BaselineStore { method load_or_default (line 171) | pub fn load_or_default(path: &Path) -> Self { method save (line 189) | pub fn save(&self, path: &Path) -> std::io::Result<()> { method get_baseline (line 200) | pub fn get_baseline(&self, dataset: &str, operation: &str) -> Option<&... method set_baseline (line 207) | pub fn set_baseline( method default (line 160) | fn default() -> Self { type RegressionResult (line 237) | pub struct RegressionResult { method no_baseline (line 293) | pub fn no_baseline( method check (line 315) | pub fn check( type RegressionStatus (line 275) | pub enum RegressionStatus { method fmt (line 282) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type RegressionSummary (line 421) | pub struct RegressionSummary { method from_results (line 467) | pub fn from_results(results: Vec, config: &Regressio... method print_table (line 506) | pub fn print_table(&self) { type RegressionConfigSummary (line 449) | pub struct RegressionConfigSummary { method from (line 456) | fn from(config: &RegressionConfig) -> Self { function update_baselines_from_results (line 570) | pub fn update_baselines_from_results( function should_update_baseline (line 596) | pub fn should_update_baseline() -> bool { function test_regression_config_defaults (line 605) | fn test_regression_config_defaults() { function test_regression_check_no_baseline (line 613) | fn test_regression_check_no_baseline() { function test_regression_check_improvement (line 621) | fn test_regression_check_improvement() { function test_regression_check_within_threshold (line 640) | fn test_regression_check_within_threshold() { function test_regression_check_exceeds_threshold (line 658) | fn test_regression_check_exceeds_threshold() { function test_baseline_store_roundtrip (line 676) | fn test_baseline_store_roundtrip() { function test_regression_summary (line 700) | fn test_regression_summary() { function test_regression_summary_strict_mode (line 741) | fn test_regression_summary_strict_mode() { FILE: tests/common/binary_discovery.rs constant MIN_BD_VERSION (line 13) | const MIN_BD_VERSION: &str = "0.5.0"; type BinaryVersion (line 17) | pub struct BinaryVersion { method to_json (line 29) | pub fn to_json(&self) -> serde_json::Value { type DiscoveredBinaries (line 42) | pub struct DiscoveredBinaries { method bd_available (line 49) | pub const fn bd_available(&self) -> bool { method require_bd (line 54) | pub fn require_bd(&self) -> Result<&BinaryVersion, String> { method to_json (line 64) | pub fn to_json(&self) -> serde_json::Value { function discover_br (line 74) | fn discover_br() -> Result { function discover_bd (line 106) | fn discover_bd() -> Option { function probe_binary (line 151) | fn probe_binary(name: &str, path: &Path) -> Result { function looks_like_br (line 210) | fn looks_like_br(output: &str) -> bool { function run_version_command (line 215) | fn run_version_command(binary: &Path, args: &[&str]) -> Option { type JsonVersion (line 232) | struct JsonVersion { function parse_json_version (line 239) | fn parse_json_version(output: &str) -> Result String { function which (line 267) | fn which(name: &str) -> Option { function discover_binaries (line 283) | pub fn discover_binaries() -> Result { function check_bd_version (line 291) | pub fn check_bd_version(version: &BinaryVersion) -> Result<(), String> { function compare_versions (line 310) | fn compare_versions(a: &str, b: &str) -> std::cmp::Ordering { function test_discover_br (line 328) | fn test_discover_br() { function test_discover_binaries (line 338) | fn test_discover_binaries() { function test_parse_plain_version (line 353) | fn test_parse_plain_version() { function test_compare_versions (line 361) | fn test_compare_versions() { function test_discovered_binaries_json (line 370) | fn test_discovered_binaries_json() { FILE: tests/common/cli.rs constant SMOKE_PRESERVED_ENV_KEYS (line 9) | const SMOKE_PRESERVED_ENV_KEYS: &[&str] = &[ function should_clear_inherited_br_env (line 18) | fn should_clear_inherited_br_env(key: &OsStr) -> bool { function should_preserve_smoke_env (line 28) | fn should_preserve_smoke_env(key: &OsStr) -> bool { function clear_inherited_br_env (line 33) | fn clear_inherited_br_env(cmd: &mut Command) { function clear_inherited_br_env_except (line 37) | fn clear_inherited_br_env_except(cmd: &mut Command, preserve: &[&str]) { type BrRun (line 48) | pub struct BrRun { type BrWorkspace (line 56) | pub struct BrWorkspace { method new (line 63) | pub fn new() -> Self { function run_br (line 76) | pub fn run_br(workspace: &BrWorkspace, args: I, label: &str) -> BrRun function run_br_with_env (line 90) | pub fn run_br_with_env( function run_br_with_stdin (line 106) | pub fn run_br_with_stdin(workspace: &BrWorkspace, args: I, input: ... function run_br_smoke_at_root_with_env (line 120) | pub fn run_br_smoke_at_root_with_env( function run_br_full (line 137) | fn run_br_full( function run_br_full_in_root (line 162) | fn run_br_full_in_root( function parse_created_id (line 231) | pub fn parse_created_id(stdout: &str) -> String { function extract_json_payload (line 242) | pub fn extract_json_payload(stdout: &str) -> String { function parse_json_value (line 253) | pub fn parse_json_value(stdout: &str) -> Value { function extract_issues_array (line 261) | pub fn extract_issues_array(stdout: &str) -> Vec { function parse_list_page (line 275) | pub fn parse_list_page(stdout: &str) -> Value { function parse_list_issues (line 288) | pub fn parse_list_issues(stdout: &str) -> Vec { function inherited_beads_and_toon_env_are_cleared (line 302) | fn inherited_beads_and_toon_env_are_cleared() { function unrelated_env_are_preserved (line 319) | fn unrelated_env_are_preserved() { function smoke_profile_preserves_selected_routing_and_output_env (line 329) | fn smoke_profile_preserves_selected_routing_and_output_env() { function smoke_profile_still_clears_unrelated_legacy_beads_env (line 346) | fn smoke_profile_still_clears_unrelated_legacy_beads_env() { FILE: tests/common/dataset_registry.rs type DatasetMetadata (line 19) | pub struct DatasetMetadata { method to_json (line 39) | pub fn to_json(&self) -> serde_json::Value { constant SOURCE_COMMIT_OVERRIDE_ENV (line 57) | const SOURCE_COMMIT_OVERRIDE_ENV: &str = "BR_DATASET_SOURCE_COMMIT"; constant SOURCE_COMMIT_OVERRIDE_ENVS (line 58) | const SOURCE_COMMIT_OVERRIDE_ENVS: &[&str] = &[ constant WORKSPACE_FAILURE_FIXTURE_DIR (line 71) | const WORKSPACE_FAILURE_FIXTURE_DIR: &str = "tests/fixtures/workspace_fa... type KnownDataset (line 75) | pub enum KnownDataset { method name (line 83) | pub const fn name(self) -> &'static str { method source_path (line 92) | pub fn source_path(self) -> PathBuf { method beads_dir (line 104) | pub fn beads_dir(self) -> PathBuf { method all (line 108) | pub const fn all() -> &'static [Self] { type DatasetRegistry (line 119) | pub struct DatasetRegistry { method new (line 258) | pub fn new() -> Self { method is_available (line 279) | pub fn is_available(&self, dataset: KnownDataset) -> bool { method metadata (line 284) | pub fn metadata(&self, dataset: KnownDataset) -> Option<&DatasetMetada... method available_datasets (line 289) | pub fn available_datasets(&self) -> Vec<&DatasetMetadata> { method scan_dataset (line 294) | fn scan_dataset(dataset: KnownDataset) -> std::io::Result Result... type WorkspaceFailureCommandOutcome (line 126) | pub enum WorkspaceFailureCommandOutcome { type WorkspaceFailureCommandExpectation (line 144) | pub struct WorkspaceFailureCommandExpectation { type WorkspaceFailureFixtureMetadata (line 150) | pub struct WorkspaceFailureFixtureMetadata { method outcome_for (line 161) | pub fn outcome_for(&self, surface: &str) -> Option std::io::Result { type IsolatedWorkspaceFailureFixture (line 176) | pub struct IsolatedWorkspaceFailureFixture { method workspace_root (line 203) | pub fn workspace_root(&self) -> &Path { function workspace_failure_fixture_root (line 208) | fn workspace_failure_fixture_root() -> PathBuf { function list_workspace_failure_fixtures (line 212) | pub fn list_workspace_failure_fixtures() -> std::io::Result Self { type IsolatedDataset (line 378) | pub struct IsolatedDataset { method from_dataset (line 392) | pub fn from_dataset(dataset: KnownDataset) -> std::io::Result { method empty (line 453) | pub fn empty() -> std::io::Result { method workspace_root (line 487) | pub fn workspace_root(&self) -> &Path { method log_dir (line 492) | pub fn log_dir(&self) -> PathBuf { method write_summary (line 499) | pub fn write_summary(&self) -> std::io::Result { function copy_dir_recursive (line 512) | fn copy_dir_recursive(src: &Path, dst: &Path) -> std::io::Result<()> { function copy_fixture_workspace_recursive (line 552) | fn copy_fixture_workspace_recursive(src: &Path, dst: &Path) -> std::io::... function copy_workspace_failure_fixture_root (line 571) | fn copy_workspace_failure_fixture_root(src: &Path, dst: &Path) -> std::i... function count_jsonl_lines (line 610) | fn count_jsonl_lines(path: &Path) -> std::io::Result { function count_dependencies (line 617) | fn count_dependencies(path: &Path) -> std::io::Result { function hash_beads_directory (line 635) | fn hash_beads_directory(beads_dir: &Path) -> std::io::Result { function normalize_source_commit (line 654) | fn normalize_source_commit(value: &str) -> Option { function source_commit_override_with (line 667) | fn source_commit_override_with(get_env: impl Fn(&str) -> Option)... function source_commit_override (line 673) | fn source_commit_override() -> Option { function current_repo_root (line 677) | fn current_repo_root() -> &'static Path { function compile_time_git_commit (line 681) | fn compile_time_git_commit(repo_path: &Path) -> Option { function get_git_commit (line 697) | fn get_git_commit(repo_path: &Path) -> Option { type DatasetOverride (line 720) | pub struct DatasetOverride { method new (line 731) | pub fn new(path: impl Into, reason: impl Into) -> Self { method with_name (line 740) | pub fn with_name(mut self, name: impl Into) -> Self { function isolated_from_override (line 750) | pub fn isolated_from_override( type IntegrityCheckResult (line 841) | pub struct IntegrityCheckResult { method assert_ok (line 854) | pub fn assert_ok(&self) { method to_json (line 859) | pub fn to_json(&self) -> serde_json::Value { type DatasetIntegrityGuard (line 884) | pub struct DatasetIntegrityGuard { method new (line 896) | pub fn new(dataset: KnownDataset) -> std::io::Result { method from_path (line 910) | pub fn from_path(path: impl Into, name: impl Into) ->... method verify_before (line 927) | pub fn verify_before(&mut self) -> IntegrityCheckResult { method verify_after (line 935) | pub fn verify_after(&mut self) -> IntegrityCheckResult { method verify_current (line 941) | fn verify_current(&self, phase: &str) -> IntegrityCheckResult { method original_hash (line 969) | pub fn original_hash(&self) -> &str { method dataset_name (line 974) | pub fn dataset_name(&self) -> &str { method fully_verified (line 979) | pub const fn fully_verified(&self) -> bool { method to_json (line 984) | pub fn to_json(&self) -> serde_json::Value { type DatasetProvenance (line 1003) | pub struct DatasetProvenance { method from_metadata (line 1017) | pub fn from_metadata(metadata: DatasetMetadata) -> Self { method from_isolated (line 1028) | pub fn from_isolated(isolated: &IsolatedDataset) -> Self { method with_integrity_before (line 1033) | pub fn with_integrity_before(mut self, result: IntegrityCheckResult) -... method with_integrity_after (line 1039) | pub fn with_integrity_after(mut self, result: IntegrityCheckResult) ->... method with_context (line 1045) | pub fn with_context(mut self, key: impl Into, value: impl Into... method to_json (line 1051) | pub fn to_json(&self) -> serde_json::Value { method write_to_file (line 1073) | pub fn write_to_file(&self, path: &Path) -> std::io::Result<()> { function run_with_integrity (line 1098) | pub fn run_with_integrity( function isolated_beads_rust_or_skip (line 1135) | fn isolated_beads_rust_or_skip(test_name: &str) -> Option bool { function test_source_integrity_check (line 1193) | fn test_source_integrity_check() { function test_integrity_guard_creation (line 1211) | fn test_integrity_guard_creation() { function test_integrity_guard_verify_before (line 1226) | fn test_integrity_guard_verify_before() { function test_integrity_guard_verify_after (line 1243) | fn test_integrity_guard_verify_after() { function test_integrity_guard_to_json (line 1266) | fn test_integrity_guard_to_json() { function test_integrity_check_result_to_json (line 1286) | fn test_integrity_check_result_to_json() { function test_dataset_override_creation (line 1305) | fn test_dataset_override_creation() { function test_dataset_override_with_name (line 1314) | fn test_dataset_override_with_name() { function test_isolated_from_override (line 1321) | fn test_isolated_from_override() { function test_isolated_from_override_missing_path (line 1348) | fn test_isolated_from_override_missing_path() { function test_workspace_failure_fixture_catalog_is_loadable (line 1356) | fn test_workspace_failure_fixture_catalog_is_loadable() { function test_isolated_workspace_failure_fixture_preserves_sidecars_and_recovery_debris (line 1393) | fn test_isolated_workspace_failure_fixture_preserves_sidecars_and_recove... function test_isolated_workspace_failure_fixture_preserves_custom_metadata_targets (line 1421) | fn test_isolated_workspace_failure_fixture_preserves_custom_metadata_tar... function test_provenance_from_metadata (line 1440) | fn test_provenance_from_metadata() { function test_provenance_with_context (line 1463) | fn test_provenance_with_context() { function test_provenance_to_json (line 1494) | fn test_provenance_to_json() { function test_run_with_integrity (line 1534) | fn test_run_with_integrity() { function test_metadata_includes_source_commit (line 1564) | fn test_metadata_includes_source_commit() { function test_metadata_to_json_includes_new_fields (line 1579) | fn test_metadata_to_json_includes_new_fields() { function test_empty_workspace_has_no_source_commit (line 1599) | fn test_empty_workspace_has_no_source_commit() { function test_get_git_commit_discovers_parent_repo_from_subdir (line 1609) | fn test_get_git_commit_discovers_parent_repo_from_subdir() { function test_source_commit_override_trims_and_ignores_empty_values (line 1626) | fn test_source_commit_override_trims_and_ignores_empty_values() { function test_source_commit_override_uses_rch_fallback_envs (line 1639) | fn test_source_commit_override_uses_rch_fallback_envs() { function test_source_commit_override_prefers_explicit_dataset_env (line 1650) | fn test_source_commit_override_prefers_explicit_dataset_env() { function test_normalize_source_commit_trims_empty_and_shortens_full_sha (line 1662) | fn test_normalize_source_commit_trims_empty_and_shortens_full_sha() { FILE: tests/common/fixtures.rs function base_time (line 8) | fn base_time() -> chrono::DateTime { function issue (line 13) | pub fn issue(title: &str) -> Issue { function hash_title (line 58) | fn hash_title(title: &str) -> String { type IssueBuilder (line 65) | pub struct IssueBuilder { method new (line 70) | pub fn new(title: &str) -> Self { method with_type (line 76) | pub fn with_type(mut self, t: IssueType) -> Self { method with_status (line 81) | pub fn with_status(mut self, s: Status) -> Self { method with_priority (line 91) | pub fn with_priority(mut self, p: Priority) -> Self { method with_assignee (line 96) | pub fn with_assignee(mut self, assignee: &str) -> Self { method with_description (line 101) | pub fn with_description(mut self, description: &str) -> Self { method with_id (line 106) | pub fn with_id(mut self, id: &str) -> Self { method with_template (line 112) | pub fn with_template(mut self) -> Self { method build (line 117) | pub fn build(self) -> Issue { function dependency (line 122) | pub fn dependency(from: &str, to: &str) -> Dependency { FILE: tests/common/harness.rs function br_binary_path (line 22) | fn br_binary_path() -> PathBuf { function should_clear_inherited_br_env (line 26) | fn should_clear_inherited_br_env(key: &OsStr) -> bool { function clear_inherited_br_env (line 36) | fn clear_inherited_br_env(cmd: &mut Command) { function bd_binary_path (line 46) | fn bd_binary_path() -> String { function artifact_mutex (line 51) | fn artifact_mutex() -> &'static Mutex<()> { type CommandResult (line 59) | pub struct CommandResult { method assert_success (line 75) | pub fn assert_success(&self) { method assert_failure (line 83) | pub fn assert_failure(&self) { method stdout_contains (line 91) | pub fn stdout_contains(&self, needle: &str) -> bool { method stderr_contains (line 95) | pub fn stderr_contains(&self, needle: &str) -> bool { method json (line 100) | pub fn json serde::Deserialize<'de>>(&self) -> Result Self { type ParallelismMode (line 166) | pub enum ParallelismMode { type ResourceGuardrails (line 176) | pub struct ResourceGuardrails { method default (line 192) | fn default() -> Self { type RunnerPolicy (line 220) | pub struct RunnerPolicy { method ci (line 270) | pub fn ci() -> Self { method local (line 284) | pub fn local() -> Self { method benchmark (line 298) | pub fn benchmark() -> Self { method with_command_timeout (line 316) | pub const fn with_command_timeout(mut self, timeout: Duration) -> Self { method with_scenario_timeout (line 322) | pub const fn with_scenario_timeout(mut self, timeout: Duration) -> Self { method with_parallelism (line 328) | pub const fn with_parallelism(mut self, mode: ParallelismMode, workers... method with_fail_fast (line 335) | pub const fn with_fail_fast(mut self, fail_fast: bool) -> Self { method with_retry (line 341) | pub const fn with_retry(mut self, count: u32) -> Self { method to_json (line 347) | pub fn to_json(&self) -> serde_json::Value { method default (line 240) | fn default() -> Self { function parse_env_usize (line 369) | fn parse_env_usize(name: &str, default: usize) -> usize { function parse_env_u32 (line 377) | fn parse_env_u32(name: &str, default: u32) -> u32 { function parse_env_u64 (line 385) | fn parse_env_u64(name: &str, default: u64) -> u64 { function truncate_output (line 393) | fn truncate_output(output: &str, max_bytes: usize) -> (String, bool) { type ArtifactLogger (line 414) | pub struct ArtifactLogger { method new (line 424) | pub fn new(suite: &str, test: &str) -> Self { method with_config (line 446) | pub fn with_config(mut self, config: ArtifactConfig) -> Self { method log_command (line 454) | pub fn log_command( method log_snapshot (line 505) | pub fn log_snapshot(&self, label: &str, workspace_root: &Path) { method append_event (line 537) | fn append_event(&self, event: &RunEvent) { method write_summary (line 552) | pub fn write_summary(&self, passed: bool) { method write_summary_with_policy (line 557) | pub fn write_summary_with_policy(&self, passed: bool, policy: Option<&... function collect_file_tree (line 598) | fn collect_file_tree(root: &Path) -> Vec { type TestWorkspace (line 627) | pub struct TestWorkspace { method new (line 637) | pub fn new(suite: &str, test: &str) -> Self { method init_git (line 653) | pub fn init_git(&mut self) -> &mut Self { method init_br (line 679) | pub fn init_br(&mut self) -> CommandResult { method run_br (line 684) | pub fn run_br(&mut self, args: I, label: &str) -> CommandResult method run_br_env (line 693) | pub fn run_br_env(&mut self, args: I, env_vars: E, labe... method run_br_stdin (line 705) | pub fn run_br_stdin(&mut self, args: I, input: &str, label: &str... method run_br_env_stdin (line 714) | pub fn run_br_env_stdin( method run_bd (line 733) | pub fn run_bd(&mut self, args: I, label: &str) -> CommandResult method run_binary (line 742) | fn run_binary(&mut self, binary: &str, args: I, label: &str) -> ... method run_binary_env (line 756) | fn run_binary_env( method run_binary_stdin (line 773) | fn run_binary_stdin( method run_binary_full (line 793) | fn run_binary_full( method run_system_binary (line 872) | fn run_system_binary(&mut self, binary: &str, args: I, label: &s... method snapshot (line 932) | pub fn snapshot(&self, label: &str) { method finish (line 937) | pub fn finish(self, passed: bool) { method write_summary (line 942) | pub fn write_summary(&self, passed: bool) { method read_file (line 947) | pub fn read_file(&self, rel_path: &str) -> Option { method write_file (line 952) | pub fn write_file(&self, rel_path: &str, content: &str) { method file_exists (line 961) | pub fn file_exists(&self, rel_path: &str) -> bool { method list_dir (line 966) | pub fn list_dir(&self, rel_path: &str) -> Vec { type ConformanceWorkspace (line 978) | pub struct ConformanceWorkspace { method new (line 987) | pub fn new(suite: &str, test: &str) -> Self { method init_both (line 1009) | pub fn init_both(&mut self) -> (CommandResult, CommandResult) { method run_br (line 1016) | pub fn run_br(&mut self, args: I, label: &str) -> CommandResult method run_bd (line 1031) | pub fn run_bd(&mut self, args: I, label: &str) -> CommandResult method run_br_env (line 1045) | pub fn run_br_env(&mut self, args: I, env_vars: E, labe... method run_br_stdin (line 1064) | pub fn run_br_stdin(&mut self, args: I, input: &str, label: &str... method run_br_env_stdin (line 1080) | pub fn run_br_env_stdin( method run_bd_env (line 1106) | pub fn run_bd_env(&mut self, args: I, env_vars: E, labe... method run_bd_stdin (line 1126) | pub fn run_bd_stdin(&mut self, args: I, input: &str, label: &str... method run_bd_env_stdin (line 1143) | pub fn run_bd_env_stdin( method run_in_workspace (line 1168) | fn run_in_workspace( method run_in_workspace_env (line 1236) | fn run_in_workspace_env( method run_in_workspace_system (line 1314) | fn run_in_workspace_system( method run_in_workspace_system_env (line 1378) | fn run_in_workspace_system_env( method finish (line 1464) | pub fn finish(self, passed: bool) { function extract_json_payload (line 1470) | pub fn extract_json_payload(stdout: &str) -> String { function parse_created_id (line 1487) | pub fn parse_created_id(stdout: &str) -> String { function test_workspace_basic (line 1504) | fn test_workspace_basic() { function test_extract_json_payload (line 1513) | fn test_extract_json_payload() { function test_parse_created_id (line 1520) | fn test_parse_created_id() { function test_runner_policy_default (line 1531) | fn test_runner_policy_default() { function test_runner_policy_ci (line 1548) | fn test_runner_policy_ci() { function test_runner_policy_local (line 1561) | fn test_runner_policy_local() { function test_runner_policy_benchmark (line 1575) | fn test_runner_policy_benchmark() { function test_runner_policy_builder (line 1591) | fn test_runner_policy_builder() { function test_runner_policy_to_json (line 1608) | fn test_runner_policy_to_json() { function test_resource_guardrails_default (line 1619) | fn test_resource_guardrails_default() { function test_truncate_output (line 1631) | fn test_truncate_output() { function test_parallelism_mode_default (line 1646) | fn test_parallelism_mode_default() { function test_collect_file_tree_deterministic_order (line 1652) | fn test_collect_file_tree_deterministic_order() { function test_artifact_logger_writes_and_cleans (line 1680) | fn test_artifact_logger_writes_and_cleans() { function test_artifact_logger_snapshot_writes_event (line 1749) | fn test_artifact_logger_snapshot_writes_event() { function test_run_br_env_uses_override (line 1780) | fn test_run_br_env_uses_override() { FILE: tests/common/json_baseline.rs constant FIXTURE_DIR (line 28) | const FIXTURE_DIR: &str = "tests/fixtures/json_baseline"; function baseline_path (line 31) | pub fn baseline_path(name: &str) -> PathBuf { function load_baseline (line 43) | pub fn load_baseline(name: &str) -> Value { function load_baseline_raw (line 58) | pub fn load_baseline_raw(name: &str) -> String { function baseline_exists (line 65) | pub fn baseline_exists(name: &str) -> bool { function list_baselines (line 70) | pub fn list_baselines() -> Vec { function compare_json_output (line 93) | pub fn compare_json_output(name: &str, actual: &Value) -> Option { function test_baseline_path (line 113) | fn test_baseline_path() { function test_list_baselines (line 120) | fn test_list_baselines() { function test_baseline_exists (line 129) | fn test_baseline_exists() { FILE: tests/common/mod.rs function workspace_replay_test_guard (line 47) | pub fn workspace_replay_test_guard() -> std::sync::MutexGuard<'static, (... function init_test_logging (line 54) | pub fn init_test_logging() { type TestLogGuard (line 60) | pub struct TestLogGuard { method new (line 66) | fn new(name: &str) -> Self { method drop (line 77) | fn drop(&mut self) { function test_log (line 86) | pub fn test_log(name: &str) -> TestLogGuard { function test_db (line 90) | pub fn test_db() -> SqliteStorage { function test_db_with_dir (line 95) | pub fn test_db_with_dir() -> (SqliteStorage, TempDir) { FILE: tests/common/report_indexer.rs type CommandMetric (line 27) | pub struct CommandMetric { type SnapshotMetric (line 42) | pub struct SnapshotMetric { type TestReport (line 51) | pub struct TestReport { method failed_commands (line 65) | pub fn failed_commands(&self) -> Vec<&CommandMetric> { method slowest_command (line 69) | pub fn slowest_command(&self) -> Option<&CommandMetric> { type SuiteReport (line 76) | pub struct SuiteReport { method from_tests (line 85) | pub fn from_tests(name: String, tests: Vec) -> Self { method pass_rate (line 99) | pub fn pass_rate(&self) -> f64 { method failed_tests (line 106) | pub fn failed_tests(&self) -> Vec<&TestReport> { type FullReport (line 113) | pub struct FullReport { method pass_rate (line 124) | pub fn pass_rate(&self) -> f64 { method failed_tests (line 131) | pub fn failed_tests(&self) -> Vec<&TestReport> { method slowest_tests (line 135) | pub fn slowest_tests(&self, limit: usize) -> Vec<&TestReport> { method tests_by_suite (line 141) | pub fn tests_by_suite(&self, suite_name: &str) -> Option<&SuiteReport> { type RunEvent (line 152) | struct RunEvent { type FileEntry (line 174) | struct FileEntry { type Summary (line 182) | struct Summary { type IndexerConfig (line 197) | pub struct IndexerConfig { method default (line 211) | fn default() -> Self { type ArtifactIndexer (line 223) | pub struct ArtifactIndexer { method new (line 228) | pub fn new(artifact_root: impl Into) -> Self { method with_config (line 237) | pub const fn with_config(config: IndexerConfig) -> Self { method generate_report (line 242) | pub fn generate_report(&self) -> Result { method index_test_dir (line 312) | fn index_test_dir(&self, test_dir: &Path) -> Result Deserialize<'de>>(&self, path: &Path) -> Resu... method read_events (line 413) | fn read_events(&self, path: &Path) -> Result, IndexerErr... method parse_snapshot (line 435) | fn parse_snapshot(&self, path: &Path) -> (usize, u64) { type IndexerError (line 453) | pub enum IndexerError { method fmt (line 460) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function generate_markdown_report (line 482) | pub fn generate_markdown_report(report: &FullReport) -> String { function generate_html_report (line 597) | pub fn generate_html_report(report: &FullReport) -> String { function html_escape (line 833) | fn html_escape(s: &str) -> String { function write_reports (line 841) | pub fn write_reports( function create_test_artifacts (line 865) | fn create_test_artifacts(dir: &Path) -> std::io::Result<()> { function test_indexer_parses_artifacts (line 883) | fn test_indexer_parses_artifacts() { function test_markdown_report_generation (line 900) | fn test_markdown_report_generation() { function test_html_report_generation (line 915) | fn test_html_report_generation() { function test_failures_only_filter (line 930) | fn test_failures_only_filter() { function test_artifact_dir_not_found (line 948) | fn test_artifact_dir_not_found() { FILE: tests/common/scenarios.rs type ExecutionMode (line 32) | pub enum ExecutionMode { type CompareMode (line 43) | pub enum CompareMode { type NormalizationRules (line 64) | pub struct NormalizationRules { method conformance_default (line 87) | pub fn conformance_default() -> Self { method strict (line 129) | pub fn strict() -> Self { method cross_platform (line 138) | pub fn cross_platform() -> Self { method apply (line 163) | pub fn apply(&self, value: &mut Value) -> Vec { method normalize_value (line 169) | fn normalize_value(&self, value: &mut Value, path: &str, log: &mut Vec... type Invariants (line 265) | pub struct Invariants { method success (line 287) | pub fn success() -> Self { method failure (line 294) | pub fn failure() -> Self { method with_no_git_ops (line 301) | pub const fn with_no_git_ops(mut self) -> Self { method with_path_confinement (line 306) | pub const fn with_path_confinement(mut self) -> Self { type ScenarioSetup (line 314) | pub enum ScenarioSetup { type ScenarioCommand (line 326) | pub struct ScenarioCommand { method new (line 338) | pub fn new(args: I) -> Self method with_env (line 353) | pub fn with_env(mut self, env: I) -> Self method with_stdin (line 363) | pub fn with_stdin(mut self, input: impl Into) -> Self { method with_label (line 368) | pub fn with_label(mut self, label: impl Into) -> Self { type ExpectedCommandOutcome (line 376) | pub enum ExpectedCommandOutcome { type WorkspaceEvolutionCommand (line 388) | pub struct WorkspaceEvolutionCommand { method new (line 395) | pub fn new(command: ScenarioCommand) -> Self { method expect_failure (line 403) | pub const fn expect_failure(mut self) -> Self { method allow_either (line 408) | pub const fn allow_either(mut self) -> Self { method capture_issue_id_as (line 413) | pub fn capture_issue_id_as(mut self, alias: impl Into) -> Self { type WorkspaceEvolutionStep (line 421) | pub enum WorkspaceEvolutionStep { method command (line 436) | pub fn command(command: WorkspaceEvolutionCommand) -> Self { method snapshot (line 440) | pub fn snapshot(label: impl Into) -> Self { method append_to_issues_jsonl (line 446) | pub fn append_to_issues_jsonl(label: impl Into, text: impl Int... method restore_snapshot (line 453) | pub fn restore_snapshot(label: impl Into, snapshot_label: impl... method label (line 460) | pub fn label(&self) -> &str { type WorkspaceEvolutionPlan (line 472) | pub struct WorkspaceEvolutionPlan { method new (line 481) | pub fn new(name: impl Into, seed: u64) -> Self { method with_description (line 491) | pub fn with_description(mut self, description: impl Into) -> S... method with_setup (line 496) | pub fn with_setup(mut self, setup: ScenarioSetup) -> Self { method with_steps (line 501) | pub fn with_steps(mut self, steps: I) -> Self method push_step (line 509) | pub fn push_step(mut self, step: WorkspaceEvolutionStep) -> Self { method execute (line 514) | pub fn execute(&self) -> std::io::Result Option<&WorkspaceEvolutionEvent> { method dataset_override (line 569) | pub fn dataset_override(&self, reason: impl Into) -> DatasetOv... method materialize_into (line 573) | pub fn materialize_into(&self, target_root: impl AsRef) -> std::... type ScenarioResult (line 582) | pub struct ScenarioResult { type ComparisonResult (line 595) | pub struct ComparisonResult { type BenchmarkMetrics (line 604) | pub struct BenchmarkMetrics { type BenchmarkConfig (line 633) | pub struct BenchmarkConfig { method quick (line 666) | pub fn quick() -> Self { method thorough (line 675) | pub fn thorough() -> Self { method with_iterations (line 685) | pub const fn with_iterations(mut self, warmup: u32, measured: u32) -> ... method with_bd (line 692) | pub const fn with_bd(mut self, include: bool) -> Self { method default (line 651) | fn default() -> Self { type BenchmarkSummary (line 700) | pub struct BenchmarkSummary { type RunStatistics (line 727) | pub struct RunStatistics { function measure_peak_rss (line 752) | pub fn measure_peak_rss(pid: u32) -> Option { function measure_peak_rss (line 773) | pub fn measure_peak_rss(_pid: u32) -> Option { function measure_io_sizes (line 778) | pub fn measure_io_sizes(workspace_root: &std::path::Path) -> (Option]... type BenchmarkRunner (line 880) | pub struct BenchmarkRunner { method new (line 887) | pub fn new(config: BenchmarkConfig) -> Self { method default_runner (line 899) | pub fn default_runner() -> Self { method quick (line 904) | pub fn quick() -> Self { method thorough (line 909) | pub fn thorough() -> Self { method run_benchmark (line 914) | pub fn run_benchmark(&self, scenario: &Scenario) -> BenchmarkSummary { method resolve_include_bd (line 956) | fn resolve_include_bd(&self, notes: &mut Vec) -> bool { method run_benchmark_iteration_with_bd (line 982) | fn run_benchmark_iteration_with_bd( method run_benchmark_iteration_br_only (line 1067) | fn run_benchmark_iteration_br_only( method build_benchmark_summary (line 1123) | fn build_benchmark_summary( method run_and_save (line 1188) | pub fn run_and_save(&self, scenario: &Scenario) -> std::io::Result, test_command: ScenarioCommand) -> ... method with_description (line 1260) | pub fn with_description(mut self, desc: impl Into) -> Self { method with_tags (line 1266) | pub fn with_tags(mut self, tags: I) -> Self method with_setup (line 1276) | pub fn with_setup(mut self, setup: ScenarioSetup) -> Self { method with_setup_commands (line 1282) | pub fn with_setup_commands(mut self, commands: Vec) -... method with_invariants (line 1288) | pub fn with_invariants(mut self, invariants: Invariants) -> Self { method with_compare_mode (line 1294) | pub fn with_compare_mode(mut self, mode: CompareMode) -> Self { method with_normalization (line 1300) | pub fn with_normalization(mut self, rules: NormalizationRules) -> Self { method with_modes (line 1306) | pub fn with_modes(mut self, modes: Vec) -> Self { method supports_mode (line 1312) | pub fn supports_mode(&self, mode: ExecutionMode) -> bool { method has_tag (line 1317) | pub fn has_tag(&self, tag: &str) -> bool { method has_any_tag (line 1322) | pub fn has_any_tag(&self, tags: &[String]) -> bool { method has_all_tags (line 1327) | pub fn has_all_tags(&self, tags: &[String]) -> bool { type ScenarioFilter (line 1348) | pub struct ScenarioFilter { method new (line 1370) | pub fn new() -> Self { method from_env (line 1380) | pub fn from_env() -> Self { method with_include_tags (line 1417) | pub fn with_include_tags(mut self, tags: I) -> Self method with_exclude_tags (line 1427) | pub fn with_exclude_tags(mut self, tags: I) -> Self method with_match_mode (line 1437) | pub const fn with_match_mode(mut self, mode: TagMatchMode) -> Self { method matches (line 1443) | pub fn matches(&self, scenario: &Scenario) -> bool { method filter (line 1464) | pub fn filter<'a>(&self, scenarios: &'a [Scenario]) -> Vec<&'a Scenari... method is_empty (line 1469) | pub fn is_empty(&self) -> bool { method description (line 1474) | pub fn description(&self) -> String { method to_json (line 1501) | pub fn to_json(&self) -> serde_json::Value { type TagMatchMode (line 1360) | pub enum TagMatchMode { type ScenarioRunner (line 1512) | pub struct ScenarioRunner { method new (line 1519) | pub fn new(mode: ExecutionMode) -> Self { method with_artifacts (line 1527) | pub const fn with_artifacts(mut self, enabled: bool) -> Self { method with_filter (line 1533) | pub fn with_filter(mut self, filter: ScenarioFilter) -> Self { method filter (line 1539) | pub const fn filter(&self) -> &ScenarioFilter { method should_run (line 1544) | pub fn should_run(&self, scenario: &Scenario) -> bool { method run_filtered (line 1550) | pub fn run_filtered(&self, scenarios: &[Scenario]) -> Vec<(String, Sce... method run (line 1570) | pub fn run(&self, scenario: &Scenario) -> ScenarioResult { method run_e2e (line 1594) | fn run_e2e(&self, scenario: &Scenario) -> ScenarioResult { method run_conformance (line 1680) | fn run_conformance(&self, scenario: &Scenario) -> ScenarioResult { method run_benchmark (line 1803) | fn run_benchmark(&self, scenario: &Scenario) -> ScenarioResult { function check_invariants (line 1863) | fn check_invariants(invariants: &Invariants, result: &CommandResult) -> ... function compare_outputs (line 1933) | fn compare_outputs( function extract_json_payload (line 2184) | fn extract_json_payload(stdout: &str) -> String { type FileFingerprint (line 2201) | struct FileFingerprint { function snapshot_workspace (line 2207) | fn snapshot_workspace(root: &Path) -> HashMap { function detect_path_confinement_violations (line 2237) | fn detect_path_confinement_violations( function collect_setup_commands (line 2272) | fn collect_setup_commands(scenario: &Scenario) -> Vec { function run_scenario_command (line 2281) | fn run_scenario_command( function execute_workspace_evolution_plan (line 2301) | fn execute_workspace_evolution_plan( function prepare_workspace_evolution (line 2328) | fn prepare_workspace_evolution( function run_workspace_evolution_setup_commands (line 2349) | fn run_workspace_evolution_setup_commands( function execute_workspace_evolution_step (line 2367) | fn execute_workspace_evolution_step( function workspace_evolution_event (line 2416) | fn workspace_evolution_event( function materialize_workspace_evolution (line 2430) | fn materialize_workspace_evolution( function execute_workspace_evolution_command (line 2452) | fn execute_workspace_evolution_command( function resolve_workspace_evolution_command (line 2489) | fn resolve_workspace_evolution_command( function apply_aliases (line 2515) | fn apply_aliases(value: &str, aliases: &HashMap) -> Stri... function command_matches_expectation (line 2529) | fn command_matches_expectation(expected: ExpectedCommandOutcome, result:... function extract_issue_id_from_output (line 2537) | fn extract_issue_id_from_output(output: &str) -> Option { function append_text_to_issues_jsonl (line 2555) | fn append_text_to_issues_jsonl(beads_dir: &Path, text: &str) -> std::io:... function copy_workspace_state (line 2578) | fn copy_workspace_state(src_root: &Path, dst_root: &Path) -> std::io::Re... function remap_workspace_evolution_logs (line 2584) | fn remap_workspace_evolution_logs( type BinaryTarget (line 2599) | enum BinaryTarget { function run_conformance_command (line 2604) | fn run_conformance_command( function populate_workspace_with_dataset (line 2634) | fn populate_workspace_with_dataset( function populate_conformance_with_dataset (line 2644) | fn populate_conformance_with_dataset( function copy_dir_contents (line 2668) | fn copy_dir_contents(src: impl AsRef, dst: impl AsRef) -> st... function sort_arrays_recursively (line 2693) | fn sort_arrays_recursively(value: &mut Value) { function remove_field_path (line 2714) | fn remove_field_path(value: &mut Value, path: &str) { function remove_field_segments (line 2719) | fn remove_field_segments(value: &mut Value, segments: &[&str]) { function structure_only (line 2740) | fn structure_only(value: &Value) -> Value { function check_timestamp_tolerance (line 2754) | fn check_timestamp_tolerance( function check_timestamp_tolerance_inner (line 2768) | fn check_timestamp_tolerance_inner( function parse_timestamp (line 2827) | fn parse_timestamp(value: &str) -> Result, chrono:... function crud_lifecycle (line 2840) | pub fn crud_lifecycle() -> Scenario { function empty_list (line 2855) | pub fn empty_list() -> Scenario { function stats_basic (line 2863) | pub fn stats_basic() -> Scenario { function sync_safety (line 2875) | pub fn sync_safety() -> Scenario { function seeded_title (line 2891) | fn seeded_title(seed: u64, role: &str) -> String { function seeded_reason (line 2895) | fn seeded_reason(seed: u64, action: &str) -> String { function command_step (line 2899) | fn command_step(args: impl IntoIterator, label: &str) -> ... function captured_create_step (line 2905) | fn captured_create_step( function stale_read_step (line 2925) | fn stale_read_step(command: &str, label: &str) -> WorkspaceEvolutionStep { function sync_flush_step (line 2937) | fn sync_flush_step(label: &str) -> WorkspaceEvolutionStep { function close_step (line 2948) | fn close_step( function reopen_step (line 2968) | fn reopen_step( function long_lived_dependency_story (line 2987) | pub fn long_lived_dependency_story(seed: u64) -> WorkspaceEvolutionPlan { function long_lived_recovery_story (line 3028) | pub fn long_lived_recovery_story(seed: u64) -> WorkspaceEvolutionPlan { function long_lived_mixed_order_stress (line 3090) | pub fn long_lived_mixed_order_stress(seed: u64, iterations: usize) -> Wo... function long_lived_seed_suite (line 3228) | pub fn long_lived_seed_suite(seed: u64) -> Vec { function should_clear_materialized_env (line 3251) | fn should_clear_materialized_env(key: &OsStr) -> bool { function run_materialized_br (line 3261) | fn run_materialized_br(root: &Path, args: &[&str], label: &str) -> Comma... function test_normalization_rules_apply (line 3294) | fn test_normalization_rules_apply() { function test_scenario_builder (line 3312) | fn test_scenario_builder() { function test_compare_mode_default (line 3324) | fn test_compare_mode_default() { function test_extract_json_payload (line 3330) | fn test_extract_json_payload() { function compare_mode_array_unordered_matches (line 3337) | fn compare_mode_array_unordered_matches() { function compare_mode_fields_excluded_matches (line 3363) | fn compare_mode_fields_excluded_matches() { function compare_mode_structure_only_matches (line 3389) | fn compare_mode_structure_only_matches() { function test_scenario_filter_empty_matches_all (line 3419) | fn test_scenario_filter_empty_matches_all() { function test_scenario_filter_include_any (line 3429) | fn test_scenario_filter_include_any() { function test_scenario_filter_include_all (line 3447) | fn test_scenario_filter_include_all() { function test_scenario_filter_exclude (line 3461) | fn test_scenario_filter_exclude() { function test_scenario_filter_exclude_precedence (line 3475) | fn test_scenario_filter_exclude_precedence() { function test_scenario_filter_description (line 3490) | fn test_scenario_filter_description() { function test_scenario_filter_to_json (line 3504) | fn test_scenario_filter_to_json() { function test_scenario_filter_filter_list (line 3518) | fn test_scenario_filter_filter_list() { function test_tag_match_mode_default (line 3534) | fn test_tag_match_mode_default() { function test_scenario_has_any_tag (line 3540) | fn test_scenario_has_any_tag() { function test_scenario_has_all_tags (line 3549) | fn test_scenario_has_all_tags() { function test_path_separator_normalization (line 3562) | fn test_path_separator_normalization() { function test_path_normalization_no_backslashes (line 3584) | fn test_path_normalization_no_backslashes() { function test_line_ending_normalization (line 3601) | fn test_line_ending_normalization() { function test_line_ending_normalization_nested (line 3619) | fn test_line_ending_normalization_nested() { function test_cross_platform_constructor (line 3637) | fn test_cross_platform_constructor() { function test_conformance_default_includes_cross_platform (line 3653) | fn test_conformance_default_includes_cross_platform() { function test_path_field_with_line_endings (line 3666) | fn test_path_field_with_line_endings() { function test_strict_no_cross_platform (line 3680) | fn test_strict_no_cross_platform() { function test_array_sorting_normalization (line 3696) | fn test_array_sorting_normalization() { function test_array_sorting_nested (line 3715) | fn test_array_sorting_nested() { function test_array_sorting_disabled (line 3736) | fn test_array_sorting_disabled() { function test_field_removal (line 3754) | fn test_field_removal() { function test_field_removal_nested (line 3777) | fn test_field_removal_nested() { function test_timestamp_masking (line 3798) | fn test_timestamp_masking() { function test_timestamp_masking_empty_value (line 3818) | fn test_timestamp_masking_empty_value() { function test_id_normalization (line 3837) | fn test_id_normalization() { function test_id_normalization_preserves_prefix (line 3855) | fn test_id_normalization_preserves_prefix() { function test_id_normalization_no_dash (line 3868) | fn test_id_normalization_no_dash() { function test_id_normalization_disabled (line 3881) | fn test_id_normalization_disabled() { function test_timestamp_tolerance_within_range (line 3899) | fn test_timestamp_tolerance_within_range() { function test_timestamp_tolerance_exceeded (line 3920) | fn test_timestamp_tolerance_exceeded() { function test_timestamp_tolerance_nested (line 3942) | fn test_timestamp_tolerance_nested() { function compare_mode_exact_json_matches (line 3972) | fn compare_mode_exact_json_matches() { function compare_mode_exact_json_fails_on_difference (line 4000) | fn compare_mode_exact_json_fails_on_difference() { function compare_mode_normalized_json_ignores_timestamps (line 4029) | fn compare_mode_normalized_json_ignores_timestamps() { function compare_mode_contains_fields_matches_specified (line 4059) | fn compare_mode_contains_fields_matches_specified() { function compare_mode_contains_fields_fails_on_mismatch (line 4088) | fn compare_mode_contains_fields_fails_on_mismatch() { function compare_mode_exit_code_only_matches (line 4117) | fn compare_mode_exit_code_only_matches() { function compare_mode_exit_code_only_fails_on_different_exit (line 4146) | fn compare_mode_exit_code_only_fails_on_different_exit() { function test_scenario_supports_mode (line 4179) | fn test_scenario_supports_mode() { function test_scenario_default_modes (line 4189) | fn test_scenario_default_modes() { function test_scenario_command_builder (line 4199) | fn test_scenario_command_builder() { function test_scenario_command_default_label (line 4212) | fn test_scenario_command_default_label() { function test_invariants_success (line 4220) | fn test_invariants_success() { function test_invariants_failure (line 4229) | fn test_invariants_failure() { function test_invariants_with_constraints (line 4237) | fn test_invariants_with_constraints() { function test_extract_json_payload_with_preamble (line 4247) | fn test_extract_json_payload_with_preamble() { function test_extract_json_payload_array (line 4256) | fn test_extract_json_payload_array() { function test_extract_json_payload_no_json (line 4264) | fn test_extract_json_payload_no_json() { function compare_mode_handles_parse_errors (line 4275) | fn compare_mode_handles_parse_errors() { function test_structure_only_ignores_values (line 4304) | fn test_structure_only_ignores_values() { function test_remove_field_path_nested (line 4318) | fn test_remove_field_path_nested() { function workspace_evolution_seed_suite_is_deterministic (line 4333) | fn workspace_evolution_seed_suite_is_deterministic() { function workspace_evolution_dependency_story_materializes_replayable_workspace (line 4343) | fn workspace_evolution_dependency_story_materializes_replayable_workspac... function workspace_evolution_recovery_story_restores_clean_replay_input (line 4384) | fn workspace_evolution_recovery_story_restores_clean_replay_input() { FILE: tests/conformance.rs function get_bd_binary (line 28) | fn get_bd_binary() -> String { function bd_available (line 35) | pub fn bd_available() -> bool { type CmdOutput (line 74) | pub struct CmdOutput { type ConformanceWorkspace (line 82) | pub struct ConformanceWorkspace { method new (line 90) | pub fn new() -> Self { method init_both (line 110) | pub fn init_both(&self) -> (CmdOutput, CmdOutput) { method run_br (line 117) | pub fn run_br(&self, args: I, label: &str) -> CmdOutput method run_br_in_bd_env (line 126) | pub fn run_br_in_bd_env(&self, args: I, label: &str) -> CmdOutput method run_bd (line 140) | pub fn run_bd(&self, args: I, label: &str) -> CmdOutput function run_br_cmd (line 149) | fn run_br_cmd(cwd: &PathBuf, log_dir: &PathBuf, args: I, label: &s... function run_bd_cmd (line 165) | fn run_bd_cmd(cwd: &PathBuf, log_dir: &PathBuf, args: I, label: &s... function run_cmd_system (line 174) | fn run_cmd_system( function run_and_log (line 242) | fn run_and_log(mut cmd: Command, cwd: &PathBuf, log_dir: &PathBuf, label... type CompareMode (line 294) | pub enum CompareMode { type LogConfig (line 312) | struct LogConfig { method from_env (line 320) | fn from_env() -> Self { type RunLogEntry (line 331) | struct RunLogEntry { type SummaryStats (line 350) | struct SummaryStats { type SummaryReport (line 357) | struct SummaryReport { type ComparisonStats (line 367) | struct ComparisonStats { function log_mutex (line 377) | fn log_mutex() -> &'static Mutex<()> { function env_flag (line 381) | fn env_flag(name: &str) -> bool { function sha256_hex (line 391) | fn sha256_hex(input: &str) -> String { function conformance_content_hash_matches_go_bd_fixture (line 398) | fn conformance_content_hash_matches_go_bd_fixture() { function collect_dir_listing (line 425) | fn collect_dir_listing(path: &PathBuf) -> Vec { function append_run_entry (line 445) | fn append_run_entry(log_dir: &PathBuf, entry: &RunLogEntry) { function read_run_entries (line 456) | fn read_run_entries(log_dir: &PathBuf) -> Vec { function update_summary (line 467) | fn update_summary(log_dir: &PathBuf, entries: &[RunLogEntry]) { function xml_escape (line 522) | fn xml_escape(input: &str) -> String { function write_junit (line 531) | fn write_junit(log_dir: &PathBuf, entries: &[RunLogEntry]) { function write_failure_context (line 564) | fn write_failure_context( function record_run (line 594) | fn record_run(log_dir: &PathBuf, entry: RunLogEntry, stdout: &str, stder... type BenchmarkConfig (line 621) | pub struct BenchmarkConfig { method default (line 631) | fn default() -> Self { type TimingStats (line 642) | pub struct TimingStats { method from_durations (line 654) | pub fn from_durations(durations: &[Duration]) -> Self { method filter_outliers (line 694) | pub fn filter_outliers(durations: &[Duration], threshold: f64) -> Vec<... function run_benchmark (line 715) | pub fn run_benchmark(config: &BenchmarkConfig, mut f: F) -> TimingStats function normalize_json (line 736) | pub fn normalize_json(json_str: &str) -> Result { function normalize_value (line 742) | fn normalize_value(value: &mut Value) { function normalize_path_fields (line 790) | fn normalize_path_fields(value: &mut Value, workspace_root: &Path) { function workspace_root_string (line 795) | fn workspace_root_string(root: &Path) -> String { function normalize_path_fields_inner (line 802) | fn normalize_path_fields_inner(value: &mut Value, root: &str) { function normalize_path_value (line 824) | fn normalize_path_value(value: &str, root: &str) -> String { function is_path_key (line 833) | fn is_path_key(key: &str) -> bool { function compare_json (line 841) | pub fn compare_json(br_output: &str, bd_output: &str, mode: &CompareMode... function log_timings (line 942) | fn log_timings(test_name: &str, br: &CmdOutput, bd: &CmdOutput) { function extract_field (line 951) | fn extract_field<'a>(json: &'a Value, field: &str) -> Option<&'a Value> { function json_equal_unordered (line 972) | fn json_equal_unordered(a: &Value, b: &Value) -> bool { function filter_fields (line 1010) | fn filter_fields(json: &Value, excluded: &[String]) -> Value { function structure_matches (line 1026) | fn structure_matches(a: &Value, b: &Value) -> bool { function diff_json (line 1068) | pub fn diff_json(br: &Value, bd: &Value) -> String { function collect_diffs (line 1096) | fn collect_diffs(br: &Value, bd: &Value, path: &str, diffs: &mut Vec<(St... function format_path (line 1153) | fn format_path(base: &str, key: &str) -> String { function format_value_short (line 1161) | fn format_value_short(val: &Value) -> String { type TestScenario (line 1185) | pub struct TestScenario { method new (line 1203) | pub fn new(name: &str, test_command: Vec<&str>) -> Self { method with_description (line 1215) | pub fn with_description(mut self, desc: &str) -> Self { method with_setup (line 1221) | pub fn with_setup(mut self, commands: Vec>) -> Self { method with_compare_mode (line 1230) | pub fn with_compare_mode(mut self, mode: CompareMode) -> Self { method execute (line 1237) | pub fn execute(&self, workspace: &ConformanceWorkspace) -> Result<(), ... function empty_list (line 1282) | pub fn empty_list() -> TestScenario { function create_basic (line 1287) | pub fn create_basic() -> TestScenario { function create_with_type_and_priority (line 1298) | pub fn create_with_type_and_priority() -> TestScenario { function stats_after_create (line 1316) | pub fn stats_after_create() -> TestScenario { function conformance_init (line 1329) | fn conformance_init() { function conformance_create_basic (line 1354) | fn conformance_create_basic() { function conformance_create_with_type_and_priority (line 1396) | fn conformance_create_with_type_and_priority() { function conformance_list_empty (line 1463) | fn conformance_list_empty() { function conformance_list_with_issues (line 1510) | fn conformance_list_with_issues() { function conformance_ready_empty (line 1561) | fn conformance_ready_empty() { function conformance_ready_with_issues (line 1602) | fn conformance_ready_with_issues() { function conformance_ready_with_deps (line 1648) | fn conformance_ready_with_deps() { function conformance_ready_limit (line 1751) | fn conformance_ready_limit() { function conformance_ready_filter_type (line 1795) | fn conformance_ready_filter_type() { function conformance_ready_filter_assignee (line 1868) | fn conformance_ready_filter_assignee() { function conformance_ready_priority_order (line 1941) | fn conformance_ready_priority_order() { function conformance_ready_json_shape (line 2042) | fn conformance_ready_json_shape() { function conformance_blocked_empty (line 2076) | fn conformance_blocked_empty() { function conformance_blocked_with_deps (line 2114) | fn conformance_blocked_with_deps() { function conformance_blocked_shows_blockers (line 2209) | fn conformance_blocked_shows_blockers() { function conformance_blocked_multiple_blockers (line 2304) | fn conformance_blocked_multiple_blockers() { function conformance_blocked_chain (line 2430) | fn conformance_blocked_chain() { function conformance_blocked_json_shape (line 2543) | fn conformance_blocked_json_shape() { function conformance_stats (line 2632) | fn conformance_stats() { function conformance_sync_flush_only (line 2683) | fn conformance_sync_flush_only() { function conformance_dependency_blocking (line 2738) | fn conformance_dependency_blocking() { function conformance_close_issue (line 2843) | fn conformance_close_issue() { function conformance_update_issue (line 2935) | fn conformance_update_issue() { function conformance_reopen_basic (line 3011) | fn conformance_reopen_basic() { function conformance_list_by_type (line 3088) | fn conformance_list_by_type() { function conformance_show_basic (line 3147) | fn conformance_show_basic() { function conformance_search_basic (line 3235) | fn conformance_search_basic() { function conformance_label_basic (line 3288) | fn conformance_label_basic() { function conformance_dep_list (line 3364) | fn conformance_dep_list() { function conformance_count_basic (line 3456) | fn conformance_count_basic() { function conformance_delete_issue (line 3532) | fn conformance_delete_issue() { function conformance_delete_creates_tombstone (line 3602) | fn conformance_delete_creates_tombstone() { function conformance_delete_already_deleted_error (line 3682) | fn conformance_delete_already_deleted_error() { function conformance_delete_with_dependents (line 3732) | fn conformance_delete_with_dependents() { function conformance_dep_remove (line 3777) | fn conformance_dep_remove() { function conformance_sync_import (line 3894) | fn conformance_sync_import() { function conformance_sync_roundtrip (line 3965) | fn conformance_sync_roundtrip() { function conformance_sync_flush_empty_db (line 4107) | fn conformance_sync_flush_empty_db() { function conformance_sync_flush_single_issue (line 4153) | fn conformance_sync_flush_single_issue() { function conformance_sync_flush_many_issues (line 4200) | fn conformance_sync_flush_many_issues() { function conformance_sync_flush_with_dependencies (line 4248) | fn conformance_sync_flush_with_dependencies() { function conformance_sync_flush_with_labels (line 4304) | fn conformance_sync_flush_with_labels() { function conformance_sync_flush_jsonl_line_format (line 4354) | fn conformance_sync_flush_jsonl_line_format() { function conformance_sync_flush_with_comments (line 4432) | fn conformance_sync_flush_with_comments() { function conformance_sync_import_empty_jsonl (line 4475) | fn conformance_sync_import_empty_jsonl() { function conformance_sync_import_single_issue (line 4526) | fn conformance_sync_import_single_issue() { function conformance_sync_import_many_issues (line 4579) | fn conformance_sync_import_many_issues() { function conformance_sync_import_updates_existing (line 4643) | fn conformance_sync_import_updates_existing() { function conformance_sync_roundtrip_preserves_all_fields (line 4698) | fn conformance_sync_roundtrip_preserves_all_fields() { function conformance_sync_roundtrip_unicode (line 4776) | fn conformance_sync_roundtrip_unicode() { function conformance_sync_roundtrip_special_chars (line 4830) | fn conformance_sync_roundtrip_special_chars() { function conformance_sync_status_clean (line 4874) | fn conformance_sync_status_clean() { function conformance_sync_status_json_output (line 4902) | fn conformance_sync_status_json_output() { function conformance_sync_large_description (line 4934) | fn conformance_sync_large_description() { function conformance_sync_tombstones (line 4990) | fn conformance_sync_tombstones() { function conformance_init_reinit (line 5030) | fn conformance_init_reinit() { function conformance_init_existing_db (line 5067) | fn conformance_init_existing_db() { function conformance_init_creates_beads_dir (line 5102) | fn conformance_init_creates_beads_dir() { function conformance_init_json_output (line 5139) | fn conformance_init_json_output() { function conformance_init_config (line 5182) | fn conformance_init_config() { function conformance_init_metadata (line 5229) | fn conformance_init_metadata() { function conformance_create_all_types (line 5263) | fn conformance_create_all_types() { function conformance_create_all_priorities (line 5320) | fn conformance_create_all_priorities() { function conformance_create_with_assignee (line 5377) | fn conformance_create_with_assignee() { function conformance_create_with_description (line 5428) | fn conformance_create_with_description() { function conformance_create_unicode_title (line 5480) | fn conformance_create_unicode_title() { function conformance_create_special_chars (line 5537) | fn conformance_create_special_chars() { function conformance_create_very_long_title (line 5594) | fn conformance_create_very_long_title() { function conformance_create_empty_title_error (line 5643) | fn conformance_create_empty_title_error() { function conformance_create_with_external_ref (line 5670) | fn conformance_create_with_external_ref() { function conformance_create_invalid_priority_error (line 5733) | fn conformance_create_invalid_priority_error() { function conformance_list_filter_status_closed (line 5769) | fn conformance_list_filter_status_closed() { function conformance_list_filter_assignee (line 5835) | fn conformance_list_filter_assignee() { function conformance_list_limit (line 5904) | fn conformance_list_limit() { function conformance_list_filter_status_open (line 5956) | fn conformance_list_filter_status_open() { function conformance_list_filter_status_in_progress (line 6025) | fn conformance_list_filter_status_in_progress() { function conformance_list_filter_priority_range (line 6098) | fn conformance_list_filter_priority_range() { function conformance_list_filter_label (line 6170) | fn conformance_list_filter_label() { function conformance_list_filter_multiple (line 6239) | fn conformance_list_filter_multiple() { function conformance_list_sort_priority (line 6335) | fn conformance_list_sort_priority() { function conformance_list_sort_created (line 6398) | fn conformance_list_sort_created() { function conformance_list_json_structure (line 6460) | fn conformance_list_json_structure() { function conformance_show_partial_id (line 6508) | fn conformance_show_partial_id() { function conformance_show_nonexistent_error (line 6576) | fn conformance_show_nonexistent_error() { function conformance_show_full_details (line 6598) | fn conformance_show_full_details() { function conformance_show_with_dependencies (line 6728) | fn conformance_show_with_dependencies() { function conformance_show_with_comments (line 6821) | fn conformance_show_with_comments() { function conformance_show_deleted_issue (line 6902) | fn conformance_show_deleted_issue() { function conformance_update_title (line 6982) | fn conformance_update_title() { function conformance_update_assignee (line 7055) | fn conformance_update_assignee() { function conformance_update_status (line 7128) | fn conformance_update_status() { function conformance_update_multiple_fields (line 7205) | fn conformance_update_multiple_fields() { function conformance_update_clear_assignee (line 7306) | fn conformance_update_clear_assignee() { function conformance_update_preserves_other_fields (line 7391) | fn conformance_update_preserves_other_fields() { function conformance_update_nonexistent_error (line 7481) | fn conformance_update_nonexistent_error() { function conformance_close_with_reason (line 7509) | fn conformance_close_with_reason() { function extract_issue_id (line 7583) | fn extract_issue_id(json_str: &str) -> String { function extract_id_from_json (line 7592) | fn extract_id_from_json(output: &str) -> String { function assert_command_success (line 7597) | fn assert_command_success(output: &CmdOutput, label: &str) { function issue_value_from_show_output (line 7606) | fn issue_value_from_show_output(output: &CmdOutput, label: &str) -> Value { function assert_json_output_mentions (line 7617) | fn assert_json_output_mentions(output: &CmdOutput, expected: &str, label... function extract_checks_len (line 7626) | fn extract_checks_len(json_str: &str) -> usize { function conformance_dep_add_basic (line 7642) | fn conformance_dep_add_basic() { function conformance_dep_add_all_types (line 7709) | fn conformance_dep_add_all_types() { function conformance_dep_add_duplicate (line 7789) | fn conformance_dep_add_duplicate() { function conformance_dep_add_self_reference_error (line 7841) | fn conformance_dep_add_self_reference_error() { function conformance_dep_add_cycle_detection (line 7874) | fn conformance_dep_add_cycle_detection() { function conformance_dep_add_transitive_cycle (line 7919) | fn conformance_dep_add_transitive_cycle() { function conformance_dep_add_nonexistent_source_error (line 7973) | fn conformance_dep_add_nonexistent_source_error() { function conformance_dep_add_nonexistent_target_error (line 8012) | fn conformance_dep_add_nonexistent_target_error() { function conformance_dep_remove_basic_expanded (line 8055) | fn conformance_dep_remove_basic_expanded() { function conformance_dep_remove_nonexistent (line 8114) | fn conformance_dep_remove_nonexistent() { function conformance_dep_remove_unblocks_issue (line 8164) | fn conformance_dep_remove_unblocks_issue() { function conformance_dep_remove_preserves_other_deps (line 8252) | fn conformance_dep_remove_preserves_other_deps() { function conformance_dep_list_basic_expanded (line 8340) | fn conformance_dep_list_basic_expanded() { function conformance_dep_list_empty (line 8386) | fn conformance_dep_list_empty() { function conformance_dep_list_by_type (line 8428) | fn conformance_dep_list_by_type() { function conformance_dep_list_json_structure (line 8500) | fn conformance_dep_list_json_structure() { function conformance_dep_tree_basic (line 8559) | fn conformance_dep_tree_basic() { function conformance_dep_tree_deep (line 8612) | fn conformance_dep_tree_deep() { function conformance_dep_tree_empty (line 8663) | fn conformance_dep_tree_empty() { function conformance_dep_tree_json (line 8689) | fn conformance_dep_tree_json() { function conformance_dep_cycles_none (line 8746) | fn conformance_dep_cycles_none() { function conformance_dep_cycles_simple (line 8800) | fn conformance_dep_cycles_simple() { function conformance_dep_cycles_complex (line 8873) | fn conformance_dep_cycles_complex() { function conformance_dep_cycles_json (line 8957) | fn conformance_dep_cycles_json() { function conformance_stats_empty (line 9004) | fn conformance_stats_empty() { function conformance_stats_mixed (line 9042) | fn conformance_stats_mixed() { function conformance_stats_with_deps (line 9094) | fn conformance_stats_with_deps() { function conformance_stats_json_shape (line 9140) | fn conformance_stats_json_shape() { function conformance_count_by_status (line 9182) | fn conformance_count_by_status() { function conformance_count_by_type (line 9232) | fn conformance_count_by_type() { function conformance_count_by_priority (line 9275) | fn conformance_count_by_priority() { function conformance_count_by_assignee (line 9318) | fn conformance_count_by_assignee() { function conformance_count_json_shape (line 9373) | fn conformance_count_json_shape() { function conformance_count_empty (line 9400) | fn conformance_count_empty() { function conformance_stale_default (line 9435) | fn conformance_stale_default() { function conformance_stale_custom_days (line 9473) | fn conformance_stale_custom_days() { function conformance_stale_empty (line 9509) | fn conformance_stale_empty() { function conformance_stale_excludes_closed (line 9542) | fn conformance_stale_excludes_closed() { function conformance_stale_json_shape (line 9604) | fn conformance_stale_json_shape() { function conformance_doctor_healthy (line 9634) | fn conformance_doctor_healthy() { function conformance_doctor_json_shape (line 9673) | fn conformance_doctor_json_shape() { function conformance_doctor_with_issues (line 9724) | fn conformance_doctor_with_issues() { function conformance_info_json_parity (line 9775) | fn conformance_info_json_parity() { function conformance_where_json_parity (line 9834) | fn conformance_where_json_parity() { function conformance_version_text (line 9884) | fn conformance_version_text() { function conformance_version_json (line 9922) | fn conformance_version_json() { function conformance_version_fields (line 9959) | fn conformance_version_fields() { function conformance_config_list (line 9996) | fn conformance_config_list() { function conformance_config_get (line 10036) | fn conformance_config_get() { function conformance_config_set (line 10082) | fn conformance_config_set() { function conformance_config_get_after_set (line 10110) | fn conformance_config_get_after_set() { function conformance_config_json_shape (line 10156) | fn conformance_config_json_shape() { function conformance_config_defaults (line 10185) | fn conformance_config_defaults() { function conformance_config_invalid_key (line 10230) | fn conformance_config_invalid_key() { function conformance_close_already_closed (line 10269) | fn conformance_close_already_closed() { function conformance_close_sets_closed_at (line 10302) | fn conformance_close_sets_closed_at() { function conformance_close_blocked_issue (line 10349) | fn conformance_close_blocked_issue() { function conformance_close_updates_dependents (line 10386) | fn conformance_close_updates_dependents() { function conformance_close_preserves_fields (line 10430) | fn conformance_close_preserves_fields() { function conformance_reopen_clears_closed_at (line 10520) | fn conformance_reopen_clears_closed_at() { function conformance_reopen_preserves_fields (line 10569) | fn conformance_reopen_preserves_fields() { function conformance_reopen_never_closed_error (line 10650) | fn conformance_reopen_never_closed_error() { function conformance_reopen_tombstone_error (line 10680) | fn conformance_reopen_tombstone_error() { function conformance_epic_status_empty (line 10717) | fn conformance_epic_status_empty() { function conformance_epic_status_with_epic (line 10751) | fn conformance_epic_status_with_epic() { function conformance_epic_status_with_children (line 10805) | fn conformance_epic_status_with_children() { function conformance_epic_close_eligible_open_children (line 10882) | fn conformance_epic_close_eligible_open_children() { function conformance_epic_close_eligible_all_closed (line 10976) | fn conformance_epic_close_eligible_all_closed() { function conformance_epic_status_eligible_only (line 11068) | fn conformance_epic_status_eligible_only() { function conformance_epic_status_json_shape (line 11161) | fn conformance_epic_status_json_shape() { function conformance_epic_nested (line 11207) | fn conformance_epic_nested() { function conformance_graph_no_deps (line 11288) | fn conformance_graph_no_deps() { function conformance_graph_simple_dep (line 11319) | fn conformance_graph_simple_dep() { function conformance_graph_complex_deps (line 11363) | fn conformance_graph_complex_deps() { function conformance_graph_all_flag (line 11428) | fn conformance_graph_all_flag() { function conformance_graph_compact_flag (line 11467) | fn conformance_graph_compact_flag() { function conformance_graph_json_shape (line 11515) | fn conformance_graph_json_shape() { function conformance_audit_record_llm_call (line 11568) | fn conformance_audit_record_llm_call() { function conformance_audit_record_tool_call (line 11631) | fn conformance_audit_record_tool_call() { function conformance_audit_record_with_issue (line 11690) | fn conformance_audit_record_with_issue() { function conformance_audit_label (line 11770) | fn conformance_audit_label() { function conformance_audit_record_with_error (line 11877) | fn conformance_audit_record_with_error() { function extract_audit_entry_id (line 11940) | fn extract_audit_entry_id(output: &str) -> String { function conformance_q_basic (line 11955) | fn conformance_q_basic() { function conformance_q_with_priority (line 11982) | fn conformance_q_with_priority() { function conformance_q_with_type (line 12008) | fn conformance_q_with_type() { function conformance_q_creates_issue (line 12034) | fn conformance_q_creates_issue() { function conformance_q_id_in_list (line 12067) | fn conformance_q_id_in_list() { function conformance_q_error_no_title (line 12124) | fn conformance_q_error_no_title() { function conformance_lint_empty (line 12146) | fn conformance_lint_empty() { function conformance_lint_with_issues (line 12173) | fn conformance_lint_with_issues() { function conformance_lint_by_type (line 12203) | fn conformance_lint_by_type() { function conformance_lint_json_shape (line 12234) | fn conformance_lint_json_shape() { function conformance_lint_exit_code (line 12261) | fn conformance_lint_exit_code() { function conformance_defer_basic (line 12293) | fn conformance_defer_basic() { function conformance_defer_excludes_from_ready (line 12327) | fn conformance_defer_excludes_from_ready() { function conformance_undefer_basic (line 12369) | fn conformance_undefer_basic() { function conformance_undefer_restores_ready (line 12405) | fn conformance_undefer_restores_ready() { function conformance_history_list_empty (line 12440) | fn conformance_history_list_empty() { function conformance_history_list_after_sync (line 12461) | fn conformance_history_list_after_sync() { function conformance_history_json_shape (line 12486) | fn conformance_history_json_shape() { function conformance_orphans_empty (line 12524) | fn conformance_orphans_empty() { function conformance_orphans_with_issues (line 12550) | fn conformance_orphans_with_issues() { function conformance_orphans_json_shape (line 12579) | fn conformance_orphans_json_shape() { function conformance_changelog_empty (line 12607) | fn conformance_changelog_empty() { function conformance_changelog_with_closed (line 12628) | fn conformance_changelog_with_closed() { function conformance_changelog_json_shape (line 12654) | fn conformance_changelog_json_shape() { function conformance_query_list_empty (line 12678) | fn conformance_query_list_empty() { function conformance_query_save_and_list (line 12699) | fn conformance_query_save_and_list() { function conformance_query_run (line 12736) | fn conformance_query_run() { function conformance_query_delete (line 12766) | fn conformance_query_delete() { function conformance_completions_bash (line 12797) | fn conformance_completions_bash() { function conformance_completions_zsh (line 12834) | fn conformance_completions_zsh() { function conformance_completions_fish (line 12861) | fn conformance_completions_fish() { function conformance_stats_all_fields (line 12888) | fn conformance_stats_all_fields() { function conformance_stale_all_stale (line 12924) | fn conformance_stale_all_stale() { function conformance_version_semver (line 12951) | fn conformance_version_semver() { function init_git_repo (line 12996) | fn init_git_repo(dir: &PathBuf) { function conformance_sync_base_snapshot_created_after_sync (line 13018) | fn conformance_sync_base_snapshot_created_after_sync() { function conformance_sync_base_snapshot_content_matches (line 13104) | fn conformance_sync_base_snapshot_content_matches() { function conformance_sync_base_snapshot_preserves_issue_state (line 13195) | fn conformance_sync_base_snapshot_preserves_issue_state() { function conformance_sync_import_rejects_conflict_markers (line 13245) | fn conformance_sync_import_rejects_conflict_markers() { function conformance_sync_import_rejects_partial_conflict_markers (line 13317) | fn conformance_sync_import_rejects_partial_conflict_markers() { function conformance_sync_import_rejects_conflict_in_middle (line 13365) | fn conformance_sync_import_rejects_conflict_in_middle() { function conformance_sync_import_prefix_mismatch_behavior (line 13435) | fn conformance_sync_import_prefix_mismatch_behavior() { function conformance_sync_import_same_prefix_succeeds (line 13498) | fn conformance_sync_import_same_prefix_succeeds() { function conformance_sync_status_shows_prefix_info (line 13567) | fn conformance_sync_status_shows_prefix_info() { FILE: tests/conformance_edge_cases.rs function conformance_title_very_long (line 44) | fn conformance_title_very_long() { function conformance_title_empty (line 88) | fn conformance_title_empty() { function conformance_sql_injection_title (line 115) | fn conformance_sql_injection_title() { function conformance_sql_injection_desc (line 168) | fn conformance_sql_injection_desc() { function conformance_priority_boundary_0 (line 217) | fn conformance_priority_boundary_0() { function conformance_priority_boundary_4 (line 264) | fn conformance_priority_boundary_4() { function conformance_priority_invalid_5 (line 311) | fn conformance_priority_invalid_5() { function conformance_priority_invalid_neg (line 355) | fn conformance_priority_invalid_neg() { function conformance_id_format_validation (line 393) | fn conformance_id_format_validation() { function conformance_unicode_handling (line 439) | fn conformance_unicode_handling() { function conformance_rapid_creates_50 (line 493) | fn conformance_rapid_creates_50() { function conformance_rapid_updates_100 (line 559) | fn conformance_rapid_updates_100() { function conformance_large_dep_graph_100 (line 621) | fn conformance_large_dep_graph_100() { function conformance_deep_deps_10_levels (line 720) | fn conformance_deep_deps_10_levels() { function conformance_many_labels_20 (line 793) | fn conformance_many_labels_20() { function conformance_many_comments_20 (line 887) | fn conformance_many_comments_20() { function conformance_concurrent_reads (line 968) | fn conformance_concurrent_reads() { function conformance_workspace_max_issues (line 1005) | fn conformance_workspace_max_issues() { function conformance_missing_beads_dir (line 1080) | fn conformance_missing_beads_dir() { function conformance_invalid_jsonl_import (line 1107) | fn conformance_invalid_jsonl_import() { function conformance_utf8_bom_handling (line 1152) | fn conformance_utf8_bom_handling() { function conformance_schema_version (line 1196) | fn conformance_schema_version() { function conformance_double_init (line 1231) | fn conformance_double_init() { function conformance_sync_after_delete (line 1265) | fn conformance_sync_after_delete() { function conformance_encoding_utf8 (line 1317) | fn conformance_encoding_utf8() { function conformance_line_endings (line 1351) | fn conformance_line_endings() { function conformance_path_separators_in_content (line 1405) | fn conformance_path_separators_in_content() { function conformance_null_bytes (line 1435) | fn conformance_null_bytes() { FILE: tests/conformance_labels_comments.rs function bd_available (line 24) | fn bd_available() -> bool { type CmdOutput (line 43) | pub struct CmdOutput { type ConformanceWorkspace (line 51) | pub struct ConformanceWorkspace { method new (line 59) | pub fn new() -> Self { method init_both (line 79) | pub fn init_both(&self) -> (CmdOutput, CmdOutput) { method run_br (line 86) | pub fn run_br(&self, args: I, label: &str) -> CmdOutput method run_bd (line 95) | pub fn run_bd(&self, args: I, label: &str) -> CmdOutput type LogConfig (line 105) | struct LogConfig { method from_env (line 113) | fn from_env() -> Self { type RunLogEntry (line 124) | struct RunLogEntry { type SummaryStats (line 139) | struct SummaryStats { type SummaryReport (line 146) | struct SummaryReport { type ComparisonStats (line 156) | struct ComparisonStats { function log_mutex (line 166) | fn log_mutex() -> &'static Mutex<()> { function env_flag (line 170) | fn env_flag(name: &str) -> bool { function collect_dir_listing (line 180) | fn collect_dir_listing(path: &PathBuf) -> Vec { function append_run_entry (line 200) | fn append_run_entry(log_dir: &PathBuf, entry: &RunLogEntry) { function read_run_entries (line 211) | fn read_run_entries(log_dir: &PathBuf) -> Vec { function update_summary (line 222) | fn update_summary(log_dir: &PathBuf, entries: &[RunLogEntry]) { function xml_escape (line 277) | fn xml_escape(input: &str) -> String { function write_junit (line 286) | fn write_junit(log_dir: &PathBuf, entries: &[RunLogEntry]) { function write_failure_context (line 319) | fn write_failure_context( function record_run (line 349) | fn record_run(log_dir: &PathBuf, entry: RunLogEntry, stdout: &str, stder... function run_br_cmd (line 370) | fn run_br_cmd(cwd: &PathBuf, log_dir: &PathBuf, args: I, label: &s... function run_bd_cmd (line 386) | fn run_bd_cmd(cwd: &PathBuf, log_dir: &PathBuf, args: I, label: &s... function run_cmd_system (line 394) | fn run_cmd_system( function run_and_log (line 458) | fn run_and_log(mut cmd: Command, cwd: &PathBuf, log_dir: &PathBuf, label... function extract_issue_id (line 506) | fn extract_issue_id(json_str: &str) -> String { function extract_id_from_json (line 515) | fn extract_id_from_json(output: &str) -> String { function conformance_label_add_single (line 525) | fn conformance_label_add_single() { function conformance_label_add_multiple (line 586) | fn conformance_label_add_multiple() { function conformance_label_remove (line 639) | fn conformance_label_remove() { function conformance_label_list (line 702) | fn conformance_label_list() { function conformance_label_list_all (line 753) | fn conformance_label_list_all() { function conformance_label_special_chars (line 815) | fn conformance_label_special_chars() { function conformance_label_unicode (line 860) | fn conformance_label_unicode() { function conformance_label_duplicate (line 914) | fn conformance_label_duplicate() { function conformance_label_remove_nonexistent (line 953) | fn conformance_label_remove_nonexistent() { function conformance_label_json_shape (line 994) | fn conformance_label_json_shape() { function conformance_label_filter_issues (line 1041) | fn conformance_label_filter_issues() { function conformance_label_case_sensitivity (line 1101) | fn conformance_label_case_sensitivity() { function conformance_comments_add (line 1154) | fn conformance_comments_add() { function conformance_comments_list (line 1212) | fn conformance_comments_list() { function conformance_comments_empty (line 1264) | fn conformance_comments_empty() { function conformance_comments_multiple (line 1315) | fn conformance_comments_multiple() { function conformance_comments_markdown (line 1360) | fn conformance_comments_markdown() { function conformance_comments_unicode (line 1410) | fn conformance_comments_unicode() { function conformance_comments_json_shape (line 1459) | fn conformance_comments_json_shape() { function conformance_comments_issue_not_found (line 1512) | fn conformance_comments_issue_not_found() { function conformance_comments_ordering (line 1546) | fn conformance_comments_ordering() { function conformance_comments_author (line 1603) | fn conformance_comments_author() { function conformance_comments_timestamps (line 1680) | fn conformance_comments_timestamps() { FILE: tests/conformance_schema.rs type CmdOutput (line 25) | pub struct CmdOutput { type SchemaWorkspace (line 33) | pub struct SchemaWorkspace { method new (line 40) | pub fn new() -> Self { method init_both (line 57) | pub fn init_both(&self) { method run_br (line 66) | pub fn run_br(&self, args: &[&str]) -> CmdOutput { method run_bd (line 71) | pub fn run_bd(&self, args: &[&str]) -> CmdOutput { method br_db_path (line 76) | pub fn br_db_path(&self) -> PathBuf { method bd_db_path (line 81) | pub fn bd_db_path(&self) -> PathBuf { method br_metadata_path (line 86) | pub fn br_metadata_path(&self) -> PathBuf { method bd_metadata_path (line 91) | pub fn bd_metadata_path(&self) -> PathBuf { method br_jsonl_path (line 96) | pub fn br_jsonl_path(&self) -> PathBuf { method bd_jsonl_path (line 101) | pub fn bd_jsonl_path(&self) -> PathBuf { method run_sqlite_pragma (line 106) | pub fn run_sqlite_pragma(&self, db_path: &PathBuf, pragma: &str) -> St... function binaries_available (line 116) | fn binaries_available() -> bool { function run_binary (line 139) | fn run_binary(binary: &str, cwd: &PathBuf, args: &[&str]) -> CmdOutput { type ColumnInfo (line 168) | pub struct ColumnInfo { method from_pragma_line (line 180) | pub fn from_pragma_line(line: &str) -> Option { type IndexInfo (line 202) | pub struct IndexInfo { type SchemaComparison (line 210) | pub struct SchemaComparison { method is_compatible (line 237) | pub fn is_compatible(&self) -> bool { method summary (line 243) | pub fn summary(&self) -> String { type ColumnDiff (line 219) | pub struct ColumnDiff { type IndexDiff (line 228) | pub struct IndexDiff { function get_table_list (line 272) | fn get_table_list(workspace: &SchemaWorkspace, db_path: &PathBuf) -> Vec... function get_table_columns (line 285) | fn get_table_columns( function get_table_indexes (line 298) | fn get_table_indexes( function compare_schemas (line 339) | fn compare_schemas(workspace: &SchemaWorkspace) -> SchemaComparison { function normalize_sqlite_type (line 484) | fn normalize_sqlite_type(t: &str) -> String { function compare_metadata (line 498) | fn compare_metadata(workspace: &SchemaWorkspace) -> Result<(), String> { constant KNOWN_JSONL_BD_ONLY_FIELDS (line 555) | const KNOWN_JSONL_BD_ONLY_FIELDS: &[&str] = &[ function compare_jsonl_fields (line 561) | fn compare_jsonl_fields(workspace: &SchemaWorkspace) -> Result<(), Strin... function values_structurally_compatible (line 640) | fn values_structurally_compatible(a: &Value, b: &Value) -> bool { function value_type_name (line 653) | fn value_type_name(v: &Value) -> &'static str { constant KNOWN_BD_ONLY_TABLES (line 671) | const KNOWN_BD_ONLY_TABLES: &[&str] = &[ constant KNOWN_BD_ONLY_COLUMNS (line 680) | const KNOWN_BD_ONLY_COLUMNS: &[&str] = &[ constant KNOWN_BR_ONLY_COLUMNS (line 712) | const KNOWN_BR_ONLY_COLUMNS: &[&str] = &[ constant KNOWN_TYPE_DIFFERENCES (line 719) | const KNOWN_TYPE_DIFFERENCES: &[&str] = &[ constant KNOWN_NOTNULL_DIFFERENCES (line 732) | const KNOWN_NOTNULL_DIFFERENCES: &[&str] = &[ function conformance_schema_tables_present (line 745) | fn conformance_schema_tables_present() { function conformance_schema_issues_columns (line 805) | fn conformance_schema_issues_columns() { function conformance_schema_dependencies_structure (line 877) | fn conformance_schema_dependencies_structure() { function conformance_schema_labels_comments (line 912) | fn conformance_schema_labels_comments() { function conformance_schema_indexes (line 970) | fn conformance_schema_indexes() { function conformance_metadata_json_structure (line 1015) | fn conformance_metadata_json_structure() { function conformance_jsonl_field_parity (line 1032) | fn conformance_jsonl_field_parity() { function conformance_jsonl_compaction_level_serialization (line 1060) | fn conformance_jsonl_compaction_level_serialization() { constant KNOWN_OTHER_TABLE_DIFFS (line 1103) | const KNOWN_OTHER_TABLE_DIFFS: &[(&str, &str, &str)] = &[ function is_known_column_diff (line 1122) | fn is_known_column_diff(diff: &ColumnDiff) -> bool { function conformance_schema_full_comparison (line 1143) | fn conformance_schema_full_comparison() { FILE: tests/conformance_text_output.rs function bd_available (line 16) | fn bd_available() -> bool { function normalize_text_for_conformance (line 83) | fn normalize_text_for_conformance(text: &str) -> String { type TextComparisonResult (line 138) | struct TextComparisonResult { method compare (line 146) | fn compare(br_output: &str, bd_output: &str) -> Self { function extract_id_from_create (line 194) | fn extract_id_from_create(stdout: &str) -> String { function conformance_text_list_empty (line 227) | fn conformance_text_list_empty() { function conformance_text_list_with_issues (line 257) | fn conformance_text_list_with_issues() { function conformance_text_show (line 292) | fn conformance_text_show() { function conformance_text_ready_empty (line 326) | fn conformance_text_ready_empty() { function conformance_text_ready_with_issues (line 352) | fn conformance_text_ready_with_issues() { function conformance_text_blocked_empty (line 404) | fn conformance_text_blocked_empty() { function conformance_text_blocked_with_issues (line 439) | fn conformance_text_blocked_with_issues() { function conformance_text_stats_empty (line 480) | fn conformance_text_stats_empty() { function conformance_text_stats_with_issues (line 508) | fn conformance_text_stats_with_issues() { function conformance_text_orphans_empty (line 548) | fn conformance_text_orphans_empty() { function conformance_text_list_status_filter (line 579) | fn conformance_text_list_status_filter() { function conformance_text_list_type_filter (line 625) | fn conformance_text_list_type_filter() { function conformance_text_list_priority_filter (line 666) | fn conformance_text_list_priority_filter() { function conformance_text_show_not_found (line 723) | fn conformance_text_show_not_found() { function conformance_text_ready_with_limit (line 764) | fn conformance_text_ready_with_limit() { function test_normalize_ansi_codes (line 813) | fn test_normalize_ansi_codes() { function test_normalize_issue_ids (line 822) | fn test_normalize_issue_ids() { function test_normalize_timestamps (line 831) | fn test_normalize_timestamps() { function test_normalize_dates (line 839) | fn test_normalize_dates() { function test_normalize_durations (line 847) | fn test_normalize_durations() { function test_normalize_paths (line 855) | fn test_normalize_paths() { function test_normalize_line_endings (line 863) | fn test_normalize_line_endings() { function test_normalize_trailing_whitespace (line 870) | fn test_normalize_trailing_whitespace() { function test_comparison_result_match (line 881) | fn test_comparison_result_match() { function test_comparison_result_mismatch (line 888) | fn test_comparison_result_mismatch() { FILE: tests/conformance_workflows.rs function get_bd_binary (line 35) | fn get_bd_binary() -> String { function bd_available (line 42) | fn bd_available() -> bool { constant TIMESTAMP_FIELDS (line 84) | const TIMESTAMP_FIELDS: &[&str] = &[ constant STRUCTURAL_FIELDS (line 95) | const STRUCTURAL_FIELDS: &[&str] = &[ constant IGNORABLE_BR_ONLY_FIELDS (line 110) | const IGNORABLE_BR_ONLY_FIELDS: &[&str] = &["compaction_level", "origina... constant IMPLEMENTATION_SPECIFIC_FIELDS (line 114) | const IMPLEMENTATION_SPECIFIC_FIELDS: &[&str] = &["deleted_by", "delete_... constant EQUIVALENT_CLOSE_REASONS (line 118) | const EQUIVALENT_CLOSE_REASONS: &[(&str, &str)] = &[("done", "Closed")]; type DiffResult (line 122) | pub struct DiffResult { method explain (line 140) | pub fn explain(&self) -> String { type FieldDiff (line 132) | pub struct FieldDiff { function normalize_json (line 183) | fn normalize_json(value: &mut Value, path: &str, log: &mut Vec) { function compare_json_with_diff (line 232) | fn compare_json_with_diff(br: &Value, bd: &Value, path: &str, result: &m... function compare_jsonl_files (line 317) | fn compare_jsonl_files(br_path: &Path, bd_path: &Path) -> DiffResult { type WorkflowWorkspace (line 385) | pub struct WorkflowWorkspace { method new (line 404) | pub fn new(_name: &str) -> Self { method init_both (line 437) | pub fn init_both(&mut self) { method run_step (line 444) | pub fn run_step(&mut self, step_num: usize, args: &[&str]) -> (CmdOutp... method run_br (line 461) | pub fn run_br(&self, args: &[&str]) -> CmdOutput { method run_bd (line 482) | pub fn run_bd(&self, args: &[&str]) -> CmdOutput { method jsonl_paths (line 502) | pub fn jsonl_paths(&self) -> (std::path::PathBuf, std::path::PathBuf) { method compare_jsonl (line 510) | pub fn compare_jsonl(&self) -> DiffResult { method flush_both (line 516) | pub fn flush_both(&mut self, step_num: usize) -> (CmdOutput, CmdOutput) { method write_log (line 521) | pub fn write_log(&self) { method extract_id (line 528) | pub fn extract_id(output: &str) -> Option { type WorkflowStep (line 394) | pub struct WorkflowStep { type CmdOutput (line 549) | pub struct CmdOutput { function conformance_workflow_create_update_lifecycle (line 562) | fn conformance_workflow_create_update_lifecycle() { function conformance_workflow_dependency_chain (line 676) | fn conformance_workflow_dependency_chain() { function conformance_workflow_close_with_stats (line 779) | fn conformance_workflow_close_with_stats() { function conformance_workflow_delete_lifecycle (line 866) | fn conformance_workflow_delete_lifecycle() { function conformance_workflow_full_lifecycle (line 931) | fn conformance_workflow_full_lifecycle() { function conformance_workflow_dep_removal (line 1074) | fn conformance_workflow_dep_removal() { function conformance_workflow_sequential_updates (line 1148) | fn conformance_workflow_sequential_updates() { function conformance_workflow_assignee_changes (line 1249) | fn conformance_workflow_assignee_changes() { FILE: tests/e2e_audit.rs function read_interactions (line 20) | fn read_interactions(workspace: &BrWorkspace) -> Vec { function e2e_audit_record_single_event (line 38) | fn e2e_audit_record_single_event() { function e2e_audit_record_multiple_events_preserve_order (line 72) | fn e2e_audit_record_multiple_events_preserve_order() { function e2e_audit_record_with_all_optional_fields (line 118) | fn e2e_audit_record_with_all_optional_fields() { function e2e_audit_record_tool_call_fields (line 166) | fn e2e_audit_record_tool_call_fields() { function e2e_audit_record_json_output (line 204) | fn e2e_audit_record_json_output() { function e2e_audit_label_existing_entry (line 233) | fn e2e_audit_label_existing_entry() { function e2e_audit_label_with_reason (line 275) | fn e2e_audit_label_with_reason() { function e2e_audit_label_json_output (line 319) | fn e2e_audit_label_json_output() { function e2e_audit_record_before_init_fails (line 359) | fn e2e_audit_record_before_init_fails() { function e2e_audit_record_without_kind_fails (line 385) | fn e2e_audit_record_without_kind_fails() { function e2e_audit_label_without_label_fails (line 409) | fn e2e_audit_label_without_label_fails() { function e2e_audit_label_missing_parent_fails (line 441) | fn e2e_audit_label_missing_parent_fails() { function e2e_audit_record_very_long_text (line 475) | fn e2e_audit_record_very_long_text() { function e2e_audit_record_special_characters (line 515) | fn e2e_audit_record_special_characters() { function e2e_audit_record_via_stdin (line 551) | fn e2e_audit_record_via_stdin() { function e2e_audit_record_quiet_suppresses_stdout (line 597) | fn e2e_audit_record_quiet_suppresses_stdout() { function e2e_audit_summary_quiet_suppresses_stdout (line 625) | fn e2e_audit_summary_quiet_suppresses_stdout() { function e2e_audit_record_created_at_auto_set (line 655) | fn e2e_audit_record_created_at_auto_set() { function e2e_audit_unique_ids (line 688) | fn e2e_audit_unique_ids() { function e2e_audit_interactions_file_created (line 720) | fn e2e_audit_interactions_file_created() { function e2e_audit_with_actor_override (line 749) | fn e2e_audit_with_actor_override() { function e2e_audit_log_for_issue (line 783) | fn e2e_audit_log_for_issue() { function e2e_audit_summary (line 833) | fn e2e_audit_summary() { FILE: tests/e2e_basic_lifecycle.rs function parse_created_id (line 15) | fn parse_created_id(stdout: &str) -> String { function make_issue (line 29) | fn make_issue(id: &str, title: &str, now: chrono::DateTime) -> Issue { function prepare_merge_conflict_workspace (line 73) | fn prepare_merge_conflict_workspace() -> (BrWorkspace, String) { function assert_issue_description (line 126) | fn assert_issue_description(workspace: &BrWorkspace, issue_id: &str, exp... function e2e_basic_lifecycle (line 135) | fn e2e_basic_lifecycle() { function e2e_non_hermetic_smoke_existing_workspace_preserves_env_sensitive_paths (line 209) | fn e2e_non_hermetic_smoke_existing_workspace_preserves_env_sensitive_pat... function e2e_update_claim_multiple_ids_is_all_or_nothing (line 306) | fn e2e_update_claim_multiple_ids_is_all_or_nothing() { function e2e_create_updates_last_touched_context (line 402) | fn e2e_create_updates_last_touched_context() { function e2e_create_dry_run_does_not_update_last_touched_context (line 437) | fn e2e_create_dry_run_does_not_update_last_touched_context() { function e2e_no_db_create_updates_last_touched_after_flush (line 487) | fn e2e_no_db_create_updates_last_touched_after_flush() { function e2e_quick_capture (line 540) | fn e2e_quick_capture() { function e2e_sync_roundtrip (line 556) | fn e2e_sync_roundtrip() { function e2e_sync_import_staleness_and_force (line 621) | fn e2e_sync_import_staleness_and_force() { function e2e_sync_merge_resolution_flags_choose_db_or_jsonl (line 678) | fn e2e_sync_merge_resolution_flags_choose_db_or_jsonl() { function e2e_sync_force_jsonl_merge_does_not_resurrect_local_tombstone (line 722) | fn e2e_sync_force_jsonl_merge_does_not_resurrect_local_tombstone() { function e2e_no_db_read_write (line 816) | fn e2e_no_db_read_write() { function e2e_no_db_mixed_prefixes_are_supported (line 886) | fn e2e_no_db_mixed_prefixes_are_supported() { function e2e_no_db_mutations_succeed_with_large_export_hash_batches (line 922) | fn e2e_no_db_mutations_succeed_with_large_export_hash_batches() { function e2e_sync_flush_only_succeeds_with_large_mixed_prefix_export_hash_rewrite (line 1015) | fn e2e_sync_flush_only_succeeds_with_large_mixed_prefix_export_hash_rewr... function e2e_sync_manifest (line 1062) | fn e2e_sync_manifest() { function e2e_sync_status_json (line 1091) | fn e2e_sync_status_json() { function e2e_version_text (line 1112) | fn e2e_version_text() { function e2e_doctor_json (line 1128) | fn e2e_doctor_json() { function e2e_sync_status_text (line 1142) | fn e2e_sync_status_text() { function e2e_version_json (line 1161) | fn e2e_version_json() { function e2e_sync_conflict_markers_aborts_import (line 1176) | fn e2e_sync_conflict_markers_aborts_import() { function e2e_sync_tombstone_preservation (line 1223) | fn e2e_sync_tombstone_preservation() { function e2e_sync_tombstone_protection (line 1304) | fn e2e_sync_tombstone_protection() { function e2e_sync_content_hash_consistency (line 1374) | fn e2e_sync_content_hash_consistency() { function e2e_jsonl_discovery_prefers_issues (line 1454) | fn e2e_jsonl_discovery_prefers_issues() { function e2e_jsonl_discovery_uses_legacy_when_no_issues (line 1508) | fn e2e_jsonl_discovery_uses_legacy_when_no_issues() { FILE: tests/e2e_changelog.rs function parse_created_id (line 19) | fn parse_created_id(stdout: &str) -> String { function changelog_with_closed_issues (line 35) | fn changelog_with_closed_issues() { function changelog_groups_by_type (line 79) | fn changelog_groups_by_type() { function changelog_sorts_by_priority (line 128) | fn changelog_sorts_by_priority() { function changelog_text_output (line 193) | fn changelog_text_output() { function changelog_robot_mode (line 225) | fn changelog_robot_mode() { function changelog_since_date (line 252) | fn changelog_since_date() { function changelog_since_future_date (line 285) | fn changelog_since_future_date() { function changelog_all_time (line 312) | fn changelog_all_time() { function changelog_before_init_fails (line 340) | fn changelog_before_init_fails() { function changelog_no_closed_issues (line 364) | fn changelog_no_closed_issues() { function changelog_many_closed_issues (line 394) | fn changelog_many_closed_issues() { function changelog_with_close_reasons (line 424) | fn changelog_with_close_reasons() { function changelog_reopen_then_close (line 454) | fn changelog_reopen_then_close() { function changelog_mixed_statuses (line 490) | fn changelog_mixed_statuses() { function changelog_since_relative_time (line 527) | fn changelog_since_relative_time() { FILE: tests/e2e_claim_atomic.rs function seed_issue (line 11) | fn seed_issue(storage: &mut SqliteStorage, id: &str, assignee: Option<&s... function test_claim_unassigned_succeeds (line 58) | fn test_claim_unassigned_succeeds() { function test_claim_already_assigned_different_actor_fails (line 78) | fn test_claim_already_assigned_different_actor_fails() { function test_claim_same_actor_idempotent (line 97) | fn test_claim_same_actor_idempotent() { function test_claim_exclusive_rejects_same_actor (line 114) | fn test_claim_exclusive_rejects_same_actor() { function test_claim_whitespace_assignee_treated_as_unassigned (line 140) | fn test_claim_whitespace_assignee_treated_as_unassigned() { function test_claim_empty_string_assignee_treated_as_unassigned (line 160) | fn test_claim_empty_string_assignee_treated_as_unassigned() { function test_concurrent_claim_exactly_one_wins (line 181) | fn test_concurrent_claim_exactly_one_wins() { function test_concurrent_claim_different_issues_both_succeed (line 233) | fn test_concurrent_claim_different_issues_both_succeed() { function test_non_claim_update_skips_guard (line 297) | fn test_non_claim_update_skips_guard() { FILE: tests/e2e_cold_warm_benchmarks.rs type RunType (line 56) | pub enum RunType { method fmt (line 64) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type RunMetrics (line 78) | pub struct RunMetrics { type RunStats (line 99) | pub struct RunStats { method from_runs (line 111) | pub fn from_runs(runs: &[RunMetrics], run_type: RunType) -> Self { type ColdWarmComparison (line 163) | pub struct ColdWarmComparison { type CommandComparison (line 183) | pub struct CommandComparison { type ColdWarmBenchmarkResult (line 195) | pub struct ColdWarmBenchmarkResult { type DatasetSummary (line 204) | pub struct DatasetSummary { type BenchmarkConfig (line 212) | pub struct BenchmarkConfig { method default (line 222) | fn default() -> Self { type BenchmarkSummary (line 237) | pub struct BenchmarkSummary { function run_command (line 254) | fn run_command( function try_drop_caches (line 290) | fn try_drop_caches() -> bool { function benchmark_command (line 318) | fn benchmark_command( function run_cold_warm_benchmarks (line 425) | fn run_cold_warm_benchmarks( function print_cold_warm_table (line 521) | fn print_cold_warm_table(result: &ColdWarmBenchmarkResult) { function write_results_json (line 599) | fn write_results_json(result: &ColdWarmBenchmarkResult, output_path: &Pa... function cold_warm_benchmark_full (line 616) | fn cold_warm_benchmark_full() { function cold_warm_quick (line 688) | fn cold_warm_quick() { function cold_warm_tagging_works (line 746) | fn cold_warm_tagging_works() { function run_stats_calculation (line 777) | fn run_stats_calculation() { function cache_benefit_calculation (line 836) | fn cache_benefit_calculation() { FILE: tests/e2e_comments.rs function parse_created_id (line 15) | fn parse_created_id(stdout: &str) -> String { function e2e_comments_add_single_and_list (line 28) | fn e2e_comments_add_single_and_list() { function e2e_comments_add_multiple_verify_order (line 65) | fn e2e_comments_add_multiple_verify_order() { function e2e_comments_list_json_structure (line 128) | fn e2e_comments_list_json_structure() { function e2e_comments_add_to_existing (line 179) | fn e2e_comments_add_to_existing() { function e2e_comments_add_nonexistent_issue (line 231) | fn e2e_comments_add_nonexistent_issue() { function e2e_comments_add_empty (line 259) | fn e2e_comments_add_empty() { function e2e_comments_list_empty (line 305) | fn e2e_comments_list_empty() { function e2e_comments_special_characters (line 335) | fn e2e_comments_special_characters() { function e2e_comments_long_text (line 382) | fn e2e_comments_long_text() { function e2e_comments_on_closed_issue (line 420) | fn e2e_comments_on_closed_issue() { function e2e_comments_add_json_output (line 467) | fn e2e_comments_add_json_output() { function e2e_comments_shorthand (line 499) | fn e2e_comments_shorthand() { function e2e_comments_sync_roundtrip (line 533) | fn e2e_comments_sync_roundtrip() { FILE: tests/e2e_comments_stdin.rs function test_comments_add_from_stdin (line 5) | fn test_comments_add_from_stdin() { FILE: tests/e2e_completions.rs function init_workspace (line 19) | fn init_workspace(workspace: &BrWorkspace) { function assert_contains_dynamic_markers (line 28) | fn assert_contains_dynamic_markers(output: &str, shell_name: &str) { function e2e_completions_bash_generates_valid_script (line 46) | fn e2e_completions_bash_generates_valid_script() { function e2e_completions_bash_contains_subcommands (line 73) | fn e2e_completions_bash_contains_subcommands() { function e2e_completions_bash_contains_flags (line 94) | fn e2e_completions_bash_contains_flags() { function e2e_completions_zsh_generates_valid_script (line 119) | fn e2e_completions_zsh_generates_valid_script() { function e2e_completions_zsh_contains_subcommands (line 141) | fn e2e_completions_zsh_contains_subcommands() { function e2e_completions_fish_generates_valid_script (line 166) | fn e2e_completions_fish_generates_valid_script() { function e2e_completions_fish_contains_subcommands (line 188) | fn e2e_completions_fish_contains_subcommands() { function e2e_completions_powershell_generates_valid_script (line 213) | fn e2e_completions_powershell_generates_valid_script() { function e2e_completions_powershell_contains_subcommands (line 240) | fn e2e_completions_powershell_contains_subcommands() { function e2e_completions_elvish_generates_valid_script (line 265) | fn e2e_completions_elvish_generates_valid_script() { function e2e_completions_unknown_shell_error (line 291) | fn e2e_completions_unknown_shell_error() { function e2e_completions_idempotent (line 306) | fn e2e_completions_idempotent() { function e2e_completions_no_workspace_required (line 322) | fn e2e_completions_no_workspace_required() { function e2e_completions_with_initialized_workspace (line 343) | fn e2e_completions_with_initialized_workspace() { function e2e_completions_all_shells_succeed (line 368) | fn e2e_completions_all_shells_succeed() { function e2e_completions_all_shells_have_help (line 395) | fn e2e_completions_all_shells_have_help() { function e2e_completions_bash_file_output (line 426) | fn e2e_completions_bash_file_output() { function e2e_completions_zsh_file_output (line 465) | fn e2e_completions_zsh_file_output() { function e2e_completions_fish_file_output (line 500) | fn e2e_completions_fish_file_output() { function e2e_completions_powershell_file_output (line 529) | fn e2e_completions_powershell_file_output() { function e2e_completions_file_output_matches_stdout (line 563) | fn e2e_completions_file_output_matches_stdout() { function e2e_completions_file_output_overwrites_existing (line 601) | fn e2e_completions_file_output_overwrites_existing() { function e2e_completions_all_shells_file_output (line 637) | fn e2e_completions_all_shells_file_output() { FILE: tests/e2e_concurrency.rs constant WRITE_LOCK_WAIT_OBSERVATION_TIMEOUT (line 26) | const WRITE_LOCK_WAIT_OBSERVATION_TIMEOUT: Duration = Duration::from_sec... constant WRITE_LOCK_WAIT_POLL_INTERVAL (line 27) | const WRITE_LOCK_WAIT_POLL_INTERVAL: Duration = Duration::from_millis(25); constant CONTENTION_SUCCESS_LOCK_TIMEOUT_MS (line 28) | const CONTENTION_SUCCESS_LOCK_TIMEOUT_MS: &str = "1000"; type BrResult (line 32) | struct BrResult { function should_clear_inherited_br_env (line 39) | fn should_clear_inherited_br_env(key: &OsStr) -> bool { function clear_inherited_br_env (line 49) | fn clear_inherited_br_env(cmd: &mut Command) { function clear_inherited_br_env_std (line 57) | fn clear_inherited_br_env_std(cmd: &mut StdCommand) { function spawn_br_child_in_dir (line 65) | fn spawn_br_child_in_dir(root: &Path, args: I) -> std::process::Child function read_child_wait_channel (line 83) | fn read_child_wait_channel(pid: u32) -> Option { function is_write_lock_wait_channel (line 90) | fn is_write_lock_wait_channel(channel: &str) -> bool { function wait_for_child_to_block_on_write_lock (line 101) | fn wait_for_child_to_block_on_write_lock(child: &mut std::process::Child... function run_br_in_dir (line 141) | fn run_br_in_dir(root: &PathBuf, args: I) -> BrResult function run_br_in_dir_with_env (line 150) | fn run_br_in_dir_with_env(root: &PathBuf, args: I, env_va... function parse_created_id (line 180) | fn parse_created_id(stdout: &str) -> String { function is_expected_contention_failure (line 192) | fn is_expected_contention_failure(result: &BrResult) -> bool { function has_integrity_failure_signal (line 209) | fn has_integrity_failure_signal(result: &BrResult) -> bool { function assert_no_integrity_failure_signals (line 220) | fn assert_no_integrity_failure_signals(role: &str, results: &[BrResult]) { function assert_only_success_or_contention (line 239) | fn assert_only_success_or_contention(role: &str, results: &[BrResult]) -... function issue_title_count (line 263) | fn issue_title_count(root: &Path, title: &str) -> i64 { function extract_json_payload (line 280) | fn extract_json_payload(stdout: &str) -> String { function extract_issues_array (line 299) | fn extract_issues_array(stdout: &str) -> Vec { function assert_doctor_healthy (line 322) | fn assert_doctor_healthy(root: &PathBuf) { function assert_doctor_has_no_page_anomalies (line 338) | fn assert_doctor_has_no_page_anomalies(root: &PathBuf, label: &str) { function assert_upstream_sqlite_integrity_ok (line 386) | fn assert_upstream_sqlite_integrity_ok(root: &Path, label: &str) { function create_routes_file (line 411) | fn create_routes_file(root: &Path, entries: &[(&str, &Path)]) { function configure_external_route (line 426) | fn configure_external_route(main_root: &Path, external_root: &Path) { function e2e_killed_writer_waiting_on_write_lock_does_not_poison_workspace (line 439) | fn e2e_killed_writer_waiting_on_write_lock_does_not_poison_workspace() { function e2e_mutating_command_fails_when_write_lock_path_unusable (line 522) | fn e2e_mutating_command_fails_when_write_lock_path_unusable() { function e2e_write_lock_contention_respects_lock_timeout (line 561) | fn e2e_write_lock_contention_respects_lock_timeout() { function e2e_read_command_auto_import_waits_for_write_lock (line 625) | fn e2e_read_command_auto_import_waits_for_write_lock() { function e2e_read_command_witness_refresh_waits_for_write_lock (line 699) | fn e2e_read_command_witness_refresh_waits_for_write_lock() { function e2e_concurrent_writes_succeed_with_retry (line 755) | fn e2e_concurrent_writes_succeed_with_retry() { function e2e_lock_timeout_behavior (line 850) | fn e2e_lock_timeout_behavior() { function e2e_concurrent_reads_succeed (line 936) | fn e2e_concurrent_reads_succeed() { function e2e_parallel_read_only_commands_serialize_without_busy_on_drop (line 1003) | fn e2e_parallel_read_only_commands_serialize_without_busy_on_drop() { function e2e_lock_timeout_timing (line 1100) | fn e2e_lock_timeout_timing() { function e2e_write_serialization (line 1140) | fn e2e_write_serialization() { function e2e_mixed_read_write_concurrency (line 1240) | fn e2e_mixed_read_write_concurrency() { function e2e_interleaved_command_families_remain_bounded (line 1337) | fn e2e_interleaved_command_families_remain_bounded() { function e2e_routed_external_mutation_succeeds_during_local_updates (line 1490) | fn e2e_routed_external_mutation_succeeds_during_local_updates() { function e2e_sync_status_observer_stays_available_during_writes (line 1631) | fn e2e_sync_status_observer_stays_available_during_writes() { function e2e_lock_error_reporting (line 1711) | fn e2e_lock_error_reporting() { function e2e_interleaved_command_families_preserve_workspace_integrity (line 1738) | fn e2e_interleaved_command_families_preserve_workspace_integrity() { function e2e_external_access_and_background_status_are_bounded_during_mutation (line 1949) | fn e2e_external_access_and_background_status_are_bounded_during_mutation... function e2e_actor_oriented_command_families_preserve_workspace_integrity (line 2103) | fn e2e_actor_oriented_command_families_preserve_workspace_integrity() { function e2e_close_update_reopen_preserve_blocked_cache_integrity (line 2409) | fn e2e_close_update_reopen_preserve_blocked_cache_integrity() { function e2e_parallel_mixed_db_commands_preserve_sqlite_integrity (line 2610) | fn e2e_parallel_mixed_db_commands_preserve_sqlite_integrity() { function e2e_routed_access_remains_bounded_while_remote_workspace_mutates (line 2795) | fn e2e_routed_access_remains_bounded_while_remote_workspace_mutates() { FILE: tests/e2e_config_precedence.rs function e2e_config_precedence_env_project_user_db (line 9) | fn e2e_config_precedence_env_project_user_db() { function e2e_config_precedence_cli_over_env_project (line 92) | fn e2e_config_precedence_cli_over_env_project() { function e2e_config_precedence_includes_legacy_layer (line 142) | fn e2e_config_precedence_includes_legacy_layer() { function e2e_config_precedence_legacy_used_when_user_missing (line 214) | fn e2e_config_precedence_legacy_used_when_user_missing() { function e2e_config_get_ignores_global_no_db_flag (line 283) | fn e2e_config_get_ignores_global_no_db_flag() { function e2e_config_set_preserves_malformed_project_yaml (line 322) | fn e2e_config_set_preserves_malformed_project_yaml() { function e2e_config_delete_preserves_db_when_project_yaml_is_malformed (line 354) | fn e2e_config_delete_preserves_db_when_project_yaml_is_malformed() { function e2e_config_delete_no_db_preserves_db_values (line 399) | fn e2e_config_delete_no_db_preserves_db_values() { function e2e_config_list_rejects_project_and_user_together (line 434) | fn e2e_config_list_rejects_project_and_user_together() { function e2e_create_normalizes_runtime_issue_prefix_from_project_config (line 458) | fn e2e_create_normalizes_runtime_issue_prefix_from_project_config() { FILE: tests/e2e_create_output.rs function extract_issues_array (line 6) | fn extract_issues_array(stdout: &[u8]) -> Vec { function test_create_with_title_flag (line 21) | fn test_create_with_title_flag() { function test_create_positional_vs_title_flag (line 59) | fn test_create_positional_vs_title_flag() { function test_create_rejects_positional_and_title_flag_together (line 103) | fn test_create_rejects_positional_and_title_flag_together() { function test_create_json_output_includes_labels_and_deps (line 155) | fn test_create_json_output_includes_labels_and_deps() { function test_create_toon_output_decodes_single_issue (line 224) | fn test_create_toon_output_decodes_single_issue() { function test_create_file_empty_markdown_emits_empty_toon_array (line 258) | fn test_create_file_empty_markdown_emits_empty_toon_array() { function test_create_file_silent_outputs_only_ids (line 299) | fn test_create_file_silent_outputs_only_ids() { FILE: tests/e2e_defer.rs function parse_created_id (line 14) | fn parse_created_id(stdout: &str) -> String { function setup_workspace_with_issue (line 25) | fn setup_workspace_with_issue() -> (BrWorkspace, String) { function setup_workspace_with_multiple_issues (line 42) | fn setup_workspace_with_multiple_issues() -> (BrWorkspace, Vec) { function defer_sets_status_deferred (line 67) | fn defer_sets_status_deferred() { function defer_indefinitely_no_until (line 90) | fn defer_indefinitely_no_until() { function defer_with_until_timestamp (line 119) | fn defer_with_until_timestamp() { function defer_multiple_issues (line 145) | fn defer_multiple_issues() { function defer_json_output (line 173) | fn defer_json_output() { function defer_until_tomorrow (line 215) | fn defer_until_tomorrow() { function defer_until_relative (line 241) | fn defer_until_relative() { function defer_until_specific_date (line 264) | fn defer_until_specific_date() { function defer_until_datetime (line 290) | fn defer_until_datetime() { function defer_until_past_allows (line 316) | fn defer_until_past_allows() { function defer_until_invalid_error (line 346) | fn defer_until_invalid_error() { function undefer_sets_status_open (line 374) | fn undefer_sets_status_open() { function undefer_clears_defer_until (line 402) | fn undefer_clears_defer_until() { function undefer_multiple_issues (line 426) | fn undefer_multiple_issues() { function undefer_json_output (line 461) | fn undefer_json_output() { function defer_already_deferred_updates_time (line 492) | fn defer_already_deferred_updates_time() { function undefer_already_open_skips (line 527) | fn undefer_already_open_skips() { function defer_closed_issue_skips (line 565) | fn defer_closed_issue_skips() { function defer_nonexistent_error (line 602) | fn defer_nonexistent_error() { function deferred_not_in_ready (line 626) | fn deferred_not_in_ready() { function deferred_not_blocked (line 658) | fn deferred_not_blocked() { function undefer_appears_in_ready (line 684) | fn undefer_appears_in_ready() { FILE: tests/e2e_dep_tree_mermaid.rs function parse_created_id (line 20) | fn parse_created_id(stdout: &str) -> String { function validate_mermaid_syntax (line 32) | fn validate_mermaid_syntax(output: &str) -> (Vec, Vec<(String, S... function e2e_dep_tree_mermaid_single_node_no_deps (line 77) | fn e2e_dep_tree_mermaid_single_node_no_deps() { function e2e_dep_tree_mermaid_linear_chain (line 112) | fn e2e_dep_tree_mermaid_linear_chain() { function e2e_dep_tree_mermaid_branching_deps (line 174) | fn e2e_dep_tree_mermaid_branching_deps() { function e2e_dep_tree_mermaid_diamond_shape (line 213) | fn e2e_dep_tree_mermaid_diamond_shape() { function e2e_dep_tree_mermaid_max_depth_truncation (line 268) | fn e2e_dep_tree_mermaid_max_depth_truncation() { function e2e_dep_tree_mermaid_title_with_quotes (line 341) | fn e2e_dep_tree_mermaid_title_with_quotes() { function e2e_dep_tree_mermaid_external_dependency_uses_safe_node_ids (line 379) | fn e2e_dep_tree_mermaid_external_dependency_uses_safe_node_ids() { function e2e_dep_tree_mermaid_vs_json_consistency (line 441) | fn e2e_dep_tree_mermaid_vs_json_consistency() { function e2e_dep_tree_mermaid_format_case_insensitive (line 496) | fn e2e_dep_tree_mermaid_format_case_insensitive() { function e2e_dep_tree_mermaid_output_valid_mermaid_diagram (line 526) | fn e2e_dep_tree_mermaid_output_valid_mermaid_diagram() { function e2e_dep_tree_mermaid_text_vs_mermaid_format (line 601) | fn e2e_dep_tree_mermaid_text_vs_mermaid_format() { function e2e_dep_tree_mermaid_with_different_priorities (line 645) | fn e2e_dep_tree_mermaid_with_different_priorities() { function e2e_dep_tree_mermaid_quiet_mode (line 695) | fn e2e_dep_tree_mermaid_quiet_mode() { function e2e_dep_tree_mermaid_issue_not_found (line 725) | fn e2e_dep_tree_mermaid_issue_not_found() { FILE: tests/e2e_env_overrides.rs function toon_u64 (line 17) | fn toon_u64(value: &Value) -> Option { function toon_array_items (line 32) | fn toon_array_items(value: &Value) -> Vec<&Value> { function e2e_beads_dir_env_overrides_discovery (line 44) | fn e2e_beads_dir_env_overrides_discovery() { function e2e_beads_dir_invalid_path_fails (line 80) | fn e2e_beads_dir_invalid_path_fails() { function e2e_invalid_beads_dir_does_not_fall_back_to_cwd_workspace (line 107) | fn e2e_invalid_beads_dir_does_not_fall_back_to_cwd_workspace() { function e2e_beads_dir_takes_precedence_over_cwd (line 138) | fn e2e_beads_dir_takes_precedence_over_cwd() { function e2e_bd_db_env_override_allows_access_outside_workspace (line 193) | fn e2e_bd_db_env_override_allows_access_outside_workspace() { function e2e_beads_jsonl_external_path (line 234) | fn e2e_beads_jsonl_external_path() { function e2e_beads_jsonl_env_overrides_metadata (line 295) | fn e2e_beads_jsonl_env_overrides_metadata() { function e2e_beads_jsonl_without_allow_flag_warns (line 342) | fn e2e_beads_jsonl_without_allow_flag_warns() { function e2e_beads_jsonl_metadata_external_without_allow_fails (line 389) | fn e2e_beads_jsonl_metadata_external_without_allow_fails() { function e2e_bd_actor_env_sets_actor (line 440) | fn e2e_bd_actor_env_sets_actor() { function e2e_actor_flag_overrides_env (line 480) | fn e2e_actor_flag_overrides_env() { function e2e_no_db_with_beads_dir (line 548) | fn e2e_no_db_with_beads_dir() { function e2e_no_db_with_beads_jsonl (line 590) | fn e2e_no_db_with_beads_jsonl() { function e2e_no_db_ignores_lock_timeout_flag (line 631) | fn e2e_no_db_ignores_lock_timeout_flag() { function e2e_no_db_creates_to_jsonl (line 665) | fn e2e_no_db_creates_to_jsonl() { function e2e_info_shows_resolved_paths (line 710) | fn e2e_info_shows_resolved_paths() { function e2e_info_plain_output_shows_storage_paths (line 733) | fn e2e_info_plain_output_shows_storage_paths() { function e2e_info_honors_toon_env_mode (line 756) | fn e2e_info_honors_toon_env_mode() { function e2e_info_message_honors_toon_env_mode (line 780) | fn e2e_info_message_honors_toon_env_mode() { function e2e_delete_honors_toon_env_mode (line 807) | fn e2e_delete_honors_toon_env_mode() { function e2e_delete_preview_honors_toon_env_mode (line 845) | fn e2e_delete_preview_honors_toon_env_mode() { function e2e_close_honors_toon_env_mode (line 914) | fn e2e_close_honors_toon_env_mode() { function e2e_reopen_honors_toon_env_mode (line 952) | fn e2e_reopen_honors_toon_env_mode() { function e2e_defer_honors_toon_env_mode (line 993) | fn e2e_defer_honors_toon_env_mode() { function e2e_q_honors_toon_env_mode (line 1031) | fn e2e_q_honors_toon_env_mode() { function e2e_update_honors_toon_env_mode (line 1060) | fn e2e_update_honors_toon_env_mode() { function e2e_count_honors_toon_env_mode (line 1098) | fn e2e_count_honors_toon_env_mode() { function e2e_version_honors_toon_env_mode (line 1130) | fn e2e_version_honors_toon_env_mode() { function e2e_lint_honors_toon_env_mode (line 1162) | fn e2e_lint_honors_toon_env_mode() { function e2e_stale_honors_toon_env_mode (line 1193) | fn e2e_stale_honors_toon_env_mode() { function e2e_epic_status_honors_toon_env_mode (line 1230) | fn e2e_epic_status_honors_toon_env_mode() { function e2e_epic_close_eligible_honors_toon_env_mode (line 1267) | fn e2e_epic_close_eligible_honors_toon_env_mode() { function e2e_label_add_honors_toon_env_mode (line 1337) | fn e2e_label_add_honors_toon_env_mode() { function e2e_comments_add_honors_toon_env_mode (line 1375) | fn e2e_comments_add_honors_toon_env_mode() { function e2e_audit_record_honors_toon_env_mode (line 1411) | fn e2e_audit_record_honors_toon_env_mode() { function e2e_audit_log_and_summary_honor_toon_env_mode (line 1442) | fn e2e_audit_log_and_summary_honor_toon_env_mode() { function e2e_orphans_honors_toon_env_mode_when_empty (line 1498) | fn e2e_orphans_honors_toon_env_mode_when_empty() { function e2e_comments_add_does_not_invoke_git_for_author_fallback (line 1524) | fn e2e_comments_add_does_not_invoke_git_for_author_fallback() { function e2e_where_honors_toon_env_mode (line 1585) | fn e2e_where_honors_toon_env_mode() { function e2e_query_save_list_delete_honor_toon_env_mode (line 1621) | fn e2e_query_save_list_delete_honor_toon_env_mode() { function e2e_history_list_and_prune_honor_toon_env_mode (line 1672) | fn e2e_history_list_and_prune_honor_toon_env_mode() { function e2e_where_command_shows_paths (line 1763) | fn e2e_where_command_shows_paths() { function e2e_where_with_beads_dir_override (line 1792) | fn e2e_where_with_beads_dir_override() { function e2e_empty_beads_dir_env_ignored (line 1827) | fn e2e_empty_beads_dir_env_ignored() { function e2e_whitespace_beads_dir_env_ignored (line 1858) | fn e2e_whitespace_beads_dir_env_ignored() { FILE: tests/e2e_epic.rs function parse_created_id (line 6) | fn parse_created_id(stdout: &str) -> String { function e2e_epic_status_shows_progress (line 22) | fn e2e_epic_status_shows_progress() { function e2e_epic_status_eligible_when_all_children_closed (line 120) | fn e2e_epic_status_eligible_when_all_children_closed() { function e2e_epic_close_eligible_closes_epics (line 187) | fn e2e_epic_close_eligible_closes_epics() { function e2e_epic_close_eligible_dry_run (line 267) | fn e2e_epic_close_eligible_dry_run() { function e2e_epic_status_eligible_only_filter (line 334) | fn e2e_epic_status_eligible_only_filter() { function e2e_epic_childless_epic_not_eligible (line 418) | fn e2e_epic_childless_epic_not_eligible() { function e2e_epic_close_eligible_dry_run_json_empty_array (line 468) | fn e2e_epic_close_eligible_dry_run_json_empty_array() { function e2e_epic_nested_epics (line 506) | fn e2e_epic_nested_epics() { function e2e_epic_no_epics_message (line 609) | fn e2e_epic_no_epics_message() { function e2e_epic_close_eligible_no_eligible_message (line 646) | fn e2e_epic_close_eligible_no_eligible_message() { function e2e_epic_multiple_children_partial_progress (line 692) | fn e2e_epic_multiple_children_partial_progress() { function e2e_epic_closed_epic_not_shown (line 784) | fn e2e_epic_closed_epic_not_shown() { function e2e_epic_deleted_child_removes_dependency (line 815) | fn e2e_epic_deleted_child_removes_dependency() { FILE: tests/e2e_errors.rs function parse_created_id (line 8) | fn parse_created_id(stdout: &str) -> String { function create_issue_with_description (line 19) | fn create_issue_with_description( function run_lint_json (line 40) | fn run_lint_json(workspace: &BrWorkspace, mut args: Vec, label: ... function overwrite_local_tombstone_title (line 48) | fn overwrite_local_tombstone_title(workspace: &BrWorkspace, id: &str, ti... function assert_issue_title_and_clean_sync_state (line 66) | fn assert_issue_title_and_clean_sync_state( function e2e_error_handling (line 98) | fn e2e_error_handling() { function e2e_sync_force_import_keeps_jsonl_authoritative_for_existing_tombstones (line 152) | fn e2e_sync_force_import_keeps_jsonl_authoritative_for_existing_tombston... function e2e_sync_rebuild_keeps_jsonl_authoritative_for_existing_tombstones (line 214) | fn e2e_sync_rebuild_keeps_jsonl_authoritative_for_existing_tombstones() { function e2e_update_tombstone_rejected (line 276) | fn e2e_update_tombstone_rejected() { function e2e_update_invalid_parent_does_not_partially_apply_other_changes (line 328) | fn e2e_update_invalid_parent_does_not_partially_apply_other_changes() { function e2e_update_self_parent_does_not_partially_apply_other_changes (line 371) | fn e2e_update_self_parent_does_not_partially_apply_other_changes() { function e2e_dependency_errors (line 408) | fn e2e_dependency_errors() { function e2e_sync_invalid_orphans (line 442) | fn e2e_sync_invalid_orphans() { function e2e_sync_rename_prefix_applies_after_missing_db_recovery_with_force (line 471) | fn e2e_sync_rename_prefix_applies_after_missing_db_recovery_with_force() { function e2e_sync_rename_prefix_applies_after_missing_db_recovery_without_force (line 558) | fn e2e_sync_rename_prefix_applies_after_missing_db_recovery_without_forc... function e2e_auto_flush_skips_silently_overwriting_conflict_markered_jsonl (line 647) | fn e2e_auto_flush_skips_silently_overwriting_conflict_markered_jsonl() { function e2e_auto_flush_failure_is_visible_in_json_mode (line 707) | fn e2e_auto_flush_failure_is_visible_in_json_mode() { function e2e_sync_flush_checks_conflict_markers_before_noop_short_circuit (line 773) | fn e2e_sync_flush_checks_conflict_markers_before_noop_short_circuit() { function e2e_sync_rebuild_preserves_unflushed_tombstones_across_delegation (line 837) | fn e2e_sync_rebuild_preserves_unflushed_tombstones_across_delegation() { function e2e_sync_rebuild_with_rename_prefix_keeps_renamed_issues (line 1033) | fn e2e_sync_rebuild_with_rename_prefix_keeps_renamed_issues() { function e2e_sync_auto_rebuild_plain_import_reports_recovery_result (line 1133) | fn e2e_sync_auto_rebuild_plain_import_reports_recovery_result() { function e2e_sync_rename_prefix_clears_duplicate_external_ref_after_missing_db_recovery (line 1189) | fn e2e_sync_rename_prefix_clears_duplicate_external_ref_after_missing_db... function e2e_sync_rename_prefix_failed_import_restores_original_corrupt_db_family (line 1313) | fn e2e_sync_rename_prefix_failed_import_restores_original_corrupt_db_fam... function e2e_sync_rename_prefix_validation_failure_restores_original_corrupt_db_family (line 1375) | fn e2e_sync_rename_prefix_validation_failure_restores_original_corrupt_d... function e2e_sync_rename_prefix_validation_failure_does_not_create_missing_db (line 1452) | fn e2e_sync_rename_prefix_validation_failure_does_not_create_missing_db() { function e2e_sync_rename_prefix_import_failure_does_not_leave_missing_db_created (line 1517) | fn e2e_sync_rename_prefix_import_failure_does_not_leave_missing_db_creat... function e2e_sync_export_guards (line 1578) | fn e2e_sync_export_guards() { function e2e_ambiguous_id (line 1647) | fn e2e_ambiguous_id() { function e2e_lint_before_init_fails (line 1695) | fn e2e_lint_before_init_fails() { function e2e_lint_clean_output_when_no_warnings (line 1703) | fn e2e_lint_clean_output_when_no_warnings() { function e2e_lint_bug_missing_sections_json (line 1728) | fn e2e_lint_bug_missing_sections_json() { function e2e_lint_multiple_issues_aggregate_warnings (line 1757) | fn e2e_lint_multiple_issues_aggregate_warnings() { function e2e_lint_text_output_exit_code (line 1784) | fn e2e_lint_text_output_exit_code() { function e2e_lint_status_all_includes_closed (line 1804) | fn e2e_lint_status_all_includes_closed() { function e2e_lint_type_filter_limits_results (line 1838) | fn e2e_lint_type_filter_limits_results() { function e2e_lint_ids_only_lints_selected (line 1869) | fn e2e_lint_ids_only_lints_selected() { function e2e_lint_skips_types_without_required_sections (line 1900) | fn e2e_lint_skips_types_without_required_sections() { function parse_error_json (line 1923) | fn parse_error_json(stderr: &str) -> Option { function verify_error_structure (line 1942) | fn verify_error_structure(json: &Value) -> bool { function e2e_structured_error_not_initialized (line 1956) | fn e2e_structured_error_not_initialized() { function e2e_structured_error_issue_not_found (line 1975) | fn e2e_structured_error_issue_not_found() { function e2e_structured_error_cycle_detected (line 2001) | fn e2e_structured_error_cycle_detected() { function e2e_structured_error_self_dependency (line 2039) | fn e2e_structured_error_self_dependency() { function e2e_structured_error_ambiguous_id (line 2067) | fn e2e_structured_error_ambiguous_id() { function e2e_structured_error_jsonl_parse (line 2127) | fn e2e_structured_error_jsonl_parse() { function e2e_structured_error_conflict_markers (line 2161) | fn e2e_structured_error_conflict_markers() { function e2e_sync_flush_refuses_to_overwrite_conflict_markers (line 2192) | fn e2e_sync_flush_refuses_to_overwrite_conflict_markers() { function e2e_custom_type_accepted (line 2272) | fn e2e_custom_type_accepted() { function e2e_structured_error_invalid_priority (line 2301) | fn e2e_structured_error_invalid_priority() { function e2e_error_text_mode_no_color (line 2333) | fn e2e_error_text_mode_no_color() { function e2e_error_text_vs_json_parity (line 2353) | fn e2e_error_text_vs_json_parity() { function e2e_error_multiple_errors_same_exit_code (line 2398) | fn e2e_error_multiple_errors_same_exit_code() { function e2e_error_exit_code_categories (line 2425) | fn e2e_error_exit_code_categories() { function e2e_structured_error_label_validation (line 2466) | fn e2e_structured_error_label_validation() { function e2e_structured_error_label_too_long (line 2500) | fn e2e_structured_error_label_too_long() { function e2e_structured_error_dependency_target_not_found (line 2529) | fn e2e_structured_error_dependency_target_not_found() { function e2e_dependency_idempotent_duplicate (line 2570) | fn e2e_dependency_idempotent_duplicate() { function e2e_dependency_metadata_flag_persists_to_jsonl (line 2615) | fn e2e_dependency_metadata_flag_persists_to_jsonl() { function e2e_dependency_remove_json_reports_removed_type (line 2669) | fn e2e_dependency_remove_json_reports_removed_type() { function e2e_delete_with_dependents_preview (line 2713) | fn e2e_delete_with_dependents_preview() { function e2e_delete_json_sorts_deleted_ids (line 2757) | fn e2e_delete_json_sorts_deleted_ids() { function e2e_delete_dry_run_sorts_requested_ids (line 2797) | fn e2e_delete_dry_run_sorts_requested_ids() { function e2e_delete_dry_run_json_returns_structured_preview (line 2837) | fn e2e_delete_dry_run_json_returns_structured_preview() { function e2e_delete_with_dependents_json_returns_structured_preview (line 2885) | fn e2e_delete_with_dependents_json_returns_structured_preview() { function e2e_delete_ignores_non_blocking_related_dependencies (line 2930) | fn e2e_delete_ignores_non_blocking_related_dependencies() { function e2e_delete_child_with_parent_child_dependency_previews_parent (line 2974) | fn e2e_delete_child_with_parent_child_dependency_previews_parent() { function e2e_delete_hard_json_reports_removed_labels_and_events (line 3030) | fn e2e_delete_hard_json_reports_removed_labels_and_events() { function e2e_validation_error_empty_label (line 3073) | fn e2e_validation_error_empty_label() { function e2e_validation_special_characters_in_label (line 3095) | fn e2e_validation_special_characters_in_label() { function e2e_error_text_json_parity_validation (line 3144) | fn e2e_error_text_json_parity_validation() { function e2e_sync_merge_detects_conflict_markers_in_base_snapshot (line 3187) | fn e2e_sync_merge_detects_conflict_markers_in_base_snapshot() { FILE: tests/e2e_git_safety_full_cli.rs function hash_file (line 27) | fn hash_file(path: &Path) -> Option { function collect_dir_hashes (line 36) | fn collect_dir_hashes(dir: &Path, base: &Path, hashes: &mut BTreeMap BTreeMap { function filter_transient_git_files (line 68) | fn filter_transient_git_files(hashes: &BTreeMap) -> BTre... function get_head_commit (line 86) | fn get_head_commit(root: &Path) -> Option { function get_commit_count (line 97) | fn get_commit_count(root: &Path) -> usize { function init_git_repo (line 113) | fn init_git_repo(workspace: &BrWorkspace) { type GitSafetyCheck (line 160) | struct GitSafetyCheck { method new (line 172) | fn new(command: &str) -> Self { method add_violation (line 182) | fn add_violation(&mut self, msg: &str) { function verify_git_unchanged (line 189) | fn verify_git_unchanged( function regression_full_cli_does_not_touch_git (line 278) | fn regression_full_cli_does_not_touch_git() { function regression_auto_flush_does_not_touch_git (line 1039) | fn regression_auto_flush_does_not_touch_git() { function regression_auto_import_does_not_touch_git (line 1082) | fn regression_auto_import_does_not_touch_git() { FILE: tests/e2e_global_flags.rs function parse_created_id (line 12) | fn parse_created_id(stdout: &str) -> String { function assert_quiet_command (line 23) | fn assert_quiet_command( function run_quiet_json (line 42) | fn run_quiet_json( function e2e_json_flag_list (line 63) | fn e2e_json_flag_list() { function e2e_json_flag_show (line 88) | fn e2e_json_flag_show() { function e2e_json_flag_ready (line 118) | fn e2e_json_flag_ready() { function e2e_json_flag_blocked (line 142) | fn e2e_json_flag_blocked() { function e2e_json_flag_stats (line 164) | fn e2e_json_flag_stats() { function e2e_robot_flag_list (line 205) | fn e2e_robot_flag_list() { function e2e_robot_flag_stderr_diagnostics (line 230) | fn e2e_robot_flag_stderr_diagnostics() { function e2e_robot_flag_sync_flush_outputs_json (line 262) | fn e2e_robot_flag_sync_flush_outputs_json() { function e2e_no_color_flag (line 297) | fn e2e_no_color_flag() { function e2e_no_color_env_var (line 323) | fn e2e_no_color_env_var() { function e2e_env_output_format_json_defaults_count_to_structured_output (line 345) | fn e2e_env_output_format_json_defaults_count_to_structured_output() { function e2e_quiet_overrides_env_json_for_list (line 377) | fn e2e_quiet_overrides_env_json_for_list() { function e2e_no_db_flag_list (line 410) | fn e2e_no_db_flag_list() { function e2e_no_db_flag_show (line 440) | fn e2e_no_db_flag_show() { function e2e_no_db_show_bypasses_corrupt_db_and_preserves_relations (line 477) | fn e2e_no_db_show_bypasses_corrupt_db_and_preserves_relations() { function e2e_no_db_flag_ready (line 575) | fn e2e_no_db_flag_ready() { function e2e_no_db_hard_delete_flushes_jsonl (line 602) | fn e2e_no_db_hard_delete_flushes_jsonl() { function e2e_allow_stale_flag (line 657) | fn e2e_allow_stale_flag() { function e2e_no_auto_import_flag (line 690) | fn e2e_no_auto_import_flag() { function e2e_no_auto_flush_flag (line 727) | fn e2e_no_auto_flush_flag() { function e2e_no_auto_flush_from_project_config (line 771) | fn e2e_no_auto_flush_from_project_config() { function e2e_no_auto_flush_config_hyphen_variant (line 813) | fn e2e_no_auto_flush_config_hyphen_variant() { function e2e_lock_timeout_flag (line 855) | fn e2e_lock_timeout_flag() { function e2e_quiet_flag (line 890) | fn e2e_quiet_flag() { function e2e_quiet_flag_list (line 914) | fn e2e_quiet_flag_list() { function e2e_quiet_list_suppresses_truncation_note (line 938) | fn e2e_quiet_list_suppresses_truncation_note() { function e2e_quiet_flag_dep_subcommands (line 973) | fn e2e_quiet_flag_dep_subcommands() { function e2e_quiet_flag_graph_subcommands (line 1060) | fn e2e_quiet_flag_graph_subcommands() { function e2e_quiet_flag_comments_subcommands (line 1116) | fn e2e_quiet_flag_comments_subcommands() { function e2e_quiet_flag_query_subcommands (line 1182) | fn e2e_quiet_flag_query_subcommands() { function e2e_quiet_flag_count_and_where (line 1242) | fn e2e_quiet_flag_count_and_where() { function e2e_quiet_flag_defer_subcommands (line 1319) | fn e2e_quiet_flag_defer_subcommands() { function e2e_quiet_flag_config_epic_label_and_q_subcommands (line 1375) | fn e2e_quiet_flag_config_epic_label_and_q_subcommands() { function e2e_quiet_flag_sync_subcommands (line 1432) | fn e2e_quiet_flag_sync_subcommands() { function e2e_verbose_flag (line 1482) | fn e2e_verbose_flag() { function e2e_very_verbose_flag (line 1507) | fn e2e_very_verbose_flag() { function e2e_json_no_color_combined (line 1532) | fn e2e_json_no_color_combined() { function e2e_no_db_json_combined (line 1563) | fn e2e_no_db_json_combined() { function e2e_quiet_json_combined (line 1592) | fn e2e_quiet_json_combined() { function e2e_global_flag_before_command (line 1619) | fn e2e_global_flag_before_command() { function e2e_global_flag_after_command (line 1641) | fn e2e_global_flag_after_command() { function e2e_json_stdout_is_clean_json (line 1668) | fn e2e_json_stdout_is_clean_json() { function e2e_quiet_reduces_output (line 1707) | fn e2e_quiet_reduces_output() { function e2e_json_overrides_quiet (line 1738) | fn e2e_json_overrides_quiet() { function e2e_no_color_across_commands (line 1761) | fn e2e_no_color_across_commands() { FILE: tests/e2e_graph.rs function parse_created_id (line 9) | fn parse_created_id(stdout: &str) -> String { function parse_json_u64 (line 20) | fn parse_json_u64(value: &Value) -> Option { function e2e_graph_single_issue_no_dependents (line 31) | fn e2e_graph_single_issue_no_dependents() { function e2e_graph_single_issue_with_dependents (line 52) | fn e2e_graph_single_issue_with_dependents() { function e2e_graph_single_issue_json (line 105) | fn e2e_graph_single_issue_json() { function e2e_graph_single_issue_honors_toon_env_mode (line 158) | fn e2e_graph_single_issue_honors_toon_env_mode() { function e2e_graph_single_issue_compact (line 211) | fn e2e_graph_single_issue_compact() { function e2e_graph_all_no_issues (line 266) | fn e2e_graph_all_no_issues() { function e2e_graph_all_includes_custom_status_issues (line 283) | fn e2e_graph_all_includes_custom_status_issues() { function e2e_graph_all_with_connected_components (line 323) | fn e2e_graph_all_with_connected_components() { function e2e_graph_all_json (line 381) | fn e2e_graph_all_json() { function e2e_graph_requires_issue_or_all (line 435) | fn e2e_graph_requires_issue_or_all() { function e2e_graph_chain_depth (line 452) | fn e2e_graph_chain_depth() { FILE: tests/e2e_graph_ordering.rs function parse_created_id (line 7) | fn parse_created_id(stdout: &str) -> String { function e2e_graph_dfs_ordering (line 19) | fn e2e_graph_dfs_ordering() { FILE: tests/e2e_harness_demo.rs function harness_full_workflow (line 15) | fn harness_full_workflow() { function harness_captures_failure (line 69) | fn harness_captures_failure() { function harness_env_isolation (line 90) | fn harness_env_isolation() { function harness_stdin_input (line 109) | fn harness_stdin_input() { FILE: tests/e2e_history.rs function sync_flush (line 19) | fn sync_flush(workspace: &BrWorkspace) { function create_issue (line 30) | fn create_issue(workspace: &BrWorkspace, title: &str, label: &str) { function setup_workspace_with_jsonl (line 41) | fn setup_workspace_with_jsonl() -> BrWorkspace { function list_backup_files (line 57) | fn list_backup_files(workspace: &BrWorkspace) -> Vec { function e2e_history_list_empty_initially (line 87) | fn e2e_history_list_empty_initially() { function e2e_history_list_after_sync_creates_backup (line 112) | fn e2e_history_list_after_sync_creates_backup() { function e2e_history_list_shows_backup_details (line 139) | fn e2e_history_list_shows_backup_details() { function e2e_history_multiple_backups_chronological_order (line 161) | fn e2e_history_multiple_backups_chronological_order() { function e2e_history_restore_backup (line 195) | fn e2e_history_restore_backup() { function e2e_history_diff_shows_differences (line 230) | fn e2e_history_diff_shows_differences() { function e2e_history_prune_keeps_recent (line 258) | fn e2e_history_prune_keeps_recent() { function e2e_history_list_before_init_fails (line 302) | fn e2e_history_list_before_init_fails() { function e2e_history_restore_nonexistent_backup_fails (line 323) | fn e2e_history_restore_nonexistent_backup_fails() { function e2e_history_restore_without_force_fails_when_exists (line 350) | fn e2e_history_restore_without_force_fails_when_exists() { function e2e_history_diff_nonexistent_backup_fails (line 382) | fn e2e_history_diff_nonexistent_backup_fails() { function e2e_history_backup_deduplication (line 408) | fn e2e_history_backup_deduplication() { function e2e_history_with_many_issues (line 431) | fn e2e_history_with_many_issues() { function e2e_history_default_command_is_list (line 461) | fn e2e_history_default_command_is_list() { function e2e_history_prune_with_older_than (line 486) | fn e2e_history_prune_with_older_than() { function e2e_history_restore_without_force_succeeds_when_no_current (line 519) | fn e2e_history_restore_without_force_succeeds_when_no_current() { function e2e_history_restore_verifies_content (line 552) | fn e2e_history_restore_verifies_content() { function e2e_history_diff_fails_when_no_current_jsonl (line 610) | fn e2e_history_diff_fails_when_no_current_jsonl() { function e2e_history_prune_removes_oldest_backups (line 648) | fn e2e_history_prune_removes_oldest_backups() { function e2e_history_list_json_output (line 702) | fn e2e_history_list_json_output() { function e2e_history_restore_json_output (line 748) | fn e2e_history_restore_json_output() { function e2e_history_diff_json_reports_internal_diff_status (line 788) | fn e2e_history_diff_json_reports_internal_diff_status() { function e2e_history_prune_json_output (line 832) | fn e2e_history_prune_json_output() { FILE: tests/e2e_history_custom_path.rs function create_issue (line 6) | fn create_issue(workspace: &BrWorkspace, title: &str, label: &str) { function e2e_history_custom_path (line 12) | fn e2e_history_custom_path() { FILE: tests/e2e_history_restore_prune.rs function sync_flush (line 28) | fn sync_flush(workspace: &BrWorkspace) { function create_issue (line 38) | fn create_issue(workspace: &BrWorkspace, title: &str, label: &str) { function list_backup_files (line 44) | fn list_backup_files(workspace: &BrWorkspace) -> Vec { function setup_workspace_with_jsonl (line 70) | fn setup_workspace_with_jsonl() -> BrWorkspace { function read_file_bytes (line 83) | fn read_file_bytes(workspace: &BrWorkspace, relative_path: &str) -> Vec<... function is_dataset_available (line 89) | fn is_dataset_available() -> bool { function e2e_history_restore_verifies_content_integrity (line 98) | fn e2e_history_restore_verifies_content_integrity() { function e2e_history_restore_preserves_backup_file (line 164) | fn e2e_history_restore_preserves_backup_file() { function e2e_history_restore_json_output (line 201) | fn e2e_history_restore_json_output() { function e2e_history_restore_corrupt_backup_succeeds_copy (line 253) | fn e2e_history_restore_corrupt_backup_succeeds_copy() { function e2e_history_restore_empty_backup (line 297) | fn e2e_history_restore_empty_backup() { function e2e_history_prune_deletes_excess_backups (line 340) | fn e2e_history_prune_deletes_excess_backups() { function e2e_history_prune_keeps_newest (line 378) | fn e2e_history_prune_keeps_newest() { function e2e_history_prune_json_output (line 422) | fn e2e_history_prune_json_output() { function e2e_history_prune_with_older_than_days (line 454) | fn e2e_history_prune_with_older_than_days() { function e2e_history_prune_no_backups_to_delete (line 479) | fn e2e_history_prune_no_backups_to_delete() { function e2e_history_restore_with_real_dataset (line 519) | fn e2e_history_restore_with_real_dataset() { function e2e_history_prune_with_real_dataset (line 598) | fn e2e_history_prune_with_real_dataset() { function e2e_history_restore_requires_force_when_exists (line 652) | fn e2e_history_restore_requires_force_when_exists() { function e2e_history_restore_succeeds_without_force_when_missing (line 684) | fn e2e_history_restore_succeeds_without_force_when_missing() { function e2e_history_prune_with_keep_zero_deletes_all (line 716) | fn e2e_history_prune_with_keep_zero_deletes_all() { function e2e_history_restore_quiet_mode (line 755) | fn e2e_history_restore_quiet_mode() { function e2e_history_prune_quiet_mode (line 781) | fn e2e_history_prune_quiet_mode() { function e2e_history_restore_force_no_missing_target_window (line 803) | fn e2e_history_restore_force_no_missing_target_window() { FILE: tests/e2e_installer.rs function has_network (line 27) | fn has_network() -> bool { function has_bash (line 37) | fn has_bash() -> bool { function run_installer (line 47) | fn run_installer(temp_dir: &TempDir, args: &[&str], env_vars: HashMap<&s... function run_installer_function (line 76) | fn run_installer_function(temp_dir: &TempDir, _function_name: &str, func... function e2e_installer_platform_detection_linux_x64 (line 105) | fn e2e_installer_platform_detection_linux_x64() { function e2e_installer_detects_system_platform (line 149) | fn e2e_installer_detects_system_platform() { function e2e_installer_version_resolution_explicit (line 200) | fn e2e_installer_version_resolution_explicit() { function e2e_installer_version_resolution_github_api (line 224) | fn e2e_installer_version_resolution_github_api() { function e2e_installer_checksum_verification_sha256sum (line 279) | fn e2e_installer_checksum_verification_sha256sum() { function e2e_installer_checksum_mismatch_fails (line 330) | fn e2e_installer_checksum_mismatch_fails() { function e2e_installer_idempotent_runs_twice (line 373) | fn e2e_installer_idempotent_runs_twice() { function e2e_installer_creates_dest_directory (line 409) | fn e2e_installer_creates_dest_directory() { function e2e_installer_lock_prevents_concurrent (line 433) | fn e2e_installer_lock_prevents_concurrent() { function e2e_installer_uninstall_removes_binary (line 470) | fn e2e_installer_uninstall_removes_binary() { function e2e_installer_respects_br_install_dir (line 517) | fn e2e_installer_respects_br_install_dir() { function e2e_installer_no_gum_disables_fancy_output (line 536) | fn e2e_installer_no_gum_disables_fancy_output() { function e2e_installer_from_source_flag_accepted (line 563) | fn e2e_installer_from_source_flag_accepted() { function e2e_installer_full_install_and_verify (line 589) | fn e2e_installer_full_install_and_verify() { function e2e_installer_proxy_env_vars_accepted (line 638) | fn e2e_installer_proxy_env_vars_accepted() { function e2e_installer_help_shows_all_options (line 668) | fn e2e_installer_help_shows_all_options() { function e2e_installer_shows_supported_platforms (line 697) | fn e2e_installer_shows_supported_platforms() { FILE: tests/e2e_issue_252_fresh_bead_lookup.rs function parse_created_id (line 24) | fn parse_created_id(stdout: &str) -> String { function e2e_issue_252_show_update_defer_find_all_freshly_created_beads (line 42) | fn e2e_issue_252_show_update_defer_find_all_freshly_created_beads() { function e2e_issue_252_sync_flush_only_exports_every_freshly_created_bead (line 138) | fn e2e_issue_252_sync_flush_only_exports_every_freshly_created_bead() { FILE: tests/e2e_labels.rs function parse_created_id (line 15) | fn parse_created_id(stdout: &str) -> String { function e2e_label_add_single_verify_show (line 32) | fn e2e_label_add_single_verify_show() { function e2e_label_add_multiple_to_same_issue (line 75) | fn e2e_label_add_multiple_to_same_issue() { function e2e_label_remove_verify (line 116) | fn e2e_label_remove_verify() { function e2e_label_list_all (line 163) | fn e2e_label_list_all() { function e2e_label_add_same_to_multiple_issues (line 220) | fn e2e_label_add_same_to_multiple_issues() { function e2e_label_add_nonexistent_issue_error (line 266) | fn e2e_label_add_nonexistent_issue_error() { function e2e_label_remove_nonexistent_noop (line 289) | fn e2e_label_remove_nonexistent_noop() { function e2e_label_invalid_format_error (line 320) | fn e2e_label_invalid_format_error() { function e2e_label_special_characters (line 362) | fn e2e_label_special_characters() { function e2e_label_very_long_name (line 419) | fn e2e_label_very_long_name() { function e2e_label_case_sensitivity (line 442) | fn e2e_label_case_sensitivity() { function e2e_label_on_closed_issue (line 486) | fn e2e_label_on_closed_issue() { function e2e_label_add_json_output (line 530) | fn e2e_label_add_json_output() { function e2e_label_add_duplicate (line 558) | fn e2e_label_add_duplicate() { function e2e_label_rename (line 586) | fn e2e_label_rename() { function e2e_label_rename_rejects_long_new_name (line 631) | fn e2e_label_rename_rejects_long_new_name() { function e2e_label_persistence_jsonl (line 660) | fn e2e_label_persistence_jsonl() { function beads_rust_dataset_available (line 706) | fn beads_rust_dataset_available() -> bool { function e2e_harness_label_list_all_fresh (line 712) | fn e2e_harness_label_list_all_fresh() { function e2e_harness_label_list_all_real_dataset (line 787) | fn e2e_harness_label_list_all_real_dataset() { function e2e_harness_label_rename_fresh (line 849) | fn e2e_harness_label_rename_fresh() { function e2e_harness_label_rename_real_dataset (line 938) | fn e2e_harness_label_rename_real_dataset() { function e2e_harness_label_list_all_empty (line 1028) | fn e2e_harness_label_list_all_empty() { function e2e_harness_label_rename_nonexistent (line 1055) | fn e2e_harness_label_rename_nonexistent() { FILE: tests/e2e_lint.rs function parse_created_id (line 25) | fn parse_created_id(stdout: &str) -> String { function init_workspace (line 36) | fn init_workspace(workspace: &BrWorkspace) { function create_issue_with_description (line 41) | fn create_issue_with_description( function e2e_lint_clean_workspace_no_issues (line 69) | fn e2e_lint_clean_workspace_no_issues() { function e2e_lint_clean_workspace_json_empty_results (line 85) | fn e2e_lint_clean_workspace_json_empty_results() { function e2e_lint_issue_with_all_required_sections_passes (line 106) | fn e2e_lint_issue_with_all_required_sections_passes() { function e2e_lint_bug_missing_steps_to_reproduce (line 130) | fn e2e_lint_bug_missing_steps_to_reproduce() { function e2e_lint_bug_missing_acceptance_criteria (line 165) | fn e2e_lint_bug_missing_acceptance_criteria() { function e2e_lint_bug_missing_all_sections (line 194) | fn e2e_lint_bug_missing_all_sections() { function e2e_lint_task_missing_acceptance_criteria (line 220) | fn e2e_lint_task_missing_acceptance_criteria() { function e2e_lint_epic_missing_success_criteria (line 249) | fn e2e_lint_epic_missing_success_criteria() { function e2e_lint_chore_no_required_sections (line 278) | fn e2e_lint_chore_no_required_sections() { function e2e_lint_filter_by_type_bug (line 300) | fn e2e_lint_filter_by_type_bug() { function e2e_lint_filter_by_status_all (line 334) | fn e2e_lint_filter_by_status_all() { function e2e_lint_filter_by_status_deferred (line 383) | fn e2e_lint_filter_by_status_deferred() { function e2e_lint_specific_issue_id (line 427) | fn e2e_lint_specific_issue_id() { function e2e_lint_json_output_structure (line 461) | fn e2e_lint_json_output_structure() { function e2e_lint_json_exit_code_always_zero (line 512) | fn e2e_lint_json_exit_code_always_zero() { function e2e_lint_text_output_warnings (line 534) | fn e2e_lint_text_output_warnings() { function e2e_lint_text_exit_code_nonzero_with_warnings (line 561) | fn e2e_lint_text_exit_code_nonzero_with_warnings() { function e2e_lint_before_init_fails (line 581) | fn e2e_lint_before_init_fails() { function e2e_lint_nonexistent_id_error (line 599) | fn e2e_lint_nonexistent_id_error() { function e2e_lint_unknown_type_filter_no_matches (line 620) | fn e2e_lint_unknown_type_filter_no_matches() { function e2e_lint_case_insensitive_section_matching (line 653) | fn e2e_lint_case_insensitive_section_matching() { function e2e_lint_multiple_issues_with_warnings (line 677) | fn e2e_lint_multiple_issues_with_warnings() { FILE: tests/e2e_list_comprehensive.rs function parse_created_id (line 20) | fn parse_created_id(stdout: &str) -> String { function setup_diverse_workspace (line 33) | fn setup_diverse_workspace() -> (BrWorkspace, Vec) { function e2e_list_basic_text_output (line 165) | fn e2e_list_basic_text_output() { function e2e_list_json_output (line 200) | fn e2e_list_json_output() { function e2e_list_csv_output (line 223) | fn e2e_list_csv_output() { function e2e_list_status_filter_open (line 246) | fn e2e_list_status_filter_open() { function e2e_list_status_filter_closed (line 266) | fn e2e_list_status_filter_closed() { function e2e_list_status_filter_deferred (line 286) | fn e2e_list_status_filter_deferred() { function e2e_list_all_includes_closed (line 306) | fn e2e_list_all_includes_closed() { function e2e_list_multiple_status_filter (line 326) | fn e2e_list_multiple_status_filter() { function e2e_list_type_filter_task (line 357) | fn e2e_list_type_filter_task() { function e2e_list_type_filter_bug (line 378) | fn e2e_list_type_filter_bug() { function e2e_list_multiple_type_filter (line 398) | fn e2e_list_multiple_type_filter() { function e2e_list_priority_filter_exact (line 427) | fn e2e_list_priority_filter_exact() { function e2e_list_priority_min (line 447) | fn e2e_list_priority_min() { function e2e_list_priority_max (line 471) | fn e2e_list_priority_max() { function e2e_list_priority_range (line 494) | fn e2e_list_priority_range() { function e2e_list_label_filter_and (line 532) | fn e2e_list_label_filter_and() { function e2e_list_label_filter_multiple_and (line 553) | fn e2e_list_label_filter_multiple_and() { function e2e_list_label_filter_or (line 573) | fn e2e_list_label_filter_or() { function e2e_list_assignee_filter (line 605) | fn e2e_list_assignee_filter() { function e2e_list_unassigned_filter (line 625) | fn e2e_list_unassigned_filter() { function e2e_list_title_contains (line 654) | fn e2e_list_title_contains() { function e2e_list_desc_contains (line 674) | fn e2e_list_desc_contains() { function e2e_list_sort_by_priority (line 697) | fn e2e_list_sort_by_priority() { function e2e_list_sort_by_priority_reverse (line 724) | fn e2e_list_sort_by_priority_reverse() { function e2e_list_sort_by_title (line 752) | fn e2e_list_sort_by_title() { function e2e_list_limit (line 780) | fn e2e_list_limit() { function e2e_list_limit_with_label_filter (line 794) | fn e2e_list_limit_with_label_filter() { function e2e_list_limit_zero_unlimited (line 812) | fn e2e_list_limit_zero_unlimited() { function e2e_list_deferred_flag (line 835) | fn e2e_list_deferred_flag() { function e2e_list_long_format (line 863) | fn e2e_list_long_format() { function e2e_list_pretty_format (line 883) | fn e2e_list_pretty_format() { function e2e_list_default_and_pretty_outputs_differ (line 898) | fn e2e_list_default_and_pretty_outputs_differ() { function e2e_list_csv_custom_fields (line 914) | fn e2e_list_csv_custom_fields() { function e2e_list_csv_escaping (line 940) | fn e2e_list_csv_escaping() { function count_csv_field_separators (line 992) | fn count_csv_field_separators(line: &str) -> usize { function e2e_list_combined_filters (line 1012) | fn e2e_list_combined_filters() { function e2e_list_empty_result (line 1041) | fn e2e_list_empty_result() { function e2e_list_before_init_fails (line 1071) | fn e2e_list_before_init_fails() { function e2e_list_custom_status (line 1088) | fn e2e_list_custom_status() { function e2e_list_custom_type (line 1109) | fn e2e_list_custom_type() { FILE: tests/e2e_list_priority.rs function test_list_priority_accepts_p_prefix (line 5) | fn test_list_priority_accepts_p_prefix() { function test_list_csv_default_header_and_escaping (line 36) | fn test_list_csv_default_header_and_escaping() { function test_list_csv_fields_with_newlines (line 61) | fn test_list_csv_fields_with_newlines() { FILE: tests/e2e_list_scenarios.rs function setup_diverse_workspace (line 25) | fn setup_diverse_workspace() -> (BrWorkspace, Vec) { function list_filter_by_status_open (line 207) | fn list_filter_by_status_open() { function list_filter_by_status_closed (line 237) | fn list_filter_by_status_closed() { function list_filter_by_status_in_progress (line 254) | fn list_filter_by_status_in_progress() { function list_filter_by_status_deferred (line 272) | fn list_filter_by_status_deferred() { function list_include_closed_shows_all (line 289) | fn list_include_closed_shows_all() { function list_filter_by_type_bug (line 312) | fn list_filter_by_type_bug() { function list_filter_by_type_feature (line 337) | fn list_filter_by_type_feature() { function list_filter_by_type_task (line 356) | fn list_filter_by_type_task() { function list_filter_by_priority_p0 (line 376) | fn list_filter_by_priority_p0() { function list_filter_by_priority_p1 (line 395) | fn list_filter_by_priority_p1() { function list_filter_by_multiple_priorities (line 414) | fn list_filter_by_multiple_priorities() { function list_filter_by_assignee (line 443) | fn list_filter_by_assignee() { function list_filter_by_unassigned (line 462) | fn list_filter_by_unassigned() { function list_filter_by_label_single (line 490) | fn list_filter_by_label_single() { function list_filter_by_label_multiple (line 506) | fn list_filter_by_label_multiple() { function list_combined_filters_type_and_priority (line 538) | fn list_combined_filters_type_and_priority() { function list_combined_filters_assignee_and_label (line 556) | fn list_combined_filters_assignee_and_label() { function list_sort_by_priority_asc (line 593) | fn list_sort_by_priority_asc() { function list_sort_by_priority_desc (line 622) | fn list_sort_by_priority_desc() { function list_sort_by_created_at_desc (line 650) | fn list_sort_by_created_at_desc() { function list_sort_by_created_at_asc (line 680) | fn list_sort_by_created_at_asc() { function list_with_limit (line 714) | fn list_with_limit() { function list_with_limit_zero_unlimited (line 730) | fn list_with_limit_zero_unlimited() { function list_text_output_format (line 757) | fn list_text_output_format() { function list_json_output_format (line 775) | fn list_json_output_format() { function list_csv_output_format (line 801) | fn list_csv_output_format() { function list_csv_with_custom_fields (line 817) | fn list_csv_with_custom_fields() { function list_empty_workspace (line 845) | fn list_empty_workspace() { function list_filter_no_matches (line 860) | fn list_filter_no_matches() { function list_filter_nonexistent_label (line 873) | fn list_filter_nonexistent_label() { function list_filter_nonexistent_assignee (line 889) | fn list_filter_nonexistent_assignee() { function list_before_init_fails (line 909) | fn list_before_init_fails() { function list_issue_with_special_chars_in_title (line 925) | fn list_issue_with_special_chars_in_title() { FILE: tests/e2e_orphans.rs function init_git (line 16) | fn init_git(workspace: &BrWorkspace, label: &str) { function git_commit (line 40) | fn git_commit(workspace: &BrWorkspace, message: &str, label: &str) { function parse_created_id (line 69) | fn parse_created_id(stdout: &str) -> String { function rewrite_jsonl_issue_as_closed (line 80) | fn rewrite_jsonl_issue_as_closed(workspace: &BrWorkspace, issue_id: &str) { function e2e_orphans_no_orphans_empty_list (line 108) | fn e2e_orphans_no_orphans_empty_list() { function e2e_orphans_detects_open_issue_in_commit (line 141) | fn e2e_orphans_detects_open_issue_in_commit() { function e2e_orphans_auto_imports_newer_jsonl_before_scanning_issue_state (line 186) | fn e2e_orphans_auto_imports_newer_jsonl_before_scanning_issue_state() { function e2e_orphans_detects_issue_without_parens (line 226) | fn e2e_orphans_detects_issue_without_parens() { function e2e_orphans_json_output_structure (line 262) | fn e2e_orphans_json_output_structure() { function e2e_orphans_excludes_closed_issues (line 313) | fn e2e_orphans_excludes_closed_issues() { function e2e_orphans_includes_in_progress_issues (line 355) | fn e2e_orphans_includes_in_progress_issues() { function e2e_orphans_before_init_returns_empty (line 402) | fn e2e_orphans_before_init_returns_empty() { function e2e_orphans_not_git_repo_returns_empty (line 426) | fn e2e_orphans_not_git_repo_returns_empty() { function e2e_orphans_multiple_issues_multiple_commits (line 455) | fn e2e_orphans_multiple_issues_multiple_commits() { function e2e_orphans_robot_flag_json_output (line 515) | fn e2e_orphans_robot_flag_json_output() { function e2e_orphans_robot_flag_overrides_toon_env_output (line 548) | fn e2e_orphans_robot_flag_overrides_toon_env_output() { function e2e_orphans_empty_json_array_when_no_orphans (line 593) | fn e2e_orphans_empty_json_array_when_no_orphans() { function e2e_orphans_empty_robot_output_overrides_toon_env_output (line 621) | fn e2e_orphans_empty_robot_output_overrides_toon_env_output() { function e2e_orphans_details_flag_shows_commit_info (line 653) | fn e2e_orphans_details_flag_shows_commit_info() { function e2e_orphans_issue_referenced_multiple_times (line 695) | fn e2e_orphans_issue_referenced_multiple_times() { FILE: tests/e2e_queries.rs function parse_created_id (line 8) | fn parse_created_id(stdout: &str) -> String { function e2e_queries_ready_stale_count_search (line 21) | fn e2e_queries_ready_stale_count_search() { function e2e_query_run_inherits_env_json_output (line 288) | fn e2e_query_run_inherits_env_json_output() { function e2e_stats_command (line 325) | fn e2e_stats_command() { function e2e_config_command (line 455) | fn e2e_config_command() { function e2e_reopen_command (line 520) | fn e2e_reopen_command() { function e2e_reopen_honors_env_json_mode (line 632) | fn e2e_reopen_honors_env_json_mode() { function e2e_reopen_tombstone_skips_without_resurrection (line 673) | fn e2e_reopen_tombstone_skips_without_resurrection() { function e2e_saved_queries_lifecycle (line 751) | fn e2e_saved_queries_lifecycle() { function e2e_saved_queries_errors (line 966) | fn e2e_saved_queries_errors() { function e2e_saved_queries_reject_no_db_mode (line 1035) | fn e2e_saved_queries_reject_no_db_mode() { function e2e_saved_queries_run_with_overrides (line 1082) | fn e2e_saved_queries_run_with_overrides() { function e2e_saved_queries_assignee_override_clears_unassigned (line 1155) | fn e2e_saved_queries_assignee_override_clears_unassigned() { FILE: tests/e2e_quick_capture.rs function q_creates_issue_returns_id_only (line 22) | fn q_creates_issue_returns_id_only() { function q_with_type_flag (line 48) | fn q_with_type_flag() { function q_with_priority_flag (line 79) | fn q_with_priority_flag() { function q_with_all_flags (line 106) | fn q_with_all_flags() { function q_with_labels (line 162) | fn q_with_labels() { function q_updates_last_touched_context (line 202) | fn q_updates_last_touched_context() { function q_multiple_words_title (line 238) | fn q_multiple_words_title() { function q_output_is_valid_id (line 273) | fn q_output_is_valid_id() { function q_issue_appears_in_list (line 300) | fn q_issue_appears_in_list() { function q_parent_accepts_short_parent_id (line 323) | fn q_parent_accepts_short_parent_id() { function q_without_init_fails (line 379) | fn q_without_init_fails() { function q_empty_title_fails (line 404) | fn q_empty_title_fails() { function q_rejects_overlong_title_without_persisting (line 429) | fn q_rejects_overlong_title_without_persisting() { function q_with_custom_type_succeeds (line 459) | fn q_with_custom_type_succeeds() { function q_invalid_priority_fails (line 488) | fn q_invalid_priority_fails() { function q_output_usable_in_pipeline (line 521) | fn q_output_usable_in_pipeline() { function q_multiple_creates_unique_ids (line 560) | fn q_multiple_creates_unique_ids() { function q_silent_mode_stderr (line 597) | fn q_silent_mode_stderr() { function q_with_p_prefix_priority (line 633) | fn q_with_p_prefix_priority() { function q_special_characters_in_title (line 663) | fn q_special_characters_in_title() { function q_default_values (line 693) | fn q_default_values() { function q_status_is_always_open (line 721) | fn q_status_is_always_open() { FILE: tests/e2e_raw_fsqlite_rebuilt_lookup.rs function extract_json (line 11) | fn extract_json(run_stdout: &str) -> Value { function scan_issue_ids (line 16) | fn scan_issue_ids(conn: &Connection) -> Vec { function keyed_issue_ids (line 29) | fn keyed_issue_ids(conn: &Connection, id: &str) -> Vec { function keyed_issue_row (line 45) | fn keyed_issue_row(conn: &Connection, id: &str) -> Option { function keyed_text_value (line 60) | fn keyed_text_value(conn: &Connection, sql: &str, key: &str) -> Option String { function setup_workspace_with_issues (line 18) | fn setup_workspace_with_issues() -> (BrWorkspace, Vec) { function ready_cli_excludes_in_progress_issues (line 126) | fn ready_cli_excludes_in_progress_issues() { function ready_cli_text_reports_no_ready_issues_when_work_exists (line 187) | fn ready_cli_text_reports_no_ready_issues_when_work_exists() { function ready_cli_filters_by_assignee (line 228) | fn ready_cli_filters_by_assignee() { function ready_cli_assignee_flag_without_value_uses_actor (line 259) | fn ready_cli_assignee_flag_without_value_uses_actor() { function ready_respects_external_dependencies (line 290) | fn ready_respects_external_dependencies() { function ready_cli_filters_unassigned_only (line 406) | fn ready_cli_filters_unassigned_only() { function ready_cli_filters_by_type (line 437) | fn ready_cli_filters_by_type() { function ready_cli_filters_by_multiple_types (line 460) | fn ready_cli_filters_by_multiple_types() { function ready_cli_filters_by_priority (line 484) | fn ready_cli_filters_by_priority() { function ready_cli_filters_by_multiple_priorities (line 505) | fn ready_cli_filters_by_multiple_priorities() { function ready_cli_filters_by_label_and (line 529) | fn ready_cli_filters_by_label_and() { function ready_cli_filters_by_multiple_labels_and (line 561) | fn ready_cli_filters_by_multiple_labels_and() { function ready_cli_filters_by_label_or (line 582) | fn ready_cli_filters_by_label_or() { function ready_cli_respects_limit (line 609) | fn ready_cli_respects_limit() { function ready_cli_limit_zero_returns_all (line 627) | fn ready_cli_limit_zero_returns_all() { function ready_cli_sort_priority (line 646) | fn ready_cli_sort_priority() { function ready_cli_combined_filters (line 667) | fn ready_cli_combined_filters() { function ready_cli_excludes_blocked_issues (line 699) | fn ready_cli_excludes_blocked_issues() { function ready_cli_excludes_deferred_by_default (line 729) | fn ready_cli_excludes_deferred_by_default() { function ready_cli_includes_deferred_with_flag (line 769) | fn ready_cli_includes_deferred_with_flag() { function ready_cli_text_output_format (line 809) | fn ready_cli_text_output_format() { function ready_cli_empty_result_message (line 823) | fn ready_cli_empty_result_message() { function ready_cli_priority_p_format (line 844) | fn ready_cli_priority_p_format() { FILE: tests/e2e_ready_limit.rs function test_ready_limit_with_external_blockers (line 5) | fn test_ready_limit_with_external_blockers() { FILE: tests/e2e_relations.rs function parse_created_id (line 10) | fn parse_created_id(stdout: &str) -> String { function e2e_relations_labels_comments (line 22) | fn e2e_relations_labels_comments() { function e2e_label_add_updates_last_touched_context (line 115) | fn e2e_label_add_updates_last_touched_context() { function e2e_comments_add_updates_last_touched_context (line 188) | fn e2e_comments_add_updates_last_touched_context() { function e2e_dep_add_list_blocked_remove (line 265) | fn e2e_dep_add_list_blocked_remove() { function e2e_dep_add_updates_last_touched_context (line 355) | fn e2e_dep_add_updates_last_touched_context() { function e2e_dep_remove_updates_last_touched_context (line 419) | fn e2e_dep_remove_updates_last_touched_context() { function e2e_dep_tree_external_nodes (line 530) | fn e2e_dep_tree_external_nodes() { function e2e_dep_list_external_nodes (line 645) | fn e2e_dep_list_external_nodes() { function e2e_close_suggest_next_unblocks (line 759) | fn e2e_close_suggest_next_unblocks() { function e2e_close_blocked_requires_force (line 815) | fn e2e_close_blocked_requires_force() { function e2e_close_json_reports_closed_and_skipped_in_partial_batch (line 914) | fn e2e_close_json_reports_closed_and_skipped_in_partial_batch() { function e2e_close_honors_env_json_mode (line 1002) | fn e2e_close_honors_env_json_mode() { FILE: tests/e2e_report_generation.rs function create_sample_artifacts (line 25) | fn create_sample_artifacts(base_dir: &std::path::Path) -> std::io::Resul... function test_report_indexer_basic (line 78) | fn test_report_indexer_basic() { function test_markdown_report (line 113) | fn test_markdown_report() { function test_html_report (line 146) | fn test_html_report() { function test_write_reports (line 175) | fn test_write_reports() { function test_failures_only_filter (line 200) | fn test_failures_only_filter() { function generate_and_save_report (line 230) | fn generate_and_save_report() { FILE: tests/e2e_routing.rs function create_routes_file (line 21) | fn create_routes_file(workspace: &BrWorkspace, entries: &[(&str, &str)]) { function create_redirect_file (line 32) | fn create_redirect_file(beads_dir: &std::path::Path, target: &str) { function init_workspace (line 37) | fn init_workspace(workspace: &BrWorkspace, label: &str) { function configure_external_route (line 42) | fn configure_external_route(main_workspace: &BrWorkspace, external_works... function create_issue_and_get_id (line 55) | fn create_issue_and_get_id(workspace: &BrWorkspace, title: &str, label: ... function show_issue_json (line 63) | fn show_issue_json(workspace: &BrWorkspace, issue_id: &str, label: &str)... function issue_from_jsonl (line 69) | fn issue_from_jsonl(workspace: &BrWorkspace, issue_id: &str) -> Value { function last_touched_path (line 79) | fn last_touched_path(workspace: &BrWorkspace) -> PathBuf { function switch_workspace_to_custom_database (line 83) | fn switch_workspace_to_custom_database(workspace: &BrWorkspace, database... function routed_partial_id (line 95) | fn routed_partial_id(issue_id: &str) -> String { function init_test_git_repo (line 101) | fn init_test_git_repo(repo_root: &std::path::Path) -> String { function e2e_routing_local_prefix_no_routes_file (line 153) | fn e2e_routing_local_prefix_no_routes_file() { function e2e_routing_routes_jsonl_local_route (line 187) | fn e2e_routing_routes_jsonl_local_route() { function e2e_routing_routes_jsonl_malformed_line (line 224) | fn e2e_routing_routes_jsonl_malformed_line() { function e2e_routing_routes_jsonl_external_route (line 264) | fn e2e_routing_routes_jsonl_external_route() { function e2e_routing_external_target_lock_blocks_routed_access (line 340) | fn e2e_routing_external_target_lock_blocks_routed_access() { function e2e_routing_show_format_json_routes_external_issue (line 396) | fn e2e_routing_show_format_json_routes_external_issue() { function e2e_routing_show_format_toon_routes_external_issue (line 430) | fn e2e_routing_show_format_toon_routes_external_issue() { function e2e_routing_show_json_preserves_requested_order_across_routes (line 464) | fn e2e_routing_show_json_preserves_requested_order_across_routes() { function e2e_routing_show_text_preserves_requested_order_across_routes (line 569) | fn e2e_routing_show_text_preserves_requested_order_across_routes() { function e2e_routing_update_external_issue_via_main_workspace (line 679) | fn e2e_routing_update_external_issue_via_main_workspace() { function e2e_routing_update_sets_invoking_workspace_last_touched_for_follow_up_close (line 752) | fn e2e_routing_update_sets_invoking_workspace_last_touched_for_follow_up... function e2e_routing_close_external_issue_via_main_workspace (line 829) | fn e2e_routing_close_external_issue_via_main_workspace() { function e2e_routing_close_sets_invoking_workspace_last_touched_for_follow_up_reopen (line 895) | fn e2e_routing_close_sets_invoking_workspace_last_touched_for_follow_up_... function e2e_routing_reopen_external_issue_via_main_workspace (line 972) | fn e2e_routing_reopen_external_issue_via_main_workspace() { function e2e_routing_defer_and_undefer_external_issue_via_main_workspace (line 1045) | fn e2e_routing_defer_and_undefer_external_issue_via_main_workspace() { function e2e_routing_label_add_and_list_external_issue_via_main_workspace (line 1153) | fn e2e_routing_label_add_and_list_external_issue_via_main_workspace() { function e2e_routing_label_add_sets_invoking_workspace_last_touched_for_follow_up_update (line 1249) | fn e2e_routing_label_add_sets_invoking_workspace_last_touched_for_follow... function e2e_routing_comments_add_and_list_external_issue_via_main_workspace (line 1327) | fn e2e_routing_comments_add_and_list_external_issue_via_main_workspace() { function e2e_routing_comments_add_sets_invoking_workspace_last_touched_for_follow_up_update (line 1421) | fn e2e_routing_comments_add_sets_invoking_workspace_last_touched_for_fol... function e2e_routing_dep_add_remove_and_list_external_issue_via_main_workspace (line 1505) | fn e2e_routing_dep_add_remove_and_list_external_issue_via_main_workspace... function e2e_routing_dep_add_sets_invoking_workspace_last_touched_for_follow_up_update (line 1616) | fn e2e_routing_dep_add_sets_invoking_workspace_last_touched_for_follow_u... function e2e_routing_dep_add_rejects_direct_cross_project_target (line 1673) | fn e2e_routing_dep_add_rejects_direct_cross_project_target() { function e2e_routing_graph_external_issue_via_main_workspace (line 1707) | fn e2e_routing_graph_external_issue_via_main_workspace() { function e2e_routing_delete_external_issue_via_main_workspace (line 1762) | fn e2e_routing_delete_external_issue_via_main_workspace() { function e2e_routing_audit_log_external_issue_via_main_workspace (line 1795) | fn e2e_routing_audit_log_external_issue_via_main_workspace() { function e2e_routing_delete_preview_does_not_mutate_earlier_local_batch (line 1837) | fn e2e_routing_delete_preview_does_not_mutate_earlier_local_batch() { function e2e_routing_lint_external_issue_via_main_workspace (line 1911) | fn e2e_routing_lint_external_issue_via_main_workspace() { function e2e_routing_label_add_failure_does_not_mutate_earlier_batches (line 1952) | fn e2e_routing_label_add_failure_does_not_mutate_earlier_batches() { function e2e_routing_show_external_issue_uses_metadata_database_path (line 2046) | fn e2e_routing_show_external_issue_uses_metadata_database_path() { function e2e_routing_update_external_issue_uses_metadata_database_path (line 2104) | fn e2e_routing_update_external_issue_uses_metadata_database_path() { function e2e_routing_update_mixed_batches_preserve_local_db_override (line 2176) | fn e2e_routing_update_mixed_batches_preserve_local_db_override() { function e2e_routing_update_failure_does_not_print_partial_success (line 2367) | fn e2e_routing_update_failure_does_not_print_partial_success() { function e2e_routing_update_claim_failure_does_not_mutate_earlier_routes (line 2457) | fn e2e_routing_update_claim_failure_does_not_mutate_earlier_routes() { function e2e_routing_update_text_preserves_requested_order_across_routes (line 2525) | fn e2e_routing_update_text_preserves_requested_order_across_routes() { function e2e_routing_show_mixed_no_db_batches_preserve_local_db_override (line 2641) | fn e2e_routing_show_mixed_no_db_batches_preserve_local_db_override() { function e2e_routing_redirect_file_absolute_path (line 2746) | fn e2e_routing_redirect_file_absolute_path() { function e2e_routing_redirect_file_relative_path (line 2794) | fn e2e_routing_redirect_file_relative_path() { function e2e_routing_redirect_missing_target (line 2836) | fn e2e_routing_redirect_missing_target() { function e2e_routing_redirect_empty_file (line 2886) | fn e2e_routing_redirect_empty_file() { function e2e_routing_db_flag_external_path (line 2912) | fn e2e_routing_db_flag_external_path() { function e2e_routing_db_flag_external_db_uses_workspace_beads_dir (line 2962) | fn e2e_routing_db_flag_external_db_uses_workspace_beads_dir() { function e2e_config_get_db_flag_invalid_target_fails_instead_of_falling_back (line 3001) | fn e2e_config_get_db_flag_invalid_target_fails_instead_of_falling_back() { function e2e_config_delete_db_flag_invalid_target_preserves_yaml (line 3043) | fn e2e_config_delete_db_flag_invalid_target_preserves_yaml() { function e2e_changelog_since_commit_uses_target_repo_root (line 3077) | fn e2e_changelog_since_commit_uses_target_repo_root() { function e2e_routing_path_normalization (line 3148) | fn e2e_routing_path_normalization() { function e2e_routing_not_initialized_error (line 3192) | fn e2e_routing_not_initialized_error() { function e2e_routing_invalid_beads_dir_env (line 3212) | fn e2e_routing_invalid_beads_dir_env() { function e2e_routing_show_external_issue_not_found (line 3239) | fn e2e_routing_show_external_issue_not_found() { function e2e_routing_show_external_issue_not_found_quiet_still_fails (line 3292) | fn e2e_routing_show_external_issue_not_found_quiet_still_fails() { FILE: tests/e2e_schema.rs constant UPDATE_AGENT_BASELINE_ENV (line 16) | const UPDATE_AGENT_BASELINE_ENV: &str = "UPDATE_AGENT_BASELINE"; function e2e_schema_json_issue (line 19) | fn e2e_schema_json_issue() { function e2e_schema_toon_decodes (line 47) | fn e2e_schema_toon_decodes() { function agent_baseline_snapshots_match_current_binary (line 85) | fn agent_baseline_snapshots_match_current_binary() { function compare_agent_baseline_help (line 97) | fn compare_agent_baseline_help(workspace: &BrWorkspace) { function compare_agent_baseline_schemas (line 113) | fn compare_agent_baseline_schemas(workspace: &BrWorkspace) { function seed_agent_baseline_workspace (line 144) | fn seed_agent_baseline_workspace(workspace: &BrWorkspace) -> String { function compare_agent_baseline_examples (line 191) | fn compare_agent_baseline_examples(workspace: &BrWorkspace, id_two: &str) { function compare_agent_baseline_error (line 251) | fn compare_agent_baseline_error(workspace: &BrWorkspace) { function run_success (line 270) | fn run_success(workspace: &BrWorkspace, args: [&str; N],... function compare_text_baseline (line 282) | fn compare_text_baseline(relative_path: &str, actual: &str) { function compare_json_baseline (line 299) | fn compare_json_baseline(relative_path: &str, actual: &str, normalize: f... function compare_toon_baseline (line 323) | fn compare_toon_baseline(relative_path: &str, actual: &str) { function baseline_path (line 348) | fn baseline_path(relative_path: &str) -> PathBuf { function should_update_agent_baseline (line 355) | fn should_update_agent_baseline() -> bool { function with_trailing_newline (line 360) | fn with_trailing_newline(text: &str) -> String { function normalize_text_snapshot (line 365) | fn normalize_text_snapshot(text: &str) -> String { function normalize_schema_snapshot (line 376) | fn normalize_schema_snapshot(value: &mut Value) { function normalize_version_snapshot (line 386) | fn normalize_version_snapshot(value: &mut Value) { function normalize_issue_example_snapshot (line 397) | fn normalize_issue_example_snapshot(value: &mut Value) { function normalize_noop (line 425) | fn normalize_noop(_: &mut Value) {} FILE: tests/e2e_search_scenarios.rs function parse_created_id (line 17) | fn parse_created_id(stdout: &str) -> String { function setup_search_workspace (line 30) | fn setup_search_workspace() -> (BrWorkspace, Vec) { function search_basic_single_word (line 180) | fn search_basic_single_word() { function search_case_insensitive (line 210) | fn search_case_insensitive() { function search_multiple_words (line 235) | fn search_multiple_words() { function search_partial_word (line 257) | fn search_partial_word() { function search_with_status_filter (line 275) | fn search_with_status_filter() { function search_with_type_filter (line 298) | fn search_with_type_filter() { function search_with_priority_filter (line 321) | fn search_with_priority_filter() { function search_with_label_filter (line 339) | fn search_with_label_filter() { function search_include_closed (line 362) | fn search_include_closed() { function search_text_output (line 403) | fn search_text_output() { function search_json_output_structure (line 423) | fn search_json_output_structure() { function search_no_results (line 445) | fn search_no_results() { function search_empty_query (line 465) | fn search_empty_query() { function search_special_characters (line 480) | fn search_special_characters() { function search_with_numbers (line 510) | fn search_with_numbers() { function search_before_init_fails (line 524) | fn search_before_init_fails() { function search_finds_content_in_description (line 536) | fn search_finds_content_in_description() { function search_finds_content_in_title_only (line 551) | fn search_finds_content_in_title_only() { function search_combined_multiple_filters (line 574) | fn search_combined_multiple_filters() { FILE: tests/e2e_stale.rs function e2e_stale_basic (line 9) | fn e2e_stale_basic() { function e2e_stale_json_output (line 39) | fn e2e_stale_json_output() { function e2e_stale_with_status_filter (line 57) | fn e2e_stale_with_status_filter() { function e2e_stale_with_deferred_status_filter (line 88) | fn e2e_stale_with_deferred_status_filter() { function e2e_stale_default_includes_custom_nonterminal_statuses (line 136) | fn e2e_stale_default_includes_custom_nonterminal_statuses() { FILE: tests/e2e_stats.rs function init_and_populate (line 11) | fn init_and_populate(workspace: &BrWorkspace) { function stats_json_empty_workspace (line 52) | fn stats_json_empty_workspace() { function stats_json_populated_workspace (line 72) | fn stats_json_populated_workspace() { function stats_json_after_close (line 92) | fn stats_json_after_close() { function stats_json_with_deps_shows_blocked (line 123) | fn stats_json_with_deps_shows_blocked() { function stats_json_has_breakdowns (line 153) | fn stats_json_has_breakdowns() { function stats_plain_text_succeeds (line 169) | fn stats_plain_text_succeeds() { function stats_no_activity_flag_suppresses_activity (line 186) | fn stats_no_activity_flag_suppresses_activity() { FILE: tests/e2e_sync_artifacts.rs type TestArtifacts (line 31) | struct TestArtifacts { method new (line 45) | fn new(workspace: &BrWorkspace, test_name: &str) -> Self { method capture_snapshot (line 58) | fn capture_snapshot(&mut self, label: &str, dir: &Path) { method capture_jsonl (line 64) | fn capture_jsonl(&mut self, label: &str, path: &Path) { method record_command (line 74) | fn record_command(&mut self, label: &str, stdout: &str, stderr: &str, ... method persist (line 82) | fn persist(&self) { method diff_snapshots (line 118) | fn diff_snapshots(&self, label_before: &str, label_after: &str) -> Sna... type DirectorySnapshot (line 139) | struct DirectorySnapshot { method capture (line 145) | fn capture(dir: &Path) -> Self { method visit_dir (line 151) | fn visit_dir(dir: &Path, base: &Path, files: &mut BTreeMap SnapshotDiff { type SnapshotDiff (line 206) | struct SnapshotDiff { method is_empty (line 214) | fn is_empty(&self) -> bool { method only_beads_affected (line 219) | fn only_beads_affected(&self) -> bool { function e2e_sync_export_with_artifacts (line 240) | fn e2e_sync_export_with_artifacts() { function e2e_sync_import_with_artifacts (line 372) | fn e2e_sync_import_with_artifacts() { function e2e_sync_full_cycle_with_artifacts (line 458) | fn e2e_sync_full_cycle_with_artifacts() { function e2e_sync_status_with_artifacts (line 566) | fn e2e_sync_status_with_artifacts() { function e2e_sync_error_conflict_markers (line 625) | fn e2e_sync_error_conflict_markers() { function e2e_sync_export_empty_db (line 684) | fn e2e_sync_export_empty_db() { function e2e_sync_deterministic_export (line 741) | fn e2e_sync_deterministic_export() { function e2e_staleness_hash_check_prevents_false_touch (line 809) | fn e2e_staleness_hash_check_prevents_false_touch() { function e2e_staleness_detects_real_content_change (line 905) | fn e2e_staleness_detects_real_content_change() { function e2e_sync_import_force_preserves_integrity_and_close_works (line 994) | fn e2e_sync_import_force_preserves_integrity_and_close_works() { function e2e_rebuilt_alt_db_preserves_fresh_lookup_and_mutation_paths (line 1165) | fn e2e_rebuilt_alt_db_preserves_fresh_lookup_and_mutation_paths() { function run_sqlite3_pragma_integrity_check (line 1545) | fn run_sqlite3_pragma_integrity_check(db_path: &Path) -> String { FILE: tests/e2e_sync_failure_injection.rs constant WRITE_LOCK_WAIT_OBSERVATION_TIMEOUT (line 40) | const WRITE_LOCK_WAIT_OBSERVATION_TIMEOUT: Duration = Duration::from_sec... constant WRITE_LOCK_WAIT_POLL_INTERVAL (line 41) | const WRITE_LOCK_WAIT_POLL_INTERVAL: Duration = Duration::from_millis(25); type FailureTestArtifacts (line 44) | struct FailureTestArtifacts { method new (line 150) | fn new(test_name: &str) -> Self { method log (line 166) | fn log(&mut self, label: &str, content: &str) { method snapshot_dir (line 170) | fn snapshot_dir(&mut self, label: &str, path: &Path) { method save (line 178) | fn save(&self) { function export_temp_path_for_test (line 51) | fn export_temp_path_for_test(output_path: &Path) -> PathBuf { function should_clear_inherited_br_env (line 55) | fn should_clear_inherited_br_env(key: &OsStr) -> bool { function clear_inherited_br_env (line 65) | fn clear_inherited_br_env(cmd: &mut StdCommand) { function spawn_br_child (line 73) | fn spawn_br_child(workspace: &BrWorkspace, args: I) -> std::proces... function read_child_wait_channel (line 91) | fn read_child_wait_channel(pid: u32) -> Option { function is_write_lock_wait_channel (line 98) | fn is_write_lock_wait_channel(channel: &str) -> bool { function wait_for_child_to_block_on_write_lock (line 110) | fn wait_for_child_to_block_on_write_lock(child: &mut std::process::Child... function collect_files_recursive (line 200) | fn collect_files_recursive(base: &Path, current: &Path, files: &mut BTre... function create_test_issue (line 220) | fn create_test_issue(id: &str, title: &str) -> Issue { function compute_file_hash (line 226) | fn compute_file_hash(path: &Path) -> Option { function jsonl_export_temp_files (line 235) | fn jsonl_export_temp_files(beads_dir: &Path) -> Vec { function read_jsonl_values (line 252) | fn read_jsonl_values(path: &Path, context: &str) -> Vec { function parse_stdout_json (line 287) | fn parse_stdout_json(run: &BrRun, context: &str) -> Value { function assert_run_success (line 303) | fn assert_run_success(run: &BrRun, context: &str) { function assert_run_failure (line 317) | fn assert_run_failure(run: &BrRun, context: &str) { function sync_status_json (line 331) | fn sync_status_json(workspace: &BrWorkspace, label: &str) -> Value { function dirty_count (line 337) | fn dirty_count(status: &Value) -> u64 { function assert_dirty_status (line 343) | fn assert_dirty_status(status: &Value, context: &str) { function assert_clean_status (line 350) | fn assert_clean_status(status: &Value, context: &str) { function flush_and_assert_clean (line 363) | fn flush_and_assert_clean(workspace: &BrWorkspace, label: &str) { function assert_doctor_healthy (line 370) | fn assert_doctor_healthy(workspace: &BrWorkspace, label: &str) { function assert_stale_show_finds (line 390) | fn assert_stale_show_finds(workspace: &BrWorkspace, issue_id: &str, labe... function run_dirty_mutation (line 416) | fn run_dirty_mutation(workspace: &BrWorkspace, args: Vec, label:... function export_failure_readonly_dir_preserves_original (line 427) | fn export_failure_readonly_dir_preserves_original() { function export_failure_temp_file_preserves_original (line 498) | fn export_failure_temp_file_preserves_original() { function import_failure_missing_file_no_db_changes (line 548) | fn import_failure_missing_file_no_db_changes() { function import_failure_malformed_json_no_db_changes (line 588) | fn import_failure_malformed_json_no_db_changes() { function import_failure_conflict_markers_no_db_changes (line 638) | fn import_failure_conflict_markers_no_db_changes() { function import_failure_prefix_mismatch_no_db_changes (line 681) | fn import_failure_prefix_mismatch_no_db_changes() { function cli_export_readonly_preserves_state (line 728) | fn cli_export_readonly_preserves_state() { function cli_import_malformed_preserves_db (line 801) | fn cli_import_malformed_preserves_db() { function cli_mutation_crash_boundary_matrix_marks_dirty_until_recovered (line 878) | fn cli_mutation_crash_boundary_matrix_marks_dirty_until_recovered() { function cli_sync_crash_boundary_matrix_preserves_artifacts (line 1020) | fn cli_sync_crash_boundary_matrix_preserves_artifacts() { function cli_sync_flush_sigkill_while_waiting_for_write_lock_preserves_dirty_state (line 1171) | fn cli_sync_flush_sigkill_while_waiting_for_write_lock_preserves_dirty_s... function cli_sync_flush_concurrent_export_race_serializes_jsonl_sidecars (line 1289) | fn cli_sync_flush_concurrent_export_race_serializes_jsonl_sidecars() { function cli_symlinked_beads_target_offline_recovers_after_restore (line 1423) | fn cli_symlinked_beads_target_offline_recovers_after_restore() { function export_preserves_large_existing_jsonl (line 1523) | fn export_preserves_large_existing_jsonl() { function export_cleans_up_temp_file_on_success (line 1586) | fn export_cleans_up_temp_file_on_success() { function multiple_export_failures_no_accumulation (line 1625) | fn multiple_export_failures_no_accumulation() { function atomic_write_pipeline_produces_valid_output (line 1677) | fn atomic_write_pipeline_produces_valid_output() { function stale_temp_file_handled_gracefully (line 1749) | fn stale_temp_file_handled_gracefully() { function export_empty_db_produces_empty_jsonl (line 1805) | fn export_empty_db_produces_empty_jsonl() { function export_sets_correct_permissions (line 1852) | fn export_sets_correct_permissions() { FILE: tests/e2e_sync_fuzz_edge_cases.rs function setup_workspace_with_issues (line 30) | fn setup_workspace_with_issues() -> BrWorkspace { function edge_case_import_rejects_partial_lines (line 67) | fn edge_case_import_rejects_partial_lines() { function edge_case_rename_prefix_rejects_malformed_jsonl_before_config_write (line 130) | fn edge_case_rename_prefix_rejects_malformed_jsonl_before_config_write() { function edge_case_import_rejects_invalid_json (line 186) | fn edge_case_import_rejects_invalid_json() { function edge_case_import_handles_empty_lines (line 249) | fn edge_case_import_handles_empty_lines() { function edge_case_import_rejects_conflict_markers (line 294) | fn edge_case_import_rejects_conflict_markers() { function edge_case_path_traversal_blocked (line 394) | fn edge_case_path_traversal_blocked() { function edge_case_symlink_escape_blocked (line 452) | fn edge_case_symlink_escape_blocked() { function edge_case_huge_line (line 520) | fn edge_case_huge_line() { function edge_case_invalid_utf8 (line 594) | fn edge_case_invalid_utf8() { function edge_case_whitespace_only (line 655) | fn edge_case_whitespace_only() { function edge_case_empty_file (line 693) | fn edge_case_empty_file() { function edge_case_deeply_nested_json (line 732) | fn edge_case_deeply_nested_json() { function edge_case_no_partial_writes_on_failure (line 797) | fn edge_case_no_partial_writes_on_failure() { FILE: tests/e2e_sync_git_safety.rs function visit_dir (line 28) | fn visit_dir(dir: &Path, base: &Path, hash_map: &mut BTreeMap BTreeMap { function get_git_status (line 66) | fn get_git_status(dir: &Path) -> String { function get_head_commit (line 76) | fn get_head_commit(dir: &Path) -> Option { function get_commit_count (line 87) | fn get_commit_count(dir: &Path) -> usize { function init_git_repo (line 103) | fn init_git_repo(workspace: &BrWorkspace) { function regression_sync_export_does_not_create_commits (line 146) | fn regression_sync_export_does_not_create_commits() { function regression_sync_import_does_not_create_commits (line 269) | fn regression_sync_import_does_not_create_commits() { function regression_full_sync_cycle_does_not_touch_git (line 370) | fn regression_full_sync_cycle_does_not_touch_git() { function regression_sync_manifest_does_not_touch_git (line 488) | fn regression_sync_manifest_does_not_touch_git() { function regression_sync_never_touches_source_files (line 536) | fn regression_sync_never_touches_source_files() { function is_allowed_sync_file (line 637) | fn is_allowed_sync_file(rel_path: &str) -> bool { type FileTreeSnapshot (line 695) | struct FileTreeSnapshot { method new (line 704) | fn new(root: &Path) -> Self { method collect_files (line 713) | fn collect_files(dir: &Path, base: &Path, files: &mut BTreeMap FileTreeDiff { type FileChange (line 799) | struct FileChange { method format_detail (line 808) | fn format_detail(&self) -> String { type FileTreeDiff (line 837) | struct FileTreeDiff { method has_changes (line 846) | fn has_changes(&self) -> bool { method check_allowed_changes (line 852) | fn check_allowed_changes(&self) -> (Vec<&FileChange>, Vec<&FileChange>) { method format_log (line 885) | fn format_log(&self) -> String { function integration_sync_only_touches_allowed_files (line 951) | fn integration_sync_only_touches_allowed_files() { function create_realistic_project (line 1303) | fn create_realistic_project(workspace: &BrWorkspace) { function count_files (line 1398) | fn count_files(dir: &Path) -> usize { function integration_sync_manifest_only_touches_allowed_files (line 1415) | fn integration_sync_manifest_only_touches_allowed_files() { FILE: tests/e2e_sync_preflight_integration.rs function snapshot_directory (line 42) | fn snapshot_directory(dir: &Path) -> HashMap> { function assert_directory_unchanged (line 63) | fn assert_directory_unchanged(before: &HashMap>, dir: &P... function setup_workspace_with_issues (line 107) | fn setup_workspace_with_issues() -> BrWorkspace { function preflight_import_rejects_conflict_markers (line 139) | fn preflight_import_rejects_conflict_markers() { function preflight_import_conflict_markers_shows_line_numbers (line 245) | fn preflight_import_conflict_markers_shows_line_numbers() { function preflight_import_rejects_outside_beads_dir (line 291) | fn preflight_import_rejects_outside_beads_dir() { function preflight_import_rejects_git_paths (line 354) | fn preflight_import_rejects_git_paths() { function preflight_import_rejects_path_traversal (line 403) | fn preflight_import_rejects_path_traversal() { function preflight_export_rejects_git_paths (line 446) | fn preflight_export_rejects_git_paths() { function preflight_export_warns_empty_db_over_nonempty_jsonl (line 477) | fn preflight_export_warns_empty_db_over_nonempty_jsonl() { function preflight_results_are_actionable (line 520) | fn preflight_results_are_actionable() { function cli_import_shows_preflight_failure (line 578) | fn cli_import_shows_preflight_failure() { FILE: tests/e2e_terminal_sanitization.rs function assert_no_terminal_controls (line 7) | fn assert_no_terminal_controls(output: &str) { function human_output_escapes_terminal_controls_but_json_preserves_values (line 17) | fn human_output_escapes_terminal_controls_but_json_preserves_values() { FILE: tests/e2e_undefer.rs function test_soft_defer_behavior (line 5) | fn test_soft_defer_behavior() { function test_soft_defer_preserves_in_progress_status (line 77) | fn test_soft_defer_preserves_in_progress_status() { FILE: tests/e2e_upgrade.rs function e2e_version_shows_version (line 26) | fn e2e_version_shows_version() { function e2e_version_json_output (line 45) | fn e2e_version_json_output() { function e2e_version_no_workspace_required (line 67) | fn e2e_version_no_workspace_required() { function e2e_version_quiet_suppresses_output (line 81) | fn e2e_version_quiet_suppresses_output() { function e2e_upgrade_check_attempts_api_call (line 102) | fn e2e_upgrade_check_attempts_api_call() { function e2e_upgrade_check_json_error_structure (line 120) | fn e2e_upgrade_check_json_error_structure() { function e2e_upgrade_dry_run_no_changes (line 154) | fn e2e_upgrade_dry_run_no_changes() { function e2e_upgrade_dry_run_json (line 173) | fn e2e_upgrade_dry_run_json() { function e2e_upgrade_check_quiet_suppresses_output (line 202) | fn e2e_upgrade_check_quiet_suppresses_output() { function e2e_upgrade_dry_run_quiet_suppresses_output (line 219) | fn e2e_upgrade_dry_run_quiet_suppresses_output() { function e2e_upgrade_with_version_flag (line 240) | fn e2e_upgrade_with_version_flag() { function e2e_upgrade_force_flag_accepted (line 262) | fn e2e_upgrade_force_flag_accepted() { function e2e_upgrade_graceful_network_error (line 285) | fn e2e_upgrade_graceful_network_error() { function e2e_upgrade_no_workspace_required (line 322) | fn e2e_upgrade_no_workspace_required() { function e2e_upgrade_check_with_force_error (line 342) | fn e2e_upgrade_check_with_force_error() { function e2e_upgrade_help_works (line 364) | fn e2e_upgrade_help_works() { function e2e_upgrade_feature_enabled (line 388) | fn e2e_upgrade_feature_enabled() { function full_upgrade_tests_enabled (line 425) | fn full_upgrade_tests_enabled() -> bool { function setup_isolated_binary (line 432) | fn setup_isolated_binary(workspace: &BrWorkspace) -> Option Value { function assert_doctor_json_has_healthy_checks (line 28) | fn assert_doctor_json_has_healthy_checks(json: &Value) { function scenario_init_new_workspace (line 51) | fn scenario_init_new_workspace() { function scenario_init_reinit_rejected_without_force (line 80) | fn scenario_init_reinit_rejected_without_force() { function scenario_init_json_output (line 116) | fn scenario_init_json_output() { function scenario_config_list (line 140) | fn scenario_config_list() { function scenario_config_list_json (line 158) | fn scenario_config_list_json() { function scenario_config_set_and_get (line 175) | fn scenario_config_set_and_get() { function scenario_config_get_json (line 198) | fn scenario_config_get_json() { function scenario_config_path (line 220) | fn scenario_config_path() { function scenario_doctor_healthy_workspace (line 245) | fn scenario_doctor_healthy_workspace() { function scenario_doctor_json_output (line 265) | fn scenario_doctor_json_output() { function scenario_doctor_no_workspace (line 281) | fn scenario_doctor_no_workspace() { function scenario_info_shows_paths (line 301) | fn scenario_info_shows_paths() { function scenario_info_json_output (line 317) | fn scenario_info_json_output() { function scenario_where_shows_workspace_path (line 338) | fn scenario_where_shows_workspace_path() { function scenario_where_no_workspace (line 358) | fn scenario_where_no_workspace() { function scenario_version_text (line 377) | fn scenario_version_text() { function scenario_version_json (line 395) | fn scenario_version_json() { function scenario_version_no_workspace_required (line 414) | fn scenario_version_no_workspace_required() { function scenario_workspace_lifecycle (line 434) | fn scenario_workspace_lifecycle() { function scenario_long_lived_single_workspace_stress_suite (line 513) | fn scenario_long_lived_single_workspace_stress_suite() { FILE: tests/e2e_wrap.rs function init_workspace_with_long_issues (line 13) | fn init_workspace_with_long_issues(workspace: &BrWorkspace) { function e2e_list_without_wrap_truncates (line 50) | fn e2e_list_without_wrap_truncates() { function e2e_list_with_wrap_shows_full_content (line 66) | fn e2e_list_with_wrap_shows_full_content() { function e2e_list_wrap_json_unchanged (line 84) | fn e2e_list_wrap_json_unchanged() { function e2e_show_without_wrap (line 109) | fn e2e_show_without_wrap() { function e2e_show_with_wrap (line 134) | fn e2e_show_with_wrap() { function e2e_ready_without_wrap (line 169) | fn e2e_ready_without_wrap() { function e2e_ready_with_wrap (line 178) | fn e2e_ready_with_wrap() { function e2e_search_without_wrap (line 196) | fn e2e_search_without_wrap() { function e2e_search_with_wrap (line 210) | fn e2e_search_with_wrap() { function e2e_comments_with_wrap (line 228) | fn e2e_comments_with_wrap() { function e2e_blocked_with_wrap (line 270) | fn e2e_blocked_with_wrap() { function e2e_blocked_with_dependencies (line 290) | fn e2e_blocked_with_dependencies() { function e2e_wrap_very_narrow_terminal (line 323) | fn e2e_wrap_very_narrow_terminal() { function e2e_wrap_very_wide_terminal (line 338) | fn e2e_wrap_very_wide_terminal() { function e2e_wrap_with_unicode_content (line 353) | fn e2e_wrap_with_unicode_content() { function e2e_wrap_empty_database (line 382) | fn e2e_wrap_empty_database() { FILE: tests/golden_beads_init.rs function br_cmd (line 18) | fn br_cmd() -> Command { function init_fresh_workspace (line 22) | fn init_fresh_workspace() -> TempDir { constant BINARY_EXTENSIONS (line 51) | const BINARY_EXTENSIONS: &[&str] = &["db", "db-wal", "db-shm", "db-journ... function is_binary (line 53) | fn is_binary(path: &std::path::Path) -> bool { function is_transient_sqlite (line 59) | fn is_transient_sqlite(name: &str) -> bool { function build_directory_listing (line 63) | fn build_directory_listing(beads_dir: &std::path::Path) -> String { function build_text_contents (line 99) | fn build_text_contents(beads_dir: &std::path::Path) -> String { function golden_init_directory_listing (line 128) | fn golden_init_directory_listing() { function golden_init_text_contents (line 138) | fn golden_init_text_contents() { function golden_init_issues_jsonl_empty (line 147) | fn golden_init_issues_jsonl_empty() { function golden_init_metadata_valid_json (line 159) | fn golden_init_metadata_valid_json() { function golden_init_expected_file_set (line 180) | fn golden_init_expected_file_set() { FILE: tests/golden_rich_panels.rs type RichFixture (line 16) | struct RichFixture { function should_clear_inherited_br_env (line 22) | fn should_clear_inherited_br_env(key: &OsStr) -> bool { function clear_inherited_br_env (line 32) | fn clear_inherited_br_env(cmd: &mut Command) { function br_cmd (line 40) | fn br_cmd() -> Command { function run_setup_br (line 44) | fn run_setup_br(root: &Path, args: &[&str]) -> String { function extract_json_payload (line 65) | fn extract_json_payload(stdout: &str) -> &str { function create_issue (line 73) | fn create_issue( function init_fixture (line 102) | fn init_fixture() -> RichFixture { function sh_quote (line 160) | fn sh_quote(value: &OsStr) -> String { function run_rich_br (line 165) | fn run_rich_br(root: &Path, width: usize, args: &[&str]) -> String { function issue_id_re (line 195) | fn issue_id_re() -> &'static Regex { function timestamp_re (line 200) | fn timestamp_re() -> &'static Regex { function relative_time_re (line 208) | fn relative_time_re() -> &'static Regex { function strip_ansi (line 216) | fn strip_ansi(input: &str) -> String { function replace_preserving_width (line 239) | fn replace_preserving_width(input: &str, regex: &Regex, placeholder: &st... function normalize_rich_output (line 256) | fn normalize_rich_output(raw: &str) -> String { function assert_rich_frame (line 277) | fn assert_rich_frame(output: &str, command: &str, width: usize) { function golden_list_rich_widths (line 288) | fn golden_list_rich_widths() { function golden_show_rich_widths (line 301) | fn golden_show_rich_widths() { function golden_stats_rich_widths (line 314) | fn golden_stats_rich_widths() { FILE: tests/import_mixed_case.rs function setup (line 14) | fn setup() -> ( function import_config (line 29) | fn import_config(beads_dir: &std::path::Path) -> ImportConfig { function export_config (line 39) | fn export_config(beads_dir: &std::path::Path) -> ExportConfig { function make_jsonl_issue (line 49) | fn make_jsonl_issue(id: &str, title: &str, status: &str, issue_type: &st... function import_mixed_case_status_normalizes (line 56) | fn import_mixed_case_status_normalizes() { function import_mixed_case_issue_type_normalizes (line 92) | fn import_mixed_case_issue_type_normalizes() { function import_export_roundtrip_normalizes_case (line 128) | fn import_export_roundtrip_normalizes_case() { function import_mixed_case_content_hash_matches_canonical (line 171) | fn import_mixed_case_content_hash_matches_canonical() { function import_custom_status_preserves_case_through_roundtrip (line 206) | fn import_custom_status_preserves_case_through_roundtrip() { function import_custom_issue_type_preserves_case_through_roundtrip (line 234) | fn import_custom_issue_type_preserves_case_through_roundtrip() { FILE: tests/jsonl_import_export.rs function issue_with_id (line 14) | fn issue_with_id(id: &str, title: &str) -> Issue { function export_import_roundtrip_preserves_relationships (line 21) | fn export_import_roundtrip_preserves_relationships() { function import_reads_multiple_jsonl_lines_without_buffer_accumulation (line 81) | fn import_reads_multiple_jsonl_lines_without_buffer_accumulation() { function export_sorts_by_id (line 100) | fn export_sorts_by_id() { function export_sorts_comments_canonically_after_loading_relations (line 118) | fn export_sorts_comments_canonically_after_loading_relations() { function import_rejects_malformed_json (line 158) | fn import_rejects_malformed_json() { function import_rejects_prefix_mismatch (line 170) | fn import_rejects_prefix_mismatch() { function import_sets_closed_at_when_missing (line 184) | fn import_sets_closed_at_when_missing() { function export_import_roundtrip_keeps_optional_text_fields_integrity_safe (line 203) | fn export_import_roundtrip_keeps_optional_text_fields_integrity_safe() { function import_rejects_conflict_markers (line 228) | fn import_rejects_conflict_markers() { function export_empty_db_guard_blocks_overwrite (line 242) | fn export_empty_db_guard_blocks_overwrite() { function export_empty_db_guard_bypassed_with_force (line 269) | fn export_empty_db_guard_bypassed_with_force() { function import_tombstone_protection_prevents_resurrection (line 295) | fn import_tombstone_protection_prevents_resurrection() { function import_collision_by_id_updates_when_newer (line 327) | fn import_collision_by_id_updates_when_newer() { function import_collision_by_id_skips_when_older (line 355) | fn import_collision_by_id_skips_when_older() { function import_collision_by_external_ref (line 385) | fn import_collision_by_external_ref() { function import_skips_ephemeral_issues (line 417) | fn import_skips_ephemeral_issues() { function import_skip_prefix_validation_allows_mismatch (line 442) | fn import_skip_prefix_validation_allows_mismatch() { function export_produces_deterministic_content_hash (line 465) | fn export_produces_deterministic_content_hash() { function import_handles_empty_lines_gracefully (line 491) | fn import_handles_empty_lines_gracefully() { function import_creates_new_issues (line 512) | fn import_creates_new_issues() { function import_repopulates_export_hashes (line 535) | fn import_repopulates_export_hashes() { function import_deduplicates_export_hash_rebuild_when_multiple_records_target_same_issue (line 572) | fn import_deduplicates_export_hash_rebuild_when_multiple_records_target_... function import_rejects_invalid_id_format (line 618) | fn import_rejects_invalid_id_format() { FILE: tests/markdown_import.rs function test_markdown_import (line 6) | fn test_markdown_import() { function test_markdown_import_json_output (line 67) | fn test_markdown_import_json_output() { function test_markdown_import_updates_last_touched_context (line 100) | fn test_markdown_import_updates_last_touched_context() { function test_markdown_import_implicit_description_keeps_first_non_empty_line_only (line 161) | fn test_markdown_import_implicit_description_keeps_first_non_empty_line_... function test_markdown_import_rejects_dry_run (line 195) | fn test_markdown_import_rejects_dry_run() { function test_markdown_import_rejects_title_argument (line 222) | fn test_markdown_import_rejects_title_argument() { function test_markdown_import_parent_argument_sets_global_default (line 252) | fn test_markdown_import_parent_argument_sets_global_default() { function test_markdown_import_rejects_external_ref_argument (line 322) | fn test_markdown_import_rejects_external_ref_argument() { function test_markdown_import_rejects_non_empty_file_without_issue_headers (line 358) | fn test_markdown_import_rejects_non_empty_file_without_issue_headers() { function test_markdown_import_dependency_bullets_do_not_create_marker_dependency (line 387) | fn test_markdown_import_dependency_bullets_do_not_create_marker_dependen... function test_markdown_import_invalid_dependency_warns (line 451) | fn test_markdown_import_invalid_dependency_warns() { function test_markdown_import_all_failed_returns_error (line 482) | fn test_markdown_import_all_failed_returns_error() { function test_markdown_import_whitespace_separated_typed_dependencies (line 525) | fn test_markdown_import_whitespace_separated_typed_dependencies() { function test_markdown_import_standin_id_dependency_resolution (line 584) | fn test_markdown_import_standin_id_dependency_resolution() { function test_markdown_import_title_based_dependency_resolution (line 643) | fn test_markdown_import_title_based_dependency_resolution() { function test_markdown_import_title_with_colon_dependency_resolution (line 699) | fn test_markdown_import_title_with_colon_dependency_resolution() { FILE: tests/package_manifests.rs function test_homebrew_formula_syntax (line 12) | fn test_homebrew_formula_syntax() { function test_scoop_manifest_schema (line 87) | fn test_scoop_manifest_schema() { function test_pkgbuild_syntax (line 164) | fn test_pkgbuild_syntax() { function test_cargo_metadata (line 227) | fn test_cargo_metadata() { function test_version_consistency (line 281) | fn test_version_consistency() { FILE: tests/proptest_claim_exclusion.rs function make_open_issue (line 11) | fn make_open_issue(suffix: &str, title: &str, priority: Priority) -> Iss... FILE: tests/proptest_hash.rs function init_test_logging (line 19) | fn init_test_logging() { function make_issue (line 27) | fn make_issue(title: &str, description: Option<&str>) -> Issue { function status_strategy (line 71) | fn status_strategy() -> impl Strategy { function issue_type_strategy (line 85) | fn issue_type_strategy() -> impl Strategy { function optional_text_strategy (line 98) | fn optional_text_strategy() -> impl Strategy> { function go_bd_reference_content_hash (line 102) | fn go_bd_reference_content_hash(issue: &Issue) -> String { function push_go_field (line 133) | fn push_go_field(hasher: &mut Sha256, value: &str) { function hash_low_collision_rate (line 359) | fn hash_low_collision_rate() { function hash_changes_with_issue_type (line 388) | fn hash_changes_with_issue_type() { FILE: tests/proptest_id.rs function init_test_logging (line 21) | fn init_test_logging() { function id_no_collisions_batch (line 232) | fn id_no_collisions_batch() { function id_seed_distinguishes_delimiter_positions (line 257) | fn id_seed_distinguishes_delimiter_positions() { function optimal_length_monotonic (line 271) | fn optimal_length_monotonic() { FILE: tests/proptest_jsonl_roundtrip.rs type RoundTripCase (line 19) | struct RoundTripCase { function init_test_logging (line 28) | fn init_test_logging() { function optional_text (line 35) | fn optional_text() -> impl Strategy> { function status_strategy (line 39) | fn status_strategy() -> impl Strategy { function issue_type_strategy (line 48) | fn issue_type_strategy() -> impl Strategy { function priority_strategy (line 60) | fn priority_strategy() -> impl Strategy { function make_issue (line 65) | fn make_issue( function canonical_labels (line 134) | fn canonical_labels(labels: Vec) -> Vec { function hash_map (line 142) | fn hash_map(issue_hashes: &[(String, String)]) -> BTreeMap(issues: &'a [Issue], issue_id: &str) -> &'a Issue { function populate_storage (line 153) | fn populate_storage(case: &RoundTripCase) -> SqliteStorage { function assert_mixed_case_known_value_round_trip (line 169) | fn assert_mixed_case_known_value_round_trip( function jsonl_import_normalizes_mixed_case_known_status_and_issue_type (line 261) | fn jsonl_import_normalizes_mixed_case_known_status_and_issue_type() { function jsonl_import_preserves_custom_status_and_issue_type_case (line 300) | fn jsonl_import_preserves_custom_status_and_issue_type_case() { FILE: tests/proptest_merge.rs function status_strategy (line 18) | fn status_strategy() -> impl Strategy { function status_with_custom_strategy (line 27) | fn status_with_custom_strategy() -> impl Strategy { function issue_type_strategy (line 37) | fn issue_type_strategy() -> impl Strategy { function priority_strategy (line 47) | fn priority_strategy() -> impl Strategy { function strategy_strategy (line 51) | fn strategy_strategy() -> impl Strategy { function make_issue (line 60) | fn make_issue( FILE: tests/proptest_model_roundtrip.rs function arb_status_name (line 17) | fn arb_status_name() -> impl Strategy { function arb_issue_type_name (line 30) | fn arb_issue_type_name() -> impl Strategy Vec { type JsonlCaseVariant (line 67) | struct JsonlCaseVariant { function issue_for_jsonl_case (line 74) | fn issue_for_jsonl_case(id: String, status: Status, issue_type: IssueTyp... function jsonl_import_mixed_case_status_issue_type_preserves_hash (line 96) | fn jsonl_import_mixed_case_status_issue_type_preserves_hash() { FILE: tests/proptest_status_partition.rs function status_strategy (line 14) | fn status_strategy() -> impl Strategy { function priority_strategy (line 27) | fn priority_strategy() -> impl Strategy { function issue_type_strategy (line 31) | fn issue_type_strategy() -> impl Strategy { function make_issue (line 39) | fn make_issue( constant ALL_KNOWN_STATUSES (line 91) | const ALL_KNOWN_STATUSES: &[Status] = &[ FILE: tests/proptest_time.rs function init_test_logging (line 16) | fn init_test_logging() { function keyword_tomorrow_is_future (line 259) | fn keyword_tomorrow_is_future() { function keyword_next_week_is_week_away (line 284) | fn keyword_next_week_is_week_away() { function rfc3339_with_offset_parses (line 307) | fn rfc3339_with_offset_parses() { function whitespace_is_trimmed (line 331) | fn whitespace_is_trimmed() { FILE: tests/proptest_validation.rs function init_test_logging (line 18) | fn init_test_logging() { function make_valid_issue (line 26) | fn make_valid_issue(title: &str) -> Issue { function assert_validation_error_for_field (line 71) | fn assert_validation_error_for_field( function all_standard_statuses_valid (line 437) | fn all_standard_statuses_valid() { function all_standard_types_valid (line 467) | fn all_standard_types_valid() { FILE: tests/repro_3way_merge_bug.rs function create_issue_id (line 12) | fn create_issue_id(workspace: &BrWorkspace, title: &str, label: &str) ->... function repro_3way_merge_data_loss (line 25) | fn repro_3way_merge_data_loss() { function repro_merge_base_snapshot_matches_finalized_export_with_notes (line 123) | fn repro_merge_base_snapshot_matches_finalized_export_with_notes() { function repro_merge_tolerates_base_only_deleted_issue_absent_from_db (line 202) | fn repro_merge_tolerates_base_only_deleted_issue_absent_from_db() { FILE: tests/repro_auto_flush_inefficiency.rs function make_issue (line 8) | fn make_issue(id: &str) -> Issue { function test_auto_flush_optimizes_no_content_change (line 26) | fn test_auto_flush_optimizes_no_content_change() { function test_auto_flush_flush_on_label_change (line 85) | fn test_auto_flush_flush_on_label_change() { function test_auto_flush_uses_resolved_jsonl_path (line 117) | fn test_auto_flush_uses_resolved_jsonl_path() { function test_auto_flush_preserves_unrelated_existing_jsonl_lines (line 138) | fn test_auto_flush_preserves_unrelated_existing_jsonl_lines() { FILE: tests/repro_cache_crash.rs function create_issue_id (line 9) | fn create_issue_id(workspace: &BrWorkspace, title: &str, label: &str) ->... function make_issue (line 21) | fn make_issue(id: &str, title: &str) -> Issue { function test_rebuild_blocked_cache_crash_with_multiple_parents (line 66) | fn test_rebuild_blocked_cache_crash_with_multiple_parents() { function test_rebuild_blocked_cache_is_idempotent_when_rows_already_exist (line 129) | fn test_rebuild_blocked_cache_is_idempotent_when_rows_already_exist() { function repro_dep_add_parent_child_succeeds_db_backed_after_blocked_cache_exists (line 163) | fn repro_dep_add_parent_child_succeeds_db_backed_after_blocked_cache_exi... function repro_dep_add_parent_child_succeeds_no_db_after_blocked_cache_exists (line 213) | fn repro_dep_add_parent_child_succeeds_no_db_after_blocked_cache_exists() { FILE: tests/repro_collision_labels.rs function make_issue (line 8) | fn make_issue(id: &str, title: &str) -> Issue { function test_collision_identical_content_different_labels (line 54) | fn test_collision_identical_content_different_labels() { FILE: tests/repro_create_output.rs function test_create_json_output_is_single_object (line 5) | fn test_create_json_output_is_single_object() { function test_create_dry_run_plain_output_is_line_oriented (line 45) | fn test_create_dry_run_plain_output_is_line_oriented() { FILE: tests/repro_create_path_traversal_check.rs function test_create_from_file_rejects_parent_dir (line 11) | fn test_create_from_file_rejects_parent_dir() { FILE: tests/repro_dep_tree.rs function test_dep_tree_diamond_dependency_visibility (line 5) | fn test_dep_tree_diamond_dependency_visibility() { FILE: tests/repro_dotted_id_resolution.rs function parse_json (line 16) | fn parse_json(stdout: &str) -> Value { function first_issue (line 20) | fn first_issue(payload: &Value) -> &Value { function issue_id (line 27) | fn issue_id(payload: &Value) -> String { function e2e_dotted_child_show_and_update_stay_on_exact_issue_after_rebuild (line 36) | fn e2e_dotted_child_show_and_update_stay_on_exact_issue_after_rebuild() { FILE: tests/repro_epic_blocking.rs function create_issue (line 5) | fn create_issue(id: &str, title: &str, issue_type: IssueType) -> Issue { function test_epic_does_not_block_task (line 50) | fn test_epic_does_not_block_task() { function test_epic_blocking_propagates_to_task (line 75) | fn test_epic_blocking_propagates_to_task() { FILE: tests/repro_history_collision.rs function test_backup_stem_collision (line 7) | fn test_backup_stem_collision() { FILE: tests/repro_id_collision.rs function test_id_generator_fallback_collision (line 5) | fn test_id_generator_fallback_collision() { FILE: tests/repro_import_collision_remap.rs function make_issue (line 8) | fn make_issue(id: &str, title: &str) -> Issue { function test_import_collision_remaps_dependencies (line 53) | fn test_import_collision_remaps_dependencies() { FILE: tests/repro_issue_256_update_diff_target.rs function br_update_prints_target_beads_title_not_unrelated_bead_title (line 40) | fn br_update_prints_target_beads_title_not_unrelated_bead_title() { function br_update_prints_correct_diff_for_real_field_change (line 147) | fn br_update_prints_correct_diff_for_real_field_change() { FILE: tests/repro_list_sort.rs function test_list_sort_title_case_insensitive (line 4) | fn test_list_sort_title_case_insensitive() { FILE: tests/repro_list_sort_alias.rs function test_list_sort_aliases_are_accepted (line 7) | fn test_list_sort_aliases_are_accepted() { FILE: tests/repro_parent_blocking.rs function test_blocked_parent_blocks_child_ready (line 6) | fn test_blocked_parent_blocks_child_ready() { FILE: tests/repro_pinned_blocker.rs function make_issue (line 5) | fn make_issue(id: &str, title: &str, status: Status) -> Issue { function test_pinned_status_blocks_dependents (line 50) | fn test_pinned_status_blocks_dependents() { function test_custom_status_blocks_dependents (line 86) | fn test_custom_status_blocks_dependents() { FILE: tests/repro_sync_cycle_fuzz_crashes.rs function setup_workspace (line 18) | fn setup_workspace() -> (TempDir, std::path::PathBuf, std::path::PathBuf) { function seed_storage (line 26) | fn seed_storage(storage: &mut SqliteStorage) { function default_export_config (line 39) | fn default_export_config(beads_dir: &std::path::Path) -> ExportConfig { function default_import_config (line 49) | fn default_import_config(beads_dir: &std::path::Path) -> ImportConfig { function repro_sync_cycle_crash_conflict_markers (line 63) | fn repro_sync_cycle_crash_conflict_markers() { function repro_sync_cycle_crash_conflict_markers_variant (line 96) | fn repro_sync_cycle_crash_conflict_markers_variant() { function repro_sync_cycle_crash_export_upsert_orphan (line 116) | fn repro_sync_cycle_crash_export_upsert_orphan() { function repro_sync_cycle_crash_binary_garbage_jsonl (line 158) | fn repro_sync_cycle_crash_binary_garbage_jsonl() { function repro_sync_cycle_crash_mangled_binary (line 187) | fn repro_sync_cycle_crash_mangled_binary() { function repro_sync_cycle_slow_unit_force_upsert_orphan (line 225) | fn repro_sync_cycle_slow_unit_force_upsert_orphan() { function repro_sync_cycle_crlf_jsonl (line 250) | fn repro_sync_cycle_crlf_jsonl() { function repro_sync_cycle_duplicate_lines (line 276) | fn repro_sync_cycle_duplicate_lines() { function repro_sync_cycle_empty_jsonl (line 300) | fn repro_sync_cycle_empty_jsonl() { function repro_sync_cycle_corrupt_db (line 322) | fn repro_sync_cycle_corrupt_db() { function repro_sync_cycle_stale_wal_shm (line 342) | fn repro_sync_cycle_stale_wal_shm() { function repro_sync_cycle_preflight_malformed (line 366) | fn repro_sync_cycle_preflight_malformed() { function repro_sync_cycle_hash_edge_cases (line 381) | fn repro_sync_cycle_hash_edge_cases() { FILE: tests/repro_sync_relations.rs function test_relation_updates_bump_timestamp_and_sync (line 9) | fn test_relation_updates_bump_timestamp_and_sync() { function test_dependency_updates_bump_timestamp (line 81) | fn test_dependency_updates_bump_timestamp() { FILE: tests/repro_time_panic.rs function test_parse_flexible_timestamp_panic_on_multibyte (line 2) | fn test_parse_flexible_timestamp_panic_on_multibyte() { function test_parse_relative_time_panic_on_multibyte (line 10) | fn test_parse_relative_time_panic_on_multibyte() { FILE: tests/repro_truncate_width.rs function test_truncate_title_with_wide_characters (line 4) | fn test_truncate_title_with_wide_characters() { FILE: tests/snapshots/cli_output.rs function snapshot_help_output (line 7) | fn snapshot_help_output() { function snapshot_help_output_no_upgrade (line 16) | fn snapshot_help_output_no_upgrade() { function snapshot_create_help (line 34) | fn snapshot_create_help() { function snapshot_list_empty (line 46) | fn snapshot_list_empty() { function snapshot_list_with_issues (line 54) | fn snapshot_list_with_issues() { function snapshot_show_output (line 66) | fn snapshot_show_output() { function snapshot_ready_output (line 76) | fn snapshot_ready_output() { function snapshot_blocked_output (line 94) | fn snapshot_blocked_output() { function snapshot_stats_output (line 111) | fn snapshot_stats_output() { function snapshot_doctor_output (line 131) | fn snapshot_doctor_output() { function snapshot_version_output (line 141) | fn snapshot_version_output() { function snapshot_reopen_output (line 148) | fn snapshot_reopen_output() { function snapshot_search_output (line 163) | fn snapshot_search_output() { function snapshot_count_output (line 178) | fn snapshot_count_output() { function snapshot_label_add_list_output (line 210) | fn snapshot_label_add_list_output() { FILE: tests/snapshots/error_messages.rs function snapshot_error_not_initialized (line 6) | fn snapshot_error_not_initialized() { function snapshot_error_issue_not_found (line 14) | fn snapshot_error_issue_not_found() { function snapshot_error_invalid_priority (line 22) | fn snapshot_error_invalid_priority() { function snapshot_error_dependency_cycle (line 34) | fn snapshot_error_dependency_cycle() { function snapshot_error_self_dependency (line 50) | fn snapshot_error_self_dependency() { function snapshot_error_invalid_label (line 60) | fn snapshot_error_invalid_label() { function snapshot_error_update_closed_issue (line 77) | fn snapshot_error_update_closed_issue() { FILE: tests/snapshots/history_diff_output.rs constant HISTORY_BACKUP_NAME (line 15) | const HISTORY_BACKUP_NAME: &str = "issues.v0.1.0.20260401_000000_000000.... constant HISTORY_BACKUP_JSONL (line 16) | const HISTORY_BACKUP_JSONL: &str = r#"{"id":"bd-history-alpha","title":"... constant HISTORY_CURRENT_JSONL (line 22) | const HISTORY_CURRENT_JSONL: &str = r#"{"id":"bd-history-alpha","title":... function init_history_diff_workspace (line 30) | fn init_history_diff_workspace() -> BrWorkspace { function normalize_history_output (line 49) | fn normalize_history_output(raw: &str, workspace: &BrWorkspace) -> String { function assert_valid_json (line 56) | fn assert_valid_json(raw: &str, context: &str) { function history_diff_golden_text_v0_1_0_to_v0_1_1 (line 64) | fn history_diff_golden_text_v0_1_0_to_v0_1_1() { function history_diff_golden_json_summary_v0_1_0_to_v0_1_1 (line 85) | fn history_diff_golden_json_summary_v0_1_0_to_v0_1_1() { FILE: tests/snapshots/json_output.rs constant LIST_SHOW_JSONL_FIXTURE (line 16) | const LIST_SHOW_JSONL_FIXTURE: &str = r#"{"id":"bd-golden-parent","title... function init_list_show_golden_workspace (line 22) | fn init_list_show_golden_workspace() -> super::common::cli::BrWorkspace { function snapshot_list_json (line 43) | fn snapshot_list_json() { function snapshot_show_json (line 60) | fn snapshot_show_json() { function representative_json_golden_list_output (line 76) | fn representative_json_golden_list_output() { function representative_json_golden_show_output (line 100) | fn representative_json_golden_show_output() { function snapshot_ready_json (line 131) | fn snapshot_ready_json() { function snapshot_blocked_json (line 148) | fn snapshot_blocked_json() { function snapshot_list_with_filters_json (line 173) | fn snapshot_list_with_filters_json() { function snapshot_stats_json (line 207) | fn snapshot_stats_json() { function snapshot_create_json (line 219) | fn snapshot_create_json() { function snapshot_update_json (line 246) | fn snapshot_update_json() { function snapshot_close_json (line 266) | fn snapshot_close_json() { function snapshot_dep_list_json (line 286) | fn snapshot_dep_list_json() { function snapshot_search_json (line 307) | fn snapshot_search_json() { function snapshot_count_json (line 324) | fn snapshot_count_json() { function snapshot_count_grouped_json (line 341) | fn snapshot_count_grouped_json() { function snapshot_stale_json (line 367) | fn snapshot_stale_json() { function snapshot_comments_json (line 383) | fn snapshot_comments_json() { function snapshot_label_json (line 417) | fn snapshot_label_json() { function snapshot_orphans_json (line 465) | fn snapshot_orphans_json() { function snapshot_graph_json (line 480) | fn snapshot_graph_json() { function snapshot_list_empty_json (line 507) | fn snapshot_list_empty_json() { function snapshot_ready_empty_json (line 522) | fn snapshot_ready_empty_json() { function snapshot_blocked_empty_json (line 537) | fn snapshot_blocked_empty_json() { function snapshot_search_no_match_json (line 552) | fn snapshot_search_no_match_json() { function snapshot_stale_empty_json (line 572) | fn snapshot_stale_empty_json() { function snapshot_count_empty_json (line 591) | fn snapshot_count_empty_json() { function snapshot_list_priority_ordering_json (line 610) | fn snapshot_list_priority_ordering_json() { function snapshot_ready_priority_ordering_json (line 663) | fn snapshot_ready_priority_ordering_json() { function snapshot_show_multiple_ids_json (line 723) | fn snapshot_show_multiple_ids_json() { function snapshot_count_grouped_by_type_json (line 750) | fn snapshot_count_grouped_by_type_json() { function snapshot_count_grouped_by_priority_json (line 783) | fn snapshot_count_grouped_by_priority_json() { function snapshot_graph_all_json (line 819) | fn snapshot_graph_all_json() { FILE: tests/snapshots/jsonl_format.rs function snapshot_jsonl_export (line 7) | fn snapshot_jsonl_export() { FILE: tests/snapshots/mod.rs function init_workspace (line 13) | pub fn init_workspace() -> BrWorkspace { function create_issue (line 20) | pub fn create_issue(workspace: &BrWorkspace, title: &str, label: &str) -... function parse_created_id (line 26) | fn parse_created_id(stdout: &str) -> String { type TextNormConfig (line 107) | pub struct TextNormConfig { method golden (line 144) | pub const fn golden() -> Self { method minimal (line 167) | pub fn minimal() -> Self { method with_duration_masking (line 179) | pub const fn with_duration_masking() -> Self { type TextSnapshot (line 189) | pub struct TextSnapshot { method new (line 203) | pub fn new(raw: impl Into, config: TextNormConfig) -> Self { method golden (line 215) | pub fn golden(raw: impl Into) -> Self { method minimal (line 220) | pub fn minimal(raw: impl Into) -> Self { method as_normalized (line 225) | pub fn as_normalized(&self) -> &str { method as_raw (line 230) | pub fn as_raw(&self) -> &str { method was_normalized (line 235) | pub fn was_normalized(&self) -> bool { method to_json (line 240) | pub fn to_json(&self) -> serde_json::Value { method fmt (line 251) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type TextDiff (line 258) | pub struct TextDiff { method compare (line 273) | pub fn compare(expected: &TextSnapshot, actual: &TextSnapshot) -> Self { method format_diff (line 321) | pub fn format_diff(&self) -> String { method to_json (line 358) | pub fn to_json(&self) -> serde_json::Value { function normalize_text_with_log (line 371) | fn normalize_text_with_log(text: &str, config: &TextNormConfig) -> (Stri... function normalize_output (line 526) | pub fn normalize_output(output: &str) -> String { function strip_ansi (line 532) | pub fn strip_ansi(text: &str) -> String { function normalize_minimal (line 537) | pub fn normalize_minimal(output: &str) -> String { function normalize_id_string (line 542) | fn normalize_id_string(s: &str) -> String { function normalize_json (line 548) | pub fn normalize_json(json: &Value) -> Value { function normalize_jsonl (line 652) | pub fn normalize_jsonl(contents: &str) -> String { function test_strip_ansi_codes (line 685) | fn test_strip_ansi_codes() { function test_strip_ansi_preserves_unicode (line 692) | fn test_strip_ansi_preserves_unicode() { function test_normalize_line_endings (line 699) | fn test_normalize_line_endings() { function test_normalize_paths_windows_to_unix (line 707) | fn test_normalize_paths_windows_to_unix() { function test_redact_issue_ids (line 719) | fn test_redact_issue_ids() { function test_mask_timestamps (line 728) | fn test_mask_timestamps() { function test_mask_git_hash (line 736) | fn test_mask_git_hash() { function test_mask_home_paths_linux (line 744) | fn test_mask_home_paths_linux() { function test_mask_home_paths_macos (line 752) | fn test_mask_home_paths_macos() { function test_mask_temp_paths (line 760) | fn test_mask_temp_paths() { function test_normalize_line_numbers (line 767) | fn test_normalize_line_numbers() { function test_strip_trailing_whitespace (line 775) | fn test_strip_trailing_whitespace() { function test_collapse_blank_lines (line 783) | fn test_collapse_blank_lines() { function test_minimal_config_preserves_ids (line 791) | fn test_minimal_config_preserves_ids() { function test_duration_masking (line 799) | fn test_duration_masking() { function test_text_snapshot_metadata (line 808) | fn test_text_snapshot_metadata() { function test_text_diff_matches (line 829) | fn test_text_diff_matches() { function test_text_diff_detects_differences (line 842) | fn test_text_diff_detects_differences() { function test_text_diff_detects_missing_lines (line 857) | fn test_text_diff_detects_missing_lines() { function test_text_diff_detects_extra_lines (line 871) | fn test_text_diff_detects_extra_lines() { function test_text_diff_format (line 885) | fn test_text_diff_format() { function test_normalize_output_backward_compat (line 901) | fn test_normalize_output_backward_compat() { function test_comprehensive_normalization (line 912) | fn test_comprehensive_normalization() { FILE: tests/snapshots/robot_output.rs constant ROBOT_JSONL_FIXTURE (line 21) | const ROBOT_JSONL_FIXTURE: &str = r#"{"id":"bd-blocker","title":"00 Bloc... type BvRun (line 66) | struct BvRun { function init_robot_golden_workspace (line 72) | fn init_robot_golden_workspace() -> BrWorkspace { function clear_inherited_br_env (line 92) | fn clear_inherited_br_env(command: &mut std::process::Command) { function run_bv (line 107) | fn run_bv(workspace: &BrWorkspace, args: I) -> BvRun function assert_valid_json (line 129) | fn assert_valid_json(raw: &str, context: &str) { function normalize_bv_usage_hints (line 136) | fn normalize_bv_usage_hints(raw: &str) -> String { function normalize_bv_robot_output (line 148) | fn normalize_bv_robot_output(raw: &str) -> String { function normalize_bv_usage_hints_removes_graph_root_hint_in_any_array_position (line 179) | fn normalize_bv_usage_hints_removes_graph_root_hint_in_any_array_positio... function robot_golden_ready_output (line 206) | fn robot_golden_ready_output() { function robot_golden_bv_next_output (line 232) | fn robot_golden_bv_next_output() { function robot_golden_bv_triage_output (line 248) | fn robot_golden_bv_triage_output() { function robot_golden_bv_plan_output (line 264) | fn robot_golden_bv_plan_output() { FILE: tests/snapshots/schema_output.rs constant EXPECTED_SCHEMA_NAMES (line 16) | const EXPECTED_SCHEMA_NAMES: &[&str] = &[ function normalize_schema_json_output (line 33) | fn normalize_schema_json_output(raw: &str) -> String { function normalize_schema_toon_output (line 45) | fn normalize_schema_toon_output(raw: &str) -> String { function parse_json (line 57) | fn parse_json(raw: &str, context: &str) -> Value { function parse_toon (line 64) | fn parse_toon(raw: &str, context: &str) -> Value { function schema_value (line 72) | fn schema_value<'a>(document: &'a Value, schema_name: &str) -> Option<&'... function schema_names (line 79) | fn schema_names(document: &Value) -> BTreeSet { function expected_schema_names (line 99) | fn expected_schema_names() -> BTreeSet { function assert_schema_document_shape (line 106) | fn assert_schema_document_shape(document: &Value, context: &str) { function assert_toon_matches_json_schema_metadata (line 119) | fn assert_toon_matches_json_schema_metadata(json: &Value, toon: &Value) { function schema_document_golden_json_all (line 146) | fn schema_document_golden_json_all() { function schema_document_golden_toon_all (line 167) | fn schema_document_golden_toon_all() { FILE: tests/snapshots/toon_output.rs constant TOON_JSONL_FIXTURE (line 8) | const TOON_JSONL_FIXTURE: &str = r#"{"id":"bd-blocker","title":"00 Block... function init_toon_workspace (line 18) | fn init_toon_workspace() -> super::common::cli::BrWorkspace { function normalize_toon_output (line 38) | fn normalize_toon_output(raw: &str) -> String { function toon_golden_list_output (line 46) | fn toon_golden_list_output() { function toon_golden_show_output (line 69) | fn toon_golden_show_output() { function toon_golden_ready_output (line 92) | fn toon_golden_ready_output() { FILE: tests/storage_blocked_cache.rs function blocked_ids (line 22) | fn blocked_ids(storage: &SqliteStorage) -> Vec { function ready_ids (line 31) | fn ready_ids(storage: &SqliteStorage) -> Vec { function status_update (line 40) | fn status_update(status: Status) -> IssueUpdate { function reopen_blocker_re_blocks_dependent (line 52) | fn reopen_blocker_re_blocks_dependent() { function chain_dependency_blocks_downstream (line 100) | fn chain_dependency_blocks_downstream() { function multiple_blockers_partial_close (line 148) | fn multiple_blockers_partial_close() { function mixed_dependency_types_all_block (line 202) | fn mixed_dependency_types_all_block() { function closing_blocked_issue_removes_from_cache (line 249) | fn closing_blocked_issue_removes_from_cache() { function delete_issue_cleans_cache (line 288) | fn delete_issue_cleans_cache() { function remove_all_dependencies_clears_cache (line 326) | fn remove_all_dependencies_clears_cache() { function parent_child_transitive_blocking (line 371) | fn parent_child_transitive_blocking() { function remove_parent_unblocks_child (line 419) | fn remove_parent_unblocks_child() { function ready_and_blocked_are_disjoint (line 463) | fn ready_and_blocked_are_disjoint() { function is_blocked_matches_get_blocked_ids (line 507) | fn is_blocked_matches_get_blocked_ids() { function blocked_cache_stores_blocker_metadata (line 552) | fn blocked_cache_stores_blocker_metadata() { function in_progress_blocker_still_blocks (line 589) | fn in_progress_blocker_still_blocks() { function force_rebuild_matches_auto_rebuild (line 623) | fn force_rebuild_matches_auto_rebuild() { function force_rebuild_with_direct_blocker_dependency_succeeds (line 657) | fn force_rebuild_with_direct_blocker_dependency_succeeds() { function deep_parent_child_chain_blocking (line 688) | fn deep_parent_child_chain_blocking() { function deep_chain_beyond_50_levels_blocks_all_descendants (line 753) | fn deep_chain_beyond_50_levels_blocks_all_descendants() { FILE: tests/storage_crud.rs function create_issue_minimal_fields (line 19) | fn create_issue_minimal_fields() { function create_issue_all_fields_populated (line 34) | fn create_issue_all_fields_populated() { function create_issue_records_created_event (line 107) | fn create_issue_records_created_event() { function create_issue_marks_dirty (line 129) | fn create_issue_marks_dirty() { function create_duplicate_id_fails (line 140) | fn create_duplicate_id_fails() { function get_issue_returns_none_for_nonexistent (line 156) | fn get_issue_returns_none_for_nonexistent() { function get_issue_returns_issue_with_correct_types (line 164) | fn get_issue_returns_issue_with_correct_types() { function get_issue_for_export_includes_relations (line 180) | fn get_issue_for_export_includes_relations() { function comments_with_same_timestamp_are_ordered_by_id (line 223) | fn comments_with_same_timestamp_are_ordered_by_id() { function get_issue_details_includes_events_and_relations (line 271) | fn get_issue_details_includes_events_and_relations() { function update_issue_single_field_title (line 296) | fn update_issue_single_field_title() { function update_issue_multiple_fields (line 316) | fn update_issue_multiple_fields() { function update_issue_status_records_event (line 338) | fn update_issue_status_records_event() { function update_issue_priority_records_event (line 368) | fn update_issue_priority_records_event() { function update_issue_empty_update_is_noop (line 394) | fn update_issue_empty_update_is_noop() { function update_issue_marks_dirty (line 416) | fn update_issue_marks_dirty() { function update_nonexistent_issue_fails (line 437) | fn update_nonexistent_issue_fails() { function update_issue_rejects_empty_title_without_persisting (line 450) | fn update_issue_rejects_empty_title_without_persisting() { function update_issue_rejects_negative_estimate_without_persisting (line 472) | fn update_issue_rejects_negative_estimate_without_persisting() { function update_issue_clear_optional_fields (line 494) | fn update_issue_clear_optional_fields() { function delete_issue_creates_tombstone (line 563) | fn delete_issue_creates_tombstone() { function delete_issue_records_event (line 581) | fn delete_issue_records_event() { function delete_issue_marks_dirty (line 604) | fn delete_issue_marks_dirty() { function delete_nonexistent_issue_fails (line 623) | fn delete_nonexistent_issue_fails() { function deleted_issues_excluded_from_list (line 631) | fn deleted_issues_excluded_from_list() { function get_dirty_issue_ids_returns_all_dirty (line 656) | fn get_dirty_issue_ids_returns_all_dirty() { function clear_dirty_flags_removes_specified (line 675) | fn clear_dirty_flags_removes_specified() { function clear_dirty_flags_empty_list_is_noop (line 695) | fn clear_dirty_flags_empty_list_is_noop() { function failed_create_does_not_persist (line 713) | fn failed_create_does_not_persist() { function upsert_issue_for_import_creates_new (line 739) | fn upsert_issue_for_import_creates_new() { function upsert_issue_for_import_updates_existing (line 750) | fn upsert_issue_for_import_updates_existing() { function upsert_issue_stores_all_fields (line 768) | fn upsert_issue_stores_all_fields() { function id_exists_returns_true_for_existing (line 845) | fn id_exists_returns_true_for_existing() { function id_exists_returns_false_for_nonexistent (line 855) | fn id_exists_returns_false_for_nonexistent() { function count_issues_returns_correct_count (line 866) | fn count_issues_returns_correct_count() { function count_active_issues_excludes_closed_and_templates_but_includes_deferred (line 884) | fn count_active_issues_excludes_closed_and_templates_but_includes_deferr... function data_persists_across_connections (line 912) | fn data_persists_across_connections() { FILE: tests/storage_deps.rs function blocked_ids_for (line 15) | fn blocked_ids_for(storage: &SqliteStorage) -> Vec { function add_dependency_creates_link (line 29) | fn add_dependency_creates_link() { function add_dependency_duplicate_returns_false (line 55) | fn add_dependency_duplicate_returns_false() { function add_dependency_records_event (line 91) | fn add_dependency_records_event() { function add_dependency_marks_dirty (line 127) | fn add_dependency_marks_dirty() { function remove_dependency_removes_link (line 159) | fn remove_dependency_removes_link() { function remove_dependency_nonexistent_returns_false (line 187) | fn remove_dependency_nonexistent_returns_false() { function remove_dependency_records_event (line 204) | fn remove_dependency_records_event() { function remove_dependency_marks_dirty (line 243) | fn remove_dependency_marks_dirty() { function get_dependencies_empty_for_new_issue (line 279) | fn get_dependencies_empty_for_new_issue() { function get_dependencies_returns_all (line 290) | fn get_dependencies_returns_all() { function get_dependents_empty_for_new_issue (line 336) | fn get_dependents_empty_for_new_issue() { function get_dependents_returns_all (line 347) | fn get_dependents_returns_all() { function would_create_cycle_detects_simple_cycle (line 397) | fn would_create_cycle_detects_simple_cycle() { function would_create_cycle_transitive_detection (line 417) | fn would_create_cycle_transitive_detection() { function would_create_cycle_no_cycle (line 442) | fn would_create_cycle_no_cycle() { function would_create_cycle_mixed_types (line 468) | fn would_create_cycle_mixed_types() { function detect_all_cycles_finds_cycles (line 497) | fn detect_all_cycles_finds_cycles() { function detect_all_cycles_empty_when_no_cycles (line 530) | fn detect_all_cycles_empty_when_no_cycles() { function deep_hierarchy_five_levels (line 558) | fn deep_hierarchy_five_levels() { function deep_hierarchy_transitive_blocked (line 641) | fn deep_hierarchy_transitive_blocked() { function diamond_pattern_dependencies (line 703) | fn diamond_pattern_dependencies() { function diamond_pattern_blocked_propagation (line 756) | fn diamond_pattern_blocked_propagation() { function blocked_cache_invalidated_on_add_dependency (line 799) | fn blocked_cache_invalidated_on_add_dependency() { function blocked_cache_invalidated_on_remove_dependency (line 829) | fn blocked_cache_invalidated_on_remove_dependency() { function blocked_cache_reflects_status_changes (line 863) | fn blocked_cache_reflects_status_changes() { function remove_all_dependencies_clears_all (line 904) | fn remove_all_dependencies_clears_all() { function count_dependencies_returns_correct_count (line 962) | fn count_dependencies_returns_correct_count() { function count_dependents_returns_correct_count (line 997) | fn count_dependents_returns_correct_count() { function blocked_issues_excluded_from_ready_list (line 1036) | fn blocked_issues_excluded_from_ready_list() { FILE: tests/storage_export_atomic.rs function create_test_issue (line 38) | fn create_test_issue(id: &str, title: &str) -> Issue { function export_temp_path_for_test (line 44) | fn export_temp_path_for_test(output_path: &Path) -> std::path::PathBuf { function setup_storage_with_issues (line 48) | fn setup_storage_with_issues(count: usize) -> SqliteStorage { function setup_beads_dir (line 57) | fn setup_beads_dir(temp: &TempDir) -> std::path::PathBuf { function compute_file_hash (line 63) | fn compute_file_hash(path: &Path) -> String { function default_config (line 68) | fn default_config(beads_dir: &Path) -> ExportConfig { function concurrent_exports_no_corruption (line 80) | fn concurrent_exports_no_corruption() { function export_rejects_path_traversal (line 135) | fn export_rejects_path_traversal() { function export_rejects_outside_beads_dir (line 165) | fn export_rejects_outside_beads_dir() { function export_rejects_git_path (line 192) | fn export_rejects_git_path() { function temp_file_cleaned_up_on_failure (line 223) | fn temp_file_cleaned_up_on_failure() { function re_export_overwrites_cleanly (line 258) | fn re_export_overwrites_cleanly() { function successive_exports_idempotent (line 301) | fn successive_exports_idempotent() { function export_produces_valid_jsonl_per_line (line 340) | fn export_produces_valid_jsonl_per_line() { function export_rejects_symlink_escape (line 383) | fn export_rejects_symlink_escape() { function export_rejects_existing_temp_symlink_and_preserves_live_jsonl (line 416) | fn export_rejects_existing_temp_symlink_and_preserves_live_jsonl() { function export_external_path_with_flag (line 452) | fn export_external_path_with_flag() { function export_external_still_rejects_git (line 490) | fn export_external_still_rejects_git() { function export_count_matches_file_line_count (line 521) | fn export_count_matches_file_line_count() { FILE: tests/storage_golden_snapshot.rs function value_text (line 16) | fn value_text(row: &fsqlite::Row, idx: usize) -> String { function value_i64 (line 23) | fn value_i64(row: &fsqlite::Row, idx: usize) -> i64 { function fixed_issue (line 27) | fn fixed_issue() -> Issue { function push_issue_row_snapshot (line 72) | fn push_issue_row_snapshot(out: &mut String, conn: &Connection) { function push_events_snapshot (line 97) | fn push_events_snapshot(out: &mut String, conn: &Connection) { function normalized_jsonl (line 121) | fn normalized_jsonl(jsonl: &[u8]) -> String { function golden_create_update_close_sqlite_rows_and_jsonl (line 137) | fn golden_create_update_close_sqlite_rows_and_jsonl() { FILE: tests/storage_history.rs function setup_beads_dir (line 28) | fn setup_beads_dir(temp: &TempDir) -> std::path::PathBuf { function write_file (line 34) | fn write_file(path: &std::path::Path, content: &[u8]) { function history_dir (line 38) | fn history_dir(beads_dir: &std::path::Path) -> std::path::PathBuf { function disabled_config_skips_backup (line 47) | fn disabled_config_skips_backup() { function nonexistent_target_skips_backup (line 73) | fn nonexistent_target_skips_backup() { function changed_content_creates_new_backup (line 92) | fn changed_content_creates_new_backup() { function identical_content_is_deduplicated (line 123) | fn identical_content_is_deduplicated() { function rotation_by_count_keeps_newest (line 148) | fn rotation_by_count_keeps_newest() { function rotation_by_age_deletes_old (line 182) | fn rotation_by_age_deletes_old() { function mixed_stems_rotate_independently (line 215) | fn mixed_stems_rotate_independently() { function list_backups_prefix_filter (line 270) | fn list_backups_prefix_filter() { function list_backups_nonexistent_dir_returns_empty (line 303) | fn list_backups_nonexistent_dir_returns_empty() { function list_backups_skips_invalid_filenames (line 316) | fn list_backups_skips_invalid_filenames() { function prune_zero_keep_deletes_all (line 344) | fn prune_zero_keep_deletes_all() { function prune_empty_dir_is_noop (line 366) | fn prune_empty_dir_is_noop() { function backup_entry_fields_populated (line 377) | fn backup_entry_fields_populated() { function backup_preserves_content_exactly (line 407) | fn backup_preserves_content_exactly() { function backups_sorted_newest_first (line 432) | fn backups_sorted_newest_first() { FILE: tests/storage_id_hash_parity.rs function id_seed_deterministic_fixture (line 26) | fn id_seed_deterministic_fixture() { function hash_computation_base36_fixture (line 72) | fn hash_computation_base36_fixture() { function optimal_length_birthday_problem (line 116) | fn optimal_length_birthday_problem() { function prefix_configuration_fixture (line 147) | fn prefix_configuration_fixture() { function collision_handling_fixture (line 185) | fn collision_handling_fixture() { function id_parsing_fixtures (line 212) | fn id_parsing_fixtures() { function content_hash_deterministic_fixture (line 255) | fn content_hash_deterministic_fixture() { function content_hash_title_sensitivity (line 306) | fn content_hash_title_sensitivity() { function content_hash_status_sensitivity (line 351) | fn content_hash_status_sensitivity() { function content_hash_priority_sensitivity (line 413) | fn content_hash_priority_sensitivity() { function content_hash_type_sensitivity (line 458) | fn content_hash_type_sensitivity() { function content_hash_boolean_sensitivity (line 503) | fn content_hash_boolean_sensitivity() { function content_hash_trait_implementation (line 571) | fn content_hash_trait_implementation() { function content_hash_optional_fields (line 643) | fn content_hash_optional_fields() { function prefix_change_id_generation (line 731) | fn prefix_change_id_generation() { function prefix_validation_parsing (line 756) | fn prefix_validation_parsing() { FILE: tests/storage_invariants.rs function table_names (line 11) | fn table_names(conn: &Connection) -> HashSet { function column_names (line 20) | fn column_names(conn: &Connection, table: &str) -> HashSet { function issue_ids (line 29) | fn issue_ids(issues: &[Issue]) -> HashSet { function schema_tables_and_columns_exist (line 34) | fn schema_tables_and_columns_exist() { function label_crud_roundtrip (line 82) | fn label_crud_roundtrip() { function dependency_crud_updates_blocked_cache (line 111) | fn dependency_crud_updates_blocked_cache() { function ready_filters_exclude_blocked_and_deferred (line 156) | fn ready_filters_exclude_blocked_and_deferred() { function list_filters_respect_title_priority_and_closed (line 202) | fn list_filters_respect_title_priority_and_closed() { function list_filters_status_single (line 249) | fn list_filters_status_single() { function list_filters_status_multiple (line 294) | fn list_filters_status_multiple() { function list_filters_priority_single (line 330) | fn list_filters_priority_single() { function list_filters_priority_range (line 375) | fn list_filters_priority_range() { function list_filters_type_single (line 422) | fn list_filters_type_single() { function list_filters_type_multiple (line 463) | fn list_filters_type_multiple() { function list_filters_assignee (line 499) | fn list_filters_assignee() { function list_filters_unassigned (line 534) | fn list_filters_unassigned() { function list_filters_include_closed (line 561) | fn list_filters_include_closed() { function list_filters_include_templates (line 621) | fn list_filters_include_templates() { function list_filters_title_contains (line 651) | fn list_filters_title_contains() { function list_filters_limit (line 684) | fn list_filters_limit() { function list_filters_combined_status_and_priority (line 727) | fn list_filters_combined_status_and_priority() { function list_filters_combined_type_and_assignee (line 759) | fn list_filters_combined_type_and_assignee() { function list_filters_combined_status_type_priority (line 791) | fn list_filters_combined_status_type_priority() { function list_filters_combined_title_and_type (line 833) | fn list_filters_combined_title_and_type() { function list_filters_combined_unassigned_and_priority (line 862) | fn list_filters_combined_unassigned_and_priority() { function list_filters_combined_multiple_statuses_and_types (line 892) | fn list_filters_combined_multiple_statuses_and_types() { function list_filters_combined_all_priority_levels (line 939) | fn list_filters_combined_all_priority_levels() { function list_filters_combined_with_limit (line 970) | fn list_filters_combined_with_limit() { function list_filters_combined_include_closed_with_status_filter (line 1008) | fn list_filters_combined_include_closed_with_status_filter() { function list_filters_combined_five_filters (line 1037) | fn list_filters_combined_five_filters() { function list_filters_empty_result (line 1102) | fn list_filters_empty_result() { function list_filters_no_filters_returns_all_open (line 1122) | fn list_filters_no_filters_returns_all_open() { function list_issues_with_counts_accurate_dependencies (line 1156) | fn list_issues_with_counts_accurate_dependencies() { function find_by_content_hash_roundtrip (line 1193) | fn find_by_content_hash_roundtrip() { FILE: tests/storage_list_filters.rs function filter_by_single_status_open (line 26) | fn filter_by_single_status_open() { function filter_by_single_status_in_progress (line 57) | fn filter_by_single_status_in_progress() { function filter_by_multiple_statuses (line 82) | fn filter_by_multiple_statuses() { function filter_by_closed_status_requires_include_closed (line 114) | fn filter_by_closed_status_requires_include_closed() { function filter_by_single_priority_critical (line 154) | fn filter_by_single_priority_critical() { function filter_by_multiple_priorities (line 183) | fn filter_by_multiple_priorities() { function filter_by_all_priority_levels (line 223) | fn filter_by_all_priority_levels() { function filter_by_single_type_bug (line 269) | fn filter_by_single_type_bug() { function filter_by_multiple_types (line 298) | fn filter_by_multiple_types() { function filter_by_all_issue_types (line 333) | fn filter_by_all_issue_types() { function filter_by_specific_assignee (line 377) | fn filter_by_specific_assignee() { function filter_by_unassigned (line 404) | fn filter_by_unassigned() { function assignee_filter_is_case_sensitive (line 431) | fn assignee_filter_is_case_sensitive() { function filter_by_title_contains (line 461) | fn filter_by_title_contains() { function filter_by_title_contains_case_insensitive (line 486) | fn filter_by_title_contains_case_insensitive() { function filter_by_title_contains_partial_match (line 508) | fn filter_by_title_contains_partial_match() { function filter_with_limit (line 530) | fn filter_with_limit() { function filter_with_limit_zero_returns_all (line 549) | fn filter_with_limit_zero_returns_all() { function filter_with_limit_zero_still_applies_offset (line 568) | fn filter_with_limit_zero_still_applies_offset() { function filter_with_limit_larger_than_result_count (line 603) | fn filter_with_limit_larger_than_result_count() { function default_excludes_closed_issues (line 625) | fn default_excludes_closed_issues() { function include_closed_returns_all (line 647) | fn include_closed_returns_all() { function tombstone_excluded_by_default (line 670) | fn tombstone_excluded_by_default() { function default_excludes_templates (line 700) | fn default_excludes_templates() { function include_templates_returns_all (line 720) | fn include_templates_returns_all() { function combined_status_and_priority_filters (line 745) | fn combined_status_and_priority_filters() { function combined_type_and_assignee_filters (line 778) | fn combined_type_and_assignee_filters() { function combined_title_and_limit_filters (line 811) | fn combined_title_and_limit_filters() { function combined_multiple_statuses_types_priorities (line 843) | fn combined_multiple_statuses_types_priorities() { function results_sorted_by_priority_then_created_at (line 894) | fn results_sorted_by_priority_then_created_at() { function empty_filters_returns_all_non_closed (line 926) | fn empty_filters_returns_all_non_closed() { function empty_status_vec_returns_all (line 948) | fn empty_status_vec_returns_all() { function filter_no_matches_returns_empty (line 965) | fn filter_no_matches_returns_empty() { function filter_with_special_characters_in_title (line 983) | fn filter_with_special_characters_in_title() { FILE: tests/storage_ready.rs function ready_ids (line 17) | fn ready_ids( function ready_filter_by_assignee (line 35) | fn ready_filter_by_assignee() { function ready_filter_unassigned_only (line 63) | fn ready_filter_unassigned_only() { function ready_filter_by_single_type (line 93) | fn ready_filter_by_single_type() { function ready_filter_by_multiple_types (line 121) | fn ready_filter_by_multiple_types() { function ready_filter_by_single_priority (line 155) | fn ready_filter_by_single_priority() { function ready_filter_by_multiple_priorities (line 183) | fn ready_filter_by_multiple_priorities() { function ready_filter_by_labels_and_single (line 222) | fn ready_filter_by_labels_and_single() { function ready_filter_by_labels_and_multiple (line 247) | fn ready_filter_by_labels_and_multiple() { function ready_filter_by_labels_or (line 275) | fn ready_filter_by_labels_or() { function ready_filter_with_limit (line 307) | fn ready_filter_with_limit() { function ready_filter_limit_zero_returns_all (line 326) | fn ready_filter_limit_zero_returns_all() { function ready_filter_limit_greater_than_total (line 345) | fn ready_filter_limit_greater_than_total() { function ready_sort_policy_priority (line 368) | fn ready_sort_policy_priority() { function ready_sort_policy_oldest (line 403) | fn ready_sort_policy_oldest() { function ready_sort_policy_hybrid (line 426) | fn ready_sort_policy_hybrid() { function ready_combined_assignee_and_type_filter (line 470) | fn ready_combined_assignee_and_type_filter() { function ready_combined_priority_and_label_filter (line 502) | fn ready_combined_priority_and_label_filter() { function ready_excludes_blocked_issues_with_filters (line 545) | fn ready_excludes_blocked_issues_with_filters() { function ready_excludes_in_progress_and_includes_only_open (line 590) | fn ready_excludes_in_progress_and_includes_only_open() { function ready_include_deferred_flag (line 624) | fn ready_include_deferred_flag() { FILE: tests/test_create_deps_colon.rs function test_create_deps_colon_title (line 6) | fn test_create_deps_colon_title() { FILE: tests/test_create_parent_standin.rs function test_create_parent_standin (line 6) | fn test_create_parent_standin() { FILE: tests/workspace_failure_replay.rs type FixtureWorkspace (line 12) | struct FixtureWorkspace { function fixture_workspace (line 18) | fn fixture_workspace(name: &str) -> FixtureWorkspace { function parse_stdout_json (line 37) | fn parse_stdout_json(run: &BrRun, context: &str) -> Value { function parse_stderr_json (line 53) | fn parse_stderr_json(run: &BrRun, context: &str) -> Value { function doctor_check (line 69) | fn doctor_check<'a>(doctor_json: &'a Value, name: &str) -> &'a Value { function surface_label (line 83) | fn surface_label(name: &str, surface: &str) -> String { function run_surface (line 91) | fn run_surface(fixture: &FixtureWorkspace, surface: &str) -> BrRun { function assert_sqlite_header (line 122) | fn assert_sqlite_header(db_path: &Path, context: &str) { function resolved_database_path (line 141) | fn resolved_database_path(fixture: &FixtureWorkspace, surface: &str) -> ... function assert_config_error (line 160) | fn assert_config_error(run: &BrRun, needle: &str, context: &str) { function first_issue_id (line 181) | fn first_issue_id(list_json: &Value) -> String { function first_issue_id_from_jsonl (line 190) | fn first_issue_id_from_jsonl(jsonl_path: &Path) -> String { function create_issue_id (line 199) | fn create_issue_id(create_json: &Value) -> String { function assert_custom_path_resolution (line 215) | fn assert_custom_path_resolution(fixture: &FixtureWorkspace, surface: &s... function assert_doctor_clean_surface (line 242) | fn assert_doctor_clean_surface(fixture: &FixtureWorkspace, context: &str... function reliability_audit_anomalies (line 259) | fn reliability_audit_anomalies<'a>( function assert_doctor_reliability_audit (line 338) | fn assert_doctor_reliability_audit(fixture: &FixtureWorkspace, context: ... function assert_repair_applied_surface (line 381) | fn assert_repair_applied_surface(context: &str, json: &Value) { function assert_status_surface (line 399) | fn assert_status_surface( function assert_surface_outcome (line 417) | fn assert_surface_outcome( function assert_core_read_success (line 507) | fn assert_core_read_success(fixture: &FixtureWorkspace) { function assert_core_read_failure (line 563) | fn assert_core_read_failure( function assert_core_write_success (line 625) | fn assert_core_write_success( function assert_core_write_failure (line 728) | fn assert_core_write_failure( function workspace_failure_replay_manifest_expectations_hold_on_fresh_copies (line 756) | fn workspace_failure_replay_manifest_expectations_hold_on_fresh_copies() { function workspace_failure_replay_doctor_reliability_audit_matches_fixture_posture (line 771) | fn workspace_failure_replay_doctor_reliability_audit_matches_fixture_pos... function workspace_failure_replay_core_read_surfaces_match_expected_posture (line 792) | fn workspace_failure_replay_core_read_surfaces_match_expected_posture() { function workspace_failure_replay_core_write_surfaces_match_expected_posture (line 854) | fn workspace_failure_replay_core_write_surfaces_match_expected_posture() { function infer_classification (line 895) | fn infer_classification(metadata: &WorkspaceFailureFixtureMetadata) -> &... function workspace_failure_replay_classification_coherence (line 953) | fn workspace_failure_replay_classification_coherence() {