feat: minimal workbench shell redesign (0166) - #39
Merged
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements docs/explorations/0166 — the xNet Workbench: a fixed-region, monochrome, keyboard-first shell that replaces the header + sidebar layout.
What changed
Phase 0 — Foundations (
packages/ui)tokens.cssrebuilt around a role-named, APCA-checked monochrome ramp (surface-0/1/2,ink-1/2/3,hairline,accent-ink) with all legacy semantic variables aliased onto it. Primary/ring are now monochrome ink; hue survives only for user data (status dots, charts). Includes atrue-blackOLED variant (ThemeProvidersetVariant).Phases 1–2 — Shell + tabs (
apps/web/src/workbench/)xnet:workbench:v1) +react-resizable-panelslayout persistence.Phase 3 — Panels
useContextPanelAPI: PageView publishes Properties/Comments/Backlinks (comments moved out of the page layout); DatabaseView row detail; CanvasView selection inspector; TasksView task detail.SavedViewDescriptor/QueryAST → table viaSavedViewRunner). Saved views are first-class tabs (/view/$viewId).Phase 4 — Keyboard & palette
GlobalSearchrebuilt on cmdk: quick-open (recents first, full-text pages, all node types),>command mode, chords on every row, ⌘K/⌘P, Escape restores focus. Measured open→focused ~1ms (50ms budget).Phase 5 — Unified drag
application/x-xnet-nodepayload (packages/ui/src/dnd/node-transfer.ts) on explorer rows, tabs, My Tasks rows, the database row-detail chip, and the canvas selection pill (drag a card out and you carry its source node — excerpting, not copying).Phase 6 — Extensibility & flip
StatusBarContributionadded to@xnetjs/plugins; SidebarContributions become rail items/panel views; CommandContributions mirror into the CommandRegistry; configurable startup tab.docs/reference/WORKBENCH.mdadded.Validation
Deviations from the exploration doc
ink-2/ink-3are#B4B4B4/#7A7A7A(doc's#9A9A9A/#5C5C5Cmeasured Lc 48/19, below its own validation targets).Mod-|); ⌘\ stays on the right panel per the doc's keyboard map.🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
UI Improvements
Bug Fixes