Files
benilla-octo/crates/benilla-formats/Cargo.toml
T
SamandClaude Fable 5.1 00150c55b5 a crash leaves a report, and the wire's counts are capped
- a panic writes benilla-config/Diagnostics/crash-<time>.txt with the build id, the location, a backtrace and the last 200 log lines, and names the file as its last line, so a bug report can attach it (2266)
- every wire-count allocation hint is capped and the compressed update object reads through the cursor, so a malformed packet can no longer ask for gigabytes (2266)
- the 23 in-world run conditions are one set, the 45 probe variables one registry, the install-gated tests say when they skip, and every gate is timed (2266)
- one workspace-level lint allowance replaces 413 per-site attributes, and the decision corpus gets a lint in the gate (2266)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 16:38:59 +07:00

45 lines
2.0 KiB
TOML

[package]
name = "benilla-formats"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "WoW 1.12.1 asset-format adapters (MPQ/BLP/DBC/ADT/WDT) and the benilla-extract CLI"
[lints]
workspace = true
[features]
# The dev/player seam (0026, built by 1173/1174). Default-on, so every normal build keeps the
# instruments; `--no-default-features` is the player build. Here it gates exactly one thing:
# `install::candidates`' project-folder probe, which bakes THIS source tree's absolute path
# (decision 1175). EVERY dependent must take this crate with `default-features = false` and
# re-export `dev`, or feature unification puts `/Users/…` back into a player binary —
# `scripts/gates.sh`'s `--no-default-features` line is what catches getting that wrong.
default = ["dev"]
dev = []
[dependencies]
anyhow.workspace = true
clap.workspace = true
benilla-adt = { path = "../benilla-adt" }
benilla-bytes = { path = "../benilla-bytes" }
benilla-dbc = { path = "../benilla-dbc" }
benilla-m2 = { path = "../benilla-m2" }
benilla-mpq = { path = "../benilla-mpq" }
benilla-blp = { path = "../benilla-blp" }
# PNG only, matching every sibling crate. `image`'s DEFAULT features enable `avif`, which drags
# in ravif -> rav1e -> av-scenechange: a complete AV1 video ENCODER, monomorphized into this
# crate, for the two calls below that both write a PNG. Cutting it takes this crate's graph from
# 112 to 48 dependencies and the workspace's from 499 to 466.
#
# It is NOT why `cargo play` used to fail to link -- that was rustc #86049, fixed by `lto = "off"`
# in `[profile.play]` (decision 1698). The tempting story is that rav1e's monomorphized bulk is
# what tripped it; the evidence says otherwise, since 2 of the 7 poisoned codegen units held only
# our own DBC catalog loaders. Two independent wins, and this is the smaller one. Decision 1698.
image = { version = "0.25", default-features = false, features = ["png"] }
benilla-wdt = { path = "../benilla-wdt" }
benilla-wmo = { path = "../benilla-wmo" }
[dev-dependencies]
glam = "0.31"