<p><strong>What's New really does stop at v1.8.0 now.</strong> The first correction removed old generated release blocks but missed six much older hand-written v1.2 sections at the bottom of the modal. Those sections are gone, and the release check now recognizes and rejects that legacy format too, so the history floor cannot falsely pass again.</p>
<p><strong>The installer carries the same corrected release and Companion 0.5.28.</strong> Its artifact gate now checks the companion APK version and the v1.8.0 What'sNewfloorinsidethefinishedISO,soastalefrontendorphoneappcannotbepublishedunderthecurrentreleaselabel.</p>
<p><strong>AppsopenoverHTTPSwhenyournodedoes.</strong>ConnecttoyournodeoverHTTPSandtheappsyouopen—Vaultwardeninitsowntab,BTCPay,Grafana,andtherest,onaremotebrowserorinthephone's in-app browser — now open on the same secure connection instead of silently dropping to plain HTTP. The node'sappgatealreadyservedTLSoneveryappport;thedashboardwashandingouthttp:// addresses regardless of how you reached it. Ports the gate does not front (plain-HTTP publishes, and the API ports like Cuprate's RPC) deliberately stay on http — https there would simply fail to connect. Plain-HTTP access (the kiosk, LAN browsing) is unchanged.</p>
<p><strong>Everyappinthestoreisnowafirst-classplatformapp.</strong>Thelaststragglers—NginxProxyManager,Tailscale,Ollama,CryptPad,andAdGuardHome—nowcarryfullmanifests:thenode's app gate fronts their web ports (TLS on the same port, the node login where appropriate, embedding fixes, Tor), installs go through the orchestrator like every other app, and their pins live in the signed catalog. Ollama stays loopback-only — it is the assistant'slocalmodelbackend,notawebapp.Thefourappsretiredearlier(FIPS,NostrVPN,Routstr,Penpot)arefinallydroppedfromthecatalog,andCuprate's manifest — which carried a duplicated metadata block that strict parsers reject — is fixed.</p>
<p><strong>Newly signed apps appear in the App Store immediately.</strong> The App Store now serves the release-signed catalog the node has already fetched and verified — so publishing a signed app (like Cuprate) makes it appear for every updated node without waiting for a dashboard release. The unsigned community catalog remains only as a fallback for nodes that can'treachtheregistry.ThesamesignedcatalognowalsodecideswhichportsserveTLS,sonothingisupgradedtohttpsthatcan't answer it.</p>
<p><strong>Companion 0.5.28 is included in the node download this time, with the work that missed v1.8.5.</strong> The companion hub can back up and restore its node list, act as a NIP-46 remote signer, and shows each paired node'sFIPSmeshaddresswithtap-to-copy.ForTermuxusers,theincludedfipsshhelperturnsadurablenodenpubintoitsmeshaddress,sofipsshuser@npub1…canreachSSHoncethatnodehasexplicitlyallowedport22.Thenode-side“SSHovermesh”firewalltoggleisnotclaimedhere—itstillneedsimplementationandremainsoffbydefault.</p>
<p><strong>What's New now starts cleanly at v1.8.0 and is guaranteed to be newest-first.</strong> Older alpha history no longer overwhelms the useful recent changes, the three stray v1.7 entries that appeared above current releases are gone, and the release check now fails if either the ordering or the v1.8.0 history floor drifts again.</p>
<p><strong>A release can no longer advertise itself before its files exist.</strong> New releases are prepared behind a pending manifest; the publisher uploads the backend and frontend, downloads both back and verifies their size and hash, and only then promotes the signed manifest to the path nodes read. The manifest generator also includes every curated What'sNewiteminsteadofsilentlystoppingafterthefirsttenphysicalchangeloglines.</p>
<p><strong>Cuprate—anindependentMoneronode—isnowanapp.</strong>Moneroconsensusvalidatedbyasecond,unrelatedcodebase(Rust),thesamelayerofsecurity-in-depthBitcoingetsfromKnots.Reviewcaughttwoproblemsbeforeanythingshipped:theunrestrictedRPCthatcanmovefundsstayedboundtothecontainer's loopback (never published to the node, let alone the LAN — anything on the node could previously have reached it), and its restricted RPC moved off port 18089 to avoid colliding with Penpot. Honest caveat: upstream has cut no stable release yet, so the pin tracks an exact preview build (0.1.0-preview-18-g618ff14) and moves to their first tagged release when there is one.</p>
<p><strong>A frozen node now explains itself — and comes back on its own.</strong> The host now captures a memory dump into /var/crash when the kernel panics <em>or</em> wedges (a hung kiosk used to sit dead until someone power-cycled it; now it dumps, reboots itself, and leaves the evidence behind), and records failing-memory signals (ECC errors) into a database as they happen. This is the first change delivered by a new host-update channel: the node'sownupdaternowcarriesOS-levelpackagesandsettingstoalready-deployedmachines—thecrash-kernel's memory reservation is the one part that waits for a reboot, and the node says so rather than pretending.</p>
<p><strong>Uninstalling an app can no longer report success when it failed.</strong> The declarative path used to swallow every teardown error and report the app uninstalled, leaving the tile behind and the truth in the logs. A failed uninstall now stops and shows the real per-app errors, so "still there" is never presented as "gone".</p>
<p><strong>Pictures to internet-only mesh contacts work now.</strong> Sending an attachment inline always took the radio path and failed with "Peer is federation-only (no radio twin)" for contacts reachable only over the internet — and the size-adviser kept recommending a radio transfer those peers can'treceive.Bothfixed:inlinesendsrouteoverthefederationwhenthat's the only way to reach the peer, and the advice no longer offers radio-only transfers to radio-unreachable contacts.</p>
<p><strong>Disk cleanup finally has honest numbers.</strong> Space "free" on a drive was counted including the slice the filesystem keeps reserved for root — roughly 5% of the disk, 92 GB on one dev box — so the automatic cleanup that'ssupposedtokickinat90%nevertriggeredandstalecontainerimagespiledupunnoticed.Reservedspacenowcountsasused,whichiswhatthethresholdwasalwaysmeanttomeasure.</p>
<p><strong>Threesmallscreensthatwerelyingtoyou,fixed.</strong>The"Bitcoin is synced — fund your wallet"toastnolongerappearsonanodewherethewalletitmeans(LND)isn't installed — it points at installing LND instead. The seed-reveal screen hides its third prompt unless the password actually fails to decrypt (the backup passphrase only exists if you set one). And multi-version store cards stop quoting a version number you'llbeaskedtochooseonthenextscreenanyway.</p>
<p><strong>Meshnotificationssurvivearefresh,andastalerouternolongerhidesthefix.</strong>Radiomessageunreadcountsarenowrememberedpercontactinsteadofguessedfromsessionstate(the"one new message showed 11 unread"bug),coverMeshtastic,MeshCoreandReticulumalike,anddeep-linktotherightconversation;asinglenewmessageannouncesitselfonce.Separately,whenthecachedrouteraddressgoesstale,theerrorcardgainsa"Reconfigure router"actioninsteadofaRetryloopthatcanneversucceed.</p>
<p><strong>Theappupdaternowknowswhatupstreamshipped.</strong>Everyapp's manifest records where it comes from — including the odd corners (GitLab-only projects, ghcr-only images) — and a checker sweeps all of them against upstream releases, so a pin that quietly rots for months is now visible instead of invisible. The first full sweep found 27 pins behind; the safe patch-level ones shipped with this release (strfry, BTCPay Server 2.4.3, the two nginx frontends), and the major jumps that may carry data migrations are deliberately held for their own careful passes.</p>
<p><strong>Apps with their own login can now skip the node'sloginscreen—GiteaandBTCPayServerdosooutofthebox.</strong>Someappsbringacompleteaccountsystemoftheirown,andputtingthenode's password page in front of them broke real workflows: git clients can'tanswerabrowserlogin,andaBTCPaycheckoutlinkhandedtoacustomermustopenforthatcustomer.Theseappsarenowserveddirectlyontheirownlogin,whilethenodestillfrontstheconnectionforeverythingelseitdoes(embeddingfixes,the"app is restarting"page,Tor).Everyappgetsanew<strong>Settings→app→Accesscontrol</strong>switch,soyoucanputthenodeloginbackinfrontofanyapp—ortakeitawayfromone—withoneclick,effectiveimmediately.Appdevelopersdeclarethedefaultintheirmanifest(auth:open),documentedinthedeveloperguide.</p>
<p><strong>ThephoneremotenowworksinsideappsontheTV—tap,scroll,andtypeeverywhere.</strong>Thecompanionremoteandkeyboarddrovethedashboardbeautifullybutdiedattheedgeofanyappscreen(Gitea,BTCPay,andfriends):forthebrowser,eachappisaseparatewebsiteembeddedinthepage,andsimulatedinputisforbiddenfromcrossingthatwall.Theon-screendisplaynowacceptstheremote's input the way a real mouse and keyboard arrive — below the page, through the browser itself — so it lands anywhere on screen, app screens and tabs included. Taps click, two-finger scrolling scrolls the app, and typing goes into whichever field you tapped. Existing kiosks pick this up with the update, no reinstall needed.</p>
<p><strong>While you'redrivingwiththephoneremote,theoldmousepointergetsoutoftheway.</strong>Thecomputer's own pointer used to sit frozen wherever the physical mouse last left it — a second, dead cursor next to the live orange one. It now hides while the remote is in use and returns half a minute after the last remote input.</p>
<p><strong>"Are you sure?" questions no longer freeze the remote.</strong> A handful of confirmations (clearing mesh history, rebooting, deleting a backup, uninstalling an app) used the browser'sbuilt-inpopup,whichstopsthewholepage—includingremoteinput—untilsomeoneclicksitwitharealmouse.Fromthecouch,thatmeantaskingaquestionyoucouldn't answer. All of them are now proper in-app windows in the house style, fully driveable by remote.</p>
<p><strong>A mesh radio now connects no matter which port it'spluggedinto—orrepluggedinto.</strong>MovingaradiotoadifferentUSBportcouldleavethemeshsilentlydown:thenodeonlycheckedashortfixedlistofportnames(aradiolandingoutsideitwasinvisible),ahand-setserial-portoverridequietlyoutrankedthedeviceyou'd just approved in the "Radio detected" window, and one whole family of boards (Espressif-based radios like recent Heltec/T-Deck models) never received a stable device name at all — the exact combination found live on a fleet machine this week. All three are fixed: every serial port is scanned, choosing a radio in the detection window clears any stale override, and Espressif boards get the same stable name as everyone else.</p>
<p><strong>Mesh signal strength is honest now.</strong> Every peer heard over Reticulum radio reported a signal strength of exactly 0 — which is also what you'dseewithnoradioatall,andwhatpeersreachedovertheinternetshowed.Realreceptionsnowshowtheirtruesignalreading,andanythingthatarrivedoverarelayortheinternetsayssobyshowingnone—so"the radio is working"and"the internet is doing the radio's job"nolongerlookidentical.(Thereadingdependsontheradio's firmware reporting it; boards that don'treportper-packetsignalstatsshow"unknown"ratherthanamade-upnumber,andthenewradiodiagnosticsshowataglancewhetheryoursreportsthem.)</p>
<p><strong>ThenetworkmaponTVs:nomoreblankpage,nomorefrozenpage—anditmovesagain.</strong>Themap's entrance animation needed a smoothness that TV kiosk hardware can'talwaysdeliver,sothepagecouldsitblankuntilarefresh;thepreviousfixcuredthefreezebystoppingtheanimationentirely,whichwenttoofar.Nowthemapappearsinstantlywitheverythingalreadyinplace,thenresumesitscalmorbitalmotionatagentlerpacesuitedtoTVs.Resizingorrotatinganyscreenalsoredrawsthemapproperlyinsteadofleavingittiny,stretched,orempty.</p>
<p><strong>Thedashboard's corner logo is back to normal.</strong> The new glossy paint finish was meant for the big emblem on the screensaver, intro, and login screens — it had quietly spread to the small logo in the dashboard header, where it looked wrong. Each screen now gets exactly the treatment intended for it.</p>
<p><strong>App icons no longer vanish in My Apps.</strong> The freshly restyled Alby Hub and phoenixd icons could render as blank squares in some views — a subtlety in how the icon files declared their size. Fixed at the source, and the icon tool app developers use now produces immune files.</p>
<p><strong>An app that can'tbeshowninsidethedashboardnowbecomesatabappbyitself.</strong>Afewappsrefusetorenderinsideanotherpagenomatterwhat—theybreakoutwiththeirowncodeorinsistonowningthewholebrowserwindow.Openingoneusedtomeanstaringatagreypane.Nowthedashboardnotices,offerstheappinitsowntab,andremembers:fromthenonthatapp's button opens a tab directly (with the little launch icon that tab apps carry), first click, every time. If a later update makes the app embeddable after all, the dashboard notices that too and goes back to embedding it.</p>
<p><strong>The logo emblem got its glossy black paint finish — properly this time.</strong> The circle behind the A on the screensaver, intro, and login now wears a deep wet-paint look: warm light blooming from the top edge, fine grain so the dark tones stay smooth instead of banding, and no more ring border. (An earlier rougher version of this experiment briefly shipped by accident and then vanished depending on which screen you were on — this is the finished, deliberate one, everywhere.)</p>
<p><strong>New app icons now match the store'slook,oneveryscreen.</strong>AlbyHubandphoenixdarrivedwithedge-to-edgelogosthatignoredthebreathingroomeveryotherappiconhas,andtheappdetailpageskippedtheiconbackdropentirely.Bothiconsarere-setonthestandardcanvas,thedetailpagenowappliesthesameicontreatmentasthestoretiles,andappdevelopersgetaone-commandtoolthatputsanylogoontothehousecanvasautomatically.</p>
<p><strong>Appsthatrefusedtoopeninsidethedashboardnowembedlikeeverythingelse.</strong>Someappsshipbrowserheadersthatforbidbeingshowninsideanotherpage—correcthardeningontheopenweb,butinsideArchipelagoitproducedadeadgreypanewhenyouopenedthemfromMyApps(AlbyHubwasthefirsttohitit).Theappgate,whichalreadychecksyourloginoneveryrequesttoanapp,nowremovesjustthoseframingheadersonthewaythrough;eachapp's own content-security rules pass through untouched. No more per-app proxy workarounds.</p>
<p><strong>The network map no longer freezes kiosk TVs.</strong> The animated federation map at 4K was too much for the deliberately conservative graphics settings the on-screen display used on every machine — settings chosen years back to stop audio crackle on much older hardware. Two fixes: on kiosk screens the map now opens in its flat 2D view (the 3D globe is one tap away, and remembered) and animates at half rate — invisible from the couch, half the work. And the display itself now recognizes what machine it runs on: older kiosk boxes keep the proven careful settings, modern ones finally get real GPU rendering.</p>
<p><strong>New Settings → Display → Graphics choice for the on-screen display.</strong> Auto (recommended) picks the right rendering mode for the machine by itself; Compatibility forces the most conservative mode if a screen ever stutters, tears, or crackles; Quality forces full GPU rendering on hardware the automatic detection doesn'trecognize.Changingitrestartstheon-screendisplay,likethesizepresets.</p>
<p><strong>Installinganupdateisreliableagain,andtellsyouwhathappenedwhenitisn't.</strong> Some nodes could download an update but never apply it — the button stayed on "Install", and no amount of retrying worked. The cause: applying the update consumed the downloaded files as it went, so if any one step hit a snag partway through, the leftover files were incomplete and every later attempt failed the safety re-check forever, needing a technician to recover. Applying no longer consumes the download — a failed apply can always be retried from the same files — and the pieces are now applied in a fixed order with the program itself last, so a hiccup can'tleaveahalf-swappednode.Whenanapplydoesfail,thescreennowshowstherealreasonandwhattodo("download the update again"),andoffersDownloadagaininsteadofadead"Install"button,ratherthanageneric"it failed".</p>
<p><strong>Videoonthekioskstopstearing.</strong>Thekiosk's display had no vertical sync at all, so fast motion — IndeedHub films especially — showed horizontal tearing lines. The display driver now syncs every frame to the panel (no extra hardware needed, existing kiosks pick it up with this update), and on machines with a GPU, video decoding moves off the CPU onto the video hardware — smoother playback that also leaves more headroom for audio, not less.</p>
<p><strong>The Back button finally does what you expect.</strong> Pressing Back — the mouse'ssidebuttononakiosk,aswipeonaphone,thetoolbarbuttoninanybrowser—usedtonavigatethescreenunderneathanopenwindow,orleavethedashboardentirely.Backnowclosesthetopmostopenwindowfirst,oneperpress,exactlylikeanativeapp;closingawindowyourselfneverleavesaphantomentrythatmakesyoupressBacktwice.</p>
<p><strong>NomorebareIPaddressesinyourupdateorapp-registrysettings.</strong>Theupdatemirrorsandtheappregistryeachlistedthesameservertwice—oncebyitspropername,onceasarawhttp://146… address left over from before the domain existed. The raw-address entries are retired: new nodes never see them, and existing nodes clean them out of their saved lists automatically on the next read. Everything now goes through the named, TLS-protected origin — which was always the same machine.</p>
<p><strong>TheReceivewindownowtellsyouwhenthemoneyisonitsway.</strong>PreviouslyitshowedaQRcodeandleftyoutocheckelsewherewhetheranythinghappened.Now,themomentthesender's transaction is broadcast, the QR gives way to a clock: the amount, the transaction ID (tap to copy), and a note that the funds arrive on their own — with a single Done button. If you keep the window open, the clock becomes a green check at the first confirmation. Verified live on a real node: payment detected within seconds of broadcast.</p>