Skip to content

feat(omni-graph): implement MathWorks Simulink (.slx / .mdl) MBSE block diagram ingestion (R-108) - #18

Merged
vadde merged 1 commit into
mainfrom
feat/r108-simulink-mbse-ingestion
Nov 6, 2026
Merged

vadde merged 1 commit into
mainfrom
feat/r108-simulink-mbse-ingestion

Conversation

@vadde

@vadde vadde commented Nov 6, 2026

Copy link
Copy Markdown
Owner

Summary

This PR implements Requirement R-108 (MathWorks Simulink .slx / .mdl MBSE Ingestion) for the Omni-Graph engine, completing the MathWorks MBSE integration roadmap.

Key Architectural Deliverables

  1. In-Memory Open Packaging Conventions (OPC) Archive Decompression (parse_slx):
    • Streams simulink/blockdiagram.xml directly in RAM with bounded buffer memory footprint (< 5MB) and zero temporary disk writes.
  2. Streaming XML Parser (quick-xml):
    • Handles both Event::Start and Event::Empty tags for blocks, models, subsystems, lines, and property bindings.
  3. Legacy Plain-Text .mdl Parser (parse_mdl):
    • Full topological parity for legacy structured block diagrams.
  4. MBSE Graph Topology:
    • CONTAINS_BLOCK hierarchy for models and subsystems.
    • Blocks indexed by unique Simulink Identifier (SID).
    • SIGNAL_TO directed dataflow edges connecting port addresses (SID#out:port -> SID#in:port) including branched fanout topologies.
    • Cross-model REFERENCES_MODEL edges for ModelReference blocks.
    • High-degree broadcast line attenuation: Lines with > 50 fanouts (e.g. 28V power rail, CAN bus) are tagged DATAFLOW_BROADCAST to preserve community modularity clustering.
  5. Full Pipeline Symmetry:
    • Integrated into both batch ingestion (execute_ingest) and incremental live watcher (reindex_file).
    • Transactional atomic swap with zero-delay community inference.
  6. Tests & Parity:
    • 4 new unit tests (test_r108_*), 122/122 unit tests passing in 0.05s.
    • 0 Clippy warnings with -D warnings.
    • Quad-Parity maintained across Spec, STATUS.md, CONTEXT.md, and DEVLOG.md.

@vadde
vadde merged commit 54a928b into main Nov 6, 2026
6 checks passed
@vadde
vadde deleted the feat/r108-simulink-mbse-ingestion branch November 6, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant