2026-07-16 06:46:02 +01:00
|
|
|
# Auto-generated workspace root. Prefer editing per-crate Cargo.toml files.
|
|
|
|
|
|
|
|
|
|
[workspace]
|
|
|
|
|
resolver = "2"
|
|
|
|
|
members = [
|
|
|
|
|
"crates/build/xai-proto-build",
|
|
|
|
|
"crates/codegen/ptyctl",
|
|
|
|
|
"crates/codegen/ptyctl-cli",
|
|
|
|
|
"crates/codegen/xai-acp-lib",
|
|
|
|
|
"crates/codegen/xai-agent-lifecycle",
|
|
|
|
|
"crates/codegen/xai-chat-state",
|
|
|
|
|
"crates/codegen/xai-codebase-graph",
|
|
|
|
|
"crates/codegen/xai-crash-handler",
|
|
|
|
|
"crates/codegen/xai-fast-worktree",
|
|
|
|
|
"crates/codegen/xai-file-utils",
|
|
|
|
|
"crates/codegen/xai-fsnotify",
|
|
|
|
|
"crates/codegen/xai-gix-status",
|
|
|
|
|
"crates/codegen/xai-grok-agent",
|
|
|
|
|
"crates/codegen/xai-grok-announcements",
|
|
|
|
|
"crates/codegen/xai-grok-auth",
|
|
|
|
|
"crates/codegen/xai-grok-config",
|
|
|
|
|
"crates/codegen/xai-grok-config-types",
|
|
|
|
|
"crates/codegen/xai-grok-env",
|
|
|
|
|
"crates/codegen/xai-grok-hooks",
|
|
|
|
|
"crates/codegen/xai-grok-http",
|
|
|
|
|
"crates/codegen/xai-grok-markdown",
|
|
|
|
|
"crates/codegen/xai-grok-markdown-core",
|
|
|
|
|
"crates/codegen/xai-grok-mcp",
|
|
|
|
|
"crates/codegen/xai-grok-memory",
|
|
|
|
|
"crates/codegen/xai-grok-mermaid",
|
|
|
|
|
"crates/codegen/xai-grok-models",
|
|
|
|
|
"crates/codegen/xai-grok-pager",
|
|
|
|
|
"crates/codegen/xai-grok-pager-bin",
|
|
|
|
|
"crates/codegen/xai-grok-pager-minimal",
|
|
|
|
|
"crates/codegen/xai-grok-pager-pty-harness",
|
|
|
|
|
"crates/codegen/xai-grok-pager-render",
|
|
|
|
|
"crates/codegen/xai-grok-paths",
|
|
|
|
|
"crates/codegen/xai-grok-plugin-marketplace",
|
|
|
|
|
"crates/codegen/xai-grok-sampler",
|
|
|
|
|
"crates/codegen/xai-grok-sampling-types",
|
|
|
|
|
"crates/codegen/xai-grok-sandbox",
|
|
|
|
|
"crates/codegen/xai-grok-secrets",
|
|
|
|
|
"crates/codegen/xai-grok-shared",
|
|
|
|
|
"crates/codegen/xai-grok-shell",
|
|
|
|
|
"crates/codegen/xai-grok-shell-base",
|
|
|
|
|
"crates/codegen/xai-grok-shell-session-support",
|
|
|
|
|
"crates/codegen/xai-grok-subagent-resolution",
|
|
|
|
|
"crates/codegen/xai-grok-telemetry",
|
|
|
|
|
"crates/codegen/xai-grok-test-support",
|
|
|
|
|
"crates/codegen/xai-grok-tools",
|
|
|
|
|
"crates/codegen/xai-grok-tools-api",
|
|
|
|
|
"crates/codegen/xai-grok-update",
|
|
|
|
|
"crates/codegen/xai-grok-version",
|
|
|
|
|
"crates/codegen/xai-grok-voice",
|
|
|
|
|
"crates/codegen/xai-grok-workspace",
|
|
|
|
|
"crates/codegen/xai-grok-workspace-client",
|
|
|
|
|
"crates/codegen/xai-grok-workspace-types",
|
|
|
|
|
"crates/codegen/xai-hooks-plugins-types",
|
|
|
|
|
"crates/codegen/xai-hunk-tracker",
|
|
|
|
|
"crates/codegen/xai-mixpanel",
|
|
|
|
|
"crates/codegen/xai-prompt-queue",
|
|
|
|
|
"crates/codegen/xai-ratatui-inline",
|
|
|
|
|
"crates/codegen/xai-ratatui-textarea",
|
|
|
|
|
"crates/codegen/xai-sqlite-journal",
|
|
|
|
|
"crates/codegen/xai-system-power",
|
|
|
|
|
"crates/codegen/xai-token-estimation",
|
|
|
|
|
"crates/codegen/xai-tracing-macros",
|
|
|
|
|
"crates/codegen/xai-tty-utils",
|
|
|
|
|
"crates/common/xai-circuit-breaker",
|
|
|
|
|
"crates/common/xai-computer-hub-core",
|
|
|
|
|
"crates/common/xai-computer-hub-mcp-adapter",
|
|
|
|
|
"crates/common/xai-computer-hub-sdk",
|
|
|
|
|
"crates/common/xai-grok-compaction",
|
|
|
|
|
"crates/common/xai-interjection-core",
|
|
|
|
|
"crates/common/xai-test-utils",
|
|
|
|
|
"crates/common/xai-tool-protocol",
|
|
|
|
|
"crates/common/xai-tool-runtime",
|
|
|
|
|
"crates/common/xai-tool-types",
|
|
|
|
|
"crates/common/xai-tracing",
|
|
|
|
|
"prod/mc/cli-chat-proxy-types",
|
|
|
|
|
"third_party/dagre_rust",
|
|
|
|
|
"third_party/graphlib_rust",
|
|
|
|
|
"third_party/mermaid-to-svg",
|
|
|
|
|
"third_party/ordered_hashmap",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[workspace.package]
|
|
|
|
|
edition = "2024"
|
|
|
|
|
license = "Apache-2.0"
|
|
|
|
|
|
|
|
|
|
[workspace.dependencies]
|
|
|
|
|
agent-client-protocol = { version = "0.10.4", features = ["unstable"] }
|
|
|
|
|
alacritty_terminal = "0.26.0"
|
|
|
|
|
ansi-to-tui = "7.0.0"
|
|
|
|
|
ansi-width = "0.1"
|
|
|
|
|
anstyle = "1.0"
|
|
|
|
|
anstyle-lossy = "1.1.4"
|
|
|
|
|
anstyle-parse = "0.2"
|
|
|
|
|
anstyle-syntect = "1.0.4"
|
|
|
|
|
anyhow = { version = "1", features = ["backtrace"] }
|
|
|
|
|
arboard = "3.6"
|
|
|
|
|
arc-swap = "1.7"
|
|
|
|
|
assert_matches = "1.5.0"
|
|
|
|
|
async-compression = { version = "0.4.17", default-features = false, features = ["gzip", "zstd", "tokio"] }
|
|
|
|
|
async-lsp = { version = "0.2.3", features = ["tokio", "tracing"] }
|
|
|
|
|
async-openai = { version = "0.33.0", features = ["responses"] }
|
|
|
|
|
async-stream = "0.3"
|
|
|
|
|
async-trait = "0.1"
|
|
|
|
|
axum = { version = "0.8", features = ["macros", "ws"] }
|
|
|
|
|
backon = { version = "1.6" }
|
|
|
|
|
backtrace = "0.3"
|
|
|
|
|
base64 = "0.22"
|
|
|
|
|
blake3 = "1"
|
|
|
|
|
bytes = { version = "1", features = ["serde"] }
|
|
|
|
|
camino = "1.1.10"
|
|
|
|
|
chrono = "0.4"
|
|
|
|
|
clap = { version = "4", features = ["derive", "env"] }
|
|
|
|
|
clap_complete = { version = "4" }
|
|
|
|
|
colored_json = "5"
|
|
|
|
|
core-foundation = "0.10"
|
|
|
|
|
crc32fast = "1.4"
|
|
|
|
|
criterion = "0.6"
|
|
|
|
|
crossbeam = "0.8"
|
|
|
|
|
crossterm = "0.28"
|
|
|
|
|
cryptify = "3.2"
|
|
|
|
|
dashmap = "6"
|
|
|
|
|
derive_more = { version = "2", features = ["add", "add_assign", "debug", "deref", "deref_mut", "display", "from", "from_str", "into", "into_iterator", "try_into"] }
|
2026-07-18 19:48:28 +01:00
|
|
|
dhat = "0.3"
|
2026-07-16 06:46:02 +01:00
|
|
|
dirs = "5.0"
|
|
|
|
|
documented = "0.9"
|
|
|
|
|
dunce = "1"
|
|
|
|
|
educe = "0.6.0"
|
|
|
|
|
enum_delegate = "0.2"
|
|
|
|
|
env_logger = "0.11"
|
|
|
|
|
eventsource-stream = "0.2"
|
|
|
|
|
fastrace = { version = "0.7" }
|
|
|
|
|
fastrace-opentelemetry = { version = "0.18" }
|
|
|
|
|
fastrace-reqwest = { version = "0.2" }
|
|
|
|
|
fastrace-tonic = { version = "0.1" }
|
|
|
|
|
fastrand = "2"
|
|
|
|
|
filetime = "0.2.25"
|
|
|
|
|
flate2 = { version = "1", default-features = false, features = ["zlib-rs"] }
|
|
|
|
|
fontdb = "0.23"
|
|
|
|
|
fs2 = "0.4"
|
|
|
|
|
futures = "0.3"
|
|
|
|
|
futures-util = "0.3"
|
|
|
|
|
fuzzy-matcher = "0.3.7"
|
|
|
|
|
gcloud-storage = { version = "1.3.0", default-features = false, features = ["auth", "jwt-aws-lc-rs", "external-account"] }
|
|
|
|
|
gethostname = "1"
|
|
|
|
|
gix = { version = "0.83", default-features = false, features = ["sha1"] }
|
|
|
|
|
glob = "0.3"
|
|
|
|
|
globset = "0.4"
|
|
|
|
|
htmd = "0.5.4"
|
|
|
|
|
html-escape = "0.2"
|
|
|
|
|
http = "1"
|
|
|
|
|
http-body-util = "0.1"
|
|
|
|
|
humantime-serde = "1"
|
|
|
|
|
ignore = "0.4"
|
|
|
|
|
image = { version = "0.25.9", default-features = false }
|
|
|
|
|
indexmap = { version = "2", features = ["serde"] }
|
|
|
|
|
indicatif = "0.18"
|
|
|
|
|
infer = "0.19.0"
|
|
|
|
|
insta = "1"
|
|
|
|
|
itertools = "0.14"
|
|
|
|
|
jsonschema = "0.30.0"
|
|
|
|
|
libc = "0.2"
|
|
|
|
|
linkify = "0.10"
|
|
|
|
|
lipsum = "0.9"
|
|
|
|
|
log = { version = "0.4", features = ["kv", "kv_unstable"] }
|
|
|
|
|
md5 = "0.8"
|
|
|
|
|
mermaid-to-svg = { path = "third_party/mermaid-to-svg" }
|
|
|
|
|
minijinja = "2.9"
|
|
|
|
|
mockito = "1"
|
|
|
|
|
moka = "0.12"
|
|
|
|
|
nix = { version = "0.30", features = ["poll", "process", "signal", "sched", "term", "mount", "fs", "ioctl", "mman", "reboot", "user"] }
|
|
|
|
|
notify = "8"
|
|
|
|
|
notify-debouncer-mini = "0.6"
|
|
|
|
|
nucleo = { git = "https://github.com/helix-editor/nucleo.git", rev = "5b74652" }
|
|
|
|
|
num_cpus = "1"
|
|
|
|
|
oauth2 = "5"
|
|
|
|
|
obfstr = "0.4"
|
|
|
|
|
once_cell = "1"
|
|
|
|
|
opentelemetry = "0.32"
|
|
|
|
|
opentelemetry-http = { version = "0.32", features = ["reqwest-blocking"] }
|
|
|
|
|
opentelemetry-otlp = { version = "0.32", features = ["grpc-tonic", "reqwest-blocking-client", "tls-roots"] }
|
|
|
|
|
opentelemetry-proto = { version = "0.32", features = ["gen-tonic"] }
|
|
|
|
|
opentelemetry_sdk = { version = "0.32.1", features = ["spec_unstable_metrics_views"] }
|
|
|
|
|
parking_lot = "0.12.4"
|
|
|
|
|
pbjson-build = "0.9"
|
|
|
|
|
pdf_oxide = { version = "0.3.43", features = ["rendering"] }
|
|
|
|
|
petgraph = { version = "0.6.5", default-features = false, features = ["serde-1", "stable_graph"] }
|
|
|
|
|
portable-pty = "0.9"
|
|
|
|
|
pprof = "0.15"
|
|
|
|
|
pretty_assertions = "1"
|
|
|
|
|
prometheus = { version = "0.14", features = ["process"] }
|
|
|
|
|
prost = "0.14"
|
|
|
|
|
prost-build = "0.14"
|
|
|
|
|
pulldown-cmark = "0.13"
|
|
|
|
|
quick-xml = "0.38"
|
|
|
|
|
rand = "0.9"
|
|
|
|
|
ratatui = { version = "0.29" }
|
|
|
|
|
ratatui-core = "0.1"
|
|
|
|
|
rayon = "1"
|
|
|
|
|
reflink-copy = "0.1"
|
|
|
|
|
regex = "1"
|
|
|
|
|
reqwest = { version = "0.12", features = ["rustls-tls", "stream", "json", "multipart", "http2", "blocking", "socks"], default-features = false }
|
|
|
|
|
reqwest-middleware = { version = "0.4.1", features = ["json", "multipart"] }
|
|
|
|
|
resvg = { version = "0.47", default-features = false, features = ["text"] }
|
|
|
|
|
ring = "0.17"
|
|
|
|
|
rsa = "0.9"
|
|
|
|
|
runfiles = "0.1"
|
|
|
|
|
rustc-hash = "2"
|
|
|
|
|
schemars = "1"
|
|
|
|
|
scraper = "0.23"
|
|
|
|
|
semver = "1"
|
|
|
|
|
serde = { version = "1", features = ["derive"] }
|
|
|
|
|
serde_json = "1"
|
|
|
|
|
serde_path_to_error = "0.1"
|
|
|
|
|
serde_yaml = "0.9"
|
|
|
|
|
serial_test = "3"
|
|
|
|
|
sha2 = { version = "0.10", features = ["force-soft"] }
|
|
|
|
|
shlex = "1"
|
|
|
|
|
signal-hook = "0.3"
|
|
|
|
|
similar = "2.7"
|
|
|
|
|
siphasher = "1"
|
|
|
|
|
smallvec = "1"
|
|
|
|
|
strip-ansi-escapes = "0.2.1"
|
|
|
|
|
strum = { version = "0.27", features = ["derive"] }
|
|
|
|
|
supports-color = "3.0"
|
|
|
|
|
syntect = "5.3"
|
|
|
|
|
tar = "0.4"
|
|
|
|
|
tempfile = "3"
|
|
|
|
|
terminput = "0.3"
|
|
|
|
|
termwiz = { version = "0.23", default-features = false }
|
|
|
|
|
textwrap = "0.16"
|
|
|
|
|
thiserror = "2"
|
|
|
|
|
tikv-jemalloc-ctl = "0.6"
|
|
|
|
|
tikv-jemalloc-sys = "0.6"
|
|
|
|
|
tikv-jemallocator = { version = "0.6", features = ["profiling", "unprefixed_malloc_on_supported_platforms"] }
|
|
|
|
|
time = "0.3"
|
|
|
|
|
tiny-skia = "0.12"
|
|
|
|
|
tokio = { version = "1", features = ["full"] }
|
|
|
|
|
tokio-retry = "0.3"
|
|
|
|
|
tokio-stream = "0.1"
|
|
|
|
|
tokio-tungstenite = "0.27"
|
|
|
|
|
tokio-util = { version = "0.7", features = ["rt"] }
|
|
|
|
|
toml = "0.9"
|
|
|
|
|
toml_edit = "0.22"
|
|
|
|
|
tonic = { version = "0.14", features = ["tls-aws-lc", "gzip", "deflate", "zstd"] }
|
|
|
|
|
tonic-prost = "0.14"
|
|
|
|
|
tonic-prost-build = "0.14"
|
|
|
|
|
tower = "0.5"
|
|
|
|
|
tower-http = "0.6"
|
|
|
|
|
tracing = "0.1"
|
|
|
|
|
tracing-opentelemetry = "0.33"
|
|
|
|
|
tracing-subscriber = { version = "0.3.23", default-features = false, features = ["env-filter", "smallvec", "tracing-log", "std", "ansi"] }
|
|
|
|
|
ts-rs = "12.0"
|
|
|
|
|
tui-scrollbar = "0.2"
|
|
|
|
|
two-face = { version = "0.4", default-features = false, features = ["syntect-fancy"] }
|
|
|
|
|
unicode-segmentation = "1.12.0"
|
|
|
|
|
unicode-width = "0.2"
|
|
|
|
|
url = "2"
|
|
|
|
|
urlencoding = "2"
|
|
|
|
|
uuid = { version = "1", features = ["serde", "v4", "v5"] }
|
|
|
|
|
vte = "0.15.0"
|
|
|
|
|
wait-timeout = "0.2"
|
|
|
|
|
walkdir = "2"
|
|
|
|
|
webbrowser = { version = "1.0.4" }
|
|
|
|
|
which = "8"
|
|
|
|
|
whoami = "1.4"
|
|
|
|
|
windows = { version = "0.61", features = ["Win32_Security", "Win32_Security_Authorization", "Win32_Foundation", "Win32_System_Threading", "Win32_System_JobObjects", "Win32_System_Console", "Win32_System_Pipes"] }
|
|
|
|
|
wiremock = "0.6"
|
|
|
|
|
wl-clipboard-rs = "0.9"
|
|
|
|
|
xai-acp-lib = { path = "crates/codegen/xai-acp-lib" }
|
|
|
|
|
xai-agent-lifecycle = { path = "crates/codegen/xai-agent-lifecycle" }
|
|
|
|
|
xai-circuit-breaker = { path = "crates/common/xai-circuit-breaker" }
|
|
|
|
|
xai-computer-hub-core = { path = "crates/common/xai-computer-hub-core" }
|
|
|
|
|
xai-computer-hub-sdk = { path = "crates/common/xai-computer-hub-sdk" }
|
|
|
|
|
xai-gix-status = { path = "crates/codegen/xai-gix-status" }
|
|
|
|
|
xai-grok-agent = { path = "crates/codegen/xai-grok-agent" }
|
|
|
|
|
xai-grok-announcements = { path = "crates/codegen/xai-grok-announcements" }
|
|
|
|
|
xai-grok-auth = { path = "crates/codegen/xai-grok-auth" }
|
|
|
|
|
xai-grok-config = { path = "crates/codegen/xai-grok-config" }
|
|
|
|
|
xai-grok-config-types = { path = "crates/codegen/xai-grok-config-types" }
|
|
|
|
|
xai-grok-env = { path = "crates/codegen/xai-grok-env" }
|
|
|
|
|
xai-grok-http = { path = "crates/codegen/xai-grok-http" }
|
|
|
|
|
xai-grok-markdown = { path = "crates/codegen/xai-grok-markdown" }
|
|
|
|
|
xai-grok-markdown-core = { path = "crates/codegen/xai-grok-markdown-core" }
|
|
|
|
|
xai-grok-mcp = { path = "crates/codegen/xai-grok-mcp" }
|
|
|
|
|
xai-grok-memory = { path = "crates/codegen/xai-grok-memory" }
|
|
|
|
|
xai-grok-mermaid = { path = "crates/codegen/xai-grok-mermaid" }
|
|
|
|
|
xai-grok-models = { path = "crates/codegen/xai-grok-models" }
|
|
|
|
|
xai-grok-sampler = { path = "crates/codegen/xai-grok-sampler" }
|
|
|
|
|
xai-grok-secrets = { path = "crates/codegen/xai-grok-secrets" }
|
|
|
|
|
xai-grok-shared = { path = "crates/codegen/xai-grok-shared" }
|
|
|
|
|
xai-grok-shell = { path = "crates/codegen/xai-grok-shell" }
|
|
|
|
|
xai-grok-shell-base = { path = "crates/codegen/xai-grok-shell-base" }
|
|
|
|
|
xai-grok-shell-session-support = { path = "crates/codegen/xai-grok-shell-session-support" }
|
|
|
|
|
xai-grok-telemetry = { path = "crates/codegen/xai-grok-telemetry" }
|
|
|
|
|
xai-grok-test-support = { path = "crates/codegen/xai-grok-test-support" }
|
|
|
|
|
xai-grok-tools = { path = "crates/codegen/xai-grok-tools" }
|
|
|
|
|
xai-grok-tools-api = { path = "crates/codegen/xai-grok-tools-api" }
|
|
|
|
|
xai-grok-version = { path = "crates/codegen/xai-grok-version" }
|
|
|
|
|
xai-grok-workspace = { path = "crates/codegen/xai-grok-workspace" }
|
|
|
|
|
xai-grok-workspace-types = { path = "crates/codegen/xai-grok-workspace-types" }
|
|
|
|
|
xai-hooks-plugins-types = { path = "crates/codegen/xai-hooks-plugins-types" }
|
|
|
|
|
xai-interjection-core = { path = "crates/common/xai-interjection-core" }
|
|
|
|
|
xai-mixpanel = { path = "crates/codegen/xai-mixpanel" }
|
|
|
|
|
xai-prompt-queue = { path = "crates/codegen/xai-prompt-queue" }
|
|
|
|
|
xai-proto-build = { path = "crates/build/xai-proto-build" }
|
|
|
|
|
xai-ratatui-inline = { path = "crates/codegen/xai-ratatui-inline" }
|
|
|
|
|
xai-ratatui-textarea = { path = "crates/codegen/xai-ratatui-textarea" }
|
|
|
|
|
xai-sqlite-journal = { path = "crates/codegen/xai-sqlite-journal" }
|
|
|
|
|
xai-system-power = { path = "crates/codegen/xai-system-power" }
|
|
|
|
|
xai-test-utils = { path = "crates/common/xai-test-utils" }
|
|
|
|
|
xai-token-estimation = { path = "crates/codegen/xai-token-estimation" }
|
|
|
|
|
xai-tool-protocol = { path = "crates/common/xai-tool-protocol" }
|
|
|
|
|
xai-tool-runtime = { path = "crates/common/xai-tool-runtime" }
|
|
|
|
|
xai-tool-types = { path = "crates/common/xai-tool-types" }
|
|
|
|
|
xai-tracing = { path = "crates/common/xai-tracing" }
|
|
|
|
|
xai-tty-utils = { path = "crates/codegen/xai-tty-utils" }
|
|
|
|
|
zbus = { version = "5" }
|
|
|
|
|
zstd = "0.13"
|
|
|
|
|
|
|
|
|
|
[profile.release]
|
|
|
|
|
incremental = true
|
|
|
|
|
panic = "abort"
|
|
|
|
|
|
|
|
|
|
# Hardened release profile for shipping to end users (alpha + stable).
|
|
|
|
|
# Use `cargo build --profile release-dist` for distribution builds.
|
|
|
|
|
# Not used by default `--release` to avoid slowing down local dev builds (~2.2x).
|
|
|
|
|
#
|
|
|
|
|
# Hardening: thin LTO for cross-crate optimization with reasonable link times,
|
|
|
|
|
# codegen-units=1 maximizes optimization (whole-program analysis, no CGU boundaries).
|
|
|
|
|
# debug=1 emits line-tables DWARF; strip=false keeps symbols so CI can extract
|
|
|
|
|
# .debug sidecars (Linux) or .dSYM bundles (macOS) before stripping post-build.
|
|
|
|
|
# Linker flags (RELRO, NX stack) are set per-target in .cargo/config.toml.
|
|
|
|
|
[profile.release-dist]
|
|
|
|
|
inherits = "release"
|
|
|
|
|
lto = "thin"
|
|
|
|
|
codegen-units = 1
|
|
|
|
|
strip = false
|
|
|
|
|
debug = 1
|
|
|
|
|
split-debuginfo = "off"
|
|
|
|
|
|
|
|
|
|
# Production profile for latency-sensitive x-product services (VF, home-mixer).
|
|
|
|
|
# Thin LTO gives ~90% of full LTO benefit at significantly faster link time.
|
|
|
|
|
# Keeps symbols + line tables for prod debuggability (perf, flamegraph, stack traces).
|
|
|
|
|
[profile.x-prod]
|
|
|
|
|
inherits = "release"
|
|
|
|
|
lto = "thin"
|
|
|
|
|
strip = false
|
|
|
|
|
codegen-units = 1
|
|
|
|
|
debug = "line-tables-only"
|
|
|
|
|
panic = "unwind"
|
|
|
|
|
|
|
|
|
|
# Desktop release profile. Functionally identical to release-dist — kept as a
|
|
|
|
|
# named alias so the desktop workflow can reference it without coupling to the
|
|
|
|
|
# CLI pipeline's profile name. Alpha and stable share a single release-dist
|
|
|
|
|
# profile so that stable promotion can pointer-swap the alpha binary without
|
|
|
|
|
# rebuilding.
|
|
|
|
|
[profile.release-dist-jemalloc]
|
|
|
|
|
inherits = "release-dist"
|
|
|
|
|
# All settings now match the parent — this is an intentional alias.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[profile.dev]
|
|
|
|
|
panic = "abort"
|
|
|
|
|
split-debuginfo = "unpacked"
|
|
|
|
|
codegen-units = 128
|
|
|
|
|
debug = "line-tables-only"
|
|
|
|
|
opt-level = 0
|
|
|
|
|
lto = false
|
|
|
|
|
incremental = true
|
|
|
|
|
|
|
|
|
|
[profile.bench]
|
|
|
|
|
debug = true
|
|
|
|
|
|
|
|
|
|
[workspace.lints.clippy]
|
|
|
|
|
# prost 0.14 renders proto doc-comment bullet lists in a way that trips this
|
|
|
|
|
# lint on generated code. Kept in sync with bazel/lint/linters.bzl.
|
|
|
|
|
doc_lazy_continuation = "allow"
|
|
|
|
|
doc_overindented_list_items = "allow"
|
|
|
|
|
needless_lifetimes = "allow"
|
|
|
|
|
single_range_in_vec_init = "allow"
|
|
|
|
|
too_many_arguments = "allow"
|
|
|
|
|
|
|
|
|
|
# Allow uninlined_format_args lint to prevent main from breaking after merges
|
|
|
|
|
# When older branches (created before this lint was added to CI) get merged,
|
|
|
|
|
# they pass their own CI because their CI config doesn't include this lint check.
|
|
|
|
|
# However, once merged to main, the code violates main's lint rules, causing:
|
|
|
|
|
# 1. Main's CI to fail
|
|
|
|
|
# 2. All new branches based off main to fail CI
|
|
|
|
|
# 3. Developers having to fix lint violations from other people's merged code
|
|
|
|
|
# Without a merge-queue that runs main's CI checks on the PR branch,
|
|
|
|
|
# these violations slip through and break the build for everyone.
|
|
|
|
|
# TODO: -> "deny" once/if merge queue enabled
|
|
|
|
|
uninlined_format_args = "allow"
|
|
|
|
|
|
|
|
|
|
# The `fastrace::trace(properties = { … })` proc-macro expands `"{param}"`
|
|
|
|
|
# into `format!("{}", param)`, which clippy flags as useless_format.
|
|
|
|
|
# Suppressed until the upstream crate fixes its codegen (fixed in 0.7.16+).
|
|
|
|
|
useless_format = "allow"
|