v0.8.2 - Entity Index Surface¶
OrbitFabric v0.8.2 introduces the first Core-owned entity index surface.
The release adds deterministic entity_index.json generation from the loaded Mission Model.
It is a narrow release.
It does not introduce relationship manifests, relationship graphs, plugin behavior or Studio-specific APIs.
Purpose¶
The v0.8.2 goal is to let downstream tools ask a second stable question:
What contract entities are defined in this mission?
That answer must come from OrbitFabric Core.
It must not be reconstructed by downstream tools from raw YAML, generated files or human-oriented CLI output.
Added¶
v0.8.2 adds:
entity_index_to_dict(model, mission_dir)
write_entity_index(model, mission_dir, output_file)
orbitfabric export entity-index command
entity_index.json output
index_version 0.1
kind orbitfabric.entity_index
entity-level records
per-domain entity counts
per-domain model counts
source file metadata
required/present domain status
indexed domain status
explicit boundary flags
entity index export tests
entity index CLI tests
CLI¶
Generate the entity index report with:
orbitfabric export entity-index examples/demo-3u/mission/ \
--json generated/reports/entity_index.json
Default output:
generated/reports/entity_index.json
Output¶
The generated report uses:
kind: orbitfabric.entity_index
index_version: 0.1
It contains:
mission identity
source mission directory
boundary flags
domain summaries
entity counts
entity records
Entity records¶
Each indexed entity record includes:
id
domain
entity_type
display_name
source_file
provenance
required_domain
present
Records are derived from the loaded Mission Model.
They are not derived from raw YAML scanning.
Indexed domains¶
v0.8.2 exports entity records for:
spacecraft
subsystems
modes
telemetry
commands
events
faults
packets
payloads
data_products
contact_profiles
link_profiles
contact_windows
downlink_flows
command_sources
commandability_rules
autonomous_actions
recovery_intents
The following domains are summarized but do not produce synthetic entity records:
mode_transitions
policies
They do not currently expose stable entity IDs in the Mission Model.
Boundary¶
v0.8.2 intentionally does not introduce:
new Mission Model semantics
relationship manifest
relationship graph
dependency graph
source line or column tracking
YAML node location tracking
YAML AST export
plugin API
plugin discovery
Studio-specific API
runtime behavior
ground behavior
versioned plugin surface
Relationship to v0.8.1¶
v0.8.1 introduced model_summary.json.
It answers:
What contract domains are present in this mission?
v0.8.2 introduces entity_index.json.
It answers:
What contract entities are defined in this mission?
The two surfaces are intentionally separate.
The model summary is domain-level.
The entity index is entity-level.
Neither surface is a relationship graph, plugin API or Studio-specific API.
Why this matters¶
This release prepares OrbitFabric Core for downstream inspection tools and future plugin boundaries.
The important architectural decision remains:
Core exports structured surfaces.
Downstream tools consume them.
Downstream tools do not infer contract semantics privately.
Validation¶
The release validation baseline is:
ruff check .
pytest
mkdocs build --strict
Manual smoke command:
orbitfabric export entity-index examples/demo-3u/mission/ \
--json generated/reports/entity_index.json
Expected result:
Result: PASSED