Repository navigation
The first feature release since 1.0. The free simcrux command-line runner now
ships as a ready-made download for macOS, Linux and Windows, so a CI job no
longer has to build it from source. Several tabs running regressions share one
simulator budget, a failed test keeps its logs and says why it failed, and the
results dashboard is easier to read and search. Two verdicts that reported a
pass when they should not have are fixed.
New
- The
simcruxCLI as a download. Each release now includes the headless
runner assimcrux-cli-<version>-macos-arm64.zip(signed and notarized),
-linux-x64.tar.gzand-windows-x64.zip, built from the same source and
the same Flutter as the app.simcrux --versionprints the version, and with
Homebrew,brew install ferrite-engineering/tap/simcrux-cliinstalls it. - Licensing a build agent.
simcrux license fingerprintprints the machine
fingerprint a licence file is issued for, andsimcrux license request --out <file>writes an offline activation request, so a dedicated CI machine can
be licensed without ever running the desktop app. - One simulator budget across tabs. Regressions running in several tabs now
draw from one shared limit instead of each starting its own set. Set it in
Settings ▸ Simulators ▸ Simulator processes at once, across all tabs
(default 4). - A failed test keeps its logs and says why. Its captured output is written
assim_stdout.logandsim_stderr.login its work directory, the exports
carry those paths, and when the simulator gives no reason the failure
message is the first line of the test's own output that reads as one. - A results dashboard that is easier to work with. Columns resize by
dragging a header divider and show their full values on hover; each run in
a seed sweep is labelled "name · seed N" and the filter finds a run by its
seed; the "+N new" counters narrow the table to the tests they count; a
filter that hides every result says so and offers Clear filters; and the
Log panel starts collapsed, opening the first time you select a test, which
leaves room for many more rows. - A project can declare its identity. An optional top-level
project_id:
insimcrux.yamlnames the project wherever it is checked out. - The team database (Enterprise) pools on
project_id, so two engineers
with the same repository at different paths, and a CI job pushing with
--project, finally share one history. - Cleaner flakiness verdicts (Pro). A test that passed and then started
failing, with no flip-flopping, is shown as BROKEN rather than FLAKY. - GitHub pull request annotations (Pro) are posted as one check run per
batch, and a rate-limited request is retried after the delay GitHub asks for. - Organization policy (Enterprise) honors
defaultSimulator,
simulatorBinaryPolicy(an allow-list of simulators) andciGateThreshold. - Cross-probing is free in every edition, sending as well as receiving, and
the Cross-Probe panel names the peer product. - Crash detection. If a desktop session ends without a clean exit, the next
launch sends one event that says so. It carries nothing beyond the standard
fields usage statistics already send, and it follows the same setting in
Settings ▸ Privacy: with usage statistics off, nothing is sent. - No identifier while usage statistics are off. With them off, the app
keeps no installation identifier; turning them back on creates a new one.
On first launch, the default now reads your operating system's region
setting as well as its language.
Fixed
- Icarus tests that call
$errorand then$finishfail. They were
reported as passing, becausevvpexits cleanly after them. --fail-on-regressioncannot pass by default. In a build without the
regression comparison engine, including the free CLI, the gate now fails
with exit code 2 and says why, instead of reporting a pass it never checked.- Log retention keeps failures first, so an early failure's log is no
longer evicted to make room for recent passes. - "Sources changed" keeps coming on macOS after the system's file watch
goes quiet; each source file is also checked every second. - A tab restored at launch re-reads its project once the licence is known,
so a Pro seed sweep is no longer dropped with a "requires SimCrux Pro"
warning beside the PRO badge. - Open testbench source works when SimCrux starts from Finder or the Dock,
and says so when the editor cannot be started. - Workspace restore and save failures are shown to you instead of only
being logged. - Cross-probing opens a SimCrux configuration as a configuration tab rather
than in the text editor, and the dashboard's test-name filter shows changes
made from elsewhere. - Project files are checked more strictly. A
sources:entry that begins
with-is refused rather than passed to the simulator as an option, a
distributed-execution test id is limited to characters every scheduler
takes literally, and a RISC-V formal demo case whose trace points outside
its task directory is refused. - Escape closes an open menu or dialog instead of being taken by an
app-wide shortcut.
Also
- Interface polish across the app: two open files with the same name show the
folder that tells them apart; the "source changed" prompt is the same banner
in every EDACrux app and can be declined; Split Pane Right needs two tabs
to split; a narrow sorted column no longer overflows its header; command
palette shortcut hints are readable on the selected row; focus rings no
longer crowd their text; an empty panel tells a screen reader what belongs
there; and on macOS the window reopens where you left it, on the same
display. - The Linux packages register SimCrux's file types, and the Windows
uninstaller removes the install folder it leaves behind. - Cross-probing between EDACrux apps now proves the identity of both ends
without sending the connection token over the wire. 1.0 apps still connect. - Built with Flutter 3.47.5.
- Other performance and quality enhancements.
Download: https://simcrux.app/download