Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1673 commits
Select commit Hold shift + click to select a range
46d4dfd
fix(runtime): read a state's activity from the enclosing machine befo…
devin-ai-integration[bot] Oct 6, 2026
f2de9ea
Merge pull request #871 from Open-MBEE/feature/view-case-mixed
HuiJun Oct 6, 2026
f3db054
Merge remote-tracking branch 'origin/develop' into feat/exact-rationals
devin-ai-integration[bot] Oct 6, 2026
bfd3b76
Merge pull request #912 from Open-MBEE/feature/census-calls
HuiJun Oct 6, 2026
ebf4f2c
Merge pull request #950 from someshSandbox/perf/index-unchanged-reexp…
HuiJun Oct 6, 2026
9fd7156
Merge pull request #956 from someshSandbox/fix/include-reference-subs…
HuiJun Oct 6, 2026
c13822f
Merge remote-tracking branch 'origin/develop' into feature/census-ste…
devin-ai-integration[bot] Oct 6, 2026
9ee7d3d
Merge remote-tracking branch 'origin/develop' into feat/exact-rationals
devin-ai-integration[bot] Oct 6, 2026
b9fe492
Merge remote-tracking branch 'origin/develop' into feat/run-trace-ren…
devin-ai-integration[bot] Oct 6, 2026
b167f83
Merge origin/develop into feature/census-values-constraints
devin-ai-integration[bot] Oct 6, 2026
d867099
Merge pull request #886 from Open-MBEE/feat/general-view-graphs
HuiJun Oct 6, 2026
2c664c6
Merge pull request #947 from someshSandbox/feat/parse-sources-lineage
HuiJun Oct 6, 2026
a43efd9
Merge remote-tracking branch 'origin/develop' into feat/run-trace-ren…
devin-ai-integration[bot] Oct 6, 2026
d2f3dfc
Merge remote-tracking branch 'origin/develop' into feature/census-vie…
devin-ai-integration[bot] Oct 6, 2026
9d234aa
chore: merge develop case and mixed view kinds
devin-ai-integration[bot] Oct 6, 2026
1238325
Merge remote-tracking branch 'origin/develop' into feat/exact-rationals
devin-ai-integration[bot] Oct 6, 2026
5efb6d6
Merge remote-tracking branch 'origin/develop' into feature/census-vie…
devin-ai-integration[bot] Oct 6, 2026
46ae60f
docs(readme): give the light logo an opaque backdrop so it reads on d…
devin-ai-integration[bot] Oct 6, 2026
14cb19e
Merge remote-tracking branch 'origin/develop' into feat/indexed-conne…
devin-ai-integration[bot] Oct 6, 2026
f3c1765
Merge pull request #957 from someshSandbox/fix/accept-action-usage
HuiJun Oct 6, 2026
3efe84b
Merge pull request #967 from Open-MBEE/devin/1791307918-readme-logo-d…
HuiJun Oct 6, 2026
a5d8eb4
ci: keep the develop build-test workflow within its limits
devin-ai-integration[bot] Oct 6, 2026
b2847aa
Merge remote-tracking branch 'origin/develop' into feat/gridview-rela…
devin-ai-integration[bot] Oct 6, 2026
e1a99ed
Merge remote-tracking branch 'origin/develop' into feat/gridview-rela…
devin-ai-integration[bot] Oct 6, 2026
a37bc0a
docs(man): refresh rendering form descriptions
devin-ai-integration[bot] Oct 6, 2026
8a6b748
Merge remote-tracking branch 'origin/develop' into feature/census-obj…
devin-ai-integration[bot] Oct 6, 2026
9f738f3
fix(migrate): keep object-pin writes from declaring the context param…
devin-ai-integration[bot] Oct 6, 2026
c78a8fc
Merge remote-tracking branch 'origin/develop' into feature/census-str…
devin-ai-integration[bot] Oct 6, 2026
c41a6f9
Merge remote-tracking branch 'origin/develop' into feat/run-trace-ren…
devin-ai-integration[bot] Oct 6, 2026
498dab6
Merge pull request #959 from someshSandbox/fix/guarded-succession-tra…
HuiJun Oct 6, 2026
49a062f
Merge remote-tracking branch 'origin/develop' into feat/run-trace-ren…
devin-ai-integration[bot] Oct 6, 2026
e28f36c
docs: clarify relationship matrix routes
devin-ai-integration[bot] Oct 6, 2026
6d62e24
Merge remote-tracking branch 'origin/develop' into feat/gridview-rela…
devin-ai-integration[bot] Oct 6, 2026
320f5a4
Merge remote-tracking branch 'origin/develop' into feature/census-ste…
devin-ai-integration[bot] Oct 6, 2026
4b3eb14
fix(runtime): answer isActive from the named object's machine and whi…
devin-ai-integration[bot] Oct 6, 2026
d58ea0f
fix(migrate): evaluate an excluding type filter's source once
devin-ai-integration[bot] Oct 6, 2026
5b80fe7
refactor(migrate): tidy bound query parameter declarations
devin-ai-integration[bot] Oct 6, 2026
06bfce0
Merge remote-tracking branch 'origin/develop' into feature/census-str…
devin-ai-integration[bot] Oct 6, 2026
4552bed
Merge pull request #838 from Open-MBEE/feat/exact-rationals
HuiJun Oct 6, 2026
99de521
Merge remote-tracking branch 'origin/develop' into feat/state-is-active
devin-ai-integration[bot] Oct 6, 2026
db2f051
Merge remote-tracking branch 'origin/develop' into feature/census-ste…
devin-ai-integration[bot] Oct 6, 2026
6677acd
Merge remote-tracking branch 'origin/develop' into feat/gridview-rela…
devin-ai-integration[bot] Oct 6, 2026
2d1fc0f
Merge pull request #968 from Open-MBEE/ci/circleci-develop-green
HuiJun Oct 6, 2026
a02161c
test(analysis): meet the concurrent-deadline test's deadline after b'…
devin-ai-integration[bot] Oct 6, 2026
3c8fb86
Merge remote-tracking branch 'origin/develop' into feat/run-trace-ren…
devin-ai-integration[bot] Oct 6, 2026
cf85beb
fix(semantics): check an indexed end against the multiplicity governi…
devin-ai-integration[bot] Oct 6, 2026
f7771a7
fix(runtime): keep the feature an indexed binding end selects from di…
devin-ai-integration[bot] Oct 6, 2026
79cff28
Merge remote-tracking branch 'origin/develop' into feat/state-is-active
devin-ai-integration[bot] Oct 6, 2026
8e7c714
fix(migrate): hoist shared query sources when writing the query
devin-ai-integration[bot] Oct 6, 2026
a3f7de4
test(wasm): raise the engine and combined gzip budgets by 50 KB
devin-ai-integration[bot] Oct 6, 2026
ed8af8f
fix(runtime): check the stated link counts of a binding between selec…
devin-ai-integration[bot] Oct 6, 2026
a35e2a7
Merge remote-tracking branch 'origin/develop' into feat/indexed-conne…
devin-ai-integration[bot] Oct 6, 2026
29fb729
test(wasm): restore the engine size budget to 7.7 MB
devin-ai-integration[bot] Oct 6, 2026
1e73bb0
Merge remote-tracking branch 'origin/develop' into feature/census-ste…
devin-ai-integration[bot] Oct 6, 2026
39ea62c
Merge remote-tracking branch 'origin/develop' into feat/gridview-rela…
devin-ai-integration[bot] Oct 6, 2026
ddd7b25
test(wasm): raise the combined size budget to 8.5 MB
devin-ai-integration[bot] Oct 6, 2026
2645a4a
test(runtime): read indexed binding ends as Rationals where a literal…
devin-ai-integration[bot] Oct 6, 2026
611d9f5
refactor(migrate): treat a shared query source as non-empty
devin-ai-integration[bot] Oct 6, 2026
f26783b
Merge remote-tracking branch 'origin/develop' into feature/census-str…
devin-ai-integration[bot] Oct 6, 2026
ffd1927
test(wasm): raise the engine and combined gzip budgets by 50 KB
devin-ai-integration[bot] Oct 6, 2026
b61b6f9
docs(readme): list every bundled OpenSysML extension in the technolog…
devin-ai-integration[bot] Oct 6, 2026
0ce95a0
test(parser): pin the parse of a state activity read as a feature chain
devin-ai-integration[bot] Oct 6, 2026
fca3267
Merge pull request #969 from Open-MBEE/test/analysis-concurrent-deadline
HuiJun Oct 6, 2026
eb2969b
Merge remote-tracking branch 'origin/develop' into feature/census-str…
devin-ai-integration[bot] Oct 6, 2026
2667747
Merge remote-tracking branch 'origin/develop' into feature/census-ste…
devin-ai-integration[bot] Oct 6, 2026
e00788f
fix(export): write a named send or assignment node as one element
someshSandbox Oct 6, 2026
46983e2
fix(export): keep a richer action node the action it is declared as
someshSandbox Oct 6, 2026
31d5b82
Merge pull request #970 from Open-MBEE/test/wasm-size-budgets
HuiJun Oct 6, 2026
0ba61bc
Merge remote-tracking branch 'origin/develop' into feat/indexed-conne…
devin-ai-integration[bot] Oct 6, 2026
c399783
Merge remote-tracking branch 'origin/develop' into feat/gridview-rela…
devin-ai-integration[bot] Oct 6, 2026
25e3e59
Merge pull request #966 from Open-MBEE/feat/state-is-active
HuiJun Oct 6, 2026
d9e9763
Merge pull request #914 from Open-MBEE/feature/census-stereotype-meta…
HuiJun Oct 6, 2026
ba53802
Merge pull request #958 from someshSandbox/fix/named-send-action
HuiJun Oct 6, 2026
aae85c0
Merge remote-tracking branch 'origin/develop' into feat/gridview-rela…
devin-ai-integration[bot] Oct 6, 2026
7c14a95
Merge remote-tracking branch 'origin/develop' into feat/gridview-rela…
devin-ai-integration[bot] Oct 6, 2026
53006b2
Merge origin/develop into feature/census-values-constraints
devin-ai-integration[bot] Oct 6, 2026
ae66164
Merge remote-tracking branch 'origin/develop' into feature/census-vie…
devin-ai-integration[bot] Oct 6, 2026
0ef79e2
Merge remote-tracking branch 'origin/develop' into feature/census-str…
devin-ai-integration[bot] Oct 6, 2026
442454e
Merge remote-tracking branch 'origin/develop' into feature/census-str…
devin-ai-integration[bot] Oct 6, 2026
6d779ed
Merge remote-tracking branch 'origin/develop' into feature/census-obj…
devin-ai-integration[bot] Oct 6, 2026
ce4346c
Merge pull request #965 from Open-MBEE/feat/indexed-connector-ends
HuiJun Oct 6, 2026
1e68ecf
Merge pull request #917 from Open-MBEE/feature/census-values-constraints
HuiJun Oct 6, 2026
ada299e
Merge remote-tracking branch 'origin/develop' into feat/gridview-rela…
devin-ai-integration[bot] Oct 6, 2026
cfd0925
test(view): cover indexed connector ends in matrices
devin-ai-integration[bot] Oct 6, 2026
59e4464
fix(resolve): a suggestion depends on the names spelled, not on every…
someshSandbox Oct 6, 2026
bd52c66
Merge remote-tracking branch 'origin/develop' into feature/census-vie…
devin-ai-integration[bot] Oct 6, 2026
70236e9
fix(export): write an accept node's `via` as its receiver parameter
someshSandbox Oct 6, 2026
06ddf37
Merge remote-tracking branch 'origin/develop' into feature/census-obj…
devin-ai-integration[bot] Oct 6, 2026
3b6561a
Merge remote-tracking branch 'origin/develop' into feature/census-str…
devin-ai-integration[bot] Oct 6, 2026
38cd544
fix(export): place an accept's receiver after its prefixes; refuse a …
someshSandbox Oct 6, 2026
a3a6ec5
fix(resolve): a record carries the spellings its suggestions read
someshSandbox Oct 6, 2026
8fd360c
refactor(symbols): one spelling rule for the suggestion table and its…
someshSandbox Oct 6, 2026
4ce0260
Merge pull request #884 from Open-MBEE/feat/gridview-relationship-matrix
HuiJun Oct 6, 2026
f693dcc
Merge pull request #972 from someshSandbox/fix/accept-node-receiver
HuiJun Oct 7, 2026
6030028
Merge pull request #971 from someshSandbox/perf/narrow-edit-invalidation
HuiJun Oct 7, 2026
fee5830
feat(view): draw relationship edges in tree renderings
devin-ai-integration[bot] Oct 7, 2026
c618041
test(wasm): bound the engine and combined gzip budgets at gross growth
devin-ai-integration[bot] Oct 7, 2026
8d78ab2
fix(view): join Mermaid container title first lines
devin-ai-integration[bot] Oct 7, 2026
8d58d21
fix(view): share Mermaid label escaping between titles and nodes
devin-ai-integration[bot] Oct 7, 2026
ccc6cc9
feat(view): refuse active-content SVG and remote diagram pictures in …
devin-ai-integration[bot] Oct 7, 2026
72a278b
Merge pull request #975 from Open-MBEE/test/wasm-gross-growth-budgets
HuiJun Oct 7, 2026
3074087
fix(view): draw tree compositions only for drawn usages, keyed and st…
devin-ai-integration[bot] Oct 7, 2026
7c20bdd
Merge remote-tracking branch 'origin/develop' into feat/tree-diagram-…
devin-ai-integration[bot] Oct 7, 2026
3b06a5c
test(docpdf): exercise Graphviz SVG picture refusal path
devin-ai-integration[bot] Oct 7, 2026
0789072
test(wasm): raise the engine and combined gzip budgets by 50 KB
devin-ai-integration[bot] Oct 7, 2026
86a87c2
docs(changelog): state both WebAssembly budget raises in one fragment
devin-ai-integration[bot] Oct 7, 2026
83f6375
test(migrate): expect one-line action container titles
devin-ai-integration[bot] Oct 7, 2026
9d634b1
Merge remote-tracking branch 'origin/develop' into feature/diagram-pi…
devin-ai-integration[bot] Oct 7, 2026
784c10a
Merge pull request #974 from Open-MBEE/feat/tree-diagram-edges
HuiJun Oct 7, 2026
097209b
Merge pull request #977 from Open-MBEE/fix/mermaid-container-titles
HuiJun Oct 7, 2026
eac2fad
feat(runtime): make runs interruptible from the REPL session
devin-ai-integration[bot] Oct 7, 2026
4fac5bc
feat(repl): export the cell adapter a notebook kernel runs on
devin-ai-integration[bot] Oct 7, 2026
099263f
feat(jupyter): add sysml-jupyter-kernel, a Jupyter kernel over the RE…
devin-ai-integration[bot] Oct 7, 2026
218aff1
feat(packaging): publish the kernel as a release asset and as jupyter…
devin-ai-integration[bot] Oct 7, 2026
08b3747
docs: describe the Jupyter kernel and its installation
devin-ai-integration[bot] Oct 7, 2026
0bc3aa6
Merge pull request #916 from Open-MBEE/feature/census-viewpoints-conc…
HuiJun Oct 7, 2026
0283f6f
docs(jupyter): give the guide's Car a default mass so the sedan may o…
devin-ai-integration[bot] Oct 7, 2026
311a2fb
fix(jupyter): satisfy gosec on the kernel's file reads, kernelspec mo…
devin-ai-integration[bot] Oct 7, 2026
8a54c1c
ci: keep the solver-absent gate and the Python scripts coverage alive…
devin-ai-integration[bot] Oct 7, 2026
0f4f991
fix(jupyter): answer each expression in a cell on its own
devin-ai-integration[bot] Oct 7, 2026
8f3bdc1
Merge commit '097209b6b' into feat/run-trace-renderings
devin-ai-integration[bot] Oct 7, 2026
c5e044b
feat(jupyter): give the kernelspec the OpenSysML mark as its icon
devin-ai-integration[bot] Oct 7, 2026
cb621d7
fix(view): address picture-hardening review findings
devin-ai-integration[bot] Oct 7, 2026
3edbd42
Merge remote-tracking branch 'origin/develop' into feature/census-obj…
devin-ai-integration[bot] Oct 7, 2026
1b5a57a
Merge remote-tracking branch 'origin/develop' into feat/run-trace-ren…
devin-ai-integration[bot] Oct 7, 2026
809f281
fix(migrate): draw the Monte Carlo analysis in a migrated parametric …
devin-ai-integration[bot] Oct 7, 2026
e5e54db
fix(docpdf): replace a refused image element with its children
devin-ai-integration[bot] Oct 7, 2026
e01c603
feat(jupyter): ship platform wheels that bundle the kernel and regist…
devin-ai-integration[bot] Oct 7, 2026
8d4408e
fix(view): draw an analysis case's parameters as pins on its node
devin-ai-integration[bot] Oct 7, 2026
a587311
Merge remote-tracking branch 'origin/develop' into feature/census-str…
devin-ai-integration[bot] Oct 7, 2026
5fdd58f
fix(view): draw no tree relationship edge into a nested node
devin-ai-integration[bot] Oct 7, 2026
3779387
fix(jupyter): close the review findings on the kernel and its release…
devin-ai-integration[bot] Oct 7, 2026
b44790d
fix(identity): a regathered document names the ids its first gather did
someshSandbox Oct 7, 2026
ba5ad45
Merge pull request #979 from Open-MBEE/ci/develop-circleci-gates
HuiJun Oct 7, 2026
36f3acc
Merge pull request #918 from Open-MBEE/feature/census-object-writes
HuiJun Oct 7, 2026
2e80c3b
Merge pull request #885 from Open-MBEE/feat/run-trace-renderings
HuiJun Oct 7, 2026
2482c0a
Merge pull request #976 from Open-MBEE/feature/diagram-picture-hardening
HuiJun Oct 7, 2026
6547c56
Merge pull request #978 from Open-MBEE/feature/jupyter-kernel
HuiJun Oct 7, 2026
f62f8db
fix(parser): read end multiplicities on a keyword-less action succession
devin-ai-integration[bot] Oct 7, 2026
793c60e
Merge remote-tracking branch 'origin/develop' into feature/census-str…
devin-ai-integration[bot] Oct 7, 2026
c149629
Merge pull request #982 from someshSandbox/fix/identity-first-gather-…
HuiJun Oct 7, 2026
32e0f02
Merge pull request #983 from Open-MBEE/devin/1791378848-first-end-mul…
HuiJun Oct 7, 2026
2f92d69
Merge pull request #922 from Open-MBEE/feature/census-structure
HuiJun Oct 7, 2026
608345f
feat(graphs): export a behavior's lowered graph as graphs:1 from the …
devin-ai-integration[bot] Oct 7, 2026
a063165
docs(python): list Graphs in the Python API reference
devin-ai-integration[bot] Oct 7, 2026
d376912
fix(cli): refuse -graphs beside -render-all and -render-documents; ta…
devin-ai-integration[bot] Oct 7, 2026
f40e365
fix(workspace): hold a disk batch under the kind and library it ends …
devin-ai-integration[bot] Oct 7, 2026
a8ed096
Merge remote-tracking branch 'origin/develop' into fix/explore-execut…
devin-ai-integration[bot] Oct 7, 2026
92b926a
fix(grpc): mark the graphs version conversion as bounded for gosec
devin-ai-integration[bot] Oct 7, 2026
8ad5db3
fix(conformance): mark the graphs version conversion as bounded for g…
devin-ai-integration[bot] Oct 7, 2026
4425901
test(model): assert the record key a library version leaves or moves
devin-ai-integration[bot] Oct 7, 2026
4280028
Merge pull request #850 from Open-MBEE/fix/explore-executor-turns
HuiJun Oct 7, 2026
ae6c0ad
Merge remote-tracking branch 'origin/develop' into fix/terminate-nest…
devin-ai-integration[bot] Oct 7, 2026
ee4dc7a
Merge remote-tracking branch 'origin/develop' into fix/lsp-first-requ…
devin-ai-integration[bot] Oct 7, 2026
0e0e417
docs(self-model): list ExportGraphs among the service's RPCs
devin-ai-integration[bot] Oct 7, 2026
1ed2935
fix(workspace): hold a record beside a byte-identical version of a li…
devin-ai-integration[bot] Oct 7, 2026
ef9441d
chore(referee): re-record the pilot differential baseline for the sel…
devin-ai-integration[bot] Oct 7, 2026
cda6f79
Merge pull request #844 from Open-MBEE/fix/terminate-nested-flow-target
HuiJun Oct 7, 2026
4e47dc8
Merge pull request #984 from Open-MBEE/fix/lsp-first-request-latency
HuiJun Oct 7, 2026
4ab43c8
fix(jupyter): pass only the kernel's flags through the launcher and f…
devin-ai-integration[bot] Oct 7, 2026
f5ef8d9
fix(graphs): refuse ambiguous and empty graph subjects and every earl…
devin-ai-integration[bot] Oct 7, 2026
a5177d1
ci(github): give the Go static and integrity job the headroom its 28-…
devin-ai-integration[bot] Oct 7, 2026
8e7b147
chore(ci): re-run the checks a stalled runner cancelled
devin-ai-integration[bot] Oct 7, 2026
42d1bb9
fix(jupyter): start an executable kernel whose mode the launcher cann…
devin-ai-integration[bot] Oct 7, 2026
597be1e
fix(release): give sysml-jupyter-kernel the Windows VERSIONINFO the r…
devin-ai-integration[bot] Oct 7, 2026
d12d071
chore(ci): re-run the race shards a cancelled run left unfinished
devin-ai-integration[bot] Oct 7, 2026
41d61f5
Revert "docs: keep the documentation site at opensysml.org"
devin-ai-integration[bot] Oct 7, 2026
c9a216d
docs(site): the homepage is OpenSysML's own landing again, at impleme…
devin-ai-integration[bot] Oct 7, 2026
513f9a4
docs(site): anchored homepage sections land below the sticky header
devin-ai-integration[bot] Oct 7, 2026
eff15f1
docs(site): readable referee eyebrow and card titles in the dark palette
devin-ai-integration[bot] Oct 7, 2026
8517e8d
Merge pull request #988 from Open-MBEE/fix/jupyter-kernel-winres
HuiJun Oct 7, 2026
f561ef2
docs(landing): label the Go project "OpenSysML Runtime Environment" i…
devin-ai-integration[bot] Oct 7, 2026
e50d474
feat(landing): model OpenSysML's subsystems as nested parts of the st…
devin-ai-integration[bot] Oct 7, 2026
1026867
Merge pull request #985 from Open-MBEE/feature/graphs-export
HuiJun Oct 7, 2026
6aa3d6d
Merge pull request #986 from Open-MBEE/fix/jupyter-kernel-sonar
HuiJun Oct 7, 2026
df2edaa
feat(landing): show a nested part's card from its own box
devin-ai-integration[bot] Oct 7, 2026
97a1564
docs(issue-forms): link the OMG defect list where it is published, on…
devin-ai-integration[bot] Oct 7, 2026
330a93e
refactor(landing): shorten two comments
devin-ai-integration[bot] Oct 7, 2026
5d16ea4
feat(grpc): Convert writes api-json as a compact document
someshSandbox Oct 7, 2026
cc7b435
feat(landing): model every project's subsystems as nested parts of th…
devin-ai-integration[bot] Oct 7, 2026
1a2d6f3
fix(client): the Rust client builds with the compact Convert fields; …
someshSandbox Oct 7, 2026
a0b44d7
docs(site): publish the documentation at opensysml.opensysml.org
devin-ai-integration[bot] Oct 7, 2026
c9d928b
docs(site): name the stack the OpenSysML Runtime Environment and Deve…
devin-ai-integration[bot] Oct 7, 2026
4730795
feat(landing): draw the stack in the model's order, OpenSysML first
devin-ai-integration[bot] Oct 7, 2026
189b665
docs(site): the stack is the OpenSysML RED Kit
devin-ai-integration[bot] Oct 7, 2026
b61feff
Merge pull request #991 from someshSandbox/feat/compact-api-json
HuiJun Oct 7, 2026
8a39c8f
chore(ci): re-run the race shards
devin-ai-integration[bot] Oct 7, 2026
a5f199a
Merge remote-tracking branch 'origin/develop' into docs/implementatio…
devin-ai-integration[bot] Oct 7, 2026
1b40ca9
fix(export): write a decision's branches as TransitionUsages
someshSandbox Oct 6, 2026
59cd550
fix(export): refuse a decision branch the notation cannot state
someshSandbox Oct 6, 2026
9cdcd26
test(export): decision_branches golden with the connector ends develo…
someshSandbox Oct 7, 2026
212a473
Merge pull request #990 from Open-MBEE/docs/landing-runtime-environme…
HuiJun Oct 8, 2026
fc4d4b1
Merge remote-tracking branch 'origin/develop' into docs/implementatio…
devin-ai-integration[bot] Oct 8, 2026
cc5955a
fix(ci): compare the kernel wheel's built-against releases as the lis…
devin-ai-integration[bot] Oct 8, 2026
82a0b22
fix(landing): move a project clear of only other projects; long-press…
devin-ai-integration[bot] Oct 8, 2026
bede4ca
fix(landing): align a dropped project against the same obstacles it w…
devin-ai-integration[bot] Oct 8, 2026
f7ef825
Merge remote-tracking branch 'origin/develop' into fix/migrate-monte-…
devin-ai-integration[bot] Oct 8, 2026
0fc9a40
docs(census): re-measure the transformation census over the Monte Car…
devin-ai-integration[bot] Oct 8, 2026
b5ce77f
fix(landing): carry a re-clamped project's boxes before clearing late…
devin-ai-integration[bot] Oct 8, 2026
9d0dd49
Merge remote-tracking branch 'origin/develop' into local/body-binding…
devin-ai-integration[bot] Oct 8, 2026
fd7a395
fix(view): bind a chained value to the drawn operand and draw no defa…
devin-ai-integration[bot] Oct 8, 2026
9bb6319
Merge pull request #992 from Open-MBEE/fix/kernel-wheel-verify
HuiJun Oct 8, 2026
8372d58
feat(landing): zoom and pan the stack diagram, and save it as a PNG
devin-ai-integration[bot] Oct 8, 2026
9625cad
fix(landing): keep a pinch on the fitted diagram from zooming the page
devin-ai-integration[bot] Oct 8, 2026
5a5dc99
fix(landing): let the zoomed stage's touch-action outrank the drawn s…
devin-ai-integration[bot] Oct 8, 2026
bb2daad
fix(landing): show the grabbing cursor while panning the zoomed stage
devin-ai-integration[bot] Oct 8, 2026
9b88f44
docs: name the Go project the OpenSysML Runtime Environment and Devel…
devin-ai-integration[bot] Oct 8, 2026
09f0c62
Merge pull request #980 from Open-MBEE/fix/migrate-monte-carlo-parame…
HuiJun Oct 8, 2026
98dba4b
Merge pull request #993 from Open-MBEE/fix/landing-project-drag-obsta…
HuiJun Oct 8, 2026
f3c1b6e
Merge remote-tracking branch 'origin/develop' into feat/landing-zoom-…
devin-ai-integration[bot] Oct 8, 2026
eb4b758
feat(resolve): warn when imports make a namespace's memberships indis…
HuiJun Oct 8, 2026
a90b717
Merge pull request #995 from Open-MBEE/feat/landing-zoom-download
HuiJun Oct 8, 2026
ddf488c
docs: the product is the OpenSysML REDK, Runtime Environment and Deve…
devin-ai-integration[bot] Oct 8, 2026
b885923
Merge remote-tracking branch 'origin/develop' into fix/body-feature-v…
devin-ai-integration[bot] Oct 8, 2026
3bb6750
Merge pull request #996 from Open-MBEE/devin/1791433042-runtime-dev-k…
HuiJun Oct 8, 2026
bd4eec1
Merge remote-tracking branch 'origin/develop' into docs/implementatio…
devin-ai-integration[bot] Oct 8, 2026
d55644c
Merge remote-tracking branch 'origin/develop' into feat/import-distin…
devin-ai-integration[bot] Oct 8, 2026
6d2326b
ci: re-run the race suite after the runtime shard hit its 45m limit o…
devin-ai-integration[bot] Oct 8, 2026
0c1d3d2
fix(resolve): compare imported members with inherited ones and keep d…
devin-ai-integration[bot] Oct 8, 2026
e39eeea
chore(ci): rerun the race shards
devin-ai-integration[bot] Oct 8, 2026
44a98d3
chore(ci): rerun the runtime race shard
devin-ai-integration[bot] Oct 8, 2026
2cf6b3b
Merge pull request #989 from Open-MBEE/docs/implementation-subdomain-…
HuiJun Oct 8, 2026
da54303
ci: allow the race-suite shards 55 minutes per package
devin-ai-integration[bot] Oct 8, 2026
72c70cb
docs(site): publish the documentation at redk.opensysml.org
devin-ai-integration[bot] Oct 8, 2026
98423fe
fix(runtime): keep an unvalued mark on a frame whose map is not yet a…
devin-ai-integration[bot] Oct 8, 2026
650768e
Merge remote-tracking branch 'origin/develop' into fix/body-feature-v…
devin-ai-integration[bot] Oct 8, 2026
ab65b53
fix(jupyter): bundle only the platform's own kernel in each wheel
HuiJun Oct 8, 2026
aba0b31
Merge pull request #999 from Open-MBEE/docs/redk-subdomain
HuiJun Oct 8, 2026
2f7664c
docs(site): the homepage hero draws the stack diagram again, without …
devin-ai-integration[bot] Oct 8, 2026
109e048
ci: re-run the race suite after the runtime shard hit its 45m limit o…
devin-ai-integration[bot] Oct 8, 2026
9dd9f34
Merge pull request #1002 from Open-MBEE/docs/hero-stack-diagram
HuiJun Oct 8, 2026
904fdac
Merge pull request #998 from Open-MBEE/ci/race-shard-timeout
HuiJun Oct 8, 2026
c9df2f7
Merge remote-tracking branch 'origin/develop' into fix/body-feature-v…
devin-ai-integration[bot] Oct 8, 2026
5bee5cb
Merge pull request #1001 from Open-MBEE/fix/jupyter-wheel-stale-kernel
HuiJun Oct 8, 2026
fc4164a
docs(site): the homepage diagram spans the hero
devin-ai-integration[bot] Oct 8, 2026
15194ab
Merge pull request #1006 from Open-MBEE/docs/hero-diagram-width
HuiJun Oct 8, 2026
cca8150
fix(scripts): skip a changelog fragment an earlier release already ca…
devin-ai-integration[bot] Oct 8, 2026
584a03d
chore(release): 0.10.0
devin-ai-integration[bot] Oct 8, 2026
a690400
test(resolve): an imported name colliding with an inherited one warns
devin-ai-integration[bot] Oct 8, 2026
85a001a
Merge pull request #842 from Open-MBEE/fix/body-feature-value-bindings
HuiJun Oct 8, 2026
a5bd7eb
Merge pull request #960 from someshSandbox/fix/guarded-target-succession
HuiJun Oct 8, 2026
babf732
ci(sonar): resolve the findings against develop since 0.9.2
devin-ai-integration[bot] Oct 8, 2026
3a1b71c
test(python): pin the kernel version in the snapshot-naming tests
devin-ai-integration[bot] Oct 8, 2026
f6fd921
ci(sonar): sort names by code unit, as the comparator-less sort did
devin-ai-integration[bot] Oct 8, 2026
5dd8ab8
chore(ci): rerun the checks after a runner's apt mirror stalled
devin-ai-integration[bot] Oct 8, 2026
5d90c4c
chore(ci): rerun the checks after a port collision in the jupyter ker…
devin-ai-integration[bot] Oct 8, 2026
d47a369
Merge pull request #997 from Open-MBEE/feat/import-distinguishability
HuiJun Oct 8, 2026
e3f468f
Merge pull request #1009 from Open-MBEE/ci/sonar-develop-gate
HuiJun Oct 8, 2026
cde0c57
Merge remote-tracking branch 'origin/develop' into release/0.10.0
devin-ai-integration[bot] Oct 8, 2026
20c1518
chore(release): fold the fragments develop gained since the branch wa…
devin-ai-integration[bot] Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
10 changes: 6 additions & 4 deletions .agents/skills/testing-doc-pdf/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
name: testing-doc-pdf
description: How to end-to-end test the sysml PDF document backend (internal/doc/docpdf + -doc-form pdf) on Linux — provisioning the pinned WeasyPrint/mermaid/KaTeX/Graphviz/PlantUML toolchain, rendering the worked example and the docrender goldens, and proving inline runs, anchors, links, LaTeX formulas and every diagram form render rather than appearing literal.
description: How to end-to-end test the sysml PDF document backend (internal/doc/docpdf + -doc-form pdf) on Linux — provisioning the pinned WeasyPrint/mermaid/KaTeX/Graphviz/PlantUML/D2 toolchain, rendering the worked example and the docrender goldens, and proving inline runs, anchors, links, LaTeX formulas and every diagram form render rather than appearing literal.
---

