-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathconfig.example.toml
More file actions
149 lines (135 loc) · 4.58 KB
/
Copy pathconfig.example.toml
File metadata and controls
149 lines (135 loc) · 4.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# codexSync - example configuration
# All comments in this file are in English.
[identity]
# Stable machine ID (set manually; do not generate a new random value on each run)
machine_id = "machine-a"
[sync]
# Sync mode: cold only (Codex must be closed)
mode = "cold"
# Direction: bidirectional sync based on mtime
direction = "bidirectional"
# Comparison algorithm: mtime|mtime_hash_fallback
# mtime_hash_fallback compares SHA-256 when size+mtime are equal/close
compare = "mtime"
# Time tolerance (seconds) to smooth small filesystem timestamp differences
time_tolerance_seconds = 0
# Action when mtimes are equal (within tolerance):
# skip|prefer_local|prefer_cloud|manual_abort
equal_mtime_action = "skip"
# Do not propagate deletions (safe mode)
delete_policy = "never"
# Enable dry-run by default
dry_run_default = true
# Session mode:
# all|last_date_only (latest date folder under sessions/, if date-based layout is detected)
session_mode = "last_date_only"
[paths]
# codexSync workspace root (used for variable expansion in other paths)
workspace_root_dir = "D:/GDrive/codexSync"
# Local Codex state directory
local_state_dir = "C:/Users/USERNAME/.codex"
# Shared cloud/network directory (example path)
cloud_root_dir = "${workspace_root}/sync"
# Directory for backups created before overwrite
backup_dir = "${workspace_root}/backups"
# Temporary directory for atomic operations (tmp + rename)
temp_dir = "${workspace_root}/.tmp"
[targets]
# Relative paths under local_state_dir/cloud_state_dir included in sync
include_roots = [
"sessions",
"session_index.jsonl",
"skills",
"plugins",
]
[filters]
# Global exclusions (temporary/cache/lock files, etc.)
exclude_globs = [
"**/*.lock",
"**/*.tmp",
"**/*.temp",
"**/tmp/**",
"**/cache/**",
"**/.cache/**",
"**/__pycache__/**",
"**/*.log",
]
[conflict]
# Conflict policy:
# manual_abort|prefer_cloud|prefer_local|prefer_newer_mtime
policy = "manual_abort"
# Include conflict file list in report
report_conflicts = true
[backup]
# Create backup before any target file overwrite
backup_before_overwrite = true
# Backup retention period (days)
retention_days = 30
# Maximum number of backup archives/directories (0 = unlimited)
max_backups = 0
# Backup compression: none|zip
compression = "none"
[safety]
# Never write state while Codex is running
require_codex_stopped = true
# On uncertainty, abort with error (safe fail)
fail_on_unknown = true
[process_detection]
# Codex process names across operating systems
process_names = ["codex.exe", "codex"]
# Small grace delay after process close before sync starts
grace_period_seconds = 2
# Allow automatic Codex process termination before sync (Windows only)
allow_terminate_if_running = true
# Require manual GUI confirmation before termination by default
manual_terminate_confirmation = true
# Confirmation channel: gui|console
terminate_confirmation_mode = "gui"
# Timeout waiting for full termination after terminate call (seconds)
terminate_timeout_seconds = 20
[process_detection.background_process_names]
# Background processes treated as "Codex is still running"
windows = ["codex-windows-sandbox"]
macos = []
linux = []
[state]
# Internal coordination files between machines
manifest_file = "${workspace_root}/state/manifest.json"
#lease_file = "D:/GDrive/codexSync/lease.json"
#history_dir = "D:/GDrive/codexSync/history"
# Lease TTL (seconds): once expired, another machine may take over sync
#lease_ttl_seconds = 300
# Internal metadata schema version
data_version = 1
[scheduler]
# Enable scheduling (manual run is always available)
enabled = false
# Scheduler type: windows_task_scheduler|cron|launchd|systemd
kind = "windows_task_scheduler"
# Run interval in minutes
interval_minutes = 10
# Random startup jitter (seconds) to reduce simultaneous runs on two machines
jitter_seconds = 30
[logging]
# Logging level: DEBUG|INFO|WARNING|ERROR
level = "INFO"
# Base log file path template (real files include machine + date suffix)
# Example real name: codexsync-machine-a-2026-03-21.log
file = "${workspace_root}/logs/codexsync.log"
# Log format: text|json|logfmt
format = "text"
# Log retention period (days)
retention_days = 7
# Archive mode for rotated/old logs: text|zip
archive_mode = "zip"
# Maximum size per active text log file (MB)
max_file_size_mb = 10
[assumptions]
# IMPORTANT: this defines the project's operational contract.
# 1) Close Codex on machine A
# 2) Wait for cloud synchronization to finish
# 3) Run sync on machine B
# Cloud client state and free-space checks are NOT performed by this tool.
strict_handoff_required = true
cloud_readiness_is_user_responsibility = true
cloud_capacity_is_user_responsibility = true