Skip to content

fix(ui): maintenance - upgrade deps, gitignore DuckDB WASM, CI improvements#209

Merged
v-kessler merged 10 commits intomainfrom
chore/maintenance
Mar 9, 2026
Merged

fix(ui): maintenance - upgrade deps, gitignore DuckDB WASM, CI improvements#209
v-kessler merged 10 commits intomainfrom
chore/maintenance

Conversation

@v-kessler
Copy link
Contributor

@v-kessler v-kessler commented Mar 9, 2026

  • chore: step 1 - cleanup, align deps, CI improvements

  • Remove temp_table_page_fix.py, update_sql_editor.py, update_sql_editor.sh

  • Add globals devDep

  • Add engines field (node >=24)

  • Add .nvmrc (24)

  • CI: Node 23->24, runner fallbacks, target-branch fallback

  • chore: step 2 - enhance Renovate config

  • Enhance Renovate config: dep grouping, schedule, automerge patches

  • chore: upgrade Vite 5→7, remove vite-plugin-vue-layouts, fix deprecations

  • Upgrade vite ^5.4.21 → ^7.3.1 (Rolldown bundler)

  • Upgrade @vitejs/plugin-vue ^5.1.4 → ^6.0.4

  • Remove vite-plugin-vue-layouts, replace with parent route wrapper

  • Fix Home nav always highlighted (add :exact to parent route)

  • Fix Vuetify theme deprecation: theme.global.name.value → theme.change()

  • Add TaskConfigDialog (PLUS upsell) to warehouse tasks tab

  • Remove Rollup CI workaround from release.yml and checks.yml

  • chore: upgrade remaining renovate deps

  • actions/checkout v4 → v6, actions/setup-node v4 → v6

  • @tsconfig/node22 → @tsconfig/node24 (^24.0.4)

  • @types/node ^22.19.0 → ^24.12.0

  • unplugin-vue-router ^0.16.1 → ^0.19.2

  • unplugin-auto-import ^0.17.6 → ^21.0.0

  • unplugin-vue-components ^0.28.0 → ^31.0.0

  • fix: gitignore DuckDB WASM files (copied from console-components at build time)

  • Add public/duckdb/ and public/duckdb-worker-wrapper.js to .gitignore

  • Remove ~107MB of generated binaries from git tracking

  • prettier

  • deps

Summary by CodeRabbit

  • New Features

    • Task configuration dialog added to the warehouse view.
  • Improvements

    • Official Node 24 support and updated tooling/dependencies.
    • Modernized CI and release workflows with newer runner defaults.
    • Theme update handling refined; route/layout structure adjusted.
    • Home navigation now uses exact matching.
    • Ignored new build artifacts; removed legacy web worker wrapper and layout plugin.
  • Type & Editor

    • Expanded auto-imports and template typings for developer ergonomics.
  • Chores

    • CI/renovate scheduling and dependency grouping updates; removed several maintenance scripts.

- Remove temp_table_page_fix.py, update_sql_editor.py, update_sql_editor.sh
- Add globals devDep
- Add engines field (node >=24)
- Add .nvmrc (24)
- CI: Node 23->24, runner fallbacks, target-branch fallback
- Enhance Renovate config: dep grouping, schedule, automerge patches
…ions

- Upgrade vite ^5.4.21 → ^7.3.1 (Rolldown bundler)
- Upgrade @vitejs/plugin-vue ^5.1.4 → ^6.0.4
- Remove vite-plugin-vue-layouts, replace with parent route wrapper
- Fix Home nav always highlighted (add :exact to parent route)
- Fix Vuetify theme deprecation: theme.global.name.value → theme.change()
- Add TaskConfigDialog (PLUS upsell) to warehouse tasks tab
- Remove Rollup CI workaround from release.yml and checks.yml
- actions/checkout v4 → v6, actions/setup-node v4 → v6
- @tsconfig/node22 → @tsconfig/node24 (^24.0.4)
- @types/node ^22.19.0 → ^24.12.0
- unplugin-vue-router ^0.16.1 → ^0.19.2
- unplugin-auto-import ^0.17.6 → ^21.0.0
- unplugin-vue-components ^0.28.0 → ^31.0.0
…uild time)

- Add public/duckdb/ and public/duckdb-worker-wrapper.js to .gitignore
- Remove ~107MB of generated binaries from git tracking
@coderabbitai
Copy link

