Releases: Altinity/altinity-sql-browser
Releases · Altinity/altinity-sql-browser
Release list
v0.7.3
What's Changed
- fix(#535): correct dashboard style sizing after #538 by @BorisTyshkevich in #549
- test(#473): assert the variable toolbar's real display contract by @BorisTyshkevich in #556
- chore(#455,#498): enforce src/core boundaries and catch openMenu extension classes by @BorisTyshkevich in #554
- fix(#552): compact text-only sidebar tab headers at narrow widths by @BorisTyshkevich in #557
- refactor(#478): caller-neutral VariableBar activation port by @BorisTyshkevich in #555
- fix(#551): keep proto/constructor tile IDs' placements, and stop a real Object.prototype leak by @BorisTyshkevich in #558
- fix(#498,#455): close two confirmed false negatives in PR #554's gates by @BorisTyshkevich in #561
- fix(#553): unify Dashboard-tree row counts and move Add panel to the Panels row by @BorisTyshkevich in #562
- fix(#478): make the variable bar's recents port a live read, not a snapshot by @BorisTyshkevich in #563
- ci(#564): run the Playwright suite on pull requests (Chromium, path-gated) by @BorisTyshkevich in #566
- test(#565): correct two stale widen specs (widen is one-dimensional by design) by @BorisTyshkevich in #567
- fix(#568): Dashboard tree — single revealed action cluster, inline count by @BorisTyshkevich in #569
- feat(#487): left-navigation layout core and preferences (phase 1) by @BorisTyshkevich in #571
- feat(#487): navigation section registry (phase 2) by @BorisTyshkevich in #573
- fix(deploy): allow any HTTPS host on sql.demo.altinity.cloud's connec… by @BorisTyshkevich in #576
- feat(#487): rail, focused drawer and resize separator (phase 3) by @BorisTyshkevich in #574
- chore(skills): promote skills/ to a first-class repo-root directory by @BorisTyshkevich in #579
- refactor(#586): SurfaceLifecycle primitive and docked right-inspector slot (phase 1) by @BorisTyshkevich in #596
- refactor(#587): a side-panel registry so adding a navigation panel is a one-file change (phase 2) by @BorisTyshkevich in #600
- refactor(#591): fail-closed decoders for persisted domain records (phase 3) by @BorisTyshkevich in #601
- test(#599): fix resize-then-measure race in e2e specs by @BorisTyshkevich in #602
- refactor(#588): decompose the createApp composition root (phase 4) by @BorisTyshkevich in #604
- refactor(#589): extract dashboardRepaintPlan + createTileGestureController out of renderDashboard (phase 5) by @BorisTyshkevich in #608
- chore(skills): make /ship single-mode with plan/code ChatGPT review loops by @BorisTyshkevich in #609
- chore(skills): run /ship review loops as Workflow scripts by @BorisTyshkevich in #610
- chore(skills): fix /ship review-loop workflow args and model split by @BorisTyshkevich in #611
- fix(chatgpt-review): detect completion by content, not DOM element count by @BorisTyshkevich in #612
- refactor(#590): make the committed workspace aggregate reactive, retire dashboardTreeRevision by @BorisTyshkevich in #613
- feat(skills): add ChatGPT-authored /ship planning by @BorisTyshkevich in #614
- chore(deps-dev): bump @playwright/test from 1.62.0 to 1.62.1 in the dev-dependencies group by @dependabot[bot] in #583
- chore(deps): bump @codemirror/view from 6.43.6 to 6.43.7 by @dependabot[bot] in #584
- chore(skills): retry the plan-revise agent once before losing its findings by @BorisTyshkevich in #615
- fix(chatgpt-review): plan-author response extraction, parsing, and fill timeouts by @BorisTyshkevich in #616
- refactor(ship): ChatGPT verifies Fable's own findings, no Sonnet pass by @BorisTyshkevich in #617
- feat(ship): decompose High-risk+Large units instead of one implementer by @BorisTyshkevich in #618
- refactor(#585): Phase 0 — @clickhouse/client-web validation spike, ADR-0005 by @BorisTyshkevich in #619
- fix(ship): give chatgpt-review plan-mode reviews pass-aware context by @BorisTyshkevich in #620
- feat(#585 phase 1): establish the transport seam without behavior change by @BorisTyshkevich in #621
- chore(ship): one PR per unit, auto-chained, gated only on explicit decisions by @BorisTyshkevich in #622
- fix(#585): stop laundering Docker-contention flakes in the WebKit browser-matrix spike by @BorisTyshkevich in #624
- docs(#585): regenerate ADR-0005 evidence with the flaky-test fix; fix LOC-classification drift by @BorisTyshkevich in #625
Full Changelog: v0.7.2...v0.7.3
v0.7.2
v0.7.1
What's Changed
- Remove schema tree reference icons by @BorisTyshkevich in #513
- refactor(#429): remove obsolete repair planner (phase 6) by @BorisTyshkevich in #514
- Remove obsolete dashboard layout code by @BorisTyshkevich in #517
- feat(#483): add keyboard Library assignment chooser by @BorisTyshkevich in #516
- docs: reconcile architecture guidance by @BorisTyshkevich in #518
- feat(#515): add Panel creation from Dashboard tree by @BorisTyshkevich in #519
- feat(#512): add epoch-fenced connection lifecycle by @BorisTyshkevich in #523
- feat(#512): suspend authenticated execution without losing the document session by @BorisTyshkevich in #524
- feat(#512): restore dirty documents after OAuth reauthentication (phase 3) by @BorisTyshkevich in #527
- fix(#512): harden OAuth document recovery lifecycle by @BorisTyshkevich in #528
- Fix in-place authentication recovery overlay by @BorisTyshkevich in #529
- Fix nightly E2E authentication fixture by @BorisTyshkevich in #531
- fix(#496): reject oversized variable option probes by @BorisTyshkevich in #534
- fix(#503): guard Workbench run re-entrancy by @BorisTyshkevich in #532
- fix(#533): harden OAuth recovery E2E readiness by @BorisTyshkevich in #536
- feat(#535): duplicate, widen and expand actions on a panel tile head by @BorisTyshkevich in #538
- feat(#464): disambiguate colliding tab origins by @BorisTyshkevich in #539
- feat(#530): render Bool Dashboard variables as checkboxes by @BorisTyshkevich in #541
- fix(#540): restore WebKit dashboard action focus by @BorisTyshkevich in #546
- feat(#544): collapse the tile head into a ⋯ menu, atomic delete in every style (closes #537) by @BorisTyshkevich in #545
- Show query descriptions by dashboard style by @BorisTyshkevich in #547
- Serve Docker SPA with static Caddy compression by @BorisTyshkevich in #548
Full Changelog: v0.7.0...v0.7.1
v0.7.0
What's Changed
- feat: add surface-aware shortcuts by @BorisTyshkevich in #418
- feat: add Dashboard style shortcuts by @BorisTyshkevich in #419
- feat: StoredWorkspaceV3 — a Dashboard collection, with no UI change by @BorisTyshkevich in #432
- feat(#425): Dashboard as a full-size main work surface, selected by stable id by @BorisTyshkevich in #436
- design: token discipline for type, radii, elevation and colour — 195 detector findings to 0 by @BorisTyshkevich in #433
- fix(#437): compact the Dashboard toolbar and remove the redundant surface row by @BorisTyshkevich in #440
- fix(#439): make anchored-dialog Tab navigation deterministic on Safari/WebKit by @BorisTyshkevich in #442
- feat(#426): Databases/Dashboards switcher and a read-only Dashboard hierarchy tree by @BorisTyshkevich in #444
- fix(#426): search-forced tree rows, phantom current member, pure-module placement by @BorisTyshkevich in #445
- feat(#427): pure Dashboard query-ownership model (1/3) by @BorisTyshkevich in #446
- feat(#427): Dashboard-owned query copies and the Library projection (2/2) by @BorisTyshkevich in #451
- feat(#447): inferred Dashboard Variables, replacing the curated filter model (phase 1) by @BorisTyshkevich in #458
- refactor(#452): one File menu for every work surface by @BorisTyshkevich in #456
- feat(#447): Dashboard variable controls and batched option execution (phase 2) by @BorisTyshkevich in #462
- refactor(#457): edit variable option SQL in a main-editor tab, not a drawer by @BorisTyshkevich in #467
- feat(#468): restore the searchable multi-select for Array(scalar T) Dashboard variables by @BorisTyshkevich in #469
- refactor(#459): rename surviving filter terminology to Dashboard variables by @BorisTyshkevich in #474
- refactor(#459): rename two missed callback locals; correct the filterActive rationale by @BorisTyshkevich in #479
- refactor(#460): remove dead updateStatus/FieldStatus filter-bar seam by @BorisTyshkevich in #480
- feat(#471): a per-tile Open in Workbench action, replacing the Dashboard Query button by @BorisTyshkevich in #477
- feat(#463): File menu creates, imports and exports Dashboards workspace-wide by @BorisTyshkevich in #482
- feat(#428): assign a Library query to a Dashboard by dragging it by @BorisTyshkevich in #484
- build(deps): bump dorny/paths-filter from 3.0.3 to 4.0.2 by @dependabot[bot] in #485
- build(deps-dev): bump the dev-dependencies group with 2 updates by @dependabot[bot] in #486
- fix(#429): resolve a saved query before navigating, trim blank tile titles (phase 1) by @BorisTyshkevich in #490
- fix(#470): render a Dashboard filter diagnostic in place, not a second row by @BorisTyshkevich in #491
- feat(#429): split the Dashboard tree row into chevron, name and trailing targets (phase 2) by @BorisTyshkevich in #492
- fix(#465): validate a dashboard-variable tab's Run as a variable option query by @BorisTyshkevich in #493
- feat(#429): unify Dashboard creation and add the metadata rename pencil (phase 3) by @BorisTyshkevich in #495
- fix(#466): confirm before closing a dirty tab or leaving the page by @BorisTyshkevich in #499
- refactor(#447): move shop-charts.json/ontime-charts.json to Dashboard v2 by @BorisTyshkevich in #507
- fix: give error toasts a 30s auto-dismiss instead of 1.6s by @BorisTyshkevich in #508
- feat(#494): direct Dashboard/Panel row actions, replacing the ⋯ overflow menus (phase 4) by @BorisTyshkevich in #505
- feat(#506): add Import example dashboard to the File menu by @BorisTyshkevich in #510
- Publish sql.html to GitHub Pages at docs.altinity.com/altinity-sql-browser/ by @BorisTyshkevich in #511
Full Changelog: v0.6.4...v0.7.0
v0.6.4
What's Changed
- fix: remove legacy issuer hint from SQL URLs by @BorisTyshkevich in #416
Full Changelog: v0.6.3...v0.6.4
v0.6.3
What's Changed
- Clarify bundled third-party dependencies by @BorisTyshkevich in #395
- docs: add Google Sheets integration design catalog by @BorisTyshkevich in #397
- feat: add multi-workspace persistence by @BorisTyshkevich in #410
- feat: unify workspace and dashboard routing (#407) by @BorisTyshkevich in #411
- feat(dashboard): unify workbench and dashboard chrome by @BorisTyshkevich in #412
- Fix workspace route navigation by @BorisTyshkevich in #414
- Restore dashboard tiles for imported favorites by @BorisTyshkevich in #415
Full Changelog: v0.6.2...v0.6.3
v0.6.2
What's Changed
- refactor(#359): one FilterSourceRuntime per unique Filter source query by @BorisTyshkevich in #361
- feat(#360): parameterized Dashboard Filter sources with single-layer dependencies by @BorisTyshkevich in #362
- fix(#365): reconcile saved-query persistence and dirty state by @BorisTyshkevich in #367
- feat(#189): searchable multiselect for query-backed Dashboard filters with Apply by @BorisTyshkevich in #364
- fix: respect saved Table view on Dashboard by @BorisTyshkevich in #369
- chore(#366): harden dev test dependencies by @BorisTyshkevich in #371
- feat(#335): compound Dashboard time-range control — token-based From/To picker in the filter bar by @BorisTyshkevich in #376
- build(deps): bump azure/setup-helm from 4 to 5 by @dependabot[bot] in #373
- build(deps): bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #374
- build(deps): bump marked from 18.0.6 to 18.0.7 by @dependabot[bot] in #375
- feat(#343): cross-tab workspace consistency — refresh before write, invalidate stale tabs by @BorisTyshkevich in #377
- chore: migrate test stack to Vitest 4 by @BorisTyshkevich in #379
- fix(#370): keep Dashboard membership and stars consistent by @BorisTyshkevich in #380
- Consolidate examples into three flagship dashboards by @BorisTyshkevich in #381
- refactor: remove unused DashboardAuthoringSession by @BorisTyshkevich in #382
- Run CI jobs only for relevant changes by @BorisTyshkevich in #384
- Require Node.js 22 for local development by @BorisTyshkevich in #385
- feat(#340): unify frameless KPI movement by @BorisTyshkevich in #388
- fix(#386): strengthen multiselect Apply states by @BorisTyshkevich in #387
- Add synchronized Dashboard time-range interaction by @BorisTyshkevich in #390
Full Changelog: v0.6.1...v0.6.2
v0.6.1
What's Changed
- feat(#309): Chart.js time scale for line/area/bar/hbar charts over a time-role X by @BorisTyshkevich in #312
- feat(#316): polish grafana-grid KPI tiles in edit and view modes by @BorisTyshkevich in #317
- feat(#60): version-exact ClickHouse reference docs — CM6 hover/F1, non-modal pane, structured sources, system.documentation Markdown by @BorisTyshkevich in #320
- feat(#321): Grid Tiles default Dashboard style + transient Full view; remove flow full-width preset by @BorisTyshkevich in #327
- test(#328): fix docs-reference completion-link e2e flaking on Firefox by @BorisTyshkevich in #330
- build(deps): bump docker/setup-qemu-action from 3 to 4 by @dependabot[bot] in #326
- build(deps): bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #323
- build(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in #325
- fix(#331): Dashboard KPI flow band, shared File-menu primitive, tile containment by @BorisTyshkevich in #333
- docs(examples): migrate examples to portable dashboard bundles by @BorisTyshkevich in #336
- feat(#332): Dashboard Command/Ctrl-drag tile move, text selection, shared cell-detail by @BorisTyshkevich in #337
- feat(#338): auto-scroll long Dashboards while dragging a tile by @BorisTyshkevich in #339
- feat(#345): compact, type-aware widths for {name:Type} filter/variable inputs by @BorisTyshkevich in #346
- feat(#342): reorganize the Workbench File menu, rename Replace→Open workspace by @BorisTyshkevich in #348
- build(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in #322
- build(deps): bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #324
- fix(#341): one committed workspace for Dashboard + Workbench, consistent exports by @BorisTyshkevich in #344
- fix(#347): hide the Dashboard File menu entirely in read-only views by @BorisTyshkevich in #351
Full Changelog: v0.6.0...v0.6.1
v0.6.0
What's Changed
- feat(#252): add Line and Area chart style controls by @BorisTyshkevich in #253
- feat(#254): apply field metadata to charts by @BorisTyshkevich in #255
- feat(#256): add complete chart style presets by @BorisTyshkevich in #259
- feat(#258): add chart family style presets by @BorisTyshkevich in #260
- docs(#262): accept ADR-0002 — incremental strict TypeScript; reaffirm no-framework (ADR-0001 addendum) by @BorisTyshkevich in #263
- refactor(charts): single chart-style spec + resolve field metadata once by @BorisTyshkevich in #261
- examples: ClickHouse-ops dashboard library + new-feature showcase panels by @BorisTyshkevich in #264
- ADR-0002: strict TypeScript migration — gate + phases 1–5 (generated schema types, state, contract spine, param pipeline, dashboard runtime, tests) by @BorisTyshkevich in #265
- feat(docker): production nginx image published to GHCR by @BorisTyshkevich in #268
- feat(helm): Helm chart + GHCR OCI publish; deploy to demo.altinity.cloud by @BorisTyshkevich in #269
- ADR-0002 complete: convert the remaining 87 modules + tests to strict TypeScript by @BorisTyshkevich in #271
- fix(docker): build stamp shows v (), not vmain by @BorisTyshkevich in #272
- fix(#266): validate share-link spec.view before writing resultView by @BorisTyshkevich in #273
- fix(#111): cap chart X categories, not raw rows; honest transform note by @BorisTyshkevich in #274
- feat(#275): bundle-size report + CI artifact on every PR by @BorisTyshkevich in #277
- refactor(#276): extract QueryExecutionService — phases 0–1 by @BorisTyshkevich in #278
- refactor(#276): extract ConnectionSession — phase 2 by @BorisTyshkevich in #279
- refactor(#276): extract WorkbenchSession — phase 3a by @BorisTyshkevich in #281
- refactor(#276): extract DashboardSession — phase 3b by @BorisTyshkevich in #282
- refactor(#276): extract SchemaCatalogService — phase 4A by @BorisTyshkevich in #289
- refactor(#276): Phase 4 — parameter, export, document, saved-query, schema-graph, preferences services by @BorisTyshkevich in #290
- refactor(#276): Phase 5 — composition cleanup, session teardown, architecture docs (closes #276) by @BorisTyshkevich in #292
- Dashboard v1 phases 1–4 (#280): first-class module — contracts, persistence, authoring, viewer + flow@1 by @BorisTyshkevich in #293
- fix(#294): dashboard filter strips never wrap, remove visible Clear-all by @BorisTyshkevich in #297
- feat(#287): Dashboard v1 Phase 5 — portable import/export + import planner + workspace aggregate source of truth by @BorisTyshkevich in #301
- fix: workspace/dashboard persistence follow-ups — star→tile (#299), corrupt-aggregate surface (#300), dashboard filter persistence (#303) by @BorisTyshkevich in #304
- feat(#288, #302): Dashboard v1 phase 6 — direct + full-screen viewing (one-time IndexedDB handoff) + File-menu restructure by @BorisTyshkevich in #306
- feat(#291): grafana-grid@1 — rowless Grafana-style tile-grid Dashboard layout by @BorisTyshkevich in #308
- fix: horizontal autoSkip ticks on line/area chart X axis by @BorisTyshkevich in #310
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
- fix(docker): include schemas in build context by @lesandie in #233
- feat(#160): add Dashboard Filter sources by @BorisTyshkevich in #232
- refactor: relocate example generators by @BorisTyshkevich in #239
- refactor(#238): unify ClickHouse type parsing; reject LowCardinality(Enum) by @BorisTyshkevich in #242
- refactor(#148): remove dormant html{zoom} bridge and its runtime/test scaffolding by @BorisTyshkevich in #245
- feat(#240): Dashboard KPI bands — full-width flat card streams for explicit KPI favorites by @BorisTyshkevich in #247
- fix(#244): restore role-aware initial result views for saved and shared queries by @BorisTyshkevich in #251
- feat(#248): compact Dashboard layout on mobile by @BorisTyshkevich in #250
Full Changelog: v0.4.5...v0.5.0