Repository navigation
Portable EMT snapshot and partition public cases - #5
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR expands the AIMORAResources public-product surface by adding two new EMT-focused example cases (portable workspace snapshots and local multirate/partitioned EMT), along with supporting provenance, documentation, artifact-policy classifications, and independent reference-model implementations/tests to validate determinism, integrity, and restart semantics.
Changes:
- Adds portable EMT snapshot documentation/provenance plus a reproducible public case that writes/inspects/restores
.aimora-snapshotartifacts. - Adds local multirate + partitioned EMT documentation/provenance plus a public case that produces interface/refinement artifacts and validates checkpoint/restart behavior.
- Extends AIMORAReferenceModels with independent encoders/decoders and reference checks, plus new tests and artifact-policy updates for the new public outputs.
Reviewed changes
Copilot reviewed 27 out of 34 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
test/runtests.jl |
Extends artifact/privacy contract tests to account for tracked .aimora-snapshot artifacts. |
provenance/portable-emt-snapshots.toml |
Adds provenance record for portable EMT snapshots public case. |
provenance/local-multirate-partitioned-emt.toml |
Adds provenance record for local multirate/partitioned EMT public case. |
docs/src/portable-emt-snapshots.md |
New documentation page describing portable snapshot format, workflow, and security boundaries. |
docs/src/local-multirate-partitioned-emt.md |
New documentation page describing partition planning, interfaces, diagnostics, and exclusions. |
docs/make.jl |
Registers the two new documentation pages in the docs build. |
artifact-policy.toml |
Adds snapshot tracking baseline key and new retained artifact classifications (SVG + snapshots). |
AIMORAReferenceModels.jl/test/runtests.jl |
Includes new test files for portable snapshot bytes and partitioned EMT references. |
AIMORAReferenceModels.jl/test/portable_emt_snapshots.jl |
Adds tests for canonical bytes round-trip and corruption/limit rejection. |
AIMORAReferenceModels.jl/test/local_multirate_partitioned_emt.jl |
Adds tests for independent partition-related references (history subcycling + causal exchange). |
AIMORAReferenceModels.jl/src/portable_hybrid_snapshot_reference.jl |
Adds independent hybrid snapshot interpretation/validation logic. |
AIMORAReferenceModels.jl/src/portable_emt_snapshots.jl |
Adds independent portable snapshot format encoding/decoding and core value model. |
AIMORAReferenceModels.jl/src/local_multirate_partitioned_emt.jl |
Adds independent analytic/passive references and partition exchange reference implementations. |
AIMORAReferenceModels.jl/src/AIMORAReferenceModels.jl |
Exports new portable snapshot/public reference APIs and includes new source files. |
AIMORAReferenceModels.jl/Project.toml |
Adds Unicode dependency for text normalization in portable snapshot encoding. |
AIMORACases.jl/examples/support/LocalMultiratePartitionedNetwork.jl |
Adds shared support module for the local multirate/partitioned network example. |
AIMORACases.jl/examples/source_coverage.toml |
Updates audited source coverage counts and registers the two new canonical case inputs. |
AIMORACases.jl/examples/emt/portable_snapshot_restart/run.jl |
New runnable case producing portable snapshot artifacts + restart checks + outputs. |
AIMORACases.jl/examples/emt/portable_snapshot_restart/README.md |
Documents how to run the portable snapshot restart case and its outputs. |
AIMORACases.jl/examples/emt/portable_snapshot_restart/portable_snapshot_restart.deck |
Adds the portable snapshot restart EMT deck input. |
AIMORACases.jl/examples/emt/portable_snapshot_restart/outputs/summary.md |
Captured output summary for the portable snapshot restart example. |
AIMORACases.jl/examples/emt/portable_snapshot_restart/outputs/portable_snapshot_restart.svg |
Captured SVG result for the portable snapshot restart example. |
AIMORACases.jl/examples/emt/portable_snapshot_restart/Makefile |
Adds convenience targets to run/clean the portable snapshot restart example. |
AIMORACases.jl/examples/emt/local_multirate_partitioned_network/run.jl |
New runnable case producing partition interface/refinement outputs + restart checks. |
AIMORACases.jl/examples/emt/local_multirate_partitioned_network/README.md |
Documents how to run the local multirate/partitioned EMT example and its outputs. |
AIMORACases.jl/examples/emt/local_multirate_partitioned_network/outputs/summary.md |
Captured output summary for the local multirate/partitioned EMT example. |
AIMORACases.jl/examples/emt/local_multirate_partitioned_network/outputs/local_partition_refinement.svg |
Captured refinement SVG for the local multirate/partitioned EMT example. |
AIMORACases.jl/examples/emt/local_multirate_partitioned_network/outputs/local_partition_interface_voltage.svg |
Captured interface-voltage SVG for the local multirate/partitioned EMT example. |
AIMORACases.jl/examples/emt/local_multirate_partitioned_network/outputs/local_partition_interface_current.svg |
Captured interface-current SVG for the local multirate/partitioned EMT example. |
AIMORACases.jl/examples/emt/local_multirate_partitioned_network/Makefile |
Adds convenience targets to run/clean the local multirate/partitioned EMT example. |
AIMORACases.jl/examples/catalog.toml |
Registers the two new EMT cases in the examples catalog. |
.gitignore |
Un-ignores the two tracked .aimora-snapshot output artifacts for the portable snapshot restart example. |
Suppressed comments (1)
AIMORAReferenceModels.jl/src/portable_emt_snapshots.jl:458
- In
_INDEPENDENT_RECORDdecoding, the fieldcountis not bounded before iterating and allocating values. Even with the overall file-size limit, a crafted snapshot can contain millions of tiny fields, leading to excessive CPU/memory during parse of untrusted inputs. Add an explicit maximum field-count limit (separate frommaximum_bytes, or derived from remaining bytes) to fail fast.
elseif tag == _INDEPENDENT_RECORD
schema = _independent_read_string(io, "independent portable schema"; maximum_bytes)
count = Int(_independent_read_unsigned(io, UInt32))
fields = Pair{String,Any}[]
for _ in 1:count
name = _independent_read_string(io, "independent portable field"; maximum_bytes)
push!(fields, name => _independent_read_value(io; maximum_bytes, depth = depth + 1))
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+695
to
+697
| capacitor_current = endpoint_current - conductance * last(load_voltage) | ||
| kcl_residual = endpoint_current - | ||
| (conductance * last(load_voltage) + capacitor_current) |
Comment on lines
+445
to
+450
| elseif tag == _INDEPENDENT_SEQUENCE | ||
| count = Int(_independent_read_unsigned(io, UInt64)) | ||
| count <= maximum_bytes || throw(ArgumentError("independent portable sequence exceeds limit")) | ||
| return Any[ | ||
| _independent_read_value(io; maximum_bytes, depth = depth + 1) | ||
| for _ in 1:count |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Publishes reproducible public cases, portable snapshot artifacts, SVG results, documentation, provenance, and updated local partition evidence.