Repository navigation
Design consistency: one transfer book, one target-case set, one mode table, DRO period, prose and units - #12
Merged
Merged
Conversation
…every consumer TethysMission::transferBook defines the arc Δv (2 800/150/160/40 m/s), the required return Δv (200 m/s), the 10 % missed-thrust allowance and the 1 400 day thrusting allowance once, with the rocket-equation derivation in its doc. The budgets, the low-thrust transfer analyses, the Monte Carlo dispersions, the specific-impulse trade, the tooling Monte Carlo and the architecture variants read it by reference instead of carrying their own 2 000/350 m/s, 300 kg reserve, 1 930/1 134 day and 1 180 kg values; the analyses start from the mass budget's launch mass and the propellant budget's usable xenon and aphelion thrust, so both books agree on which target cases return. Co-Authored-By: jason.han <hanhuijun@gmail.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
…n envelope at capture commit TethysTarget::targetCases is the single table of bodies (design cases small 213 t / nominal 362 t / large 506 t; knowledge bounds lightest 40 t, largest 987 t, densest 576 t; fastSpin and tumbling), each from diameter, density and spin through SphereMass; CaptureTargetCase binds them as variants. The budgets, the capture-system envelope cases, the mode machine's and the flight sequence's estimates, the transfer analyses, the Monte Carlo, the trades, the dynamics, the variants, the safety envelope, the stakeholder assumptions and TS-001 all read the table instead of carrying 217/507 t, 181/1 010 t, 105/1 335 t, 215/644 t or 5.0/7.7 m of their own. TethysBudgets::propellantBudget pins the return envelope by inverting the rocket equation (returnableBodyMass 542 t with the 15 % policy margin, 651.9 t with none) and captureCommitEnvelope takes the smaller of that and the bag's limit; the mode machine, the sequence and the proximity-operations commit decision refuse a body above it, so the densest body is refused and the large design case is accepted. The analyses and variants hold back the same system margin, so both books now agree on which bodies return. Finding F-F07 (evaluator step-limit on a chained PropellantFor inside a heavy-load configuration) is recorded with its probe. Co-Authored-By: jason.han <hanhuijun@gmail.com>
TethysTugStructure::TugMode is the single mode enumeration (the mode machine's fifteen literals plus earlyOperations) with the named sets thrustingModes, coastingModes, proximityModes and safeModes that every unit's operating and standby modes are built from. TethysModes drops its own enum and TethysOperations its CommandedMode; SetMode and CommandedTug carry TugMode. SubsystemConfiguration.busLoad defaults to TethysBudgets::TugPowerInMode(mode), so the mode table's sixteen rows and the power budget read the same per-unit rollup instead of fifteen unrelated literals. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…at 13.9155 d droRevolution, DroStabilityAnalysis::revolution and the tooling droRevolutionRk4 stopped at 3.20 time units with a 0.01 step while the orbit's period is 3.20467695, so the recorded closure was the arc still to fly, not a closure error. They now take 320 steps of one 320th of the period and stop at the period; the model's own RungeKutta4 stays in place. TethysEnvironment::destinationDro.period is 13.9155 d, the propagated value, with its derivation in the doc. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…m the budgets thermalBudget.hotCaseSolarFactor is the perihelion-over-aphelion solar flux ratio (about 1.13) in place of the bare 1.22; hydrazineBudget reads propellantBudget.tugMassAtTarget in place of launch mass less 700 kg; the flight sequence's xenon load and reserve come from the propellant budget. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…er book Mission duration 2 200 days (TR-002, mission doc), TS-003 reads the transfer book's thrust allowance, the heliocentric flux range as declared, the return-cruise xenon trend, the TH-001 body mass, the transfer-book case totals, the small-body domain list and the WP-F/WP-G coverage notes now carry the budget's numbers. Co-Authored-By: jason.han <hanhuijun@gmail.com>
… and DRO analyses Δv, thrust, mass flow, c and g₀ and the analysis-tier values of model/70–74 carry their ISQ quantity types (SpeedValue, ForceValue, MassFlowRateValue, AccelerationValue, PowerValue, DurationValue, LengthValue, MassValue, AngularVelocityValue, AngularMomentumValue, TorqueValue, MomentOfInertiaValue, MassDensityValue) in place of suffix-named Reals; the requirement defs the analyses check against take typed parameters, so the Monte Carlo objectives now bind the parameters the defs declare instead of adding new ones. The eight swept or sampled parameters stay Real with a doc comment: the sweep and sample runners write bare numbers to the parameter they draw, which a quantity-typed feature rightly refuses (new finding F-F08 with its probe and pinned run). Tool variables keep the ToolExecution contract; dB stays dimensionless by design. Every value evaluates to the same number as before. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…hanges Recorded with the pinned OpenSysML source build (0a5fa2d94). Every transfer, capture, Monte Carlo, trade and dynamics run now reads the single transfer book and target-case set; the DRO run closes over the full period; the dense-target mode and sequence runs replace the large-target mode run; the two F-F08 probe runs drop the wall-time column like the other sweeps. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…did not support SE-275 (as-flown values contradict the budgets), SE-156/157 (must rows awaiting the matrix owner's ruling) and the SE-105/128/129 range envelope are marked partial or open with the gap named; SE-152, SE-192, SE-194, SE-195, SE-130 and SE-081 cite the re-recorded runs; SE-123/124/125/134/145 state what the F-B01-fixed build shows (energy, thermal and margin policy close, power while thrusting does not); SE-263/264 and LANG-095/170/532 stay open with the reason. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…cle in pilot-mission The standalone pilot wrapper refuses .kerml before parsing (F-G01), so pilot-mission now also runs the batch validator over the mission-tier .kerml files against the standard library alone; the .sysml files still go through the standalone wrapper unchanged. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…sML clauses F-D03 (pilot right: checkConnectorTypeFeaturing with deriveUsageMayTimeVary), F-F06 (OpenSysML right: SysML 7.6.3 default multiplicity applies to attribute, item and port usages, not reference usages), F-F04 (under-specified: isDistinguishableFrom lets a Function and an AttributeUsage share a name), F-B03 (pilot right in substance: the two library redefinitions of Occurrence::this collide), F-G01 (closed: tooling, pilot-mission now gates the mission-tier KerML) and F-G03 (OpenSysML right: the pilot's errors are EMF reference-pairing failures, not KerML constraints). Model notes only; the F-xxx ids and probes are unchanged. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…s not depend on how the binary was built Co-Authored-By: jason.han <hanhuijun@gmail.com>
HuiJun
marked this pull request as ready for review
October 23, 2026 23:03
…largest case's own rotation period TS-019 despinCapacity, TS-014 proximityContactEnvironment and ContactSpeedTest read the largest knowledge-bound case's mass and diameter but divided by the design large case's 252 s period; they now use targetCases.largest.rotationPeriod (100 s). Momentum 222 238 -> 560 040 N m s, hydrazine 34.3 -> 86.5 kg against the 100 kg quarter load, surface speed 0.118 -> 0.298 m/s against 0.35 m/s: every verdict still holds, so no run moves. Co-Authored-By: jason.han <hanhuijun@gmail.com>
xenonTrend carried its own inventory, rate and days (5 235 kg, 5.2 kg/day, 1 000 days) and projected 35 kg against the 300 kg floor once the inventory followed the transfer book. It now reads TethysBudgets::propellantBudget: aboard = usable less the outbound and rendezvous arcs, rate = the SEP mass flow at aphelion per day, days = the thrusting days the nominal return and insertion arcs need with the missed-thrust allowance (returnArcsXenon). Margin -265 -> +2 058 kg; resourceMarginPositive by xenonTrend flips to holds in the four satisfy runs; house-rules element count +3; object ids shift in the satisfy runs. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…in the xenon trend xenonTrend.current subtracted the nominal outbound and rendezvous xenon while returnArcsXenon carried the allowance, so the projection added the outbound allowance back (about 123 kg). Both terms now use the budget's case; projected equals propellantBudget.usable - xenonNominal (2 235 kg), margin 1 935 kg. No recorded verdict or run moves. Co-Authored-By: jason.han <hanhuijun@gmail.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.
Makes the integrated phase-3 model self-consistent as a design, following the SE review of
integration/phase-3: every design value that the review found defined twice (or three times) is now defined once and read by reference, the two maintainer decisions the review leaves open are one-place edits, and the pinned runs are re-recorded. Model, docs, Makefile andscripts/runs.shonly; no OpenSysML change. Base:integration/phase-3(0b6b353). One commit per item, in the review's order.Tier split: unchanged. The mission tier is still every
model/*.sysmlthat names no OpenSysML extension package (make tierslists the same files as before), the tool tier is unchanged, andmodel/81-physics.kermlis the only KerML file. The mission tier passes the standalone pilot wrapper with the standard library alone; the onlypilot-missionchange (item 9) adds a second oracle for the.kermlfile, it does not move any file between tiers.Per item
1. One Δv / thrust-time book (
c106d77). Review: "the budgets (2 800/150/160/40 m/s, 1 400 d) and the analyses/Monte Carlo/variants/argent doc (2 000 m/s, 350 m/s required, 1 930/1 134/1 100 d) disagree, and the analysis book declares the 507 t case non-returnable while the budget closes it with 21 % margin."TethysBudgets2 800 / 150 / 160 / 40 m/s and 1 400 d;TethysAnalyses::LowThrustTransferAnalysisdefaults 2 000 m/s outbound, 350 m/s required return, 1 930 d allowance;TethysMonteCarlo::ReturnDispersionits own copy;TethysVariantsand theargentdoc a third.TethysMission::TransferBook/transferBook(model/02-mission.sysml) holdsdeltaVOutbound = 2 800 m/s,deltaVRendezvous = 150,deltaVReturn = 160,deltaVInsertion = 40,deltaVRequiredReturn = deltaVReturn + deltaVInsertion = 200 m/s,missedThrustMargin = 0.10,thrustingTimeAllowed = 1 400 d, with the rocket-equation derivation in its doc comment (Isp 2 900 s, g₀ 9.806 65 m/s², exhaust speed 28 439 m/s; 6 600 kg loaded, 6 468 kg usable asPropellantBudgetdefines).TethysBudgets,TethysAnalyses,TethysMonteCarlo,TethysVariantsand theargentdoc read it by reference.2. One target-case set and the return envelope (
0d06649). Review: "507 t (budgets) vs 1 010 t (capture envelope) vs 7.7 m (safety) vs the integratedCaptureTargetCase."TethysBudgets::TargetCase217 / 362 / 507 t at 5.7 / 6.8 / 7.6 m,TethysTarget::CaptureTargetCase181 / 362 / 1 010 t at 5.4 / 6.8 / 8.2 m,TethysSafety::envelopeCases5.0 / 6.8 / 7.7 m.TethysTarget::targetCases(model/07-target.sysml) —small5.7 m / 2 200 kg·m⁻³ / 213.3 t / 252 s,nominal6.8 m / 362.2 t,large7.6 m / 505.7 t, plus the envelope-edge caseslightest(4.0 m, 1 200 kg·m⁻³, 40.2 t, 600 s),largest(9.5 m, 987.6 t, 100 s),densest(6.8 m, 3 500 kg·m⁻³, 576.2 t),fastSpin(120 s) andtumbling; mass is derived from diameter and density. Budgets, capture envelope, safety and the capture sequence read it;TethysVariantsreads it as plain shared parts (F-F02, variant-object evaluation).TethysBudgets:returnableBodyMass = 542 485.8 kgat the 15 % margin,returnableBodyMassNoMargin = 651 928.2 kg(review: "≈ 540 t at 15 % margin / ≈ 650 t at zero margin" — confirmed).captureCommitEnvelope.maximumBodyMassis now the lesser ofpropellantBudget.returnableBodyMassand the capture mechanism'smaximumBodyMass(1 000 t, which the L2 requirements still size againstlargest), so the commit gates in60-modesand61-sequenceturn away any body the propellant cannot return —largest(987.6 t) anddensest(576.2 t) are retreat cases at commit, the three standard cases pass.3. One mode vocabulary and one power-by-mode table (
ed75fcb). Review: "twoenum def TugMode(9 literals in model/31, 15 in model/60) plusCommandedMode;SubsystemConfiguration.busLoadis independent of the unit rollup the budgets use."TethysTugStructure::TugMode(9),TethysModes::TugMode(15),TethysOperations::CommandedMode;busLoadhand-entered per configuration.TethysTugStructure::TugModewith 16 literals (launch … abortHold), the budget load cases expressed as mode groups (thrustingModes,coastingModes,proximityModes,safeModes);TethysModes::SubsystemConfiguration.busLoaddefaults toTugPowerInMode(mode), the same unit rollupTethysBudgets::PowerBudgetreads;CommandedModeis gone.4. DRO stop time and period (
dec3bdd). Review: "droRevolutionstops at 3.20 TU while the period is 3.2047 TU, so the 934 km 'closure' is 28 minutes of arc."stopTime = 3.20TU,destinationDro.period = 13.9 d, closure 934 km.stopTime = dro70000.periodTimeUnits,timeStep = periodTimeUnits / 320,destinationDro.period = 13.9155 d; the pinned run (runs/dynamics-standard.txt) showsclosure = 0.0 km,periodShown = 1 202 363.57 s(= 13.9155 d). The model's ownRungeKutta4stays (F-F01 depends on it).5. Magic numbers (
ecfffb6). Review: "hotCaseHeat × 1.22,tugMassAtTarget − 700 kg(the budget's own outbound xenon is 1 233 kg)."ThermalBudget.hotCaseHeat = TugHeatInMode(TugMode::thrust) * hotCaseSolarFactor, wherehotCaseSolarFactor = SolarFlux(perihelionAu) / SolarFlux(aphelionAu)≈ 1.13 is named and documented (the string processes the array output, so its thrust-mode dissipation scales with the flux);PropellantBudget.tugMassAtTarget = launchMass − outboundAlone − rendezvousAlone − wren.wetMass(the two arcs flown alone, 1 233 kg of xenon, plus the released inspector) and the hydrazine budget reads it, instead of− 700 kg.6. Stale prose (
381dea3). Thetethysdoc "1 300 days", theargentdoc "~650 kg outbound, 5 100 kg, 370 t, 1 100 d at 1.8 N", theheliocentricRangeflux range (now 1 200–1 353 W/m² for 150.0–159.3 × 10⁶ km), theearthRangedoc, anddocs/small-body-domain-list.mdO3 / rows 152–153 (9 800 kg xenon, 14.3 t tug, 1 300 d → the budget's 6 600 kg load / 6 468 kg usable, 12 624 kg launch mass, 1 400 d allowance of the 2 200 d mission; its derived rows now read 1 450 d to process the load at 1.69 N and 264 d for the 1 233 kg of the outbound and rendezvous arcs) all read from the single book.7. Units (
fea0c32). Δv, thrust, mass flow,speedOfLight : SpeedValue,standardGravity : AccelerationValue, and the analysis-tier suffix-named reals carry ISQ quantity types (SpeedValue,ForceValue,MassFlowRateValue,DurationValue,PowerValue,AccelerationValue,MassValue,LengthValue);dBin52-link-budgetsstays dimensionless by design. Kept asReal, each with a doc comment naming the finding: the Real-valued orbital helpers (sqrtand**are defined onRealonly in the Kernel Function Library) and the eight CLI-swept / sampled parameters — new finding F-F08 with probemodel/probes/F-F08-sweep-quantity-range.sysml:-sweep "speed=1.0..3.0:1.0"on aSpeedValueparameter is refused (cannot write 1.0 (a Real) to a feature typed by SpeedValue) while the same sweep over aRealruns. Mission tier still passes the standalone pilot.8. Coverage honesty (
004efc8). Review §3.2: "rows marked satisfied without evidence (WP-E SE-152 'feeds SE-123', WP-I SE-275 as-flown values that contradict the budgets, WP-F SE-192/194/195, …)".busLoadbound toTugPowerInMode, the rollup SE-123 reads); SE-275 → partial (the importedxenonUsedOutbound = 3 290 kg,xenonUsedReturn = 2 750 kg,earthRange = 10.6 × 10⁶ kmcontradict the budget's 1 173 kg outbound, 4 233 kg nominal and the cislunar geometry); SE-192/194/195 cite the re-recorded runs (transfer times above;returnOverTargetCases200 runs, mean 331.6 m/s,outOfSpec = 0; DRO closure 0.0 km); SE-081 reads 5.7 / 6.8 / 7.6 m with margins 0.43 / 0.32 / 0.24; SE-123/124/125/134/145 state what the F-B01-fixed build shows (energy 3 588 Wh of 8 640 Wh, thermal 5 737 W of 7 480 W and mass close; power while thrusting does not, 11.9 % against the 15 % PDR row); SE-128/129 and SE-105 say the link ranges are asserted, not trajectory-derived; SE-156/157 → open pending the matrix owner. SE-263/264, LANG-095/170/532 stay open with the reason stated (an eclipse duration nobody has derived; conscious non-use of the notation).9.
pilot-missiongates the KerML file (7b5a8da, F-G01). The standalone wrapper refuses.kermlinSysMLValidator.java:118, not in the pilot;pilot-missionnow also runsvalidate-sysml-batch --rootover the mission-tier.kermlfiles with the standard library alone..sysmlsemantics unchanged. Negative control: a copy of81-physics.kermlwithfeature bogus : NoSuchType;fails the new step withCouldn't resolve reference to Type 'NoSuchType'(exit 1).10. Re-adjudicated finding rows (
063f546), status column only, ids and probes kept:checkConnectorTypeFeaturing("Each relatedFeature of a Connector must have each featuringType of the Connector as a direct or indirect featuringType") with SysML 8.3deriveUsageMayTimeVary("If isComposite = true, it does not specialize Actions::Action");perform actionis the correct form.out x : Realis a reference usage.isDistinguishableFrom("… or neither of the metaclasses of the memberElement … conform to the other"); keepRealFunctions::min.validateNamespaceDistinguishabilityviolated by the library's two redefinitions ofOccurrence::this; model note.RelationshipBody/Dependencyproduce the lines); probe kept.Pending maintainer decisions — one attribute each
PowerBudget.thrustingClosesfails at the fixed build: demand 35 518 W vs 39 757 W array at aphelion EOL, margin 11.9 % < 15 %). Each option is one edit: array size →TethysTugStructure::SolarArrayWing::ratedPowerAtOneAu(24 kW per wing,model/31-tug-structure.sysml); string-draw cap →TethysTugStructure::HallThruster::operatingPower(11 kW;poweredShare0.75 of 3 beside it); margin policy →TethysMarginPolicy::activePolicy(= pdrPolicy,model/30-margin-policy.sysml). Every budget, the mode table and the Monte Carlo read these throughTugPowerInMode/arrayAtAphelionEol, so nothing else moves.TethysEnvironment::destinationDro.radiusAboutMoon(70 000 km,model/01-environment.sysml;destinationDro.periodis the propagated valueTethysDynamics::droStabilitychecks, so a new radius makes that gate name the new period); array class → the sameSolarArrayWing::ratedPowerAtOneAu.Run diff by category (
runs/,0b6b353..HEAD, recorded with the pinned0a5fa2d94build)returnOverTargetCasesoutOfSpec51 → 0 (200 runs, mean 331.6 m/s); capture, missed-thrust and insertion re-sampled over the shared cases.wpb-*(6), trades (1), variants (1), tooling (5), requirements-satisfy / as-flown / documents (8): the typed values print with their units and the shared book's numbers;tugMassAtTarget,hotCaseHeatand the return envelope appear.modes-tug-large-target→modes-tug-dense-target(rename, the 576 tdensestcase is the envelope-edge mode run), newsequence-dense-target; the 16-literal vocabulary andbusLoadrollup change every mode table.probe-F-F07,probe-F-F08,probe-F-F08-plain(the F-F08 runs go throughrunt, which strips the wall-time column like every other sweep).tool-version.txt: the pinned source build printssysml dev / Commit: 0a5fa2d9405e; house-rules, notation, risk, render: one-line value changes.Gates (final head)
All six on head
063f546, in that order, from a clean tree.CI on this PR fails before any model gate: the OpenSysML nightly installer's
SHA256SUMS.txtlists the same asset twice, soinstall.shrefuses the download (does not match SHA256SUMS.txt (expected <hash> <hash>, got <hash>)). The same failure is on the base branch; it is an upstream manifest defect, not worked around here.When the runs pin advances to a develop containing #1379
F-B01 zeroes the enum-keyed power / energy / thermal rollups in the pinned build. Once the pin contains the evaluator fix, these recorded runs change:
wpb-power-budget-*,wpb-unit-power-*,requirements-satisfy,tpm-margins,vv-report/ documents (the power, energy and thermal rows),analyses-transferandanalyses-sweep,montecarlo-return/montecarlo-missed-thrust,trades,variantsanddynamics-array-sweep— everything downstream ofTugPowerInMode(thrust)→thrustAtAphelion→massFlowAtAphelion. Expected values (fixed build): transfer thrust times 600.3 / 823.2 / 1 038.5 d (pinned 588.5 / 807.1 / 1 018.2), return Δv 495.7 / 297.2 / 214.3 m/s,demandThrusting = 35 518 W,thrustingMargin = 0.119,eclipseEnergy = 12 916 800 J,hotCaseHeat = 5 737 W,radiatorCapacity = 7 480 W;thrustingCloseswill then report its real (failing) verdict, which is the pending decision above. The DRO, safety, mode, sequence and target-case runs do not move.Behaviour changes
Verdicts that flipped in the recorded runs, all from the review follow-ups on this PR (the three Devin Review threads), recorded with the pinned
0a5fa2d94build:satisfy resourceMarginPositive by xenonTrend: fails → holds inruns/wpd-operations-satisfy.txt(the run also drops itsexit 1),runs/requirements-satisfy.txt,runs/wpb-budgets-satisfy.txtandruns/as-built-satisfy.txt. Cause:TethysOperations::xenonTrendnow readsTethysBudgets::propellantBudget(aboard =usable − (outboundAlone + rendezvousAlone) × (1 + missedThrustMargin)= 5 112 kg; rate =massFlowAtAphelionper day = −5.245 kg/day; days = the thrusting days the nominal return and insertion arcs need with the missed-thrust allowance,returnArcsXenon2 877 kg → 548.6 d) instead of its own 5.2 kg/day × 1 000 d; margin −265 → +1 935 kg (the follow-up thread oncurrentspends the allowance on the flown arcs too, so aboard is 5 112 kg andprojectedequalspropellantBudget.usable − xenonNominal= 2 235 kg).despinCapacity, TS-014proximityContactEnvironmentandContactSpeedTestnow divide thelargestcase's mass and diameter by its own 100 s period (momentum 222 238 → 560 040 N·m·s, hydrazine 34.3 → 86.5 kg against the 100 kg quarter load; surface speed 0.118 → 0.298 m/s against 0.35 m/s); all three still hold, and the runs print verdicts, not these values.runs/wpc-envelope-cases.txtkeeps its four failing positive assertions at this PR's pin: the model is spec-correct and the failure is an evaluator defect of0a5fa2d94(targetCases.tumbling.spinState == SpinState::tumblingis false there even with an explicit=binding; the recommended explicit binding does not change the verdicts).wp/tool-pin(Pin OpenSysML to develop 5cd37f288 and apply the model follow-ups it unblocks #13) pins5cd37f288, which evaluates all seven assertions as asserted.runs/house-rules.txt19 188 → 19 191 elements, 172 824 → 172 841 checks (thereturnArcsXenonattribute); object ids shift by one in the three-satisfyruns (tethysSystem.ground25 → 24,argent.eps30 → 29,argent.rcs23 → 22,wren21 → 20,ground.network26 → 25) andbatteryCapacityTrend/extendedMissionmove from ids 5 / 6 to 152 / 153 inwpd-operations-satisfybecausexenonTrendnow instantiates the propellant budget first.Link to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/be546fb3300945ed94da2f7b19824b9e
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/be546fb3300945ed94da2f7b19824b9e?variant=devin
Requested by: @HuiJun