Files
dev/Cargo.toml
T
zeekay 501a220471 fix flow: Kai as controller of a ledgered loop, a search of candidate edits, tgrep evidence, recover
dev flow fix reads the failing output against the tree (locate: the gateway's
learned ranker, features held to its own by a test), puts the functions tgrep
finds spelling the failure's messages into the ranking, and lets Kai choose the
site, the action and the effort in one request, or decides alone when the
ranking is sure. The action search tries generic token transforms at the best
sites against the visible test, eight at once; a candidate that leaves fewer
tests failing is kept as a step. Else a model writes one edit (applied by text,
never a test file), the test runs, Kai reads a failed run in one request, and
recover fingerprints the failure and never replays a strategy on it.

Every action is a ledger line with a stable id, its revision, preconditions,
authorization, source and the states it passed through; credentials are
redacted. Kai's transport is a trait, health is per program.

Cargo.lock is not committed: hanzo-trigram is read from hanzoai/mcp commit
e9e6096, which is not pushed yet.
2026-10-14 14:54:05 -07:00

509 lines
21 KiB
TOML

[workspace]
members = [
"crates/hanzo-dev",
"crates/hanzo-config",
"crates/hanzo-tui",
"crates/hanzo-kai",
"crates/hanzo-loop",
"crates/hanzo-version",
]
exclude = ["upstream", "crates/hanzo-upstream"]
resolver = "2"
[workspace.package]
version = "0.7.0-dev.1"
# Track the edition for all workspace crates in one place. Individual
# crates can still override this value, but keeping it here means new
# crates created with `cargo new -w ...` automatically inherit the 2024
# edition.
edition = "2024"
license = "Apache-2.0"
[workspace.dependencies]
# Internal
codex-realtime-webrtc = { path = "upstream/codex/codex-rs/realtime-webrtc" }
app_test_support = { path = "upstream/codex/codex-rs/app-server/tests/common" }
codex-analytics = { path = "upstream/codex/codex-rs/analytics" }
codex-agent-graph-store = { path = "upstream/codex/codex-rs/agent-graph-store" }
codex-agent-identity = { path = "upstream/codex/codex-rs/agent-identity" }
codex-agent-roles = { path = "upstream/codex/codex-rs/agent-roles" }
codex-ansi-escape = { path = "upstream/codex/codex-rs/ansi-escape" }
codex-api = { path = "upstream/codex/codex-rs/codex-api" }
codex-attachment-store = { path = "upstream/codex/codex-rs/attachment-store" }
codex-aws-auth = { path = "upstream/codex/codex-rs/aws-auth" }
codex-app-server = { path = "upstream/codex/codex-rs/app-server" }
codex-app-server-transport = { path = "upstream/codex/codex-rs/app-server-transport" }
codex-app-server-daemon = { path = "upstream/codex/codex-rs/app-server-daemon" }
codex-app-server-client = { path = "upstream/codex/codex-rs/app-server-client" }
codex-app-server-protocol = { path = "upstream/codex/codex-rs/app-server-protocol" }
codex-app-server-protocol-noop-macros = { path = "upstream/codex/codex-rs/app-server-protocol-noop-macros" }
codex-app-server-test-client = { path = "upstream/codex/codex-rs/app-server-test-client" }
codex-apply-patch = { path = "upstream/codex/codex-rs/apply-patch" }
codex-arg0 = { path = "upstream/codex/codex-rs/arg0" }
codex-async-utils = { path = "upstream/codex/codex-rs/async-utils" }
codex-backend-client = { path = "upstream/codex/codex-rs/backend-client" }
codex-build-info = { path = "upstream/codex/codex-rs/build-info" }
codex-chatgpt = { path = "upstream/codex/codex-rs/chatgpt" }
codex-client = { path = "upstream/codex/codex-rs/codex-client" }
codex-collaboration-mode-templates = { path = "upstream/codex/codex-rs/collaboration-mode-templates" }
codex-cloud-config = { path = "upstream/codex/codex-rs/cloud-config" }
codex-cloud-tasks-client = { path = "upstream/codex/codex-rs/cloud-tasks-client" }
codex-cloud-tasks-mock-client = { path = "upstream/codex/codex-rs/cloud-tasks-mock-client" }
codex-code-mode = { path = "upstream/codex/codex-rs/code-mode" }
codex-code-mode-protocol = { path = "upstream/codex/codex-rs/code-mode-protocol" }
codex-code-mode-runtime = { path = "upstream/codex/codex-rs/code-mode-runtime" }
codex-home = { path = "upstream/codex/codex-rs/codex-home" }
codex-http-client = { path = "upstream/codex/codex-rs/http-client" }
codex-websocket-auth = { path = "upstream/codex/codex-rs/websocket-auth" }
codex-websocket-client = { path = "upstream/codex/codex-rs/websocket-client" }
codex-config = { path = "upstream/codex/codex-rs/config" }
codex-connectors = { path = "upstream/codex/codex-rs/connectors" }
codex-agent-extension = { path = "upstream/codex/codex-rs/ext/agent" }
codex-agent-message-board-client = { path = "upstream/codex/codex-rs/agent-message-board-client" }
codex-agent-message-board-extension = { path = "upstream/codex/codex-rs/ext/agent-message-board" }
codex-connectors-extension = { path = "upstream/codex/codex-rs/ext/connectors" }
codex-context-fragments = { path = "upstream/codex/codex-rs/context-fragments" }
codex-core = { path = "upstream/codex/codex-rs/core" }
codex-core-api = { path = "upstream/codex/codex-rs/core-api" }
codex-core-plugin-common = { path = "upstream/codex/codex-rs/core-plugin-common" }
codex-core-plugins = { path = "upstream/codex/codex-rs/core-plugins" }
codex-diagnostics = { path = "upstream/codex/codex-rs/diagnostics" }
codex-exec = { path = "upstream/codex/codex-rs/exec" }
codex-file-system = { path = "upstream/codex/codex-rs/file-system" }
codex-exec-server-protocol = { path = "upstream/codex/codex-rs/exec-server-protocol" }
codex-exec-server = { path = "upstream/codex/codex-rs/exec-server" }
codex-exec-server-test-support = { path = "upstream/codex/codex-rs/exec-server/tests/support" }
codex-execpolicy = { path = "upstream/codex/codex-rs/execpolicy" }
codex-extension-api = { path = "upstream/codex/codex-rs/ext/extension-api" }
codex-extension-items = { path = "upstream/codex/codex-rs/ext/items" }
codex-goal-extension = { path = "upstream/codex/codex-rs/ext/goal" }
codex-git-attribution = { path = "upstream/codex/codex-rs/ext/git-attribution" }
codex-guardian-reviewer = { path = "upstream/codex/codex-rs/ext/guardian-reviewer" }
codex-guardian-v2 = { path = "upstream/codex/codex-rs/ext/guardian-v2" }
codex-history-notes-extension = { path = "upstream/codex/codex-rs/ext/history-notes" }
codex-image-generation-extension = { path = "upstream/codex/codex-rs/ext/image-generation" }
codex-external-agent-migration = { path = "upstream/codex/codex-rs/external-agent-migration" }
codex-experimental-api-macros = { path = "upstream/codex/codex-rs/codex-experimental-api-macros" }
codex-features = { path = "upstream/codex/codex-rs/features" }
codex-feedback = { path = "upstream/codex/codex-rs/feedback" }
codex-install-context = { path = "upstream/codex/codex-rs/install-context" }
codex-file-search = { path = "upstream/codex/codex-rs/file-search" }
codex-file-watcher = { path = "upstream/codex/codex-rs/file-watcher" }
codex-git-utils = { path = "upstream/codex/codex-rs/git-utils" }
codex-guardian-context = { path = "upstream/codex/codex-rs/guardian-context" }
codex-hooks = { path = "upstream/codex/codex-rs/hooks" }
codex-history = { path = "upstream/codex/codex-rs/history" }
codex-keyring-store = { path = "upstream/codex/codex-rs/keyring-store" }
codex-linux-sandbox = { path = "upstream/codex/codex-rs/linux-sandbox" }
codex-lmstudio = { path = "upstream/codex/codex-rs/lmstudio" }
codex-login = { path = "upstream/codex/codex-rs/login" }
codex-mermaid = { path = "upstream/codex/codex-rs/mermaid" }
codex-message-history = { path = "upstream/codex/codex-rs/message-history" }
codex-memories-extension = { path = "upstream/codex/codex-rs/ext/memories" }
codex-web-search-extension = { path = "upstream/codex/codex-rs/ext/web-search" }
codex-memories-read = { path = "upstream/codex/codex-rs/memories/read" }
codex-memories-write = { path = "upstream/codex/codex-rs/memories/write" }
codex-mcp = { path = "upstream/codex/codex-rs/codex-mcp" }
codex-mcp-extension = { path = "upstream/codex/codex-rs/ext/mcp" }
codex-model-provider-info = { path = "upstream/codex/codex-rs/model-provider-info" }
codex-models-manager = { path = "upstream/codex/codex-rs/models-manager" }
codex-mxc-sandbox = { path = "upstream/codex/codex-rs/mxc-sandbox" }
codex-network-proxy = { path = "upstream/codex/codex-rs/network-proxy" }
codex-ollama = { path = "upstream/codex/codex-rs/ollama" }
codex-otel = { path = "upstream/codex/codex-rs/otel" }
codex-otel-trace-websocket = { path = "upstream/codex/codex-rs/otel-trace-websocket" }
codex-plugin = { path = "upstream/codex/codex-rs/plugin" }
codex-model-provider = { path = "upstream/codex/codex-rs/model-provider" }
codex-process-hardening = { path = "upstream/codex/codex-rs/process-hardening" }
codex-protocol = { path = "upstream/codex/codex-rs/protocol" }
codex-prompts = { path = "upstream/codex/codex-rs/prompts" }
codex-queue-extension = { path = "upstream/codex/codex-rs/ext/queue" }
codex-responses-api-proxy = { path = "upstream/codex/codex-rs/responses-api-proxy" }
codex-response-debug-context = { path = "upstream/codex/codex-rs/response-debug-context" }
codex-rmcp-client = { path = "upstream/codex/codex-rs/rmcp-client" }
codex-rollout = { path = "upstream/codex/codex-rs/rollout" }
codex-rollout-trace = { path = "upstream/codex/codex-rs/rollout-trace" }
codex-sandboxing = { path = "upstream/codex/codex-rs/sandboxing" }
codex-secrets = { path = "upstream/codex/codex-rs/secrets" }
codex-shell-command = { path = "upstream/codex/codex-rs/shell-command" }
codex-shell-escalation = { path = "upstream/codex/codex-rs/shell-escalation" }
codex-skills-extension = { path = "upstream/codex/codex-rs/ext/skills" }
codex-skills = { path = "upstream/codex/codex-rs/skills" }
codex-state = { path = "upstream/codex/codex-rs/state" }
codex-stdio-to-uds = { path = "upstream/codex/codex-rs/stdio-to-uds" }
codex-terminal-detection = { path = "upstream/codex/codex-rs/terminal-detection" }
codex-test-binary-support = { path = "upstream/codex/codex-rs/test-binary-support" }
codex-thread-store = { path = "upstream/codex/codex-rs/thread-store" }
codex-tools = { path = "upstream/codex/codex-rs/tools" }
codex-tcp-tunnel = { path = "upstream/codex/codex-rs/tcp-tunnel" }
codex-tui = { path = "upstream/codex/codex-rs/tui" }
codex-uds = { path = "upstream/codex/codex-rs/uds" }
codex-utils-absolute-path = { path = "upstream/codex/codex-rs/utils/absolute-path" }
codex-utils-approval-presets = { path = "upstream/codex/codex-rs/utils/approval-presets" }
codex-utils-audio = { path = "upstream/codex/codex-rs/utils/audio" }
codex-utils-cache = { path = "upstream/codex/codex-rs/utils/cache" }
codex-utils-cargo-bin = { path = "upstream/codex/codex-rs/utils/cargo-bin" }
codex-utils-cli = { path = "upstream/codex/codex-rs/utils/cli" }
codex-utils-elapsed = { path = "upstream/codex/codex-rs/utils/elapsed" }
codex-utils-fuzzy-match = { path = "upstream/codex/codex-rs/utils/fuzzy-match" }
codex-utils-git-discovery = { path = "upstream/codex/codex-rs/utils/git-discovery" }
codex-utils-home-dir = { path = "upstream/codex/codex-rs/utils/home-dir" }
codex-utils-image = { path = "upstream/codex/codex-rs/utils/image" }
codex-utils-json-to-toml = { path = "upstream/codex/codex-rs/utils/json-to-toml" }
codex-utils-oss = { path = "upstream/codex/codex-rs/utils/oss" }
codex-utils-output-truncation = { path = "upstream/codex/codex-rs/utils/output-truncation" }
codex-utils-path = { path = "upstream/codex/codex-rs/utils/path-utils" }
codex-utils-path-uri = { path = "upstream/codex/codex-rs/utils/path-uri" }
codex-utils-plugins = { path = "upstream/codex/codex-rs/utils/plugins" }
codex-utils-process = { path = "upstream/codex/codex-rs/utils/process" }
codex-utils-pty = { path = "upstream/codex/codex-rs/utils/pty" }
codex-utils-redacted-string = { path = "upstream/codex/codex-rs/utils/redacted-string" }
codex-utils-rustls-provider = { path = "upstream/codex/codex-rs/utils/rustls-provider" }
codex-utils-sandbox-summary = { path = "upstream/codex/codex-rs/utils/sandbox-summary" }
codex-worktree = { path = "upstream/codex/codex-rs/worktree" }
codex-utils-sleep-inhibitor = { path = "upstream/codex/codex-rs/utils/sleep-inhibitor" }
codex-utils-stream-parser = { path = "upstream/codex/codex-rs/utils/stream-parser" }
codex-utils-string = { path = "upstream/codex/codex-rs/utils/string" }
codex-utils-template = { path = "upstream/codex/codex-rs/utils/template" }
codex-user-verification = { path = "upstream/codex/codex-rs/user-verification" }
codex-v8-poc = { path = "upstream/codex/codex-rs/v8-poc" }
codex-workload-identity = { path = "upstream/codex/codex-rs/workload-identity" }
codex-windows-sandbox = { path = "upstream/codex/codex-rs/windows-sandbox-rs" }
codex-windows-sandbox-test-support = { path = "upstream/codex/codex-rs/windows-sandbox-rs/tests/support" }
core_test_support = { path = "upstream/codex/codex-rs/core/tests/common" }
# External
age = "0.12.1"
ansi-to-tui = "8.0.1"
anyhow = "1"
arboard = { version = "3", features = ["wayland-data-control"] }
arc-swap = "1.9.0"
assert_cmd = "2"
assert_matches = "1.5.0"
async-channel = "2.3.1"
async-io = "2.6.0"
async-stream = "0.3.6"
aws-config = "1"
aws-credential-types = "1"
aws-sigv4 = "1"
aws-smithy-runtime-api = { version = "1", features = ["client", "http-1x"] }
aws-smithy-types = { version = "1", features = ["http-body-1-x"] }
aws-types = "1"
axum = { version = "0.8", default-features = false }
base64 = "0.22.1"
bitflags = "2.13.1"
blake3 = "1.8.2"
bm25 = "2.3.2"
bytes = "1.10.1"
caseless = "0.2.2"
chardetng = "0.1.17"
chrono = "0.4.43"
clap = "4"
clap_complete = "4"
clatter = { version = "2.2.0", default-features = false, features = [
"alloc",
"getrandom",
"use-25519",
"use-aes-gcm",
"use-rust-crypto-ml-kem",
"use-sha",
] }
color-eyre = "0.6.3"
constant_time_eq = "0.3.1"
crossbeam-channel = "0.5.15"
crypto_box = { version = "0.9.1", features = ["seal"] }
crossterm = "0.29.0"
ctor = "0.6.3"
deno_core_icudata = "0.77.0"
derive_more = "2"
diffy = "0.4.2"
dirs = "6"
divan = "0.1.21"
dns-lookup = "3.0.1"
dotenvy = "0.15.7"
dunce = "1.0.4"
ed25519-dalek = { version = "2.2.0", features = ["pkcs8"] }
encoding_rs = "0.8.35"
eventsource-stream = "0.2.3"
file-id = "0.2.3"
flate2 = "1.1.8"
futures = { version = "0.3", default-features = false }
gethostname = "1.1.0"
gix = { version = "0.81.0", default-features = false, features = ["sha1"] }
gix-url = "0.35.2"
glob = "0.3"
globset = "0.4"
hmac = "0.12.1"
http = "1.3.1"
httpdate = "1.0.3"
iana-time-zone = "0.1.64"
icu_decimal = "2.1"
icu_locale_core = "2.1"
icu_provider = { version = "2.1", features = ["sync"] }
ignore = "0.4.23"
image = { version = "^0.25.9", default-features = false }
include_dir = "0.7.4"
indexmap = "2.12.0"
insta = "1.46.3"
inventory = "0.3.19"
itertools = "0.14.0"
jsonptr = { version = "0.7.1", default-features = false }
jsonwebtoken = "9.3.1"
keyring = { version = "3.6", default-features = false }
landlock = "0.4.4"
lazy_static = "1"
libc = "0.2.182"
# Keep SQLx's bundled SQLite on a version containing the WAL-reset corruption fix:
# https://www.sqlite.org/wal.html#the_wal_reset_bug
libsqlite3-sys = { version = "0.37", default-features = false }
log = "0.4"
lru = "0.18.2"
maplit = "1.0.2"
memchr = "2.7.6"
mime_guess = "2.0.5"
multimap = "0.10.0"
mxc-sdk = { git = "https://github.com/microsoft/mxc", rev = "a846837d827b496fc4a08dfe60554515758c6647" }
notify = "8.2.0"
nucleo = { git = "https://github.com/helix-editor/nucleo.git", rev = "4253de9faabb4e5c6d81d946a5e35a90f87347ee" }
once_cell = "1.20.2"
openssl-sys = "*"
opentelemetry = "0.31.0"
opentelemetry-appender-tracing = "0.31.0"
opentelemetry-otlp = "0.31.0"
opentelemetry-semantic-conventions = "0.31.0"
opentelemetry_sdk = "0.31.0"
os_info = "3.12.0"
owo-colors = "4.3.0"
pathdiff = "0.2"
portable-pty = "0.9.0"
predicates = "3"
pretty_assertions = "1.4.1"
pulldown-cmark = { version = "0.10", default-features = false }
quick-xml = "0.41.0"
rand = "0.9"
rand_regex = "0.18.1"
ratatui = { version = "0.30.2", default-features = false, features = [
"crossterm",
"layout-cache",
"underline-color",
] }
ratatui-macros = "0.7.2"
rcgen = { version = "0.14.7", default-features = false, features = [
"aws_lc_rs",
"pem",
] }
regex = "1.12.3"
regex-automata = { version = "0.4.13", default-features = false, features = ["std", "syntax", "unicode", "nfa-pikevm"] }
regex-lite = "0.1.8"
regex-syntax = "0.8.8"
reqwest = { version = "0.12", features = ["cookies"] }
# rmcp-v3.3.0 includes enterprise authorization helpers (rust-sdk#1234).
rmcp = { git = "https://github.com/modelcontextprotocol/rust-sdk", rev = "3e636cab26c013eca5131103c03d20237f12c4df", version = "=3.3.0", default-features = false }
runfiles = { git = "https://github.com/dzbarsky/rules_rust", rev = "b56cbaa8465e74127f1ea216f813cd377295ad81" }
rustix = { version = "1.1.4", features = ["net"] }
rustls = { version = "0.23.45", default-features = false, features = [
"aws_lc_rs",
"std",
] }
rustls-native-certs = "0.8.3"
rustls-pki-types = "1.14.0"
schemars = "0.8.22"
seccompiler = "0.5.0"
semver = "1.0"
sentry = "0.46.0"
serde = { version = "1", features = ["rc"] }
serde_ignored = "0.1.14"
serde_json = "1"
serde_path_to_error = "0.1.20"
serde_with = "3.17"
serde_yaml = "0.9"
serial_test = "3.2.0"
sha1 = "0.10.6"
scopeguard = "1.2.0"
sha2 = "0.10"
shlex = "1.3.0"
signal-hook = "0.3.18"
similar = "2.7.0"
symphonia = { version = "0.6.0", default-features = false, features = [
"isomp4",
"mkv",
"mp3",
"ogg",
"wav",
] }
socket2 = "0.6.1"
# Keep SQLx versions in sync; when bumping, audit the SQLite constructor deny list in clippy.toml.
sqlx = { version = "=0.9.0", default-features = false, features = [
"chrono",
"json",
"migrate",
"runtime-tokio",
"tls-rustls",
"sqlite-bundled",
"time",
"uuid",
] }
# Derives and migration embedding do not need query macros or a host SQLite driver.
sqlx-macros = { version = "=0.9.0", default-features = false, features = ["derive", "migrate"] }
# Preserve the target driver's query-description support without building it on the host.
sqlx-sqlite = { version = "=0.9.0", default-features = false, features = ["offline"] }
starlark = { version = "0.14.2", default-features = false }
strum = "0.27.2"
strum_macros = "0.28.0"
supports-color = "3.0.2"
syntect = "5"
sys-locale = "0.3.2"
system-configuration = "0.7"
tar = { version = "=0.4.45", default-features = false }
tempfile = "3.23.0"
test-log = "0.2.19"
textwrap = "0.16.2"
thiserror = "2.0.17"
tikv-jemallocator = "=0.7.0"
time = "0.3.47"
tiny_http = "0.12"
tokio = "1"
tokio-rustls = "0.26.4"
tokio-stream = "0.1.18"
tokio-test = "0.4"
tokio-tungstenite = { version = "0.28.0", features = [
"proxy",
"rustls-tls-native-roots",
] }
tokio-util = "0.7.18"
toml = "0.9.5"
toml_edit = "0.24.0"
tracing = "0.1.44"
tracing-appender = "0.2.3"
tracing-opentelemetry = "0.32.0"
tracing-subscriber = "0.3.22"
tracing-test = "0.2.5"
tonic = { version = "0.14.3", default-features = false, features = ["channel", "codegen"] }
tonic-prost = "0.14.3"
tree-sitter = "0.25.10"
tree-sitter-bash = "0.25"
tree-sitter-powershell = "=0.26.4"
ts-rs = "11"
tungstenite = { version = "0.27.0", features = ["deflate", "proxy"] }
uds_windows = "1.1.0"
unicode-segmentation = "1.12.0"
unicode-width = "0.2"
url = "2"
urlencoding = "2.1"
uuid = "1"
v8 = "=150.4.0"
vt100 = "0.16.2"
walkdir = "2.5.0"
webbrowser = "1.2.2"
which = "8"
whoami = "1.6.1"
wildmatch = "2.6.1"
winapi-util = "0.1.11"
windows-sys = "0.61.2"
zip = "2.4.2"
zstd = "0.13"
wiremock = "0.6"
zeroize = "1.8.2"
[workspace.lints]
rust = {}
[workspace.lints.clippy]
await_holding_invalid_type = "deny"
await_holding_lock = "deny"
disallowed_methods = "deny"
expect_used = "deny"
identity_op = "deny"
manual_clamp = "deny"
manual_filter = "deny"
manual_find = "deny"
manual_flatten = "deny"
manual_map = "deny"
manual_memcpy = "deny"
manual_non_exhaustive = "deny"
manual_ok_or = "deny"
manual_range_contains = "deny"
manual_retain = "deny"
manual_strip = "deny"
manual_try_fold = "deny"
manual_unwrap_or = "deny"
needless_borrow = "deny"
needless_borrowed_reference = "deny"
needless_collect = "deny"
needless_late_init = "deny"
needless_option_as_deref = "deny"
needless_question_mark = "deny"
needless_update = "deny"
redundant_clone = "deny"
redundant_closure = "deny"
redundant_closure_for_method_calls = "deny"
redundant_static_lifetimes = "deny"
trivially_copy_pass_by_ref = "deny"
uninlined_format_args = "deny"
unnecessary_filter_map = "deny"
unnecessary_lazy_evaluations = "deny"
unnecessary_sort_by = "deny"
unnecessary_to_owned = "deny"
unwrap_used = "deny"
# cargo-shear cannot see the platform-specific openssl-sys usage, so we
# silence the false positive here instead of deleting a real dependency.
[workspace.metadata.cargo-shear]
ignored = [
"icu_provider",
"openssl-sys",
"codex-v8-poc",
]
[profile.dev]
# The test profile inherits dev. Keep source locations in ordinary builds;
# use CARGO_PROFILE_DEV_DEBUG=full (or CARGO_PROFILE_TEST_DEBUG=full) for locals.
debug = "line-tables-only"
[profile.dev-small]
inherits = "dev"
opt-level = 0
debug = "none"
strip = "symbols"
[profile.release]
lto = "thin"
debug = "line-tables-only"
split-debuginfo = "off"
# Keep release binaries symbolicateable until packaging has archived the
# sidecar symbols and stripped the binaries.
strip = false
# Balance parallel release code generation against binary size.
codegen-units = 4
[profile.profiling]
inherits = "release"
debug = "full"
lto = false
strip = false
[profile.ci-test]
# Reduce binary size to reduce disk pressure.
inherits = "test"
opt-level = 0
[patch.crates-io]
# Uncomment to debug local changes.
# ratatui = { path = "upstream/codex/codex-rs/../../ratatui" }
crossterm = { git = "https://github.com/openai-oss-forks/crossterm", rev = "ed1cdab335221515706178d68495bba2aed1924f" }
tokio-tungstenite = { git = "https://github.com/openai-oss-forks/tokio-tungstenite", rev = "0e5b2d73aa18dd9f0a50ee9ff199d5aef7594186" }
tungstenite = { git = "https://github.com/openai-oss-forks/tungstenite-rs", rev = "4fffad30fe373adbdcffab9545e9e9bf4f2fc19f" }
# Uncomment to debug local changes.
# rmcp = { path = "upstream/codex/codex-rs/../../rust-sdk/crates/rmcp" }
[patch."ssh://[email protected]/openai-oss-forks/tungstenite-rs.git"]
tungstenite = { git = "https://github.com/openai-oss-forks/tungstenite-rs", rev = "4fffad30fe373adbdcffab9545e9e9bf4f2fc19f" }
# hanzo-trigram's tgrep-core pins rusqlite by git commit, whose libsqlite3-sys 0.38 would link a
# second SQLite beside the 0.37 sqlx bundles. rusqlite 0.39 is the release built on 0.37.
[patch."https://github.com/rusqlite/rusqlite.git"]
rusqlite = "=0.39.0"