refactor(app): reorganise routes into (public) and (internal) groups#85
Open
natashaannn wants to merge 7 commits into
Open
refactor(app): reorganise routes into (public) and (internal) groups#85natashaannn wants to merge 7 commits into
natashaannn wants to merge 7 commits into
Conversation
Introduces Next.js App Router route groups to formalise the boundary between externally-exposed and internal-only pages. Route group names are stripped from URLs so no redirects or existing links break. Public routes (carousel, landing, about) move into app/(public)/. Internal routes (editor, camera) move into app/(internal)/. The transcribe/ directory is renamed to get-youtube-captions/ to accurately describe what it does (YouTube auto-captions via the youtube-transcript package, not Whisper-based transcription). Deletes app/login/ as the fake demo-credential auth system is being replaced by the subscriber email gate (Issue #77). Fixes relative import paths in all moved files (one extra level now that each sits under a route group folder). Suppresses pre-existing ESLint violations in Timeline.tsx (react-hooks/refs stable-ref pattern), TimelineScrollbar.tsx, useTimelineNav.ts, and camera/page.tsx that were not previously linted because those files were not staged. AC: file moves complete, login deleted, route group structure in place
Renames /transcribe → /get-youtube-captions in Header.tsx, the landing page, and the about page to match the directory rename. Removes the Sign In / Sign Out buttons from Header.tsx (both desktop and mobile drawer) and their associated useRouter/useAuth imports. The /login route has been deleted; auth will be replaced by the subscriber email gate in Issue #77. AC: no nav link points to /login; all /transcribe hrefs updated
Updates app/camera, app/editor paths to reflect their new locations under app/(internal)/ after the route group reorganisation.
…audit finding The nested js-yaml inside @istanbuljs/load-nyc-config was pinned at <=4.1.1 (GHSA-h67p-54hq-rp68). This override forces it to 4.2.0, clearing the 18 moderate vulnerabilities that blocked the pre-push hook. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Adds /carousel, /get-youtube-captions, and /about smoke tests to match the issue's additional test scenarios. Removes the stale login-redirect comment from the root test (the /login route has been deleted).
Asserts /get-youtube-captions is present, /transcribe is absent, and /login is absent — covering the rename and deletion done in this issue. Auto-carousel nav removal is out of scope here (tracked in issue #81). Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
- Make scripts/config/paths.test.ts cross-platform by normalizing expected paths with path.normalize() (fixes 26 failures on Windows) - Update docs/review-findings/2026-06-16-refactor-p8-route-groups.md to reflect resolved W1/W2/B3 findings and passing test plan results Branch was rebased onto origin/main during review session.
victoria-lo
approved these changes
Jun 19, 2026
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.
Summary
impact, since group names are stripped from paths by the App Router.
YouTube auto-generated captions via `youtube-transcript`, not the internal Whisper pipeline).
page, as the fake demo-credential auth system is being replaced by the subscriber email gate
(Issue feat(auth): add modular Resend subscriber email gate for carousel and get-youtube-captions #77).
transitive dep chain (`@istanbuljs/load-nyc-config`) — pre-existing on `main`, unrelated to
this PR's feature work.
login-redirect references from `e2e/smoke.test.ts`.
`/transcribe` is absent, and `/login` is absent from nav links.
How to review
public routes (`/`, `/about`, `/carousel`, `/get-youtube-captions`) in `(public)/`;
internal routes (`/editor`, `/camera`) in `(internal)/`. No logic changes, import paths only.
removal of Sign In/Sign Out `` blocks (both desktop and drawer), and the
`/transcribe` → `/get-youtube-captions` nav link update. No other changes.
`/get-youtube-captions` and any `/login` anchor removed. `/auto-carousel` link is
intentionally left for Issue chore(auto-carousel): remove auto-carousel API route, component, and all references #81.
`/transcribe` absent, `/login` absent. `/auto-carousel` is intentionally not asserted here
(Issue chore(auto-carousel): remove auto-carousel API route, component, and all references #81's responsibility).
comment removed.
`app/(internal)/editor/` and `app/(internal)/camera/`.
Test plan
Manual verification (completed):
Closes #76