chore: format files using prettier#7364
Conversation
|
""" WalkthroughThis update consists of widespread formatting and stylistic changes across the codebase. Modifications include adjusting whitespace, line breaks, semicolon usage, import statement formatting, and array or type declaration styles. No functional, logical, or behavioral changes are introduced; all code logic, control flow, and public interfaces remain intact. Several files also receive newline corrections or improved indentation. Changes
Sequence Diagram(s)No sequence diagrams are generated, as the changes are exclusively stylistic and do not introduce or modify control flow or features. Possibly related PRs
Suggested labels
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (22)
💤 Files with no reviewable changes (3)
✅ Files skipped from review due to trivial changes (17)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (5)
✨ Finishing Touches
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (22)
apps/web/public/animated-icons/uploading.json (2)
16-17: Minor naming nitpick – non-English layer labels.
"nm": "Слой 18"(and similar) may cause searchability issues for non-Cyrillic readers. If localisation isn’t required, consider renaming layers to English for consistency across assets.
1-10: Consider committing minified assets for production bundles.Readable, pretty-printed JSON is great for source control, but shipping the raw file can bloat web payloads (this file is ~23 KB prettified vs. ~12 KB minified).
If your build pipeline doesn’t already compress Lottie files, you could add a step that strips whitespace before publishing.apps/web/ce/components/relations/activity.ts (2)
8-10: Improve wording for clarity (“blocking” case)
marked this work item is blocking work itemreads awkwardly. Adding the missing “as” makes the sentence flow better.-return activity.old_value === "" - ? `marked this work item is blocking work item ` - : `removed the blocking work item `; +return activity.old_value === "" + ? `marked this work item as blocking work item ` + : `removed the blocking work item `;
16-18: Consistent article usage (“duplicate” case)Likewise, inserting an “a” yields a more natural phrase: “marked this work item as a duplicate of …”.
-return activity.old_value === "" - ? `marked this work item as duplicate of ` - : `removed this work item as a duplicate of `; +return activity.old_value === "" + ? `marked this work item as a duplicate of ` + : `removed this work item as a duplicate of `;packages/editor/src/core/components/menus/bubble-menu/root.tsx (1)
41-48: Extract duplicated color option shape into a dedicated type
colorandbackgroundColorboth use the same{ key; label; textColor; backgroundColor }structure. Defining this once as aColorOptioninterface keeps the interface concise and prevents the two definitions from drifting out of sync.export interface EditorStateType { code: boolean; bold: boolean; ... - color: { key: string; label: string; textColor: string; backgroundColor: string } | undefined; - backgroundColor: - | { - key: string; - label: string; - textColor: string; - backgroundColor: string; - } - | undefined; + color: ColorOption | undefined; + backgroundColor: ColorOption | undefined; } + +interface ColorOption { + key: string; + label: string; + textColor: string; + backgroundColor: string; +}Purely a type-level refactor; no behaviour change, but improves readability and maintainability.
packages/constants/src/chart.ts (1)
34-39: Optionally mark palette data as readonly for stronger type-safetyIf the palette list is never mutated at runtime (which seems likely for a constants module), consider marking the array as
readonlyto prevent accidental writes and preserve literal string inferences:-export const CHART_COLOR_PALETTES: { +export const CHART_COLOR_PALETTES: readonly { key: TChartColorScheme; i18n_label: string; light: readonly string[]; dark: readonly string[]; -}[] = [ +}[] = [ … -]; +] as const;This narrows the types of
key,light, anddarkelements to their literal values and guards against accidental mutation elsewhere in the codebase.packages/editor/src/core/components/editors/editor-container.tsx (1)
52-55: Potential off-by-one in last-node resolution
doc.resolve(Math.max(0, docSize - 2))may skip the actual last node when the document ends with an inline node of size 1 (common for an empty paragraph). In ProseMirror, resolving atdocSize - 1or usingeditor.state.doc.lastChildis clearer and less brittle.-const lastNodePos = editor.state.doc.resolve(Math.max(0, docSize - 2)); -const lastNode = lastNodePos.node(); +const lastNode = editor.state.doc.lastChild;Recommend verifying edge cases (empty doc, last node size) and adjusting accordingly.
packages/logger/README.md (4)
5-6: Remove trailing period in the headerMarkdown section headers conventionally omit terminal punctuation. Dropping the trailing period will keep the doc style consistent with the other headings.
-## Features. +## Features
14-16: Tweak the dependency snippet for validity & clarity
- A blank line after the “Adding as a package” header is fine, but the snippet below is syntactically invalid JSON/TS:
•dependencyshould bedependencies
• Keys and values require double quotes.Consider replacing with something like:
-```typescript -dependency: { - ... - @plane/logger":"*", - ... -} +```json +"dependencies": { + "@plane/logger": "*" +}This prevents copy-paste errors for users. --- `30-32`: **Duplicate “### Usage” header — consider dropping one** There are two consecutive `### Usage`-level sections (lines 31 & 32). Keeping only the first, then demoting the specialised sections (`logger`, `requestLogger`) avoids confusing navigation in rendered Markdown. --- `63-65`: **Minor wording/grammar improvement for log-file description** ```diff -- Log files are stored in logs folder of current working directory. Error logs are stored in files with format `error-%DATE%.log` and combined logs are stored with format `combined-%DATE%.log`. +- Log files are stored in **the** `logs` folder of the current working directory. Error logs use the pattern `error-%DATE%.log`, while combined logs use `combined-%DATE%.log`.Adds missing articles and breaks the long sentence for readability.
packages/types/src/command-palette.ts (1)
1-1: Optional: wrap long type alias for readabilityThe 120-character line can be hard to scan in diff views. Consider multi-line formatting:
-export type TCommandPaletteActionList = Record<string, { title: string; description: string; action: () => void }>; +export type TCommandPaletteActionList = Record< + string, + { + title: string; + description: string; + action: () => void; + } +>;apps/web/core/lib/n-progress/utils/sameURL.ts (1)
2-3: PreferURL.originfor cleaner/safer concatenation
URL.originalready includes protocol, hostname, and port. Using it reduces duplication and chance of mismatch.- const cleanTarget = target.protocol + "//" + target.host + target.pathname + target.search; - const cleanCurrent = current.protocol + "//" + current.host + current.pathname + current.search; + const cleanTarget = target.origin + target.pathname + target.search; + const cleanCurrent = current.origin + current.pathname + current.search; @@ - const cleanTarget = target.protocol + "//" + target.host + target.pathname; - const cleanCurrent = current.protocol + "//" + current.host + current.pathname; + const cleanTarget = target.origin + target.pathname; + const cleanCurrent = current.origin + current.pathname;Also applies to: 9-10
apps/live/src/ce/lib/update-document.ts (1)
10-15: Prefernew Error()for richer stack tracesMinor, but using the
Errorconstructor withoutnewproduces astring-typed error in some runtimes and omits the stack trace in others. Swapping tonew Error()is the usual convention.- throw Error(`Update failed: Invalid document type ${documentType} provided.`); + throw new Error(`Update failed: Invalid document type ${documentType} provided.`);apps/live/src/ce/lib/fetch-document.ts (1)
9-14: Usenew Error()for consistency with typical Node / TS codeSame rationale as in
update-document.ts: favournew Error()for consistent error objects.- throw Error(`Fetch failed: Invalid document type ${documentType} provided.`); + throw new Error(`Fetch failed: Invalid document type ${documentType} provided.`);apps/live/src/core/lib/page.ts (2)
37-43: Consider annotating an explicit return type
fetchDescriptionHTMLAndTransformcurrently returns eitherUint8Arrayorundefined, but the function signature is implicitlyPromise<any>. Explicit typing improves readability and downstream type-safety.-const fetchDescriptionHTMLAndTransform = async ( +const fetchDescriptionHTMLAndTransform = async ( workspaceSlug: string, projectId: string, pageId: string, cookie: string -) => { +) : Promise<Uint8Array | undefined> => {
13-15: Nit: samenew Errorpoint hereFor consistency across the codebase:
- throw Error("Invalid updatedDescription: must be an instance of Uint8Array"); + throw new Error("Invalid updatedDescription: must be an instance of Uint8Array");apps/live/src/core/extensions/index.ts (1)
31-42: Drop the manual Promise wrapper
fetchis already anasyncfunction; wrapping the body innew Promise(async …)is redundant and obscures error propagation. You can return the awaited value directly:- // eslint-disable-next-line no-async-promise-executor - return new Promise(async (resolve) => { - try { - let fetchedData = null; - if (documentType === "project_page") { - fetchedData = await fetchPageDescriptionBinary(params, pageId, cookie); - } else { - fetchedData = await fetchDocument({ cookie, documentType, pageId, params }); - } - resolve(fetchedData); - } catch (error) { - manualLogger.error("Error in fetching document", error); - } - }); + try { + if (documentType === "project_page") { + return await fetchPageDescriptionBinary(params, pageId, cookie); + } + return await fetchDocument({ cookie, documentType, pageId, params }); + } catch (error) { + manualLogger.error("Error in fetching document", error); + return null; + }Same applies to the
storehandler below.apps/live/src/core/services/page.service.ts (1)
23-31: Tighten the return type offetchDescriptionBinary
responseType: "arraybuffer"always yields anArrayBuffer. ReturningPromise<ArrayBuffer>instead ofanyavoids downstreamanyleakage.- async fetchDescriptionBinary(...): Promise<any> { + async fetchDescriptionBinary(...): Promise<ArrayBuffer> {Apply similar specificity to other methods if feasible.
apps/live/src/core/helpers/page.ts (3)
11-17: Consider tightening the return-type instead of using plainobject.
contentJSONis always a ProseMirror‐compatible JSON node. Exposing it asobjectloses all compile-time safety.-): { - contentBinaryEncoded: string; - contentJSON: object; - contentHTML: string; -} => { +): { + contentBinaryEncoded: string; + contentJSON: ProseMirrorNodeJSON; // or Record<string, unknown> + contentHTML: string; +} => {Defining (or re-using) a
ProseMirrorNodeJSONinterface makes downstream code less error-prone.
24-27: Minor: suppress intermediatetypevariable if desired.
yXmlFragmentToProseMirrorRootNodereturns the node directly, so you can inline the call:-const type = yDoc.getXmlFragment("default"); -const contentJSON = yXmlFragmentToProseMirrorRootNode(type, documentEditorSchema).toJSON(); +const contentJSON = yXmlFragmentToProseMirrorRootNode( + yDoc.getXmlFragment("default"), + documentEditorSchema, +).toJSON();Purely stylistic – feel free to ignore.
35-44: Return type could be a plainUint8Arrayinstead of wrapper object.Unless the caller expects an object, returning the raw
Uint8Arraykeeps the API minimal:-export const getBinaryDataFromHTMLString = ( - descriptionHTML: string -): { - contentBinary: Uint8Array; -} => { +export const getBinaryDataFromHTMLString = ( + descriptionHTML: string, +): Uint8Array => { ... -return { contentBinary: encodedData }; +return encodedData;This is optional and outside the scope of the formatting PR; mentioning for future cleanliness.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (107)
apps/live/src/ce/lib/fetch-document.ts(1 hunks)apps/live/src/ce/lib/update-document.ts(1 hunks)apps/live/src/core/extensions/index.ts(5 hunks)apps/live/src/core/helpers/error-handler.ts(1 hunks)apps/live/src/core/helpers/page.ts(3 hunks)apps/live/src/core/hocuspocus-server.ts(2 hunks)apps/live/src/core/lib/page.ts(3 hunks)apps/live/src/core/services/page.service.ts(2 hunks)apps/live/src/ee/lib/fetch-document.ts(1 hunks)apps/live/src/ee/types/common.d.ts(1 hunks)apps/space/core/components/issues/filters/applied-filters/root.tsx(1 hunks)apps/space/core/components/issues/issue-layouts/kanban/kanban-group.tsx(1 hunks)apps/space/core/components/issues/issue-layouts/kanban/swimlanes.tsx(1 hunks)apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/page.tsx(1 hunks)apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/page.tsx(1 hunks)apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/sidebar.tsx(1 hunks)apps/web/app/(all)/layout.preload.tsx(1 hunks)apps/web/app/(all)/sign-up/layout.tsx(1 hunks)apps/web/app/(home)/layout.tsx(1 hunks)apps/web/ce/components/common/subscription/index.ts(1 hunks)apps/web/ce/components/global/product-updates-header.tsx(1 hunks)apps/web/ce/components/global/version-number.tsx(1 hunks)apps/web/ce/components/issues/bulk-operations/index.ts(1 hunks)apps/web/ce/components/issues/issue-modal/index.ts(0 hunks)apps/web/ce/components/relations/activity.ts(1 hunks)apps/web/ce/helpers/workspace.helper.ts(1 hunks)apps/web/ce/services/project/index.ts(1 hunks)apps/web/ce/types/projects/projects.ts(1 hunks)apps/web/core/components/account/oauth/oauth-options.tsx(1 hunks)apps/web/core/components/analytics/select/project.tsx(1 hunks)apps/web/core/components/analytics/work-items/workitems-insight-table.tsx(0 hunks)apps/web/core/components/api-token/modal/form.tsx(1 hunks)apps/web/core/components/api-token/token-list-item.tsx(1 hunks)apps/web/core/components/automation/auto-archive-automation.tsx(1 hunks)apps/web/core/components/chart/utils.ts(3 hunks)apps/web/core/components/global/product-updates/footer.tsx(1 hunks)apps/web/core/components/issues/archived-issues-header.tsx(2 hunks)apps/web/core/components/issues/attachment/attachment-detail.tsx(1 hunks)apps/web/core/components/issues/filters.tsx(1 hunks)apps/web/core/components/issues/issue-detail/issue-detail-quick-actions.tsx(1 hunks)apps/web/core/components/issues/issue-layouts/gantt/index.ts(0 hunks)apps/web/core/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx(1 hunks)apps/web/core/components/issues/issue-modal/form.tsx(1 hunks)apps/web/core/components/issues/select/label.tsx(1 hunks)apps/web/core/components/issues/workspace-draft/empty-state.tsx(1 hunks)apps/web/core/components/modules/gantt-chart/modules-list-layout.tsx(1 hunks)apps/web/core/components/profile/overview/activity.tsx(1 hunks)apps/web/core/components/profile/profile-issues-filter.tsx(2 hunks)apps/web/core/components/workspace-notifications/sidebar/notification-card/content.tsx(1 hunks)apps/web/core/components/workspace/logo.tsx(0 hunks)apps/web/core/components/workspace/sidebar/favorites/favorites.helpers.ts(2 hunks)apps/web/core/components/workspace/sidebar/favorites/index.ts(1 hunks)apps/web/core/components/workspace/views/header.tsx(1 hunks)apps/web/core/lib/n-progress/index.tsx(1 hunks)apps/web/core/lib/n-progress/utils/sameURL.ts(1 hunks)apps/web/core/lib/posthog-view.tsx(2 hunks)apps/web/core/lib/store-context.tsx(1 hunks)apps/web/core/local-db/worker/wa-sqlite/src/types/globals.d.ts(1 hunks)apps/web/core/local-db/worker/wa-sqlite/src/types/index.d.ts(29 hunks)apps/web/core/store/issue/draft/issue.store.ts(1 hunks)apps/web/core/store/issue/helpers/base-issues.store.ts(1 hunks)apps/web/core/store/issue/profile/issue.store.ts(1 hunks)apps/web/core/store/issue/root.store.ts(1 hunks)apps/web/core/store/issue/workspace-draft/filter.store.ts(1 hunks)apps/web/core/store/user/profile.store.ts(1 hunks)apps/web/core/store/workspace/home.ts(1 hunks)apps/web/ee/components/active-cycles/workspace-active-cycles-upgrade.tsx(1 hunks)apps/web/ee/components/breadcrumbs/index.ts(1 hunks)apps/web/ee/components/issues/bulk-operations/index.ts(1 hunks)apps/web/ee/components/issues/issue-layouts/quick-action-dropdowns/index.ts(1 hunks)apps/web/ee/components/sidebar/index.ts(1 hunks)apps/web/ee/components/workspace/billing/index.ts(1 hunks)apps/web/public/animated-icons/uploading.json(1 hunks)apps/web/styles/nprogress.css(1 hunks)packages/constants/src/analytics/index.ts(1 hunks)packages/constants/src/auth.ts(1 hunks)packages/constants/src/chart.ts(1 hunks)packages/constants/src/issue/layout.ts(1 hunks)packages/constants/src/metadata.ts(1 hunks)packages/constants/src/notification.ts(1 hunks)packages/constants/src/tab-indices.ts(2 hunks)packages/constants/src/themes.ts(1 hunks)packages/constants/src/user.ts(1 hunks)packages/decorators/src/index.ts(0 hunks)packages/decorators/src/rest.ts(1 hunks)packages/decorators/tsconfig.json(1 hunks)packages/decorators/tsup.config.ts(1 hunks)packages/editor/src/ce/types/utils.ts(1 hunks)packages/editor/src/core/components/editors/editor-container.tsx(1 hunks)packages/editor/src/core/components/menus/bubble-menu/root.tsx(1 hunks)packages/hooks/src/use-local-storage.tsx(3 hunks)packages/logger/README.md(4 hunks)packages/propel/src/charts/components/legend.tsx(2 hunks)packages/propel/src/charts/components/tick.tsx(1 hunks)packages/propel/src/charts/radar-chart/index.ts(1 hunks)packages/propel/src/charts/scatter-chart/index.ts(1 hunks)packages/propel/src/charts/scatter-chart/root.tsx(1 hunks)packages/propel/src/charts/tree-map/map-content.tsx(1 hunks)packages/propel/src/table/index.ts(1 hunks)packages/services/src/file/file-upload.service.ts(2 hunks)packages/services/tsconfig.json(1 hunks)packages/types/src/activity.ts(2 hunks)packages/types/src/analytics.ts(0 hunks)packages/types/src/charts/common.ts(0 hunks)packages/types/src/command-palette.ts(1 hunks)packages/types/src/instance/auth.ts(2 hunks)packages/types/src/instance/image.ts(1 hunks)
⛔ Files not processed due to max files limit (20)
- packages/types/src/issues/base.ts
- packages/types/src/issues/issue.ts
- packages/types/src/issues/issue_attachment.ts
- packages/types/src/module/modules.ts
- packages/types/src/pragmatic.ts
- packages/types/src/project/project_filters.ts
- packages/types/src/project/projects.ts
- packages/types/src/views.ts
- packages/types/src/workspace-views.ts
- packages/ui/.storybook/main.ts
- packages/ui/src/dropdown/Readme.md
- packages/ui/styles/globals.css
- packages/utils/src/array.ts
- packages/utils/src/calendar.ts
- packages/utils/src/cycle.ts
- packages/utils/src/module.ts
- packages/utils/src/page.ts
- packages/utils/src/project-views.ts
- packages/utils/src/string.ts
- packages/utils/src/work-item/modal.ts
💤 Files with no reviewable changes (7)
- packages/decorators/src/index.ts
- apps/web/core/components/analytics/work-items/workitems-insight-table.tsx
- apps/web/core/components/workspace/logo.tsx
- packages/types/src/analytics.ts
- apps/web/ce/components/issues/issue-modal/index.ts
- packages/types/src/charts/common.ts
- apps/web/core/components/issues/issue-layouts/gantt/index.ts
🧰 Additional context used
🧠 Learnings (33)
packages/propel/src/table/index.ts (2)
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/read.tsx:11-12
Timestamp: 2024-11-28T07:02:15.514Z
Learning: Some components are still in core and have not been moved yet, so their import paths remain the same.
apps/web/ee/components/active-cycles/workspace-active-cycles-upgrade.tsx (2)
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/read.tsx:11-12
Timestamp: 2024-11-28T07:02:15.514Z
Learning: Some components are still in core and have not been moved yet, so their import paths remain the same.
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/page.tsx (1)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7214
File: web/core/store/issue/helpers/base-issues.store.ts:117-117
Timestamp: 2025-06-16T07:23:39.497Z
Learning: In the updateIssueDates method of BaseIssuesStore (web/core/store/issue/helpers/base-issues.store.ts), the projectId parameter is intentionally made optional to support override implementations in subclasses. The base implementation requires projectId and includes an early return check, but making it optional allows derived classes to override the method with different parameter requirements.
apps/web/ee/components/breadcrumbs/index.ts (2)
Learnt from: prateekshourya29
PR: makeplane/plane#7188
File: web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx:40-45
Timestamp: 2025-06-18T09:46:08.566Z
Learning: When reviewing breadcrumb components that accept projectId or similar props, check if empty strings are being passed during loading states, which can result in invalid URLs. The preferred approach is to handle these loading states internally within the component rather than requiring each consumer to manage the loading logic.
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
apps/web/ce/components/global/version-number.tsx (2)
Learnt from: janreges
PR: makeplane/plane#6743
File: packages/i18n/src/store/index.ts:160-161
Timestamp: 2025-03-11T19:42:41.769Z
Learning: In the Plane project, the file 'packages/i18n/src/store/index.ts' already includes support for Polish language translations with the case "pl".
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7061
File: web/core/components/workspace-notifications/root.tsx:18-18
Timestamp: 2025-05-14T13:16:23.323Z
Learning: In the Plane project codebase, the path alias `@/plane-web` resolves to the `ce` directory, making imports like `@/plane-web/hooks/use-notification-preview` correctly resolve to files in `web/ce/hooks/`.
apps/web/core/store/issue/profile/issue.store.ts (2)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7214
File: web/core/store/issue/helpers/base-issues.store.ts:117-117
Timestamp: 2025-06-16T07:23:39.497Z
Learning: In the updateIssueDates method of BaseIssuesStore (web/core/store/issue/helpers/base-issues.store.ts), the projectId parameter is intentionally made optional to support override implementations in subclasses. The base implementation requires projectId and includes an early return check, but making it optional allows derived classes to override the method with different parameter requirements.
Learnt from: janreges
PR: makeplane/plane#6743
File: packages/i18n/src/store/index.ts:160-161
Timestamp: 2025-03-11T19:42:41.769Z
Learning: In the Plane project, the file 'packages/i18n/src/store/index.ts' already includes support for Polish language translations with the case "pl".
apps/web/core/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx (2)
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7061
File: web/core/components/workspace-notifications/root.tsx:18-18
Timestamp: 2025-05-14T13:16:23.323Z
Learning: In the Plane project codebase, the path alias `@/plane-web` resolves to the `ce` directory, making imports like `@/plane-web/hooks/use-notification-preview` correctly resolve to files in `web/ce/hooks/`.
apps/web/app/(all)/layout.preload.tsx (1)
Learnt from: lifeiscontent
PR: makeplane/plane#7164
File: packages/ui/.storybook/main.ts:24-47
Timestamp: 2025-06-04T16:22:44.344Z
Learning: In packages/ui/.storybook/main.ts, the webpackFinal function intentionally overrides the CSS loader strategy by finding and replacing existing CSS rules. This is a temporary workaround for a known upstream issue in Storybook's CSS handling that has been communicated to the Storybook maintainers. The current implementation should not be changed until the upstream issue is resolved.
apps/web/ce/types/projects/projects.ts (1)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7214
File: web/core/store/issue/helpers/base-issues.store.ts:117-117
Timestamp: 2025-06-16T07:23:39.497Z
Learning: In the updateIssueDates method of BaseIssuesStore (web/core/store/issue/helpers/base-issues.store.ts), the projectId parameter is intentionally made optional to support override implementations in subclasses. The base implementation requires projectId and includes an early return check, but making it optional allows derived classes to override the method with different parameter requirements.
apps/web/core/store/issue/draft/issue.store.ts (2)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7214
File: web/core/store/issue/helpers/base-issues.store.ts:117-117
Timestamp: 2025-06-16T07:23:39.497Z
Learning: In the updateIssueDates method of BaseIssuesStore (web/core/store/issue/helpers/base-issues.store.ts), the projectId parameter is intentionally made optional to support override implementations in subclasses. The base implementation requires projectId and includes an early return check, but making it optional allows derived classes to override the method with different parameter requirements.
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
apps/web/core/components/automation/auto-archive-automation.tsx (2)
Learnt from: prateekshourya29
PR: makeplane/plane#7363
File: apps/web/core/components/issues/select/dropdown.tsx:9-11
Timestamp: 2025-07-08T13:41:01.610Z
Learning: The `getProjectLabelIds` function in the label store handles undefined projectId internally, so it's safe to pass undefined values to it without explicit checks in the calling component.
Learnt from: prateekshourya29
PR: makeplane/plane#7094
File: web/core/store/user/base-permissions.store.ts:196-201
Timestamp: 2025-05-28T09:53:44.635Z
Learning: All role enums in this codebase (EUserPermissions, EUserWorkspaceRoles, EUserProjectRoles) use the same consistent numeric values: ADMIN = 20, MEMBER = 15, GUEST = 5. None of these enums have a value of 0, so truthy checks work correctly with these enum values.
apps/web/core/components/workspace-notifications/sidebar/notification-card/content.tsx (2)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7061
File: web/core/components/workspace-notifications/root.tsx:18-18
Timestamp: 2025-05-14T13:16:23.323Z
Learning: In the Plane project codebase, the path alias `@/plane-web` resolves to the `ce` directory, making imports like `@/plane-web/hooks/use-notification-preview` correctly resolve to files in `web/ce/hooks/`.
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
apps/web/core/components/modules/gantt-chart/modules-list-layout.tsx (3)
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/read.tsx:11-12
Timestamp: 2024-11-28T07:02:15.514Z
Learning: Some components are still in core and have not been moved yet, so their import paths remain the same.
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7061
File: web/core/components/workspace-notifications/root.tsx:18-18
Timestamp: 2025-05-14T13:16:23.323Z
Learning: In the Plane project codebase, the path alias `@/plane-web` resolves to the `ce` directory, making imports like `@/plane-web/hooks/use-notification-preview` correctly resolve to files in `web/ce/hooks/`.
apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/sidebar.tsx (2)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7061
File: web/core/components/workspace-notifications/root.tsx:18-18
Timestamp: 2025-05-14T13:16:23.323Z
Learning: In the Plane project codebase, the path alias `@/plane-web` resolves to the `ce` directory, making imports like `@/plane-web/hooks/use-notification-preview` correctly resolve to files in `web/ce/hooks/`.
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
apps/live/src/core/helpers/error-handler.ts (1)
Learnt from: prateekshourya29
PR: makeplane/plane#7363
File: apps/web/helpers/react-hook-form.helper.ts:9-19
Timestamp: 2025-07-08T13:41:19.881Z
Learning: In the apps/web/helpers/react-hook-form.helper.ts file, the getNestedError function's FieldError detection logic using "message" property check is sufficient for their use case, and more robust type checking is not required.
packages/constants/src/user.ts (2)
Learnt from: prateekshourya29
PR: makeplane/plane#7094
File: web/core/store/user/base-permissions.store.ts:196-201
Timestamp: 2025-05-28T09:53:44.635Z
Learning: The `EUserPermissions` enum in this codebase uses numeric values: ADMIN = 20, MEMBER = 15, GUEST = 5. All roles in this enum are always numbers, not string values.
Learnt from: prateekshourya29
PR: makeplane/plane#7094
File: web/core/store/user/base-permissions.store.ts:196-201
Timestamp: 2025-05-28T09:53:44.635Z
Learning: All role enums in this codebase (EUserPermissions, EUserWorkspaceRoles, EUserProjectRoles) use the same consistent numeric values: ADMIN = 20, MEMBER = 15, GUEST = 5. None of these enums have a value of 0, so truthy checks work correctly with these enum values.
apps/web/core/components/issues/attachment/attachment-detail.tsx (1)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7061
File: web/core/components/workspace-notifications/root.tsx:18-18
Timestamp: 2025-05-14T13:16:23.323Z
Learning: In the Plane project codebase, the path alias `@/plane-web` resolves to the `ce` directory, making imports like `@/plane-web/hooks/use-notification-preview` correctly resolve to files in `web/ce/hooks/`.
apps/web/core/components/profile/profile-issues-filter.tsx (3)
Learnt from: mathalav55
PR: makeplane/plane#6452
File: web/helpers/issue.helper.ts:6-6
Timestamp: 2025-01-24T09:37:19.339Z
Learning: In the Plane codebase, `ISSUE_DISPLAY_FILTERS_BY_LAYOUT` and `ISSUE_DISPLAY_FILTERS_BY_PAGE` are two distinct constants serving different purposes - one for layout-level filters and another for page-level filters. They are not interchangeable and should coexist.
Learnt from: janreges
PR: makeplane/plane#6743
File: packages/i18n/src/store/index.ts:160-161
Timestamp: 2025-03-11T19:42:41.769Z
Learning: In the Plane project, the file 'packages/i18n/src/store/index.ts' already includes support for Polish language translations with the case "pl".
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7092
File: web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx:109-113
Timestamp: 2025-05-22T11:21:49.370Z
Learning: Both translation keys "sub_work_item.empty_state.list_filters.action" and "sub_work_item.empty_state.sub_list_filters.action" have identical values across all language files in the Plane project, so they can be used interchangeably.
apps/web/styles/nprogress.css (1)
Learnt from: vineetk13
PR: makeplane/plane#6391
File: web/styles/react-day-picker.css:249-282
Timestamp: 2025-01-17T05:17:51.953Z
Learning: In the date range picker's CSS, left/right positioning for cell background effects (like in `.rdp-range_start::before`, `.rdp-range_middle::before`, `.rdp-range_end::before`) should use physical properties instead of logical properties, as these create visual effects that should remain consistent regardless of text direction.
apps/web/core/store/issue/helpers/base-issues.store.ts (2)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7214
File: web/core/store/issue/helpers/base-issues.store.ts:117-117
Timestamp: 2025-06-16T07:23:39.497Z
Learning: In the updateIssueDates method of BaseIssuesStore (web/core/store/issue/helpers/base-issues.store.ts), the projectId parameter is intentionally made optional to support override implementations in subclasses. The base implementation requires projectId and includes an early return check, but making it optional allows derived classes to override the method with different parameter requirements.
Learnt from: prateekshourya29
PR: makeplane/plane#7363
File: apps/web/core/components/issues/select/dropdown.tsx:9-11
Timestamp: 2025-07-08T13:41:01.610Z
Learning: The `getProjectLabelIds` function in the label store handles undefined projectId internally, so it's safe to pass undefined values to it without explicit checks in the calling component.
apps/web/core/lib/n-progress/index.tsx (3)
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
Learnt from: lifeiscontent
PR: makeplane/plane#7164
File: packages/ui/.storybook/main.ts:24-47
Timestamp: 2025-06-04T16:22:44.344Z
Learning: In packages/ui/.storybook/main.ts, the webpackFinal function intentionally overrides the CSS loader strategy by finding and replacing existing CSS rules. This is a temporary workaround for a known upstream issue in Storybook's CSS handling that has been communicated to the Storybook maintainers. The current implementation should not be changed until the upstream issue is resolved.
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/read.tsx:11-12
Timestamp: 2024-11-28T07:02:15.514Z
Learning: Some components are still in core and have not been moved yet, so their import paths remain the same.
packages/constants/src/metadata.ts (2)
Learnt from: janreges
PR: makeplane/plane#6743
File: packages/i18n/src/store/index.ts:160-161
Timestamp: 2025-03-11T19:42:41.769Z
Learning: In the Plane project, the file 'packages/i18n/src/store/index.ts' already includes support for Polish language translations with the case "pl".
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7061
File: web/core/components/workspace-notifications/root.tsx:18-18
Timestamp: 2025-05-14T13:16:23.323Z
Learning: In the Plane project codebase, the path alias `@/plane-web` resolves to the `ce` directory, making imports like `@/plane-web/hooks/use-notification-preview` correctly resolve to files in `web/ce/hooks/`.
packages/constants/src/issue/layout.ts (1)
Learnt from: mathalav55
PR: makeplane/plane#6452
File: web/helpers/issue.helper.ts:6-6
Timestamp: 2025-01-24T09:37:19.339Z
Learning: In the Plane codebase, `ISSUE_DISPLAY_FILTERS_BY_LAYOUT` and `ISSUE_DISPLAY_FILTERS_BY_PAGE` are two distinct constants serving different purposes - one for layout-level filters and another for page-level filters. They are not interchangeable and should coexist.
apps/space/core/components/issues/filters/applied-filters/root.tsx (1)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7214
File: web/core/store/issue/helpers/base-issues.store.ts:117-117
Timestamp: 2025-06-16T07:23:39.497Z
Learning: In the updateIssueDates method of BaseIssuesStore (web/core/store/issue/helpers/base-issues.store.ts), the projectId parameter is intentionally made optional to support override implementations in subclasses. The base implementation requires projectId and includes an early return check, but making it optional allows derived classes to override the method with different parameter requirements.
apps/space/core/components/issues/issue-layouts/kanban/kanban-group.tsx (1)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7214
File: web/core/store/issue/helpers/base-issues.store.ts:117-117
Timestamp: 2025-06-16T07:23:39.497Z
Learning: In the updateIssueDates method of BaseIssuesStore (web/core/store/issue/helpers/base-issues.store.ts), the projectId parameter is intentionally made optional to support override implementations in subclasses. The base implementation requires projectId and includes an early return check, but making it optional allows derived classes to override the method with different parameter requirements.
apps/web/core/components/issues/filters.tsx (3)
Learnt from: mathalav55
PR: makeplane/plane#6452
File: web/helpers/issue.helper.ts:6-6
Timestamp: 2025-01-24T09:37:19.339Z
Learning: In the Plane codebase, `ISSUE_DISPLAY_FILTERS_BY_LAYOUT` and `ISSUE_DISPLAY_FILTERS_BY_PAGE` are two distinct constants serving different purposes - one for layout-level filters and another for page-level filters. They are not interchangeable and should coexist.
Learnt from: janreges
PR: makeplane/plane#6743
File: packages/i18n/src/store/index.ts:160-161
Timestamp: 2025-03-11T19:42:41.769Z
Learning: In the Plane project, the file 'packages/i18n/src/store/index.ts' already includes support for Polish language translations with the case "pl".
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7092
File: web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx:109-113
Timestamp: 2025-05-22T11:21:49.370Z
Learning: Both translation keys "sub_work_item.empty_state.list_filters.action" and "sub_work_item.empty_state.sub_list_filters.action" have identical values across all language files in the Plane project, so they can be used interchangeably.
apps/web/core/components/issues/issue-detail/issue-detail-quick-actions.tsx (1)
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
apps/web/core/store/issue/root.store.ts (5)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7061
File: web/core/components/workspace-notifications/root.tsx:18-18
Timestamp: 2025-05-14T13:16:23.323Z
Learning: In the Plane project codebase, the path alias `@/plane-web` resolves to the `ce` directory, making imports like `@/plane-web/hooks/use-notification-preview` correctly resolve to files in `web/ce/hooks/`.
Learnt from: janreges
PR: makeplane/plane#6743
File: packages/i18n/src/store/index.ts:160-161
Timestamp: 2025-03-11T19:42:41.769Z
Learning: In the Plane project, the file 'packages/i18n/src/store/index.ts' already includes support for Polish language translations with the case "pl".
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7214
File: web/core/store/issue/helpers/base-issues.store.ts:117-117
Timestamp: 2025-06-16T07:23:39.497Z
Learning: In the updateIssueDates method of BaseIssuesStore (web/core/store/issue/helpers/base-issues.store.ts), the projectId parameter is intentionally made optional to support override implementations in subclasses. The base implementation requires projectId and includes an early return check, but making it optional allows derived classes to override the method with different parameter requirements.
Learnt from: prateekshourya29
PR: makeplane/plane#7363
File: apps/web/core/components/issues/select/dropdown.tsx:9-11
Timestamp: 2025-07-08T13:41:01.610Z
Learning: The `getProjectLabelIds` function in the label store handles undefined projectId internally, so it's safe to pass undefined values to it without explicit checks in the calling component.
apps/web/core/components/analytics/select/project.tsx (2)
Learnt from: prateekshourya29
PR: makeplane/plane#7363
File: apps/web/core/components/issues/select/dropdown.tsx:9-11
Timestamp: 2025-07-08T13:41:01.610Z
Learning: The `getProjectLabelIds` function in the label store handles undefined projectId internally, so it's safe to pass undefined values to it without explicit checks in the calling component.
Learnt from: prateekshourya29
PR: makeplane/plane#7188
File: web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx:40-45
Timestamp: 2025-06-18T09:46:08.566Z
Learning: When reviewing breadcrumb components that accept projectId or similar props, check if empty strings are being passed during loading states, which can result in invalid URLs. The preferred approach is to handle these loading states internally within the component rather than requiring each consumer to manage the loading logic.
apps/web/core/components/issues/issue-modal/form.tsx (2)
Learnt from: mathalav55
PR: makeplane/plane#6107
File: web/ce/components/workspace-notifications/sidebar/notification-card/options/archive.tsx:11-14
Timestamp: 2024-11-28T07:02:54.664Z
Learning: When components are still located in `core`, it's appropriate for files to import them using `@/components/...`, and the migration to the new import paths is not necessary in such cases.
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7214
File: web/core/store/issue/helpers/base-issues.store.ts:117-117
Timestamp: 2025-06-16T07:23:39.497Z
Learning: In the updateIssueDates method of BaseIssuesStore (web/core/store/issue/helpers/base-issues.store.ts), the projectId parameter is intentionally made optional to support override implementations in subclasses. The base implementation requires projectId and includes an early return check, but making it optional allows derived classes to override the method with different parameter requirements.
apps/web/core/components/issues/archived-issues-header.tsx (2)
Learnt from: janreges
PR: makeplane/plane#6743
File: packages/i18n/src/store/index.ts:160-161
Timestamp: 2025-03-11T19:42:41.769Z
Learning: In the Plane project, the file 'packages/i18n/src/store/index.ts' already includes support for Polish language translations with the case "pl".
Learnt from: mathalav55
PR: makeplane/plane#6452
File: web/helpers/issue.helper.ts:6-6
Timestamp: 2025-01-24T09:37:19.339Z
Learning: In the Plane codebase, `ISSUE_DISPLAY_FILTERS_BY_LAYOUT` and `ISSUE_DISPLAY_FILTERS_BY_PAGE` are two distinct constants serving different purposes - one for layout-level filters and another for page-level filters. They are not interchangeable and should coexist.
apps/live/src/core/helpers/page.ts (1)
Learnt from: SatishGandham
PR: makeplane/plane#5864
File: packages/editor/src/core/extensions/custom-image/read-only-custom-image.ts:60-60
Timestamp: 2024-10-22T08:03:04.373Z
Learning: In `packages/editor/src/core/extensions/custom-image/read-only-custom-image.ts`, the `getImageSource` command returns a string directly, not a function.
apps/web/core/components/global/product-updates/footer.tsx (1)
Learnt from: vamsikrishnamathala
PR: makeplane/plane#7061
File: web/core/components/workspace-notifications/root.tsx:18-18
Timestamp: 2025-05-14T13:16:23.323Z
Learning: In the Plane project codebase, the path alias `@/plane-web` resolves to the `ce` directory, making imports like `@/plane-web/hooks/use-notification-preview` correctly resolve to files in `web/ce/hooks/`.
🧬 Code Graph Analysis (11)
apps/web/ce/components/global/version-number.tsx (1)
packages/i18n/src/store/index.ts (1)
t(211-232)
apps/web/ce/types/projects/projects.ts (1)
packages/types/src/project/projects.ts (1)
IProject(38-54)
apps/live/src/core/hocuspocus-server.ts (2)
packages/editor/src/core/constants/document-collaborative-events.ts (1)
DocumentCollaborativeEvents(1-8)packages/editor/src/core/types/document-collaborative-events.ts (1)
TDocumentEventsServer(5-5)
apps/live/src/core/lib/page.ts (1)
apps/live/src/core/helpers/page.ts (2)
getAllDocumentFormatsFromBinaryData(11-33)getBinaryDataFromHTMLString(35-50)
apps/space/core/components/issues/filters/applied-filters/root.tsx (1)
apps/web/core/store/issue/workspace-draft/filter.store.ts (1)
issueFilters(74-79)
apps/space/core/components/issues/issue-layouts/kanban/kanban-group.tsx (1)
packages/types/src/issues/base.ts (2)
TSubGroupedIssues(16-18)TGroupedIssues(12-14)
apps/web/core/components/issues/select/label.tsx (1)
packages/utils/src/common.ts (1)
cn(8-8)
apps/live/src/core/extensions/index.ts (1)
apps/live/src/core/lib/page.ts (1)
fetchPageDescriptionBinary(55-80)
apps/web/core/components/issues/archived-issues-header.tsx (2)
packages/i18n/src/store/index.ts (1)
t(211-232)apps/web/core/store/issue/workspace-draft/filter.store.ts (1)
issueFilters(74-79)
apps/live/src/core/helpers/page.ts (1)
packages/editor/src/core/extensions/core-without-props.ts (2)
CoreEditorExtensionsWithoutProps(26-103)DocumentEditorExtensionsWithoutProps(105-105)
apps/web/core/components/global/product-updates/footer.tsx (3)
packages/i18n/src/store/index.ts (1)
t(211-232)packages/utils/src/common.ts (1)
cn(8-8)packages/ui/src/button/helper.tsx (1)
getButtonStyling(109-120)
🪛 LanguageTool
packages/logger/README.md
[grammar] ~7-~7: Use proper spacing conventions.
Context: ...namic log level configuration using env. - Pre-configured winston logger for genera...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~8-~8: Use proper spacing conventions.
Context: ...ton logger for general usage (logger). - Request logger middleware that logs inco...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~9-~9: Use singular and plural nouns appropriately.
Context: ...st logger middleware that logs incoming request ## Usage ### Adding as a package Add this...
(QB_NEW_EN_OTHER_ERROR_IDS_000012)
[grammar] ~11-~11: Use proper spacing conventions.
Context: ...are that logs incoming request ## Usage ### Adding as a package Add this package as...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~13-~13: Use proper spacing conventions.
Context: ...quest ## Usage ### Adding as a package Add this package as a dependency in pack...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~15-~15: Place a period at the end of declarative sentences.
Context: ... package as a dependency in package.json typescript dependency: { ... @plane/logger":"*", ... } ### Importing the Logger ```typescript impo...
(QB_NEW_EN_OTHER_ERROR_IDS_000178)
[grammar] ~31-~31: Use proper spacing conventions.
Context: ...r } from "@plane/logger"; ``` ### Usage ### logger: General Logger Use this for general a...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~33-~33: Use proper spacing conventions.
Context: ... ### Usage ### logger: General Logger Use this for general application logs. ...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~45-~45: Place a period at the end of declarative sentences.
Context: ...is as a middleware for incoming requests typescript const app = express(); app.use(requestLogger); ## Available Log Levels - error - warn...
(QB_NEW_EN_OTHER_ERROR_IDS_000178)
[grammar] ~52-~52: Use proper spacing conventions.
Context: ...estLogger); ``` ## Available Log Levels - error - `warn` - `info` (default) - `http` - `verbose` - `debug...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~64-~64: Use articles correctly.
Context: ... ## Log file - Log files are stored in logs folder of current working directory. Er...
(QB_NEW_EN_OTHER_ERROR_IDS_000004)
[grammar] ~64-~64: Use articles correctly.
Context: ... Log files are stored in logs folder of current working directory. Error logs are store...
(QB_NEW_EN_OTHER_ERROR_IDS_000004)
[grammar] ~64-~64: There might be a problem here.
Context: ...ry. Error logs are stored in files with format error-%DATE%.log and combined logs are stored with forma...
(QB_NEW_EN_MERGED_MATCH)
[grammar] ~64-~64: Use articles correctly.
Context: ....logand combined logs are stored with formatcombined-%DATE%.log`. - Log files have...
(QB_NEW_EN_OTHER_ERROR_IDS_000004)
[grammar] ~64-~64: Use proper spacing conventions.
Context: ...tored with format combined-%DATE%.log. - Log files have a 7 day rotation period d...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~65-~65: There might be a mistake here.
Context: ...mbined-%DATE%.log`. - Log files have a 7 day rotation period defined. ## Configu...
(QB_NEW_EN_OTHER)
[grammar] ~65-~65: Use proper spacing conventions.
Context: ...es have a 7 day rotation period defined. ## Configuration - By default, the log lev...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~67-~67: Use proper spacing conventions.
Context: ...tation period defined. ## Configuration - By default, the log level is set to `inf...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~69-~69: Use proper spacing conventions.
Context: ...default, the log level is set to info. - You can specify a log level by adding a ...
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
[grammar] ~70-~70: Use proper spacing conventions.
Context: ...log level by adding a LOG_LEVEL in .env.
(QB_NEW_EN_OTHER_ERROR_IDS_000007)
🪛 Biome (1.9.4)
packages/hooks/src/use-local-storage.tsx
[error] 4-4: Invalid typeof comparison value: this expression is not a string literal
not a string literal
Unsafe fix: Compare the result of typeof with a valid type name
(lint/suspicious/useValidTypeof)
[error] 15-15: Invalid typeof comparison value: this expression is not a string literal
not a string literal
Unsafe fix: Compare the result of typeof with a valid type name
(lint/suspicious/useValidTypeof)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Analyze (javascript)
🔇 Additional comments (99)
apps/web/ce/services/project/index.ts (1)
2-3: Trailing newline addition is correctEnsures POSIX-style EOF newline and avoids superfluous diffs later. No functional impact.
apps/web/ce/helpers/workspace.helper.ts (1)
2-3: Formatting-only change LGTMThe added trailing newline complies with Prettier and POSIX conventions. No functional impact.
apps/web/core/components/profile/overview/activity.tsx (1)
66-68: LGTM – formatting-only changeThe multiline formatting improves readability without altering behavior.
apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/page.tsx (1)
31-32: Trailing newline addition improves POSIX complianceAdding a newline at EOF keeps the file POSIX-compliant and aligns with repo style guidelines—nothing else changed. Looks good.
apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/page.tsx (1)
31-32: Consistent EOF newline – no issuesThe sole change is the trailing newline; this is a harmless formatting improvement and maintains consistency across files.
apps/web/ce/components/common/subscription/index.ts (1)
1-2: EOF newline added — good practice
Adds the missing trailing newline, improving tooling compatibility and adhering to POSIX conventions. No functional impact.apps/web/ce/components/global/version-number.tsx (1)
7-11: LGTM – purely formatting, no functional impact.
Changes align with Prettier rules; component logic stays intact.apps/web/public/animated-icons/uploading.json (1)
1-742: Prettier-only reformat – no semantic diff detected.The JSON validates, key ordering is preserved, and animation parameters remain unchanged.
No concerns from my side. 👍packages/constants/src/chart.ts (1)
40-124: Formatting-only change looks goodNo functional or logical modifications detected in this hunk; the constant content remains intact. 👍
apps/space/core/components/issues/issue-layouts/kanban/swimlanes.tsx (1)
136-136: LGTM! Clean JSX formatting improvement.The JSX component props have been properly consolidated to a single line, improving readability and consistency with prettier formatting standards.
apps/space/core/components/issues/filters/applied-filters/root.tsx (1)
38-40: LGTM! Improved operator precedence clarity.The added parentheses around optional chaining and nullish coalescing expressions make the operator precedence explicit and enhance code readability without changing functionality.
apps/space/core/components/issues/issue-layouts/kanban/kanban-group.tsx (1)
79-80: LGTM! Enhanced readability with explicit operator precedence.The parentheses around the optional chaining expressions clarify the evaluation order and make the code more readable, especially for the nested property access patterns used in both subgroup and regular group cases.
packages/editor/src/core/components/editors/editor-container.tsx (1)
58-59: Formatting-only change – logic preservedThe split assignment retains the original boolean expression verbatim. No functional impact—looks good.
packages/propel/src/charts/components/legend.tsx (2)
18-27: Formatting looks goodIndentation-only change; no functional impact observed.
37-38: LGTMType intersection re-indentation only; interface remains unchanged.
apps/web/core/components/api-token/modal/form.tsx (1)
254-254: Trailing newline is fineThe single change just adds a newline at EOF. Improves POSIX compliance and makes future diffs cleaner. No functional impact.
apps/web/ee/components/breadcrumbs/index.ts (1)
1-1: No-op formatting tweak looks goodOnly a trailing newline was introduced. Export statement remains unchanged.
apps/web/ee/components/sidebar/index.ts (1)
1-1: Consistent EOF newlineSame formatting-only adjustment as other files; OK to merge.
packages/propel/src/charts/scatter-chart/index.ts (1)
1-1: EOF newline addedPure formatting; nothing else altered.
apps/live/src/ee/types/common.d.ts (1)
1-1: Semicolon + newline for style uniformityAdding the semicolon and trailing newline aligns with project style; no behavior change.
apps/web/ee/components/active-cycles/workspace-active-cycles-upgrade.tsx (1)
1-2: Consistent newline at EOF – looks good.Adds the missing trailing newline, keeping Prettier and POSIX tooling happy.
apps/web/core/components/api-token/token-list-item.tsx (1)
63-64: EOF newline added – fine.Maintains formatting consistency; no functional impact.
packages/editor/src/ce/types/utils.ts (1)
1-2: Trailing newline improves tooling compatibility.Good to have the newline to satisfy linters and editors expecting POSIX‐style file endings.
packages/constants/src/analytics/index.ts (1)
1-2: Semicolon appended – matches style guide.No behavioural change; prevents accidental ASI pitfalls if this line is ever concatenated with others.
packages/services/tsconfig.json (1)
5-6: Removed dangling comma in JSON – valid & cleaner.Eliminates a potential parse error with strict JSON parsers and keeps the config tidy.
apps/web/ee/components/workspace/billing/index.ts (1)
1-2: 👍 Trailing newline addition is correctAdding a final newline keeps the file POSIX-compliant and aligns with the repo’s formatting conventions.
packages/propel/src/table/index.ts (1)
1-2: 👍 Consistent file-ending newlineThe added newline brings this file in line with Prettier defaults and avoids noisy diffs in the future.
packages/propel/src/charts/scatter-chart/root.tsx (1)
159-160: Minor style fix acknowledgedThe lone newline after
displayNameis purely stylistic and has no runtime impact. Looks good.apps/web/ce/types/projects/projects.ts (1)
5-5: Whitespace tidy-up acceptedThe removal of the stray space in the type alias improves consistency; no functional change.
apps/web/core/components/issues/workspace-draft/empty-state.tsx (1)
46-47: Trailing comma matches Prettier styleThe added comma prevents future diff churn when new props are appended. Change approved.
apps/web/core/components/workspace/sidebar/favorites/index.ts (1)
5-6: New trailing newline is correct; no action required.The addition brings the file in line with POSIX-style conventions and Prettier’s defaults without affecting exports.
packages/types/src/instance/image.ts (1)
1-2: Formatting-only change looks good.Trailing newline improves diff-friendliness; the type declaration is untouched.
packages/propel/src/charts/radar-chart/index.ts (1)
1-2: No issues – newline addition accepted.Style consistency is maintained; nothing functional changed.
apps/web/ee/components/issues/issue-layouts/quick-action-dropdowns/index.ts (1)
1-2: Semicolon + newline align with code-style rules.Change is purely syntactic; re-export path remains correct.
No further action required.apps/web/core/local-db/worker/wa-sqlite/src/types/globals.d.ts (1)
62-63: Trailing newline added – LGTM.Brings the declaration file in line with Prettier formatting; no functional impact.
apps/web/core/store/issue/draft/issue.store.ts (1)
5-12: Import block reformat looks goodPurely stylistic change; no impact on behavior.
apps/web/core/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx (1)
5-11: Consistent multi-line import – LGTMFormatting aligns with Prettier rules and improves readability.
apps/web/core/store/issue/workspace-draft/filter.store.ts (1)
1-1: Tree-shakable lodash path – nice catchSwitching to
lodash/isEmptykeeps bundle size lean; no functional change.apps/web/app/(all)/sign-up/layout.tsx (1)
5-9: Syntax fix forrobotsobjectThe added comma eliminates a potential parse error; nothing else changed.
apps/web/core/store/issue/profile/issue.store.ts (1)
3-10: Import block reflow onlyFormatting change; functionality untouched.
apps/web/core/lib/store-context.tsx (1)
20-22: LGTM! Clean JSX formatting improvement.The multi-line explicit return format improves readability and aligns with consistent formatting standards.
apps/web/core/components/modules/gantt-chart/modules-list-layout.tsx (1)
6-6: LGTM! Cleaner import consolidation.The single-line import format improves compactness while maintaining readability.
apps/web/core/components/workspace-notifications/sidebar/notification-card/content.tsx (1)
3-9: LGTM! Improved import readability.The multi-line import format enhances readability and makes it easier to identify individual utility functions.
apps/web/core/components/issues/issue-detail/issue-detail-quick-actions.tsx (1)
21-21: LGTM! Efficient import consolidation.The single-line import format improves compactness while maintaining all necessary hook imports.
apps/web/core/components/issues/issue-modal/form.tsx (1)
15-22: LGTM! Enhanced import organization.The multi-line import format improves readability and makes it easier to track individual utility functions.
apps/web/core/components/issues/attachment/attachment-detail.tsx (1)
9-16: Stylistic reformat only—safe to merge
Splitting the import list into multiple lines is a pure-formatting change; no behavioural impact and keeps long imports readable.apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/sidebar.tsx (1)
3-9: Import block expanded—looks good
The multi-line import from@plane/constantsmaintains the same set of symbols and aligns with Prettier’s style rules. No further action needed.apps/web/app/(all)/layout.preload.tsx (1)
21-21: Arrow-function parenthesis insertion is benign
Adding parentheses aroundurlis standard Prettier output; no runtime effect.apps/web/ce/components/global/product-updates-header.tsx (1)
17-20: Indentation tweak only—no concerns
Indenting the<div>improves readability; underlying JSX and classes remain unchanged.apps/web/app/(home)/layout.tsx (1)
18-18: Return condensed—functionality intact
Collapsing the fragment onto one line is purely aesthetic; fragment is still required for valid JSX.packages/decorators/tsup.config.ts (1)
1-13: LGTM! Clean formatting improvements.The quote consistency and trailing newline addition improve code style without affecting functionality.
packages/services/src/file/file-upload.service.ts (1)
24-24: LGTM! Method signature formatting improvement.Consolidating the parameters to a single line improves readability without affecting functionality.
apps/web/core/components/workspace/views/header.tsx (1)
115-117: LGTM! JSX formatting improvement.The multi-line format with parentheses enhances readability for the mapping expression.
apps/web/core/store/issue/helpers/base-issues.store.ts (1)
833-833: LGTM! Whitespace formatting correction.Adding the space after the
ifkeyword improves code style consistency.packages/decorators/src/rest.ts (1)
24-31: LGTM! Trailing comma formatting improvement.Adding trailing commas improves diff readability and maintains consistent code style.
apps/web/core/components/workspace/sidebar/favorites/favorites.helpers.ts (3)
10-10: LGTM: Proper semicolon addition to type declaration.The semicolon addition to the
TargetDatatype declaration improves consistency with TypeScript formatting standards.
61-61: LGTM: Cleaned up conditional statement formatting.The removal of extraneous whitespace in the conditional statement improves readability and consistency.
67-67: LGTM: Consistent function ending formatting.The formatting adjustment ensures proper spacing at the end of the function.
apps/web/core/components/account/oauth/oauth-options.tsx (1)
15-16: LGTM: Improved readability with multi-line formatting.The reformatting of the
isOAuthEnabledassignment across multiple lines enhances readability while maintaining the same logical behavior.packages/constants/src/themes.ts (1)
1-1: LGTM: Concise single-line array formatting.The consolidation of the
THEMESarray into a single line improves code density while maintaining the same theme values and order.packages/constants/src/user.ts (1)
55-55: LGTM: Concise single-line array formatting.The consolidation of the
readpermissions array into a single line improves code density while maintaining the same permission values (ADMIN,MEMBER,GUEST).packages/constants/src/auth.ts (1)
14-14: LGTM: Concise single-line arrow function formatting.The consolidation of the
isCriteriaValidarrow function into a single line improves code density while maintaining the same password length validation logic.apps/web/styles/nprogress.css (1)
24-26: Looks good – purely stylistic change
Shadow values unchanged; splitting across lines improves readability.packages/decorators/tsconfig.json (1)
13-14: No issues – formatting only
Single-line include/exclude arrays are fine and keep config compact.packages/constants/src/notification.ts (1)
34-34: LGTM! Clean formatting improvement.The arrow function consolidation improves readability while maintaining the same functionality.
packages/constants/src/issue/layout.ts (1)
1-1: LGTM! Cleaner type definition formatting.The union type consolidation improves readability without affecting the type semantics.
apps/web/core/lib/n-progress/index.tsx (1)
1-3: LGTM! Improved import formatting.The import consolidation and consistent quote usage enhance readability without affecting functionality.
apps/web/core/store/user/profile.store.ts (1)
183-183: LGTM! Consistent formatting.The whitespace cleanup improves code consistency without affecting the method's functionality.
packages/constants/src/metadata.ts (1)
1-2: LGTM! Cleaner constant declarations.The string constant consolidation improves readability while maintaining the same exported values.
Also applies to: 8-8, 11-13
apps/web/core/components/chart/utils.ts (3)
4-10: LGTM: Import formatting improvementThe expansion of the import statement to multi-line format enhances readability and aligns with common formatting practices.
70-70: LGTM: Consistent arrow function formattingThe explicit parentheses around the arrow function parameter improve consistency with the codebase style.
172-172: LGTM: Added newline at end of fileAdding the trailing newline follows standard formatting practices.
apps/web/core/components/issues/select/label.tsx (1)
140-145: LGTM: Improved JSX readabilityThe expansion of the JSX element to multi-line format with split className enhances code readability, especially for complex class name compositions using the
cnutility.packages/hooks/src/use-local-storage.tsx (1)
25-25: LGTM: Improved arrow function formattingThe condensed arrow function initialization is more concise and readable.
apps/web/core/store/workspace/home.ts (1)
23-28: LGTM: Improved method signature readabilityThe expansion of the method signature to multi-line format enhances readability for methods with multiple parameters.
apps/web/core/components/analytics/select/project.tsx (1)
50-54: LGTM: Improved ternary expression formattingThe adjusted indentation of the nested ternary expression enhances readability of the complex conditional logic.
packages/types/src/instance/auth.ts (2)
18-18: LGTM: Clean formatting improvementThe union type formatting change from multiline to single line improves readability and follows standard Prettier conventions for short union types.
35-35: LGTM: Consistent formattingThe single-line union type formatting is consistent with the changes made throughout the file and follows Prettier standards.
apps/web/core/local-db/worker/wa-sqlite/src/types/index.d.ts (2)
18-18: LGTM: Proper TypeScript formattingThe type definition and function signature formatting changes are appropriate Prettier transformations that improve code consistency without affecting functionality.
Also applies to: 40-84
812-812: LGTM: Module declaration formatting standardizationThe conversion from single quotes to double quotes in module declarations follows Prettier's default formatting rules and maintains consistency across the codebase.
Also applies to: 1047-1080
packages/constants/src/tab-indices.ts (1)
56-56: LGTM: Appropriate array formattingThe consolidation of short array declarations into single lines improves readability and follows Prettier's formatting standards for arrays with few elements.
Also applies to: 69-69, 71-71
apps/web/core/components/global/product-updates/footer.tsx (1)
16-63: Question: Are these functional changes appropriate for a formatting PR?The changes in this file appear to go beyond formatting and include functional modifications:
- Layout restructuring: Links are reorganized with inline dot separators
- Content changes: Right-side link changed from Discord to Plane Pages
- Styling logic: Added
getButtonStylingfunction andcnutility usage- Link destination: Changed from Discord URL to "https://plane.so/pages"
These seem to be UI/UX changes rather than formatting changes. Consider whether these belong in a separate PR focused on the footer redesign.
Likely an incorrect or invalid review comment.
packages/types/src/activity.ts (1)
1-1: LGTM: Improved generic type formattingThe generic type parameter formatting changes enhance readability by using appropriate single-line or multiline formatting based on the complexity of the type definitions. All semantic meaning is preserved.
Also applies to: 19-19, 23-26
apps/web/core/store/issue/root.store.ts (1)
4-13: Import reflow looks goodThe multi-line expansion is purely stylistic and keeps the import list readable without altering behavior. 👍
apps/live/src/ee/lib/fetch-document.ts (1)
1-1: Semicolon addition is harmless and aligns with code-styleNo functional impact; keeps the file consistent with Prettier rules.
apps/web/ce/components/issues/bulk-operations/index.ts (1)
1-2: Trailing newline addedEOF newline is conventionally preferred; nothing else changed.
apps/web/ee/components/issues/bulk-operations/index.ts (1)
1-2: Mirrors CE file – newline onlyKeeps formatting consistent across CE/EE exports.
apps/web/core/components/automation/auto-archive-automation.tsx (1)
37-42: Whitespace tweak onlyPrettier-introduced spacing after the closing parenthesis has no runtime effect. All good.
apps/live/src/core/helpers/error-handler.ts (1)
14-16: No functional change – formatting looks good
Consolidating the ternary onto one line keeps semantics identical while improving brevity.apps/web/core/components/profile/profile-issues-filter.tsx (2)
9-14: Import block re-flow LGTM
Splitting the@plane/typesimport over multiple lines improves readability without altering the public surface.
115-119: JSX prop formatting only – fine
Re-formatting the<FiltersDropdown>props does not affect behaviour.apps/live/src/core/hocuspocus-server.ts (1)
7-7: Import consolidation OK
No behavioural impact.apps/web/core/components/issues/filters.tsx (1)
10-15: Type import re-format approved
Purely stylistic; no further action required.apps/web/core/components/issues/archived-issues-header.tsx (2)
9-14: Multi-line@plane/typesimport – looks good
Readability improved; behaviour unchanged.
82-86: Converted self-closing dropdown to explicit tag – no issues
The dropdown now encloses children explicitly; behaviour remains identical.apps/live/src/core/services/page.service.ts (1)
11-18: LGTM on formatting changesThe condensed request remains readable and functionally identical; no issues spotted.
apps/live/src/core/helpers/page.ts (3)
4-4: LGTM – purely cosmetic import tweak.No behavioural change; the new semicolon keeps Prettier happy.
8-9: Constant re-formatting only – OK.Spreading the two extension arrays on the same line is fine and keeps the intent clear.
41-43: Edge-case: empty or invalid HTML string.
generateJSON(descriptionHTML ?? "<p></p>", …)silently swallows malformed HTML. If upstream input can be arbitrary, consider a try/catch and fall back to an empty doc to avoid throwing in production.
* chore: format files using prettier * chore: api server files formatted
Description
Type of Change
Summary by CodeRabbit