Skip to content

feat: bump console-components to v0.8.0; add generic-table detail page#321

Merged
v-kessler merged 3 commits into
mainfrom
feat-generic-tables-and-format-policy
Jun 8, 2026
Merged

feat: bump console-components to v0.8.0; add generic-table detail page#321
v-kessler merged 3 commits into
mainfrom
feat-generic-tables-and-format-policy

Conversation

@v-kessler

@v-kessler v-kessler commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Bump `@lakekeeper/console-components` from v0.7.2 to v0.8.0 — picks up generic tables (Lance / Delta / Vortex), Iceberg format-version policy, the per-entity maintenance summary in TaskManager, brand icons, and the new `pickable` mode on `WarehousesNavigationTree`.
  • Add the generic-table detail page at `/warehouse/:id/namespace/:nsid/generic-table/:tid`.
  • Wire `'generic-table'` into `handleNavigate` on all five warehouse pages so tree / list / search clicks route to the new page.

Test plan

  • `npm install` from scratch (CI) pulls v0.8.0 cleanly.
  • Browse a namespace with mixed Iceberg + Lance/Delta/Vortex tables — unified Tables tab shows brand icons.
  • Click a generic table row → detail page opens at the new route.
  • Click a generic table node in the warehouse tree → same.
  • Tree search → click a generic-table result → navigates.
  • Drop / undrop / rename works end-to-end for a generic table.
  • Warehouse details shows allowed-format-versions + default-format-version chips.
  • Catalog Settings dialog updates deletion + format policy in one click.

BEGIN_COMMIT_OVERRIDE
chore(ui): bump console-components to v0.8.0
feat(ui): add /warehouse/:id/namespace/:nsid/generic-table/:tid detail page
feat(ui): route generic-table tree/list/search clicks to the new page
END_COMMIT_OVERRIDE

Summary by CodeRabbit

  • New Features
    • Added new generic table page with details, permissions, and tasks tabs accessible from warehouse namespaces.
    • Updated navigation across the warehouse interface to support generic table access.

- bump @lakekeeper/console-components from v0.7.2 to v0.8.0 (generic tables,
  format-version policy, maintenance summary, brand icons,
  WarehousesNavigationTree pickable mode)
- add /warehouse/:id/namespace/:nsid/generic-table/:tid detail page
- handleNavigate cases for 'generic-table' added to all five warehouse pages
  so tree/list clicks route to the new detail page

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@v-kessler, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 45 minutes and 37 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dcc7472a-60f6-4c6b-87f7-45a3a1900884

📥 Commits

Reviewing files that changed from the base of the PR and between 56f151e and bb57528.

📒 Files selected for processing (1)
  • src/pages/warehouse/[id].namespace.[nsid].generic-table.[tid].vue

Walkthrough

This PR introduces a new generic-table page for displaying warehouse/namespace/table metadata with tabbed details, permissions, and tasks views. It updates the console-components dependency to v0.8.0, extends navigation routing across five existing warehouse pages to support generic-table items, and registers the new route in TypeScript type declarations.

Changes

Generic Table Feature

Layer / File(s) Summary
Dependency updates
package.json, src/assets/dependencies.json
@lakekeeper/console-components bumped from v0.7.2 to v0.8.0 in package manifest and metadata, and crc crate v3 added to Rust dependencies.
Generic table page component
src/pages/warehouse/[id].namespace.[nsid].generic-table.[tid].vue
New page renders breadcrumbs, resizable left navigation with warehouse tree, table header, and tabbed interface. Manages tab selection, left-pane width resizing, route params, async warehouse and table metadata loading with request-token concurrency protection, permission-derived tab visibility, and watchers for URL/route/external-tab synchronization.
Navigation routing in existing pages
src/pages/warehouse/index.vue, src/pages/warehouse/[id].vue, src/pages/warehouse/[id].namespace.[nsid].vue, src/pages/warehouse/[id].namespace.[nsid].table.[tid].vue, src/pages/warehouse/[id].namespace.[nsid].view.[vid].vue
Five warehouse page components updated to route generic-table items to /warehouse/{id}/namespace/{nsid}/generic-table/{name} in their handleNavigate handlers.
Router type declarations
src/typed-router.d.ts
TypeScript router definitions augmented with new generic-table route entry, internal _ParamParsers and _RouteFileInfoMap metadata, and pathParamNames unions for route files.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • lakekeeper/console#214: Updates @lakekeeper/console-components to v0.8.0, matching the dependency version bump in this PR.
  • lakekeeper/console#199: Modifies warehouse navigation handleNavigate logic in the same set of page components to extend route-push behavior.

