95a35e8cce
improvise-6yvg reproduced. A JSON import in improvise-command and a legacy JSON .improv load in improvise-io stored 0.24815714285714285 as 0.24815714285714283 in each crate's own test build. The root binary's `improvise import` used the same lossy parser. Now float_roundtrip is on every normal serde_json dependency in the workspace: root, improvise-command, improvise-io, and the optional test-support dependency of improvise-protocol. improvise-dz8c: the hand-listed cargo-tree check over three frame-parsing crates is replaced by tests/json_numbers.rs. It reads `cargo metadata --no-deps` and names every package, including target-specific entries, whose normal serde_json dependency lacks the feature. The rule and why it beats "parses a frame", the build graph, and enabling the feature once in the protocol crate are in context/code/protocol.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
27 lines
1.0 KiB
TOML
27 lines
1.0 KiB
TOML
[package]
|
|
name = "improvise-protocol"
|
|
version = "0.1.0-rc2"
|
|
edition = "2024"
|
|
description = "Wire vocabulary and portable session state shared by the improvise server and clients"
|
|
license = "Apache-2.0"
|
|
repository = "https://github.com/fiddlerwoaroof/improvise"
|
|
|
|
[dependencies]
|
|
improvise-core = { path = "../improvise-core" }
|
|
serde = { version = "1", features = ["derive"] }
|
|
# For the one width rule both front ends measure a header label with
|
|
# (`AxisFrame::header_widths`). A terminal column is a display cell, not a
|
|
# `char`, and the TUI has always measured it this way.
|
|
unicode-width = "^0.2"
|
|
# Only for `variants`, which is off unless a test build asks for it.
|
|
# float_roundtrip because every normal serde_json dep carries it (improvise-dz8c).
|
|
serde_json = { version = "1", optional = true, features = ["float_roundtrip"] }
|
|
|
|
[features]
|
|
# `variants` reaches OUT of this crate: improvise-command bounds its own
|
|
# ModelCommand enumeration with it. Off in every shipped build (improvise-26dm).
|
|
test-support = ["dep:serde_json"]
|
|
|
|
[dev-dependencies]
|
|
serde_json = "1"
|