# Testing the PDF document backend

## Toolchain
- Provision once: `./scripts/download-doc-pdf-toolchain.sh` installs a pinned WeasyPrint venv, pandoc, mermaid-cli, KaTeX, Graphviz (unpacked from the upstream Ubuntu .debs; its `neato` plugin needs the host's `libgts-0.7-5`) and the PlantUML jar under `build/doc-pdf/`. PlantUML needs a `java` on `PATH` (or `OPENSYSML_JAVA`).
- Provision once: `./scripts/download-doc-pdf-toolchain.sh` installs a pinned WeasyPrint venv, pandoc, mermaid-cli, KaTeX, Graphviz (unpacked from the upstream Ubuntu .debs; its `neato` plugin needs the host's `libgts-0.7-5`) the PlantUML jar and D2 under `build/doc-pdf/`. PlantUML needs a `java` on `PATH` (or `OPENSYSML_JAVA`).
- Export before any PDF render (env does NOT persist between exec tool calls even in the same shell session — re-export in the same command line):
- `OPENSYSML_WEASYPRINT=$PWD/build/doc-pdf/weasyprint/bin/weasyprint`
- `OPENSYSML_MMDC=$PWD/build/doc-pdf/mermaid/node_modules/.bin/mmdc`
Expand All @@ -15,8 +15,9 @@ description: How to end-to-end test the sysml PDF document backend (internal/doc
- `OPENSYSML_KATEX=$PWD/build/doc-pdf/katex/node_modules/.bin/katex` (only a document with formulas needs it)
- `OPENSYSML_DOT=$PWD/build/doc-pdf/graphviz/bin/dot` (for `-diagram-form dot`; absent, DOT blocks stay as source under a notice)
- `OPENSYSML_PLANTUML_JAR=$PWD/build/doc-pdf/plantuml/plantuml-1.2026.8.jar` (for `-diagram-form plantuml`; absent, PlantUML blocks stay as source under a notice)
- `OPENSYSML_D2=$PWD/build/doc-pdf/d2/d2-v0.9.0/bin/d2` (for `-diagram-form d2`; absent, D2 blocks stay as source under a notice naming the variable)
- `go test -run Installed ./internal/doc/docpdf` runs the real-toolchain integration tests (they skip per missing tool, `pdftotext`/`pdfimages` from `poppler-utils` included — the tests read every PDF back through them, so install the package or the text assertions never run); the rest of the package's tests use fake tools and need nothing installed. `OPENSYSML_REQUIRE_PDF_TOOLCHAIN=1` turns every such skip but Prince's into a failure — set it once the script has run, so a misconfigured variable cannot pass as a skip. This is how the CI `pdf-toolchain` job runs them.
- Diagram forms: render the worked example with `-diagram-form dot` and `-diagram-form plantuml` too; the PDF must contain no "did not draw" notice (pypdf `extract_text`) and the page's XObjects grow by one per diagram. With `OPENSYSML_DOT=/nonexistent` the render still succeeds and the notice names `OPENSYSML_DOT`. A `// layout: neato -n` block (the DOT writer emits one for a positioned diagram) must run neato: `dot -Kneato` failing with "no layout engine support" means the GTS library is missing.
- Diagram forms: render the worked example with `-diagram-form dot`, `-diagram-form plantuml` and `-diagram-form d2` too; the PDF must contain no "did not draw" notice (pypdf `extract_text`) and the page's XObjects grow by one per diagram. With `OPENSYSML_DOT=/nonexistent` the render still succeeds and the notice names `OPENSYSML_DOT`; the same with `OPENSYSML_D2`. A `// layout: neato -n` block (the DOT writer emits one for a positioned diagram) must run neato: `dot -Kneato` failing with "no layout engine support" means the GTS library is missing.

## Rendering
- Worked example: `bin/sysml docs/manual/examples/observatory.sysml -render-document Observatory::MassReport -doc-form pdf -pdf-title-page -pdf-toc -pdf-number-sections -o /tmp/observatory.pdf`. It exercises emphasis, code span, external Link, Ref (`#breakdown`), a standalone `<a id="breakdown"></a>` anchor line, grouped table (`**zone: ...**` headings), numbered list and two mermaid diagrams.
Expand All @@ -28,7 +29,8 @@ description: How to end-to-end test the sysml PDF document backend (internal/doc
- Formulas: `internal/doc/docrender/testdata/math_report.sysml` → `Optics::OpticsReport` has an inline `$m \propto D^{2.5}_{\text{eff}}$` beside an escaped prose `\$`, a captioned `Formula` that is a `Ref` target, a multi-line display block, a `\$` inside math, and query-driven math list items. Render under both engines and check with pypdf: the page's `/Font` `/BaseFont`s must include `KaTeX_Main`, `KaTeX_Math-Italic` (and `KaTeX_Size3` for the tall parenthesis); extracted text must contain `∝`, `π`, `θ`, `λ` and none of `$$`, `\propto`, `\frac`, `_{`, `^{`, `katex`, `<span`. Text from absolutely-positioned KaTeX spans extracts out of reading order (superscripts on their own lines) — that is pypdf, not a bug. For a visual check, `pip install pypdfium2` into the WeasyPrint venv and `PdfDocument(path)[0].render(scale=1.3).to_pil().save(png)`.
- KaTeX is run with `--format html` (no MathML), deliberately: the MathML branch carries the LaTeX source as `<annotation>` text, which paged-media engines would set literally. A malformed formula (`\frac{a}`) fails the run with `KaTeX parse error: ...` from the CLI's stderr, not a PDF with a gap.
- `docpdf.Render`'s second argument is the engine NAME (`"weasyprint"`, `"pandoc"`, `"prince"`), not a binary path; binaries come from the OPENSYSML_* env vars.
- Diagrams: Mermaid is drawn once through `mmdc` and the image replaces the block (`HTMLOptions.DiagramImages` / the Lua filter); a table-kind diagram stays a table. DOT and PlantUML are not drawn — the PDF carries an emphasized notice and the source, under both engines.
- Diagrams: each is drawn once through its tool and the image replaces the block (`HTMLOptions.DiagramImages` / the Lua filter); a table-kind diagram stays a table. Mermaid's `mmdc` is required; Graphviz, the PlantUML jar and `d2` are optional — absent, the PDF carries an emphasized notice and the source, under both engines.
- D2 needs pixels, not text: `d2` writes the `<mask>` that cuts a connection's label out of its line after the connections, and WeasyPrint draws such a mask as a white rectangle over the whole figure while `pdftotext` still extracts every label. `docpdf/d2.go` `defineMasks` moves the masks under `<defs>`; regress it with a labelled connection (`telescope_report.sysml`'s `link`), rasterize the page (`pdftoppm -r 100 -png`) and look for the nested containers, the state glyphs and the gap in the line around the label, under both engines.
- Linked sets: `-render-documents ... -doc-form pdf` is refused with a typed error; render each document with `-render-document`. A `Ref` into another document then links to that document's page file name, which no PDF beside it carries.

## Verifying the PDF is real, not literal
Expand Down
72 changes: 72 additions & 0 deletions .agents/skills/testing-docs-site/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
name: testing-docs-site
description: How to build and browser-test the MkDocs documentation site locally — genuine Material instant navigation, Back/forward restoration, palette toggle and responsive landing-page behavior — without changing repository configuration.
---

# Testing the documentation site in a browser

Use a virtualenv with `pip install -r docs-requirements.txt`. Do not change repository configuration
to serve a local preview: build to a directory outside the checkout and serve that with
`python -m http.server`.

For instant-navigation testing, the build's `site_url` must match the local origin, port included.
Material's sitemap resolver can rewrite protocol and hostname without rewriting the port, so a
production build served on a nonstandard local port can silently fall back to full navigation.

From the repository root, build through the MkDocs API with runtime overrides:

```python
from mkdocs.config import load_config
from mkdocs.commands.build import build
config = load_config(
"mkdocs.yml",
site_url="http://localhost:8766/",
site_dir="<outside-checkout>/site-browser-test",
strict=True,
)
build(config)
```

Serve that directory on the matching port. Verify instant navigation rather than assuming it: read
`performance.timeOrigin`, click an internal link through the UI, and read it again; it must not
change. Test browser Back too, and check visually that page-specific UI is removed and restored
without duplicates.

Use the header palette toggle for light and dark modes, and DevTools responsive mode for narrow
widths. Verify pixels, not just element presence.

If browser inspection tooling appears to alter `target="_blank"` attributes, repeat the external-link
tests from a fresh page without annotated DOM inspection before the click. Read-only CDP inspection
plus native mouse input distinguishes tooling interference from the built page's behavior.

When the change under test is in `overrides/` — a stylesheet or template — do not
assume `mkdocs serve` reloaded it. The live reload may keep serving the old asset
through a browser hard refresh. Restart the server, wait for the build and serving
messages, reload, and confirm the loaded file carries the intended rule before
diagnosing a CSS fix as ineffective. Do not change repository configuration solely
to make a preview work.

### The in-browser engines

The landing diagram and the CLI page's REPL load generated assets: `docs/assets/sysml-engine.wasm.gz`,
`sysml-repl.wasm.gz`, `wasm_exec.js` and `repl-examples/`. They are gitignored; if any is missing,
run `make docs-engine-assets` before building the site.

The REPL walkthroughs' inputs and expected output strings live in `docs/assets/repl-walkthroughs.json`.
Run each step through its button and check only newly appended terminal output. Wait for the input
queue to drain and `is-busy` to clear before sending the next command.

To check the SMT refusal, declare a valid constraint first, for example
`constraint def Positive { in x : ScalarValues::Integer; x > 0 }`, then run `%check Positive`. Expect
the message that a WebAssembly build cannot start external processes.

Completion considers every matching name, standard library included. `%inst` has several candidates;
`%instanti` has one. For a shared-prefix test, pick names that no library name shares.

At mobile width, navigate through the header menu. `label[for="__drawer"]` also matches a hidden
overlay, so scope automation to `header label[for="__drawer"]`. Compare the document's width with the
viewport's; a code textarea's own horizontal scrolling is not page overflow.

### Devin Secrets Needed

None for the public local site and public outbound link checks.
55 changes: 55 additions & 0 deletions .agents/skills/testing-engine-browser/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
name: testing-engine-browser
description: How to build sysml-engine for js/wasm and exercise it in a real browser through an external static harness — JSON-RPC envelopes, typed values, error recovery after bad calls, and startup/transfer measurements.
---

# Testing `sysml-engine` in a browser

## Setup

- Read `docs/reference/wasm.md`, `cmd/sysml-engine/serve_js.go`, `internal/frontend/engine/json.go`
and `tests/wasm/testdata/` first.
- Keep the harness page outside the checkout. The targeted build can live outside it too:
`make build-wasm-js WASM_COMMANDS=sysml-engine WASM_DIR=<harness-dir>/build`.
- Serve the page with `python3 -m http.server 8765 --bind 127.0.0.1 --directory <harness-dir>`.
- Load the matching `build/js/wasm_exec.js`. Instantiate the module with `new Go().importObject` and
`WebAssembly.instantiateStreaming`; check the server sends `application/wasm`, and fall back to
`arrayBuffer` if it does not.
- Run with no extra argv. Do not await `go.run(instance)` before checking `globalThis.sysmlEngine`:
the engine stays alive on purpose. Record promise rejection and unexpected resolution as runtime
events.

## Browser controls and assertions

- Give the page editable source textareas for `model.sysml` and `engine.sysml`, and
Parse/Evaluate/ExecuteAction/ExecuteState/Instantiate controls.
- Use the lowerCamelCase fields from `json.go`. ParseSources takes `{documents:[{name,content}]}`.
Reuse the `modelHash` it returns; never hardcode one.
- `sysmlEngine.call(method, JSON.stringify(params))` synchronously returns a JSON-RPC envelope as a
string, not the bare protojson result.
- Fixture expectations: total realValue 6; speed quantity 5 metres/second; `Color::red` enum; Double
input `x:{intValue:"6"}` returns y `"12"`; Switch visits `"on"` and instantiates a graph.
- SysML sequences are written `(1, 2, 3)`, not `[1,2,3]`. A parity-only test can treat matching
error payloads as equal, so assert actual values in browser checks.
- Probe unknown modelHash (5), unsupported method (12), `schedule:"explore"` (12), malformed params
JSON (3) and invalid source (diagnostics with spans). After every error, reparse edited source and
confirm a new hash and the updated value.
- To enter fixture text with literal tabs into a textarea, paste it through the clipboard; typed tab
keystrokes move focus to the buttons. Plain spaces are safe to type.

## Evidence

- Open DevTools Network before the first navigation; record transfer size and response headers.
- Take `performance.now()` when the global first appears: that is navigation-to-ready time. Record
the local HTTP compression and cache configuration; an uncompressed localhost transfer is not
comparable with a production gzip budget.
- Keep raw request/response envelopes and per-call durations, but drive every call through the
visible UI.
- Capture console errors, unhandled rejections, Go panic/exit events, and that calls keep working
after the error probes.
- Record the build commit and the displayed version. A later checkout does not change a wasm file
that is already being served.

### Devin Secrets Needed

None. The page runs the engine entirely inside the browser.
46 changes: 46 additions & 0 deletions .agents/skills/testing-node-browser-client/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: testing-node-browser-client
description: How to test the @openmbee/opensysml browser entry point (client/node/src/browser) against a real sysml-grpc service — CORS-allowed origins, observing requests without altering them, decoding captured bodies, protobuf versus JSON encodings, and differential comparison with the Python client.
---

# Testing the Node client's browser entry point

## Setup

- Read the browser section of `client/node/README.md` and `docs/reference/node-api.md` (In a
browser), and `client/node/test/browser.test.ts`, which starts the service the way a page needs it.
- Build the service (`make build-grpc`) and start it with the page's exact origin allowed:
`bin/sysml-grpc -port 0 -health-port 0 -report-address -cors-allowed-origins <origin>`. The first
stdout line is the address. Never allow `*`; an HTTPS page also needs `-tls-cert`/`-tls-key`.
- Bundle a harness page importing `@openmbee/opensysml/browser` outside the checkout and serve it from
the allowed origin. `connect({ address })` is the only path: a browser cannot start a service.

## Shared-core browser validation

- Wrap the browser's `fetch` only to observe and forward the original request and response
unchanged. Counting observed service calls distinguishes a client-side refusal from a similarly
typed backend error; assert zero requests for invalid inputs.
- Decode captured unary request bodies with the generated schema and protobuf `fromBinary`/`fromJson`.
That verifies `strictConformance` and collection union kinds while the real request still runs.
Never substitute responses.
- Verify collection conversion with a real Echo calculation, not only `toValue`: check both the
outgoing sequence/set union and the returned values.
- Read the public result types before writing assertions. Verification methods can return a wrapper
with `.verdict.standing`, while `CalcResult` has `.standing`.
- Run every check under both protobuf and JSON (`connect({ encoding: "json" })`). Record the concrete
error class, code, `instanceof` result and elapsed time rather than assuming browser `fetch` maps
failures the way Node gRPC does; an unreachable service or CORS refusal arrives as `UNKNOWN`.

## Differential options and baseline preservation

- When reusing saved Python output, verify every baseline file is unchanged.
- Compare option semantics, not just spelling: Python `strict` raises on parsing diagnostics, while
Node's `strict` is a deprecated alias of `strictConformance`. That intentional difference can change
hashes for otherwise identical source. Report it, or agree on equivalent inputs before regenerating
baselines; do not quietly remove or normalize the hash field.
- Keep approved differences separate from newly acknowledged intentional exceptions. A prior finding
is not automatically an approved difference.

### Devin Secrets Needed

None for a local unauthenticated service and an external harness.
8 changes: 4 additions & 4 deletions .agents/skills/testing-pilot-corpora-gate/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Four pinned OMG model roots, **one mechanism, two policies** (`tests/corpus/corp

| root | dir | policy | expectation file |
|---|---|---|---|
| training | `examples/sysml-v2-training` | **assertion** — errors only, `.sysml` only, must be 100% clean, no per-file counts allowed | `testdata/training_examples_expected.txt` |
| training | `examples/sysml-v2-training` | **assertion** — zero semantic errors, `.sysml` only; warnings are outside the gate, no per-file counts allowed | `testdata/training_examples_expected.txt` |
| sysml-examples | `examples/pilot-corpora/sysml-examples` | per-file **ratchet**, every severity | `testdata/pilot_corpora_expected.txt` |
| sysml-validation | `examples/pilot-corpora/sysml-validation` | ratchet | same |
| kerml-examples | `examples/pilot-corpora/kerml-examples` | ratchet | same |
Expand All @@ -33,7 +33,7 @@ examples/sysml-v2-training /tmp/pristine/`) — every absence/mutation test move
Expect `--- PASS` for `TestTrainingExamplesSemanticErrors`, `TestPilotCorporaDiagnostics` and
`TestCorpusGatesCacheStateIndependent` (subtests `training` and `pilot-corpora` — the older
`TestTrainingExamplesCacheStateIndependent` / `TestPilotCorporaCacheStateIndependent` no longer
exist), plus `100/100 training files clean` and three `N/M pilot corpus files clean` lines
exist), plus the error-only `100/100 training files clean` line and three `N/M pilot corpus files clean` lines
(observed 2026-08: sysml-examples 76/98, sysml-validation 52/56, kerml-examples 51/58 — these move
whenever diagnostics change, so read the current numbers from `docs/project/pilot-corpora.md`
rather than hard-coding them).
Expand Down Expand Up @@ -183,8 +183,8 @@ gate's own helpers are package-private but reusable (`pilotCorporaGate.files(t)`

`actionlint`, `shellcheck`, `python3 scripts/check-doc-links.py`, `gofmt`, `go vet`,
`go run -C tools ./cmd/pilot-diff` (validators pre-downloaded; ~4min, prints e.g.
the headline the committed baseline holds — `380 file(s), 345 fully agreeing; 38 agreed
diagnostic(s), 41 only ours, 1614 only the pilot's` at the `2026-08` pin, so read it from
the headline the committed baseline holds — `391 file(s), 353 fully agreeing; 45 agreed
diagnostic(s), 282 only ours, 92 only the pilot's` at the `2026-08` pin, so read it from
`docs/project/pilot-differential-baseline.json` rather than from this line)
and `make lint` (staticcheck+gosec, ~2min) all work. There is **no** `yamllint` and **no**
`circleci` CLI, so `.circleci/config.yml` can only be parsed as YAML, not schema-validated — say so
Expand Down
Loading
Loading