Skip to content

feat: unify the workspace with Vic UI and conversation navigation - #1

Merged
jerynv merged 17 commits into
mainfrom
feat/vic-ui-migration
Nov 7, 2026
Merged

jerynv merged 17 commits into
mainfrom
feat/vic-ui-migration

Conversation

@jerynv

@jerynv jerynv commented Nov 4, 2026 •

Copy link
Copy Markdown
Owner

The workspace now uses Vic UI controls and tokens throughout chat, settings, onboarding, study, planning, grades and course import. The main canvas is flush, settings fills the window with left navigation, reply actions have consistent spacing, and draft and saved images use proportional previews with useful missing-file fallbacks. The 60 application icons use Lucide, matching the inspected T3 version.

The active space has visible recent conversations and Chat / Study / Grades / Plan navigation. One breadcrumb names the current location. Search, New, older history and keyboard shortcuts share the existing guarded conversation controller; a compact fallback appears when the sidebar is hidden. Returning to the current conversation preserves the draft and focuses the composer without reloading it. Older/current selections and both New controls dismiss the narrow sidebar before composer focus. Closed Radix tooltip wrappers no longer intercept navigation. Study, Grades and Plan share a page layout, with due practice and upcoming deadlines given priority; empty Chat links to real learning destinations.

Contributes native fields, select, radio, disclosure, skeleton and mixed checkbox support upstream in jerynv/vic-ui#1. The committed package archive pins the source and excludes unrelated local library edits. Existing Radix and assistant-ui controllers remain where the application depends on their behavior. T3 Code at 7f6f47b27b44456f1c8214d3b566b375c09f629e supplied the inspected sidebar, breadcrumb, thread-row and composer layout patterns; source comments credit those references.

The architecture review recommends retaining Rust for native boundaries and React/TypeScript for UI. It also led to fixes for protected-state path aliases, dangling symlinks, credential-bearing redirects, missing study validation verdicts and cancellation during blocked stdin or after stdout closes. Existing missing-file behavior is preserved.

Three independent reviews compared the workspace with T3 across navigation, hierarchy, density, chat, composer/media, education and coherence. Final overall ratings were A: 7.5 / 8.5, B: 8.3 / 8.9 and C: 8.0 / 9.0 (workspace / T3). These subjective ratings use source, supplied captures and interaction logs; T3's density and typography remain the stronger reference. The last application capture predates small branding, heading and Search adjustments.

Validation:

  • pnpm build: design check, TypeScript and production build passed. JavaScript unit tests: 33 passed.
  • Fresh Chromium runner with --shard 1/4 through --shard 4/4, light, 1100×720, no screenshots: 193 + 181 + 203 + 210 = 787 checkpoints, zero failed scenarios.
  • Fresh dark responsive run at 640×480 and 760×560: 13 checkpoints, zero failures. Ten focused light/dark checkpoints cover current-thread returns from all three sibling views, both New controls and scrollable seven-row full history. They check draft preservation, IPC counts, overlay dismissal and pointer/keyboard composer focus.
  • cargo test --manifest-path src-tauri/Cargo.toml --lib --no-default-features: 430 passed, 6 ignored. HTTP and CLI integration tests: 4 passed. Native code was unchanged by the later navigation work.
  • Vic UI contract tests, typecheck, design checks and documentation-site build passed.
  • pnpm tauri build --bundles app --config '{"build":{"beforeBuildCommand":null}}' built the current macOS app using the already-built frontend. codesign --verify --deep --strict /Applications/Phaethon.app passed, installed and release executable hashes matched, and the installed application launched with a visible native window.

The architecture document records remaining provider timeout, LMS connection identity, concurrent filesystem replacement and platform coverage work. Live provider/LMS calls and Windows/Linux application flows were not exercised. The production build retains its existing large-chunk warning for lazy document/diagram dependencies.

Linux proof and review (Nov 7)

Stopping a CLI could hang when a descendant ignored SIGTERM and kept stderr open: Stop waited on stderr until that process exited. Stop now kills the rest of the CLI's process group after reaping it and no longer waits on stderr for a stopped turn. A third case in the existing Stop test (orphan-stderr) failed without the fix ("did not stop promptly" for Codex and Gemini) and passes with it.

Proof: on Ubuntu 22.04 (a temporary GitHub Actions workflow, removed before merge), pnpm install --frozen-lockfile, pnpm build, 35/35 JS units and every Rust lib and integration test suite passed on both the original head and the fixed head (0 failed, 29 ignored). Locally on Linux, the Chromium scenario suite ran 981 checkpoints. The 7 failed runs come from the Linux headless environment: it reports hover: none (where shell.css keeps reply actions visible on purpose), and 4 scroll-position runs fail the same way on main.

Reviewed with sol-loop: 1 round with gpt-6.1-sol on medium, scoped to native boundaries. It flagged three findings. Fixed: the Stop hang above. Dismissed: removing the native full-access confirmation, which docs/ARCHITECTURE.md records as the intended T3-style access picker. Declined as a follow-up: search walking a real folder that .phaethon was manually symlinked to (Phaethon never creates that link, and tools cannot). The fix landed after the single review round.

Created with Claude Opus 5.5 in Claude Code (T3 Code); review by GPT Sol 6.1 in Codex.

@jerynv jerynv changed the title feat: unify interface with vic-ui and harden native boundaries feat: unify the workspace with Vic UI and conversation navigation Nov 4, 2026
@jerynv
jerynv force-pushed the feat/vic-ui-migration branch from 5a80568 to 9930c55 Compare November 7, 2026 06:35
@jerynv
jerynv merged commit 7b0ebba into main Nov 7, 2026
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