coderabbitai bot commented Mar 9, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7d869d72-cd1f-457c-a651-af2ec6066174

📥 Commits

Reviewing files that changed from the base of the PR and between 131df19 and 66702f4.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (1)
  • package.json

Walkthrough

Updates Node/tooling to Node 24, upgrades CI/workflows and many dev dependencies, adjusts auto-import and type declarations, removes Vite layouts plugin and layout setup, nests routes under DefaultLayout, wires TaskConfigDialog/warehouseData on warehouse page, updates gitignore, and removes several migration scripts.

Changes

Cohort / File(s) Summary
Node & CI
/.nvmrc, .github/workflows/checks.yml, .github/workflows/release.yml
Target Node 24; bump actions (checkout, setup-node) to v6; default runner fallbacks to ubuntu-24.04; simplify install to npm ci.
Dependencies & Renovate
package.json, src/assets/dependencies.json, renovate.json
Bump many dev deps for Node 24 (vite, unplugin-*, TS, Vue tooling); add engines.node: ">=24"; add Renovate schedule and grouping rules.
Auto-imports & ESLint
.eslintrc-auto-import.json, src/auto-imports.d.ts, src/components.d.ts
Extend/deduplicate auto-import globals; convert type access to dot-notation; add globals (getCurrentWatcher, isShallow, Slot, Slots); add lint-ignore header comments.
Vite / Layouts
vite.config.mts, tsconfig.json, src/router/index.ts, src/typed-router.d.ts
Remove vite-plugin-vue-layouts and plugin usage; remove its types from tsconfig; wrap app routes under DefaultLayout and nest NotFound.
Pages & UI wiring
src/App.vue, src/components/NavigationBar.vue, src/pages/warehouse/[id].vue
Replace direct theme property mutation with theme.change(...); set Home nav item :exact="true"; add warehouseData, loadWarehouse, and TaskConfigDialog wiring in warehouse page.
Public assets & gitignore
public/duckdb-worker-wrapper.js, .gitignore
Remove wrapper's dynamic base-path/import logic from worker wrapper; add ignores for public/duckdb/*, worker wrapper, and Vite timestamp cache files.
Removed migration scripts
temp_table_page_fix.py, update_sql_editor.py, update_sql_editor.sh
Delete Python/shell scripts that automated Vue file transformations (warehouse wiring and SQL editor migration).
Misc types & small edits
src/pages/dependencies.vue, src/assets/..., src/components.d.ts
Add RustDep typing and strong-cast for rust deps display; many dependency/version metadata updates in assets JSON; add lint-ignore header.
DuckDB public worker change
public/duckdb-worker-wrapper.js
Eliminated dynamic importScripts logic that resolved base URL and loaded duckdb-browser worker. (wrapper simplified/removed logic)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

  • fix: tasks access #156 — Modifies Tasks tab and TaskManager/TaskConfigDialog usage (overlaps warehouse tasks UI changes).
  • chore: component logic #168 — Changes auto-import/type declaration surfaces (overlaps src/auto-imports.d.ts edits).
  • fix: patch 0.2.20 #189 — Also updates warehouse page wiring to load/propagate warehouse data (overlapping warehouseData work).

Suggested reviewers

  • c-thiel

Poem

🐰 I hopped through package trees today,
Swapped Node to twenty-four — hooray!
Layouts slipped out, routes cuddled in,
Scripts went quiet, CI got thin,
A carrot-toast for every passing build!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: dependency upgrades, gitignore updates for DuckDB WASM, and CI improvements are all prominent parts of the changeset.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/maintenance

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (2)
vite.config.mts (1)

15-23: Prefer copying the DuckDB directory recursively.

This allow-list is now coupled to @lakekeeper/console-components internals, so every added or renamed worker/WASM asset turns into a build-time break here. Copying the directory keeps this hook aligned with the package without another maintenance edit.

♻️ Possible simplification
-import { copyFileSync, mkdirSync, existsSync } from 'fs';
+import { copyFileSync, cpSync, mkdirSync, existsSync } from 'fs';

