Repository navigation
feat: unify the workspace with Vic UI and conversation navigation - #1
Merged
Merged
Conversation
Align chat, Settings and course navigation with the T3 reference through Vic controls. Add bounded ready-input previews, independent usage, source browsing and system dictation. Repair import pagination, account reuse, cache validation and cancellation. Verify the browser flows, native tests and installed rendered app.
jerynv
force-pushed
the
feat/vic-ui-migration
branch
from
November 7, 2026 06:35
5a80568 to
9930c55
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
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
7f6f47b27b44456f1c8214d3b566b375c09f629esupplied 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.--shard 1/4through--shard 4/4, light, 1100×720, no screenshots: 193 + 181 + 203 + 210 = 787 checkpoints, zero failed scenarios.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.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.apppassed, 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 reportshover: none(whereshell.csskeeps reply actions visible on purpose), and 4 scroll-position runs fail the same way onmain.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.mdrecords as the intended T3-style access picker. Declined as a follow-up: search walking a real folder that.phaethonwas 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.