Repository navigation
S03: automatic run provenance for Tas, OpenStudio and Both - #242
Merged
Merged
Conversation
Every Tas-only, OpenStudio-only and Both run manifest now carries a "provenance" block (sam-ui.run-provenance/1) collected from what ran: the build's own stamp (InformationalVersion source revision, never SAM_COMMIT or a Git HEAD) and the SHA-256 of the SAM assemblies used; the Tas COM server (TBD.Document) version and hash; the OpenStudio SDK versions, the CLI that ran (hash, version) and the EnergyPlus version from eplusout.err; each Both producer's binary and the provenance it reported in its B1a document; the weather (embedded or explicit, hash) and design-day source; and the settings actually handed to the engine. An item that cannot be established is "unknown" with its reason. Energy Simulation / Run Simulation > Tas now writes <project>.tas-run.json beside the TBD for every outcome (Part O routes unchanged). Collecting provenance never changes a run's status. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sons - The Tas weather contentSha256 now leaves out the WeatherData's own Guid (new on every read), so it is a true content hash; embedded vs explicit is still decided by content. - The TBD.Document COM server is looked up in both registry views. - A collector that fails part-way leaves its item unknown without reasons filed for its sub-items; the tests now also check that every reason names an item that is unknown. - Tests that set SAM_COMMIT run in a non-parallel collection. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
michaldengusiak
added a commit
that referenced
this pull request
Oct 20, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
michaldengusiak
added a commit
that referenced
this pull request
Oct 20, 2026
Resolve OpenStudioSimulationTests.RealRun_ by keeping both the S04 view-state and the S03 provenance assertions. The code tree equals the local S03+S04 integration tree 8aafcb06. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
michaldengusiak
added a commit
that referenced
this pull request
Oct 20, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Roadmap S03 - Run settings and version traceability (SAM
documentation/SIMULATION_ROADMAP_Q4_2026.md, Phase A). SAM_UI only; no SAM_Validation schema change. Record:documentation/S03-RunProvenance-PR.md.Base
sow/2026-Q44d7f5bd8. Validated content SHA87126efc(after the independent-review fixes; first content29926a2f).4efe93f4and2724f0c5are record/evidence only.What changes
Classes/Provenance/SimulationRunProvenance.cs), written into every Tas, OpenStudio and Both manifest as"provenance"(sam-ui.run-provenance/1):+metadata, set by SAM_Deploy installers), neverSAM_COMMITor a Git HEAD; the SHA-256 of every SAM assembly the run used.TBD.Documentserver (TAS version, SHA-256).eplusout.err."unknown"with its reason underprovenance.unknown; no item is left blank.<project>.tas-run.jsonbeside the TBD on every outcome: Succeeded, Failed, Cancelled, Refused and a thrown exception. The Part O routes are unchanged.provenanceis additive).Validation (local)
Full
SAM.Analytical.UI.WPF.Tests: 2912/2912 PASS on87126efc(2860 + 52 new:SimulationRunProvenanceTests46,TasRunManifestTests6). Earlier, 2910/2910 on29926a2f. Focused set, including a real OpenStudio run: 107/107.Mutation checks, all caught:
SAM_COMMITused as the revisionReal engines on the licensed laptop, through the SAM_UI code paths (
documentation/evidence/s03-20261019/): Tas explicit and embedded; OpenStudio explicit and embedded; Both with and withoutSAM_COMMIT.Real-ribbon rehearsal on a local S03+S04 integration build (draft S05 preflight - rehearsal only, NOT acceptance (docs/evidence) #244): Tas success, Tas refusal and Both. Each
tas-run.json/ manifest matched what the engines did.Independent review
A separate regression review of the combined S03+S04 diff confirmed no change to S03 status, exceptions or outputs. It led to three fixes in
87126efc:The tests that set
SAM_COMMITnow run in a non-parallel collection.Findings / owner decisions
SAM_COMMITwhen the producers are developer builds. Without it, both producers refuse their own B1a ($.provenance.samCommit) and the run fails; the evidence is included. This is existing producer behaviour, now recorded. SAM_UI cannot supply a verified value. It resolves with stamped producers (S06), or with a separate producer/SAM_Validation change. Decide: accept until S06?tas-run.json.Merge order with S04 (#243)
The two PRs are independent. Both append assertions to
OpenStudioSimulationTests.RealRun_…, so whichever merges second has one textual conflict: keep both blocks. A local integration merge resolved it that way and passed the full suite: 2926/2926.Final PR head
2724f0c5: hosted Build (39328188434) PASS; SPDX (39328188446) PASS.🤖 Generated with Claude Code