• v0.8.2 02c0974f72

    Release 0.8.2 Stable

    admslader released this 2026-10-23 15:39:55 -04:00 | 0 commits to main since this release

    v0.8.2 — New icon and the Keyworks identity

    Orbita gets its new transparent logo, a clearer Keyworks Technology
    identity, and the cloud.keyworks.orbita app id.

    🎨 Look & feel

    • 🪐 New Orbita logo — the transparent ring/planet mark is now the Linux app
      icon and the in-app sidebar and About mark.
    • 🏷️ Keyworks Technology — the sidebar, About section, window title, desktop
      entry, appdata, web metadata and README credit the company.

    🔑 Identity

    • 🆔 New app id — cloud.keyworks.orbita replaces cloud.sladertech.orbita
      across Android, Linux, iOS and macOS.
    • 🖥️ Linux desktop identity — existing AppImages still launch; the new app id
      changes the desktop/WM identity.
    • 🧹 One-time keychain reset — the storage keys moved to orbita.*, so the
      admin token and local preferences need to be entered again.
    • 💾 Signing key unchanged — existing release signatures and the embedded
      public key keep working.

    🚀 Releases

    • 🧵 Tapestry — the release panel uses the tapestry repo and
      tapestry-* artifacts.
    • 🛍️ Nyra — the release panel uses the nyra repo and nyra.apk.

    🧱 Under the hood

    • dart analyze clean, all tests green, Linux build succeeds.
    • The 1024×1024 master artwork lives at docs/branding/orbita-icon.png.

    📦 Assets

    Attach the matching asset (and its .sig) to install automatically:
    Linux orbita-0.8.2-linux.AppImage.

    Downloads
  • v0.8.1 5e0cff67dc

    Release 0.8.1 Stable

    admslader released this 2026-10-22 18:59:12 -04:00 | 11 commits to main since this release

    v0.8.1 — Update verification hardening

    This patch makes release builds verify their own updates, locks down the
    signing key, and hardens the release tooling.

    🔐 Security

    • 🛡️ Signed updates in release builds — the AppImage build now embeds the
      release-signing public key, so the updater verifies every downloaded artifact.
      A build without the key fails instead of shipping unverified updates.
    • 🛑 Fail closed on updates — a release build with no embedded key refuses
      to apply an update rather than trusting it.
    • 🔑 Signing-key permissions — keygen writes the private key with 0600
      permissions and warns if an existing key is group/world-readable.
    • 🙈 Site secrets redacted — SiteInput.toString no longer renders the
      site secret or service-role key.
    • 📦 Container build pins — the Debian base image is digest-pinned and the
      Flutter tarball is verified against its published SHA-256.
    • 🕵️ Token out of ps — the Forgejo token is passed to curl via a
      short-lived 0600 config file instead of a command-line header.
    • 🔗 Stricter update URLs — asset URLs with embedded credentials or a
      non-Forgejo port are refused; Forgejo uploads don't follow redirects; a
      non-HTTPS Forgejo base URL is rejected.
    • 🧭 AppImage path check — the updater only replaces a real .AppImage
      file when APPIMAGE is set.

    🐛 Fixes

    • 🧹 Doc comment — the update-service repo example now reads orbita.

    🧱 Under the hood

    • Added regression tests for the update-URL port/credentials checks, the
      non-HTTPS Forgejo base URL, and the upload redirect refusal.
    • dart analyze clean, all tests green.

    📦 Assets

    Attach the matching asset (and its .sig) to install automatically:
    Linux orbita-0.8.1-linux.AppImage.

    Downloads
  • v0.8.0 3babf25462

    Release 0.8.0 Stable

    admslader released this 2026-10-22 12:17:32 -04:00 | 13 commits to main since this release

    v0.8.0 — Orbita

    Command Center is now Orbita — a new name, a new repo, and a new icon, with
    the same license control plane underneath.

    🏷️ Rebrand

    • 🪐 Orbita — the app is renamed from Command Center to Orbita, the
      control plane that watches over the fleet.
    • 🎨 New icon — a deep-teal tile with a cyan orbit ring, a cream planet and
      an amber accent, matching the Tapestry icon family.
    • 🪟 New identity everywhere — the window title, sidebar header, Linux
      binary and app id, desktop entry, appdata and web metadata all read Orbita.
    • 📦 New repo — the Forgejo repository is now admslader/orbita; release
      tooling and the updater point at it.

    🖥️ Platform

    • 🐧 Linux — binary orbita, app id cloud.sladertech.orbita, and the
      desktop/appdata/icon files renamed to match.
    • 🤖 Android — namespace and application id cloud.sladertech.orbita,
      label Orbita.
    • 🍎 iOS/macOS — display name, bundle ids and product name updated.
    • 🪟 Windows — project/binary name, window title and product metadata
      updated.
    • 🌐 Web — title, manifest and description updated.

    🛠️ Tooling

    • 🚀 Release target — the app id, label and artifact name are now orbita;
      the AppImage is orbita-0.8.0-linux.AppImage.
    • 🔗 Repo references — the release repo, FORGEJO_REPO, the appdata
      homepage and the README/guide URLs point at admslader/orbita.
    • 🧰 Dart package — renamed to orbita; every import updated.

    🔐 Compatibility

    • 🔑 Settings survive — the keychain storage keys and the release-signing
      key type are unchanged, so existing connections, settings and signing keys
      keep working.
    • 📁 Local checkout — the working directory is still command_center; only
      the app and the remote repo were renamed.

    🧱 Under the hood

    • dart analyze clean, all tests green, Linux build succeeds.
    • New docs/branding/naming.md records the Keyworks product family (Orbita,
      Tapestry, Nyra), taglines, visual system and domain plan.

    📦 Assets

    Attach the matching asset (and its .sig) to install automatically:
    Linux orbita-0.8.0-linux.AppImage.

    Downloads
  • v0.7.0 6f35586053

    Release 0.7.0 Stable

    admslader released this 2026-10-15 12:55:13 -04:00 | 26 commits to main since this release

    v0.7.0 — Slate + Sage, and connection fixes

    The theme moves to the shared Slate + Sage palette, and editing the control
    plane's admin token now takes effect immediately.

    🎨 Look & feel

    • 🟩 Slate + Sage palette — the accent moves from indigo to sage green
      (with a lighter-sage app-bar icon tone and a neutral inset surface), matching
      the other Sladertech apps in both light and dark mode.
    • 🔤 Inter typography — the shared UI font, bundled, with tabular figures so
      dates and counts align in columns.
    • 🔲 Rounded, bordered surfaces — cards, dialogs, inputs, buttons and chips
      round and space from one shared geometry scale.
    • 🏷️ Consistent status colours — Active, expiring-soon, expired, revoked and
      awaiting states read the same across the dashboard, sites and seats views.
    • 🧭 Themed sidebar — the navigation rail, brand tile and control-plane
      footer match the new look.

    🐛 Fixes

    • 🔑 Editing the admin token — changing the active connection's token (or
      base URL) now takes effect immediately; previously the dashboard kept using
      the old token until a restart.
    • 🪟 Window title — the Linux window now reads "Command Center" instead of
      "command_center".
    • 🖥️ Window identity — the GTK application id now matches the desktop
      entry's StartupWMClass, so the dock/taskbar associates the window with its
      launcher.
    • ⌨️ Token field focus — the edit dialog focuses the admin-token field when
      it's the one to fill, so a paste lands in the right place.
    • ⚠️ Visible save errors — a failed connection save is now shown instead of
      failing silently.

    🧱 Under the hood

    • New ui/theme/app_colors.dart (palette theme-extension), tokens.dart
      (radii + spacing + card surface) and typography.dart; app_theme.dart is
      built on them and maps the Material colour roles onto the palette.
    • Palette and geometry tokens are kept in sync with Task Tracker's ui/theme/.
    • dart analyze clean, all tests green, Linux build succeeds.

    📦 Assets

    Attach the matching asset (and its .sig) to install automatically:
    Linux command_center-0.7.0-linux.AppImage.

    Downloads
  • v0.6.0 9599910772

    Release 0.6.0 Stable

    admslader released this 2026-10-14 16:33:04 -04:00 | 37 commits to main since this release

    v0.6.0 — A unified Slate + Indigo theme

    Command Center now shares the same modern Slate + Indigo design system as the
    other Sladertech apps — rounded surfaces, one indigo accent, and the Inter font.

    🎨 Look & feel

    • 🪟 Rounded, bordered surfaces — cards, dialogs, inputs, buttons and chips
      now round and space from one shared geometry scale.
    • 🟦 Slate + Indigo palette — a neutral cool-gray base with a single indigo
      accent, in both light and dark mode.
    • 🔤 Inter typography — the shared UI font, bundled, with tabular figures so
      dates and counts align in columns.
    • 🏷️ Consistent status colours — Active, expiring-soon, expired, revoked and
      awaiting states read the same across the dashboard, sites and seats views.
    • 🧭 Themed sidebar — the navigation rail, brand tile and control-plane
      footer match the new look.
    • 🗂️ Neater forms and dialogs — every input, menu and dialog inherits the
      rounded, hairline-bordered treatment.

    🧱 Under the hood

    • New ui/theme/app_colors.dart (palette theme-extension), tokens.dart
      (radii + spacing + card surface) and typography.dart; app_theme.dart is
      rebuilt on them and maps the Material colour roles onto the palette.
    • Palette and geometry tokens are kept in sync with Task Tracker's
      ui/theme/, so the apps stay visually unified.
    • StatusChip.colorFor remains the single status → colour mapping.
    • dart analyze clean, all tests green, Linux build succeeds.

    📦 Assets

    Attach the matching asset (and its .sig) to install automatically:
    Linux command_center-0.6.0-linux.AppImage.

    Downloads
  • v0.5.0 76e10de266

    Release 0.5.0 Stable

    admslader released this 2026-10-14 12:08:13 -04:00 | 40 commits to main since this release

    v0.5.0 — Release management

    Command Center can now build, sign and publish the vendor's apps from one place,
    and licensing offers 1–5 year terms.

    ✨ What's new

    • 🚀 Releases panel — a new Releases screen lists each app (Command
      Center, Task Tracker) with its local and published version and signing-key
      status, and builds/signs/publishes it with a live log.
    • 🧰 Release orchestrator — tool/release.dart drives every app's own
      tool/release.sh from one place (status / keygen / publish).
    • 🗂️ Configurable app repos root — Settings → Releases points the panel at
      where the app repos live (blank uses the working directory).
    • 📅 1–5 year terms — the issue/renew dialog and the default-term setting
      now offer 1, 2, 3, 4 and 5 years (plus the 30-day trial).

    🧹 Changes

    • Connections folded into Settings — the active control plane is edited in
      Settings → Control plane server; the separate Connections screen and the
      app-bar switcher are gone.
    • The Releases panel no longer writes notes/versions — the agent prepares a
      release (version, notes, commit, tag); the panel builds, signs and publishes.

    🧱 Under the hood

    • New domain/release/, data/services/{forgejo_client,release_runner}.dart,
      data/repositories/local_releases_repository.dart, logic/releases_cubit.dart
      and ui/screens/releases_screen.dart.
    • dart analyze clean, all tests green, Linux build succeeds.

    📦 Assets

    Attach the matching asset (and its .sig) to install automatically:
    Linux command_center-0.5.0-linux.AppImage, Windows
    command_center-0.5.0-windows.zip.

    Downloads
  • v0.4.0 a12258dd9b

    Release 0.4.0 Stable

    admslader released this 2026-10-13 20:43:13 -04:00 | 51 commits to main since this release

    v0.4.0 — Hardened updates

    Command Center now verifies every self-update before applying it, and the fleet
    view groups machines by site.

    ✨ What's new

    • 📊 Stale machines on the dashboard — the overview rolls up machines that
      haven't checked in for 7 days, and the Seats nav item carries a badge.
    • 🗂️ Fleet grouped by site — the Seats screen lists one collapsible card per
      company, with machines nested under deployment sub-headings when a site spans
      more than one deployment. The collapse state is remembered per control plane.

    🔐 Security

    • 🔏 Verified updates — the self-updater verifies each release artifact's
      detached RSA-2048/SHA-256 signature (<asset>.sig) against an embedded
      public key before applying it, and refuses a release whose signature is missing
      or invalid. Asset URLs must be HTTPS on the Forgejo host, every redirect hop is
      re-validated, and downloads are bounded by a size cap and an idle timeout.
    • 🔑 No token in release builds — --dart-define=CONTROL_PLANE_ADMIN_TOKEN
      is now debug-only; release builds require the token at runtime (stored in the
      OS keychain), so it is never baked into a shipped binary.
    • 🔒 HTTPS required — control-plane URLs must be https:// (loopback
      http:// is allowed for local dev); the admin token travels in a header.
    • 🧱 Hardened Windows updater — the generated batch script rejects paths that
      could inject commands.
    • 🛡️ Private download staging — updates stage in a private per-run temp
      directory instead of the shared system temp.
    • 🌐 Web warning — the browser build warns that the admin token is kept in
      browser storage, not a secure keychain.

    🧱 Under the hood

    • New domain/update/release_crypto.dart (RSA primitives) and
      update_signature.dart (UpdateSignatureVerifier); UpdateService verifies
      the detached <asset>.sig and fails closed.
    • New tool/release.sh + tool/sign_release.dart for build → sign → publish.
    • AppImage tooling (linuxdeploy, GTK plugin) pinned and checksum-verified;
      Android release builds use a real keystore when key.properties is present.
    • dart analyze clean, all tests green, Linux build succeeds.

    📦 Assets

    Attach the matching asset (and its .sig) to install automatically:
    Linux command_center-0.4.0-linux.AppImage, Windows
    command_center-0.4.0-windows.zip.

    Downloads
  • v0.3.1 b4db988e6b

    admslader released this 2026-10-12 16:05:48 -04:00 | 68 commits to main since this release

    v0.3.1 — Host detection

    Command Center now flags the machine that hosts a site's local Supabase, and
    lets you create a site from a detected host.

    ✨ What's new

    • 🖥️ Host badge — the machine running a site's local Supabase (the
      "host") is flagged Host, on both the Seats screen and in the site detail.
    • 🔎 Hosts only — a filter on the Seats screen to show just the hosts.
    • 🏗️ Add a site from a host — Add site now offers the detected hosts
      (GET /hosts); pick one to create its site (prefilled id/name) or start blank.

    🧱 Under the hood

    • Seat.isHost (from the seat's is_host); listHosts() and a listSeats
      isHost filter on the client/repository; SeatsCubit.detectedHosts().
    • Consumes GET /hosts and GET /seats?is_host=true.
    • dart analyze clean, all tests green, Linux build succeeds.

    📦 Assets

    Attach the matching asset to install automatically:
    Linux command_center-0.3.1-linux.AppImage.

    Downloads
  • v0.3.0 47ab738b52

    admslader released this 2026-10-12 12:53:13 -04:00 | 72 commits to main since this release

    v0.3.0 — Seats

    Command Center can now see the machines running your apps, not just the
    sites and licenses.

    ✨ What's new

    • 🖥️ Seats screen — a fleet-wide list of every seat (machine + signed-in
      user) across all sites; search by hostname / user / platform / site /
      deployment, with a Stale only filter. Machines that haven't checked in for
      7 days are flagged Stale.
    • 🏷️ Seats in the site detail — a site's machines, grouped by deployment
      (lab / Supabase instance), each showing hostname, user, platform, app version
      and last-seen.
    • 📇 Richer site detail — contact email, Supabase URL, notes and
      created/updated are now loaded via GET /site (minus secrets), and the edit
      form prefills from it.
    • ⚠️ Grouping hint — when a site id looks like a fallback (localhost / an
      IP), the detail view explains that the machines need a proper Site id to
      group.

    🧱 Under the hood

    • New Seat / SiteDetails models; listSeats + getSite on the control-plane
      client and repository; a SeatsCubit wired to the active connection.
    • Consumes GET /seats and GET /site (admin); the apps report machines via the
      public POST /seat.
    • dart analyze clean, all tests green, Linux build succeeds.

    📦 Assets

    Attach the matching asset to install automatically:
    Linux command_center-0.3.0-linux.AppImage, Windows
    command_center-0.3.0-windows.zip.

    Downloads
  • v0.2.0 40eb22b31b

    admslader released this 2026-10-12 11:03:35 -04:00 | 76 commits to main since this release

    v0.2.0 — Self-updating

    Command Center can now update itself from Forgejo releases, and the Sites list
    does more without leaving the row.

    ✨ What's new

    • ⬆️ Self-updater — checks Forgejo for a newer release on launch and every
      30 minutes; when one appears it shows the release notes, downloads the
      platform asset, applies it, and relaunches. Release notes appear once, on the
      next launch.
    • ⚙️ Settings → Updates — see the running version and check for updates on
      demand.
    • 🖱️ Inline row actions — Sites rows now show a contextual Issue /
      Renew button plus Revoke / Remove icons, instead of hiding
      everything behind a ⋮ menu. Narrow windows fold the secondary actions into a
      small overflow.
    • 🗂️ One list, not two — the redundant Licenses menu is gone; Sites is the
      single place sites and their licenses are browsed, with a Sort: Attention /
      Expiry
      toggle.
    • 📋 Copy site id now lives in the site detail view.

    🧱 Under the hood

    • New domain/update, data/services/update_service.dart, and
      logic/update/ (controller + platform applier); UpdateGate wraps the app.
    • Linux packaging lives in tool/ (build_appimage.sh); this release ships a
      Linux AppImage asset so the updater can install it.
    • dart analyze clean, all tests green, Linux build succeeds.

    📦 Assets

    Attach the matching asset to install automatically:
    Linux command_center-0.2.0-linux.AppImage.

    Downloads