-const duckdbFiles = [
-  'duckdb-browser-coi.pthread.worker.js',
-  'duckdb-browser-coi.worker.js',
-  'duckdb-browser-eh.worker.js',
-  'duckdb-browser-mvp.worker.js',
-  'duckdb-coi.wasm',
-  'duckdb-eh.wasm',
-  'duckdb-mvp.wasm',
-];
+const duckdbDirName = 'duckdb';
-      const missingDuckdb = duckdbFiles.filter(
-        (file) => !existsSync(resolve(srcDir, 'duckdb', file)),
-      );
-      if (missingDuckdb.length > 0) {
-        throw new Error(
-          `Missing DuckDB files in ${srcDir}/duckdb:\n  - ${missingDuckdb.join('\n  - ')}`,
-        );
-      }
+      const duckdbDir = resolve(srcDir, duckdbDirName);
+      if (!existsSync(duckdbDir)) {
+        throw new Error(`Missing DuckDB directory in ${srcDir}`);
+      }

-      mkdirSync(resolve(targetPath, 'duckdb'), { recursive: true });
-      duckdbFiles.forEach((file) => {
-        copyFileSync(resolve(srcDir, 'duckdb', file), resolve(targetPath, 'duckdb', file));
-      });
+      mkdirSync(targetPath, { recursive: true });
+      cpSync(duckdbDir, resolve(targetPath, duckdbDirName), { recursive: true });
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@vite.config.mts` around lines 15 - 23, The current hard-coded allow-list
(duckdbFiles) in vite.config.mts couples the build to internals; replace this
enumeration with a recursive copy of the package's DuckDB assets directory
instead: remove duckdbFiles and update the Vite/Rollup copy step to copy the
entire directory (e.g., node_modules/@lakekeeper/console-components/duckdb)
recursively into the build assets output using the existing copy plugin or
rollup-plugin-copy configuration so new/renamed worker and .wasm files are
automatically included; ensure any references that previously relied on
duckdbFiles continue to point to the same output directory.
src/pages/warehouse/[id].vue (1)

131-131: Consider replacing any with a proper type.

Using any loses type safety. Consider using the warehouse type from @lakekeeper/console-components or at minimum an inline type with the properties you need.

-const warehouseData = ref<any>(null);
+const warehouseData = ref<{ id: string; name: string; 'project-id'?: string; 'storage-profile'?: Record<string, any> } | null>(null);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/pages/warehouse/`[id].vue at line 131, Replace the use of any for
warehouseData to restore type safety: change the ref declaration for
warehouseData to use the Warehouse (or appropriately named) interface from
`@lakekeeper/console-components` (or define an inline type with the specific
fields you access) so the ref is typed as Ref<Warehouse | null> (or Ref<{...} |
null>); update imports to pull the Warehouse type and adjust any usages of
warehouseData to respect the new type.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/release.yml:
- Around line 38-40: Replace the hardcoded fallback for target-branch with a
guarded expression that prefers vars.RELEASE_PLEASE_TARGET_BRANCH, then uses
github.base_ref for pull_request events, uses github.ref_name for push events,
uses github.ref_name for workflow_dispatch only if the ref is a branch (check
startsWith(github.ref, 'refs/heads/')), and finally falls back to the repository
default branch via github.event.repository.default_branch; implement this logic
in the target-branch value (the key shown as target-branch) using a single
chained GitHub Actions expression combining github.event_name, github.base_ref,
github.ref_name, startsWith(github.ref, 'refs/heads/'), and
github.event.repository.default_branch.

In `@src/App.vue`:
- Line 23: The call to theme.change(...) is invalid for Vuetify 3; replace it by
setting theme.global.name.value to a registered theme name (use the useTheme()
composable instance, e.g. assign theme.global.name.value = ... instead of
theme.change(...)). Also ensure the value you assign matches the theme names
defined in your Vuetify config (for example use 'myCustomLightTheme' or
add/register a corresponding dark theme name in the Vuetify setup) so the switch
uses existing theme keys.

In `@src/router/index.ts`:
- Around line 20-23: The catch-all route that currently uses path
'/:catchAll(.*)*' and component NotFound should be changed to redirect to the
canonical '/notfound' route instead of rendering the component directly; update
the route entry in src/router/index.ts so the route with path '/:catchAll(.*)*'
uses a redirect to '/notfound' (or the named route for the NotFound page) so all
404s resolve to the single generated '/notfound' route and share the same
auth/bootstrap behavior.

---

