Skip to content

Releases

Kazo OS 3.2.1

Choose a tag to compare

@github-actions github-actions released this 08 Nov 19:14
451737b

Fixed

  • Settings kept from before 3.0.0 can be read and saved again. The rename migration of 3.0.0 left most configuration files written before 3.0.0 (/etc/kazoos, ~/.config/kazoos) pointing at deleted content: their settings fell back to the defaults and saving one failed with ProviderFailure, for example when approving an app's access to the real network. The migration now writes those files correctly, and at the first start a one-time repair gives each damaged file its migrated content back, or empties it when that content cannot be proven, and lists each file in /var/log/syslog. (rename-migration.md)
  • The Store reads the official catalog again on a profile from before 3.0.0. The rename migration of 3.0.0 changed the address of the official catalog in /etc/kazoos/app-sources.config to a repository that does not exist (KazoOs-AppMarketPlace), so the Store showed "The catalog 'official' could not be read" and no app. The OS now reads the old names of Kazo-ca's app repositories as their current ones (Os-AppMarketPlace, Os-App-*), for catalogs and for apps installed from their repository. (rename-migration.md)

All versions: CHANGELOG.md

Kazo OS 3.2.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 19:24
5e7addb

New

  • The server issues the real-network grant approved in the OS, with its ports. Once an administrator approves network.real.access, the OS asks the connected server to issue the grant (POST /api/proxy/grants) with the approved ports, kept in the new [real-network-ports] section of /etc/kazoos/app-permissions.config, and checks it again at each sync. An app update that declares a new port asks for approval again. The operator can refuse these grants with KazoOs:Proxy:AcceptOsGrants = false. (server-network-relay.md, 0233-server-issued-real-network-grants.md)

All versions: CHANGELOG.md

Kazo OS 3.1.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 06:39
93c8103

