Linux-ondersteuning en webtools in tabbladen - #2
Merged
martijn3BM merged 2 commits intoJul 20, 2026
Merged
Conversation
De installer koos altijd een Windows-installer-asset en kon op Linux dus niets installeren, detecteren of starten. Deze commit maakt de backend platform-bewust. - github.rs kiest het asset dat bij het platform past: op Linux alleen x86-64 AppImages (.deb vergt root, ARM-builds draaien niet op een gewone desktop). Op macOS wordt bewust niets gekozen, zodat de app eerlijk "geen installer" toont in plaats van een Windows-exe aan te bieden. - linux.rs beheert AppImages zonder beheerdersrechten: plaatsen in ~/.local/share/openaec-installer/apps/<tool>/, uitvoerbaar maken, oude versies opruimen en een menu-snelkoppeling schrijven. Zelf bijwerken vervangt de draaiende AppImage via $APPIMAGE. - registry.rs detecteert op Linux via die beheerde map; de versie komt uit de bestandsnaam, met dezelfde logica als voor de release-assets. - Gestarte tools krijgen een eigen procesgroep, losgekoppelde uitvoer en worden opgeruimd. Zonder de eigen procesgroep sleepte het afsluiten van de installer elke gestarte tool mee het graf in. Getest met een install-, detectie- en updaterondgang op schijf, en met alle zeven tools die daadwerkelijk een AppImage publiceren. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Webtools openden altijd in een externe browser. Ze hebben alleen een webview nodig, dus draaien ze nu in tabbladen binnen de installer zelf. - Browserachtige tabbalk: een vaste catalogus-tab plus een sluitbare tab per geopende webtool. De balk verschijnt alleen zodra er iets openstaat. - Elke tool met een webUrl kan in een tab, dus ook de webversies van desktop-tools. Die krijgen daarvoor een eigen knop op de kaart; zonder die knop was er voor een geinstalleerde tool geen enkele route naar een tabblad, omdat een klik op de kaart de native app start. - Open tabs blijven gemount, zodat wisselen de tool niet herlaadt en sessie en invoer behouden blijven. Open tabs worden bewaard en bij het opstarten hersteld; ids die niet meer bestaan vallen weg. - Openen in de externe browser blijft overal beschikbaar, ook als vluchtroute mocht een site ooit embedding blokkeren. Daarnaast in deze commit: - De installatiemelding volgt het platform: op Linux is de tool direct klaar voor gebruik, op Windows loopt de gebruiker een setup-UI door. - De voortgangsbalk blijft staan tot de installatie helemaal afrondt. Hij verdween eerder al bij het laatste downloadevent, waarna melding en statuswissel er los achteraan kwamen: dat gaf zichtbaar geknipper. - Vitest toegevoegd voor de tab-logica (10 tests) en meegenomen in CI. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Waarom
De installer werkte in de praktijk alleen op Windows: hij koos altijd een Windows-installer-asset en kon op Linux niets installeren, detecteren of starten. Daarnaast openden webtools altijd in een externe browser, terwijl ze alleen een webview nodig hebben.
Wat er verandert
Linux-ondersteuning. Het gekozen release-asset volgt nu het platform: op Linux alleen x86-64 AppImages (
.debvergt root, ARM-builds draaien niet op een gewone desktop). AppImages worden zonder beheerdersrechten beheerd in~/.local/share/openaec-installer/apps/<tool>/— geplaatst, uitvoerbaar gemaakt, oude versies opgeruimd en met een menu-snelkoppeling. Detectie leest die map en haalt de versie uit de bestandsnaam. Zelf bijwerken vervangt de draaiende AppImage via$APPIMAGE. Op macOS wordt bewust geen asset gekozen, zodat de app eerlijk "geen installer" toont in plaats van een Windows-exe aan te bieden.Webtools in tabbladen. Een browserachtige tabbalk met een vaste catalogus-tab plus een sluitbare tab per geopende webtool. Elke tool met een
webUrlkan in een tab, dus ook de webversies van desktop-tools. Open tabs blijven gemount, zodat wisselen de tool niet herlaadt en sessie en invoer behouden blijven; ze worden bewaard en bij het opstarten hersteld. Openen in de externe browser blijft overal beschikbaar, ook als vluchtroute mocht een site ooit embedding blokkeren.Drie fouten rond het starten van tools. Een gestarte tool stond in de procesgroep van de installer, waardoor het afsluiten van de installer elke gestarte tool meenam — die verdween dan zomaar van het scherm. Verder lieten afgesloten tools een zombieproces achter en schreven ze hun logregels door de uitvoer van de installer heen.
Zichtbaar geknipper bij installeren. De voortgangsbalk verdween al bij het laatste downloadevent, waarna melding en statuswissel er los achteraan kwamen. De balk blijft nu staan tot de installatie helemaal afrondt.
Getest
cargo test— 5 tests, waaronder een install-, detectie- en updaterondgang op schijf.npm test— 10 tests op de tab-logica (openen, dedupliceren, sluitfocus, herstelfiltering). Vitest is toegevoegd en draait mee in CI.Bekende beperkingen
.debof anderszins buiten de app om geïnstalleerd zijn.target="_blank"-popups werken binnen een iframe mogelijk niet; de vervolgstap zou native child-webviews zijn.Ontwerp van de tabbladen:
docs/superpowers/specs/2026-07-20-webtool-tabs-design.md🤖 Generated with Claude Code