Repository navigation
Releases: InviscidAI/OpenReynolds
Releases · InviscidAI/OpenReynolds
Release list
0.3.1
Fixed
- A session that joins a running workspace no longer leaves it up for nobody.
Joining used to decide the close-down on its own: a joined session always left the
workspace running, so the nextopenreynoldsfound it still up, printed "joining
the workspace already running", and left it up again -- relaunching the CLI kept an
idle container alive (and billing) indefinitely, with no session on the web to
explain it. A joined session now asks the same questions as one that started the
workspace -- running job rows, and the probe for another session's processes -- and
stops it when nobody is working on it. A sibling session that is live but idle at
that moment starts a fresh container on its next call; the volume is untouched.
Studies with no directory of their own still leave a joined workspace up.
v0.3.0
[0.3.0] - 2026-09-17
Added
- Three modes: full auto, ask before compute, structured.
--mode,
OPENREYNOLDS_MODE, the config file'smode, or/mode <name>mid-session
(openreynolds/modes.py).autois the default and is today's behaviour byte for
byte: the briefing is unchanged and no tool call is ever held.partialputs every
job_startandmeshcall to the person before it runs (/yes,/no [reason],
/all), and a declined call goes back to the model as an error result carrying the
person's reason verbatim.structuredoffers acheckpointtool that shows the
person a summary and what comes next and waits for their answer, and holds
job_startandmeshuntil a checkpoint has been approved since the mode began.
Its stage names are the guided pipeline's own phases (toolbox/study_state.py).
The question and its answer live inopenreynolds/approval.py; the one place a call
is held isLoop._consult. A resumed study keeps its mode unless one is given.
-pwith a non-auto mode is a usage error (exit2), because nobody is there to
answer. - Change the model or effort mid-study.
/modelshows the provider, model, effort,
mode and the models this provider is known to have;/model <model>,
/model <provider>:<model>and/model <provider>switch
(openreynolds/switch.py). A candidate is probed, image included, before it is
accepted, and applied only between turns. Earlier thinking blocks are dropped when
the model changes, and a thread too big for the new model's window (known per model
where it differs from the preset's, as forclaude-haiku-4-5) is refreshed on the
current model first./effort low|medium|highapplies from the next request, and
--effortsets it at the start. The mesh desk and the front desk follow the switch.
A resumed study carries on on the model it was last running:session.jsonnow
records the provider and the endpoint beside the model, and--study <id>restores
the record unless--modelorOPENREYNOLDS_MODELnames a model, or this machine
cannot serve it -- in which case the configured model runs and the session says why.
Serving it means a key for the recorded provider here, switching provider if the
record says another one (it brings that provider's key, endpoint, window and desk
model with it), and on the configured provider the same endpoint as well, because a
gateway or router in front of one family answers to other vendors' ids and a pair
restored across endpoints fails a turn later with the vendor's 400. A study that
recorded no provider or no endpoint is refused rather than guessed at, and starts as
it did before. A refused restore does not rewrite the study's record: the run that
cannot serve the pair is the last one that should forget it, and the next resume
where the key is set carries on there. The record is the localsession.json, so a
study resumed where it has never run starts on the configured model, and
OPENREYNOLDS_PROVIDERon its own does not hold a resume to that provider. /helpwith topics./help commands,/help modes,/help model,
/help toolsand/help keys. Every command lives in one registry,
commands.COMMANDS, which the parser, the help text, the terminal's completion and
the hosted app's suggestion list are all read from.- Completion in the interface. Typing
/in the prompt opens a list of matching
commands above it with a grey completion in the prompt itself; Up and Down move,
Tab takes the suggestion, Esc closes the list. After/mode,/model,/effort
and/helpthe list offers that command's choices. The session bar shows model,
effort, provider and mode. - New stream events.
approval,approval_done,modelandmodeon
--output-format stream-json. A question is answered by sending/yes,/no ...or
/allas an ordinaryuserline. - The moving-mesh benchmarks are in the repository.
benchmarks/moving_mesh/
carries the two prompts run end to end on 2026-09-12 -- acyclicAMIsliding
interface through a circular-Couette annulus, and a cylinder on a spring free to move
at Re = 100 -- andgrade.py, which grades a rerun the same way. What was graded
lived outside this repository, so nobody could reproduce it. The grader reads only
raw solver output and never the run's own analysis, because grading those two by hand