New

  • Apps declare the real-network ports they need; the server relay blocks dangerous ports. An app lists its real-network ports in its definition (RealNetworkPorts = ["tcp/6697"], written realNetworkPorts in manifest.json, checked by the generator and kazopkg). The approval window of network.real.access shows them, and the server relay opens a declared port whose grant carries it on top of AllowedPorts. The new KazoOs:Proxy Tcp and Udp BlockedPorts lists (mail 25/465/587, file sharing and RPC, amplification services) always win; Settings shows them with each app's ports, and the server warns at startup when a list is empty. (server-network-relay.md, 0235-real-network-for-chat-apps.md)
  • Apps open TLS connections through the server's relay. KazoTcpClient.ConnectAsync takes KazoTcpConnectOptions { UseTls = true }: the server's relay opens TLS to the target, checks its certificate against the system trust store and TargetHost, and the app reads and writes clear text. A refused certificate throws AuthenticationException (relay code TLS_FAILED); KazoNetworkStream tells the negotiated TLS version and the certificate subject. There is no option to accept an invalid certificate. (0235-real-network-for-chat-apps.md, server-network-relay.md)
  • Apps open the files of your network drives. The network drives you mount count as your personal files: an app allowed to read your files (filesystem.user-home.read) now reads them too, with no dangerous capability, and filesystem.user-home.write writes them. Another user's drive and /mnt itself stay system files, and the drive's permissions still apply. (0231-network-drives-count-as-personal-files.md)
  • Child windows and dialogs for apps. A window app can open its own windows with ShowWindowAsync and its own modal dialogs with ShowDialogAsync, like Form.Show and Form.ShowDialog in WinForms. The window's component derives from KazoWindowBase and closes with CloseAsync(result); it belongs to the same app and closes with its owner. (window-model.md)
  • Frameless windows float on the desktop. A window with the None style is transparent: a click where its app draws nothing reaches the desktop or the window below, so an app with its own skin can float on the desktop (issue #378). (window-model.md)
  • Window styles inspired by WinForms, and apps that minimize their own window. A window app can choose the Normal, Tool or None style and turn off its icon, its Maximize and Minimize buttons or its taskbar button, in its manifest or at run time. It can also minimize, maximize, restore, move and resize its own window (issue #384). The OS dialogs now use the Tool style, with Close only and no taskbar button. (window-model.md, 0234-window-styles-inspired-by-winforms.md)

Improved

  • New illustrated app icons, shown everywhere. The system apps have new colour icons that show what each app does. The Start menu, the desktop shortcuts and the explorer now draw each app's own icon, installed apps included, instead of one icon per category; an icon pack still replaces them. Apps can read the icon address with KazoAppInfo.IconUrl. (0232-illustrated-app-icons-everywhere.md)

Fixed

  • A newly installed app can read your files right away. An app installed with kazopkg or the Kazo OS Store only received its declared capabilities at the next sign-in, so its first launch was refused access to your files. The signed-in user now gets them as soon as the app is installed or updated; dangerous capabilities still need an administrator's approval. (capabilities.md)
  • File dialogs open on your home folder and never take the OS down. An Open, Save or Select folder dialog asked without a start folder opened on /home/ followed by the user's identifier, which does not exist, and the OS crashed. It now opens on your home folder (/home/); a missing or unreadable start folder falls back to your home folder, then to /. (sdk-reference.md)

For developers

  • App repositories can tag a release from GitHub. The kazoos-solution template has a Tag a release workflow: it tags a commit of main with the app's version and starts the two publishing workflows, so a person or an agent can release without pushing a tag from a computer. (app-repository.md)
  • Apps are signed only in the Kazo OS Store repository. KazoOsPack no longer signs packages: the KazoOsKeyGen target, the KazoOsSigningKeyFile property, the generator's keygen and sign commands and the HACKEROS_APP_SIGNING_KEY variable are gone. The kazoos-solution template still publishes the kazoos-packages branch, unsigned; the secret can be deleted from app repositories. (0219-app-authors-signing-tool.md)
  • KazoClientWebSocket: apps reach real WebSocket servers without the server. The SDK gains KazoClientWebSocket, shaped like ClientWebSocket (sub-protocols, ConnectAsync, SendAsync, ReceiveAsync, CloseAsync). The OS opens the browser's WebSocket for the app, so it works with no Kazo OS server. It needs the network.real.access capability; an address of the simulated network is refused, and every frame is counted in /proc/net/dev. (sdk-network.md)
  • The catalog signing secret is now KAZO_STORE_SIGNING_KEY. The Kazo OS Store catalog signs its packages with the KAZO_STORE_SIGNING_KEY secret (same key as the former HACK_STORE_SIGNING_KEY). The docs and the AppPackageDefaults comment use the new name. (app-installation.md)
  • The kazoos-solution template has its launch profile again. The rename to Kazo OS had dropped Properties/launchSettings.json from the host project of the kazoos-solution template. It is back, so dotnet run and Visual Studio start the host on http://localhost:5280 with the browser debugger. (app-repository.md)
  • The store workflow of the kazoos-solution template finds an existing fork. publish-to-kazoos-store.yml guessed the fork as /Os-AppMarketPlace. A fork made before the catalog was renamed keeps its old name, so the clone failed. The workflow now asks GitHub for the author's fork of the catalog. (app-repository.md)

All versions: CHANGELOG.md

Kazo OS 3.0.0

Choose a tag to compare

@github-actions github-actions released this 05 Nov 02:05
e5c3652

What's Changed

  • docs : créer le secret HACK_STORE_TOKEN by @werddomain in #348
  • Modèle hackeros-solution : le workflow du Hack Store forke le catalogue sans --remote by @werddomain in #353
  • fix: Redémarrer active la nouvelle version même depuis une page ouverte par Ctrl+F5 by @werddomain in #352
  • fix: an app-sources.config without [catalogs] gets the host's catalogs by @werddomain in #354
  • fix: le démarrage réessaie tout seul après une erreur du serveur (503 après un déploiement) by @werddomain in #355
  • fix: serve installed apps' files after a Ctrl+F5 and keep another tab's app (ADR 0225) by @werddomain in #356
  • Mot de passe oublié : réinitialiser l'OS depuis l'écran de connexion (ADR 0226) by @werddomain in #357
  • La réinitialisation efface tout ce que HackerOS garde dans le navigateur (ADR 0227) by @werddomain in #358
  • docs: contributing guide for HackerOS and feature request steps by @werddomain in #359
  • docs: ADR 0228, HackerOS devient KazoOS by @werddomain in #360
  • feat: Cloudflare Worker redirecting hackos.kazo.ca to os.kazo.ca by @werddomain in #362
  • feat: afficher le nom KazoOS au lieu de HackerOS by @werddomain in #361
  • rename: add the KazoOS social preview image by @werddomain in #363
  • feat: afficher « Kazo OS » avec une espace ; ADR 0229 by @werddomain in #364
  • docs: badges et activité du dépôt dans les README by @werddomain in #365
  • rename/3+4: Kazo.Os.* packages and namespaces, Kazo* types, SDK 3.0.0 by @werddomain in #366
  • rename/6a: ADR 0230, rename migration based on the previous version by @werddomain in #368
  • rename/5: system and stored names (commands, extensions, paths, ids, ASP.Kazo, Kazo OS Store) by @werddomain in #367
  • rename/6: migrate pre-3.0 stored data to the Kazo OS names (ADR 0230) by @werddomain in #369
  • rename/7: serve Kazo OS at os.kazo.ca by @werddomain in #370
  • rename/9: HOS short names become KOS (.kosbak, KOSAPP, --kos-*) by @werddomain in #373
  • Rename HackerOS to Kazo OS throughout codebase by @werddomain in #372

Full Changelog: v2.2.2...v3.0.0

HackerOS 2.2.2

Choose a tag to compare

@github-actions github-actions released this 01 Nov 19:58
110ce74

Improved

  • Hack Store apps are signed. HackerOS now checks the signature of every app from the official Hack Store and refuses a package that was not signed by the catalog or was changed after. (app-installation.md)

All versions: CHANGELOG.md

HackerOS 2.2.1

Choose a tag to compare

@github-actions github-actions released this 01 Nov 05:36
4bf7f17

New

  • Set as wallpaper from the menu of an image. Right-click a PNG, JPEG or WebP image and choose Set as wallpaper: it becomes the desktop background at once, without opening Settings. With several screens, a submenu chooses the screen. (#330, 0218-set-as-wallpaper-file-menu.md, wallpapers.md)
  • Do not disturb. A Do not disturb switch in the clock panel (the shade on a phone) and in Settings ▸ Notifications stops the notification bubbles and sounds, errors included. Notifications still go to the clock panel and the unread dot still shows them. A moon in the notification area says the mode is on; the choice is saved for each user in ~/.config/hackeros/notifications.config. (0216-do-not-disturb.md)
  • Mouse Back and Forward buttons in apps. The mouse Back button, Alt+← and the phone's Back (Android button or gesture, iOS swipe) now go to the active app instead of moving the browser tab back and leaving HackerOS; the mouse Forward button and Alt+→ go forward. On a phone, Back follows the ◁ button. Apps receive them through IAppBackHandler and the new IAppForwardHandler, with the new MouseButton and SystemBack sources. (0220-mouse-back-forward-buttons.md)
  • Wallpaper on the mobile home screen. The mobile home screen can show an image too. In Settings ▸ Appearance ▸ Wallpaper, pick « Mobile », then an image and how it fits; the desktop keeps its own choice. Without an image, the mobile theme's background stays. (0217-mobile-home-wallpaper.md)

Improved

  • Frosted glass app drawer on the iOS theme. On the iOS mobile theme, the app drawer is now the same frosted glass as the notification shade, so the wallpaper shows through. Other themes keep an opaque drawer; a theme can choose with --hos-mobile-drawer-background and --hos-mobile-drawer-backdrop-filter. (0217-mobile-home-wallpaper.md)

Fixed

  • Installed apps keep their look. An app installed from the Hack Store or with hackpkg now loads its own styles and scripts, and looks the same as an app that comes with HackerOS. (0221-pack-all-static-web-assets-of-an-app.md)
  • Installed apps speak your language. An app installed from the Hack Store or with hackpkg now shows its French texts, as an app that comes with HackerOS does. (0222-installed-app-satellite-assemblies.md)
  • Restarting to update opens the new version. When a new version of HackerOS is available, it now downloads in the background, and « Restart to update » opens it instead of an older copy kept by the browser. Other open HackerOS tabs restart too, and the Start menu Restart also takes the new version. If the download fails, nothing closes and you are told. (0223-restart-onto-the-new-version.md)

For developers

  • App packages carry their satellite assemblies. HackerOsPack puts the satellite assemblies of the app's own assemblies in the package at lib//.resources.dll; the OS checks them and loads them before the app's first render. (0222-installed-app-satellite-assemblies.md)
  • HackerOsPack packs every static resource of an app. The package now holds the whole wwwroot/, the collocated .razor.js files and the scoped CSS bundle, declared in the package's manifest with their SHA-256; the publish workflow of the hackeros-solution template copies that manifest into the catalog folder. (0221-pack-all-static-web-assets-of-an-app.md)
  • Signing tool for app authors. dotnet build -t:HackerOsKeyGen creates an author's signing key, HackerOsPack signs each package with the HACKEROS_APP_SIGNING_KEY secret, and the hackeros-solution template publishes the signed packages on the hackeros-packages branch on each version tag. Administrators require an author's signature by adding their public key to [signing-keys]. (0219-app-authors-signing-tool.md)

All versions: CHANGELOG.md

HackerOS 2.2.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 06:23
4976132

New

  • Window animations. Windows now open, close, minimize into their taskbar button, restore, maximize and snap with a short fade and scale. The Reduce motion setting turns the animations off, and a theme can change their duration. (#311, 0198-window-animations.md)
  • Notification bubbles. Each new notification from the OS or an app now shows as a bubble for 6 seconds, above the taskbar of the first screen or at the top of a phone screen, then stays in the clock panel. Pointing at a bubble keeps it open. A ready update arrives the same way, with its Restart to update button. (#309, 0197-notification-toasts.md)
  • Installable local server. The HackerOS server installs on your computer as a service on Windows, Linux and macOS, or as a Docker image, from the archives attached to each release. It listens on this computer only, or also on the local network over HTTPS with a local certificate authority. Settings > Server connection > Local server lists the downloads, tests an address and pairs this device with a one-time code; apps get HackServerConnection.PairAsync and TestAsync. (#308, 0191-installable-local-server.md, installable-server.md)
  • Real sites in the browser through the HackerOS server. With a HackerOS server connected, the Browser opens real web sites through its proxy and stays signed in to them (cookies and redirects are kept). An icon at the start of the address bar tells where the page came from, and http pages say Not secure. Apps get HackHttpResponse.Source and the TimedOut and BlockedByAdministrator network errors. (#305, 0210-browser-real-sites-through-the-proxy.md)
  • System sounds. The OS plays a sound for notifications, warnings, errors, sign-in and sign-out. Choose the sound theme (HackerOS or Soft), the volume or turn the sounds off in Settings > Sound. Add your own theme in ~/.local/share/sounds (freedesktop.org format, OGG or MP3). (#304, 0204-os-event-sounds.md, system-sounds.md)
  • Open a .zip as a folder. A double click on a .zip file in the File Explorer opens it as a read-only folder, with its path in the address bar. A file opened from the archive is extracted to /tmp first. Dragging or pasting items out of the archive extracts them; renaming, deleting or adding inside it is refused. Double-clicking a .zip on the desktop opens it in the File Explorer. (#302, 0185-file-explorer-improvements.md, file-explorer.md)
  • Taskbar window previews. Hovering a window's taskbar button shows a small live copy of the window, with a button to close it. Click the preview to bring the window to the front. Rest the pointer on it to see that window alone: the other windows of the screen keep only their outline. (#300, 0199-taskbar-window-previews.md)
  • Taskbar context menus. A right click on a window's taskbar button gives New window and the window menu with Other screen. A right click on the rest of the taskbar gives Task manager, Show the desktop, Cascade windows, Tile windows and Taskbar settings, for the windows of that screen. (#289, 0194-taskbar-context-menus.md)
  • Start as a guest, then create your account. On a new installation, Start as a Guest opens the desktop without an account. Create my account (sign-in screen, Settings ▸ Users or the Start menu) then makes it a real account with a password, keeping the guest's files or starting over. (#286, 0187-guest-start-and-sign-in-credits.md, guest-account.md)
  • The clock shows your local time. The clock, the date command, ls -l and the apps now use your time zone: the device's by default, or one chosen in Settings > Date and time. Apps read it with HackTimeZone and IAppExecutionContext.TimeZone. (#283, 0193-local-time-and-time-zone.md)
  • Compress, Download, Copy path and Send to. The File Explorer file menu can compress items, download them, copy their path and send them to another place. (#275, 0185-file-explorer-improvements.md)
  • Drag files out of the browser to download them. Drag items from File Explorer to your computer to download them; several items arrive as a .zip. (#275, 0185-file-explorer-improvements.md)
  • Credits on the sign-in screen. The sign-in screens and Settings ▸ About show the author and a link to the GitHub project. (#262, 0187-guest-start-and-sign-in-credits.md)
  • A taskbar on every screen and an "Other screen" menu. Each screen can have its own taskbar. The window icon and the Maximize button offer to send a window to another screen, and a shortcut identifies each screen. (#238, 0179-per-screen-taskbars-and-other-screen-menus.md)
  • Drag a window to another screen. Drag a window by its title bar onto another screen; an outline shows where it will land. (#238, 0183-drag-a-window-between-screens.md)
  • Install apps from GitHub with hackpkg. The hackpkg command installs, updates and removes an app from its GitHub repository. App authors build the .hackapp package with HackerOsPack. (#238, 0182-install-apps-from-github.md)
  • Mount a computer folder as a network drive. In Chrome and Edge, a folder of your computer can be mounted under /mnt and used like any other drive, with the mount and umount commands. (#238, 0181-host-folder-mounted-as-a-network-drive.md)
  • Settings ▸ Screens. A new Settings page lists your screens, opens or closes them, restores them after a restart and remembers where each one goes. (#238, 0180-screen-service-placement-and-memory.md)
  • Use several screens. Extend HackerOS to other monitors: each screen gets its own desktop, and windows move from one screen to another. (#238, 0178-extended-screens-in-display-surfaces.md)
  • New Folder button in folder dialogs. The Choose folder and Save dialogs have a New Folder button, also used by Open Folder in Code Editor. (#218, 0175-new-folder-in-the-choose-folder-dialog.md)
  • Cursor themes. Settings ▸ Appearance ▸ Cursors changes the pointer of the whole OS: System (the device's cursors), HackerOS Neon, Gothic Crimson, or your own theme, a folder of PNG cursors with their hot spot in ~/.config/hackeros/cursors/ or /etc/hackeros/cursors/. Apps need no change. (0205-cursor-themes.md, cursor-themes.md)
  • Hack Store: apps open without a restart, signed packages, safe installs. An app installed or updated opens at once when it was not already loaded. Packages from a source with a signing key are verified before install. Installs are transactional: an interrup...
Read more

HackerOS 2.1.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 01:20
75705c2

What's Changed

  • HackerOS 2.1.0 et annonce d'une nouvelle version aux sessions ouvertes (ADR 0174) by @werddomain in #217

Full Changelog: v2.0.3...v2.1.0

HackerOS 2.0.3

Choose a tag to compare

@github-actions github-actions released this 26 Oct 01:08
b9da3f4

What's Changed

Read more