Repository navigation
v0.7.0
CsMesh 0.7.0
Breaking: graph format v14
Existing indexes are rejected with exit 4 until you rebuild them:
csmesh index --full
csmesh review baselines built by 0.6.x need one csmesh review --accept after the
upgrade.
Where is this written?
blast-radius --writes answers "who writes this property or field" instead of "who
touches it":
csmesh blast-radius Order.Status --writes --budget 800
Member-access edges now carry a role: Read, Write, Read|Write (compound
assignment, ++/--, ref arguments) or Subscribe (event +=/-=). Writes are
recorded for simple and compound assignment, object initializers, with expressions,
out and ref arguments, deconstruction targets, constructor writes to readonly
fields and init-only properties, and indexer setters. Bare field writes such as
_total = x, which produced no edge at all before, are now recorded.
- A write through an interface-typed receiver shows up on the implementation with
[via-interface]. It is one reverse hop, so it can include writers bound to another
implementation of the same interface member. - Events and indexers are graph nodes now.
--writeson an event returns no rows and
points you toblast-radius <event>for its subscribers. - Not recorded: writes to members declared only in referenced assemblies, and attribute
named arguments.
Roles live on the existing call edge, so default changes and review output does not
fill up with write findings after the upgrade. --calls does show a method that moved
from reading a member to writing it.
review: no more false exit 5 on a clean tree
The base revision used to be indexed in a checkout with no bin/. Package types went
unbound, edges dropped out, and review reported structural changes that did not
exist. The base is now compiled against the working tree's reference set.
- The base-graph cache is keyed on that reference set, so a stale thin base is rebuilt
instead of reused. - When a
.csproj,.props,.targets,Directory.Packages.props,
packages.lock.json,global.jsonor solution file changed in the reviewed range,
reviewprints a warning (reference_inputs_changedin JSON). The exit code does not
change.
Agent skill
The skill text teaches --writes, drops a repeated paragraph and uses a generic
nested-type example. Refresh installed copies with:
csmesh skill --install
Upgrade
dotnet tool update -g CsMesh
npm install -g @nrafinia/csmesh
then csmesh index --full in each indexed repository.