Skip to content

Before force push change for visibility as base#58

Closed
Kitenite wants to merge 7 commits intomainfrom
new-temp
Closed

Before force push change for visibility as base#58
Kitenite wants to merge 7 commits intomainfrom
new-temp

Conversation

@Kitenite
Copy link
Copy Markdown
Collaborator

@Kitenite Kitenite commented Nov 11, 2025

Description

Related Issues

Type of Change

  • Bug fix
  • New feature
  • Documentation
  • Refactor
  • Other (please describe):

Testing

Screenshots (if applicable)

Additional Notes

Summary by CodeRabbit

  • New Features

    • Added project structure validator tool for monorepo organization
    • Introduced new desktop app sidebar with tabs and changes view modes
    • Added 3D hero section with canvas rendering on website
    • Added client logos section to website
    • Added features section to website
    • Implemented workspace setup automation
  • Documentation

    • Expanded AGENTS.md with project structure guidelines, database rules, Electron patterns, and keyboard shortcuts
  • Refactor

    • Modularized website components into separate files
    • Made new desktop layout the default UI
    • Simplified environment variables
  • Chores

    • Removed debugging logs from terminal component
    • Removed unused UI components

Kitenite and others added 7 commits November 8, 2025 14:25
* Add Conductor workspace automation

- Setup script handles dependency installation, direnv, and Neon branches
- Each workspace gets isolated Neon database branch
- Run script starts all dev servers via Turbo

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove run script - let developers choose which apps to run

* Add dependency checks with clear error messages

---------

Co-authored-by: Claude <noreply@anthropic.com>
* Restructure website app with strict co-location pattern

- Extract page sections into dedicated components (HeroSection, ClientLogosSection, ScaleFeaturesSection, FeaturesSection)
- Nest sub-components under parent's components/ directory when only used once
- Move shared layout components (Header, Footer, WaitlistModal) to components/layout/
- Co-locate constants, config, hooks, and shaders with their components
- Reduce main page.tsx from 419 lines to ~30 lines of orchestration
- Add comprehensive Project Structure documentation to AGENTS.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Enforce strict co-location pattern in website app

- Move Header, Footer, WaitlistModal to app/components/ (used only in page.tsx)
- Extract HeroCanvas multi-component file:
  - calculateGlareProperties → helpers.ts
  - LitBackground → components/LitBackground/
- Delete unused ScaleFeaturesSection component
- Update all imports to use relative paths
- Add project-structure-validator agent for ongoing compliance

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Improve project-structure-validator agent performance and output

