Design impact
analyzeDesignImpact propagates a declared set of changed authored IDs through
the document graph and every current evaluation context:
name and its node; look up that node in nodes for the reasons it
is impacted.
An unknown seed fails with REFERENCE_MISSING, PARAMETER_MISSING, or
CONFIGURATION_MISSING at its /changes/... path. Since 0.2.0,
seeds may name any node or parameter key the parsed document contains,
including keys preserved by frozen documents that the current builder would
not author, such as "node with space". The 0.1.1 package rejected seeds
outside the builder ID grammar with IR_INVALID, even when the document
contained them.
Impact is existential across the base design and named configurations. It says
an authored context can be affected; it does not execute geometry or prove the
resulting shape changes.
Feature hashes
hashDesignFeatures resolves one effective configuration and parameter context,
then hashes the Merkle feature DAG:
- node ID and kind
- output kind
- versioned SHA-256 feature hash
- active direct dependencies in authored order
- resolved direct parameter values
- persistent topology references actually consumed by the node
What a feature hash proves
A matching hash proves that the normalized effective feature intent admitted by hash protocol v1 is identical. It does not prove:- a kernel version is unchanged
- two native shapes are geometrically identical
- topology keys are reusable
- a serialized shape artifact is safe to decode
- an unmodeled external dependency is unchanged
Document hash
hashDocument computes SHA-256 over canonical document JSON. Root metadata is
excluded by default and included only with { includeMetadata: true }, so a
default hash does not change when only root metadata changes. It is broader
than a feature hash and does not isolate which outputs depend on a change.