The banner under the header stays; the card is the first sight of an update. The same card as the miner's (one
language: the mark with a progress ring, "Igneum Wallet 0.1.3", one line (is available, is downloading with the
percent, is ready to install, Installing. The app restarts itself., did not install with the one-line cause and Try
again), up to three lines of release notes from the manifest with the rest behind "What changed", the size, Install
now and Later. Escape and the backdrop are Later. Reduced motion is honoured.
Rules (ui/update-card.js, pure, ui/update-card.test.mjs): the card never opens while the send screen is open, while
a Touch ID or Windows Hello line is on screen, while a wallet is being created or imported, or while the app quits;
it waits and comes once the block lifts. Later hides this version at this stage and leaves the banner; the card comes
back for a newer version, or when the download is ready and automatic updates are off (with them on it installs by
itself). An open card follows its update through downloading, ready, installing and failed; installing and failed
never open a card by themselves.
The engine serves ui/update-card.js next to app.js (src/server.rs). ?update=<kind>[&auto=0][&card=1] on the page
shows every state without a manifest. The version stays 0.1.2 until the next ship. CI runs the new test file.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
windows.yml: parse job (every .ps1 through the Windows PowerShell 5.1 parser with a negative fixture, PSScriptAnalyzer
as warnings, parenthesis check of every .bat/.cmd with a negative fixture), build job (engine on the MSVC target,
window host through BUILD-APP.bat as it is, payload through make-payload.sh in Git Bash, installer through
build-installer.ps1, smoke run of both exes, launcher DRY_RUN, three artifacts for 90 days).
push-inputs.sh publishes payload-inputs.zip (node, miner, workers, NVRTC DLLs) to the downloads host from the Mac;
fetch-ci-artifacts.sh pulls the green run's installer and payload back into the downloads folder.
Host: --version and --help, version.h shared with host.rc. Launcher: DRY_RUN=1 prints the plan and starts nothing.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
GitHub Actions workflow (.github/workflows/ci.yml) on push and pull_request with three jobs on the free runners:
igneum-pow `cargo test --release` and the igneum-census build; the two Python simulators' --quick modes under a
120-second timeout; the site build, an internal link check of site/*.html (tools/ci/link-check.mjs) and a gh-free
identity grep of the public export list (tools/ci/identity-check.sh over tools/ci/forbidden-strings.txt: machine
names, LAN and overlay addresses, home paths, local time zones, the log-intake key pattern; never a key or a name).
The node fork is too big for CI today and the workflow says so.
sim/finality_v2.py --quick is now a genuine smoke run (one day or hour per scenario, one partition and one eclipse
setting): 149 s at nice 19 on a loaded Mac, was 745 s. sim/difficulty/sim.py gains --quick (up50 and warmup-hard,
kaspa and igneum controllers, 36 s). One bench-log time-zone label reworded so the identity grep passes.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>