Suggested reviewers

  • c-thiel

Poem

🐰 A table for every warehouse view,
With tabs and trees and routing too!
The components dance to v0.8.0,
While crcs spin and navigation flows anew.
A generic feast for viewers below! 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the two main changes: bumping console-components to v0.8.0 and adding a generic-table detail page.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat-generic-tables-and-format-policy

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
src/pages/warehouse/[id].namespace.[nsid].table.[tid].vue (1)

215-243: ⚡ Quick win

Consider extracting handleNavigate to a shared composable.

The handleNavigate function is duplicated across six page components (this file plus index.vue, [id].vue, [id].namespace.[nsid].vue, [id].namespace.[nsid].view.[vid].vue, and the new generic-table page). Extracting it to a shared composable would reduce duplication and centralize navigation logic.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/pages/warehouse/`[id].namespace.[nsid].table.[tid].vue around lines 215 -
243, Extract the duplicated handleNavigate function into a shared composable
(e.g., useNavigation) and replace local copies with an imported call; move the
logic that computes namespaceForRoute
(item.namespaceId?.split('.').join('\x1F')), the branching on item.type
('warehouse'|'namespace'|'table'|'view'|'generic-table'), the router.push calls,
and the visual.whId assignment into that composable so callers simply call
useNavigation().handleNavigate(item). Ensure the composable accepts router and
visual (or accesses the same global stores) and preserves the optional tab query
behavior for namespaces and the exact route strings using item.warehouseId and
item.name.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/pages/warehouse/`[id].namespace.[nsid].generic-table.[tid].vue:
- Around line 240-271: The loadGenericTableMetadata function can leave
genericTableId.value as '' when functions.listGenericTables(...) finds no
identifier matching tid, which causes the Permissions/Tasks tabs to show an
indeterminate loader; update loadGenericTableMetadata so after calling
functions.listGenericTables (and verifying requestToken), if no match is found
set an explicit error state (e.g., pageError.value = 'not-found' or another
suitable sentinel) and ensure loading.value is cleared as currently done;
reference the functions.listGenericTables call, the match variable,
genericTableId.value assignment, and set pageError.value accordingly to prevent
the UI from getting stuck.

---

Nitpick comments:
In `@src/pages/warehouse/`[id].namespace.[nsid].table.[tid].vue:
- Around line 215-243: Extract the duplicated handleNavigate function into a
shared composable (e.g., useNavigation) and replace local copies with an
imported call; move the logic that computes namespaceForRoute
(item.namespaceId?.split('.').join('\x1F')), the branching on item.type
('warehouse'|'namespace'|'table'|'view'|'generic-table'), the router.push calls,
and the visual.whId assignment into that composable so callers simply call
useNavigation().handleNavigate(item). Ensure the composable accepts router and
visual (or accesses the same global stores) and preserves the optional tab query
behavior for namespaces and the exact route strings using item.warehouseId and
item.name.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3b137285-7525-4c4f-b6ea-2e6bb3e3b4be

📥 Commits

Reviewing files that changed from the base of the PR and between efb773a and 56f151e.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (9)
  • package.json
  • src/assets/dependencies.json
  • src/pages/warehouse/[id].namespace.[nsid].generic-table.[tid].vue
  • src/pages/warehouse/[id].namespace.[nsid].table.[tid].vue
  • src/pages/warehouse/[id].namespace.[nsid].view.[vid].vue
  • src/pages/warehouse/[id].namespace.[nsid].vue
  • src/pages/warehouse/[id].vue
  • src/pages/warehouse/index.vue
  • src/typed-router.d.ts

Comment thread src/pages/warehouse/[id].namespace.[nsid].generic-table.[tid].vue
loadGenericTableMetadata calls listGenericTables to resolve the UUID for
PermissionManager / TaskManager. If the listing returned no identifier for
the route's table name, the previous code left genericTableId.value as ''
and the tabs spun on "Loading generic table information…" forever.

Set pageError.value = 'not-found' in that case so the page renders the
inline alert instead.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@v-kessler v-kessler merged commit eeaea2a into main Jun 8, 2026
7 checks passed
@v-kessler v-kessler deleted the feat-generic-tables-and-format-policy branch June 8, 2026 11:51
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