version = 1

[session]
state_file = ".codex/session/STATE.md"
verification_file = ".codex/session/verification.json"
max_state_lines = 180

[output]
log_dir = ".codex/logs"
evidence_dir = ".codex/evidence"
max_failure_lines = 120
progress_mode = "meaningful-checkpoints"

[verification]
default_tier = "fast"
candidate_requires_explicit_state = true
reuse_by_input_digest = true
offline_after_bootstrap = true
cargo_lane_wrapper = "scripts/codex/cargo_lane.py"
persistent_lane = "dev"
candidate_lane = "candidate"
hot_reload_lane = "hot-reload"
full_debug_lane = "full-debug"
package_lane = "package"
parallel_cargo = false
run_workspace_check_before_workspace_test = false

[build_storage]
enabled = true
strategy = "separate-build-dir-when-supported"
cache_root = "workspace-parent-cache"
workspace_partition = "canonical-path-hash"
dev_target_dir = "target"
exceptional_target_root = "target/lanes"
soft_total_gib = 55
hard_total_gib = 80
min_free_gib = 40
min_free_percent = 15
persistent_lane_max_gib = 40
disposable_lane_max_gib = 35
candidate_retention_hours = 24
hot_reload_retention_hours = 24
full_debug_retention_hours = 12
failed_lane_retention_hours = 24
auto_prune_disposable = true
persistent_reset = "safe-slice-boundary-after-dry-run"
delete_only_marked_lanes = true
preflight = true
postflight = true

[git]
large_task_branch = true
local_checkpoint_commits = true
push = "explicit"
force_push = false
dirty_main_policy = "preserve-and-isolate-when-safe"

[gitea]
repository = "Falling-Metal-Interactive/Blacksite"
read_exact_items_first = true
routine_status_comments = true
sync_acceptance_checkboxes = true
sync_epic_checklists = true
create_issues = "explicit"
change_scope_or_milestone = "explicit"
close_issues = "candidate-only"
close_milestones = "candidate-only"
delete_or_reopen = "explicit"
max_status_comments_per_slice = 1

[documentation]
authority_manifest = "docs/authority.toml"
classify_all_docs = true
historical_banner_required = true
canonical_topic_unique = true
completed_plans_become_historical = true

[native_qa]
reuse_running_session = true
capture_target_window_only = true
restore_fixtures = true
