Soft Rebuild (Deconstruction Integration & Architectural Restoration#45
Merged
Timchung18 merged 12 commits intoTimchung18:refactorfrom Feb 22, 2026
Merged
Soft Rebuild (Deconstruction Integration & Architectural Restoration#45Timchung18 merged 12 commits intoTimchung18:refactorfrom
Timchung18 merged 12 commits intoTimchung18:refactorfrom
Conversation
…Details UI, Security Tests)
|
@JoelA510 is attempting to deploy a commit to the Timothy Cheung's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Owner
|
No features (that i can tell) that were working in the last PR have been broken in this PR |
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.
Deconstruction Integration & Architectural Restoration
📋 Summary
This pull request represents a massive architectural overhaul and stabilization effort, merging the
gold-masterbranch intomain. The goal of this release is to fundamentally restructure the application for long-term scalability and engineering excellence. We have transitioned to a strict Feature-Sliced Design (FSD) architecture, adopted React Router v7's Data Router, embraced TypeScript for core utilities, and successfully downgraded to React 18 (ADR-002) to ensure third-party library stability. Concurrently, we have restored critical network resilience, theme syncing, and comprehensive security testing.✨ Highlights
src/directory has been reorganized into FSD layers (app,pages,features,shared). This highly modular structure prevents circular dependencies and distinctly separates concerns (e.g., separatingtaskslogic fromprojectslogic).createBrowserRouter. This enables advanced data loading patterns (likeprotectedLoaderandpublicLoader) and implements lazy-loaded routes for optimized bundle sizes..ts/.tsx) for critical paths, significantly improving type safety across hooks and components.@supabase-cache-helpersdependency. Data fetching now relies on standard@tanstack/react-queryhooks powered by our customplanterClient.jsandrawSupabaseFetch, effectively enforcing[NET-005]abort resilience and timeout protections.RLS.test.js,XSS.test.jsx,RPCHardening.test.js), proving our defenses against privilege escalation and unauthorized access.package.jsonand successfully uninstalled 12 completely unused@radix-ui/*primitives, along with deprecated cache helpers, vastly reducing node_modules bloat.🗺️ Roadmap Progress
src/directory migration🏗️ Architecture Decisions
Key Patterns & Decisions
rawSupabaseFetchto wrap the Supabase client. This allows us to inject aggressive timeout controls, handle connection drops gracefully, and properly interceptAbortControllersignals during component unmounts.FSD Component Hierarchy
graph TD A["App (main.tsx)"] --> B["Router (router.tsx)"] B --> C["Layout (Layout.tsx)"] C --> D["Pages (Dashboard, Project)"] D --> E["Features (Tasks, Projects, Auth)"] E --> F["TaskBoard / TaskTree"] F --> G["TaskRow / TaskItem"] G --> H["Shared UI (Cards, Buttons)"]Network Stability Data Flow
sequenceDiagram participant C as Component participant RQ as React Query (useTasks) participant PC as planterClient participant RSF as rawSupabaseFetch participant DB as Supabase API C->>RQ: useQuery(['tasks']) RQ->>PC: entities.Task.list() PC->>RSF: fetch('/rest/v1/tasks') RSF->>DB: HTTP GET alt Success DB-->>RSF: 200 OK (Tasks) RSF-->>PC: JSON Data PC-->>RQ: Data Array RQ-->>C: render(tasks) else Timeout / Abort DB--xRSF: Connection Dropped RSF-->>PC: AbortError PC-->>RQ: Throw Error (Triggers Retry) end🔍 Review Guide
🚨 High Risk / Security Sensitive
src/features/tasks/hooks/useTasks.ts&src/features/members/hooks/useMembers.ts- Data fetching foundations.src/tests/security/RLS.test.js- Tests enforcing database row-level security guardrails.src/app/router.tsx- Route protection logic (protectedLoader).🧠 Medium Complexity
src/features/tasks/components/TaskTree/TaskRow.tsx- New TypeScript implementation of the draggable task row.src/shared/api/planterClient.js- The core network adapter handling raw fetch and retries.src/features/tasks/components/TaskDetails/TaskDetails.tsx- Full-fidelity task editing component.🟢 Low Risk / Boilerplate
src/shared/ui/*- Reusable Shadcn UI components.src/styles/globals.css- CSS variables and Tailwind configuration.🧪 Verification Plan
1. Environment Setup
npm install(to apply React 18 downgrade and new TypeScript dev dependencies)..env.localis present with Supabase credentials.2. Manual Verification
http://localhost:5173. Assuming no session, verify redirect to/login./dashboardvia the new routing loaders.3. Automated Tests