Logoscore Weekly Update — 2026-10-05
Highlights
- The 0.3.0 catalog was cut in about 48 hours. It ships the LEZ 0.3.0 stack, libp2p 1.1.0, storage 3.0.2 and blockchain-ui 0.3.1. A stale-checkout bump rolled ten pins back, and they were restored within six hours logos-modules-release#78, #85
- Installs now offer optional dependencies, the same way in Basecamp, PMUI and logosctl. If one fails, the install carries on logos-package-downloader#44, logos-basecamp#452, logos-logoscore-cli#160
- Calling a method a module doesn’t have is now an error. It used to return
okwith a zero. Every SDK and the Qt glue now answerunknown_methodlogos-cpp-sdk#178, logos-rust-sdk#72, logos-plugin-qt#56 - Packages can be downloaded over Logos Storage. A new setting lets the user allow any transport, Storage only, or HTTP only logos-package-downloader-module#32, logos-package-downloader#42, logos-basecamp#416
- A reloaded module can no longer hand a call another call’s old result. Call ids are now unique per instance logos-plugin-qt#58, logos-protocol#108
- All 13 Basecamp UI doctests now run on Windows, and they leave no processes behind logos-basecamp#470, #471
- Reinstalled apps open without restarting Basecamp. View backends are reached through dynamic replicas logos-view-module-runtime#40
- Blockchain UI now reads its mining state from the node, counts claims made while the app was closed, and uses Quick start mining defaults a desktop can spare logos-blockchain-ui#85, #86, #91
- Loading an LGX package takes about a fifth of the memory it did: 754 MiB → 154 MiB on a 150 MiB package logos-package#44
- libp2p’s
flake.lockwent from 450k lines to 17k logos-libp2p-module#111
Initiatives
The 0.3.0 release wave
- The rollback, and putting it back. Releases tagged before the bad bump were unaffected and needed no re-release. LEZ and accounts were repinned first, then storage. One of the repins was accounts-ui, moved to its
v0.3.0tag because9daa899was never pushed logos-modules-release#78, #79, #80, #85 - LEZ Core moved to the shard-based account model of LEZ 0.3.0.
FfiAccountnow returns{nonce, shards: [{program, data}]}:program_owner,balanceanddataare gone, private identifiers are 32 bytes, and generic transactions take a per-accountFfiAccountMention. The hand-written test stub had already drifted from the FFI, so it was replaced with the realwallet_ffi.h. Explorer shows each program’s data shard and prints “Invalid encoding” for a native balance it cannot decode. Wallet UI dropped its “Unclaimed / Initialized” tracking, which depended onprogram_owner. A later bump picks up an r0 linking fix, and Explorer’s channel id moved from0101…to0303…logos-execution-zone-module#61, #62, #63, #64, lez-explorer-ui#25, #26, #28, #29, #30, logos-execution-zone-wallet-ui#51, #52, #53, #54, logos-modules-release#77, #93, #94 - Storage 3.0.0 makes privacy a per-download choice. The node-wide “private DHT queries” switch is gone. Each download and each manifest fetch now has its own Private toggle, which routes it over Mix and does not advertise the file. The toggle is greyed out when the config has Mix turned off.
.lgxfiles get their own row with no delete button, since installed modules may still need them. libstorage went 0.5.0 → 0.5.2 → 0.5.3; 0.5.3 fixes a critical upstream bug and shipped as storage 3.0.2. Doctests now pinlogosctl0.3.1 /lgpm0.3.0 instead of tracking master logos-storage-ui#96, #97, #99, logos-storage-module#99, #100, #102, #103, #104, logos-modules-release#70, #71, #87, #89, #97, #99 - Basecamp downloads over Storage, end to end. Basecamp starts the node when
storage_moduleis ready and stops it on quit. A new doctest exercises the full path: it uploads astorage_uipackage to a provider node the way a release does, and installs it over Storage. It then stops the node from the Storage UI and installs over HTTPS. It also checks that a download never restarts a node the user stopped, and never uses a node on a different network from the catalog’s. Release workflows moved to v1.7–1.8 and now passSTORAGE_NODESlogos-basecamp#416, #454, logos-modules-release#64, #68 - libp2p 1.1.0.
startnow returns once the switch is listening, and a newkadWaitBootstrap(timeoutMs)waits for the DHT, so a slow DHT bootstrap no longer has to fit insidestart’s 10 s budget. nim-libp2p is pinned to a commit, and every external ref is now a full hash. That includes the code-review workflow, which receives API keys and had been running whatever was pushed to@mainlogos-libp2p-module#114, #115, #116, #119, logos-modules-release#75 - The catalog grew. All 19 EVM-wallet and 7 Monero-wallet stack repos joined the official catalog. Accounts now ships as
accounts_ui0.3.0: its module name had still beenaccountlog_ui, which Basecamp listed as “Account Log”. openmetrics 0.1.2 gained a Windows variant, and Monero and verified-proxy were bumped logos-accounts-ui#14, logos-modules-release#67, #69, #96, #83, #73, #76, #90
Blockchain UI — mining state from the node, and the claims it missed
- Mining state is now read from the node. Mining had been a fire-and-forget toggle with no readback, so the view showed what it last requested. It went wrong whenever the node started or stopped mining on its own.
pow_statusis now read on every status poll. It is not tied to the claimable-tickets timer, because that timer runs only while the app believes mining is on, which is exactly the belief the readback exists to correct. Views bind tominingActive, the node’s answer whenever there is one. The old request flag survives only as a fallback for a module withoutpow_status, and to keep the button responsive until the next poll. Auto-claim is resolved the same way. That includes the node’s own reason for standing auto-claim down: every claim target has reached its threshold logos-blockchain-ui#85 - No
pow_*call is made before the chain has first been online. Until then the node’s PoW service doesn’t read its inbox, and the module waits on it with no timeout on its own thread. An early call therefore stalled every other call and every event, blocks included. The gate is latched once per run, and all PoW state is cleared when the node leaves Running logos-blockchain-ui#85 - Claims made while the app was closed are now counted. A catch-up reads
get_blocksfrom the last scanned slot up to LIB, 2,000 slots per status poll. That is about 50 blocks: few enough not to stall the poll, and enough that a full backfill takes minutes, not hours. When a block holding our claims has no successor in the window, the window doubles, up to 64,000 slots. Raw blocks carry neither a header id nor transaction hashes. Ids are therefore recovered from the next block’sparent_block, and claims are keyed by the beneficiarypkthe reward note is minted to. A reply that isn’t a JSON array counts as a failure, not an empty window, so a range is never skipped for good. Results go into aClaimLedgerthat is saved to disk with a write throttle. Until the scan has reached back to genesis, the Earned tiles say which period they cover logos-blockchain-ui#86 - Quick start mines with desktop defaults. Quick start never shows the PoW form, so the node used to mine with its own defaults: every CPU, 4 searches per block, and a 300 s claim period. Quick start now writes 1 thread, 1 search per block and a 10 s claim period, and Advanced’s form starts from the same values. The setting is relabelled “Parallel ticket searches per block”, because it does not cap how many tickets a block can earn logos-blockchain-ui#91
- Claims in flight, and who counts as funded. The dashboard now tells claims sent apart from claims settling (“3 sent · 2 settling”, or “sent, not seen yet”). The funded-wallet check now accepts any tracked account holding tokens, not only the one with the
leader_fundingrole logos-blockchain-ui#84 - Shipped as 0.3.0, again as 0.3.0 with the CPU% fix, and as 0.3.1 with the new defaults logos-modules-release#81, #82, #95
Optional dependencies, chosen at install time
- The resolver offers optional dependencies and returns the full graph it chose. Each optional dependency is returned as an offer. An offer lists the catalog versions it permits after filtering by version range, artifact and signer pins, download source, and whether its required packages can be installed. The returned graph includes packages that are already installed, so a frontend can re-resolve to find nested optionals and drop branches the user deselected logos-package-downloader#44
- Offers now agree with the required plan. Several mismatches were reproduced before being fixed. A dependency already scheduled at a newer version by another package overwrote the plan’s manifest. An optional needing
D ^2was offered while the plan installedD 1.x. An offer was marked unavailable when only its newest release failed. Offers are no longer built for packages the plan already requires, which took a large synthetic resolve from ~1.5 s to ~0.14 s with identical output logos-package-downloader#45 - Installed optionals can now be upgraded or downgraded. When the caller supplied the installed set, the resolver had dropped installed optionals from the offers entirely. The default request now pins the installed release, so leaving an offer untouched changes nothing. An installed optional that was never published, such as the embedded
modules_state, shows as installed-only instead of unavailable logos-package-downloader#46, #47, logos-basecamp#455 - Basecamp’s install and upgrade dialogs. Optional dependencies get the same row as required ones, with a version selector that changes the version and its artifact hash together. A follow-up fixed four problems: an unrelated dialog could cancel PMUI’s install gate, leaving every later install refused as busy; the upgrade cascade showed checkboxes that froze Continue; a version pick could loop into an unresolvable selection; and a failed re-resolve emptied the list, so the change that caused it could not be undone logos-basecamp#452, #453
- PMUI now installs the optional dependencies the shell approved. It had been discarding the shell’s response and installing only the original set. With the new
InstallSequence, a failed optional row is marked Failed and the batch continues; a failed required row still stops it logos-package-manager-ui#89, #90 - logosctl
apply()had three bugs.package upgradeuninstalled every named package but downloaded only the ones that had changed, so a package that was already current was removed and never reinstalled. A failing optional aborted the run before the restarts; it is now reported asskipped_optional. And--no-depsinstalled the whole transitive closure. Four of the seven new tests fail if the fixes are reverted logos-logoscore-cli#160, #161, #162 - Docs and repins. The developer guide documents the default selections, the RLN → LEZ RLN chain, and branch pruning logos-package-downloader-module#46, #47, #48, logos-tutorial#104, #105, #106
Where packages come from — the Storage fetcher, the download source, and a downloader that starts on request
- The downloader owns its Storage node. It starts the node with the config the Storage UI shares, and doctests download by CID from a local provider. A follow-up made unloading safe: new calls are refused, pending storage waits are cancelled, and an in-flight HTTPS download is aborted through the library’s new cancel API, which also removes the partial file. The subscription to
storage_moduleis made lazily, so hosts without that module get no retry warnings logos-package-downloader-module#32, #44, logos-package-downloader#43, logos-logoscore-cli#115 - How the download source decides availability. Availability is computed each time the catalog is read and never stored in the cached index. A download without a pinned version takes the newest release the setting can serve; a pinned download fails and says why. All three frontends show the result: in PMUI the Not available reason updates as the Version picker moves, Basecamp’s selector restores the previous value if a change is refused, and logosctl has
catalog source. The downloader gained 12 new tests, and reverting each guard fails its own test logos-package-downloader#42, logos-package-downloader-module#45, logos-package-manager-ui#86, logos-basecamp#438, logos-logoscore-cli#147 - The downloader now starts only when asked, and the catalog is fetched only when something reads it. Loading the downloader had started a Storage node in every host, including a
logosctldaemon. It now exposesstart(),stop(),getState()andstateChanged. Basecamp no longer fetches the catalog at launch: App Manager fetches it when it opens, and Welcome search on the first query logos-package-downloader-module#50, logos-package-manager-ui#93, logos-basecamp#469, logos-logoscore-cli#173 - Both hosts now start the downloader at load again, because the lazy start broke stopping the node from the Storage UI.
start()brings up a node if none is running, so a node the user had stopped came back the moment App Manager opened. Basecamp and the logosctl daemon now start the downloader as soon as it loads. Basecamp also clears its started flag when the downloader’s subscription is lost, so calls to a reloaded instance are no longer refused.basecamp-storage-downloadpasses 30/30 andlogosctl-storage-install38/38 logos-basecamp#474, logos-logoscore-cli#175, logos-package-downloader-module#54 - The downloader doctests no longer touch the public network. The default-node spec had failed on both OSes since 10-01:
KadDHT.startwaits on a bootstrap refresh against the publiclogos.testfleet, and took 70 s locally even with the fleet up. The spec now uses an offline config. The storage provider is pinned to a revision that builds, because logos-storage-nim’s default branch broke on 10-03 logos-package-downloader-module#51, #52, logos-logoscore-cli#174 - LGX streaming load reached every consumer through relocks: lgpm, the PM module, PMUI, Basecamp and logosctl. The relocks also shrank logosctl’s lock from 2,218 to 1,458 nodes over the week logos-package-downloader#48, logos-package-manager#47, logos-package-manager-module#76, logos-package-downloader-module#49, logos-package-manager-ui#91, logos-basecamp#456, #461, logos-logoscore-cli#169, #170, nix-bundle-lgx#19, nix-bundle-logos-module-install#10
Upgrades and reinstalls that replace only what changed
- Embedded packages can be upgraded. The upgrade keeps the bundled copy, which is read-only, and installs the replacement into the user directory. Uninstalling the user copy brings the embedded one back. App Manager now checks a package’s
installTypeagain before removing anything, because its cached map can be incomplete during a refresh logos-package-manager-module#75, logos-package-manager#45, logos-package-manager-ui#88, logos-basecamp#447, logos-logoscore-cli#158, logos-liblogos#236 - Reinstalling one component no longer refetches the whole app. The skip check for packages already on disk ran on the download’s results instead of before the request; it now compares version and
rootHashfirst. A doctest counts.lgxrequests in a local server’s access log: three on the first install, one on the reinstall. The same PR unloads an app’s running modules before any of their dependencies is replaced. Previously an upgrade succeeded while the old module kept running logos-basecamp#444 - Installing an app whose dependency only Basecamp ships. With the built-in catalog disabled, a dependency that only Basecamp bundles is in no enabled catalog, and the resolve failed with
no candidate matcheseven though the installed copy satisfied the range. The preview now retries with that installed package logos-basecamp#472 - logosctl now names the running dependents an install stops. Reinstalling
calc_slowsilently leftcalc_fanoutunloaded. The install plan now listsstopped_dependentswith amodule loadhint for each one. They are deliberately not restarted logos-logoscore-cli#166 - Packages this host cannot install are hidden by default. On Windows most catalog rows could only say Not available. PMUI and App Manager now hide them, and a filter shows them again. That filter combines with the install-state tabs. Grid tiles also give names the cell’s full width logos-package-manager-ui#87, logos-basecamp#445, #446
- Distribution fixes. A detached
logosctl daemonstarted from an AppImage relaunched the copy inside/tmp/.mount_*, sostorage_moduleandpackage_downloadercrashed with signal 7 once the outer runtime exited. It now relaunches the outer AppImage. lgpm releases now include a Windows zip logos-logoscore-cli#159, logos-package-manager#46
Protocol and SDK correctness
- A blocking call to a module that isn’t loaded now fails in 1 s, not 20 s.
requestObject()knew nothing was listening and still waited the full budget. It now waits at most 1 s for a listener; a module that is listening keeps the full budget. The two absent-module tests went from about 20 s to about 1.1 s logos-protocol#105 - Routine protocol traces are off by default. Call, event and token tracing now sit behind the
logos.protocol.{calls,events,tokens}categories, and the token value itself is never printed logos-protocol#106 - The unknown-method refusal, end to end.
ModuleProxystill answers a barename()orversion()call itself, but only when the provider refused with the exact three-keyunknown_methodreply and the call has no arguments. The rust-sdk unit tests that check the refusal’s shape had no CI step and now run in CI (57/57). The change shipped as one relock wave from the SDKs through module-builder and the rebuiltmodules_stateto logosctl and Basecamp logos-rust-sdk#73, logos-qt-sdk#66, logos-cpp-sdk#177, #179, logos-rust-sdk#71, logos-plugin-qt#57, logos-qt-sdk#67, logos-view-module-runtime#42, logos-module-loader-qt#27, logos-test-framework#12, logos-liblogos#238, logos-module-builder#270, logos-modules-state-module#9, logos-logoscore-cli#172, logos-logoscore-py#33, logos-standalone-app#67, logos-basecamp#462 - The QtRO completion fixes reached the app,
logos_host, the UI host and the bundled downloader logos-module-builder#271, logos-package-downloader-module#53, logos-basecamp#475, logos-logoscore-cli#177 - logos-protocol’s test suites now run on Windows: 602/602 for
protocol_testsand 7/7 forprotocol_noqt_tests. Windows rounds every sleep up to a ~15.6 ms scheduler tick, which stretchedStopWhileWritesAreInFlightto 42 s against a 60 s cap; it now spins instead and takes ~3 s. A flaky burst-race test is now certain to exercise the stopped path logos-protocol#110, #111
Process lifetime and runtime races
- A module that calls out from its own init no longer has those calls refused. liblogos told capability_module about the new token only after the child reported its plugin loaded, so the module’s first calls failed with “auth token not recognized”. That is how
package_downloadercould readis_ready("storage_module")as false. The token is now registered before the child receives it, and a failed load revokes it. Integration passes 49/49 logos-liblogos#237 - A memory-corruption bug present since intents first landed was crashing Basecamp.
IntentBroker::dispatchToheld aQHashiterator acrossdeliverRequest, which can answer the intent synchronously and erase the record. One byte was then written through the dead iterator, showing up asdouble free or corruptionand as a SIGSEGV during QML garbage collection. The broker now looks the record up again after any call that can re-enter it. Replaying deep-link launches went from 5 core dumps in ~12 launches to 0 in 180 logos-basecamp#463 - logosctl fixes.
watchnow exits withNO_DAEMONabout 1 s after the daemon stops; before, it was still running 31 s later and never exited.daemon stopno longer aborts when the process is reaped between opening and reading/proc/<pid>/stat, a race that had failed a tutorial CI run.modules_stateandcapability_moduleare now reported as installed, so a dry-run install ofeth_wallet_uino longer fails withno candidate matcheslogos-logoscore-cli#164, #171, #165 - The module inspector’s CPU usage is accurate again, after a
process-statspin fix logos-liblogos#239, logos-basecamp#460
Windows
ui-host.exenow dies with Basecamp. It had no job object, so a killed or crashed Basecamp left it orphaned along with its conhost. It now starts suspended inside a kill-on-close job and exits 41–62 ms after Basecamp is killed. Before, it was still alive 5 s later in every run logos-view-module-runtime#43- Windows-specific fixes in the UI doctests. On Windows,
file:///tmp/...URLs resolve against the drive root while Git Bash’s/tmpis%TEMP%. The persistence spec now confirms that every DLL import resolves inside the bundle: 202 binaries checked, none resolving outside it. The deep-links spec reads its registry handler back and restores any handler that was already registered logos-basecamp#470, #471 - Search chips show the platform’s real shortcut. The embedded font on Windows has no ⌘ glyph, so the chip drew an empty box, and on Linux it named a key that does nothing. Each chip now shows its own Shortcut’s
nativeText. Fixing this showed that a test had been passing on another view’s shortcut, so it is now scoped to the welcome page logos-basecamp#465, #466, #468, logos-package-manager-ui#92 - Tutorials on Windows and linux-arm64. On Windows 11, the LGX tutorial passes 25/25 and caller identity 11/11. linux-arm64 joined the matrix, taking it from 18 to 27 jobs logos-tutorial#108, #113
Doctests and tutorials — reports you can trust
- The generated scripts could report a pass for steps that failed or never ran. A multi-line step ran twice, and one step’s
set -eended the whole script, so the LGX spec stopped after 5 of 25 steps. A step with several records repeated its JSON key, soexit 3came out as 1/1 passed. Under the harness’sbash -e, the first failing step ended the script before its record was written. Aui_teststep was dropped without a word. A step that does not finish is now recorded asfailwith “not run” logos-doctest#20, #23, #24, #25, #26, #27 - Screenshots no longer show the screen from before the action. Offscreen,
grab()returns the last rendered frame, and the new frame arrives about 5 ms later. A screenshot identical to the previous one is now retaken for up to 1 s, and the action fails if it still hasn’t changed. A survey of about 5,800 screenshot pairs across 476 published reports found real stale captures, for example evm-wallet-ui’s “Advanced” tab showing Settings in 28 of 35 runs logos-doctest#21, logos-test-modules#78, logos-basecamp#464, logos-standalone-app#65, logos-tutorial#112 - Reports show what actually ran. Each action now has its own result and duration.
expect_propertyhonourstimeout:, which took basecamp-intents from 11/24 to 24/24. A busy inspector port now fails the step instead of driving whichever app holds that port logos-doctest#19, #22, #30, #31 - The intents doctest now runs in Basecamp CI. Its click step had been sending
click(""), so 19 of its actions never ran. It now passes 24/24, and deep-links passes 10/10 now that it no longer leaves a Basecamp holding port 3768 logos-basecamp#458, #459, #473 - The tutorials use logosctl, the tool that actually ships. Porting them found three runtime bugs, all fixed upstream this week, and their workarounds have been removed. The repos the tutorials build against are now pinned in
tutorial-set.json; doing so revealed fiveflake.nixfiles that ignored--release. Stale prose and broken links were fixed logos-tutorial#107, #109, #110, #111, #114, logos-logoscore-py#32, logos-test-modules#76 nix runon the design-system storybook launches again. The Windows cross-build had turned off Qt wrapping on every platform, so the storybook exited withqtquickcontrols2plugin not found. A new CI check runs it offscreen for 10 s logos-design-system#63
Appendix: all merged PRs, by repo
lez-explorer-ui, logos-accounts-ui, logos-basecamp, logos-blockchain-ui, logos-cpp-sdk, logos-design-system, logos-doctest, logos-execution-zone-module, logos-execution-zone-wallet-ui, logos-liblogos, logos-libp2p-module, logos-logoscore-cli, logos-logoscore-py, logos-module-builder, logos-module-loader-qt, logos-module-viewer, logos-modules-release, logos-modules-state-module, logos-package, logos-package-downloader, logos-package-downloader-module, logos-package-manager, logos-package-manager-module, logos-package-manager-ui, logos-plugin-qt, logos-protocol, logos-qt-sdk, logos-rust-sdk, logos-standalone-app, logos-storage-module, logos-storage-ui, logos-test-framework, logos-test-modules, logos-tutorial, logos-view-module-runtime, nix-bundle-lgx, nix-bundle-logos-module-install
lez-explorer-ui
- chore: change channel id from 0101..01 to 0303..03 (#30)
- chore: bump indexer (#29)
- chore: 0.3.0 bumps (#28)
- chore: bump to release version 1.2.0-rc.1 (#26)
- chore: update lez indexer rev (#25)
logos-accounts-ui
logos-basecamp
- chore(deps): relock onto the QtRO completion fixes (#475)
- fix: start package_downloader as soon as it is loaded (#474)
- test(doctests): bring basecamp-storage-download up to date (#473)
- fix(app-manager): install an app whose dependency only Basecamp ships (#472)
- Windows legs for every Basecamp UI doc-test (#471)
- Walk the bundle’s UI on Windows too: first Windows UI doctest (#470)
- feat: start package_downloader only when something needs it, and fetch the catalog the same way (#469)
- chore(deps): relock logos-package-manager-ui onto the shortcut-chip fix (#468)
- chore(deps): relock logos-view-module-runtime onto 4c42972 (#467)
- test(ui): scope the welcome ⌘K shortcut check to the welcome page (#466)
- fix(shell): show the platform’s key in the search shortcut chips (#465)
- chore(deps): relock logos-qt-mcp onto the screenshot fix (#464)
- fix(intents): stop writing through an erased broker record (#463)
- chore(deps): relock onto the unknown-method wave (#462)
- chore: relock logos-package-downloader-module to bbf5c8b (#461)
- fix: use fix in process stat to show accurate cpu usage in module inspector (#460)
- fix(doctests): run the intents spec in CI (#459)
- fix(doctests): intents spec’s requester click sent an empty target (#458)
- chore: relock the lgx / lgpm chain onto logos-package c25a116 (#456)
- fix: show an installed optional missing from the catalog as installed (#455)
- pin logos-storage-module to 0.3.0 (#454)
- fix: optional-package previews that could stall or misfire (#453)
- feat: offer available optional packages during installation (#452)
- fix: open reinstalled ui_qml apps without a restart (#451)
- Repin package manager and guard App Manager embedded upgrades (#447)
- feat: Give App Managers Grid cell available width so that Names get more width than just the tile (#446)
- Feat/420 app manager availability (#445)
- fix: all dependencies of an app get reinstalled when only some are ne… (#444)
- feat: a download source selector in Package Repositories (#438)
- feat: storage module integration (#416)
logos-blockchain-ui
- fix: add correct defaults for quick start and advanced (#91)
- feat: catch up missed claims (#86)
- feat: update mining calls with pow_status api from module (#85)
- fix: minor issues in Mining view + Funded wallet contraints (#84)
logos-cpp-sdk
- chore(deps): relock onto logos-protocol d838985 (#179)
- fix(lidl-gen): refuse an unknown method name instead of answering NULL (#178)
- chore(deps): relock onto logos-protocol 4fc6973 — absent module fails fast, quiet traces (#177)
logos-design-system
logos-doctest
- fix(ui_test): let call_method pass arguments to typed parameters (#31)
- fix(ui_test): drive only the app that doctest run launched (#30)
- feat(assemble): inline a Windows leg’s ui_test screenshots; keep each step’s app log (#29)
- feat(emit-smoke): run ui_test steps in the generated script (#28)
- fix(emit-smoke): record a ui_test it cannot run as failed, instead of dropping it (#27)
- fix(emit-smoke): record every step when the harness runs the script with bash -e (#26)
- fix(emit-smoke): run check_file without compgen, which nixpkgs’ bash lacks (#25)
- fix(emit-smoke): keep every record of a step, so a later pass can’t hide a failure (#24)
- fix(emit-smoke): keep expects and heredocs from breaking the script’s parse (#23)
- fix(ui_test): poll expect_property until its timeout, when one is given (#22)
- fix(ui_test): re-take, then fail, a screenshot a UI action left unchanged (#21)
- fix(emit-smoke): run each step once, in its own shell (#20)
- Show actual UI action execution in doctest reports (#19)
logos-execution-zone-module
- chore: bump LEZ to 0.3.0 + r0 link fix (#64)
- chore: bump to LEZ 0.3.0 (#63)
- bump metadata version (#62)
- fix: adapt to wallet-ffi on logos-execution-zone dev (#61)
logos-execution-zone-wallet-ui
- chore: bump lez core (#54)
- chore: 0.3.0 bumps (#53)
- chore: pin the lez_core rev on the flake.nix file (#52)
- chore: update version. Remove stale initialization logic (#51)
logos-liblogos
- fix: use fix in process stat to show accurate cpu usage (#239)
- chore(deps): relock onto logos-protocol d838985, plugin-qt f9e969e, module-loader-qt dc2b3df (#238)
- fix: register a module’s token before the child holds it (#237)
- chore: relock logos-package-manager to 1c8ea4a (#236)
logos-libp2p-module
- chore: pin flake inputs to a commit hashes, update nim-libp2p (#119)
- ci(review): add open code review (#116)
- feat(kad): add kadWaitBootstrap to wait for the DHT bootstrap after start (#115)
- chore(build): pin nim-libp2p and set version 1.1.0 (#114)
- chore: shrink flake.lock from 450k to 17k lines (#111)
logos-logoscore-cli
- chore(deps): relock onto the QtRO completion fixes (#177)
- fix: start package_downloader as soon as the daemon loads it (#175)
- test(doctests): pin the storage node to a revision that builds (#174)
- feat: start package_downloader before calling into it (#173)
- chore(deps): relock onto the unknown-method wave (#172)
- fix(logosctl): a /proc/
/stat read racing the reap no longer aborts daemon stop (#171) - chore: relock logos-package-downloader-module to bbf5c8b (#170)
- chore: relock liblogos, lgpm, pm module and module-install bundler (#169)
- fix(call): report a provider’s unknown_method refusal as METHOD_NOT_FOUND (#167)
- fix(logosctl): name the running dependents an install stops, and leave them stopped (#166)
- fix(daemon): report modules/ (modules_state, capability_module) as embedded (#165)
- fix(logosctl): watch exits with NO_DAEMON when the daemon stops (#164)
- fix(logosctl): keep current packages on upgrade, and never fail on an optional (#162)
- build: pin merged downloader module (#161)
- feat(logosctl): offer all, mandatory-only, or cancel on install (#160)
- Fix detached logosctl daemon launched from AppImage (#159)
- Repin package manager for embedded upgrades in logosctl (#158)
- feat: catalog source, and releases the download source cannot serve (#147)
- chore: update logos package downloader module (#115)
logos-logoscore-py
- chore(deps): relock onto the unknown-method wave (#33)
- chore(deps): relock logoscore-cli and test-modules (#32)
logos-module-builder
- chore(deps): relock onto the QtRO completion fixes (#271)
- chore(deps): relock onto the unknown-method wave (#270)
- chore: relock logos-standalone-app to 23dcbc6 (#269)
- chore: relock nix-bundle-lgx and nix-bundle-logos-module-install (#268)
logos-module-loader-qt
logos-module-viewer
logos-modules-release
- chore: release storage_module to v3.0.2 (#99)
- chore: bump storage to v3.0.1 (#97)
- chore: bump openmetrics-module to 0.1.2 (#96)
- chore: update blockchain ui to 0.3.1 with fixes for defaults (#95)
- chore: update explorer channel id (#94)
- chore: bump modules for r0 linking fixes (#93)
- Bump Monero wallet release submodules (#90)
- bump to storage UI v3.0.0 (#89)
- chore(storage): update storage module to v3.0.0 (#87)
- chore: restore versions (#85)
- bump openmetrics module (#83)
- chore: bump the 0.3.0 ui release to add cpu% fix (#82)
- chore: bump to point to 0.3.0 ui release (#81)
- fix: repin logos-accounts-ui to v0.3.0 (9daa899 was never pushed) (#80)
- chore: rebump the reverted LEZ core modules (#79)
- Update blockchain module to 0.3.0 (#78)
- chore: bump LEZ modules for 0.3.0 (#77)
- Bump Monero wallet UI to latest main (#76)
- chore: release libp2p module 1.1.0 (#75)
- Bump verified proxy module and UI to master (#73)
- chore: update storage ui to v3.0.0-rc1 (#71)
- chore: Update Storage UI to v3.0.0-rc1 (#70)
- Add EVM and Monero wallet stacks to release catalog (#69)
- Bump release action workflows to v1.8 (#68)
- feat: add logos-accounts-ui (#67)
- feat: storage integration (#64)
logos-modules-state-module
logos-package
logos-package-downloader
- chore: relock logos-package to c25a116 (#48)
- fix: offer an installed optional the catalog lacks as installed-only (#47)
- feat: offer installed optional dependencies for upgrade or downgrade (#46)
- fix: keep optional offers consistent with the required plan (#45)
- fix: expose available optional dependencies in install plans (#44)
- feat(download): support cancelling HTTPS transfers (#43)
- feat: download source setting (any, Logos Storage only, HTTP only) (#42)
logos-package-downloader-module
- test(doctests): logosctl starts the downloader at load (#54)
- chore(deps): relock onto the QtRO completion fixes (#53)
- test(doctests): pin the storage node to a revision that builds (#52)
- test: run the default-node doctest off the public network (#51)
- feat: start the downloader on demand: start(), stop(), getState(), stateChanged (#50)
- chore: relock logos-package-downloader and module-builder (#49)
- build: repin downloader to installed-only optional offers (#48)
- build: repin downloader to the optional-dependency follow-ups (#47)
- build: repin downloader to optional dependency resolver (#46)
- feat: get and set the download source (any, Logos Storage only, HTTP only) (#45)
- Storage fetcher review follow-ups: unload safety, lazy subscriptions, doctest and lock fixes (#44)
- feat: storage fetcher (#32)
logos-package-manager
- chore: relock logos-package to c25a116 (#47)
- ci: publish a Windows lgpm zip; take Nix from setup-nix-cache-action (#46)
- test: verify user packages override embedded fallback (#45)
logos-package-manager-module
logos-package-manager-ui
- feat: start package_downloader before the first catalog load (#93)
- fix(header): show the platform’s key in the search shortcut chip (#92)
- chore: relock logos-package, package_manager, package_downloader and module-builder (#91)
- fix: a failed optional package no longer stops the install (#90)
- fix: install optional packages selected in Basecamp (#89)
- fix: upgrade embedded packages without removing bundle (#88)
- feat: hide packages this host cannot install (#87)
- feat: list versions the download source cannot serve as not available (#86)
logos-plugin-qt
- fix(qt-host): keep deferred-call ids unique across module instances (#58)
- chore(deps): relock onto logos-protocol d838985 (#57)
- fix(glue): refuse an unknown method name instead of answering empty (#56)
logos-protocol
- test(plain): make the stopped-path call certain in the burst race (#111)
- ci: run the test suites on Windows (#110)
- fix(qt_remote): answer a released deferred call, and keep its timeout off the freed object (#109)
- fix(qt_remote): keep only the completions this replica may be waiting for (#108)
- fix(module_proxy): keep the identity fallback when a provider refuses the name (#107)
- chore(protocol): quiet routine protocol traces by default (#106)
- fix(qt_remote): a blocking acquire for a module nothing listens for fails in 1 s, not 20 s (#105)
logos-qt-sdk
- chore(deps): relock onto logos-protocol d838985, cpp-sdk 3bf5365, plugin-qt f9e969e (#67)
- docs(qt-generator): unknown_method is emitted now (#66)
logos-rust-sdk
- ci: run checks.sdk-unit-tests (#73)
- fix(lidl-gen): refuse an unknown method name instead of answering None (#72)
- chore(deps): relock onto logos-protocol 4fc6973 — absent module fails fast, quiet traces (#71)
logos-standalone-app
- chore(deps): relock onto the unknown-method wave, and take view-module-runtime#40 (#67)
- chore: relock logos-liblogos to 532f086 (#66)
- chore(deps): relock logos-qt-mcp onto the screenshot fix (#65)
logos-storage-module
- chore: pin logosctl/lgpm (#104)
- chore: bump libstorage to v0.5.3 (#103)
- chore: bump libstorage to v0.5.2 (#102)
- fix: doctests (#100)
- chore: update mix presets and release metadata (#99)
logos-storage-ui
- chore: update deps and metadata for v3.0.0 (#99)
- chore: update version to v3.0.0-rc1 (#97)
- feat: lgx support and private toggle (#96)
logos-test-framework
logos-test-modules
- feat(flake): expose the modules for x86_64-windows (#79)
- fix(fullapi-ui): paint a backdrop so the result labels are visible (#78)
- test(interface): a bound call to a module without the method fails; relock onto the unknown-method wave (#77)
- chore: relock liblogos, logoscore-cli and module-builder (#76)
logos-tutorial
- interface-dependencies: show a loaded module that lacks the methods (#115)
- Drop the three logosctl workarounds the watch, reinstall and absent-module fixes made unnecessary (#114)
- Run the tutorials on linux-arm64 too (#113)
- outputs: regenerate calc-cpp-event.png with the event actually shown (#112)
- Fix a broken render, stale lm output and dead Step 1.5 links in the tutorials (#111)
- Run the tutorials on logosctl instead of logoscore and lgpm (#110)
- docs: correct stale prose the doctests cannot catch (#109)
- Run the LGX and caller-identity tutorials on Windows (#108)
- Pin the repos the tutorials build against in tutorial-set.json (#107)
- docs: describe the optional-package install fixes (#106)
- docs: describe recursive optional dependency installation (#105)
- docs: document optional package installation choices (#104)
logos-view-module-runtime
- fix(windows): put ui-host in a kill-on-close job so it dies with the app (#43)
- chore(deps): relock onto logos-protocol d838985, cpp-sdk 3bf5365, plugin-qt f9e969e (#42)
- fix(bridge): report a provider’s refusal to QML as an error, not a value (#41)
- fix!: reach view backends through dynamic replicas so reinstalls apply without a restart (#40)