- Add component graph builder script for fast dependency analysis
- Update agent to always build graph first (avoids 15-20+ grep operations)
- Add test coverage checking requirement (rule #5)
- Define concise output format with performance tracking
- Add self-improvement requirement for iterative agent refinement
- Co-locate all agent resources in .claude/agents/project-structure-validator/
- Add .gitignore for generated graph files

Performance improvements:
- Reduced tool calls from 30+ to ~10
- Pre-computed import counts eliminate slow grep operations
- Test coverage check integrated into workflow

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove Structure Rules heading from AGENTS.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove test coverage requirement from structure rules

Test co-location is optional, not mandatory. Removed:
- Bullet #5 from AGENTS.md structure rules
- Test coverage checks from agent validation steps
- Test coverage metrics from agent output format

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Nov 11, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This PR refactors the desktop app's layout architecture, replacing task-centric components with a worktree-centered model. It modularizes website components into separate files, introduces project-structure validator documentation and build scripts, and adds conductor workspace automation. Configuration files are simplified while expanding AGENTS.md with architectural guidance.

Changes

Cohort / File(s) Summary
Project Structure Validator
.claude/agents/project-structure-validator.md, .claude/agents/project-structure-validator/.gitignore, .claude/agents/project-structure-validator/build-component-graph.sh
New documentation and Bash script for building component dependency graphs; identifies component imports and generates JSON output for monorepo analysis.
Configuration & Setup
.env.example, .gitignore, conductor.json, conductor-setup.sh
Simplifies .env.example to DATABASE_URL only; adds Superset ignore entry; introduces conductor automation for workspace setup including Neon branch creation and .env generation.
Documentation
AGENTS.md
Expands with project structure guidelines, monorepo layout, database rules, Drizzle ORM patterns, Electron IPC architecture, and keyboard shortcuts system; removes redundant UI components section.
Desktop App - Layout & Sidebar Refactoring
apps/desktop/src/renderer/screens/main/MainScreen.tsx, apps/desktop/src/renderer/screens/main/components/Sidebar/Sidebar.tsx, apps/desktop/src/renderer/screens/main/components/NewLayout/NewLayoutMain.tsx, apps/desktop/src/renderer/screens/main/components/NewLayout/TaskTabs.tsx, apps/desktop/src/renderer/screens/main/components/NewLayout/WorktreeTabsSidebar.tsx
Replaces task-centric sidebar with worktree-based WorktreeTabsSidebar; removes workspace carousel/switcher; adds sidebarMode state ("tabs" | "changes"); introduces WorktreeTabsSidebar with dual-mode UI (tabs/changes views) and git diff loading.
Desktop App - Diff & Tab Content
apps/desktop/src/renderer/screens/main/components/DiffView/DiffView.tsx, apps/desktop/src/renderer/screens/main/components/MainContent/TabContent.tsx, apps/desktop/src/renderer/screens/main/components/MainContent/TabGroup.tsx, apps/desktop/src/renderer/screens/main/components/TabContent/components/DiffTab/DiffTab.tsx
Extends DiffView with external file selection control (hideFileTree, externalSelectedFile, onFileSelect); adds isVisibleInMosaic prop to enable tab visibility in mosaic layout; wires selectedDiffFile through DiffTab hierarchy.
Desktop App - Terminal & Configuration
apps/desktop/src/main/lib/tmux-manager.ts, apps/desktop/src/renderer/screens/main/components/MainContent/Terminal.tsx, apps/desktop/src/renderer/screens/main/components/TopBar/TopBar.tsx, apps/desktop/electron.vite.config.ts
Removes debug logging; consolidates imports in tmux-manager; removes ENABLE_NEW_UI environment variable; removes unused workspaceName and currentBranch props from TopBar.
Website - Component Modularization
apps/website/src/app/page.tsx, apps/website/src/app/components/ClientLogosSection/*, apps/website/src/app/components/FeaturesSection/*, apps/website/src/app/components/Footer/index.ts, apps/website/src/app/components/Header/*, apps/website/src/app/components/WaitlistModal/index.ts
Extracts HeroSection, ClientLogosSection, FeaturesSection, and Footer from monolithic page.tsx into separate modular components with index barrel exports.
Website - Hero Canvas & Shaders
apps/website/src/app/components/HeroSection/components/HeroCanvas/*, apps/website/src/app/components/HeroSection/components/HeroParallax/index.ts, apps/website/src/app/components/HeroSection/index.ts, apps/website/src/app/components/HeroSection/components/HeroCanvas/config.ts, apps/website/src/app/components/HeroSection/components/HeroCanvas/helpers.ts, apps/website/src/app/components/HeroSection/components/HeroCanvas/shaders/fragment.ts, apps/website/src/app/components/HeroSection/components/HeroCanvas/shaders/vertex.ts
Introduces HeroCanvas component with Three.js canvas integration; adds GLSL vertex/fragment shaders for wave effects and lighting; creates config and helpers modules for glare animation and shader parameters.
Website - Component Cleanup
apps/website/src/components/motion/TiltCard.tsx, apps/website/src/components/motion/index.ts
Removes TiltCard component and its index re-export; cleans up unused motion component barrel.
Website - Misc Updates
apps/website/src/app/components/Header/Header.tsx, apps/website/src/trpc/server.tsx
Updates WaitlistModal import path in Header; switches all string literals to double quotes in server.tsx for consistency.

Sequence Diagram

sequenceDiagram
    participant User
    participant NewLayoutMain
    participant WorktreeTabsSidebar
    participant TaskTabs
    participant DiffTab
    participant DiffView

    User->>NewLayoutMain: Interact with layout
    NewLayoutMain->>TaskTabs: Render worktree tabs with selectedWorktreeId
    TaskTabs->>NewLayoutMain: onWorktreeSelect(worktreeId)
    NewLayoutMain->>WorktreeTabsSidebar: Pass selectedWorktreeId & tab callbacks

    Note over WorktreeTabsSidebar: Dual-mode sidebar (Tabs/Changes)
    
    alt Tabs Mode
        WorktreeTabsSidebar->>WorktreeTabsSidebar: Render tab hierarchy
        User->>WorktreeTabsSidebar: Select tab
        WorktreeTabsSidebar->>NewLayoutMain: onTabSelect(tabId)
    else Changes Mode
        WorktreeTabsSidebar->>WorktreeTabsSidebar: Fetch git diff via IPC
        WorktreeTabsSidebar->>DiffView: Pass diff data
        User->>WorktreeTabsSidebar: Select changed file
        WorktreeTabsSidebar->>NewLayoutMain: onDiffFileSelect(fileId)
        NewLayoutMain->>DiffTab: Pass selectedDiffFile
        DiffTab->>DiffView: hideFileTree=true, externalSelectedFile=fileId
    end

    DiffView->>DiffView: Control file selection externally
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Areas requiring extra attention:

  • NewLayout & WorktreeTabs architecture: Fundamental shift from task to worktree model; validate state management and initialization logic across multiple init/update paths
  • WorktreeTabsSidebar dual-mode implementation: Verify diff loading IPC integration, scroll-snap behavior, and mode-switching state consistency
  • DiffView external control props: Confirm hideFileTree/externalSelectedFile/onFileSelect flow and state reconciliation between internal and external selection
  • Sidebar removal of workspace logic: Ensure currentWorkspace substitution is complete; validate no broken references to removed workspace carousel
  • HeroCanvas shader and Three.js setup: Review GLSL shader correctness, camera/lighting configuration, and performance implications of canvas rendering
  • Component extraction refactoring: Verify all imports/exports are correct after moving components from page.tsx; check prop threading through new modular boundaries

Possibly related PRs

Poem

🐰 Worktrees dance where tasks once stood,
Components scattered, modular and good!
Shaders wave with Three.js light,
Sidebars split—changes at night,
A monorepo refactored right! ✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch new-temp

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ebc43af and 6a9789b.

📒 Files selected for processing (45)
  • .claude/agents/project-structure-validator.md (1 hunks)
  • .claude/agents/project-structure-validator/.gitignore (1 hunks)
  • .claude/agents/project-structure-validator/build-component-graph.sh (1 hunks)
  • .env.example (1 hunks)
  • .gitignore (1 hunks)
  • AGENTS.md (2 hunks)
  • apps/desktop/electron.vite.config.ts (0 hunks)
  • apps/desktop/src/main/lib/tmux-manager.ts (4 hunks)
  • apps/desktop/src/renderer/screens/main/MainScreen.tsx (5 hunks)
  • apps/desktop/src/renderer/screens/main/components/DiffView/DiffView.tsx (2 hunks)
  • apps/desktop/src/renderer/screens/main/components/MainContent/TabContent.tsx (6 hunks)
  • apps/desktop/src/renderer/screens/main/components/MainContent/TabGroup.tsx (2 hunks)
  • apps/desktop/src/renderer/screens/main/components/MainContent/Terminal.tsx (0 hunks)
  • apps/desktop/src/renderer/screens/main/components/NewLayout/NewLayoutMain.tsx (17 hunks)
  • apps/desktop/src/renderer/screens/main/components/NewLayout/TaskTabs.tsx (2 hunks)
  • apps/desktop/src/renderer/screens/main/components/NewLayout/WorktreeTabsSidebar.tsx (1 hunks)
  • apps/desktop/src/renderer/screens/main/components/Sidebar/Sidebar.tsx (1 hunks)
  • apps/desktop/src/renderer/screens/main/components/TabContent/components/DiffTab/DiffTab.tsx (3 hunks)
  • apps/desktop/src/renderer/screens/main/components/TopBar/TopBar.tsx (0 hunks)
  • apps/website/src/app/components/ClientLogosSection/ClientLogosSection.tsx (1 hunks)
  • apps/website/src/app/components/ClientLogosSection/constants.ts (1 hunks)
  • apps/website/src/app/components/ClientLogosSection/index.ts (1 hunks)
  • apps/website/src/app/components/FeaturesSection/FeaturesSection.tsx (1 hunks)
  • apps/website/src/app/components/FeaturesSection/index.ts (1 hunks)
  • apps/website/src/app/components/Footer/index.ts (1 hunks)
  • apps/website/src/app/components/Header/Header.tsx (1 hunks)
  • apps/website/src/app/components/Header/index.ts (1 hunks)
  • apps/website/src/app/components/HeroSection/HeroSection.tsx (1 hunks)
  • apps/website/src/app/components/HeroSection/components/FadeUp/index.ts (1 hunks)
  • apps/website/src/app/components/HeroSection/components/HeroCanvas/HeroCanvas.tsx (1 hunks)
  • apps/website/src/app/components/HeroSection/components/HeroCanvas/components/LitBackground/LitBackground.tsx (1 hunks)
  • apps/website/src/app/components/HeroSection/components/HeroCanvas/components/LitBackground/index.ts (1 hunks)
  • apps/website/src/app/components/HeroSection/components/HeroCanvas/config.ts (1 hunks)
  • apps/website/src/app/components/HeroSection/components/HeroCanvas/helpers.ts (1 hunks)
  • apps/website/src/app/components/HeroSection/components/HeroCanvas/shaders/fragment.ts (1 hunks)
  • apps/website/src/app/components/HeroSection/components/HeroCanvas/shaders/vertex.ts (1 hunks)
  • apps/website/src/app/components/HeroSection/components/HeroParallax/index.ts (1 hunks)
  • apps/website/src/app/components/HeroSection/index.ts (1 hunks)
  • apps/website/src/app/components/WaitlistModal/index.ts (1 hunks)
  • apps/website/src/app/page.tsx (1 hunks)
  • apps/website/src/components/motion/TiltCard.tsx (0 hunks)
  • apps/website/src/components/motion/index.ts (0 hunks)
  • apps/website/src/trpc/server.tsx (2 hunks)
  • conductor-setup.sh (1 hunks)
  • conductor.json (1 hunks)

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

@Kitenite Kitenite closed this Nov 11, 2025
@Kitenite Kitenite deleted the new-temp branch November 12, 2025 18:20
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.

2 participants