facett-coderoom-view/Cargo.toml
[package]
name = "facett-coderoom-view"
description = "facett — the shared WORLD-CODEROOM pane: one robot-testable egui `Facet` that renders the constellation's crates@versions as a dependency node-graph with green(compatible)/red(breaking) `semver_diffs` compat edges, and a WHAT-BREAKS mode that highlights the world callers a dropped symbol breaks (the impact set) while dimming the rest. WAREHOUSE-AGNOSTIC + presentational: facett carries NO nornir/dwarves/warehouse dep; the HOST implements the `CoderoomDataSeam` (feeding crate nodes + compat edges + a what-breaks result from the dedicated coderoom warehouse) and the pane only renders them — mirroring how the Release tab takes a ReleaseConvergence and the binary pane takes a BinaryDataSeam. The dependency graph itself REUSES facett-graphview's DecoratedGraphView + depgraph_layout (no twinned layout)."
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
[features]
default = []
# `testmatrix` — turn the pane's render/drive self-checks into real nornir
# test-matrix rows via `functional_status`. Compiled OUT of the default build (no
# nornir dep by default), a `#[inline]` no-op otherwise. Same idiom as
# facett-binview / facett-auth-ui / facett-releaseview: the optional
# `nornir-testmatrix` edge only exists behind this feature, so a release build
# carries no emit and no dep.
testmatrix = ["facett-core/testmatrix", "facett-graphview/testmatrix", "dep:nornir-testmatrix", "nornir-testmatrix/testmatrix"]
[dependencies]
# The Facet contract (title/ui/state_json/update_json), the OKLCH colour authoring
# space (reused for the per-crate node hues — no twinned colour maths), and the
# theme. facett stays warehouse-agnostic: no nornir/dwarves edge lives here.
facett-core = { path = "../facett-core", version = "0.3.0" }
# The REUSED graph viz: DecoratedGraphView paints the dependency node-graph
# (per-edge colour, node rings/badges, pan/zoom, click-select), and
# depgraph_layout::DepGraphLayout lays the crate DAG into toposort columns — so
# this pane owns a colour/what-breaks POLICY over a shared renderer, not a twinned
# layout.
facett-graphview = { path = "../facett-graphview", version = "0.2.0" }
egui = { workspace = true }
serde = { version = "1", features = ["derive"] }
serde_json = { workspace = true }
# L4: functional-status emitter. OPTIONAL + behind the `testmatrix` feature so a
# release build carries no dependency edge and strips every emit call.
nornir-testmatrix = { version = "0.2", default-features = false, optional = true }
[dev-dependencies]
# CPU render-proof (AccessKit tree) via the kittest harness — the robot scenario
# renders the real pane body over a stub seam (headless, no wgpu needed).
egui_kittest = { version = "0.36" }