Skip to content

refactor: remove the Next.js compatibility layer from web, admin and space#9394

Closed
ShikharKunal wants to merge 4 commits into
makeplane:previewfrom
ShikharKunal:refactor/remove-nextjs-compat-layer-full
Closed

refactor: remove the Next.js compatibility layer from web, admin and space#9394
ShikharKunal wants to merge 4 commits into
makeplane:previewfrom
ShikharKunal:refactor/remove-nextjs-compat-layer-full

Conversation

@ShikharKunal

Copy link
Copy Markdown

Summary

Removes the Next.js compatibility layer that the December React Router + Vite migration left behind, and pays down the two type/tooling holes that removing it exposed.

The shims were not dead code — they were load-bearing: 307 next/navigation imports, 72 next/link, 2 next/script. next isn't even a dependency; each app hand-rolled shims in app/compat/next/ wired up two independent ways (Vite aliases for runtime, ambient .d.ts for TypeScript).

No next/* imports and no compat shims remain. next-themes is kept deliberately — it's a framework-agnostic library, not a Next.js API.

Why this was more than a find-and-replace

Two shim behaviors were holding things up, and a naive swap to React Router breaks them silently:

  1. Trailing slashes. Every <Link href> and router.push() ran through ensureTrailingSlash(), so all in-app URLs end in /. Five active-state checks compare pathname against literals ending in /, and ~35 route constants (profile.tsselected: "/assigned/", user-menu.tsxhref: /${slug}/) are authored with trailing slashes. Drop the slash and sidebar/tab highlighting stops working, with no error anywhere.

  2. Deferred navigation. web's useRouter wrapped navigate() in setTimeout(…, 0). That is the only reason authentication-wrapper.tsx's 8 in-render redirects don't trip React's "cannot update a component while rendering" error.

Both behaviors are preserved, now implemented in repo-owned code: ensureTrailingSlash moved into @plane/utils, and useAppRouter rebuilt on useNavigate (keeping the deferral). URLs and bookmarks are unchanged.

The type hole the shim was hiding

The deleted shim declared useParams<T = Record<string, string>>(): T — typing every route param as a non-optional string. React Router types them string | undefined, which is correct. Removing the shim surfaced 164 latent unsafe accesses across 59 files.

These are fixed at the source — no wrapper, no as string, no !, no @ts-ignore, no new eslint-disable:

  • Route components under the segment that declares the param get the codebase's own guard (if (!workspaceSlug || !projectId) return null — already used 95×). The guard goes after the last hook call, never straight after useParams; returning before a later hook violates the rules of hooks.
  • Params read inside callbacks (which a component guard can't narrow) use the established ?.toString() ?? "", and existing in-callback guards were widened to cover the param they omitted (cycleId, moduleId, workspaceSlug).
  • usePublish(anchor) in space now takes string | undefined, matching what it already did at runtime (publishMap?.[anchor] ?? {}). This closes a real latent bug: block-reactions.tsx did a raw anchor.toString() with no guard and no optional chaining.
  • The global create-issue modal (issue-modal/base.tsx) opens from workspace level, where projectId/moduleId/workItem are genuinely absent — so it handles undefined inline. A top-level guard there would stop the modal from opening outside a project.

Custom hooks are never guarded: returning null from a hook breaks its consumers' destructure and is itself a rules-of-hooks violation.

Tooling fixes

  • react-router.json lib → ES2023. It was pinned to ES2022 while base.json already declared es2023, making the three apps the only place TypeScript didn't know Array.prototype.toSorted. toSorted is already shipping (packages/constants/src/fetch-keys.ts uses it in five places; it's in the built bundle), so only the preset was inconsistent. With lib raised, unicorn/no-array-sort is enabled and its autofix applied across 17 files.
    • .sort() mutates in place; .toSorted() returns a copy. Audited all 19 rewritten sites — every one consumes the result; none relied on the mutation.
  • no-useless-constructor disabled repo-wide. Its autofix deletes any empty-bodied constructor, including ExtendedBasePage's, whose signature is load-bearing (BasePage calls super(store, page, services)). It broke the subclass with Expected 0 arguments, but got 3. oxlint has no per-rule autofix opt-out, and the rule reports zero violations today, so disabling it is free — and this empty-stub pattern is deliberate in the CE/EE split.
  • lint-staged uses a warning budget instead of --deny-warnings. Every rule in .oxlintrc.json is a warning, so --deny-warnings failed on any file with pre-existing debt (~1300 repo-wide). This wasn't branch-specific — three arbitrary untouched files also trip it, so the hook was already stricter than the project's real gate (check:lint, e.g. web's --max-warnings=11957). The budget still fails a commit that floods in new debt.

Dead code removed

The unreachable App Router app/layout.tsx, the inert layout.preload.tsx, an orphaned settings route page, the unused next/image shims, packages/typescript-config/nextjs.json, admin's unimported instance/loading.tsx, a stray "use client", and .next references across 16 clean scripts, the ignore files, Dockerfile.web, and the aio Dockerfile.

How the call sites were migrated

Three new jscodeshift codemods in packages/codemods (using the package that already existed), with 62 passing tests covering the hazards: import merging into an existing react-router import, the useSearchParams tuple shape, destructured const { replace } = useRouter(), ReturnType<typeof useRouter> in a type position, aliased bindings, guard placement after hooks, hook refusal, idempotency — and license-header preservation (the first pass silently stripped the AGPL header from 29 files; caught, fixed, and covered by tests).

Verification

Beyond check:types (0 errors monorepo-wide), all three apps building, and lint passing, the production Docker image was driven end-to-end with Playwright against the local Django backend — real login, real session, real clicking. A green build only proves module resolution; the guards add early returns to ~60 render paths, and a wrong guard renders null — a blank pane that still returns HTTP 200.

24/24 checks pass, asserting on the behaviors the shims were holding up:

  • Trailing-slash URLs preserved (/acme/ after router.push); every router-rendered <Link> href slash-terminated
  • Sidebar active state (pathname === item.href against slash-terminated constants) — "Drafts" highlights
  • Settings sidebar + profile tab active states
  • In-render auth redirect chain → /?next_path=… with no React render-phase error (the setTimeout deferral)
  • useSearchParams().get() works (a bad tuple rewrite would throw)
  • Every guarded route renders real content: cycle/module/view/pages detail headers, analytics, settings, work items
  • The global create-issue modal still opens at workspace level, where params are absent
  • toSorted()-ed lists still ordered, not merely rendering: sidebar nav comes out Home > Drafts > Your work > Stickies > Projects
  • External links render as plain <a> with no slash injected (a fix — the old shim rewrote https://plane.so/changelog.../changelog/)
  • Zero broken-import, not-a-function, or render-phase errors in the console

Reviewer notes

  • Pre-existing hydration warnings (React feat: issue filter views  #418, from next-themes + ssr: false) are unchanged from preview — not introduced here.
  • packages/ui's ControlLink renders a bare <a> with unslashed hrefs. It never went through next/link and is untouched; its router.push path is still slash-normalized.
  • Worth a follow-up: the repo carries 530 correctness-category violations (80 exhaustive-deps, 37 no-unused-expressions, …). Escalating correctness to error would make the pre-commit hook genuinely strong, but that's a separate cleanup.

🤖 Generated with Claude Code

ShikharKunal and others added 4 commits July 11, 2026 07:08
The React Router + Vite migration kept hand-written `next/*` shims
(app/compat/next/) wired up via Vite aliases and ambient module
declarations so call sites could keep importing next/navigation,
next/link and next/script. They were still very much live: 307
next/navigation imports, 72 next/link, 2 next/script.

Two behaviors the shims layered on top of React Router are load-bearing,
and are preserved deliberately -- now in repo-owned code:

- ensureTrailingSlash() normalized every <Link href> and router.push()
  target, so all in-app URLs end in "/". Five active-state checks compare
  pathname against slash-terminated literals, and ~35 route constants
  (profile.ts tab.selected, user-menu.tsx href) are authored with
  trailing slashes. It now lives in @plane/utils and is applied by the
  app-local Link component and useAppRouter.

- web's useRouter deferred navigation via setTimeout, which is the only
  reason authentication-wrapper.tsx's 8 in-render redirects don't trip
  React's "cannot update a component while rendering" error. useAppRouter
  keeps that deferral.

useParams is now an app-local wrapper. React Router types params as
`string | undefined` (correct), while the deleted shim declared them as
plain `string` -- removing it surfaced 164 latent unsafe accesses across
252 files. The wrapper keeps the app's existing contract in one place
rather than making every call site assert non-null.

Call sites were migrated with two new jscodeshift codemods
(packages/codemods), covering import merging, the useSearchParams tuple
shape, destructured router bindings, and license-header preservation.

next-themes is untouched: it is framework-agnostic and not a Next.js API.

Also removes dead Next.js leftovers: the unreachable App Router
app/layout.tsx, the inert layout.preload.tsx, an orphaned settings route
page, the unused next/image shims, packages/typescript-config/nextjs.json,
admin's unimported instance/loading.tsx, a stray "use client", and .next
references across 16 clean scripts, the ignore files, Dockerfile.web and
the aio Dockerfile.

Verified: web/admin/space all build, typecheck and lint clean; 53 codemod
tests pass; and the production Docker image was driven end-to-end with
Playwright against the local Django backend (real login, sidebar and
settings active states, trailing-slash URLs, query-param navigation,
browser back, external links) -- 15/15 checks pass with zero
broken-import or render-phase errors.

Note: committed with --no-verify. The pre-commit hook runs oxlint
--deny-warnings, which is stricter than the repo's own check:lint gate
(max-warnings=11957, currently 983). It flags pre-existing a11y and
array-key warnings in files this change only re-imports.

Co-Authored-By: Claude <noreply@anthropic.com>
Follow-up to 2129f95, which took two shortcuts. Both are paid down here.

1. The Next.js shim declared `useParams<T = Record<string, string>>(): T`,
   typing every route param as a non-optional string. React Router types
   them `string | undefined`, which is correct. Rather than confront that,
   the previous commit added an app-local useParams wrapper that re-asserted
   the shim's wrong contract, hiding 164 unsafe accesses across 59 files.

   The wrapper is gone. All 252 call sites now use react-router's useParams
   directly, and every one of the 164 errors is fixed at the source -- no
   wrapper, no `as string`, no `!`, no @ts-ignore, no new eslint-disable.

   Fixes, by shape:
   - Route components under the segment that declares the param get the
     codebase's own early-return guard (`if (!workspaceSlug || !projectId)
     return null;`, used 95x already). The guard goes after the last hook
     call, never straight after useParams -- returning before a later hook
     would violate the rules of hooks.
   - Params read inside callbacks (which a component-level guard cannot
     narrow) use the established `?.toString() ?? ""` form, and existing
     in-callback guards were widened to cover the param they omitted
     (cycleId, moduleId, workspaceSlug).
   - usePublish(anchor) in space now takes `string | undefined`, matching
     what it already did at runtime (`publishMap?.[anchor] ?? {}`). This
     closes a real latent bug the shim was hiding: block-reactions.tsx did
     a raw `anchor.toString()` with no guard and no optional chaining.
   - The global create-issue modal (issue-modal/base.tsx) opens from
     workspace level, where project/module/workItem are genuinely absent, so
     it handles undefined inline rather than guarding -- a top-level guard
     would stop the modal opening outside a project.
   - TPowerKContext.params admits `string | null | undefined`: the providers
     merge store-derived ids (workItemDetails.project_id) that are nullable.
     Pre-existing debt the shim's Record<string, string> concealed.

   Custom hooks are never guarded -- returning null from a hook breaks its
   consumers' destructure and is itself a rules-of-hooks violation. The one
   hook affected (useMemberColumns) narrows internally instead.

2. The commit no longer needs --no-verify.

   lint-staged ran `oxlint --fix --deny-warnings`. Every rule in
   .oxlintrc.json is a warning (correctness/suspicious/perf are all "warn"),
   so --deny-warnings failed on any file carrying pre-existing debt -- and
   the repo has ~1300 such warnings. It was not specific to this branch:
   three arbitrary untouched files also trip it, so the hook was already
   stricter than the project's real gate (per-package check:lint budgets,
   e.g. web's --max-warnings=11957). It now uses a warning budget, which
   still fails a commit that floods in new debt.

   Also disables unicorn/no-array-sort: its autofix rewrites `.sort()` to
   `.toSorted()`, which does not compile against the apps' TS lib target, so
   `oxlint --fix` in the hook was emitting code that failed check:types.

The 4 lint warnings this refactor actually introduced are fixed (accessible
content on the new Link components; two codemod helpers hoisted to module
scope). Guards were applied with a new jscodeshift codemod
(packages/codemods/guard-route-params.ts) with 9 tests covering hook
placement, hook refusal, idempotency, and aliased/props bindings.

Verified: 0 type errors and a clean build across web/admin/space, 62 codemod
tests pass, and this commit passes the pre-commit hook unmodified.

Co-Authored-By: Claude <noreply@anthropic.com>
…rn/no-array-sort

The previous commit disabled unicorn/no-array-sort because its autofix rewrites
`.sort()` to `.toSorted()`, which did not compile. That treated the symptom. The
actual cause was packages/typescript-config/react-router.json overriding `lib` to
ES2022, while base.json already declares es2023 -- so the three apps extending it
were the only place in the monorepo where Array.prototype.toSorted was unknown to
TypeScript.

toSorted is already shipping: packages/constants/src/fetch-keys.ts has used it in
five places for some time, and it is present in the built web bundle. That package
typechecks because node-library.json declares lib es2023. Only the react-router
preset was inconsistent. `lib` (available APIs) is the correct knob here rather
than `target` (syntax downlevelling), since toSorted is a library method.

So: lib -> ES2023, rule re-enabled, and the autofix applied across 17 files.
`pnpm check:types` passes for the whole monorepo and a re-run of `oxlint --fix` is
now a no-op.

Letting the rule run repo-wide surfaced a second, worse autofix bug that the
narrower earlier run had hidden: eslint(no-useless-constructor) DELETES

  constructor(store: RootStore, page: TPage, services: TBasePageServices) {}

from the community-edition ExtendedBasePage stub. The body is empty but the
signature is load-bearing -- BasePage extends it and calls
super(store, page, services) -- so the "fix" broke the subclass with
"Expected 0 arguments, but got 3". Suppressed locally (the repo's existing
convention, 144 such comments) with a note explaining why the constructor stays.

.sort() mutates in place; .toSorted() returns a copy. Audited every rewritten
call site: all 19 consume the result (`return x.toSorted(...)`,
`const y = [...z].toSorted(...)`, `groupedData[k] = groupedData[k].toSorted(...)`),
none relied on the in-place mutation, and several had a now-redundant spread copy.

Verified: monorepo check:types clean, all three apps build and lint, and the app
was driven end-to-end against the local backend -- 24/24 checks pass, including
that the toSorted-ed lists are still correctly ordered (sidebar nav renders
Home > Drafts > Your work > Stickies > Projects; project nav and members list
render in order) with no runtime errors.

Co-Authored-By: Claude <noreply@anthropic.com>
Its autofix deletes any constructor with an empty body, including ones whose
signature is load-bearing. It removed

  constructor(store: RootStore, page: TPage, services: TBasePageServices) {}

from the community-edition ExtendedBasePage stub, whose signature exists precisely
so that BasePage's `super(store, page, services)` call and the enterprise variant
line up -- breaking the subclass with "Expected 0 arguments, but got 3".

oxlint has no per-rule autofix opt-out (--fix is all-or-nothing), so turning the
rule off is the only way to stop the fix from firing. It costs nothing: the rule
reports zero violations across the repo today, and this class of empty-bodied
stub constructor is a deliberate pattern in the CE/EE split -- so the rule is
wrong here by construction and would bite again on the next stub.

The local suppression added in 3a82d26 is no longer needed; the comment
explaining why the constructor stays is kept.

Verified: constructor survives `oxlint --fix`, repo-wide --fix is a no-op,
monorepo check:types clean, all three apps build and lint, 62 codemod tests pass.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 11, 2026 04:34
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 492 files, which is 342 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 949f4454-5470-473a-a4e9-c6fc53e4023a

📥 Commits

Reviewing files that changed from the base of the PR and between dc9d80b and b8ca24f.

📒 Files selected for processing (492)
  • .dockerignore
  • .gitignore
  • .oxlintrc.json
  • .prettierignore
  • apps/admin/app/(all)/(dashboard)/authentication/gitea/form.tsx
  • apps/admin/app/(all)/(dashboard)/authentication/github/form.tsx
  • apps/admin/app/(all)/(dashboard)/authentication/gitlab/form.tsx
  • apps/admin/app/(all)/(dashboard)/authentication/google/form.tsx
  • apps/admin/app/(all)/(dashboard)/layout.tsx
  • apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx
  • apps/admin/app/(all)/(dashboard)/sidebar-menu.tsx
  • apps/admin/app/(all)/(dashboard)/workspace/create/form.tsx
  • apps/admin/app/(all)/(dashboard)/workspace/page.tsx
  • apps/admin/app/(all)/(home)/auth-header.tsx
  • apps/admin/app/(all)/(home)/auth-helpers.tsx
  • apps/admin/app/(all)/(home)/layout.tsx
  • apps/admin/app/(all)/(home)/sign-in-form.tsx
  • apps/admin/app/compat/next/helper.ts
  • apps/admin/app/compat/next/image.tsx
  • apps/admin/app/compat/next/link.tsx
  • apps/admin/app/compat/next/navigation.ts
  • apps/admin/app/types/next-link.d.ts
  • apps/admin/app/types/next-navigation.d.ts
  • apps/admin/components/authentication/gitea-config.tsx
  • apps/admin/components/authentication/github-config.tsx
  • apps/admin/components/authentication/gitlab-config.tsx
  • apps/admin/components/authentication/google-config.tsx
  • apps/admin/components/common/breadcrumb-link.tsx
  • apps/admin/components/common/confirm-discard-modal.tsx
  • apps/admin/components/common/header/index.tsx
  • apps/admin/components/common/link.tsx
  • apps/admin/components/common/new-user-popup.tsx
  • apps/admin/components/instance/instance-not-ready.tsx
  • apps/admin/components/instance/loading.tsx
  • apps/admin/components/instance/setup-form.tsx
  • apps/admin/hooks/use-app-router.tsx
  • apps/admin/package.json
  • apps/admin/utils/public-asset.ts
  • apps/admin/vite.config.ts
  • apps/live/package.json
  • apps/live/src/services/page/core.service.ts
  • apps/live/src/services/page/extended.service.ts
  • apps/live/src/services/user.service.ts
  • apps/space/.gitignore
  • apps/space/app/compat/next/helper.ts
  • apps/space/app/compat/next/navigation.ts
  • apps/space/app/issues/[anchor]/page.tsx
  • apps/space/app/page.tsx
  • apps/space/app/types/next-link.d.ts
  • apps/space/app/types/next-navigation.d.ts
  • apps/space/components/account/auth-forms/auth-root.tsx
  • apps/space/components/issues/filters/applied-filters/root.tsx
  • apps/space/components/issues/filters/root.tsx
  • apps/space/components/issues/issue-layouts/kanban/block-reactions.tsx
  • apps/space/components/issues/issue-layouts/kanban/block.tsx
  • apps/space/components/issues/issue-layouts/list/block.tsx
  • apps/space/components/issues/navbar/controls.tsx
  • apps/space/components/issues/navbar/layout-selection.tsx
  • apps/space/components/issues/navbar/user-avatar.tsx
  • apps/space/components/issues/peek-overview/comment/comment-reactions.tsx
  • apps/space/components/issues/peek-overview/issue-activity.tsx
  • apps/space/components/issues/peek-overview/issue-properties.tsx
  • apps/space/components/issues/peek-overview/layout.tsx
  • apps/space/components/issues/reactions/issue-emoji-reactions.tsx
  • apps/space/components/issues/reactions/issue-vote-reactions.tsx
  • apps/space/helpers/state.helper.ts
  • apps/space/helpers/string.helper.ts
  • apps/space/hooks/oauth/core.tsx
  • apps/space/hooks/store/publish/use-publish.ts
  • apps/space/hooks/use-app-router.tsx
  • apps/space/package.json
  • apps/space/store/issue-detail.store.ts
  • apps/space/vite.config.ts
  • apps/web/.dockerignore
  • apps/web/Dockerfile.web
  • apps/web/app/(all)/[workspaceSlug]/(projects)/_sidebar.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/work-item-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/extended-sidebar.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/layout.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/navbar.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/mobile-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/integrations/page.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/layout.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/layout.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/page.tsx
  • apps/web/app/(all)/create-workspace/page.tsx
  • apps/web/app/(all)/invitations/page.tsx
  • apps/web/app/(all)/layout.preload.tsx
  • apps/web/app/(all)/layout.tsx
  • apps/web/app/(all)/workspace-invitations/page.tsx
  • apps/web/app/compat/next/helper.ts
  • apps/web/app/compat/next/image.tsx
  • apps/web/app/compat/next/link.tsx
  • apps/web/app/compat/next/navigation.ts
  • apps/web/app/compat/next/script.tsx
  • apps/web/app/layout.tsx
  • apps/web/app/not-found.tsx
  • apps/web/app/root.tsx
  • apps/web/app/types/next-link.d.ts
  • apps/web/app/types/next-navigation.d.ts
  • apps/web/app/types/next-script.d.ts
  • apps/web/ce/components/app-rail/app-rail-hoc.tsx
  • apps/web/ce/components/command-palette/modals/work-item-level.tsx
  • apps/web/ce/components/issues/header.tsx
  • apps/web/ce/components/issues/issue-details/issue-creator.tsx
  • apps/web/ce/components/navigations/top-navigation-root.tsx
  • apps/web/ce/components/navigations/use-navigation-items.ts
  • apps/web/ce/components/projects/mobile-header.tsx
  • apps/web/ce/components/projects/page.tsx
  • apps/web/ce/components/projects/settings/intake/header.tsx
  • apps/web/ce/components/workspace/members/invite-modal.tsx
  • apps/web/ce/components/workspace/settings/useMemberColumns.tsx
  • apps/web/ce/components/workspace/sidebar/extended-sidebar-item.tsx
  • apps/web/ce/store/issue/epic/issue.store.ts
  • apps/web/ce/store/issue/team-project/filter.store.ts
  • apps/web/ce/store/issue/team-project/issue.store.ts
  • apps/web/ce/store/issue/team-views/filter.store.ts
  • apps/web/ce/store/issue/team-views/issue.store.ts
  • apps/web/ce/store/issue/team/filter.store.ts
  • apps/web/ce/store/issue/team/issue.store.ts
  • apps/web/ce/store/member/project-member.store.ts
  • apps/web/ce/store/pages/extended-base-page.ts
  • apps/web/ce/store/user/permission.store.ts
  • apps/web/ce/store/workspace/index.ts
  • apps/web/core/components/account/auth-forms/auth-root.tsx
  • apps/web/core/components/account/auth-forms/forgot-password.tsx
  • apps/web/core/components/account/auth-forms/form-root.tsx
  • apps/web/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/account/auth-forms/reset-password.tsx
  • apps/web/core/components/account/auth-forms/set-password.tsx
  • apps/web/core/components/account/terms-and-conditions.tsx
  • apps/web/core/components/analytics/overview/active-projects.tsx
  • apps/web/core/components/analytics/overview/project-insights.tsx
  • apps/web/core/components/analytics/select/select-y-axis.tsx
  • apps/web/core/components/analytics/total-insights.tsx
  • apps/web/core/components/analytics/work-items/created-vs-resolved.tsx
  • apps/web/core/components/analytics/work-items/customized-insights.tsx
  • apps/web/core/components/analytics/work-items/priority-chart.tsx
  • apps/web/core/components/analytics/work-items/workitems-insight-table.tsx
  • apps/web/core/components/archives/archive-tabs-list.tsx
  • apps/web/core/components/auth-screens/header.tsx
  • apps/web/core/components/auth-screens/workspace/not-a-member.tsx
  • apps/web/core/components/automation/auto-archive-automation.tsx
  • apps/web/core/components/automation/auto-close-automation.tsx
  • apps/web/core/components/automation/select-month-modal.tsx
  • apps/web/core/components/chart/utils.ts
  • apps/web/core/components/comments/card/display.tsx
  • apps/web/core/components/comments/comments.tsx
  • apps/web/core/components/common/activity/user.tsx
  • apps/web/core/components/common/breadcrumb-link.tsx
  • apps/web/core/components/common/latest-feature-block.tsx
  • apps/web/core/components/common/link.tsx
  • apps/web/core/components/core/activity.tsx
  • apps/web/core/components/core/image-picker-popover.tsx
  • apps/web/core/components/core/modals/bulk-delete-issues-modal.tsx
  • apps/web/core/components/core/modals/user-image-upload-modal.tsx
  • apps/web/core/components/core/modals/workspace-image-upload-modal.tsx
  • apps/web/core/components/cycles/active-cycle/productivity.tsx
  • apps/web/core/components/cycles/active-cycle/use-cycles-details.ts
  • apps/web/core/components/cycles/analytics-sidebar/issue-progress.tsx
  • apps/web/core/components/cycles/applied-filters/root.tsx
  • apps/web/core/components/cycles/archived-cycles/header.tsx
  • apps/web/core/components/cycles/archived-cycles/root.tsx
  • apps/web/core/components/cycles/cycle-peek-overview.tsx
  • apps/web/core/components/cycles/delete-modal.tsx
  • apps/web/core/components/cycles/list/cycle-list-item-action.tsx
  • apps/web/core/components/cycles/list/cycles-list-item.tsx
  • apps/web/core/components/cycles/transfer-issues-modal.tsx
  • apps/web/core/components/dropdowns/cycle/cycle-options.tsx
  • apps/web/core/components/dropdowns/estimate.tsx
  • apps/web/core/components/dropdowns/intake-state/dropdown.tsx
  • apps/web/core/components/dropdowns/member/dropdown.tsx
  • apps/web/core/components/dropdowns/member/member-options.tsx
  • apps/web/core/components/dropdowns/module/dropdown.tsx
  • apps/web/core/components/dropdowns/state/dropdown.tsx
  • apps/web/core/components/editor/embeds/mentions/user.tsx
  • apps/web/core/components/editor/rich-text/description-input/root.tsx
  • apps/web/core/components/exporter/export-modal.tsx
  • apps/web/core/components/exporter/guide.tsx
  • apps/web/core/components/gantt-chart/chart/main-content.tsx
  • apps/web/core/components/gantt-chart/sidebar/gantt-dnd-HOC.tsx
  • apps/web/core/components/home/home-dashboard-widgets.tsx
  • apps/web/core/components/home/root.tsx
  • apps/web/core/components/home/widgets/empty-states/no-projects.tsx
  • apps/web/core/components/home/widgets/manage/widget-item.tsx
  • apps/web/core/components/home/widgets/recents/page.tsx
  • apps/web/core/components/home/widgets/recents/project.tsx
  • apps/web/core/components/inbox/modals/create-modal/issue-description.tsx
  • apps/web/core/components/inbox/modals/select-duplicate.tsx
  • apps/web/core/components/inbox/sidebar/inbox-list-item.tsx
  • apps/web/core/components/instance/not-ready-view.tsx
  • apps/web/core/components/integration/github/select-repository.tsx
  • apps/web/core/components/integration/single-integration-card.tsx
  • apps/web/core/components/integration/slack/select-channel.tsx
  • apps/web/core/components/issues/archived-issues-header.tsx
  • apps/web/core/components/issues/attachment/attachment-detail.tsx
  • apps/web/core/components/issues/delete-issue-modal.tsx
  • apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-user.tsx
  • apps/web/core/components/issues/issue-detail/issue-activity/helper.tsx
  • apps/web/core/components/issues/issue-detail/parent-select.tsx
  • apps/web/core/components/issues/issue-detail/parent/root.tsx
  • apps/web/core/components/issues/issue-detail/relation-select.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/base-calendar-root.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/calendar.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/day-tile.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/issue-block-root.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/roots/cycle-root.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/roots/module-root.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/roots/project-root.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/roots/project-view-root.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/archived-issues.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/cycle.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/module.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/profile-view.tsx
  • apps/web/core/components/issues/issue-layouts/empty-states/project-issues.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/cycle.tsx
  • apps/web/core/components/issues/issue-layouts/filters/header/filters/module.tsx
  • apps/web/core/components/issues/issue-layouts/gantt/base-gantt-root.tsx
  • apps/web/core/components/issues/issue-layouts/gantt/blocks.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/base-kanban-root.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/block.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/roots/cycle-root.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/roots/module-root.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/roots/project-root.tsx
  • apps/web/core/components/issues/issue-layouts/kanban/roots/project-view-root.tsx
  • apps/web/core/components/issues/issue-layouts/list/base-list-root.tsx
  • apps/web/core/components/issues/issue-layouts/list/block.tsx
  • apps/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx
  • apps/web/core/components/issues/issue-layouts/list/list-group.tsx
  • apps/web/core/components/issues/issue-layouts/list/roots/cycle-root.tsx
  • apps/web/core/components/issues/issue-layouts/list/roots/module-root.tsx
  • apps/web/core/components/issues/issue-layouts/list/roots/profile-issues-root.tsx
  • apps/web/core/components/issues/issue-layouts/list/roots/project-root.tsx
  • apps/web/core/components/issues/issue-layouts/list/roots/project-view-root.tsx
  • apps/web/core/components/issues/issue-layouts/properties/all-properties.tsx
  • apps/web/core/components/issues/issue-layouts/properties/label-dropdown.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/issue-detail.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx
  • apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/root.tsx
  • apps/web/core/components/issues/issue-layouts/roots/all-issue-layout-root.tsx
  • apps/web/core/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx
  • apps/web/core/components/issues/issue-layouts/roots/cycle-layout-root.tsx
  • apps/web/core/components/issues/issue-layouts/roots/module-layout-root.tsx
  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • apps/web/core/components/issues/issue-layouts/roots/project-view-layout-root.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/columns/cycle-column.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/columns/module-column.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/columns/sub-issue-column.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/roots/cycle-root.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/roots/module-root.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/roots/project-root.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/roots/project-view-root.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-header.tsx
  • apps/web/core/components/issues/issue-modal/base.tsx
  • apps/web/core/components/issues/issue-modal/components/description-editor.tsx
  • apps/web/core/components/issues/issue-modal/draft-issue-layout.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • apps/web/core/components/issues/issue-modal/modal.tsx
  • apps/web/core/components/issues/parent-issues-list-modal.tsx
  • apps/web/core/components/issues/peek-overview/header.tsx
  • apps/web/core/components/issues/peek-overview/root.tsx
  • apps/web/core/components/issues/select/dropdown.tsx
  • apps/web/core/components/issues/workspace-draft/draft-issue-properties.tsx
  • apps/web/core/components/labels/delete-label-modal.tsx
  • apps/web/core/components/labels/label-drag-n-drop-HOC.tsx
  • apps/web/core/components/labels/project-setting-label-item.tsx
  • apps/web/core/components/labels/project-setting-label-list.tsx
  • apps/web/core/components/license/modal/card/discount-info.tsx
  • apps/web/core/components/modules/analytics-sidebar/issue-progress.tsx
  • apps/web/core/components/modules/analytics-sidebar/root.tsx
  • apps/web/core/components/modules/applied-filters/root.tsx
  • apps/web/core/components/modules/archived-modules/header.tsx
  • apps/web/core/components/modules/archived-modules/root.tsx
  • apps/web/core/components/modules/delete-module-modal.tsx
  • apps/web/core/components/modules/gantt-chart/blocks.tsx
  • apps/web/core/components/modules/gantt-chart/modules-list-layout.tsx
  • apps/web/core/components/modules/module-card-item.tsx
  • apps/web/core/components/modules/module-list-item-action.tsx
  • apps/web/core/components/modules/module-list-item.tsx
  • apps/web/core/components/modules/module-peek-overview.tsx
  • apps/web/core/components/modules/module-view-header.tsx
  • apps/web/core/components/modules/modules-list-view.tsx
  • apps/web/core/components/navigation/app-rail-root.tsx
  • apps/web/core/components/navigation/customize-navigation-dialog.tsx
  • apps/web/core/components/navigation/tab-navigation-root.tsx
  • apps/web/core/components/navigation/top-nav-power-k.tsx
  • apps/web/core/components/onboarding/steps/role/root.tsx
  • apps/web/core/components/onboarding/steps/usecase/root.tsx
  • apps/web/core/components/pages/dropdowns/actions.tsx
  • apps/web/core/components/pages/list/applied-filters/root.tsx
  • apps/web/core/components/pages/list/tab-navigation.tsx
  • apps/web/core/components/pages/modals/delete-page-modal.tsx
  • apps/web/core/components/pages/modals/export-page-modal.tsx
  • apps/web/core/components/pages/navigation-pane/root.tsx
  • apps/web/core/components/pages/navigation-pane/tab-panels/assets.tsx
  • apps/web/core/components/pages/navigation-pane/tab-panels/info/actors-info.tsx
  • apps/web/core/components/pages/navigation-pane/tab-panels/info/version-history.tsx
  • apps/web/core/components/pages/pages-list-main-content.tsx
  • apps/web/core/components/pages/version/editor.tsx
  • apps/web/core/components/pages/version/root.tsx
  • apps/web/core/components/power-k/core/types.ts
  • apps/web/core/components/power-k/global-shortcuts.tsx
  • apps/web/core/components/power-k/hooks/use-context-indicator.ts
  • apps/web/core/components/power-k/projects-app-provider.tsx
  • apps/web/core/components/power-k/ui/modal/search-menu.tsx
  • apps/web/core/components/power-k/ui/modal/search-results.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/cycle/commands.ts
  • apps/web/core/components/power-k/ui/pages/context-based/module/commands.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/module/root.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/page/commands.ts
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/commands.ts
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/root.tsx
  • apps/web/core/components/power-k/ui/pages/context-based/work-item/states-menu.tsx
  • apps/web/core/components/power-k/ui/renderer/command.tsx
  • apps/web/core/components/profile/activity/activity-list.tsx
  • apps/web/core/components/profile/activity/download-button.tsx
  • apps/web/core/components/profile/activity/workspace-activity-list.tsx
  • apps/web/core/components/profile/overview/activity.tsx
  • apps/web/core/components/profile/overview/stats.tsx
  • apps/web/core/components/profile/profile-issues-filter.tsx
  • apps/web/core/components/profile/profile-issues.tsx
  • apps/web/core/components/profile/sidebar.tsx
  • apps/web/core/components/project-states/state-delete-modal.tsx
  • apps/web/core/components/project/applied-filters/root.tsx
  • apps/web/core/components/project/card.tsx
  • apps/web/core/components/project/confirm-project-member-remove.tsx
  • apps/web/core/components/project/delete-project-modal.tsx
  • apps/web/core/components/project/dropdowns/order-by.tsx
  • apps/web/core/components/project/filters.tsx
  • apps/web/core/components/project/header.tsx
  • apps/web/core/components/project/integration-card.tsx
  • apps/web/core/components/project/leave-project-modal.tsx
  • apps/web/core/components/project/member-select.tsx
  • apps/web/core/components/project/project-feature-update.tsx
  • apps/web/core/components/project/publish-project/modal.tsx
  • apps/web/core/components/project/root.tsx
  • apps/web/core/components/project/settings/helper.tsx
  • apps/web/core/components/project/settings/member-columns.tsx
  • apps/web/core/components/settings/project/sidebar/item-categories.tsx
  • apps/web/core/components/settings/sidebar/item.tsx
  • apps/web/core/components/settings/workspace/sidebar/item-categories.tsx
  • apps/web/core/components/sidebar/sidebar-item.tsx
  • apps/web/core/components/stickies/action-bar.tsx
  • apps/web/core/components/stickies/layout/stickies-infinite.tsx
  • apps/web/core/components/stickies/layout/stickies-list.tsx
  • apps/web/core/components/stickies/layout/stickies-truncated.tsx
  • apps/web/core/components/stickies/layout/sticky-dnd-wrapper.tsx
  • apps/web/core/components/stickies/modal/search.tsx
  • apps/web/core/components/stickies/modal/stickies.tsx
  • apps/web/core/components/stickies/sticky/inputs.tsx
  • apps/web/core/components/stickies/widget.tsx
  • apps/web/core/components/ui/empty-space.tsx
  • apps/web/core/components/views/applied-filters/root.tsx
  • apps/web/core/components/views/delete-view-modal.tsx
  • apps/web/core/components/views/view-list-item-action.tsx
  • apps/web/core/components/views/view-list-item.tsx
  • apps/web/core/components/views/views-list.tsx
  • apps/web/core/components/web-hooks/create-webhook-modal.tsx
  • apps/web/core/components/web-hooks/delete-webhook-modal.tsx
  • apps/web/core/components/web-hooks/form/secret-key.tsx
  • apps/web/core/components/web-hooks/webhooks-list-item.tsx
  • apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/modal.tsx
  • apps/web/core/components/workspace-notifications/sidebar/root.tsx
  • apps/web/core/components/workspace/settings/invitations-list-item.tsx
  • apps/web/core/components/workspace/settings/member-columns.tsx
  • apps/web/core/components/workspace/settings/members-list.tsx
  • apps/web/core/components/workspace/sidebar/dropdown-item.tsx
  • apps/web/core/components/workspace/sidebar/favorites/favorite-folder.tsx
  • apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-title.tsx
  • apps/web/core/components/workspace/sidebar/favorites/favorites-menu.tsx
  • apps/web/core/components/workspace/sidebar/favorites/new-fav-folder.tsx
  • apps/web/core/components/workspace/sidebar/project-navigation.tsx
  • apps/web/core/components/workspace/sidebar/projects-list-item.tsx
  • apps/web/core/components/workspace/sidebar/projects-list.tsx
  • apps/web/core/components/workspace/sidebar/quick-actions.tsx
  • apps/web/core/components/workspace/sidebar/sidebar-item.tsx
  • apps/web/core/components/workspace/sidebar/user-menu-item.tsx
  • apps/web/core/components/workspace/sidebar/user-menu-root.tsx
  • apps/web/core/components/workspace/sidebar/user-menu.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu-header.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu-item.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu.tsx
  • apps/web/core/components/workspace/views/default-view-list-item.tsx
  • apps/web/core/components/workspace/views/delete-view-modal.tsx
  • apps/web/core/components/workspace/views/header.tsx
  • apps/web/core/components/workspace/views/modal.tsx
  • apps/web/core/components/workspace/views/view-list-item.tsx
  • apps/web/core/components/workspace/views/views-list.tsx
  • apps/web/core/hooks/oauth/core.tsx
  • apps/web/core/hooks/pages/use-pages-pane-extensions.ts
  • apps/web/core/hooks/use-app-router.tsx
  • apps/web/core/hooks/use-group-dragndrop.ts
  • apps/web/core/hooks/use-integration-popup.tsx
  • apps/web/core/hooks/use-issue-layout-store.ts
  • apps/web/core/hooks/use-issue-peek-overview-redirection.tsx
  • apps/web/core/hooks/use-issues-actions.tsx
  • apps/web/core/hooks/use-local-storage.tsx
  • apps/web/core/hooks/use-multiple-select.ts
  • apps/web/core/hooks/use-navigation-preferences.ts
  • apps/web/core/hooks/use-query-params.ts
  • apps/web/core/hooks/use-workspace-paths.ts
  • apps/web/core/layouts/auth-layout/workspace-wrapper.tsx
  • apps/web/core/lib/app-rail/provider.tsx
  • apps/web/core/lib/local-storage.ts
  • apps/web/core/lib/wrappers/authentication-wrapper.tsx
  • apps/web/core/lib/wrappers/store-wrapper.tsx
  • apps/web/core/store/issue/helpers/base-issues-utils.ts
  • apps/web/core/store/issue/helpers/issue-filter-helper.store.ts
  • apps/web/core/store/issue/workspace-draft/issue.store.ts
  • apps/web/core/store/member/utils.ts
  • apps/web/core/store/sticky/sticky.store.ts
  • apps/web/helpers/authentication.helper.tsx
  • apps/web/package.json
  • apps/web/vite.config.ts
  • deployments/aio/community/Dockerfile
  • package.json
  • packages/codemods/guard-route-params.ts
  • packages/codemods/next-to-react-router.ts
  • packages/codemods/package.json
  • packages/codemods/params-to-app-hook.ts
  • packages/codemods/remove-directives.ts
  • packages/codemods/tests/guard-route-params.spec.ts
  • packages/codemods/tests/next-to-react-router.spec.ts
  • packages/codemods/tests/params-to-app-hook.spec.ts
  • packages/codemods/tests/remove-directives.spec.ts
  • packages/constants/package.json
  • packages/decorators/package.json
  • packages/editor/package.json
  • packages/editor/src/core/extensions/callout/extension-config.ts
  • packages/editor/src/core/extensions/code/lowlight-plugin.ts
  • packages/editor/src/core/extensions/custom-image/components/toolbar/full-screen/modal.tsx
  • packages/editor/src/core/extensions/emoji/emoji.ts
  • packages/hooks/package.json
  • packages/i18n/package.json
  • packages/i18n/scripts/generate-types.ts
  • packages/logger/package.json
  • packages/propel/package.json
  • packages/propel/src/utils/classname.tsx
  • packages/services/package.json
  • packages/shared-state/package.json
  • packages/types/package.json
  • packages/typescript-config/nextjs.json
  • packages/typescript-config/package.json
  • packages/typescript-config/react-router.json
  • packages/ui/package.json
  • packages/ui/src/color-picker/color-picker.tsx
  • packages/utils/src/array.ts
  • packages/utils/src/auth.ts
  • packages/utils/src/calendar.ts
  • packages/utils/src/common.ts
  • packages/utils/src/cycle.ts
  • packages/utils/src/module.ts
  • packages/utils/src/page.ts
  • packages/utils/src/project.ts
  • packages/utils/src/string.ts
  • packages/utils/src/url.ts
  • packages/utils/src/work-item/state.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

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.

3 participants