Nitpick comments:
In `@src/pages/warehouse/`[id].vue:
- Line 131: Replace the use of any for warehouseData to restore type safety:
change the ref declaration for warehouseData to use the Warehouse (or
appropriately named) interface from `@lakekeeper/console-components` (or define an
inline type with the specific fields you access) so the ref is typed as
Ref<Warehouse | null> (or Ref<{...} | null>); update imports to pull the
Warehouse type and adjust any usages of warehouseData to respect the new type.

In `@vite.config.mts`:
- Around line 15-23: The current hard-coded allow-list (duckdbFiles) in
vite.config.mts couples the build to internals; replace this enumeration with a
recursive copy of the package's DuckDB assets directory instead: remove
duckdbFiles and update the Vite/Rollup copy step to copy the entire directory
(e.g., node_modules/@lakekeeper/console-components/duckdb) recursively into the
build assets output using the existing copy plugin or rollup-plugin-copy
configuration so new/renamed worker and .wasm files are automatically included;
ensure any references that previously relied on duckdbFiles continue to point to
the same output directory.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 601095b5-61ac-450d-9da2-16f297373624

📥 Commits

Reviewing files that changed from the base of the PR and between 06db7ff and 3a73e3d.

⛔ Files ignored due to path filters (4)
  • package-lock.json is excluded by !**/package-lock.json
  • public/duckdb/duckdb-coi.wasm is excluded by !**/*.wasm
  • public/duckdb/duckdb-eh.wasm is excluded by !**/*.wasm
  • public/duckdb/duckdb-mvp.wasm is excluded by !**/*.wasm
📒 Files selected for processing (25)
  • .eslintrc-auto-import.json
  • .github/workflows/checks.yml
  • .github/workflows/release.yml
  • .gitignore
  • .nvmrc
  • package.json
  • public/duckdb-worker-wrapper.js
  • public/duckdb/duckdb-browser-coi.pthread.worker.js
  • public/duckdb/duckdb-browser-coi.worker.js
  • public/duckdb/duckdb-browser-eh.worker.js
  • public/duckdb/duckdb-browser-mvp.worker.js
  • renovate.json
  • src/App.vue
  • src/assets/dependencies.json
  • src/auto-imports.d.ts
  • src/components.d.ts
  • src/components/NavigationBar.vue
  • src/pages/warehouse/[id].vue
  • src/router/index.ts
  • src/typed-router.d.ts
  • temp_table_page_fix.py
  • tsconfig.json
  • update_sql_editor.py
  • update_sql_editor.sh
  • vite.config.mts
💤 Files with no reviewable changes (4)
  • update_sql_editor.sh
  • update_sql_editor.py
  • public/duckdb-worker-wrapper.js
  • temp_table_page_fix.py

coderabbitai[bot]
coderabbitai bot previously approved these changes Mar 9, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
package.json (1)

25-27: Bound the engine range to the validated Node major.

Line 26 accepts >=24 which allows untested future Node versions (25, 26, …) even though the project is validated only on Node 24. Use a bounded range like >=24 <25 or ^24.0.0 to prevent installs on unvalidated runtimes.

Suggested change
   "engines": {
-    "node": ">=24"
+    "node": ">=24 <25"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` around lines 25 - 27, The package.json "engines" entry
currently allows "node": ">=24", which admits untested future majors; change the
Node engine range to a bounded spec (for example ">=24 <25" or "^24.0.0") to
restrict installs to the validated Node 24 major; update the "engines" object
(the "node" field) accordingly and ensure package.json still validates.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@package.json`:
- Around line 25-27: The package.json "engines" entry currently allows "node":
">=24", which admits untested future majors; change the Node engine range to a
bounded spec (for example ">=24 <25" or "^24.0.0") to restrict installs to the
validated Node 24 major; update the "engines" object (the "node" field)
accordingly and ensure package.json still validates.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 91ba1b08-7bd6-428f-b2f2-daeb4e0f6508

📥 Commits

Reviewing files that changed from the base of the PR and between 6f3d158 and 131df19.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (1)
  • package.json

coderabbitai[bot]
coderabbitai bot previously approved these changes Mar 9, 2026
@v-kessler v-kessler merged commit b923867 into main Mar 9, 2026
7 checks passed
@v-kessler v-kessler deleted the chore/maintenance branch March 9, 2026 16:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant