Tags

Tags give the ability to mark specific points in history as being important
  • v0.1.30

    protected Release: v0.1.30
    release v0.1.30
    
    geode-ui now exports OTLP traces + metrics (cmd/server startTelemetry,
    opt-in via OTEL_EXPORTER_OTLP_ENDPOINT). See CHANGELOG Unreleased -> Added.
    
  • v0.1.29

    protected Release: v0.1.29
    release v0.1.29
    
    First release with the daemonless kaniko docker:release job — publishes a
    deployable container image (registry.gitlab.com/devnw/codepros/geode/geode-ui:0.1.29)
    without Docker-in-Docker. See CHANGELOG.md (Unreleased -> Fixed 2026-06-03).
    
  • v0.1.28

    protected Release: v0.1.28
    release: v0.1.28 (publish geodedb/geode-ui image for k8s deploy)
    
  • v0.1.27

    protected Release: v0.1.27
    v0.1.27: replace local quoting/error/graph helpers with driver exports
    
  • v1.1.0-plan-F-cluster-ui

    protected Release: v1.1.0-plan-F-cluster-ui
    v1.1.0-plan-F-cluster-ui — full cluster awareness across the UI
    
    Plan F lands cluster-mode support throughout the Geode UI when the
    connected instance is part of a Raft cluster, while keeping standalone
    mode unchanged.
    
    Shipped surfaces:
      * Data layer: SHOW CLUSTER STATUS parser + WS fetcher, polling hook,
        GQL editor keywords.
      * Dashboard ClusterCard — role / term / leader / member count.
      * Dedicated /cluster page — full membership table with self & leader
        highlighting, last-contact freshness chips, 5 s polling, manual
        refresh, standalone fallback panel, error states, nav link.
      * Topbar ClusterRoleChip — ambient role indicator linked to /cluster,
        30 s polling.
      * ConnectionCard cluster row — "Cluster: N nodes — Role".
    
    Backend reference: geode's SHOW CLUSTER STATUS handler in
    src/execution/admin_ddl.zig returns one row per cluster member.
    
    Tests: 1366 / 1366 passing across 196 suites (no regressions from the
    1334-test pre-rollout baseline).
    
    Previous: v1.0.0-plan-E-electron-native
    
  • v0.1.26

    protected Release: v0.1.26
    Release v0.1.26
    
    Bug fix for Electron login.
    
    - Login (and the rest of the auth + CSRF surface) failed in the
      packaged desktop build with "Unexpected token '<', \"<!doctype\"...
      is not valid JSON". The renderer is hosted on the privileged
      geode://app/ scheme, and the direct fetch() calls in src/api/auth.ts
      and src/api/csrf.ts used bare relative URLs. Those resolved against
      the geode:// origin, hit the SPA-fallback branch of the custom
      protocol handler in electron/main.ts, and returned index.html with
      Content-Type: text/html — which await res.json() could not parse.
    - Fix routes every direct-fetch path (login, fetchWhoAmI, logout,
      fetchPublicProfiles, onboardProfile, refreshCsrfToken) through a
      new apiUrl() helper in src/api/baseUrl.ts. The helper prefers
      window.geode.serverUrl (the operator-supplied HTTP(S) origin the
      preload exposes) on Electron and falls back to window.location.origin
      in the browser. The generated client was already wired to
      resolveBaseUrl(); these were the leftover direct-fetch callsites.
    - No CSP change needed — connect-src already permits the configured
      SERVER_URL via electron/lib/safety.ts buildCspValue.
    
  • v0.1.25

    protected Release: v0.1.25
    Release v0.1.25
    
    Bug fixes for the Electron window controls.
    
    - Visibility: <WindowControls /> was mounted inside Shell.tsx's Top
      nav, which only renders inside <ProtectedShell>. On /login (the
      fresh-launch screen before authentication) there was no Top nav
      and therefore no minimize / maximize / close buttons. The
      component is now mounted at the App root above BrowserRouter, as
      a fixed top-right overlay, so it renders on every route.
    - Fullscreen: new fourth button toggles native fullscreen
      (BrowserWindow.setFullScreen). Backed by
      geode:window-toggle-fullscreen / windowToggleFullscreen on the
      bridge, with a broadcastFullscreen forwarder so the icon and
      aria-label swap between enter / exit on state change.
    
    Also pulls in the v0.1.24 apt-publish R2 race fix so the next
    publish self-heals if the two-phase sync drops a pool entry.
    
    Tests: 1309 jest pass. Lint + tsc + e2e:tsc all clean.
    
  • v0.1.24

    protected Release: v0.1.24
    Release v0.1.24
    
    Pipeline-correctness release on top of v0.1.23.
    
    Adds a post-sync verification pass to apt-publish-apt-geodedb-com so
    the two-phase aws s3 sync race against Cloudflare R2 self-heals. The
    race surfaced on v0.1.23, where one .deb (geode-ui-desktop_0.1.23_
    amd64.deb) was successfully uploaded by phase 1 and then deleted by
    phase 2's --delete sweep due to R2 eventual-consistency. Net result:
    apt install geode-ui-desktop failed with 404.
    
    The override extends the catalog job's script: with a head-object
    check per pool entry; missing files are re-uploaded via aws s3 cp.
    Single-shot; the operator re-triggers the job if a file vanishes
    between verify and head-object.
    
    No new feature code; only the publish-pipeline robustness fix.
    
  • v0.1.23

    protected Release: v0.1.23
    Release v0.1.23
    
    Themed window controls in the Electron desktop shell.
    
    A custom <WindowControls /> React component renders three buttons
    (minimize / toggle-maximize / close) at the top-right of the SPA's
    Top nav. The buttons round-trip through new ipcMain.handle channels
    (geode:window-{minimize,toggle-maximize,close,is-maximized}) to
    BrowserWindow methods. A geode:window-maximized-changed broadcast
    keeps the middle button's icon (square / clone) and aria-label
    (Maximize / Restore) in sync with the live state.
    
    Per-platform behavior
    - Linux: fully frameless (frame: false), SPA owns the whole top.
    - Windows: dropped titleBarOverlay in favor of frame: false so the
      custom buttons are not painted over by the OS overlay.
    - macOS: native traffic lights kept via titleBarStyle: 'hiddenInset';
      WindowControls returns null on `platform === 'darwin'`.
    
    Surface changes
    - electron/shared/bridge-types.ts + electron/preload.ts: new platform
      field + 4 window-control methods + onWindowMaximizedChange.
    - electron/main.ts: 4 ipcMain.handle channels with null-window guards;
      broadcastMaximized forwarder; titleBarOverlay removed.
    - src/components/layout/WindowControls.{tsx,test.tsx}: 9 unit tests.
    - src/components/layout/Shell.tsx: <WindowControls /> at end of Top.
    - src/services/i18n/locales/en.ts: windowControls.{minimize,maximize,
      restore,close} aria labels.
    - e2e/electron-specs/04-window-controls.spec.ts: 2 Playwright tests
      driven via launchElectron().
    - e2e/electron-specs/02-bridge.spec.ts: contract test now lists the
      five new bridge methods + three APP-01 R2/R3 methods that landed
      earlier.
    - __test_utils__/polyfills.js: -webkit-app-region CSS patch so jsdom
      exposes the property to the unit tests.
    
    Tests: 1307 jest tests pass (187 suites). Lint + prettier + tsc clean.
    
  • v0.1.22

    protected Release: v0.1.22
    Release v0.1.22
    
    Feature release: Geode 0.5.20 policy subsystem in geode-ui.
    
    Implements typed GQL procedure wrappers (queryRunner +
    userAttributes + rlsDenyPolicies + rlsAttributePolicies), three new
    admin pages (per-user attributes editor, RLS Deny Policies tab,
    RLS Attribute Policies tab), Monaco completion for the new
    Interval / interval_overlaps / interval_contains GQL functions,
    and FULLTEXT index rendering in the schema explorer.
    
    Highlights
    - /admin/users now exposes a per-row Attributes button (gated on
      caps.adminWritable.attributes) that opens the UserAttributesModal
      with client-side identifier validation.
    - /admin/rls-deny lists, adds, and removes label-level deny policies
      (geode.rls.add/remove/list_deny_policy + policy_count) — empty
      username denies all users.
    - /admin/rls-attribute lists, adds, and removes ABAC row-level
      policies (geode.rls.add/remove_attribute_policy) with a live
      expression preview and a session-mirror fallback when the build
      lacks gps.list_policies.
    - Monaco's GQL completion provider surfaces Interval(),
      interval_overlaps, and interval_contains alongside the LSP path.
    - The schema indexes panel renders as a typed table with an
      IndexTypeBadge — FULLTEXT indexes get a distinct badge.
    
    Test coverage
    - 1298 jest unit tests (186 suites) pass.
    - 1 integration test (FakeGeode round-trip) covers the GQL CALL +
      QueryResp parse path end-to-end across all three wrapper families.
    - 4 new playwright specs (44-47) cover the user-attributes flow,
      RLS deny add/remove + behavioral gate-check, ABAC end-to-end with
      sign-in-as-user, and FULLTEXT + Interval. Each spec is gated on
      capabilities so it skips cleanly on pre-0.5.20 geode builds.
    
    Out-of-scope items (Won't-Do; see docs/GAP_ANALYSIS.md GAP-109..111)
    - Server-operator env overrides (GEODE_KMS_URL, GEODE_2PC_TIMEOUT_MS,
      --max-connections, GEODE_WEBHOOK_ALLOW_PRIVATE) — no upstream
      readback endpoint yet.
    - LSP AuthProvider→Verifier wiring + Phase-7 principal envelope
      forwarding — server-internal hardening, no SPA surface.
    - ALTER USER SET ROLE revocation — backend behavior fix, GQL wire
      shape unchanged; existing roles tests still pass.
    
    Pre-existing fixes also in this cohort
    - v0.1.21 carried the apt-install-smoke / apt-repo trim /
      release:publish pipeline fixes plus the immersive electron shell.
    
  • v0.1.21

    protected Release: v0.1.21
    Release v0.1.21
    
    Pipeline-correctness release on top of v0.1.20:
    - apt-install-smoke now passes: data dirs (/var/lib/geode-ui,
      /var/log/geode-ui) created in postinstall and kept off the dpkg
      ownership ledger, so apt remove leaves them intact and only
      postremove (purge) wipes them.
    - apt-repo-apt-geodedb-com upload stays under 1 GB: pool trim runs
      as the final step of script: (was an after_script that the
      kubernetes runner skipped intermittently on v0.1.19).
    - release:publish stops trying to create a second release for the
      same tag — assets are now POSTed to /releases/:tag/assets/links
      on the create-release-owned release, with 400/409 treated as
      idempotent success.
    
    Also ships the immersive electron desktop shell from main:
    frameless window (per-platform), no OS application menu, and a
    single SVG (electron/assets/icon.svg) drives the dock/taskbar
    icon and electron-builder installer iconography.
    
  • v0.1.20

    protected Release: v0.1.20
    geode-ui v0.1.20
    
  • v0.1.19

    protected Release: v0.1.19
    geode-ui v0.1.19
    
  • v0.1.18

    protected Release: v0.1.18
    geode-ui v0.1.18
    
  • v0.1.12

    protected Release: v0.1.12
    geode-ui v0.1.12