Tags give the ability to mark specific points in history as being important
-
v0.1.29
protectedRelease: v0.1.292ec946c7 · ·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).
-
v1.1.0-plan-F-cluster-ui
protectedRelease: v1.1.0-plan-F-cluster-uibb85330c · ·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
protectedRelease: v0.1.262155ed00 · ·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
protectedRelease: v0.1.2530ef3f67 · ·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
protectedRelease: v0.1.247f907caf · ·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
protectedRelease: v0.1.232d764e91 · ·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
protectedRelease: v0.1.22e4c676b6 · ·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
protectedRelease: v0.1.21a8299ca7 · ·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.