Bump OMG Pilot - #71
Merged
Merged
Conversation
…ython client One model whose structure, calculations, action, state machine, solver cases and views are the same rover, with a walkthrough of the commands that drive it. Nested action nodes no longer report the token-flow limitation when a view renders them: only that sentinel is suppressed, and only below the root. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
… the demo's output Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
* docs(examples): add a rover demo covering the CLI, the REPL and the Python client One model whose structure, calculations, action, state machine, solver cases and views are the same rover, with a walkthrough of the commands that drive it. Nested action nodes no longer report the token-flow limitation when a view renders them: only that sentinel is suppressed, and only below the root. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * docs(examples): state where the rover's odometer is readable and sort the demo's output Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
…us traps Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…ee-numfocus * docs(site): note the Open-MBEE and NumFOCUS affiliation in the footer Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * docs(site): underline the footer affiliation links Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * docs(site): move the footer affiliation to the right of the licence Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * fix(site): point the OpenMBEE links at the www host that serves HTTPS Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * docs(site): align the footer affiliation with the "Made with" line Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
…eature-values * fix(runtime): propagate state attributes to exhibited occurrences Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * fix(runtime): remove unused occurrence lookup value Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * fix(runtime): normalize occurrence-backed state data Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
* docs(skills): harden recorded REPL contrast testing Co-authored-by: jason.han <jason.han@jpl.nasa.gov> * docs(skills): preserve contrast binary after cleanup Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
A performed action's declared attributes and out parameters are features of the action performance the perform usage holds, so they are initialized from that occurrence's slots and written through it. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…mance-occurrence * fix(runtime): write performed action features to their occurrence A performed action's declared attributes and out parameters are features of the action performance the perform usage holds, so they are initialized from that occurrence's slots and written through it. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * docs: name the shared performanceOccurrence helper in the state row Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
An assignment target may be a feature chain: lowering carries the whole walk in Assign.Chain and the runtime writes the feature on the object the chain reaches, resolved in the statement's own scope. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
collectAssignedOutputs counted a chained target's last segment as the calc computing its own output of that name. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…e-chain * feat(runtime): write through a chained assignment target An assignment target may be a feature chain: lowering carries the whole walk in Assign.Chain and the runtime writes the feature on the object the chain reaches, resolved in the statement's own scope. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * fix(runtime): a chained assignment binds no output of a calc collectAssignedOutputs counted a chained target's last segment as the calc computing its own output of that name. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
…ing it A typed state usage materializes its definition's substates, initial transition, entry/do/exit behaviors, transitions, deferred events and attributes, per usage rather than shared, including in parallel bodies. Recursive typing and content lowering cannot represent are typed errors. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…iplicity An `assign` wrote any value into any feature: a Real attribute accepted a String, statically and at run time. KerML's FeatureWritePerformance "assigns the values of a feature on an occurrence to the given replacementValues", so those values are values of that feature and answer to its declared type and multiplicity — the rule already applied to an initial value. The type pass now walks every body an `assign` may stand in and checks the written value with the initial-value rule, resolved against the target's declaration. The run time checks the same, before storing, in every write path: Instance.SetFeatureValue, the statement hosts' assignData/assignOuter, body-locals, calc outputs, performer features and performance occurrences. A rejected write leaves the feature as it was. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…ectors A send in a deeply nested flow saw only the action's own connectors and those of the flow it sits in, so a connector declared by an intermediate flow could not route it. Each activation now carries the connectors of every flow around it. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…e change Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…-flow * feat(runtime): run the flow a nested action node owns A nested action node's own members are its subperformances, so lowering now carries them as a subgraph and the executor performs that flow before the node completes. An action usage stating no body of its own resolves to the action definition typing it, so %action on a perform usage runs. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * fix(runtime): route a nested send through every enclosing flow's connectors A send in a deeply nested flow saw only the action's own connectors and those of the flow it sits in, so a connector declared by an intermediate flow could not route it. Each activation now carries the connectors of every flow around it. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * docs: refresh derived counts after rebasing onto the state-inheritance change Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…conformance * feat(runtime): a write conforms to its target feature's type and multiplicity An `assign` wrote any value into any feature: a Real attribute accepted a String, statically and at run time. KerML's FeatureWritePerformance "assigns the values of a feature on an occurrence to the given replacementValues", so those values are values of that feature and answer to its declared type and multiplicity — the rule already applied to an initial value. The type pass now walks every body an `assign` may stand in and checks the written value with the initial-value rule, resolved against the target's declaration. The run time checks the same, before storing, in every write path: Instance.SetFeatureValue, the statement hosts' assignData/assignOuter, body-locals, calc outputs, performer features and performance occurrences. A rejected write leaves the feature as it was. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * fix(runtime): a written decimal conforms to Rational, as the type tier reads one Devin Review caught the two tiers disagreeing: the type tier reads a decimal literal as Rational, the run time classified a real value as Real, so a decimal written to a Rational feature validated clean and then failed at run time. The run time now reads a real value the same way. The two multiplicity fixtures routed their value through an untyped attribute, whose implicit [1] made the read fail before the write was checked; they now declare the bound they need and expect the write-side message word for word. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * feat(runtime): an output a declaration binds conforms to its type too A calc output given its value by its declaration reached no write check: the value is bound rather than assigned, so a body-less `out a : Integer = n` answered with whatever an untyped input carried. The binding now answers to the output's declared type and multiplicity through the same helper an assignment uses, so the rule holds however an output is given its value. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
* Update testing-sysml-repl skill with the stale gRPC service trap Co-authored-by: jason.han <jason.han@jpl.nasa.gov> * docs: correct the pgrep -af rationale in the sysml-repl skill Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
…s log The sampling branch is now one node with a flow of its own, and recordPass writes the log part through a feature chain, so the demo exercises both behaviors and the walkthrough matches what the tools print. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
… in the performer A behavior body reached any like-named feature of the object performing it, which name resolution does not admit: the runtime now writes and reads a performer feature only where the name resolves to it, and 'this' inside an owned performance denotes the owning object. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…nsolidation * docs(examples): show the rover's nested sampling flow and chained pass log The sampling branch is now one node with a flow of its own, and recordPass writes the log part through a feature chain, so the demo exercises both behaviors and the walkthrough matches what the tools print. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * docs(examples): note the controller's pass log in the package tour Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * docs(examples): quote the whole token listing at the sampling breakpoint Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
…-name-scope A behavior body reached any like-named feature of the object performing it, which name resolution does not admit: the runtime now writes and reads a performer feature only where the name resolves to it, and 'this' inside an owned performance denotes the owning object. Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
… runs Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…ts target declares A feature declared with a quantity value type now refuses a quantity measured in another dimension, statically where the value's dimension is determined and at run time on every write path. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…reams-output Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
…-write-conformance A feature declared with a quantity value type now refuses a quantity measured in another dimension, statically where the value's dimension is determined and at run time on every write path. Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
…ratum Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
* docs(site): label the header's wiki link Wiki rather than Forum Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> * docs(site): call the header's wiki link Community Wiki Co-Authored-By: jason.han <jason.han@jpl.nasa.gov> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
…erratum Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
The end-to-end example is now a fictional ground robot: same coverage of structure, calculations, fork/join, nested flows, a hierarchical state machine, the solver commands, the views and the Python client, without space framing. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
…t-demo The end-to-end example is now a fictional ground robot: same coverage of structure, calculations, fork/join, nested flows, a hierarchical state machine, the solver commands, the views and the Python client, without space framing. Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
Everything merged since v0.3.0 that a reader of the changelog would look for: the write-conformance rules, the state-usage and nested-flow execution work, the fixes, and the note that the Python client publishes nothing with this release. Co-Authored-By: jason.han <jason.han@jpl.nasa.gov>
Everything merged since v0.3.0 that a reader of the changelog would look for: the write-conformance rules, the state-usage and nested-flow execution work, the fixes, and the note that the Python client publishes nothing with this release. Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <jason.han@jpl.nasa.gov>
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.
What and why
Promotes the development repository to the public repository so
v0.4.0can be tagged here. 104commits (40 merges) since
v0.3.0; 344 files changed, +13,689 / −1,248. No public API of the CLI,REPL, LSP or gRPC service is removed; the semantic change below is what makes the release a minor.
A write is now checked.
assignanswered to nothing: aRealattribute accepted aString, aduration accepted a length, both statically and at run time. A write now conforms to the target
feature's declared type, multiplicity and — where the target is a quantity — its dimension, on every
path that stores a value, including an output a declaration binds and a decimal written to a
Rational. A model that relied on an unchecked write no longer validates.Alongside it, the runtime stopped flattening structure it was given: a typed state usage materializes
the content of the definition typing it, a nested action node runs the flow it owns, an assignment
target may be a feature chain, and a performed action's features live on the performance occurrence
holding them. A behavior body resolves a name where the name is written rather than reaching into the
performer.
The pinned OMG pilot implementation moves to release
2026-07(jupyter-sysml-kernel0.61.0), withthe reference validators, vendored standard library, corpora, grammars, Xpect suites and every oracle
baseline re-recorded at that pin. Reviewers diffing baselines should expect churn there for that
reason alone.
Full user-facing detail: the
0.4.0section ofCHANGELOG.mdin this diff.Specification basis
FeatureWritePerformance— the replacement values are values of the written feature, so theinitial-value conformance rule applies to every write.
decomposition (a nested node's members are its subperformances).
StandardViewDefinitions::SequenceViewrendering.docs/project/spec-compliance.mdmoved down;make docs-countsregenerated the countsthat moved.
How it was verified
The pre-tag gate in
docs/project/releasing.md, on the promoted commit:gofmt -l .empty;go build ./...;go vet ./...;make lintgo test -race -count=1 ./...go test -run TestStdlibConformance ./internal/core/libsOPENSYSML_REQUIRE_TRAINING_CORPUS=1andOPENSYSML_REQUIRE_PILOT_CORPORA=1make docs-check,make docs-counts(no measured number moved)python -m pytest python/tests/— 619 passed, 39 skippedNote for whoever re-runs the gate:
cmd/pilot-diffandcmd/pilot-xpectfail their provenance andcensus tests against pre-
2026-07local corpora, and both download scripts leave an existingdestination alone. Remove
examples/pilot-corpora/andbuild/pilot-xpect-corpus/and re-runscripts/download-pilot-corpora.shandscripts/download-pilot-xpect.shbefore judging a failurethere.