Skip to content

regression: replace old css vars with the new design system tokens#8354

Merged
pushya22 merged 4 commits intopreviewfrom
chore/replace-css-vars
Dec 17, 2025
Merged

regression: replace old css vars with the new design system tokens#8354
pushya22 merged 4 commits intopreviewfrom
chore/replace-css-vars

Conversation

@aaryan610
Copy link
Copy Markdown
Member

@aaryan610 aaryan610 commented Dec 17, 2025

Description

This PR replaces old CSS variables with the new design system tokens.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)

Summary by CodeRabbit

  • Style

    • Unified color and shadow tokens across dropdowns, modals, editors, icons, and controls for more consistent theming and placeholder styling.
    • Updated progress bar, gradients, and accent colors for improved visual coherence.
    • Refined icon and avatar placeholder colors for clearer, consistent UI appearance.
  • Bug Fixes

    • Content limit banner now shows sync status guidance when live sync is disabled.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Dec 17, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

This PR standardizes styling tokens across the repo: it replaces legacy color/shadow classes and rgba-based CSS variables with new design-system CSS variables and updated shadow utilities. Changes are purely presentational; no control-flow, event-handling, or API signatures were altered.

Changes

Cohort / File(s) Summary
Global & theme CSS
apps/admin/styles/globals.css, apps/space/styles/globals.css, apps/web/styles/globals.css, apps/web/styles/emoji.css, packages/tailwind-config/index.css, packages/editor/src/styles/drag-drop.css, packages/editor/src/styles/editor.css
Replaced rgba/legacy theme tokens with new CSS variables (e.g., var(--background-color-*), --alpha(...)) and updated progress bar/gradient/peg and highlight references. Removed old theme variable blocks in globals.
Icon stroke / placeholder swaps (auth & inputs)
apps/space/core/components/account/auth-forms/*, apps/web/core/components/account/auth-forms/*, apps/web/core/components/account/auth-forms/*, packages/ui/src/auth-form/auth-input.tsx, packages/ui/src/drag-handle.tsx, packages/ui/src/form-fields/checkbox.tsx, packages/editor/src/core/components/editors/document/page-renderer.tsx
Replaced stroke-custom-text-400 / placeholder-custom-text-400 with stroke-placeholder, placeholder-(--text-color-placeholder) or placeholder-placeholder to unify placeholder/icon stroke styling.
Placeholder/inputs & emoji picker
packages/propel/src/emoji-icon-picker/*, packages/propel/src/design-system/design-system-philosophy.stories.tsx, packages/propel/src/emoji-icon-picker/emoji/emoji.tsx, packages/propel/src/emoji-icon-picker/icon/icon-root.tsx, packages/tailwind-config/AGENTS.md, packages/ui/src/form-fields/textarea.tsx
Updated input placeholder classes to variable-based tokens (e.g., placeholder-(--text-color-placeholder) / placeholder-placeholder). Emoji picker backgrounds moved to bg-surface-* / bg-layer-* tokens.
Shadow / elevation token replacements
many UI components including apps/web/core/components/dropdowns/*, apps/web/core/components/*/popover, packages/editor/src/core/components/menus/*, packages/ui/src/dropdown/*, packages/propel/src/menu/*, apps/admin/..., apps/space/..., etc.
Systematic replacements of shadow utilities: shadow-custom-shadow-rg/-sm/-2xs/-xs/-4xlshadow-raised-200 / shadow-raised-100 as appropriate across popovers, dropdowns, menus, cards, and other UI surfaces.
Fill & icon color updates
apps/web/ce/components/issues/header.tsx, apps/web/core/components/cycles/transfer-issues-modal.tsx, apps/web/core/components/cycles/list/cycle-list-item-action.tsx, packages/propel/src/spinners/circular-spinner.tsx, packages/ui/src/spinners/circular-spinner.tsx
Swapped icon fill classes to new tokens (e.g., fill-custom-primary-100fill-accent-primary, fill-custom-text-100fill-primary).
Background / surface migrations
apps/web/core/components/core/content-overflow-HOC.tsx, apps/web/core/components/editor/sticky-editor/color-palette.tsx, apps/web/core/components/pages/editor/content-limit-banner.tsx, packages/editor/src/core/extensions/slash-commands/command-items-list.tsx, apps/web/core/components/pages/editor/summary/content-browser.tsx
Replaced background classes and gradient sources with from-surface-1, bg-layer-2, var(--background-color-surface-1), and related tokens; added a new content-limit informational span.
Text, border & chart color tokens
apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx, apps/web/core/components/issues/issue-update-status.tsx, apps/web/core/components/issues/layout-quick-actions.tsx, apps/web/core/components/issues/issue-layouts/list/list-group.tsx, apps/web/core/components/labels/create-update-label-inline.tsx, packages/propel/src/icons/*, packages/propel/src/charts/pie-chart/root.tsx, packages/propel/src/charts/bar-chart/root.tsx, packages/editor/src/core/extensions/table/table/icons.ts, packages/constants/src/graph.ts
Mapped text/border colors to new variables (e.g., rgb(var(--color-text-200))var(--text-color-secondary), rgb(var(--color-text-300))var(--text-color-tertiary)). Updated chart theme color references to var(--background-color-layer-2). Replaced some border classes (e.g., border-custom-error-200border-danger-subtle).
Icon component default prop change
apps/web/core/components/icons/attachment/setting-icon.tsx
Default color prop changed from rgb(var(--color-text-200)) to var(--text-color-secondary).
Button / outline adjustments (onboarding)
apps/web/ce/components/onboarding/tour/root.tsx, apps/web/core/components/onboarding/invite-members.tsx, apps/web/core/components/onboarding/steps/team/root.tsx, apps/web/core/components/onboarding/profile-setup.tsx
Updated outline/outline-color classes: outline-custom-text-100outline-subtle-1, outline-custom-primary-100outline-accent-strong, changed some avatar bg classes to bg-accent-primary.
Small targeted visual tweaks
assorted files across apps/packages (e.g., transfer icons, circular spinner, card helper variants, state swatch fallback)
Miscellaneous token swaps changing fallback colors or hover/shadow variants to new tokens (e.g., WITH_SHADOW mapping updated to hover:shadow-raised-200).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Rationale: Large number of files but highly repetitive, token-only substitutions. Review should focus on consistency and ensuring the new CSS variables exist.
  • Spot-check areas:
    • Global/theme files where variables were removed or renamed (apps/web/styles/globals.css, apps/admin/styles/globals.css)
    • Progress bar, gradient, and peg color conversions in CSS
    • Chart/theme constants (packages/constants/src/graph.ts, chart components)
    • Any places where conditional styling logic depends on specific class names (drag/drop, list-group border changes)

"I twitch my whiskers, paint the night—
New tokens hop in minty light,
Shadows trimmed and colors right,
A rabbit cheers the UI bright! 🐇✨"

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Description check ❓ Inconclusive The description is incomplete relative to the template. It lacks test scenarios, screenshots/media details, and references sections. Only description and type of change are minimally filled. Add test scenarios explaining how the CSS variable replacements were verified, and include any references to related issues or documentation about the new design system tokens.
✅ Passed checks (1 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: replacing old CSS variables with new design system tokens, which is reflected in the extensive refactoring across 80+ files.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/replace-css-vars

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2ea55c8 and 3f968b6.

📒 Files selected for processing (3)
  • apps/web/core/components/onboarding/profile-setup.tsx (3 hunks)
  • apps/web/core/components/onboarding/steps/profile/root.tsx (1 hunks)
  • apps/web/core/components/profile/sidebar.tsx (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{ts,tsx,mts,cts}

📄 CodeRabbit inference engine (.github/instructions/typescript.instructions.md)

**/*.{ts,tsx,mts,cts}: Use const type parameters for more precise literal inference in TypeScript 5.0+
Use the satisfies operator to validate types without widening them
Leverage inferred type predicates to reduce the need for explicit is return types in filter/check functions
Use NoInfer<T> utility to block inference for specific type arguments when they should be determined by other arguments
Utilize narrowing in switch(true) blocks for control flow analysis (TypeScript 5.3+)
Rely on narrowing from direct boolean comparisons for type guards
Trust preserved narrowing in closures when variables aren't modified after the check (TypeScript 5.4+)
Use constant indices to narrow object/array properties (TypeScript 5.5+)
Use standard ECMAScript decorators (Stage 3) instead of legacy experimentalDecorators
Use using declarations for explicit resource management with Disposable pattern instead of manual cleanup (TypeScript 5.2+)
Use with { type: "json" } for import attributes; avoid deprecated assert syntax (TypeScript 5.3/5.8+)
Use import type explicitly when importing types to ensure they are erased during compilation, respecting verbatimModuleSyntax flag
Use .ts, .mts, .cts extensions in import type statements (TypeScript 5.2+)
Use import type { Type } from "mod" with { "resolution-mode": "import" } for specific module resolution contexts (TypeScript 5.3+)
Use new iterator methods (map, filter, etc.) if targeting modern environments (TypeScript 5.6+)
Utilize new Set methods like union, intersection, etc., when available (TypeScript 5.5+)
Use Object.groupBy / Map.groupBy standard methods for grouping instead of external libraries (TypeScript 5.4+)
Use Promise.withResolvers() for creating promises with exposed resolve/reject functions (TypeScript 5.7+)
Use copying array methods (toSorted, toSpliced, with) for immutable array operations (TypeScript 5.2+)
Avoid accessing instance fields via super in classes (TypeScript 5....

Files:

  • apps/web/core/components/profile/sidebar.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/core/components/onboarding/steps/profile/root.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Enable TypeScript strict mode and ensure all files are fully typed

Files:

  • apps/web/core/components/profile/sidebar.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/core/components/onboarding/steps/profile/root.tsx
**/*.{js,jsx,ts,tsx,json,css}

📄 CodeRabbit inference engine (AGENTS.md)

Use Prettier with Tailwind plugin for code formatting, run pnpm fix:format

Files:

  • apps/web/core/components/profile/sidebar.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/core/components/onboarding/steps/profile/root.tsx
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{js,jsx,ts,tsx}: Use ESLint with shared config across packages, adhering to max warnings limits per package
Use camelCase for variable and function names, PascalCase for components and types
Use try-catch with proper error types and log errors appropriately

Files:

  • apps/web/core/components/profile/sidebar.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/core/components/onboarding/steps/profile/root.tsx
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use semantic text colors: `text-primary` for main text and headings, `text-secondary` for descriptions, `text-tertiary` for labels and metadata, `text-placeholder` for placeholder text
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*[Ss]idebar* **/*[Nn]av* **/*[Mm]enu* : In sidebar layouts, use transparent backgrounds for menu items with `hover:bg-layer-1-hover` state, rather than applying a base background color

Applied to files:

  • apps/web/core/components/profile/sidebar.tsx
⏰ 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). (3)
  • GitHub Check: check:types
  • GitHub Check: check:lint
  • GitHub Check: Analyze (javascript)
🔇 Additional comments (5)
apps/web/core/components/onboarding/steps/profile/root.tsx (1)

175-175: LGTM! Clean migration to design system token.

The replacement of the hardcoded color bg-[#028375] with bg-accent-primary correctly adopts the new design system token for the avatar placeholder button, maintaining visual consistency while improving maintainability.

apps/web/core/components/profile/sidebar.tsx (2)

120-120: LGTM! Consistent design token adoption.

The avatar placeholder background correctly migrates from bg-[#028375] to bg-accent-primary, consistent with the design system updates across onboarding components.


197-257: Migrate issue status colors to design tokens for consistency with the rest of the codebase.

The hardcoded colors in the issue status breakdown visualization match existing semantic status tokens defined in STATE_GROUPS (from @plane/constants):

  • #3f76ff (assigned) maps to STATE_GROUPS.unstarted.color
  • #f59e0b (pending) maps to STATE_GROUPS.started.color
  • #16a34a (completed) maps to STATE_GROUPS.completed.color

The #203b80 color for created issues should either be mapped to an existing token or explicitly defined as a new semantic token. Other components in the codebase (state-distribution.tsx, workload.tsx, cycles/active-cycle/progress.tsx) already follow this pattern of using STATE_GROUPS or PROGRESS_STATE_GROUPS_DETAILS instead of hardcoded hex values.

apps/web/core/components/onboarding/profile-setup.tsx (2)

318-318: LGTM! Avatar placeholder correctly uses accent token.

The migration from bg-[#9747FF] to bg-accent-primary properly standardizes the avatar placeholder styling with the design system, consistent with other avatar implementations in the onboarding flow.


440-440: LGTM! Semantic icon colors correctly applied.

The password visibility toggle icons now use stroke-placeholder instead of stroke-custom-text-400, which better represents their helper/decorative role. This aligns with the semantic color guidelines for placeholder and secondary UI elements.

Based on learnings, semantic text colors like text-placeholder should be used for placeholder text and helper elements.

Also applies to: 445-445, 480-480, 485-485


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 and usage tips.

JayashTripathy
JayashTripathy previously approved these changes Dec 17, 2025
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7c6a6a3 and 9799d7a.

📒 Files selected for processing (46)
  • apps/admin/styles/globals.css (2 hunks)
  • apps/space/core/components/account/auth-forms/email.tsx (1 hunks)
  • apps/space/core/components/account/auth-forms/password.tsx (3 hunks)
  • apps/space/core/components/account/auth-forms/unique-code.tsx (1 hunks)
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx (3 hunks)
  • apps/web/app/(all)/profile/security/page.tsx (3 hunks)
  • apps/web/ce/components/onboarding/tour/root.tsx (1 hunks)
  • apps/web/core/components/account/auth-forms/email.tsx (1 hunks)
  • apps/web/core/components/account/auth-forms/password.tsx (3 hunks)
  • apps/web/core/components/account/auth-forms/reset-password.tsx (2 hunks)
  • apps/web/core/components/account/auth-forms/set-password.tsx (2 hunks)
  • apps/web/core/components/account/auth-forms/unique-code.tsx (1 hunks)
  • apps/web/core/components/core/content-overflow-HOC.tsx (1 hunks)
  • apps/web/core/components/cycles/transfer-issues-modal.tsx (1 hunks)
  • apps/web/core/components/editor/sticky-editor/color-palette.tsx (1 hunks)
  • apps/web/core/components/icons/attachment/setting-icon.tsx (1 hunks)
  • apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx (1 hunks)
  • apps/web/core/components/issues/issue-update-status.tsx (1 hunks)
  • apps/web/core/components/issues/layout-quick-actions.tsx (2 hunks)
  • apps/web/core/components/labels/create-update-label-inline.tsx (1 hunks)
  • apps/web/core/components/onboarding/invite-members.tsx (1 hunks)
  • apps/web/core/components/onboarding/profile-setup.tsx (2 hunks)
  • apps/web/core/components/onboarding/steps/team/root.tsx (1 hunks)
  • apps/web/core/components/pages/editor/content-limit-banner.tsx (2 hunks)
  • apps/web/core/components/power-k/ui/modal/header.tsx (1 hunks)
  • apps/web/styles/emoji.css (4 hunks)
  • apps/web/styles/globals.css (3 hunks)
  • packages/constants/src/graph.ts (1 hunks)
  • packages/editor/src/core/components/editors/document/page-renderer.tsx (1 hunks)
  • packages/editor/src/core/extensions/slash-commands/command-items-list.tsx (1 hunks)
  • packages/editor/src/core/extensions/table/table/icons.ts (4 hunks)
  • packages/editor/src/styles/drag-drop.css (1 hunks)
  • packages/propel/src/charts/pie-chart/root.tsx (1 hunks)
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx (1 hunks)
  • packages/propel/src/emoji-icon-picker/emoji/emoji.tsx (1 hunks)
  • packages/propel/src/emoji-icon-picker/icon/icon-root.tsx (2 hunks)
  • packages/propel/src/icons/calendar-after-icon.tsx (1 hunks)
  • packages/propel/src/icons/calendar-before-icon.tsx (1 hunks)
  • packages/propel/src/icons/github-icon.tsx (1 hunks)
  • packages/propel/src/icons/gitlab-icon.tsx (1 hunks)
  • packages/tailwind-config/AGENTS.md (1 hunks)
  • packages/tailwind-config/index.css (2 hunks)
  • packages/ui/src/auth-form/auth-input.tsx (1 hunks)
  • packages/ui/src/drag-handle.tsx (1 hunks)
  • packages/ui/src/form-fields/checkbox.tsx (1 hunks)
  • packages/ui/src/form-fields/textarea.tsx (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{ts,tsx,mts,cts}

📄 CodeRabbit inference engine (.github/instructions/typescript.instructions.md)

**/*.{ts,tsx,mts,cts}: Use const type parameters for more precise literal inference in TypeScript 5.0+
Use the satisfies operator to validate types without widening them
Leverage inferred type predicates to reduce the need for explicit is return types in filter/check functions
Use NoInfer<T> utility to block inference for specific type arguments when they should be determined by other arguments
Utilize narrowing in switch(true) blocks for control flow analysis (TypeScript 5.3+)
Rely on narrowing from direct boolean comparisons for type guards
Trust preserved narrowing in closures when variables aren't modified after the check (TypeScript 5.4+)
Use constant indices to narrow object/array properties (TypeScript 5.5+)
Use standard ECMAScript decorators (Stage 3) instead of legacy experimentalDecorators
Use using declarations for explicit resource management with Disposable pattern instead of manual cleanup (TypeScript 5.2+)
Use with { type: "json" } for import attributes; avoid deprecated assert syntax (TypeScript 5.3/5.8+)
Use import type explicitly when importing types to ensure they are erased during compilation, respecting verbatimModuleSyntax flag
Use .ts, .mts, .cts extensions in import type statements (TypeScript 5.2+)
Use import type { Type } from "mod" with { "resolution-mode": "import" } for specific module resolution contexts (TypeScript 5.3+)
Use new iterator methods (map, filter, etc.) if targeting modern environments (TypeScript 5.6+)
Utilize new Set methods like union, intersection, etc., when available (TypeScript 5.5+)
Use Object.groupBy / Map.groupBy standard methods for grouping instead of external libraries (TypeScript 5.4+)
Use Promise.withResolvers() for creating promises with exposed resolve/reject functions (TypeScript 5.7+)
Use copying array methods (toSorted, toSpliced, with) for immutable array operations (TypeScript 5.2+)
Avoid accessing instance fields via super in classes (TypeScript 5....

Files:

  • apps/space/core/components/account/auth-forms/unique-code.tsx
  • apps/web/core/components/account/auth-forms/reset-password.tsx
  • packages/constants/src/graph.ts
  • packages/propel/src/emoji-icon-picker/icon/icon-root.tsx
  • apps/web/core/components/issues/issue-update-status.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx
  • apps/web/core/components/pages/editor/content-limit-banner.tsx
  • packages/propel/src/charts/pie-chart/root.tsx
  • packages/propel/src/icons/gitlab-icon.tsx
  • apps/space/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/core/components/editor/sticky-editor/color-palette.tsx
  • packages/ui/src/drag-handle.tsx
  • packages/editor/src/core/extensions/slash-commands/command-items-list.tsx
  • apps/web/ce/components/onboarding/tour/root.tsx
  • apps/web/core/components/account/auth-forms/unique-code.tsx
  • apps/web/core/components/power-k/ui/modal/header.tsx
  • apps/web/app/(all)/profile/security/page.tsx
  • apps/web/core/components/icons/attachment/setting-icon.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx
  • apps/web/core/components/core/content-overflow-HOC.tsx
  • packages/propel/src/icons/calendar-before-icon.tsx
  • apps/web/core/components/onboarding/invite-members.tsx
  • packages/editor/src/core/components/editors/document/page-renderer.tsx
  • packages/propel/src/icons/github-icon.tsx
  • apps/web/core/components/cycles/transfer-issues-modal.tsx
  • apps/web/core/components/account/auth-forms/set-password.tsx
  • packages/ui/src/form-fields/checkbox.tsx
  • packages/ui/src/auth-form/auth-input.tsx
  • apps/web/core/components/account/auth-forms/email.tsx
  • apps/web/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/labels/create-update-label-inline.tsx
  • apps/space/core/components/account/auth-forms/email.tsx
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • apps/web/core/components/onboarding/steps/team/root.tsx
  • packages/propel/src/icons/calendar-after-icon.tsx
  • packages/propel/src/emoji-icon-picker/emoji/emoji.tsx
  • packages/ui/src/form-fields/textarea.tsx
  • apps/web/core/components/issues/layout-quick-actions.tsx
  • packages/editor/src/core/extensions/table/table/icons.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Enable TypeScript strict mode and ensure all files are fully typed

Files:

  • apps/space/core/components/account/auth-forms/unique-code.tsx
  • apps/web/core/components/account/auth-forms/reset-password.tsx
  • packages/constants/src/graph.ts
  • packages/propel/src/emoji-icon-picker/icon/icon-root.tsx
  • apps/web/core/components/issues/issue-update-status.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx
  • apps/web/core/components/pages/editor/content-limit-banner.tsx
  • packages/propel/src/charts/pie-chart/root.tsx
  • packages/propel/src/icons/gitlab-icon.tsx
  • apps/space/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/core/components/editor/sticky-editor/color-palette.tsx
  • packages/ui/src/drag-handle.tsx
  • packages/editor/src/core/extensions/slash-commands/command-items-list.tsx
  • apps/web/ce/components/onboarding/tour/root.tsx
  • apps/web/core/components/account/auth-forms/unique-code.tsx
  • apps/web/core/components/power-k/ui/modal/header.tsx
  • apps/web/app/(all)/profile/security/page.tsx
  • apps/web/core/components/icons/attachment/setting-icon.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx
  • apps/web/core/components/core/content-overflow-HOC.tsx
  • packages/propel/src/icons/calendar-before-icon.tsx
  • apps/web/core/components/onboarding/invite-members.tsx
  • packages/editor/src/core/components/editors/document/page-renderer.tsx
  • packages/propel/src/icons/github-icon.tsx
  • apps/web/core/components/cycles/transfer-issues-modal.tsx
  • apps/web/core/components/account/auth-forms/set-password.tsx
  • packages/ui/src/form-fields/checkbox.tsx
  • packages/ui/src/auth-form/auth-input.tsx
  • apps/web/core/components/account/auth-forms/email.tsx
  • apps/web/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/labels/create-update-label-inline.tsx
  • apps/space/core/components/account/auth-forms/email.tsx
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • apps/web/core/components/onboarding/steps/team/root.tsx
  • packages/propel/src/icons/calendar-after-icon.tsx
  • packages/propel/src/emoji-icon-picker/emoji/emoji.tsx
  • packages/ui/src/form-fields/textarea.tsx
  • apps/web/core/components/issues/layout-quick-actions.tsx
  • packages/editor/src/core/extensions/table/table/icons.ts
**/*.{js,jsx,ts,tsx,json,css}

📄 CodeRabbit inference engine (AGENTS.md)

Use Prettier with Tailwind plugin for code formatting, run pnpm fix:format

Files:

  • apps/space/core/components/account/auth-forms/unique-code.tsx
  • apps/web/core/components/account/auth-forms/reset-password.tsx
  • packages/constants/src/graph.ts
  • packages/propel/src/emoji-icon-picker/icon/icon-root.tsx
  • apps/web/core/components/issues/issue-update-status.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx
  • apps/web/core/components/pages/editor/content-limit-banner.tsx
  • packages/propel/src/charts/pie-chart/root.tsx
  • packages/propel/src/icons/gitlab-icon.tsx
  • apps/space/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/styles/emoji.css
  • apps/web/core/components/editor/sticky-editor/color-palette.tsx
  • packages/ui/src/drag-handle.tsx
  • packages/editor/src/core/extensions/slash-commands/command-items-list.tsx
  • apps/admin/styles/globals.css
  • apps/web/ce/components/onboarding/tour/root.tsx
  • apps/web/core/components/account/auth-forms/unique-code.tsx
  • apps/web/core/components/power-k/ui/modal/header.tsx
  • apps/web/app/(all)/profile/security/page.tsx
  • apps/web/core/components/icons/attachment/setting-icon.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx
  • apps/web/core/components/core/content-overflow-HOC.tsx
  • packages/propel/src/icons/calendar-before-icon.tsx
  • apps/web/core/components/onboarding/invite-members.tsx
  • packages/editor/src/core/components/editors/document/page-renderer.tsx
  • packages/propel/src/icons/github-icon.tsx
  • apps/web/core/components/cycles/transfer-issues-modal.tsx
  • apps/web/core/components/account/auth-forms/set-password.tsx
  • apps/web/styles/globals.css
  • packages/ui/src/form-fields/checkbox.tsx
  • packages/ui/src/auth-form/auth-input.tsx
  • apps/web/core/components/account/auth-forms/email.tsx
  • apps/web/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/labels/create-update-label-inline.tsx
  • apps/space/core/components/account/auth-forms/email.tsx
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • packages/editor/src/styles/drag-drop.css
  • apps/web/core/components/onboarding/steps/team/root.tsx
  • packages/propel/src/icons/calendar-after-icon.tsx
  • packages/propel/src/emoji-icon-picker/emoji/emoji.tsx
  • packages/ui/src/form-fields/textarea.tsx
  • apps/web/core/components/issues/layout-quick-actions.tsx
  • packages/tailwind-config/index.css
  • packages/editor/src/core/extensions/table/table/icons.ts
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{js,jsx,ts,tsx}: Use ESLint with shared config across packages, adhering to max warnings limits per package
Use camelCase for variable and function names, PascalCase for components and types
Use try-catch with proper error types and log errors appropriately

Files:

  • apps/space/core/components/account/auth-forms/unique-code.tsx
  • apps/web/core/components/account/auth-forms/reset-password.tsx
  • packages/constants/src/graph.ts
  • packages/propel/src/emoji-icon-picker/icon/icon-root.tsx
  • apps/web/core/components/issues/issue-update-status.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx
  • apps/web/core/components/pages/editor/content-limit-banner.tsx
  • packages/propel/src/charts/pie-chart/root.tsx
  • packages/propel/src/icons/gitlab-icon.tsx
  • apps/space/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/core/components/editor/sticky-editor/color-palette.tsx
  • packages/ui/src/drag-handle.tsx
  • packages/editor/src/core/extensions/slash-commands/command-items-list.tsx
  • apps/web/ce/components/onboarding/tour/root.tsx
  • apps/web/core/components/account/auth-forms/unique-code.tsx
  • apps/web/core/components/power-k/ui/modal/header.tsx
  • apps/web/app/(all)/profile/security/page.tsx
  • apps/web/core/components/icons/attachment/setting-icon.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx
  • apps/web/core/components/core/content-overflow-HOC.tsx
  • packages/propel/src/icons/calendar-before-icon.tsx
  • apps/web/core/components/onboarding/invite-members.tsx
  • packages/editor/src/core/components/editors/document/page-renderer.tsx
  • packages/propel/src/icons/github-icon.tsx
  • apps/web/core/components/cycles/transfer-issues-modal.tsx
  • apps/web/core/components/account/auth-forms/set-password.tsx
  • packages/ui/src/form-fields/checkbox.tsx
  • packages/ui/src/auth-form/auth-input.tsx
  • apps/web/core/components/account/auth-forms/email.tsx
  • apps/web/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/labels/create-update-label-inline.tsx
  • apps/space/core/components/account/auth-forms/email.tsx
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • apps/web/core/components/onboarding/steps/team/root.tsx
  • packages/propel/src/icons/calendar-after-icon.tsx
  • packages/propel/src/emoji-icon-picker/emoji/emoji.tsx
  • packages/ui/src/form-fields/textarea.tsx
  • apps/web/core/components/issues/layout-quick-actions.tsx
  • packages/editor/src/core/extensions/table/table/icons.ts
🧠 Learnings (16)
📓 Common learnings
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use semantic text colors: `text-primary` for main text and headings, `text-secondary` for descriptions, `text-tertiary` for labels and metadata, `text-placeholder` for placeholder text
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use semantic border colors: `border-subtle` for subtle borders and dividers, `border-subtle-1` for slightly more visible borders, `border-strong` for emphasis, `border-strong-1` for very strong borders
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use semantic text colors: `text-primary` for main text and headings, `text-secondary` for descriptions, `text-tertiary` for labels and metadata, `text-placeholder` for placeholder text

Applied to files:

  • packages/propel/src/emoji-icon-picker/icon/icon-root.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx
  • packages/propel/src/charts/pie-chart/root.tsx
  • packages/propel/src/icons/gitlab-icon.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/styles/emoji.css
  • apps/web/core/components/editor/sticky-editor/color-palette.tsx
  • packages/editor/src/core/extensions/slash-commands/command-items-list.tsx
  • apps/admin/styles/globals.css
  • packages/tailwind-config/AGENTS.md
  • apps/web/core/components/power-k/ui/modal/header.tsx
  • apps/web/core/components/icons/attachment/setting-icon.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx
  • packages/propel/src/icons/calendar-before-icon.tsx
  • apps/web/core/components/onboarding/invite-members.tsx
  • packages/propel/src/icons/github-icon.tsx
  • apps/web/styles/globals.css
  • apps/web/core/components/account/auth-forms/password.tsx
  • apps/web/core/components/labels/create-update-label-inline.tsx
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • apps/web/core/components/onboarding/steps/team/root.tsx
  • packages/propel/src/icons/calendar-after-icon.tsx
  • packages/propel/src/emoji-icon-picker/emoji/emoji.tsx
  • packages/ui/src/form-fields/textarea.tsx
  • apps/web/core/components/issues/layout-quick-actions.tsx
  • packages/tailwind-config/index.css
  • packages/editor/src/core/extensions/table/table/icons.ts
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use `-active` state variants for elements in pressed/active states and `-selected` state variants only when actual selection logic exists

Applied to files:

  • packages/propel/src/emoji-icon-picker/icon/icon-root.tsx
  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • packages/ui/src/drag-handle.tsx
  • packages/propel/src/icons/calendar-before-icon.tsx
  • apps/web/core/components/onboarding/invite-members.tsx
  • packages/ui/src/form-fields/checkbox.tsx
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • apps/web/core/components/onboarding/steps/team/root.tsx
  • packages/tailwind-config/index.css
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use semantic border colors: `border-subtle` for subtle borders and dividers, `border-subtle-1` for slightly more visible borders, `border-strong` for emphasis, `border-strong-1` for very strong borders

Applied to files:

  • apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx
  • packages/propel/src/icons/gitlab-icon.tsx
  • apps/web/core/components/onboarding/profile-setup.tsx
  • apps/web/styles/emoji.css
  • apps/web/core/components/editor/sticky-editor/color-palette.tsx
  • packages/editor/src/core/extensions/slash-commands/command-items-list.tsx
  • apps/web/core/components/core/content-overflow-HOC.tsx
  • packages/propel/src/icons/calendar-before-icon.tsx
  • apps/web/styles/globals.css
  • apps/web/core/components/labels/create-update-label-inline.tsx
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • packages/ui/src/form-fields/textarea.tsx
  • packages/tailwind-config/index.css
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use Surface (`bg-surface-1`, `bg-surface-2`, `bg-surface-3`) for top-level containers that sit directly on the canvas and serve as main content areas, page sections, or primary containers

Applied to files:

  • apps/web/styles/emoji.css
  • packages/editor/src/core/extensions/slash-commands/command-items-list.tsx
  • apps/web/core/components/core/content-overflow-HOC.tsx
  • apps/web/styles/globals.css
  • packages/editor/src/styles/drag-drop.css
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*[Ss]idebar* **/*[Nn]av* **/*[Mm]enu* : In sidebar layouts, use transparent backgrounds for menu items with `hover:bg-layer-1-hover` state, rather than applying a base background color

Applied to files:

  • apps/web/styles/emoji.css
  • packages/editor/src/core/extensions/slash-commands/command-items-list.tsx
  • apps/admin/styles/globals.css
  • apps/web/core/components/issues/layout-quick-actions.tsx
  • packages/tailwind-config/index.css
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : In rare cases, form elements (inputs, buttons, switches) in modals or surfaces may use one layer level above for visual separation (e.g., `bg-layer-2` with `bg-surface-1`), but this should not be used for content boxes or cards

Applied to files:

  • apps/web/styles/emoji.css
  • apps/web/core/components/editor/sticky-editor/color-palette.tsx
  • packages/editor/src/core/extensions/slash-commands/command-items-list.tsx
  • apps/web/core/components/core/content-overflow-HOC.tsx
  • apps/web/styles/globals.css
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • apps/web/core/components/issues/layout-quick-actions.tsx
  • packages/tailwind-config/index.css
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Hover states must always match the base background layer: use `bg-layer-X hover:bg-layer-X-hover` pattern, never mix hover states between different layers

Applied to files:

  • apps/web/styles/emoji.css
  • apps/web/core/components/editor/sticky-editor/color-palette.tsx
  • apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx
  • apps/web/core/components/core/content-overflow-HOC.tsx
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • packages/tailwind-config/index.css
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Never use hover states without the base background class; always apply hover as `hover:bg-layer-X-hover` in addition to `bg-layer-X`, not standalone

Applied to files:

  • apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx
  • apps/web/core/components/core/content-overflow-HOC.tsx
  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
  • apps/web/core/components/issues/layout-quick-actions.tsx
  • packages/tailwind-config/index.css
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use Layer (`bg-layer-1`, `bg-layer-2`, `bg-layer-3`) for nested elements within a surface, including cards, group headers, nested containers, dropdowns, modals, and any element appearing on top of a surface

Applied to files:

  • apps/web/core/components/core/content-overflow-HOC.tsx
  • apps/web/styles/globals.css
  • packages/tailwind-config/index.css
📚 Learning: 2025-10-10T13:25:14.810Z
Learnt from: gakshita
Repo: makeplane/plane PR: 7949
File: apps/web/core/components/issues/issue-modal/form.tsx:183-189
Timestamp: 2025-10-10T13:25:14.810Z
Learning: In `apps/web/core/components/issues/issue-modal/form.tsx`, the form reset effect uses a `dataResetProperties` dependency array prop (default: []) to give parent components explicit control over when the form resets. Do not suggest adding the `data` prop itself to the dependency array, as this would cause unwanted resets on every render when the data object reference changes, disrupting user input. The current pattern is intentional and allows the parent to trigger resets only when specific conditions are met.

Applied to files:

  • apps/web/core/components/cycles/transfer-issues-modal.tsx
📚 Learning: 2025-06-04T16:22:44.344Z
Learnt from: lifeiscontent
Repo: makeplane/plane PR: 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.

Applied to files:

  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
📚 Learning: 2025-12-12T15:20:36.519Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:36.519Z
Learning: Applies to packages/plane/ui/**/*.{ts,tsx} : Build components in `plane/ui` package with Storybook for isolated development

Applied to files:

  • packages/propel/src/design-system/design-system-philosophy.stories.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Do not use Canvas (`bg-canvas`) for page-level backgrounds, nested containers, cards, modals, dropdowns, sidebars, panels, or anywhere other than the application root

Applied to files:

  • packages/tailwind-config/index.css
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Match layer numbers to surface numbers: `bg-surface-1` uses `bg-layer-1`, `bg-surface-2` uses `bg-layer-2`, `bg-surface-3` uses `bg-layer-3`

Applied to files:

  • packages/tailwind-config/index.css
📚 Learning: 2025-01-17T05:17:51.953Z
Learnt from: vineetk13
Repo: makeplane/plane PR: 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.

Applied to files:

  • packages/tailwind-config/index.css
⏰ 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). (4)
  • GitHub Check: Agent
  • GitHub Check: CodeQL analysis (javascript-typescript)
  • GitHub Check: Build packages
  • GitHub Check: Analyze (javascript)
🔇 Additional comments (44)
packages/constants/src/graph.ts (2)

9-11: Verify semantic correctness of using background color for stroke.

The axis domain line stroke now uses var(--background-color-layer-2), which is a background color token. This differs from the grid lines (line 24) that use var(--border-color-subtle), a border-specific token.

While this may be intentional for creating a subtle, background-blended effect, it's semantically unusual to apply background colors to stroke properties. Please confirm this aligns with the design system's intent and won't cause issues if layer colors diverge from border colors in future theme updates.


16-16: LGTM! Semantically correct token usage.

Using var(--background-color-layer-2) for the tooltip container background is the correct semantic application of the design system token.

apps/web/core/components/issues/layout-quick-actions.tsx (2)

60-60: Use text-tertiary instead of text-placeholder for disabled menu items.

Disabled menu items should use text-tertiary (for low-emphasis text like labels and metadata) rather than text-placeholder, which is semantically reserved for placeholder text in form inputs. While the color may be visually similar, using the correct semantic token maintains design system consistency and future maintainability.


51-51: Use a semantic color token for disabled menu items instead of text-placeholder.

At line 60, the disabled menu items use text-placeholder, but according to the design system, text-placeholder is reserved for placeholder text and hints, not for disabled states. Use text-tertiary or define a dedicated disabled text color for semantic correctness.

"text-placeholder": item.disabled,  // ❌ Semantic mismatch

The transparent background on line 51 is correct per the design system guidance for sidebar menu items.

⛔ Skipped due to learnings
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use semantic text colors: `text-primary` for main text and headings, `text-secondary` for descriptions, `text-tertiary` for labels and metadata, `text-placeholder` for placeholder text
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*[Ss]idebar* **/*[Nn]av* **/*[Mm]enu* : In sidebar layouts, use transparent backgrounds for menu items with `hover:bg-layer-1-hover` state, rather than applying a base background color
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Never use hover states without the base background class; always apply hover as `hover:bg-layer-X-hover` in addition to `bg-layer-X`, not standalone
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Hover states must always match the base background layer: use `bg-layer-X hover:bg-layer-X-hover` pattern, never mix hover states between different layers
apps/web/core/components/issues/issue-update-status.tsx (1)

22-22: LGTM!

The update from stroke-custom-text-300 to stroke-tertiary correctly applies the new semantic color token for the loading indicator icon.

packages/ui/src/auth-form/auth-input.tsx (1)

54-54: LGTM!

The password visibility toggle icon color has been correctly updated to use the semantic stroke-placeholder token, aligning with the design system migration.

apps/web/core/components/core/content-overflow-HOC.tsx (1)

131-131: LGTM!

The gradient color token has been correctly updated from from-custom-background-100 to from-surface-1, which is appropriate for this overlay component per the design system guidelines.

packages/propel/src/icons/github-icon.tsx (1)

20-20: LGTM!

The icon fill color has been correctly updated to use the CSS variable var(--text-color-secondary) directly, replacing the deprecated rgb(var(--color-text-200)) format.

apps/space/core/components/account/auth-forms/email.tsx (1)

86-86: LGTM!

The email clear button icon has been correctly updated to use the semantic stroke-placeholder token, consistent with the design system migration pattern across auth forms.

apps/web/core/components/cycles/transfer-issues-modal.tsx (1)

113-113: LGTM!

The TransferIcon fill color has been correctly updated to fill-primary, which is semantically appropriate for a prominent icon in the modal header.

apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx (1)

280-280: LGTM!

The hover state has been correctly updated to use the semantic hover:text-primary token, providing appropriate visual feedback for the issue identifier.

apps/web/core/components/power-k/ui/modal/header.tsx (1)

44-44: No changes needed. The syntax placeholder-(--text-color-placeholder) is the correct Tailwind v4 shorthand for CSS custom properties, not non-standard. This is the recommended pattern in Tailwind v4 to replace the deprecated square bracket syntax from v3.

apps/space/core/components/account/auth-forms/password.tsx (1)

135-135: LGTM! Icon stroke colors updated to semantic tokens.

The migration from stroke-custom-text-400 to stroke-placeholder for input field icons (XCircle, Eye, EyeOff) is correct and aligns with the design system's semantic color tokens. These changes maintain visual consistency across authentication forms.

Also applies to: 161-161, 166-166, 192-192, 197-197

packages/editor/src/core/components/editors/document/page-renderer.tsx (1)

79-79: LGTM! Placeholder token updated correctly.

The change from placeholder-custom-text-400 to placeholder-placeholder follows the design system's semantic naming convention for placeholder text styling.

apps/web/core/components/onboarding/invite-members.tsx (1)

199-201: LGTM! State-based icon colors follow semantic conventions.

The ChevronDownIcon stroke color now correctly uses stroke-placeholder for inactive state and stroke-primary for active state, aligning with the design system's semantic color tokens.

apps/web/core/components/onboarding/profile-setup.tsx (1)

440-440: LGTM! Password visibility icon colors updated consistently.

The migration from stroke-custom-text-400 to stroke-placeholder for Eye/EyeOff icons maintains consistency with other authentication forms in this PR.

Also applies to: 445-445, 480-480, 485-485

apps/web/core/components/editor/sticky-editor/color-palette.tsx (1)

11-11: LGTM! Color token migrated to design system variable.

The gray sticky note background color has been updated from rgba(var(--color-background-90)) to var(--background-color-layer-2), aligning with the new design system tokens.

apps/web/core/components/labels/create-update-label-inline.tsx (1)

37-37: LGTM! Default label color updated to semantic token.

The change from rgb(var(--color-text-200)) to var(--text-color-secondary) migrates to the new design system's semantic color token, maintaining the intent of using a secondary text color for default labels.

apps/space/core/components/account/auth-forms/unique-code.tsx (1)

99-99: LGTM! Icon stroke color migrated to semantic token.

The XCircle icon stroke color has been updated from stroke-custom-text-400 to stroke-placeholder, maintaining consistency with other authentication form changes in this PR.

packages/propel/src/charts/pie-chart/root.tsx (1)

87-87: LGTM! Semantic color token correctly applied.

The update from rgba(var(--color-text-200)) to var(--text-color-secondary) correctly applies the semantic text color token for pie chart labels, aligning with the design system guideline to use text-secondary for descriptive content.

apps/web/ce/components/onboarding/tour/root.tsx (1)

120-120: LGTM! Outline token correctly updated.

The change from outline-custom-text-100 to outline-subtle-1 follows the semantic naming convention for borders and outlines, providing consistent visual styling for the button.

packages/editor/src/core/extensions/slash-commands/command-items-list.tsx (1)

257-257: LGTM! Surface color token correctly applied.

The update from rgba(var(--color-background-100)) to var(--background-color-surface-1) correctly applies the semantic surface color token, aligning with the guideline to use surface colors for container backgrounds.

apps/web/core/components/onboarding/steps/team/root.tsx (1)

199-203: LGTM! Semantic state colors correctly applied.

The chevron icon stroke colors now correctly use semantic tokens: stroke-placeholder for the inactive state and stroke-primary for the active state. This improves visual clarity and aligns with the design system's semantic color guidelines.

packages/ui/src/form-fields/checkbox.tsx (1)

70-70: LGTM! Disabled state color correctly updated.

The change from stroke-custom-text-400 to stroke-placeholder appropriately applies the semantic placeholder color token for the disabled state of the indeterminate checkbox indicator.

packages/propel/src/icons/calendar-after-icon.tsx (1)

11-11: LGTM! Icon color token correctly updated.

The fill color update from rgb(var(--color-text-200)) to var(--text-color-secondary) correctly applies the semantic text color token for icon fills, ensuring consistency across the icon system.

packages/ui/src/form-fields/textarea.tsx (1)

40-40: LGTM! Placeholder color token correctly applied.

The update from placeholder-custom-text-400 to placeholder-(--text-color-placeholder) correctly applies the semantic placeholder color token. The syntax appears to be part of the project's Tailwind configuration for CSS variable integration.

packages/propel/src/emoji-icon-picker/icon/icon-root.tsx (1)

51-51: LGTM! Placeholder tokens consistently applied.

The placeholder color token updates on both input fields (lines 51 and 75) correctly apply the semantic placeholder-(--text-color-placeholder) token, ensuring consistent placeholder styling across the icon picker component.

packages/ui/src/drag-handle.tsx (1)

31-32: LGTM! Semantic color token applied correctly.

The update from stroke-custom-text-400 to stroke-placeholder aligns with the design system guidelines for placeholder/tertiary UI elements.

Based on learnings, semantic colors like stroke-placeholder are preferred for UI elements like drag handles.

packages/propel/src/icons/gitlab-icon.tsx (1)

20-20: LGTM! Design system token applied correctly.

The update to var(--text-color-secondary) follows the semantic color guidelines and simplifies the CSS variable syntax.

Based on learnings, text-secondary is the appropriate semantic color for icon fills.

packages/propel/src/icons/calendar-before-icon.tsx (1)

11-17: LGTM! Consistent design system tokens applied.

All fill and stroke colors correctly updated to var(--text-color-secondary), maintaining consistency across the icon and simplifying the CSS variable syntax.

apps/web/core/components/pages/editor/content-limit-banner.tsx (1)

13-29: LGTM! Semantic color tokens applied correctly.

The color updates follow the design system guidelines:

  • bg-layer-2 for container backgrounds
  • text-secondary for content text
  • text-placeholder for the dismiss button with appropriate hover state

Based on learnings, these semantic color choices align with the intended usage patterns.

apps/web/core/components/icons/attachment/setting-icon.tsx (1)

5-5: LGTM! Default color token updated consistently.

The default color prop update to var(--text-color-secondary) maintains consistency with other icon components in this PR.

packages/editor/src/core/extensions/table/table/icons.ts (1)

2-47: LGTM! Design system tokens applied consistently across all table icons.

All SVG fill and stroke colors correctly updated from rgb(var(--color-text-300)) to var(--text-color-tertiary), maintaining consistency across colorPicker, toggleColumnHeader, toggleRowHeader, and all insertTable icons.

Based on learnings, text-tertiary is the appropriate semantic color for icon elements.

packages/tailwind-config/index.css (1)

37-43: LGTM! CSS variable migration looks consistent.

The replacements follow the design system token conventions appropriately. The use of @apply text-placeholder for placeholder styling aligns with the semantic color guidelines, and the accent/layer tokens are properly applied for highlights.

Also applies to: 175-180

apps/web/styles/globals.css (1)

166-166: LGTM! Keyframe and progress bar token updates are appropriate.

The replacement of hard-coded color values with CSS variables (--background-color-layer-2, --background-color-accent-primary) follows the design system migration correctly.

Also applies to: 177-177

apps/web/core/components/account/auth-forms/password.tsx (1)

206-206: LGTM! Icon color updates follow semantic color guidelines.

The replacement of stroke-custom-text-400 with stroke-placeholder for all password visibility toggle icons and the clear email button aligns with the design system's semantic color conventions. Based on learnings, text-placeholder (and by extension stroke-placeholder) should be used for placeholder-like visual elements.

Also applies to: 239-241, 276-278

apps/web/core/components/account/auth-forms/email.tsx (1)

86-86: LGTM! Semantic placeholder color applied correctly.

The stroke color update for the clear email button icon follows the design system guidelines.

apps/web/core/components/account/auth-forms/unique-code.tsx (1)

140-140: LGTM! Consistent icon styling across auth forms.

The clear email button icon now uses the appropriate semantic placeholder color, maintaining consistency with other authentication form components.

apps/web/core/components/account/auth-forms/set-password.tsx (1)

163-163: LGTM! Password visibility icons use semantic colors.

All password visibility toggle icons now consistently use stroke-placeholder, following the design system guidelines across both password and confirm password fields.

Also applies to: 168-168, 192-192, 197-197

apps/web/core/components/account/auth-forms/reset-password.tsx (1)

146-146: LGTM! Completes consistent semantic color migration across auth forms.

The password visibility toggle icons now use stroke-placeholder throughout the reset password form, completing the consistent application of design system tokens across all authentication components.

Also applies to: 151-151, 175-175, 180-180

apps/admin/styles/globals.css (1)

30-31: Verify --alpha() function syntax is supported by the build system.

The --alpha() function syntax used for applying alpha channels to CSS variables (e.g., --alpha(var(--background-color-accent-primary) / 80%)) is not standard CSS. This likely requires a PostCSS plugin or custom transformer to work correctly.

Run the following script to check if this syntax is already used elsewhere in the codebase and if build configuration supports it:

#!/bin/bash
# Search for existing --alpha() usage to confirm it's an established pattern
rg -n "--alpha\(" --type=css -C2

# Check for PostCSS or build config that might handle this syntax
fd -e js -e json "postcss.config|tailwind.config" --exec cat {}

Also applies to: 39-40

apps/web/app/(all)/profile/security/page.tsx (1)

150-150: LGTM! Icon color updates align with design system.

The migration from stroke-custom-text-400 to stroke-placeholder for password visibility toggle icons is appropriate and consistent across all three password input fields.

Based on learnings, stroke-placeholder is the correct semantic token for auxiliary UI elements like these icons.

Also applies to: 155-155, 188-188, 193-193, 228-228, 233-233

apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx (1)

152-152: LGTM! Consistent design token migration.

The icon color updates match the changes in the profile security page, maintaining consistency across the application.

Also applies to: 157-157, 190-190, 195-195, 230-230, 235-235

apps/web/styles/emoji.css (1)

9-9: LGTM! CSS token migration follows design system patterns.

The replacement of explicit RGBA values with semantic design tokens is appropriate:

  • bg-surface-1! for top-level containers (EmojiPickerReact, variation picker)
  • bg-surface-1/80! for semi-transparent labels with text-tertiary!
  • bg-layer-2! for hover/focus states
  • border-subtle-1! for borders

These changes align with the design system guidelines and maintain visual consistency while improving maintainability.

Based on learnings, the semantic token usage correctly applies surface colors for containers, layer colors for nested elements, and tertiary text for labels.

Also applies to: 19-19, 29-29, 45-45, 50-50


&::after {
background-color: rgba(var(--color-background-100), 0.2);
background-color: --alpha(var(--background-color-surface-1) / 20%);
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.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for --alpha() function usage
rg -n '--alpha\(' --type=css

# Check for PostCSS configuration
fd -e 'config.js' -e 'config.ts' | grep -E '(postcss|tailwind)' | head -20

# Look for postcss.config and tailwind.config files
find . -name 'postcss.config.*' -o -name 'tailwind.config.*' | head -20

# Check the package.json for dependencies related to alpha/CSS processing
cat package.json 2>/dev/null | grep -A 5 -B 5 'postcss\|tailwind' | head -30

Repository: makeplane/plane

Length of output: 953


🏁 Script executed:

#!/bin/bash
# Search for --alpha usage in CSS files (fixed regex)
rg -- '--alpha' --type=css

# Check the editor's postcss config
echo "=== packages/editor/postcss.config.js ==="
cat packages/editor/postcss.config.js

# Check the drag-drop.css file
echo -e "\n=== packages/editor/src/styles/drag-drop.css ==="
cat packages/editor/src/styles/drag-drop.css

# Check tailwind config
echo -e "\n=== packages/tailwind-config/postcss.config.js ==="
cat packages/tailwind-config/postcss.config.js

Repository: makeplane/plane

Length of output: 2868


🏁 Script executed:

#!/bin/bash
# Check what valid CSS should look like - verify the similar pattern elsewhere
rg 'rgba\(' packages/editor/src/styles/drag-drop.css -A 1 -B 1

Repository: makeplane/plane

Length of output: 197


Use valid CSS syntax for background color alpha channel.

The --alpha() function is not standard CSS and is not supported by your build pipeline (@tailwindcss/postcss). Change line 69 from --alpha(var(--background-color-surface-1) / 20%) to valid CSS syntax matching the pattern used on line 51: rgba(var(--background-color-surface-1), 0.2) or similar valid rgba/rgb syntax.

🤖 Prompt for AI Agents
In packages/editor/src/styles/drag-drop.css around line 69, the background-color
uses the nonstandard --alpha(...) syntax; replace it with valid CSS like
rgba(var(--background-color-surface-1), 0.2) (convert the 20% alpha to 0.2) so
it matches the pattern used on line 51 and is compatible with the
@tailwindcss/postcss build pipeline.

<p className="text-tertiary mb-3 text-13">Tertiary text for labels and metadata</p>
<input
className="placeholder-placeholder border-subtle rounded border px-3 py-2"
className="placeholder-(--text-color-placeholder) border-subtle rounded border px-3 py-2"
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.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# Check Tailwind version and find the actual file
find . -name "package.json" -type f | head -5 | xargs grep -l "tailwind" 2>/dev/null | head -1 | xargs cat | grep -A 2 '"tailwindcss'

# Check the actual file at line 308
cat -n packages/propel/src/design-system/design-system-philosophy.stories.tsx | sed -n '305,312p'

# Search for other uses of placeholder- in the codebase
rg "placeholder-\(" --type tsx --type ts -n | head -10

Repository: makeplane/plane

Length of output: 575


🏁 Script executed:

# Find Tailwind config files
find . -name "tailwind.config.*" -o -name "tailwind.css" | head -5

# Check Tailwind version
find . -name "package.json" -type f -exec grep -l "tailwindcss" {} \; | head -1 | xargs cat | grep -E '"tailwindcss"|"version"' | head -5

# Search for text-placeholder or placeholder color definitions
rg "text-placeholder|placeholder.*text" --type-add tsx:*.tsx --type-add ts:*.ts -n | head -10

# Check other placeholder usage in codebase
rg "placeholder:" -g "*.tsx" -g "*.ts" -n | head -10

Repository: makeplane/plane

Length of output: 2840


Use the semantic placeholder color to match codebase standards.

The file should use placeholder:text-placeholder instead of referencing a CSS variable. This aligns with the established pattern throughout the codebase and follows the design system guidelines for semantic text colors. Since this is a Storybook story documenting the design system philosophy, it should exemplify best practices.

Apply this change:

-            className="placeholder-(--text-color-placeholder) border-subtle rounded border px-3 py-2"
+            className="placeholder:text-placeholder border-subtle rounded border px-3 py-2"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
className="placeholder-(--text-color-placeholder) border-subtle rounded border px-3 py-2"
className="placeholder:text-placeholder border-subtle rounded border px-3 py-2"
🤖 Prompt for AI Agents
In packages/propel/src/design-system/design-system-philosophy.stories.tsx around
line 308, replace the class that uses the CSS variable
placeholder-(--text-color-placeholder) with the semantic utility
placeholder:text-placeholder while keeping the other classes (border-subtle
rounded border px-3 py-2) unchanged; update the className to use
placeholder:text-placeholder to align with the codebase design-system pattern.

placeholder={searchPlaceholder}
disabled={searchDisabled}
className="block rounded-md bg-transparent placeholder-custom-text-400 focus:outline-none px-3 py-2 border-[0.5px] border-subtle text-16 p-0 h-full w-full flex-grow-0 focus:border-accent-strong"
className="block rounded-md bg-transparent placeholder-(--text-color-placeholder) focus:outline-none px-3 py-2 border-[0.5px] border-subtle text-16 p-0 h-full w-full flex-grow-0 focus:border-accent-strong"
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.

⚠️ Potential issue | 🔴 Critical

Fix invalid Tailwind CSS syntax for arbitrary value.

The syntax placeholder-(--text-color-placeholder) is invalid. Tailwind CSS requires square brackets for arbitrary values with CSS variables.

Apply this diff to fix the syntax:

-            className="block rounded-md bg-transparent placeholder-(--text-color-placeholder) focus:outline-none px-3 py-2 border-[0.5px] border-subtle text-16 p-0 h-full w-full flex-grow-0 focus:border-accent-strong"
+            className="block rounded-md bg-transparent placeholder-[var(--text-color-placeholder)] focus:outline-none px-3 py-2 border-[0.5px] border-subtle text-16 p-0 h-full w-full flex-grow-0 focus:border-accent-strong"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
className="block rounded-md bg-transparent placeholder-(--text-color-placeholder) focus:outline-none px-3 py-2 border-[0.5px] border-subtle text-16 p-0 h-full w-full flex-grow-0 focus:border-accent-strong"
className="block rounded-md bg-transparent placeholder-[var(--text-color-placeholder)] focus:outline-none px-3 py-2 border-[0.5px] border-subtle text-16 p-0 h-full w-full flex-grow-0 focus:border-accent-strong"
🤖 Prompt for AI Agents
In packages/propel/src/emoji-icon-picker/emoji/emoji.tsx around line 39, the
Tailwind class uses invalid arbitrary value syntax
`placeholder-(--text-color-placeholder)`; replace it with the correct
square-bracket form `placeholder-[--text-color-placeholder]` so Tailwind
recognizes the CSS variable as an arbitrary value (update the className string
accordingly).

<p className="text-secondary">Description text</p>
<span className="text-tertiary text-13">Metadata</span>
<input className="placeholder-placeholder" placeholder="Enter text..." />
<input className="placeholder-(--text-color-placeholder)" placeholder="Enter text..." />
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.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for placeholder patterns in the codebase
echo "=== Searching for placeholder patterns ==="
rg -n 'placeholder-' --type tsx --type ts --type js -C2 | head -50

echo -e "\n=== Searching for Tailwind config files ==="
fd -e 'tailwind.config' -e 'tailwind.config.js' -e 'tailwind.config.ts'

echo -e "\n=== Checking packages/tailwind-config directory ==="
ls -la packages/tailwind-config/ 2>/dev/null || echo "Directory not found"

Repository: makeplane/plane

Length of output: 813


🏁 Script executed:

#!/bin/bash
# Read AGENTS.md around line 481
echo "=== Content of AGENTS.md around line 481 ==="
sed -n '470,490p' packages/tailwind-config/AGENTS.md

Repository: makeplane/plane

Length of output: 718


🏁 Script executed:

#!/bin/bash
# Check for Tailwind configuration and custom syntax
echo "=== Looking for Tailwind config in packages/tailwind-config ==="
cat packages/tailwind-config/postcss.config.js

echo -e "\n=== Checking for Tailwind config in root or other locations ==="
fd 'tailwind.config' . --type f

echo -e "\n=== Checking variables.css for placeholder color definition ==="
grep -n 'placeholder\|--text-color-placeholder' packages/tailwind-config/variables.css

Repository: makeplane/plane

Length of output: 722


Fix placeholder syntax in the documentation example.

The syntax placeholder-(--text-color-placeholder) is non-standard for Tailwind CSS. Use either:

  • placeholder:text-placeholder (semantic approach, consistent with project's use of text-placeholder defined in variables.css), or
  • placeholder-[var(--text-color-placeholder)] (arbitrary values with square brackets syntax)

The parentheses syntax shown will not work without custom Tailwind configuration.

🤖 Prompt for AI Agents
In packages/tailwind-config/AGENTS.md around line 481, the example uses
non-standard Tailwind syntax `placeholder-(--text-color-placeholder)`; replace
it with a supported form — either `placeholder:text-placeholder` to use the
project's semantic token defined in variables.css, or
`placeholder-[var(--text-color-placeholder)]` to use the arbitrary value syntax
— and update the example input tag accordingly so the placeholder color will
work without custom Tailwind plugins.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR replaces legacy CSS variables (e.g., rgb(var(--color-text-200)), custom-text-400) with new design system tokens (e.g., var(--text-color-secondary), placeholder). The changes align the codebase with a new, standardized design system for consistent theming.

Key Changes:

  • Replaced old CSS variable syntax with new design system tokens throughout TSX/TS and CSS files
  • Updated Tailwind utility classes to use semantic color names (text-placeholder, stroke-placeholder, etc.)
  • Removed outdated CSS variable definitions from globals.css
  • Updated SVG icon fill/stroke attributes to use new token format

Reviewed changes

Copilot reviewed 46 out of 46 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
packages/ui/src/form-fields/textarea.tsx Updated placeholder class syntax with incorrect format
packages/ui/src/form-fields/checkbox.tsx Replaced old stroke class with stroke-placeholder
packages/ui/src/drag-handle.tsx Updated icon stroke classes to use stroke-placeholder
packages/ui/src/auth-form/auth-input.tsx Replaced old stroke class with stroke-placeholder
packages/tailwind-config/index.css Replaced CSS variables with design tokens in utility classes
packages/tailwind-config/AGENTS.md Updated placeholder class documentation with incorrect syntax
packages/propel/src/icons/*.tsx Updated icon fill/stroke attributes to use new CSS variables
packages/propel/src/emoji-icon-picker/**/*.tsx Updated placeholder classes with incorrect syntax
packages/propel/src/design-system/design-system-philosophy.stories.tsx Updated placeholder example with incorrect syntax
packages/propel/src/charts/pie-chart/root.tsx Replaced fill color with new token
packages/editor/src/styles/drag-drop.css Updated background-color with invalid --alpha() syntax
packages/editor/src/core/extensions/table/table/icons.ts Replaced fill/stroke attributes with new tokens in SVG strings
packages/editor/src/core/extensions/slash-commands/command-items-list.tsx Updated backgroundColor with new token
packages/editor/src/core/components/editors/document/page-renderer.tsx Updated placeholder class to use placeholder-placeholder
packages/constants/src/graph.ts Replaced chart theme colors with new tokens
apps/web/styles/globals.css Removed old CSS variable definitions and updated tokens with invalid --alpha() syntax
apps/web/styles/emoji.css Replaced background colors with Tailwind apply directives
apps/web/core/components/**/*.tsx Updated text, stroke, and background classes throughout multiple components
apps/web/core/components/labels/create-update-label-inline.tsx Updated default color value
apps/web/core/components/pages/editor/content-limit-banner.tsx Replaced old classes with new semantic tokens
apps/web/core/components/onboarding/**/*.tsx Updated stroke classes in onboarding components
apps/web/core/components/account/auth-forms/*.tsx Updated stroke classes for password visibility icons
apps/web/core/components/icons/attachment/setting-icon.tsx Updated default color prop
apps/web/ce/components/onboarding/tour/root.tsx Updated outline class
apps/web/app/(all)/**/security/page.tsx Updated stroke classes for password fields
apps/space/core/components/account/auth-forms/*.tsx Updated stroke classes for form icons
apps/admin/styles/globals.css Replaced CSS variables with new tokens and invalid --alpha() syntax

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

<p className="text-secondary">Description text</p>
<span className="text-tertiary text-13">Metadata</span>
<input className="placeholder-placeholder" placeholder="Enter text..." />
<input className="placeholder-(--text-color-placeholder)" placeholder="Enter text..." />
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The placeholder class syntax is incorrect. Tailwind CSS requires placeholder classes to use the format placeholder-<color> or placeholder:[<css-value>] for arbitrary values. The current syntax placeholder-(--text-color-placeholder) is invalid and will not work. Use placeholder:[var(--text-color-placeholder)] instead.

Copilot uses AI. Check for mistakes.
value={query}
onChange={(e) => setQuery(e.target.value)}
className="block rounded-md bg-transparent placeholder-custom-text-400 focus:outline-none px-3 py-2 border-[0.5px] border-subtle text-16 border-none p-0 h-full w-full"
className="block rounded-md bg-transparent placeholder-(--text-color-placeholder) focus:outline-none px-3 py-2 border-[0.5px] border-subtle text-16 border-none p-0 h-full w-full"
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The placeholder class syntax is incorrect. Tailwind CSS requires placeholder classes to use the format placeholder-<color> or placeholder:[<css-value>] for arbitrary values. The current syntax placeholder-(--text-color-placeholder) is invalid and will not work. Use placeholder:[var(--text-color-placeholder)] instead.

Copilot uses AI. Check for mistakes.
onValueChange={onSearchChange}
placeholder={placeholder}
className="flex-1 bg-transparent text-13 text-primary placeholder-custom-text-400 outline-none"
className="flex-1 bg-transparent text-13 text-primary placeholder-(--text-color-placeholder) outline-none"
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The placeholder class syntax is incorrect. Tailwind CSS requires placeholder classes to use the format placeholder-<color> or placeholder:[<css-value>] for arbitrary values. The current syntax placeholder-(--text-color-placeholder) is invalid and will not work. Use placeholder:[var(--text-color-placeholder)] instead.

Suggested change
className="flex-1 bg-transparent text-13 text-primary placeholder-(--text-color-placeholder) outline-none"
className="flex-1 bg-transparent text-13 text-primary placeholder:[var(--text-color-placeholder)] outline-none"

Copilot uses AI. Check for mistakes.
Comment on lines +188 to +189
--alpha(var(--background-color-accent-primary) / 80%) 0%,
--alpha(var(--background-color-accent-primary) / 100%) 100%
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The --alpha() syntax is invalid CSS. The correct syntax should either be color-mix(in srgb, var(--background-color-accent-primary) 80%, transparent) for modern CSS, or you need to verify that --alpha() is a custom function defined in your CSS toolchain (like PostCSS). Standard CSS does not support this syntax.

Copilot uses AI. Check for mistakes.
Comment on lines +197 to +198
0 0 8px --alpha(var(--background-color-accent-primary) / 60%),
0 0 4px --alpha(var(--background-color-accent-primary) / 40%) !important;
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The --alpha() syntax is invalid CSS. The correct syntax should either be color-mix(in srgb, var(--background-color-accent-primary) 60%, transparent) for modern CSS, or you need to verify that --alpha() is a custom function defined in your CSS toolchain (like PostCSS). Standard CSS does not support this syntax.

Copilot uses AI. Check for mistakes.
placeholder={searchPlaceholder}
disabled={searchDisabled}
className="block rounded-md bg-transparent placeholder-custom-text-400 focus:outline-none px-3 py-2 border-[0.5px] border-subtle text-16 p-0 h-full w-full flex-grow-0 focus:border-accent-strong"
className="block rounded-md bg-transparent placeholder-(--text-color-placeholder) focus:outline-none px-3 py-2 border-[0.5px] border-subtle text-16 p-0 h-full w-full flex-grow-0 focus:border-accent-strong"
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The placeholder class syntax is incorrect. Tailwind CSS requires placeholder classes to use the format placeholder-<color> or placeholder:[<css-value>] for arbitrary values. The current syntax placeholder-(--text-color-placeholder) is invalid and will not work. Use placeholder:[var(--text-color-placeholder)] instead.

Copilot uses AI. Check for mistakes.
<p className="text-tertiary mb-3 text-13">Tertiary text for labels and metadata</p>
<input
className="placeholder-placeholder border-subtle rounded border px-3 py-2"
className="placeholder-(--text-color-placeholder) border-subtle rounded border px-3 py-2"
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The placeholder class syntax is incorrect. Tailwind CSS requires placeholder classes to use the format placeholder-<color> or placeholder:[<css-value>] for arbitrary values. The current syntax placeholder-(--text-color-placeholder) is invalid and will not work. Use placeholder:[var(--text-color-placeholder)] instead.

Copilot uses AI. Check for mistakes.

&::after {
background-color: rgba(var(--color-background-100), 0.2);
background-color: --alpha(var(--background-color-surface-1) / 20%);
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The --alpha() syntax is invalid CSS. The correct syntax should either be color-mix(in srgb, var(--background-color-surface-1) 20%, transparent) for modern CSS, or you need to verify that --alpha() is a custom function defined in your CSS toolchain (like PostCSS). If this is intended to be a Tailwind arbitrary value, it should use Tailwind's opacity modifier syntax instead.

Copilot uses AI. Check for mistakes.
Comment on lines +30 to +31
--alpha(var(--background-color-accent-primary) / 80%) 0%,
--alpha(var(--background-color-accent-primary) / 100%) 100%
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The --alpha() syntax is invalid CSS. The correct syntax should either be color-mix(in srgb, var(--background-color-accent-primary) 80%, transparent) for modern CSS, or you need to verify that --alpha() is a custom function defined in your CSS toolchain (like PostCSS). Standard CSS does not support this syntax.

Copilot uses AI. Check for mistakes.
--epr-horizontal-padding: 0.5rem !important;
--epr-emoji-padding: 0.5rem !important;
background-color: rgba(var(--color-background-100)) !important;
@apply bg-surface-1!;
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

There's a missing space in the Tailwind apply directive. It should be @apply bg-surface-1 !important; (with space before !) or @apply bg-surface-1!; (without space). The current syntax @apply bg-surface-1!; is inconsistent with line 19 which uses a space before the exclamation mark.

Suggested change
@apply bg-surface-1!;
@apply bg-surface-1 !important;

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx (1)

136-136: Fix typo in transition class.

The enterTo prop has a typo: trnsform should be transform.

Apply this diff to fix the typo:

-              enterTo="trnsform opacity-100 scale-100"
+              enterTo="transform opacity-100 scale-100"
♻️ Duplicate comments (2)
packages/editor/src/styles/drag-drop.css (2)

58-58: Invalid CSS syntax: --alpha() is not supported.

The --alpha() function is not standard CSS and will break in production. Use valid syntax like rgba() or color-mix().

Apply this fix:

-    background-color: --alpha(var(--background-color-accent-primary) / 20%);
+    background-color: color-mix(in srgb, var(--background-color-accent-primary) 20%, transparent);

Or if using rgba with separate RGB values:

-    background-color: --alpha(var(--background-color-accent-primary) / 20%);
+    background-color: rgba(var(--background-color-accent-primary), 0.2);

69-69: Invalid CSS syntax: --alpha() is not supported.

Same issue as line 58. The --alpha() function is not valid CSS.

Apply this fix:

-      background-color: --alpha(var(--background-color-surface-1) / 20%);
+      background-color: color-mix(in srgb, var(--background-color-surface-1) 20%, transparent);

Or if using rgba with separate RGB values:

-      background-color: --alpha(var(--background-color-surface-1) / 20%);
+      background-color: rgba(var(--background-color-surface-1), 0.2);
🧹 Nitpick comments (4)
apps/web/core/components/base-layouts/layout-switcher.tsx (1)

24-32: Consider aligning layer/surface usage with design system guidelines.

The parent container uses bg-layer-1 (line 24), while the button's selected state uses bg-surface-1 (line 32). According to the design system learnings, layers should be used for nested elements within surfaces, and layer numbers should match their parent surface numbers.

For consistency with the design system guidelines, consider using bg-layer-1 and hover:bg-layer-1-hover for the button states since it's nested within a bg-layer-1 container.

Based on learnings about layer/surface usage patterns.

packages/ui/src/spinners/circular-spinner.tsx (1)

11-35: Consider consolidating duplicate Spinner components.

Nearly identical Spinner components exist in both packages/ui/src/spinners/circular-spinner.tsx and packages/propel/src/spinners/circular-spinner.tsx, differing only in minor implementation details (className utility and fill application approach).

Consider extracting a shared spinner implementation to a common location to improve maintainability and reduce duplication.

apps/space/styles/globals.css (1)

63-77: Ensure the project uses Tailwind CSS v4.x to support the --alpha() function syntax.

The --alpha() function (e.g., --alpha(var(--background-color-accent-primary) / 80%)) is a Tailwind CSS 4 feature for color opacity manipulation and is not available in earlier versions. Verify that your project's dependencies include Tailwind CSS 4.x.

apps/web/core/components/profile/overview/state-distribution.tsx (1)

45-45: Consider providing fallback for undefined fill color.

Similar to the legend rendering (lines 62-63), the PieChart cells could receive undefined for fill if STATE_GROUPS[group.state_group]?.color is undefined. Consider adding a fallback to ensure consistent rendering.

 cells={userProfile.state_distribution.map((group) => ({
   key: group.state_group,
-  fill: STATE_GROUPS[group.state_group]?.color,
+  fill: STATE_GROUPS[group.state_group]?.color ?? "var(--background-color-accent-primary)",
 }))}
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9799d7a and 673e5cd.

📒 Files selected for processing (68)
  • apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx (1 hunks)
  • apps/space/core/components/common/powered-by.tsx (1 hunks)
  • apps/space/core/components/issues/filters/helpers/dropdown.tsx (1 hunks)
  • apps/space/core/components/issues/navbar/user-avatar.tsx (1 hunks)
  • apps/space/styles/globals.css (2 hunks)
  • apps/web/ce/components/issues/header.tsx (1 hunks)
  • apps/web/ce/components/pages/editor/ai/menu.tsx (1 hunks)
  • apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx (1 hunks)
  • apps/web/core/components/base-layouts/layout-switcher.tsx (1 hunks)
  • apps/web/core/components/core/image-picker-popover.tsx (1 hunks)
  • apps/web/core/components/cycles/list/cycle-list-item-action.tsx (1 hunks)
  • apps/web/core/components/dropdowns/cycle/cycle-options.tsx (1 hunks)
  • apps/web/core/components/dropdowns/date-range.tsx (1 hunks)
  • apps/web/core/components/dropdowns/date.tsx (1 hunks)
  • apps/web/core/components/dropdowns/estimate.tsx (1 hunks)
  • apps/web/core/components/dropdowns/intake-state/base.tsx (1 hunks)
  • apps/web/core/components/dropdowns/member/member-options.tsx (1 hunks)
  • apps/web/core/components/dropdowns/module/module-options.tsx (1 hunks)
  • apps/web/core/components/dropdowns/priority.tsx (1 hunks)
  • apps/web/core/components/dropdowns/project/base.tsx (1 hunks)
  • apps/web/core/components/dropdowns/state/base.tsx (1 hunks)
  • apps/web/core/components/editor/embeds/mentions/user.tsx (1 hunks)
  • apps/web/core/components/issues/issue-detail/label/select/label-select.tsx (1 hunks)
  • apps/web/core/components/issues/issue-layouts/calendar/dropdowns/months-dropdown.tsx (1 hunks)
  • apps/web/core/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx (1 hunks)
  • apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx (1 hunks)
  • apps/web/core/components/issues/issue-layouts/list/list-group.tsx (1 hunks)
  • apps/web/core/components/issues/issue-layouts/quick-add/form/calendar.tsx (1 hunks)
  • apps/web/core/components/issues/issue-layouts/quick-add/form/gantt.tsx (1 hunks)
  • apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx (1 hunks)
  • apps/web/core/components/issues/issue-layouts/quick-add/form/list.tsx (1 hunks)
  • apps/web/core/components/issues/issue-layouts/quick-add/form/spreadsheet.tsx (1 hunks)
  • apps/web/core/components/issues/issue-modal/form.tsx (1 hunks)
  • apps/web/core/components/issues/preview-card/root.tsx (1 hunks)
  • apps/web/core/components/issues/select/base.tsx (1 hunks)
  • apps/web/core/components/onboarding/invite-members.tsx (2 hunks)
  • apps/web/core/components/onboarding/steps/team/root.tsx (2 hunks)
  • apps/web/core/components/onboarding/switch-account-dropdown.tsx (1 hunks)
  • apps/web/core/components/pages/editor/content-limit-banner.tsx (2 hunks)
  • apps/web/core/components/pages/editor/summary/content-browser.tsx (1 hunks)
  • apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx (1 hunks)
  • apps/web/core/components/profile/overview/state-distribution.tsx (1 hunks)
  • apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx (1 hunks)
  • packages/editor/src/core/components/menus/block-menu.tsx (1 hunks)
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx (1 hunks)
  • packages/editor/src/core/components/menus/bubble-menu/link-selector.tsx (1 hunks)
  • packages/editor/src/core/components/menus/bubble-menu/node-selector.tsx (1 hunks)
  • packages/editor/src/core/components/menus/bubble-menu/root.tsx (1 hunks)
  • packages/editor/src/core/extensions/callout/color-selector.tsx (1 hunks)
  • packages/editor/src/core/extensions/emoji/components/emojis-list.tsx (1 hunks)
  • packages/editor/src/core/extensions/mentions/mentions-list-dropdown.tsx (1 hunks)
  • packages/editor/src/core/extensions/slash-commands/command-menu.tsx (1 hunks)
  • packages/editor/src/core/extensions/table/plugins/drag-handles/column/drag-handle.tsx (1 hunks)
  • packages/editor/src/core/extensions/table/plugins/drag-handles/row/drag-handle.tsx (1 hunks)
  • packages/editor/src/core/plugins/highlight.ts (1 hunks)
  • packages/editor/src/styles/drag-drop.css (2 hunks)
  • packages/editor/src/styles/editor.css (1 hunks)
  • packages/propel/src/card/helper.tsx (1 hunks)
  • packages/propel/src/charts/bar-chart/root.tsx (1 hunks)
  • packages/propel/src/menu/menu.stories.tsx (2 hunks)
  • packages/propel/src/menu/menu.tsx (1 hunks)
  • packages/propel/src/spinners/circular-spinner.tsx (1 hunks)
  • packages/ui/src/card/helper.tsx (1 hunks)
  • packages/ui/src/dropdown/multi-select.tsx (1 hunks)
  • packages/ui/src/dropdown/single-select.tsx (1 hunks)
  • packages/ui/src/form-fields/input-color-picker.tsx (1 hunks)
  • packages/ui/src/popovers/popover-menu.tsx (1 hunks)
  • packages/ui/src/spinners/circular-spinner.tsx (1 hunks)
✅ Files skipped from review due to trivial changes (17)
  • apps/web/core/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx
  • apps/space/core/components/issues/navbar/user-avatar.tsx
  • apps/web/core/components/pages/editor/summary/content-browser.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/dropdowns/months-dropdown.tsx
  • packages/editor/src/core/extensions/table/plugins/drag-handles/column/drag-handle.tsx
  • packages/editor/src/core/components/menus/bubble-menu/node-selector.tsx
  • apps/web/core/components/issues/preview-card/root.tsx
  • apps/web/core/components/dropdowns/estimate.tsx
  • packages/editor/src/core/components/menus/bubble-menu/root.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/spreadsheet.tsx
  • packages/ui/src/dropdown/multi-select.tsx
  • apps/web/core/components/dropdowns/member/member-options.tsx
  • apps/web/core/components/issues/issue-detail/label/select/label-select.tsx
  • apps/web/core/components/cycles/list/cycle-list-item-action.tsx
  • apps/web/core/components/dropdowns/module/module-options.tsx
  • apps/web/core/components/dropdowns/date-range.tsx
  • packages/editor/src/core/extensions/emoji/components/emojis-list.tsx
🚧 Files skipped from review as they are similar to previous changes (3)
  • apps/web/core/components/pages/editor/content-limit-banner.tsx
  • apps/web/core/components/onboarding/steps/team/root.tsx
  • apps/web/core/components/onboarding/invite-members.tsx
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{ts,tsx,mts,cts}

📄 CodeRabbit inference engine (.github/instructions/typescript.instructions.md)

**/*.{ts,tsx,mts,cts}: Use const type parameters for more precise literal inference in TypeScript 5.0+
Use the satisfies operator to validate types without widening them
Leverage inferred type predicates to reduce the need for explicit is return types in filter/check functions
Use NoInfer<T> utility to block inference for specific type arguments when they should be determined by other arguments
Utilize narrowing in switch(true) blocks for control flow analysis (TypeScript 5.3+)
Rely on narrowing from direct boolean comparisons for type guards
Trust preserved narrowing in closures when variables aren't modified after the check (TypeScript 5.4+)
Use constant indices to narrow object/array properties (TypeScript 5.5+)
Use standard ECMAScript decorators (Stage 3) instead of legacy experimentalDecorators
Use using declarations for explicit resource management with Disposable pattern instead of manual cleanup (TypeScript 5.2+)
Use with { type: "json" } for import attributes; avoid deprecated assert syntax (TypeScript 5.3/5.8+)
Use import type explicitly when importing types to ensure they are erased during compilation, respecting verbatimModuleSyntax flag
Use .ts, .mts, .cts extensions in import type statements (TypeScript 5.2+)
Use import type { Type } from "mod" with { "resolution-mode": "import" } for specific module resolution contexts (TypeScript 5.3+)
Use new iterator methods (map, filter, etc.) if targeting modern environments (TypeScript 5.6+)
Utilize new Set methods like union, intersection, etc., when available (TypeScript 5.5+)
Use Object.groupBy / Map.groupBy standard methods for grouping instead of external libraries (TypeScript 5.4+)
Use Promise.withResolvers() for creating promises with exposed resolve/reject functions (TypeScript 5.7+)
Use copying array methods (toSorted, toSpliced, with) for immutable array operations (TypeScript 5.2+)
Avoid accessing instance fields via super in classes (TypeScript 5....

Files:

  • apps/web/core/components/issues/issue-layouts/quick-add/form/gantt.tsx
  • apps/web/ce/components/issues/header.tsx
  • apps/web/core/components/editor/embeds/mentions/user.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx
  • apps/web/core/components/dropdowns/date.tsx
  • packages/editor/src/core/components/menus/bubble-menu/link-selector.tsx
  • apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx
  • packages/ui/src/popovers/popover-menu.tsx
  • packages/propel/src/charts/bar-chart/root.tsx
  • apps/web/core/components/issues/issue-layouts/list/list-group.tsx
  • packages/ui/src/dropdown/single-select.tsx
  • packages/editor/src/core/extensions/table/plugins/drag-handles/row/drag-handle.tsx
  • apps/web/core/components/dropdowns/cycle/cycle-options.tsx
  • apps/web/core/components/core/image-picker-popover.tsx
  • apps/space/core/components/common/powered-by.tsx
  • packages/editor/src/core/plugins/highlight.ts
  • apps/web/core/components/dropdowns/priority.tsx
  • apps/web/core/components/dropdowns/intake-state/base.tsx
  • packages/editor/src/core/extensions/mentions/mentions-list-dropdown.tsx
  • apps/space/core/components/issues/filters/helpers/dropdown.tsx
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • packages/editor/src/core/extensions/slash-commands/command-menu.tsx
  • packages/ui/src/spinners/circular-spinner.tsx
  • apps/web/core/components/issues/select/base.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/calendar.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/list.tsx
  • apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • packages/editor/src/core/extensions/callout/color-selector.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx
  • apps/web/core/components/profile/overview/state-distribution.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx
  • packages/propel/src/spinners/circular-spinner.tsx
  • packages/editor/src/core/components/menus/block-menu.tsx
  • apps/web/core/components/onboarding/switch-account-dropdown.tsx
  • packages/propel/src/menu/menu.stories.tsx
  • packages/propel/src/card/helper.tsx
  • packages/ui/src/form-fields/input-color-picker.tsx
  • apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx
  • apps/web/ce/components/pages/editor/ai/menu.tsx
  • apps/web/core/components/dropdowns/project/base.tsx
  • packages/propel/src/menu/menu.tsx
  • packages/ui/src/card/helper.tsx
  • apps/web/core/components/dropdowns/state/base.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Enable TypeScript strict mode and ensure all files are fully typed

Files:

  • apps/web/core/components/issues/issue-layouts/quick-add/form/gantt.tsx
  • apps/web/ce/components/issues/header.tsx
  • apps/web/core/components/editor/embeds/mentions/user.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx
  • apps/web/core/components/dropdowns/date.tsx
  • packages/editor/src/core/components/menus/bubble-menu/link-selector.tsx
  • apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx
  • packages/ui/src/popovers/popover-menu.tsx
  • packages/propel/src/charts/bar-chart/root.tsx
  • apps/web/core/components/issues/issue-layouts/list/list-group.tsx
  • packages/ui/src/dropdown/single-select.tsx
  • packages/editor/src/core/extensions/table/plugins/drag-handles/row/drag-handle.tsx
  • apps/web/core/components/dropdowns/cycle/cycle-options.tsx
  • apps/web/core/components/core/image-picker-popover.tsx
  • apps/space/core/components/common/powered-by.tsx
  • packages/editor/src/core/plugins/highlight.ts
  • apps/web/core/components/dropdowns/priority.tsx
  • apps/web/core/components/dropdowns/intake-state/base.tsx
  • packages/editor/src/core/extensions/mentions/mentions-list-dropdown.tsx
  • apps/space/core/components/issues/filters/helpers/dropdown.tsx
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • packages/editor/src/core/extensions/slash-commands/command-menu.tsx
  • packages/ui/src/spinners/circular-spinner.tsx
  • apps/web/core/components/issues/select/base.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/calendar.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/list.tsx
  • apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • packages/editor/src/core/extensions/callout/color-selector.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx
  • apps/web/core/components/profile/overview/state-distribution.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx
  • packages/propel/src/spinners/circular-spinner.tsx
  • packages/editor/src/core/components/menus/block-menu.tsx
  • apps/web/core/components/onboarding/switch-account-dropdown.tsx
  • packages/propel/src/menu/menu.stories.tsx
  • packages/propel/src/card/helper.tsx
  • packages/ui/src/form-fields/input-color-picker.tsx
  • apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx
  • apps/web/ce/components/pages/editor/ai/menu.tsx
  • apps/web/core/components/dropdowns/project/base.tsx
  • packages/propel/src/menu/menu.tsx
  • packages/ui/src/card/helper.tsx
  • apps/web/core/components/dropdowns/state/base.tsx
**/*.{js,jsx,ts,tsx,json,css}

📄 CodeRabbit inference engine (AGENTS.md)

Use Prettier with Tailwind plugin for code formatting, run pnpm fix:format

Files:

  • apps/web/core/components/issues/issue-layouts/quick-add/form/gantt.tsx
  • apps/web/ce/components/issues/header.tsx
  • apps/web/core/components/editor/embeds/mentions/user.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx
  • apps/web/core/components/dropdowns/date.tsx
  • packages/editor/src/core/components/menus/bubble-menu/link-selector.tsx
  • apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx
  • packages/ui/src/popovers/popover-menu.tsx
  • packages/propel/src/charts/bar-chart/root.tsx
  • apps/web/core/components/issues/issue-layouts/list/list-group.tsx
  • packages/ui/src/dropdown/single-select.tsx
  • packages/editor/src/core/extensions/table/plugins/drag-handles/row/drag-handle.tsx
  • apps/web/core/components/dropdowns/cycle/cycle-options.tsx
  • apps/web/core/components/core/image-picker-popover.tsx
  • apps/space/core/components/common/powered-by.tsx
  • packages/editor/src/core/plugins/highlight.ts
  • apps/web/core/components/dropdowns/priority.tsx
  • apps/web/core/components/dropdowns/intake-state/base.tsx
  • packages/editor/src/core/extensions/mentions/mentions-list-dropdown.tsx
  • apps/space/core/components/issues/filters/helpers/dropdown.tsx
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • packages/editor/src/core/extensions/slash-commands/command-menu.tsx
  • packages/ui/src/spinners/circular-spinner.tsx
  • apps/web/core/components/issues/select/base.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/calendar.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/list.tsx
  • apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • packages/editor/src/core/extensions/callout/color-selector.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx
  • packages/editor/src/styles/drag-drop.css
  • apps/web/core/components/profile/overview/state-distribution.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx
  • packages/propel/src/spinners/circular-spinner.tsx
  • packages/editor/src/core/components/menus/block-menu.tsx
  • apps/web/core/components/onboarding/switch-account-dropdown.tsx
  • apps/space/styles/globals.css
  • packages/propel/src/menu/menu.stories.tsx
  • packages/propel/src/card/helper.tsx
  • packages/ui/src/form-fields/input-color-picker.tsx
  • packages/editor/src/styles/editor.css
  • apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx
  • apps/web/ce/components/pages/editor/ai/menu.tsx
  • apps/web/core/components/dropdowns/project/base.tsx
  • packages/propel/src/menu/menu.tsx
  • packages/ui/src/card/helper.tsx
  • apps/web/core/components/dropdowns/state/base.tsx
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{js,jsx,ts,tsx}: Use ESLint with shared config across packages, adhering to max warnings limits per package
Use camelCase for variable and function names, PascalCase for components and types
Use try-catch with proper error types and log errors appropriately

Files:

  • apps/web/core/components/issues/issue-layouts/quick-add/form/gantt.tsx
  • apps/web/ce/components/issues/header.tsx
  • apps/web/core/components/editor/embeds/mentions/user.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx
  • apps/web/core/components/dropdowns/date.tsx
  • packages/editor/src/core/components/menus/bubble-menu/link-selector.tsx
  • apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx
  • packages/ui/src/popovers/popover-menu.tsx
  • packages/propel/src/charts/bar-chart/root.tsx
  • apps/web/core/components/issues/issue-layouts/list/list-group.tsx
  • packages/ui/src/dropdown/single-select.tsx
  • packages/editor/src/core/extensions/table/plugins/drag-handles/row/drag-handle.tsx
  • apps/web/core/components/dropdowns/cycle/cycle-options.tsx
  • apps/web/core/components/core/image-picker-popover.tsx
  • apps/space/core/components/common/powered-by.tsx
  • packages/editor/src/core/plugins/highlight.ts
  • apps/web/core/components/dropdowns/priority.tsx
  • apps/web/core/components/dropdowns/intake-state/base.tsx
  • packages/editor/src/core/extensions/mentions/mentions-list-dropdown.tsx
  • apps/space/core/components/issues/filters/helpers/dropdown.tsx
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • packages/editor/src/core/extensions/slash-commands/command-menu.tsx
  • packages/ui/src/spinners/circular-spinner.tsx
  • apps/web/core/components/issues/select/base.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/calendar.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/list.tsx
  • apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • packages/editor/src/core/extensions/callout/color-selector.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx
  • apps/web/core/components/profile/overview/state-distribution.tsx
  • apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx
  • packages/propel/src/spinners/circular-spinner.tsx
  • packages/editor/src/core/components/menus/block-menu.tsx
  • apps/web/core/components/onboarding/switch-account-dropdown.tsx
  • packages/propel/src/menu/menu.stories.tsx
  • packages/propel/src/card/helper.tsx
  • packages/ui/src/form-fields/input-color-picker.tsx
  • apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx
  • apps/web/ce/components/pages/editor/ai/menu.tsx
  • apps/web/core/components/dropdowns/project/base.tsx
  • packages/propel/src/menu/menu.tsx
  • packages/ui/src/card/helper.tsx
  • apps/web/core/components/dropdowns/state/base.tsx
🧠 Learnings (16)
📓 Common learnings
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use semantic text colors: `text-primary` for main text and headings, `text-secondary` for descriptions, `text-tertiary` for labels and metadata, `text-placeholder` for placeholder text
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use semantic border colors: `border-subtle` for subtle borders and dividers, `border-subtle-1` for slightly more visible borders, `border-strong` for emphasis, `border-strong-1` for very strong borders
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : In rare cases, form elements (inputs, buttons, switches) in modals or surfaces may use one layer level above for visual separation (e.g., `bg-layer-2` with `bg-surface-1`), but this should not be used for content boxes or cards

Applied to files:

  • apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx
  • apps/web/core/components/dropdowns/priority.tsx
  • apps/web/core/components/dropdowns/intake-state/base.tsx
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • apps/web/core/components/issues/select/base.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/calendar.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/list.tsx
  • apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • packages/editor/src/core/extensions/callout/color-selector.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • packages/editor/src/styles/drag-drop.css
  • packages/editor/src/core/components/menus/block-menu.tsx
  • packages/propel/src/card/helper.tsx
  • packages/ui/src/form-fields/input-color-picker.tsx
  • apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx
  • apps/web/ce/components/pages/editor/ai/menu.tsx
  • packages/propel/src/menu/menu.tsx
  • packages/ui/src/card/helper.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Do not use Canvas (`bg-canvas`) for page-level backgrounds, nested containers, cards, modals, dropdowns, sidebars, panels, or anywhere other than the application root

Applied to files:

  • apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx
  • packages/editor/src/styles/drag-drop.css
  • apps/web/ce/components/pages/editor/ai/menu.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use Layer (`bg-layer-1`, `bg-layer-2`, `bg-layer-3`) for nested elements within a surface, including cards, group headers, nested containers, dropdowns, modals, and any element appearing on top of a surface

Applied to files:

  • apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • packages/editor/src/core/components/menus/block-menu.tsx
  • packages/propel/src/card/helper.tsx
  • packages/ui/src/card/helper.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use semantic border colors: `border-subtle` for subtle borders and dividers, `border-subtle-1` for slightly more visible borders, `border-strong` for emphasis, `border-strong-1` for very strong borders

Applied to files:

  • apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx
  • packages/propel/src/charts/bar-chart/root.tsx
  • apps/web/core/components/issues/issue-layouts/list/list-group.tsx
  • packages/editor/src/core/plugins/highlight.ts
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • apps/web/core/components/issues/select/base.tsx
  • apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • packages/editor/src/core/extensions/callout/color-selector.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • packages/editor/src/styles/drag-drop.css
  • apps/web/core/components/profile/overview/state-distribution.tsx
  • packages/propel/src/spinners/circular-spinner.tsx
  • packages/propel/src/card/helper.tsx
  • packages/ui/src/form-fields/input-color-picker.tsx
  • packages/editor/src/styles/editor.css
  • apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx
  • apps/web/core/components/dropdowns/project/base.tsx
  • packages/ui/src/card/helper.tsx
  • apps/web/core/components/dropdowns/state/base.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use `-active` state variants for elements in pressed/active states and `-selected` state variants only when actual selection logic exists

Applied to files:

  • apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx
  • packages/editor/src/core/components/menus/bubble-menu/link-selector.tsx
  • apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx
  • packages/ui/src/dropdown/single-select.tsx
  • apps/space/core/components/common/powered-by.tsx
  • apps/web/core/components/dropdowns/priority.tsx
  • apps/web/core/components/dropdowns/intake-state/base.tsx
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • apps/web/core/components/issues/select/base.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • packages/editor/src/core/extensions/callout/color-selector.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • apps/web/core/components/profile/overview/state-distribution.tsx
  • packages/propel/src/spinners/circular-spinner.tsx
  • apps/web/core/components/onboarding/switch-account-dropdown.tsx
  • packages/propel/src/menu/menu.stories.tsx
  • packages/propel/src/card/helper.tsx
  • apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx
  • apps/web/core/components/dropdowns/project/base.tsx
  • packages/propel/src/menu/menu.tsx
  • packages/ui/src/card/helper.tsx
  • apps/web/core/components/dropdowns/state/base.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use semantic text colors: `text-primary` for main text and headings, `text-secondary` for descriptions, `text-tertiary` for labels and metadata, `text-placeholder` for placeholder text

Applied to files:

  • packages/propel/src/charts/bar-chart/root.tsx
  • packages/editor/src/core/plugins/highlight.ts
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • packages/ui/src/spinners/circular-spinner.tsx
  • apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx
  • packages/editor/src/core/extensions/callout/color-selector.tsx
  • packages/editor/src/styles/drag-drop.css
  • apps/web/core/components/profile/overview/state-distribution.tsx
  • packages/propel/src/spinners/circular-spinner.tsx
  • apps/space/styles/globals.css
  • packages/ui/src/form-fields/input-color-picker.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Never use hover states without the base background class; always apply hover as `hover:bg-layer-X-hover` in addition to `bg-layer-X`, not standalone

Applied to files:

  • apps/web/core/components/issues/issue-layouts/list/list-group.tsx
  • apps/space/core/components/common/powered-by.tsx
  • apps/web/core/components/dropdowns/intake-state/base.tsx
  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • apps/web/core/components/issues/select/base.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • packages/editor/src/styles/drag-drop.css
  • apps/web/core/components/profile/overview/state-distribution.tsx
  • packages/propel/src/card/helper.tsx
  • apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx
  • apps/web/core/components/dropdowns/project/base.tsx
  • packages/ui/src/card/helper.tsx
  • apps/web/core/components/dropdowns/state/base.tsx
📚 Learning: 2025-11-25T10:18:05.172Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: .github/instructions/typescript.instructions.md:0-0
Timestamp: 2025-11-25T10:18:05.172Z
Learning: Applies to **/*.{ts,tsx,mts,cts} : Treat legacy `experimentalDecorators`-style behavior as deprecated in favor of standard TC39-compliant decorators

Applied to files:

  • packages/editor/src/core/plugins/highlight.ts
📚 Learning: 2025-11-25T10:18:05.172Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: .github/instructions/typescript.instructions.md:0-0
Timestamp: 2025-11-25T10:18:05.172Z
Learning: Applies to **/*.{ts,tsx,mts,cts} : Use standard ECMAScript decorators (Stage 3) instead of legacy `experimentalDecorators`

Applied to files:

  • packages/editor/src/core/plugins/highlight.ts
📚 Learning: 2025-11-25T10:18:05.172Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: .github/instructions/typescript.instructions.md:0-0
Timestamp: 2025-11-25T10:18:05.172Z
Learning: Prioritize using modern features and best practices introduced in TypeScript versions 5.0 through 5.8

Applied to files:

  • apps/web/core/components/dropdowns/priority.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*[Ss]idebar* **/*[Nn]av* **/*[Mm]enu* : In sidebar layouts, use transparent backgrounds for menu items with `hover:bg-layer-1-hover` state, rather than applying a base background color

Applied to files:

  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx
  • packages/editor/src/core/components/menus/block-menu.tsx
  • packages/propel/src/menu/menu.stories.tsx
  • packages/propel/src/menu/menu.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Hover states must always match the base background layer: use `bg-layer-X hover:bg-layer-X-hover` pattern, never mix hover states between different layers

Applied to files:

  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • packages/editor/src/styles/drag-drop.css
  • apps/web/core/components/profile/overview/state-distribution.tsx
  • packages/propel/src/card/helper.tsx
  • packages/ui/src/card/helper.tsx
  • apps/web/core/components/dropdowns/state/base.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Use Surface (`bg-surface-1`, `bg-surface-2`, `bg-surface-3`) for top-level containers that sit directly on the canvas and serve as main content areas, page sections, or primary containers

Applied to files:

  • packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • packages/editor/src/styles/drag-drop.css
  • packages/editor/src/core/components/menus/block-menu.tsx
  • packages/propel/src/card/helper.tsx
  • packages/ui/src/card/helper.tsx
📚 Learning: 2025-10-10T13:25:14.810Z
Learnt from: gakshita
Repo: makeplane/plane PR: 7949
File: apps/web/core/components/issues/issue-modal/form.tsx:183-189
Timestamp: 2025-10-10T13:25:14.810Z
Learning: In `apps/web/core/components/issues/issue-modal/form.tsx`, the form reset effect uses a `dataResetProperties` dependency array prop (default: []) to give parent components explicit control over when the form resets. Do not suggest adding the `data` prop itself to the dependency array, as this would cause unwanted resets on every render when the data object reference changes, disrupting user input. The current pattern is intentional and allows the parent to trigger resets only when specific conditions are met.

Applied to files:

  • apps/web/core/components/issues/issue-layouts/quick-add/form/calendar.tsx
  • apps/web/core/components/issues/issue-layouts/quick-add/form/list.tsx
  • apps/web/core/components/issues/issue-modal/form.tsx
📚 Learning: 2025-12-12T15:20:52.636Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-12T15:20:52.636Z
Learning: Applies to packages/tailwind-config/**/*.{tsx,ts,jsx,js} : Match layer numbers to surface numbers: `bg-surface-1` uses `bg-layer-1`, `bg-surface-2` uses `bg-layer-2`, `bg-surface-3` uses `bg-layer-3`

Applied to files:

  • apps/web/core/components/base-layouts/layout-switcher.tsx
  • packages/editor/src/styles/drag-drop.css
🧬 Code graph analysis (2)
packages/ui/src/spinners/circular-spinner.tsx (1)
packages/ui/src/utils/classname.tsx (1)
  • cn (1-1)
packages/propel/src/card/helper.tsx (2)
packages/propel/src/card/card.tsx (1)
  • ECardVariant (34-34)
packages/ui/src/card/card.tsx (1)
  • ECardVariant (34-34)
🔇 Additional comments (47)
apps/space/core/components/common/powered-by.tsx (1)

18-18: LGTM! Correct design system token migration.

The shadow class has been properly updated from the deprecated shadow-custom-shadow-2xs to the new design system token shadow-raised-100. All other styling classes (border-subtle, bg-surface-1, text-primary) correctly use semantic design tokens.

apps/web/core/components/issues/issue-layouts/list/list-group.tsx (1)

255-255: LGTM! Design system token correctly applied.

The migration from border-custom-error-200 to border-danger-subtle appropriately maintains the semantic meaning while adopting the new design system tokens. The subtle danger border provides clear visual feedback when drop is disabled during drag operations.

packages/ui/src/form-fields/input-color-picker.tsx (1)

91-91: LGTM! Design token migration applied correctly.

The replacement of shadow-custom-shadow-rg with shadow-raised-200 aligns with the PR objective of standardizing design system tokens. The change is purely presentational and does not affect component functionality.

packages/editor/src/core/extensions/callout/color-selector.tsx (1)

50-50: LGTM! Shadow token successfully migrated.

The replacement of the old shadow class with shadow-raised-200 is appropriate for this dropdown section and aligns perfectly with the PR's design system token standardization goal.

packages/editor/src/styles/editor.css (1)

79-79: LGTM! Token replacement aligns with design system migration.

The change from the old rgba(var(--color-primary-100)) to the semantic var(--border-color-accent-strong) token is correct and appropriate for a selected node outline. The token is already consistently used elsewhere in the file (lines 124, 130) for similar accent/emphasis purposes.

apps/web/core/components/issues/issue-layouts/quick-add/form/gantt.tsx (1)

11-11: LGTM! Shadow token updated correctly.

The shadow class replacement from shadow-custom-shadow-sm to shadow-raised-200 aligns with the design system migration objectives. This is a presentation-only change with no functional impact.

apps/web/core/components/issues/issue-layouts/quick-add/form/calendar.tsx (1)

17-17: LGTM! Shadow token updated correctly.

The shadow class replacement from md:shadow-custom-shadow-2xs to md:shadow-raised-100 correctly applies the new design system tokens. The more subtle elevation (100) is appropriate for the calendar quick-add form context.

apps/web/core/components/issues/issue-layouts/quick-add/form/list.tsx (1)

10-10: LGTM! Shadow token updated correctly.

The shadow class replacement from shadow-custom-shadow-sm to shadow-raised-200 is correct and consistent with the design system migration. This presentation-only change maintains visual consistency across quick-add forms.

apps/web/core/components/issues/issue-layouts/quick-add/form/kanban.tsx (1)

10-10: LGTM! Shadow token updated correctly.

The shadow class replacement from shadow-custom-shadow-sm to shadow-raised-200 correctly implements the new design system tokens. This is a presentation-only change with no functional impact.

apps/web/core/components/issues/issue-modal/form.tsx (1)

488-488: LGTM! Shadow token updated correctly.

The shadow class replacement from shadow-custom-shadow-xs to shadow-raised-100 in the conditional styling correctly applies the new design system tokens. The subtle elevation is appropriate for the active properties state.

apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx (1)

11-11: LGTM! Shadow token migrated correctly.

The replacement of shadow-custom-shadow-2xs with shadow-raised-100 aligns with the PR's objective to standardize design system tokens. This presentation-only change is consistent with the broader migration pattern across the codebase.

apps/web/ce/components/issues/header.tsx (1)

96-96: Approved. Consistent with parent element styling and design system.

The change from fill-custom-primary-100 to fill-accent-primary aligns the Circle icon with the parent anchor's color scheme, which uses text-accent-primary and bg-accent-primary/10. The new token is properly configured in the Tailwind design system and follows semantic color conventions.

packages/editor/src/core/components/menus/bubble-menu/link-selector.tsx (1)

66-66: Shadow token migration looks good.

The update from shadow-custom-shadow-rg to shadow-raised-200 correctly aligns with the design system token migration objective.

packages/editor/src/core/components/menus/bubble-menu/color-selector.tsx (1)

61-61: Shadow token migration looks good.

The update from shadow-custom-shadow-rg to shadow-raised-200 correctly aligns with the design system token migration objective.

packages/editor/src/core/plugins/highlight.ts (1)

21-21: LGTM! Design token migration for node highlighting.

The replacement of bg-custom-primary-100/20 with bg-accent-primary/20 aligns with the PR's objective to standardize on the new design system tokens. The opacity modifier is correctly preserved. The bg-accent-primary token is defined in the design system and is consistently used throughout the codebase for similar UI highlighting purposes.

apps/web/core/components/base-layouts/layout-switcher.tsx (1)

32-32: LGTM! Shadow token migration aligns with design system update.

The replacement of shadow-custom-shadow-2xs with shadow-raised-100 correctly migrates to the new design system tokens as intended by this PR.

packages/propel/src/spinners/circular-spinner.tsx (1)

28-28: Token migration is valid.

The fill-accent-primary token is properly defined in the Tailwind configuration and correctly applied at line 28.

packages/ui/src/spinners/circular-spinner.tsx (1)

18-18: Token migration to fill-accent-primary is properly defined.

The update correctly uses the semantic color token, which is defined in the Tailwind configuration as var(--text-color-accent-primary) and resolves to the brand default color in both light and dark modes.

apps/web/core/components/core/image-picker-popover.tsx (1)

193-193: LGTM! Shadow token updated correctly.

The shadow class update from shadow-custom-shadow-sm to shadow-raised-200 aligns with the PR's design system migration objective. This is a presentation-only change with no behavioral impact.

packages/editor/src/core/extensions/mentions/mentions-list-dropdown.tsx (1)

127-127: LGTM! Shadow token migration applied correctly.

The shadow class replacement is consistent with the new design system tokens being adopted across the codebase.

apps/web/ce/components/pages/editor/ai/menu.tsx (1)

141-141: LGTM! Shadow token updated for design system consistency.

apps/web/core/components/dropdowns/intake-state/base.tsx (1)

214-214: LGTM! Shadow token standardization applied.

apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx (1)

144-144: LGTM! Shadow token updated correctly.

packages/ui/src/popovers/popover-menu.tsx (1)

32-32: LGTM! Shadow token migrated to new design system.

packages/editor/src/core/extensions/table/plugins/drag-handles/row/drag-handle.tsx (1)

207-207: LGTM! Shadow token replacement applied correctly.

apps/space/core/components/issues/filters/helpers/dropdown.tsx (1)

49-49: LGTM! Shadow token updated for design system consistency.

apps/web/core/components/issues/select/base.tsx (1)

191-191: LGTM!

The shadow token migration from shadow-custom-shadow-rg to shadow-raised-200 is correct and consistent with the design system update across other dropdown components in this PR.

apps/web/core/components/editor/embeds/mentions/user.tsx (1)

53-53: LGTM!

The shadow token migration from shadow-custom-shadow-rg to shadow-raised-200 is consistent with the design system update. The popover styling follows proper token conventions.

apps/web/core/components/onboarding/switch-account-dropdown.tsx (1)

58-58: LGTM!

The shadow token migration from shadow-custom-shadow-rg to shadow-raised-200 is consistent with the design system update applied to other dropdown menus in this PR.

packages/ui/src/dropdown/single-select.tsx (1)

140-140: LGTM!

The shadow token migration from shadow-custom-shadow-rg to shadow-raised-200 is correct. As this is a shared UI component, the design system update will consistently apply to all dropdown consumers.

apps/admin/app/(all)/(dashboard)/sidebar-help-section.tsx (1)

101-101: LGTM!

The shadow token migration from shadow-custom-shadow-xs to shadow-raised-100 is correct. Using the lighter raised-100 variant (instead of raised-200 used elsewhere) appropriately preserves the original subtle shadow styling for this smaller help dropdown.

apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx (1)

106-113: LGTM!

The shadow token migration from shadow-custom-shadow-rg to shadow-raised-200 for the dragging state is consistent with the design system standardization across this PR.

apps/web/core/components/dropdowns/date.tsx (1)

174-179: LGTM!

The shadow token migration to shadow-raised-200 is consistent with the design system standardization.

apps/web/core/components/dropdowns/cycle/cycle-options.tsx (1)

123-129: LGTM!

The shadow token migration to shadow-raised-200 maintains consistency with the design system updates across the codebase.

packages/editor/src/core/components/menus/block-menu.tsx (1)

218-222: LGTM!

The shadow token migration to shadow-raised-200 is consistent with the design system standardization. The component correctly uses bg-surface-1 for the menu container and hover:bg-layer-1 for menu item hover states, aligning with the design system guidelines. Based on learnings.

apps/web/core/components/dropdowns/priority.tsx (1)

450-450: LGTM — Shadow token updated correctly.

The shadow class migration from shadow-custom-shadow-rg to shadow-raised-200 aligns with the design system standardization objective.

apps/web/core/components/dropdowns/state/base.tsx (1)

216-216: LGTM — Consistent shadow token migration.

packages/editor/src/core/extensions/slash-commands/command-menu.tsx (1)

134-134: LGTM — Shadow token standardized.

apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx (1)

62-62: LGTM — Popover shadow token updated.

apps/web/core/components/dropdowns/project/base.tsx (1)

235-235: LGTM — Shadow token migration applied.

packages/propel/src/menu/menu.stories.tsx (1)

164-164: LGTM! Storybook examples updated consistently.

The shadow token migration in both SubMenu instances (WithSubmenu and ComplexMenu stories) is consistent with the main menu component. This ensures the documentation accurately reflects the updated design system.

Also applies to: 223-223

packages/propel/src/menu/menu.tsx (1)

183-183: Confirm shadow-raised-200 is the correct token for menu dropdowns in Plane design system.

The shadow token migration from shadow-custom-shadow-rg to shadow-raised-200 appears reasonable for a dropdown menu component. However, verification requires confirmation that shadow-raised-200 is properly defined in Plane's design token system and is the intended elevation level for popup menus. Please check the design token documentation or the Tailwind configuration to ensure this token aligns with the design system's elevation hierarchy.

packages/ui/src/card/helper.tsx (1)

24-24: Consistent shadow token migration across packages.

The change mirrors the identical update in packages/propel/src/card/helper.tsx, ensuring consistent visual treatment of card shadows across the propel and ui packages.

packages/propel/src/card/helper.tsx (1)

24-24: Shadow token migration cannot be verified without repository access.

The replacement of shadow-custom-shadow-4xl with shadow-raised-200 requires confirmation that the shadow-raised-200 token is properly defined in the Tailwind configuration. Manual verification is needed to:

  1. Confirm shadow-raised-200 exists in the project's Tailwind shadow token definitions
  2. Verify the visual appearance matches the design intent
  3. Ensure no other files reference the removed shadow-custom-shadow-4xl token
packages/propel/src/charts/bar-chart/root.tsx (1)

130-130: This syntax is valid for Tailwind CSS v4.

The --alpha() function is a documented Tailwind CSS v4 build-time function for adjusting color opacity, not a non-standard CSS syntax. The syntax --alpha(var(--border-color-subtle) / 80%) correctly uses the --alpha() function to adjust opacity of a color. The --border-color-subtle token is properly defined in the design system and will render correctly. No changes needed.

Likely an incorrect or invalid review comment.

apps/web/core/components/profile/overview/state-distribution.tsx (2)

62-63: LGTM - correct migration to design system token.

The replacement of rgb(var(--color-primary-100)) with var(--background-color-accent-primary) correctly migrates to the new design system tokens as intended by this PR.


66-66: No action needed. Line 74 safely accesses STATE_GROUPS[group.state_group].label without optional chaining because group.state_group is typed as TStateGroups (a discriminated union of specific string values), and STATE_GROUPS is exhaustively defined for all TStateGroups values via its mapped type definition [key in TStateGroups]. The lookup cannot return undefined. The optional chaining on lines 65 and 72 is unnecessarily defensive, not indicative of a missing guard on line 74.

@pushya22 pushya22 merged commit 1f06b67 into preview Dec 17, 2025
9 checks passed
@pushya22 pushya22 deleted the chore/replace-css-vars branch December 17, 2025 10:58
KooshaPari added a commit to KooshaPari/Planify that referenced this pull request Mar 29, 2026
)

* [PAI-963] feat: enhance CustomSelect component with context for dropdown management (makeplane#8202)

* feat: enhance CustomSelect component with context for dropdown management

* refactor: streamline CustomSelect component structure and improve dropdown options rendering

* [WEB-5603] feat: enhance workspace settings layout and members page (makeplane#8266)

* feat: enhance workspace settings layout and members page with new components

* refactor: update workspace settings layout and members page to use default exports

* refactor: settings layout import changes

* refactor: simplify workspaceSlug usage in settings layout

* [WEB-5592] chore: add static files update settings for static files support (makeplane#8251)

* chore: add static files collection and update settings for static files support

* chore: add WhiteNoise middleware for static file handling

* chore(deps): upgrade WhiteNoise to version 6.11.0 and add static file reverse proxy in Caddyfile

* [WEB-5256]chore: quick actions refactor (makeplane#8019)

* chore: quick actions refactor

* chore: lint fix

* chore: unified factory for actions

* chore: lint fix

* * chore: removed redundant files
* chore: updated imports

* chore: updated interfaces to types

* chore: updated undefined handling

* [WIKI-829] fix: add option to only show placeholder on empty editor (makeplane#8232)

* feat: add placeholderOnEmpty functionality to editor components

* Update packages/editor/src/core/extensions/placeholder.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor: rename placeholderOnEmpty to showPlaceholderOnEmpty across editor components

* chore : make optional

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* [WIKI-830] fix: copy clipboard functionality in the editor (makeplane#8229)

* feat: enhance clipboard functionality for markdown and HTML content

* fix: improve error handling and state management in CustomImageNodeView component

* fix: correct asset retrieval query by removing workspace filter in DuplicateAssetEndpoint

* fix: update meta tag creation in PasteAssetPlugin for clipboard HTML content

* feat: implement copyMarkdownToClipboard utility for enhanced clipboard functionality

* refactor: replace copyMarkdownToClipboard utility with copyTextToClipboard for simplified clipboard operations

* refactor: streamline clipboard operations by replacing copyTextToClipboard with copyMarkdownToClipboard in editor components

* refactor: simplify PasteAssetPlugin by removing unnecessary meta tag handling and streamlining HTML processing

* feat: implement asset duplication processing on paste for enhanced clipboard functionality

* chore:remove async from copy markdown method

* chore: add paste html

* remove:prevent default

* refactor: remove hasChanges from processAssetDuplication return type for simplified asset processing

* fix: format options-dropdown.tsx

* feat: add timezone selection to workspace settings (makeplane#8248)

* feat: add timezone selection to workspace onboarding, creation and settings

* refactor: remove timezone selection from workspace creation and onboarding forms

* [WEB-5285] feat: enhance ChangeTrackerMixin to capture changed fields on save (makeplane#8270)

- Added an override for the save method in ChangeTrackerMixin to store changed fields before resetting tracking.
- Implemented a new method, _reset_tracked_fields, to ensure subsequent saves detect changes relative to the last saved state.
- Updated IssueComment to utilize _changes_on_save for determining changed fields, improving accuracy in tracking modifications.

* [WEB-5585]chore: timeline chart refactor (makeplane#8246)

* chore: timeline chart refactor

* fix: format

* [WEB-5575]feat: enhance APITokenLogMiddleware to support logging to MongoDB (makeplane#8241)

* feat: enhance APITokenLogMiddleware to support logging to MongoDB

- Added functionality to log external API requests to MongoDB, with a fallback to PostgreSQL if MongoDB is unavailable.
- Implemented error handling for MongoDB connection and logging operations.
- Introduced additional fields for MongoDB logs, including timestamps and user identifiers.
- Refactored request logging logic to streamline the process and improve maintainability.

* fix: improve MongoDB availability checks in APITokenLogMiddleware

- Enhanced the logic for determining MongoDB availability by checking if the collection is not None.
- Added a check for MongoDB configuration before attempting to retrieve the collection.
- Updated error handling to ensure the middleware correctly reflects the state of MongoDB connectivity.

* feat: implement logging functionality in logger_task for API activity

- Added a new logger_task module to handle logging of API activity to MongoDB and PostgreSQL.
- Introduced functions for safely decoding request/response bodies and processing logs based on MongoDB availability.
- Refactored APITokenLogMiddleware to utilize the new logging functions, improving code organization and maintainability.

* refactor: simplify MongoDB logging in logger_task and middleware

- Removed direct dependency on MongoDB collection in log_to_mongo function, now retrieving it internally.
- Updated process_logs to check MongoDB configuration before logging, enhancing error handling.
- Cleaned up logger.py by removing unused imports related to MongoDB.

* feat: add Celery task decorator to process_logs function in logger_task

- Introduced the @shared_task decorator to the process_logs function, enabling asynchronous processing of log data.
- Updated function signature to include a return type of None for clarity.

* [WEB-5609] fix: extended sidebar item pin/unpin makeplane#8287

* [WEB-5608] chore: Hide "Pro" Features in Community Edition (makeplane#8288)

* chore: Hide "Pro" Features in Community Edition

* refactor: remove time tracking feature and simplify project features list

* chore: moving star us button to the top navigation (makeplane#8289)

* chore: optimize turborepo (makeplane#8286)

* [WIKI-844] fix: realtime sync post vite migration with title editor sync and indexed db access (makeplane#8294)

* fix: robust way to handle socket connection and read from indexeddb cache when reqd

* fix: realtime sync working with failure handling

* fix: title editor added

* merge preview into fix/realtime-sync

* check

* page renderer props

* lint errors

* lint errors

* lint errors

* sanitize html

* sanitize html

* format fix

* fix lint

* [WEB-4440] fix: duplicate sequence when creating multiple workitems in rapid succession (makeplane#8298)

- Replace advisory lock with transaction-level lock in Issue model save method
- Updated the save method in the Issue model to use a transaction-level advisory lock for better concurrency control.
- Simplified the locking mechanism by removing the explicit unlock step, as the lock is automatically released at the end of the transaction.
- Maintained existing functionality for sequence and sort order management while improving code clarity.

* chore: format files in API server (makeplane#8292)

* chore: fix ruff checks (makeplane#8305)

* fix: editor sync changes (makeplane#8306)

* chore: upate function declarations

* chore: formatted files

* chore: fix/check tooling improvements with turbo (makeplane#8304)

* fix: broken lock file

* chore: add Plane sync label to github templates makeplane#8303

Co-authored-by: Pushya Mitra Thiruvooru <pushya@Pushyas-MacBook-Pro.local>

* [WEB-5624] chore: added webhook translations makeplane#8312

* chore(deps): upgrade next themes package

* [WEB-5654]fix: custom select selection and dropdown close makeplane#8324

* [WEB-5124] chore: intake work item toast enhancements (makeplane#8329)

* [WEB-5647] chore: list layout work item identifier enhancements (makeplane#8326)

* chore: file formating

* [WEB-5650] feat: Enable Gitea OAuth configuration  (makeplane#8325)

* feat: implement OAuth configuration helper and integrate into auth forms

* fix: ensure OAuth providers are disabled by default if not configured

* [WEB-5602] feat: new design system (makeplane#8220)

* chore: init tailwind v4

* chore: update all configs

* chore: add source to parse monorepo packages

* chore: combine all css files

* feat: added extended colors

* chore: update typography

* chore: update extended color var names

* refactor: remove initial spacing variable and update dark mode selector

* chore: update css files

* chore: update animations

* chore: remove spacing tokens

* fix: external css files

* chore: update tailwind-merge version

* chore: update font family

* chore: added brief agents.md and story for new design system

* chore: enhance design system documentation with rare exceptions for visual separation

* chore: add fontsource package for typography

* chore: material symbols font added

* chore: update shadow default

* chore: add stroke and outline theme vars

* chore: update ring and fill colors

* chore: overwrite tailwind typography tokens

* chore: add high contrast mode tokens

* chore: update scrollbar colors

* chore: backward compatibility for buttons and placeholders

* chore: add priority colors

* chore: update urgent priority color

* chore: update plan colors

* chore: add missing utility class

* chore: update height and padding classes

* chore: update label colors

* chore: add missing utlity

* chore: add typography plugin to space app

* chore: replace existing classNames with new design system tokens makeplane#8244 (makeplane#8278)

* chore: update border colors

* chore: update all borders

* chore: update text colors

* chore: update css variables

* chore: update font sizes and weights

* chore: update bg colors

* chore: sync changes

* fix: uncomment spacing-1200 variable in variables.css

* chore: update primary colors

* refactor: updated border to border-subtle

* refactor: update various components and improve UI consistency across the application

* updated classnames

* updated classnames

* refactor: update color-related class names to use new design system variables for consistency

* chore: default automations

* chore: update text sizes

* chore: home and power k

* chore: home and power k

* chore: replace ui package button components

* chore: update text sizes

* chore: updated issue identifier (makeplane#8275)

* refactor: top navigation and sidebar design token (makeplane#8276)

* chore: update all button components (makeplane#8277)

* chore: new button component

* chore: update existing buttons

* chore: overwrite tailwind typography tokens

* fix: twMerge config + fixed cn instances

* refactor: toast design token updated (makeplane#8279)

* chore: update existing buttons

* chore: tooltip design token updatged (makeplane#8280)

* chore: moved cn utility to propel (makeplane#8281)

* chore: update space app UI (makeplane#8285)

* chore; update space app filters component

* fix: button whitespace wrap

* chore: space app votes

* chore: update dropdown components

* refactor: auth, onboarding, sidebar, and common component design token migration (makeplane#8291)

* chore: checkbox component design token updated

* chore: indicator and oauth component design token updated

* chore: sidebar design token updated

* chore: auth and onboarding design token updated

* chore: update divider color

* style: update background colors and hover effects across list components

* fix: tailwind merge

* refactor: toggle switch design token migration and header utility classname added (makeplane#8295)

* chore: toggle component design token updated

* chore: h-header utility class added

* chore: updated color tokens for work item detail page (makeplane#8296)

* chore: update react-day-picker UI

* refactor: update button sizes and styles in filters components

* refactor: breadcrumbs design token updated (makeplane#8297)

* chore: update priority icon colors

* refactor: updated layout variables

* chore: update plan card primary CTA

* Chore update editor design system (makeplane#8299)

* refactor: update styles for callout, color selector, logo selector, and image uploader

* refactor:fix image

* chore: update settings UI

* chore: updated notifications color and size tokens (makeplane#8302)

* chore: update sm button border radius

* fix: logo renderer

* chore: icon button component

* chore: remove deprecated classes

* chore: remove deprecated classes

* chore: update editor list spacing

* fix: icon button size

* chore: improvements (makeplane#8309)

* chore: update cycles and modules pages

* refactor: update background styles across various components to use new design system colors

* fix: button type errors

* chore: update modals design system (makeplane#8310)

* refactor: callout bg

* refactor: code  bg

* refactor: modal size and variant

---------

Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>

* chore: update next-themes

* design: update billing and plans component styles and remove unused utility functions (makeplane#8313)

* refactor: empty state design token migration and improvements (makeplane#8315)

* fix: profile page

* refactor: tabs design token updated (makeplane#8316)

* chore: updated buttons and tokens for work items (makeplane#8317)

* fix: adjust trial button spacing in checkout modal

* chore: update add button hover state

* fix: type error (makeplane#8318)

* fix: type error

* chore: code refactor

* refactor: update button sizes and background styles in rich filters components

* refactor: update editor bg

* refactor: enhance Gantt chart sidebar functionality and styling

- Removed unused  prop from .
- Updated  to include new props for better block management and scrolling behavior.
- Improved auto-scroll functionality for Gantt chart items.
- Adjusted styles in  component for consistent design.

* regression: gantt design

* chore: new badge component

* fix: favorite star

* chore: update backgroung, typography and button sizes across workspace settings general and members pages

* fix: header button sizes

* fix: emoji icon logo (makeplane#8323)

* more fixes

* chore: update settings sidebar

* refactor: avatar component

* chore: updated work item detail sidebar (makeplane#8327)

* refactor: update link preview

* fix: work item property dropdowns

* fix: dropdown buttons border radius

* chore: update power k translation

* chore: updated profile activity design (makeplane#8328)

* chore: update settings pages

* chore: update work item sidebar alignments (makeplane#8330)

* refactor: admin design system

* chore: update page header

---------

Co-authored-by: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Co-authored-by: VipinDevelops <vipinchaudhary1809@gmail.com>
Co-authored-by: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: gakshita <akshitagoyal1516@gmail.com>
Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>

* fix: formatting

* reexport types

* fix: lint error

---------

Co-authored-by: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Co-authored-by: VipinDevelops <vipinchaudhary1809@gmail.com>
Co-authored-by: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: gakshita <akshitagoyal1516@gmail.com>
Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>

* [WEB-5668] fix: add fetchWorkspaceLevelProjectEntities method and update project-related fetch keys (makeplane#8347)

* [SILO-783] feat: added porters and new serializer based exporter (makeplane#8335)

* [WEB-5699] refactor: update styling and classnames of charts according to new design system (makeplane#8345)

* refactor: update styling and class names according to new design system in charts

* refactor: clean up

* feat: custom theming enhancements (makeplane#8342)

* [WEB-5671] chore: settings workspace members enhancements makeplane#8346

* [WEB-5666] chore: set project timezone same as workspace timezone in project (makeplane#8340)

* [WEB-5614] fix: new design system consistency (makeplane#8351)

* chore: tooltip enhancements

* chore: project card enhancements

* chore: work item card enhancements

* chore: update component styles and class names for consistency across the application

---------

Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>

* [WEB-5708] regression: remove material icon instances from the Space app (makeplane#8353)

* chore: sync changes (makeplane#8343)

* [WEB-5614] chore: work item detail and list layout enhancements makeplane#8355

* regression: replace old css vars with the new design system tokens (makeplane#8354)

* chore: replace old css vars

* fix: replace shadow and primary colors

* chore: remove hardcoded colors

* [WEB-5614] chore: custom theme on colour improvement makeplane#8356

* [WEB-5732] style: update work item detail properties UI (makeplane#8357)

* [WEB-5730] fix: user mention colors makeplane#8358

* [WEB-5614] fix: empty state and padding token fixes (makeplane#8359)

* [WEB-5614] chore: update component styles and class names for consistency across projects makeplane#8360

* [WEB-5614] chore: logo and icon enhancements makeplane#8362

* fix: work item property icon renderer (makeplane#8363)

* [WEB-5614] fix: sidebar and label dropdown makeplane#8364

* fix: material icons font file (makeplane#8366)

* [WEB-5614] chore: lucide icon code refactor makeplane#8365

* fix: nested context menu UI (makeplane#8367)

* [WEB-5708] style: space app kanban card UI (makeplane#8368)

* [WEB-5742] fix: input field background makeplane#8369

* [WEB-5641] chore: sub work item quick menu padding makeplane#8370

* chore: replace old classNames (makeplane#8372)

* chore: update component styles and class names for consistency across the application (makeplane#8376)

* [WEB-5660] [WEB-5737] fix: cycle and module sidebar makeplane#8375

* [WEB-5676] style: gantt column outline makeplane#8374

* [WEB-5614] chore: platform design token enhancements (makeplane#8373)

* [WEB-5649] [WEB-5675] fix: local font files makeplane#8377

* [WEB-5614] chore: primitive token updated (makeplane#8378)

* fix: tooltip imports (makeplane#8379)

* [WEB-5614] chore: platform header and breadcrumb enhancements (makeplane#8383)

* [WEB-5652] fix: kanban quick add UI makeplane#8382

* [WEB-5726] fix: showing an empty state on deleted work item link makeplane#8381

* fix: space app default background (makeplane#8384)

* [WIKI-849] feat: debounce for mention search (makeplane#8380)

* fix: font imports (makeplane#8387)

* chore: platform layout enhancements (makeplane#8386)

* fix: image uploader bg in light mode (makeplane#8385)

* [WEB-5614] refactor: update styling and structure across various components (makeplane#8388)

* fix: input fields bg (makeplane#8389)

* fix: custom z-index classNames (makeplane#8395)

* [WEB-5454] fix: optimize date validation logic in CycleCreateUpdateModal makeplane#8394

* [WEB-5614] chore: work item detail comment and sidebar enhancements (makeplane#8397)

* [WEB-5675] chore: implement `fontsource` as the fonts library (makeplane#8398)

* [WEB-5762] fix: workitem detail sidebar properties design consistency (makeplane#8400)

* [WEB-5761]fix: intake spacing issue (makeplane#8399)

* [WEB-5614] chore: sidebar enhancement makeplane#8401

* [WEB-5768]chore: updated comment UI makeplane#8402

* [WEB-5614] chore: package and layout enhancements makeplane#8403

* chore: update storybook dependency

* [WEB-5657] feat: add synchronization configuration for multiple providers in authentication adapter  (makeplane#8336)

* feat: add sync functionality for OAuth providers

- Implemented `check_sync_enabled` method to verify if sync is enabled for Google, GitHub, GitLab, and Gitea.
- Added `sync_user_data` method to update user details, including first name, last name, display name, and avatar.
- Updated configuration variables to include sync options for each provider.
- Integrated sync check into the login/signup process.

* feat: add sync toggle for OAuth providers in configuration forms

* fix: remove default value for sync options in OAuth configuration forms

* chore: delete old avatar and upload a new one

* chore: update class method

* chore: add email nullable

* refactor: streamline sync check for multiple providers and improve avatar deletion logic

* fix: ensure ENABLE_SYNC configurations default to "0" for Gitea, Github, Gitlab, and Google forms

* fix: simplify toggle switch value handling in ControllerSwitch component

---------

Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>

* [WEB-5657] chore: synchronization configuration for multiple providers in authentication adapter makeplane#8409

* [WEB-5746]fix: workspace member modal z-index makeplane#8410

* [WEB-5773] fix: editor image full screen modal (makeplane#8413)

* [WEB-5774] fix: editor nodes background colors (makeplane#8416)

* [WEB-5776]chore: updated design system for alert modal makeplane#8415

* [WEB-5775] fix: mentions search on empty query makeplane#8417

* [WEB-5662][WEB-5770] fix: alignment of cycles in sidebar and layout selection dropdown button (makeplane#8414)

* fix: alpha colors (makeplane#8418)

* [WEB-5784] fix: truncation issue in wi properties (makeplane#8422)

* fix: update background surface 2 variables in tailwind config

* fix: improve layout and truncation handling in issue link and list items

* docs: update readme with react router badge (makeplane#8424)

Updated feature list and modified the local development section.

* [WEB-5788] fix: board layout group by icon makeplane#8426

* [WEB-5792] regression: editor font family makeplane#8427

* [WIKI-740] refactor: editor table performance (makeplane#8411)

* [WEB-5786] fix: updated font size for dates at Kanban card makeplane#8429

* [WEB-5772] fix: theme switch flicker (makeplane#8428)

* [WEB-5784] fix: truncation of links in work items (makeplane#8430)

* [WEB-5772] chore: theme switcher and editor colors enhancements (makeplane#8436)

* [WEB-5772] chore: theme switcher code refactor makeplane#8438

* chore: workspace events (makeplane#8439)

* chore: adding invite and joined events

* chore: adding workspace create and update events

* [WEB-5798] refactor: web and admin auth related components and update admin designs (makeplane#8431)

* refactor: web and admin auth related components and update admin designs.

* fix: format

* [WEB-5581] fix: resolve logo spinner hydration and theme loading issues (makeplane#8450)

- Fix hydration mismatch by lazy loading components that depend on theme
- Ensure LogoSpinner renders with correct theme on initial load

* [WEB-5791] fix: broken favicon in links (makeplane#8396)

* fix: using base url of a redirect url

* chore: internal networks check for the final_url

* fix: none final_url

* fix: exception handling

* fix: exception handling

* chore: remove unused imports

* refactor: moved ip address check logic into separate function

* fix: ValueError logic

* [WEB-5667] fix: estimate value display in analytics makeplane#8448

* [WEB-5779] fix: handle loading state while fetching project cover image (makeplane#8419)

* refactor: replace cover image handling with CoverImage component across profile and project forms

* fix: extend CoverImage component to accept additional img props

* Update apps/web/core/components/common/cover-image.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: handle undefined cover image URL in ProfileSidebar component

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* [WEB-5782]chore: migrated modals to @plane/ui (makeplane#8420)

* chore: migrated modal to @plane/ui

* chore: fixed spacings

* [WEB-5808] chore: sidebar project list enhancements (makeplane#8451)

* chore: sidebar project list enhancements

* chore: code refactor

* chore: code refactor

* [WEB-5324] refactor: add Unified OAuth Configuration and Missing Gitea Options (makeplane#8050)

* refactor: add Unified OAuth Configuration and Missing Gitea Options

- Replaced the AuthenticationModes component with a more streamlined implementation using AuthenticationMethodCard.
- Removed obsolete authentication modes files from the codebase.
- Enhanced the AuthRoot component to utilize the new OAuth configuration hook for better management of authentication options.
- Updated type definitions for instance authentication modes to reflect the new structure.

* refactor: update OAuth type imports and remove obsolete types

- Replaced local type imports with centralized imports from @plane/types in core, extended, and index OAuth hooks.
- Removed the now redundant types.ts file as its definitions have been migrated.
- Enhanced type definitions for OAuth options to improve consistency across the application.

* feat: add new Gitea logo and update OAuth icon imports to use standard HTML img tags

* chore: remove unused authentication logos and upgrade button component

* [WEB-5574]chore: notification card refactor (makeplane#8234)

* chore: notification card refactor

* chore: moved base activity types to constants package

* [WEB-5804] refactor: decouple filter value types from filter configurations (makeplane#8441)

* [WEB-5804] refactor: decouple filter value types from filter configurations

Remove value type constraints from filter configurations to support
operator-specific value types. Different operators can accept different
value types for the same filter property, so value types should be
determined at the operator level rather than the filter level.

- Remove generic value type parameter from TFilterConfig
- Update TOperatorConfigMap to accept union of all value types
- Simplify filter config factory signatures across all filter types
- Add forceUpdate parameter to updateConditionValue method

* refactor: remove filter value type constraints from filter configurations

Eliminate the generic value type parameter from filter configurations to allow for operator-specific value types. This change enhances flexibility by enabling different operators to accept various value types for the same filter property.

- Updated TFilterConfig and related interfaces to remove value type constraints
- Adjusted filter configuration methods and types accordingly
- Refactored date operator support to align with the new structure

* [WEB-5785]fix: favorites icon size makeplane#8449

* [WEB-5781]chore: removed info banner for preferences makeplane#8442

* [WEB-5809] refactor: tailwind config inline variables (makeplane#8437)

* refactor: actions icon migration (makeplane#8219)

* chore: gitignore updated

* chore: check icon added to propel package

* feat: search icon migration

* chore: check icon migration

* chore: plus icon added to propel package

* chore: code refactor

* chore: plus icon migration and code refactor

* chore: trash icon added to propel package

* chore: code refactor

* chore: trash icon migration

* chore: edit icon added to propel package

* chore: new tab icon added to propel package

* chore: edit icon migration

* chore: newtab icon migration

* chore: lock icon added to propel package

* chore: lock icon migration

* chore: globe icon added to propel package

* chore: globe icon migration

* chore: copy icon added to propel package

* chore: copy icon migration

* chore: link icon added to propel package

* chore: link icon migration

* chore: link icon migration

* chore: info icon added to propel package

* chore: code refactor

* chore: code refactor

* chore: code refactor

* chore: code refactor

* regression: red and green color backgrounds (makeplane#8456)

* [WEB-5815] chore: removed the deleted states (makeplane#8457)

* Typo: database extension error message (makeplane#8461)

* [WEB-5179] chore: icon utils code refactor makeplane#8458

* [WEB-5790] feat: new email templates (makeplane#8423)

* chore: remove unused get_client_ip import (makeplane#8453)

Remove unused import `get_client_ip` from workspace/invite.py.
Identified by ruff linter (F401 error).

Signed-off-by: majiayu000 <1835304752@qq.com>

* [WEB-5822] fix: migrate ImagePickerPopover to Propel Tabs component and render only enabled tabs makeplane#8290

- Replace custom tab implementation with Propel Tabs
- Dynamically render only enabled tabs based on configuration
- Filter tabs by isEnabled property for cleaner conditional rendering
- Improve tab navigation and accessibility with Propel components

* chore: navigation preference enhancements (makeplane#8468)

* [WEB-5472] refactor: components of project creation flow (makeplane#8462)

* [WEB-857] regression: image uploader error state makeplane#8471

* [WEB-4959]chore: refactor project member page makeplane#8464

* [WEB-5472] refactor: project form makeplane#8472

* migration: added webhook version, navigation related fields and allowed_rate_limit for APIToken (makeplane#8339)

* migration: added version field in webhook

* chore: add max_length

* chore: added product tour fields

* chore: updated the migration file

* chore: removed the duplicated migration file

* chore: added allowed_rate_limit for api_tokens

* chore: changed key feature tour to product tour

* chore: added is_subscribed_to_changelog field

---------

Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>

* fix: correct spelling error in database.ts log message (makeplane#8452)

Fix "convertion" -> "conversion" in error log message.

Signed-off-by: majiayu000 <1835304752@qq.com>

* [WEB-5598] refactor: streamline object creation in workspace seed task and improve error handling in workspace creation makeplane#8264

* chore: remove posthog events (makeplane#8465)

* chore: remove posthog events

* chore: remove event tracking

* chore: lint errors

* chore: minor changes based on comments

* fix: type errors

* Revert "[WEB-4959]chore: refactor project member page makeplane#8464" (makeplane#8476)

This reverts commit c97e418.

* chore: remove unused right sidebar component and clean up workspace member settings (makeplane#8477)

* [WEB-5537]refactor: rename IssueUserProperty to ProjectUserProperty and update related references  (makeplane#8206)

* refactor: rename IssueUserProperty to ProjectUserProperty and update related references across the codebase

* migrate: move issue user properties to project user properties and update related fields and constraints

* refactor: rename IssueUserPropertySerializer and IssueUserDisplayPropertyEndpoint to ProjectUserPropertySerializer and ProjectUserDisplayPropertyEndpoint, updating all related references

* fix: enhance ProjectUserDisplayPropertyEndpoint to handle missing properties by creating new entries and improve response handling

* fix: correct formatting in migration for ProjectUserProperty model options

* migrate: add migration to update existing non-service API tokens to remove workspace association

* migrate: refine migration to update existing non-service API tokens by excluding bot users from workspace removal

* chore: changed the project sort order in project user property

* chore: remove allowed_rate_limit from APIToken

* chore: updated user-properties endpoint for frontend

* chore: removed the extra projectuserproperty

* chore: updated the migration file

* chore: code refactor

* fix: type error

---------

Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
Co-authored-by: sangeethailango <sangeethailango21@gmail.com>
Co-authored-by: vamsikrishnamathala <matalav55@gmail.com>
Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>

* [WIKI-826] chore: add unique id as key to logo selector (makeplane#8494)

* [VPAT-50] chore(security): add X-Frame-Options header to nginx configuration to prevent clickjacking attacks (makeplane#8507)

* [VPAT-50] chore(security): add X-Frame-Options header to nginx configuration to prevent clickjacking attacks

* [SECURITY] chore: enhance nginx configuration with additional security headers

* chore: updated migration file name (makeplane#8515)

* chore(deps): react router upgraded

* [WEB-5890] migration: added getting_started_checklist, tips, explored_feature fields on the workspace member table (makeplane#8489)

* migration: added getting_started_checklist and tips field

* fix: remove defaults and added explored_features field

* fix: added user table migration

* [WEB-5907] fix: magic code sign-in at Space app. makeplane#8552

* [WIKI-735] fix: table insert handle z-index makeplane#8545

* [WEB-5898] chore: update tailwind config makeplane#8516

* chore(deps): bump lodash-es in the npm_and_yarn group across 1 directory (makeplane#8573)

Bumps the npm_and_yarn group with 1 update in the / directory: [lodash-es](https://github.com/lodash/lodash).


Updates `lodash-es` from 4.17.21 to 4.17.23
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-version: 4.17.23
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [WEB-5845] chore: changing description field to description json (makeplane#8230)

* chore: migrating description to description json

* chore: replace description with description_json

* chore: updated migration file

* chore: updated the migration file

* chore: added description key in external endpoint

* chore: updated the migration file

* chore: updated the typo

---------

Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>

* chore: fix typos in comments (makeplane#8553)

* [GIT-61] chore: allow .md files to be uploaded (makeplane#8571)

* chore: allow .md files to be uploaded

* chore: allow .md files to be uploaded

* [WEB-5860] [WEB-5861] [WEB-5862] style: improved settings interface (makeplane#8520)

* style: improved profile settings

* chore: minor improvements

* style: improved workspace settings

* style: workspace settings content

* style: improved project settings

* fix: project settings flat map

* chore: add back navigation from settings pages

* style: settings content

* style: estimates list

* refactor: remove old code

* refactor: removed unnecessary line breaks

* refactor: create a common component for page header

* chore: add fade-in animation to sidebar

* fix: formatting

* fix: project settings sidebar header

* fix: workspace settings sidebar header

* fix: settings content wrapper scroll

* chore: separate project settings features

* fix: formatting

* refactor: custom theme selector

* refactor: settings headings

* refactor: settings headings

* fix: project settings sidebar padding

* fix: sidebar header padding

* fix: sidebar item permissions

* fix: missing editable check

* refactor: remove unused files

* chore: remove unnecessary code

* chore: add missing translations

* fix: formatting

* [GIT-45] fix: allow markdown file attachments (makeplane#8524)

* fix: allow markdown file attachments

- Add text/markdown to ATTACHMENT_MIME_TYPES
- Fixes issue where .md files were rejected with 'Invalid file type' error

* added the support for frontend mime type too

* fix: node view renders (makeplane#8559)

* fix node renders

* fix handlers

* fix: duplicate id

* fix: pdf export (makeplane#8564)

* feat: pdf export

* fix: tests

* fix: tests

---------

Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>

* migration: back migrate all product tour fields to set true (makeplane#8575)

* [GIT-66] improvement: prevent disabling last enabled authentication method (makeplane#8570)

* fully translated into Ukrainian language (makeplane#8579)

* chore:  add copyright (makeplane#8584)

* feat: adding new copyright info on all files

* chore: adding CI

* fix: module percentage calculation (makeplane#8595)

* fix: file fomatting

* [SECUR-113] fix: ssrf for work item links (makeplane#8607)

* [SECUR-104] fix: Arbitrary Modification of API Token Rate Limits#8612

* chore(deps): upgrade django version

* [WEB-6058] chore : add logic to handle save#8614

* chore(deps): update the node pacakges

* fix: type fix for description payload (makeplane#8619)

* fix: type fix

* fix: duplicate type fix

* chore(deps): update lodash package

* [WEB-6149] migration: change estimate point key max value to 50 makeplane#8620

* fix: remove ee folder from web (makeplane#8622)

* chore: merge constants and services (makeplane#8623)

* fix: remove constants and services

* fix: formatting

* fix: types check

* chore: merge helpers and layouts (makeplane#8624)

* fix: remove constants and services

* fix: formatting

* chore: merge helpers and layouts

* fix: workspace disbale flag handling

* chore(deps): bump cryptography (makeplane#8625)

Bumps the pip group with 1 update in the /apps/api/requirements directory: [cryptography](https://github.com/pyca/cryptography).


Updates `cryptography` from 44.0.1 to 46.0.5
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@44.0.1...46.0.5)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.5
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* style: update ASCII art in install script header (makeplane#8628)

* [WEB-6038] fix: work item empty title flicker makeplane#8618

* fix: workitem description input inital load (makeplane#8617)

* [WEB-6137] fix: work item peek view outside click makeplane#8610

* [SECUR-105] fix: csv injection vulnerability sanitization makeplane#8611

* [WIKI-877] fix: order of this dropdown options in pages makeplane#8563

* [WEB-5899]fix: project sort order (makeplane#8530)

* fix: project sort order

* chore: updated queryset for sort_order

* chore: admin folder structure (makeplane#8632)

* chore: admin folder structure

* fix: copy right check and formatting

* fix: types

* i18n(ru): expand Russian translation coverage (makeplane#8603)

Added missing translations for:
- Profile preferences (language, timezone settings)
- Account settings sections (preferences, notifications, security, api-tokens, activity)
- Workspace settings (billing, exports, webhooks headings/descriptions)
- Project settings (states, labels, estimates, automations headings/descriptions)
- Power-K command palette (contextual actions, navigation, creation, preferences, help)
- Sidebar elements (stickies, your_work, pin/unpin)
- Common actions (copy_markdown, overview)
- Navigation customization options

* chore(deps): update axios dependency

* [GIT-57 | WEB-5912] fix: app sidebar ux and responsiveness (makeplane#8560)

* fix: project extended sidebar accordion ux

* fix: app sidebar mobile responsiveness ux

* chore: code refactor

* refactor: table drag preview using decorations (makeplane#8597)

* refactor: table drag preview using decorations

* fix: history meta for table drag state

* [WEB-5884] chore: layout loader enhancements makeplane#8500

* [WEB-1201] chore: dropdown options hierarchy improvements (makeplane#8501)

* chore: sortBySelectedFirst and sortByCurrentUserThenSelected utils added

* chore: members dropdown updated

* chore: module dropdown updated

* chore: project and label dropdown updated

* chore: code refactor

* [GIT-44] refactor(auth): add PASSWORD_TOO_WEAK error code (makeplane#8522)

* refactor(auth): add PASSWORD_TOO_WEAK error code and update related error handling in password change flow

* fix(auth): update import to use type for EAuthenticationErrorCodes in security page

* Update apps/web/app/(all)/profile/security/page.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor: updated auth error exception accross zxcvbn usages

* fix: improve error handling for password strength validation and update error messages

* i18n(ru): update Russian translations for stickies and automation description

Added translation for 'stickies' and improved formatting of the automation description in Russian locale.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update translations.ts: issue-artifacts discoverd (makeplane#7979)

* [WEB-5873] fix: user avatar ui consistency (makeplane#8495)

* fix: user avatar ui consistency

* chore: code refactor

* [SILO-820] fix: update serializer for module detail API endpoint to use ModuleUpdateSerializer (makeplane#8496)

* [VPAT-51] fix: update workspace invitation flow to use token for validation makeplane#8508

- Modified the invite link to include a token for enhanced security.
- Updated the WorkspaceJoinEndpoint to validate the token instead of the email.
- Adjusted the workspace invitation task to generate links with the token.
- Refactored the frontend to handle token in the invitation process.

Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>

* [WEB-5871] chore: added intake count for projects (makeplane#8497)

* chore: add intake_count in project list endpoint

* chore: sidebar project navigation intake count added

* fix: filter out closed intake issues in the count

* chore: code refactor

* chore: code refactor

* fix: filter out deleted intake issues

---------

Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>

* [WEB-5829] fix: Intake open work count (makeplane#8547)

* fix: open intake count at sidebar header

* chore: reverted inbox store arguments to core store

* fix: intake count update

* [WEB-5863] fix: estimate point input validation makeplane#8492

Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>

* [VPAT-55] chore(security): implement input validation across authentication and workspace forms (makeplane#8528)

* chore(security): implement input validation across authentication and workspace forms

  - Add OWASP-compliant autocomplete attributes to all auth input fields
  - Create centralized validation utilities blocking injection-risk characters
  - Apply validation to names, display names, workspace names, and slugs
  - Block special characters: < > ' " % # { } [ ] * ^ !
  - Secure sensitive input fields across admin, web, and space apps

* chore: add missing workspace name validation to settings and admin forms

* feat: enhance validation regex for international names and usernames

- Updated regex patterns to support Unicode characters for person names, display names, company names, and slugs.
- Improved validation functions to block injection-risk characters in names and slugs.

* [VPAT-16] improvement: add file validation to prevent malicious uploads makeplane#8493

Add client-side checks for double extensions, dangerous file types,
dot files, and path traversal patterns. Addresses security audit
recommendations for file upload validation.

* [WEB-5827] fix: persist external cover image URLs (Unsplash) in project updates makeplane#8482

* [VPAT-27] chore(security): disable autocomplete on sensitive input fields makeplane#8517

Disable autocomplete on authentication and security-related forms to prevent
browsers from storing sensitive credentials. This affects sign-in, password
reset, account security, and onboarding forms across admin, web, and space apps.

Modified components:
- Auth forms (email, password, unique code, forgot/reset/set password)
- Account security pages
- Instance setup and profile onboarding
- Shared UI components (auth-input, password-input)

* [WEB-5917] fix: generate clean plain text from HTML email template makeplane#8535

* [WEB-5878] chore: add validation for project name/identifier for special characters (makeplane#8529)

* chore: update ProjectSerializer to raise validation for special characters in name and identifier

* chore: update external endpoints

* fix: external api serializer validation

* update serializer to send error code

* fix: move the regex expression to Project model

* [WEB-6194]migration: added archived_at in IssueView makeplane#8641

* migration: added archived_at in IssueView

* fix: lint

* fix: IDOR Vulnerabilities in Asset & Attachment Endpoints (makeplane#8644)

* fix: idor issues in project assets and issue attachements

* fix: comments

* fix: Member Information Disclosure via Public Endpoint makeplane#8646

* chore: Add forum link and remove discord link on readme (makeplane#8655)

* Update README to remove Discord and add Forum link

Removed Discord badge and replaced Releases link with Forum link.

* Fix forum link in README.md

* fix: Update healthcheck endpoint in Dockerfile to target /spaces/ path (makeplane#8674)

* Change Dependabot update interval from weekly to daily

* [WIKI-887] fix: add scroll in heading layout (makeplane#8596)

* fix: add scroll in heading layout

* chore: remove visible scroll  bar

* fix :format

* chore: fix outline scroll

* chore: fix format

* chore: fix translation

---------

Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>

* fix: merge lists in editor (makeplane#8639)

* chore: replace prettier with oxfmt (makeplane#8676)

* fix: replace eslint with oxlint (makeplane#8677)

* fix: replace eslint with oxlint

* chore: adding max warning

* fix: formatting

* chore(deps): minimatch and rollup package vulnerabilities (makeplane#8675)

* fix: package updates

* fix: package upgrades

* fix: minimatch package vulnerabilities

* fix: ajv package vulnerabilities

* fix: lint

* fix: format

* [SILO-1028] feat: Project Summary external API (makeplane#8661)

* add project summary endpoint

* update response structure

* [WIKI-852] chore: update page version save logic (makeplane#8440)

* chore: updated the logic for page version task

* chore: updated the html variable

* chore: handled the exception

* chore: changed the function name

* chore: added a custom variable

* [WEB-5225] feat: enhance authentication logging with detailed error and info message (makeplane#7998)

* feat: enhance authentication logging with detailed error and info messages

- Added logging for various authentication events in the Adapter and its subclasses, including email validation, user existence checks, and password strength validation.
- Implemented error handling for GitHub OAuth email retrieval, ensuring proper logging of unexpected responses and missing primary emails.
- Updated logging configuration in local and production settings to include a dedicated logger for authentication events.

* chore: address copilot comments

* chore: addressed some additional comments

* chore: update log

* fix: lint

* [WEB-6420] chore: migrate community references from Discord to Forum (makeplane#8657)

* chore: replace Discord references with Forum links

* chore: migrate help and community CTAs from Discord to Forum

* refactor: replace Discord icons with lucide MessageSquare

* chore: rename Discord labels and keys to Forum

* chore: remove obsolete Discord icon component

* chore: update Discord references to Forum in templates

* chore: code refactoring

* fix: dependabot and codeql CI

* fix: disable react-in-jsx-scope rule in oxlint config (makeplane#8682)

After makeplane#8677 replaced ESLint with OxLint, the react-in-jsx-scope rule
was not disabled. This causes all commits touching JSX files to fail
the pre-commit hook (oxlint --deny-warnings).

React 17+ uses automatic JSX runtime so explicit React imports are
not required.

Fixes makeplane#8681

* chore: space folders (makeplane#8707)

* chore: change the space folders structure

* fix: format

* chore(deps): django version upgrade

* [GIT-40]fix: apply sub-issue display filter when adding work items makeplane#8534

* [WEB-5606] fix: work item preview word break makeplane#8537

* [WIKI-892] fix: description input component re-render makeplane#8600

* [WIKI-785] refactor: editor markdown handler makeplane#8546

* [WEB-5911] fix: error outline button text color makeplane#8531

* [SECUR-116] fix: ssrf webhook url for ip address makeplane#8716

* [WEB-6420] chore: self-host social icons in project invitation email (makeplane#8718)

* chore: add self-hosted social icon assets for email templates

* chore: pass current_site to project invitation email context

* chore: replace mailinblue CDN icons with self-hosted static assets

* feat: Complete Agent and Worktrees modules

- Add Agent CRUD API and frontend
- Add Worktrees page with CRUD
- Add extended routes for /agents and /worktrees
- Add custom sidebar navigation

---------

Signed-off-by: majiayu000 <1835304752@qq.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: pratapalakshmi <137189067+pratapalakshmi@users.noreply.github.com>
Co-authored-by: b-saikrishnakanth <130811169+b-saikrishnakanth@users.noreply.github.com>
Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com>
Co-authored-by: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com>
Co-authored-by: Vipin Chaudhary <VipinChaudhary1809@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
Co-authored-by: Dheeraj Kumar Ketireddy <dheeraj.ketireddy@plane.so>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: Aaron <lifeiscontent@users.noreply.github.com>
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>
Co-authored-by: pushya22 <130810100+pushya22@users.noreply.github.com>
Co-authored-by: Pushya Mitra Thiruvooru <pushya@Pushyas-MacBook-Pro.local>
Co-authored-by: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com>
Co-authored-by: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Co-authored-by: gakshita <akshitagoyal1516@gmail.com>
Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>
Co-authored-by: Henit Chobisa <chobisa.henit@gmail.com>
Co-authored-by: Sangeetha <sangeethailango21@gmail.com>
Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>
Co-authored-by: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com>
Co-authored-by: Shaikh Naasir <yoursdeveloper@protonmail.com>
Co-authored-by: lif <1835304752@qq.com>
Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
Co-authored-by: vamsikrishnamathala <matalav55@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
Co-authored-by: yy <yhymmt37@gmail.com>
Co-authored-by: punto <119956578+AshrithSathu@users.noreply.github.com>
Co-authored-by: Ship it <161483884+vcscroll@users.noreply.github.com>
Co-authored-by: Akshat Jain <akshatjain9782@gmail.com>
Co-authored-by: stelmsk <151884118+stelmsk@users.noreply.github.com>
Co-authored-by: Cornelius <70640137+conny3496@users.noreply.github.com>
Co-authored-by: Vihar Kurama <vihar.kurama@gmail.com>
Co-authored-by: Saurabh Kumar <70131915+Saurabhkmr98@users.noreply.github.com>
Co-authored-by: darkingtail <51188676+darkingtail@users.noreply.github.com>
Co-authored-by: Claude Code <claude@anthropic.com>
AbstractBike added a commit to AbstractBike/plane that referenced this pull request Apr 2, 2026
* fix: editor sync changes (#8306)

* chore: upate function declarations

* chore: formatted files

* chore: fix/check tooling improvements with turbo (#8304)

* fix: broken lock file

* chore: add Plane sync label to github templates #8303

Co-authored-by: Pushya Mitra Thiruvooru <pushya@Pushyas-MacBook-Pro.local>

* [WEB-5624] chore: added webhook translations #8312

* chore(deps): upgrade next themes package

* [WEB-5654]fix: custom select selection and dropdown close #8324

* [WEB-5124] chore: intake work item toast enhancements (#8329)

* [WEB-5647] chore: list layout work item identifier enhancements (#8326)

* chore: file formating

* [WEB-5650] feat: Enable Gitea OAuth configuration  (#8325)

* feat: implement OAuth configuration helper and integrate into auth forms

* fix: ensure OAuth providers are disabled by default if not configured

* [WEB-5602] feat: new design system (#8220)

* chore: init tailwind v4

* chore: update all configs

* chore: add source to parse monorepo packages

* chore: combine all css files

* feat: added extended colors

* chore: update typography

* chore: update extended color var names

* refactor: remove initial spacing variable and update dark mode selector

* chore: update css files

* chore: update animations

* chore: remove spacing tokens

* fix: external css files

* chore: update tailwind-merge version

* chore: update font family

* chore: added brief agents.md and story for new design system

* chore: enhance design system documentation with rare exceptions for visual separation

* chore: add fontsource package for typography

* chore: material symbols font added

* chore: update shadow default

* chore: add stroke and outline theme vars

* chore: update ring and fill colors

* chore: overwrite tailwind typography tokens

* chore: add high contrast mode tokens

* chore: update scrollbar colors

* chore: backward compatibility for buttons and placeholders

* chore: add priority colors

* chore: update urgent priority color

* chore: update plan colors

* chore: add missing utility class

* chore: update height and padding classes

* chore: update label colors

* chore: add missing utlity

* chore: add typography plugin to space app

* chore: replace existing classNames with new design system tokens #8244 (#8278)

* chore: update border colors

* chore: update all borders

* chore: update text colors

* chore: update css variables

* chore: update font sizes and weights

* chore: update bg colors

* chore: sync changes

* fix: uncomment spacing-1200 variable in variables.css

* chore: update primary colors

* refactor: updated border to border-subtle

* refactor: update various components and improve UI consistency across the application

* updated classnames

* updated classnames

* refactor: update color-related class names to use new design system variables for consistency

* chore: default automations

* chore: update text sizes

* chore: home and power k

* chore: home and power k

* chore: replace ui package button components

* chore: update text sizes

* chore: updated issue identifier (#8275)

* refactor: top navigation and sidebar design token (#8276)

* chore: update all button components (#8277)

* chore: new button component

* chore: update existing buttons

* chore: overwrite tailwind typography tokens

* fix: twMerge config + fixed cn instances

* refactor: toast design token updated (#8279)

* chore: update existing buttons

* chore: tooltip design token updatged (#8280)

* chore: moved cn utility to propel (#8281)

* chore: update space app UI (#8285)

* chore; update space app filters component

* fix: button whitespace wrap

* chore: space app votes

* chore: update dropdown components

* refactor: auth, onboarding, sidebar, and common component design token migration (#8291)

* chore: checkbox component design token updated

* chore: indicator and oauth component design token updated

* chore: sidebar design token updated

* chore: auth and onboarding design token updated

* chore: update divider color

* style: update background colors and hover effects across list components

* fix: tailwind merge

* refactor: toggle switch design token migration and header utility classname added (#8295)

* chore: toggle component design token updated

* chore: h-header utility class added

* chore: updated color tokens for work item detail page (#8296)

* chore: update react-day-picker UI

* refactor: update button sizes and styles in filters components

* refactor: breadcrumbs design token updated (#8297)

* chore: update priority icon colors

* refactor: updated layout variables

* chore: update plan card primary CTA

* Chore update editor design system (#8299)

* refactor: update styles for callout, color selector, logo selector, and image uploader

* refactor:fix image

* chore: update settings UI

* chore: updated notifications color and size tokens (#8302)

* chore: update sm button border radius

* fix: logo renderer

* chore: icon button component

* chore: remove deprecated classes

* chore: remove deprecated classes

* chore: update editor list spacing

* fix: icon button size

* chore: improvements (#8309)

* chore: update cycles and modules pages

* refactor: update background styles across various components to use new design system colors

* fix: button type errors

* chore: update modals design system (#8310)

* refactor: callout bg

* refactor: code  bg

* refactor: modal size and variant

---------

Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>

* chore: update next-themes

* design: update billing and plans component styles and remove unused utility functions (#8313)

* refactor: empty state design token migration and improvements (#8315)

* fix: profile page

* refactor: tabs design token updated (#8316)

* chore: updated buttons and tokens for work items (#8317)

* fix: adjust trial button spacing in checkout modal

* chore: update add button hover state

* fix: type error (#8318)

* fix: type error

* chore: code refactor

* refactor: update button sizes and background styles in rich filters components

* refactor: update editor bg

* refactor: enhance Gantt chart sidebar functionality and styling

- Removed unused  prop from .
- Updated  to include new props for better block management and scrolling behavior.
- Improved auto-scroll functionality for Gantt chart items.
- Adjusted styles in  component for consistent design.

* regression: gantt design

* chore: new badge component

* fix: favorite star

* chore: update backgroung, typography and button sizes across workspace settings general and members pages

* fix: header button sizes

* fix: emoji icon logo (#8323)

* more fixes

* chore: update settings sidebar

* refactor: avatar component

* chore: updated work item detail sidebar (#8327)

* refactor: update link preview

* fix: work item property dropdowns

* fix: dropdown buttons border radius

* chore: update power k translation

* chore: updated profile activity design (#8328)

* chore: update settings pages

* chore: update work item sidebar alignments (#8330)

* refactor: admin design system

* chore: update page header

---------

Co-authored-by: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Co-authored-by: VipinDevelops <vipinchaudhary1809@gmail.com>
Co-authored-by: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: gakshita <akshitagoyal1516@gmail.com>
Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>

* fix: formatting

* reexport types

* fix: lint error

---------

Co-authored-by: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Co-authored-by: VipinDevelops <vipinchaudhary1809@gmail.com>
Co-authored-by: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: gakshita <akshitagoyal1516@gmail.com>
Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>

* [WEB-5668] fix: add fetchWorkspaceLevelProjectEntities method and update project-related fetch keys (#8347)

* [SILO-783] feat: added porters and new serializer based exporter (#8335)

* [WEB-5699] refactor: update styling and classnames of charts according to new design system (#8345)

* refactor: update styling and class names according to new design system in charts

* refactor: clean up

* feat: custom theming enhancements (#8342)

* [WEB-5671] chore: settings workspace members enhancements #8346

* [WEB-5666] chore: set project timezone same as workspace timezone in project (#8340)

* [WEB-5614] fix: new design system consistency (#8351)

* chore: tooltip enhancements

* chore: project card enhancements

* chore: work item card enhancements

* chore: update component styles and class names for consistency across the application

---------

Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>

* [WEB-5708] regression: remove material icon instances from the Space app (#8353)

* chore: sync changes (#8343)

* [WEB-5614] chore: work item detail and list layout enhancements #8355

* regression: replace old css vars with the new design system tokens (#8354)

* chore: replace old css vars

* fix: replace shadow and primary colors

* chore: remove hardcoded colors

* [WEB-5614] chore: custom theme on colour improvement #8356

* [WEB-5732] style: update work item detail properties UI (#8357)

* [WEB-5730] fix: user mention colors #8358

* [WEB-5614] fix: empty state and padding token fixes (#8359)

* [WEB-5614] chore: update component styles and class names for consistency across projects #8360

* [WEB-5614] chore: logo and icon enhancements #8362

* fix: work item property icon renderer (#8363)

* [WEB-5614] fix: sidebar and label dropdown #8364

* fix: material icons font file (#8366)

* [WEB-5614] chore: lucide icon code refactor #8365

* fix: nested context menu UI (#8367)

* [WEB-5708] style: space app kanban card UI (#8368)

* [WEB-5742] fix: input field background #8369

* [WEB-5641] chore: sub work item quick menu padding #8370

* chore: replace old classNames (#8372)

* chore: update component styles and class names for consistency across the application (#8376)

* [WEB-5660] [WEB-5737] fix: cycle and module sidebar #8375

* [WEB-5676] style: gantt column outline #8374

* [WEB-5614] chore: platform design token enhancements (#8373)

* [WEB-5649] [WEB-5675] fix: local font files #8377

* [WEB-5614] chore: primitive token updated (#8378)

* fix: tooltip imports (#8379)

* [WEB-5614] chore: platform header and breadcrumb enhancements (#8383)

* [WEB-5652] fix: kanban quick add UI #8382

* [WEB-5726] fix: showing an empty state on deleted work item link #8381

* fix: space app default background (#8384)

* [WIKI-849] feat: debounce for mention search (#8380)

* fix: font imports (#8387)

* chore: platform layout enhancements (#8386)

* fix: image uploader bg in light mode (#8385)

* [WEB-5614] refactor: update styling and structure across various components (#8388)

* fix: input fields bg (#8389)

* fix: custom z-index classNames (#8395)

* [WEB-5454] fix: optimize date validation logic in CycleCreateUpdateModal #8394

* [WEB-5614] chore: work item detail comment and sidebar enhancements (#8397)

* [WEB-5675] chore: implement `fontsource` as the fonts library (#8398)

* [WEB-5762] fix: workitem detail sidebar properties design consistency (#8400)

* [WEB-5761]fix: intake spacing issue (#8399)

* [WEB-5614] chore: sidebar enhancement #8401

* [WEB-5768]chore: updated comment UI #8402

* [WEB-5614] chore: package and layout enhancements #8403

* chore: update storybook dependency

* [WEB-5657] feat: add synchronization configuration for multiple providers in authentication adapter  (#8336)

* feat: add sync functionality for OAuth providers

- Implemented `check_sync_enabled` method to verify if sync is enabled for Google, GitHub, GitLab, and Gitea.
- Added `sync_user_data` method to update user details, including first name, last name, display name, and avatar.
- Updated configuration variables to include sync options for each provider.
- Integrated sync check into the login/signup process.

* feat: add sync toggle for OAuth providers in configuration forms

* fix: remove default value for sync options in OAuth configuration forms

* chore: delete old avatar and upload a new one

* chore: update class method

* chore: add email nullable

* refactor: streamline sync check for multiple providers and improve avatar deletion logic

* fix: ensure ENABLE_SYNC configurations default to "0" for Gitea, Github, Gitlab, and Google forms

* fix: simplify toggle switch value handling in ControllerSwitch component

---------

Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>

* [WEB-5657] chore: synchronization configuration for multiple providers in authentication adapter #8409

* [WEB-5746]fix: workspace member modal z-index #8410

* [WEB-5773] fix: editor image full screen modal (#8413)

* [WEB-5774] fix: editor nodes background colors (#8416)

* [WEB-5776]chore: updated design system for alert modal #8415

* [WEB-5775] fix: mentions search on empty query #8417

* [WEB-5662][WEB-5770] fix: alignment of cycles in sidebar and layout selection dropdown button (#8414)

* fix: alpha colors (#8418)

* [WEB-5784] fix: truncation issue in wi properties (#8422)

* fix: update background surface 2 variables in tailwind config

* fix: improve layout and truncation handling in issue link and list items

* docs: update readme with react router badge (#8424)

Updated feature list and modified the local development section.

* [WEB-5788] fix: board layout group by icon #8426

* [WEB-5792] regression: editor font family #8427

* [WIKI-740] refactor: editor table performance (#8411)

* [WEB-5786] fix: updated font size for dates at Kanban card #8429

* [WEB-5772] fix: theme switch flicker (#8428)

* [WEB-5784] fix: truncation of links in work items (#8430)

* [WEB-5772] chore: theme switcher and editor colors enhancements (#8436)

* [WEB-5772] chore: theme switcher code refactor #8438

* chore: workspace events (#8439)

* chore: adding invite and joined events

* chore: adding workspace create and update events

* [WEB-5798] refactor: web and admin auth related components and update admin designs (#8431)

* refactor: web and admin auth related components and update admin designs.

* fix: format

* [WEB-5581] fix: resolve logo spinner hydration and theme loading issues (#8450)

- Fix hydration mismatch by lazy loading components that depend on theme
- Ensure LogoSpinner renders with correct theme on initial load

* [WEB-5791] fix: broken favicon in links (#8396)

* fix: using base url of a redirect url

* chore: internal networks check for the final_url

* fix: none final_url

* fix: exception handling

* fix: exception handling

* chore: remove unused imports

* refactor: moved ip address check logic into separate function

* fix: ValueError logic

* [WEB-5667] fix: estimate value display in analytics #8448

* [WEB-5779] fix: handle loading state while fetching project cover image (#8419)

* refactor: replace cover image handling with CoverImage component across profile and project forms

* fix: extend CoverImage component to accept additional img props

* Update apps/web/core/components/common/cover-image.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: handle undefined cover image URL in ProfileSidebar component

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* [WEB-5782]chore: migrated modals to @plane/ui (#8420)

* chore: migrated modal to @plane/ui

* chore: fixed spacings

* [WEB-5808] chore: sidebar project list enhancements (#8451)

* chore: sidebar project list enhancements

* chore: code refactor

* chore: code refactor

* [WEB-5324] refactor: add Unified OAuth Configuration and Missing Gitea Options (#8050)

* refactor: add Unified OAuth Configuration and Missing Gitea Options

- Replaced the AuthenticationModes component with a more streamlined implementation using AuthenticationMethodCard.
- Removed obsolete authentication modes files from the codebase.
- Enhanced the AuthRoot component to utilize the new OAuth configuration hook for better management of authentication options.
- Updated type definitions for instance authentication modes to reflect the new structure.

* refactor: update OAuth type imports and remove obsolete types

- Replaced local type imports with centralized imports from @plane/types in core, extended, and index OAuth hooks.
- Removed the now redundant types.ts file as its definitions have been migrated.
- Enhanced type definitions for OAuth options to improve consistency across the application.

* feat: add new Gitea logo and update OAuth icon imports to use standard HTML img tags

* chore: remove unused authentication logos and upgrade button component

* [WEB-5574]chore: notification card refactor (#8234)

* chore: notification card refactor

* chore: moved base activity types to constants package

* [WEB-5804] refactor: decouple filter value types from filter configurations (#8441)

* [WEB-5804] refactor: decouple filter value types from filter configurations

Remove value type constraints from filter configurations to support
operator-specific value types. Different operators can accept different
value types for the same filter property, so value types should be
determined at the operator level rather than the filter level.

- Remove generic value type parameter from TFilterConfig
- Update TOperatorConfigMap to accept union of all value types
- Simplify filter config factory signatures across all filter types
- Add forceUpdate parameter to updateConditionValue method

* refactor: remove filter value type constraints from filter configurations

Eliminate the generic value type parameter from filter configurations to allow for operator-specific value types. This change enhances flexibility by enabling different operators to accept various value types for the same filter property.

- Updated TFilterConfig and related interfaces to remove value type constraints
- Adjusted filter configuration methods and types accordingly
- Refactored date operator support to align with the new structure

* [WEB-5785]fix: favorites icon size #8449

* [WEB-5781]chore: removed info banner for preferences #8442

* [WEB-5809] refactor: tailwind config inline variables (#8437)

* refactor: actions icon migration (#8219)

* chore: gitignore updated

* chore: check icon added to propel package

* feat: search icon migration

* chore: check icon migration

* chore: plus icon added to propel package

* chore: code refactor

* chore: plus icon migration and code refactor

* chore: trash icon added to propel package

* chore: code refactor

* chore: trash icon migration

* chore: edit icon added to propel package

* chore: new tab icon added to propel package

* chore: edit icon migration

* chore: newtab icon migration

* chore: lock icon added to propel package

* chore: lock icon migration

* chore: globe icon added to propel package

* chore: globe icon migration

* chore: copy icon added to propel package

* chore: copy icon migration

* chore: link icon added to propel package

* chore: link icon migration

* chore: link icon migration

* chore: info icon added to propel package

* chore: code refactor

* chore: code refactor

* chore: code refactor

* chore: code refactor

* regression: red and green color backgrounds (#8456)

* [WEB-5815] chore: removed the deleted states (#8457)

* Typo: database extension error message (#8461)

* [WEB-5179] chore: icon utils code refactor #8458

* [WEB-5790] feat: new email templates (#8423)

* chore: remove unused get_client_ip import (#8453)

Remove unused import `get_client_ip` from workspace/invite.py.
Identified by ruff linter (F401 error).

Signed-off-by: majiayu000 <1835304752@qq.com>

* [WEB-5822] fix: migrate ImagePickerPopover to Propel Tabs component and render only enabled tabs #8290

- Replace custom tab implementation with Propel Tabs
- Dynamically render only enabled tabs based on configuration
- Filter tabs by isEnabled property for cleaner conditional rendering
- Improve tab navigation and accessibility with Propel components

* chore: navigation preference enhancements (#8468)

* [WEB-5472] refactor: components of project creation flow (#8462)

* [WEB-857] regression: image uploader error state #8471

* [WEB-4959]chore: refactor project member page #8464

* [WEB-5472] refactor: project form #8472

* migration: added webhook version, navigation related fields and allowed_rate_limit for APIToken (#8339)

* migration: added version field in webhook

* chore: add max_length

* chore: added product tour fields

* chore: updated the migration file

* chore: removed the duplicated migration file

* chore: added allowed_rate_limit for api_tokens

* chore: changed key feature tour to product tour

* chore: added is_subscribed_to_changelog field

---------

Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>

* fix: correct spelling error in database.ts log message (#8452)

Fix "convertion" -> "conversion" in error log message.

Signed-off-by: majiayu000 <1835304752@qq.com>

* [WEB-5598] refactor: streamline object creation in workspace seed task and improve error handling in workspace creation #8264

* chore: remove posthog events (#8465)

* chore: remove posthog events

* chore: remove event tracking

* chore: lint errors

* chore: minor changes based on comments

* fix: type errors

* Revert "[WEB-4959]chore: refactor project member page #8464" (#8476)

This reverts commit c97e41851530fbb0426c542fa8739ab95218f8a5.

* chore: remove unused right sidebar component and clean up workspace member settings (#8477)

* [WEB-5537]refactor: rename IssueUserProperty to ProjectUserProperty and update related references  (#8206)

* refactor: rename IssueUserProperty to ProjectUserProperty and update related references across the codebase

* migrate: move issue user properties to project user properties and update related fields and constraints

* refactor: rename IssueUserPropertySerializer and IssueUserDisplayPropertyEndpoint to ProjectUserPropertySerializer and ProjectUserDisplayPropertyEndpoint, updating all related references

* fix: enhance ProjectUserDisplayPropertyEndpoint to handle missing properties by creating new entries and improve response handling

* fix: correct formatting in migration for ProjectUserProperty model options

* migrate: add migration to update existing non-service API tokens to remove workspace association

* migrate: refine migration to update existing non-service API tokens by excluding bot users from workspace removal

* chore: changed the project sort order in project user property

* chore: remove allowed_rate_limit from APIToken

* chore: updated user-properties endpoint for frontend

* chore: removed the extra projectuserproperty

* chore: updated the migration file

* chore: code refactor

* fix: type error

---------

Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
Co-authored-by: sangeethailango <sangeethailango21@gmail.com>
Co-authored-by: vamsikrishnamathala <matalav55@gmail.com>
Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>

* [WIKI-826] chore: add unique id as key to logo selector (#8494)

* [VPAT-50] chore(security): add X-Frame-Options header to nginx configuration to prevent clickjacking attacks (#8507)

* [VPAT-50] chore(security): add X-Frame-Options header to nginx configuration to prevent clickjacking attacks

* [SECURITY] chore: enhance nginx configuration with additional security headers

* chore: updated migration file name (#8515)

* chore(deps): react router upgraded

* [WEB-5890] migration: added getting_started_checklist, tips, explored_feature fields on the workspace member table (#8489)

* migration: added getting_started_checklist and tips field

* fix: remove defaults and added explored_features field

* fix: added user table migration

* [WEB-5907] fix: magic code sign-in at Space app. #8552

* [WIKI-735] fix: table insert handle z-index #8545

* [WEB-5898] chore: update tailwind config #8516

* chore(deps): bump lodash-es in the npm_and_yarn group across 1 directory (#8573)

Bumps the npm_and_yarn group with 1 update in the / directory: [lodash-es](https://github.com/lodash/lodash).


Updates `lodash-es` from 4.17.21 to 4.17.23
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-version: 4.17.23
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [WEB-5845] chore: changing description field to description json (#8230)

* chore: migrating description to description json

* chore: replace description with description_json

* chore: updated migration file

* chore: updated the migration file

* chore: added description key in external endpoint

* chore: updated the migration file

* chore: updated the typo

---------

Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>

* chore: fix typos in comments (#8553)

* [GIT-61] chore: allow .md files to be uploaded (#8571)

* chore: allow .md files to be uploaded

* chore: allow .md files to be uploaded

* [WEB-5860] [WEB-5861] [WEB-5862] style: improved settings interface (#8520)

* style: improved profile settings

* chore: minor improvements

* style: improved workspace settings

* style: workspace settings content

* style: improved project settings

* fix: project settings flat map

* chore: add back navigation from settings pages

* style: settings content

* style: estimates list

* refactor: remove old code

* refactor: removed unnecessary line breaks

* refactor: create a common component for page header

* chore: add fade-in animation to sidebar

* fix: formatting

* fix: project settings sidebar header

* fix: workspace settings sidebar header

* fix: settings content wrapper scroll

* chore: separate project settings features

* fix: formatting

* refactor: custom theme selector

* refactor: settings headings

* refactor: settings headings

* fix: project settings sidebar padding

* fix: sidebar header padding

* fix: sidebar item permissions

* fix: missing editable check

* refactor: remove unused files

* chore: remove unnecessary code

* chore: add missing translations

* fix: formatting

* [GIT-45] fix: allow markdown file attachments (#8524)

* fix: allow markdown file attachments

- Add text/markdown to ATTACHMENT_MIME_TYPES
- Fixes issue where .md files were rejected with 'Invalid file type' error

* added the support for frontend mime type too

* fix: node view renders (#8559)

* fix node renders

* fix handlers

* fix: duplicate id

* fix: pdf export (#8564)

* feat: pdf export

* fix: tests

* fix: tests

---------

Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>

* migration: back migrate all product tour fields to set true (#8575)

* [GIT-66] improvement: prevent disabling last enabled authentication method (#8570)

* fully translated into Ukrainian language (#8579)

* chore:  add copyright (#8584)

* feat: adding new copyright info on all files

* chore: adding CI

* fix: module percentage calculation (#8595)

* fix: file fomatting

* [SECUR-113] fix: ssrf for work item links (#8607)

* [SECUR-104] fix: Arbitrary Modification of API Token Rate Limits#8612

* chore(deps): upgrade django version

* [WEB-6058] chore : add logic to handle save#8614

* chore(deps): update the node pacakges

* fix: type fix for description payload (#8619)

* fix: type fix

* fix: duplicate type fix

* chore(deps): update lodash package

* [WEB-6149] migration: change estimate point key max value to 50 #8620

* fix: remove ee folder from web (#8622)

* chore: merge constants and services (#8623)

* fix: remove constants and services

* fix: formatting

* fix: types check

* chore: merge helpers and layouts (#8624)

* fix: remove constants and services

* fix: formatting

* chore: merge helpers and layouts

* fix: workspace disbale flag handling

* chore(deps): bump cryptography (#8625)

Bumps the pip group with 1 update in the /apps/api/requirements directory: [cryptography](https://github.com/pyca/cryptography).


Updates `cryptography` from 44.0.1 to 46.0.5
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/44.0.1...46.0.5)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.5
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* style: update ASCII art in install script header (#8628)

* [WEB-6038] fix: work item empty title flicker #8618

* fix: workitem description input inital load (#8617)

* [WEB-6137] fix: work item peek view outside click #8610

* [SECUR-105] fix: csv injection vulnerability sanitization #8611

* [WIKI-877] fix: order of this dropdown options in pages #8563

* [WEB-5899]fix: project sort order (#8530)

* fix: project sort order

* chore: updated queryset for sort_order

* chore: admin folder structure (#8632)

* chore: admin folder structure

* fix: copy right check and formatting

* fix: types

* i18n(ru): expand Russian translation coverage (#8603)

Added missing translations for:
- Profile preferences (language, timezone settings)
- Account settings sections (preferences, notifications, security, api-tokens, activity)
- Workspace settings (billing, exports, webhooks headings/descriptions)
- Project settings (states, labels, estimates, automations headings/descriptions)
- Power-K command palette (contextual actions, navigation, creation, preferences, help)
- Sidebar elements (stickies, your_work, pin/unpin)
- Common actions (copy_markdown, overview)
- Navigation customization options

* chore(deps): update axios dependency

* [GIT-57 | WEB-5912] fix: app sidebar ux and responsiveness (#8560)

* fix: project extended sidebar accordion ux

* fix: app sidebar mobile responsiveness ux

* chore: code refactor

* refactor: table drag preview using decorations (#8597)

* refactor: table drag preview using decorations

* fix: history meta for table drag state

* [WEB-5884] chore: layout loader enhancements #8500

* [WEB-1201] chore: dropdown options hierarchy improvements (#8501)

* chore: sortBySelectedFirst and sortByCurrentUserThenSelected utils added

* chore: members dropdown updated

* chore: module dropdown updated

* chore: project and label dropdown updated

* chore: code refactor

* [GIT-44] refactor(auth): add PASSWORD_TOO_WEAK error code (#8522)

* refactor(auth): add PASSWORD_TOO_WEAK error code and update related error handling in password change flow

* fix(auth): update import to use type for EAuthenticationErrorCodes in security page

* Update apps/web/app/(all)/profile/security/page.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor: updated auth error exception accross zxcvbn usages

* fix: improve error handling for password strength validation and update error messages

* i18n(ru): update Russian translations for stickies and automation description

Added translation for 'stickies' and improved formatting of the automation description in Russian locale.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update translations.ts: issue-artifacts discoverd (#7979)

* [WEB-5873] fix: user avatar ui consistency (#8495)

* fix: user avatar ui consistency

* chore: code refactor

* [SILO-820] fix: update serializer for module detail API endpoint to use ModuleUpdateSerializer (#8496)

* [VPAT-51] fix: update workspace invitation flow to use token for validation #8508

- Modified the invite link to include a token for enhanced security.
- Updated the WorkspaceJoinEndpoint to validate the token instead of the email.
- Adjusted the workspace invitation task to generate links with the token.
- Refactored the frontend to handle token in the invitation process.

Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>

* [WEB-5871] chore: added intake count for projects (#8497)

* chore: add intake_count in project list endpoint

* chore: sidebar project navigation intake count added

* fix: filter out closed intake issues in the count

* chore: code refactor

* chore: code refactor

* fix: filter out deleted intake issues

---------

Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>

* [WEB-5829] fix: Intake open work count (#8547)

* fix: open intake count at sidebar header

* chore: reverted inbox store arguments to core store

* fix: intake count update

* [WEB-5863] fix: estimate point input validation #8492

Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>

* [VPAT-55] chore(security): implement input validation across authentication and workspace forms (#8528)

* chore(security): implement input validation across authentication and workspace forms

  - Add OWASP-compliant autocomplete attributes to all auth input fields
  - Create centralized validation utilities blocking injection-risk characters
  - Apply validation to names, display names, workspace names, and slugs
  - Block special characters: < > ' " % # { } [ ] * ^ !
  - Secure sensitive input fields across admin, web, and space apps

* chore: add missing workspace name validation to settings and admin forms

* feat: enhance validation regex for international names and usernames

- Updated regex patterns to support Unicode characters for person names, display names, company names, and slugs.
- Improved validation functions to block injection-risk characters in names and slugs.

* [VPAT-16] improvement: add file validation to prevent malicious uploads #8493

Add client-side checks for double extensions, dangerous file types,
dot files, and path traversal patterns. Addresses security audit
recommendations for file upload validation.

* [WEB-5827] fix: persist external cover image URLs (Unsplash) in project updates #8482

* [VPAT-27] chore(security): disable autocomplete on sensitive input fields #8517

Disable autocomplete on authentication and security-related forms to prevent
browsers from storing sensitive credentials. This affects sign-in, password
reset, account security, and onboarding forms across admin, web, and space apps.

Modified components:
- Auth forms (email, password, unique code, forgot/reset/set password)
- Account security pages
- Instance setup and profile onboarding
- Shared UI components (auth-input, password-input)

* [WEB-5917] fix: generate clean plain text from HTML email template #8535

* [WEB-5878] chore: add validation for project name/identifier for special characters (#8529)

* chore: update ProjectSerializer to raise validation for special characters in name and identifier

* chore: update external endpoints

* fix: external api serializer validation

* update serializer to send error code

* fix: move the regex expression to Project model

* [WEB-6194]migration: added archived_at in IssueView #8641

* migration: added archived_at in IssueView

* fix: lint

* fix: IDOR Vulnerabilities in Asset & Attachment Endpoints (#8644)

* fix: idor issues in project assets and issue attachements

* fix: comments

* fix: Member Information Disclosure via Public Endpoint #8646

* chore: Add forum link and remove discord link on readme (#8655)

* Update README to remove Discord and add Forum link

Removed Discord badge and replaced Releases link with Forum link.

* Fix forum link in README.md

* fix: Update healthcheck endpoint in Dockerfile to target /spaces/ path (#8674)

* Change Dependabot update interval from weekly to daily

* [WIKI-887] fix: add scroll in heading layout (#8596)

* fix: add scroll in heading layout

* chore: remove visible scroll  bar

* fix :format

* chore: fix outline scroll

* chore: fix format

* chore: fix translation

---------

Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>

* fix: merge lists in editor (#8639)

* chore: replace prettier with oxfmt (#8676)

* fix: replace eslint with oxlint (#8677)

* fix: replace eslint with oxlint

* chore: adding max warning

* fix: formatting

* chore(deps): minimatch and rollup package vulnerabilities (#8675)

* fix: package updates

* fix: package upgrades

* fix: minimatch package vulnerabilities

* fix: ajv package vulnerabilities

* fix: lint

* fix: format

* [SILO-1028] feat: Project Summary external API (#8661)

* add project summary endpoint

* update response structure

* [WIKI-852] chore: update page version save logic (#8440)

* chore: updated the logic for page version task

* chore: updated the html variable

* chore: handled the exception

* chore: changed the function name

* chore: added a custom variable

* [WEB-5225] feat: enhance authentication logging with detailed error and info message (#7998)

* feat: enhance authentication logging with detailed error and info messages

- Added logging for various authentication events in the Adapter and its subclasses, including email validation, user existence checks, and password strength validation.
- Implemented error handling for GitHub OAuth email retrieval, ensuring proper logging of unexpected responses and missing primary emails.
- Updated logging configuration in local and production settings to include a dedicated logger for authentication events.

* chore: address copilot comments

* chore: addressed some additional comments

* chore: update log

* fix: lint

* [WEB-6420] chore: migrate community references from Discord to Forum (#8657)

* chore: replace Discord references with Forum links

* chore: migrate help and community CTAs from Discord to Forum

* refactor: replace Discord icons with lucide MessageSquare

* chore: rename Discord labels and keys to Forum

* chore: remove obsolete Discord icon component

* chore: update Discord references to Forum in templates

* chore: code refactoring

* fix: dependabot and codeql CI

* fix: disable react-in-jsx-scope rule in oxlint config (#8682)

After #8677 replaced ESLint with OxLint, the react-in-jsx-scope rule
was not disabled. This causes all commits touching JSX files to fail
the pre-commit hook (oxlint --deny-warnings).

React 17+ uses automatic JSX runtime so explicit React imports are
not required.

Fixes #8681

* chore: space folders (#8707)

* chore: change the space folders structure

* fix: format

* chore(deps): django version upgrade

* [GIT-40]fix: apply sub-issue display filter when adding work items #8534

* [WEB-5606] fix: work item preview word break #8537

* [WIKI-892] fix: description input component re-render #8600

* [WIKI-785] refactor: editor markdown handler #8546

* [WEB-5911] fix: error outline button text color #8531

* [SECUR-116] fix: ssrf webhook url for ip address #8716

* [WEB-6420] chore: self-host social icons in project invitation email (#8718)

* chore: add self-hosted social icon assets for email templates

* chore: pass current_site to project invitation email context

* chore: replace mailinblue CDN icons with self-hosted static assets

* [WIKI-874] refactor: description input component (#8544)

* refactor: description input component

* fix: add missing prop to rich text editor

* chore(deps): bump python-json-logger from 3.3.0 to 4.0.0 in /apps/api (#8692)

Bumps [python-json-logger](https://github.com/nhairs/python-json-logger) from 3.3.0 to 4.0.0.
- [Release notes](https://github.com/nhairs/python-json-logger/releases)
- [Changelog](https://github.com/nhairs/python-json-logger/blob/main/docs/changelog.md)
- [Commits](https://github.com/nhairs/python-json-logger/compare/v3.3.0...v4.0.0)

---
updated-dependencies:
- dependency-name: python-json-logger
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump pytest from 7.4.0 to 9.0.2 in /apps/api (#8693)

Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.0 to 9.0.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.0...9.0.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 9.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [WEB-6599] feat: instance not ready ui revamp (#8755)

* feat: instance not ready ui revamp

* chore: code refactoring

* chore: code refactoring

* chore(deps): upgrade the undici and flatted versions

* [WEB-6610] Fix work item drag handle hover gap (#8759)

* [WEB-6610] Fix work item drag handle hover gap

Amp-Thread-ID: https://ampcode.com/threads/T-019ce703-e30e-769b-9436-a7f5506e8a6c
Co-authored-by: Amp <amp@ampcode.com>

* fix: use p-0! pl-6! for correct drag handle hover area

Amp-Thread-ID: https://ampcode.com/threads/T-019ce703-e30e-769b-9436-a7f5506e8a6c
Co-authored-by: Amp <amp@ampcode.com>

* fix: update containerClassName to -ml-6 border-none p-0! pl-6!

Amp-Thread-ID: https://ampcode.com/threads/T-019ce703-e30e-769b-9436-a7f5506e8a6c
Co-authored-by: Amp <amp@ampcode.com>

---------

Co-authored-by: Amp <amp@ampcode.com>

* chore(deps): bump the actions group across 1 directory with 11 updates (#8741)

Bumps the actions group with 11 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4` | `6` |
| [makeplane/actions](https://github.com/makeplane/actions) | `1.0.0` | `1.4.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4` | `7` |
| [softprops/action-gh-release](https://github.com/softprops/action-gh-release) | `2.1.0` | `2.5.0` |
| [actions/setup-node](https://github.com/actions/setup-node) | `4` | `6` |
| [actions/setup-go](https://github.com/actions/setup-go) | `5` | `6` |
| [docker/login-action](https://github.com/docker/login-action) | `3` | `4` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3` | `4` |
| [docker/build-push-action](https://github.com/docker/build-push-action) | `6.9.0` | `7.0.0` |
| [tailscale/github-action](https://github.com/tailscale/github-action) | `2` | `4` |
| [actions/cache](https://github.com/actions/cache) | `4` | `5` |



Updates `actions/checkout` from 4 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

Updates `makeplane/actions` from 1.0.0 to 1.4.0
- [Release notes](https://github.com/makeplane/actions/releases)
- [Commits](https://github.com/makeplane/actions/compare/v1.0.0...v1.4.0)

Updates `actions/upload-artifact` from 4 to 7
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

Updates `softprops/action-gh-release` from 2.1.0 to 2.5.0
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2.1.0...v2.5.0)

Updates `actions/setup-node` from 4 to 6
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v6)

Updates `actions/setup-go` from 5 to 6
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v5...v6)

Updates `docker/login-action` from 3 to 4
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v3...v4)

Updates `docker/setup-buildx-action` from 3 to 4
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v3...v4)

Updates `docker/build-push-action` from 6.9.0 to 7.0.0
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v7.0.0)

Updates `tailscale/github-action` from 2 to 4
- [Release notes](https://github.com/tailscale/github-action/releases)
- [Commits](https://github.com/tailscale/github-action/compare/v2...v4)

Updates `actions/cache` from 4 to 5
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: makeplane/actions
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: softprops/action-gh-release
  dependency-version: 2.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/setup-go
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: docker/setup-buildx-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: docker/build-push-action
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: tailscale/github-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: remove chat support component

* fix: added workspace member check in allow permission for creator #8778

* fix: package updates

* fix: remove unused imports and variables (part 1 — packages & non-web-core) (#8751)

* fix: remove unused imports and variables (part 1)

Resolve oxlint no-unused-vars warnings in packages/*, apps/admin,
apps/space, apps/live, and apps/web (non-core).

* fix: resolve CI check failures

* fix: resolve check:types failures

* fix: resolve check:types and check:format failures

- Use destructuring alias for activeCycleResolvedPath
- Format propel tab-navigation file

* fix: format propel button helper with oxfmt

Reorder Tailwind classes to match oxfmt canonical ordering.

* fix: remove unused imports and variables (part 2 — web/core non-issues) (#8752)

* fix: remove unused imports and variables (part 2)

Resolve oxlint no-unused-vars warnings in apps/web/core/
(excluding components/issues/).

* fix: resolve CI check failures

* fix: resolve check:types failures

* fix: remove unused imports and variables (part 3) (#8753)

Resolve oxlint no-unused-vars warnings in
apps/web/core/components/issues/.

* fix: removed unused files

* chore: remove service token endpoint which is unused (#8797)

* fix: broken lockfile

* fix: add model_activity.delay() to API issue update/create paths for webhook dispatch (#8792)

Fixes #6746

API-driven issue updates (PUT update, PUT create-via-upsert, PATCH) were
missing `model_activity.delay()` calls, so webhooks were never dispatched
for changes made through the API. The web UI paths already include these
calls (e.g. in `post()` at L475), but the `put()` and `partial_update()`
methods only called `issue_activity.delay()`.

This adds `model_activity.delay()` immediately after each existing
`issue_activity.delay()` in these three code paths, using the same
signature as the existing call in `post()`.

Tested on Plane CE v1.2.1 self-hosted: API PATCH triggers
`webhook_send_task` in the Celery worker, confirming webhook delivery.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* [WEB-6702] feat: redesign intake action buttons and use design tokens (#8801)

* feat: intake action buttons redesign

* chore: code refactoring

* Open [WEB-6739] fix: color inside of active projects of analytics overview tab #8803

* [WEB-6734] fix: circular progress indicator stroke color#8802

* fix: migrate page navigation pane tabs from headless ui to propel (#8805)

* chore(deps): bump requests (#8804)

Bumps the pip group with 1 update in the /apps/api/requirements directory: [requests](https://github.com/psf/requests).


Updates `requests` from 2.32.4 to 2.33.0
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.4...v2.33.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.33.0
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: tsdown watch (#8813)

closes #8791

* [WEB-6762] fix: missing profile icons for recent activities on "Your Work" Page #8812

* [WEB-6763] fix: date range dropdown clipped in sub-issues list #8809

* [WEB-6783] fix: crash when deleting work item from peek view in workspace spreadsheet (#8821)

* fix: guard against undefined issue in SpreadsheetIssueRow

* fix: add defensive guard for isIssueNew in list block-root

* chore(deps): bump cryptography (#8819)

Bumps the pip group with 1 update in the /apps/api/requirements directory: [cryptography](https://github.com/pyca/cryptography).


Updates `cryptography` from 46.0.5 to 46.0.6
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.5...46.0.6)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 46.0.6
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [SILO-1087] feat: add IssueRelations external API (#8763)

* add IssueRelations external API

* update serializer methods and filter by slug

* [SILO-1026] feat: add estimates external API endpoints (#8664)

* add project summary endpoint

* update response structure

* add estimates external API endpoints with migrations

* fix invalid project and workspace error

* [WEB-6794] fix: align profile cover update with correct unsplash and upload handling (#8830)

* fix: profile cover update

* chore: code refactoring

* chore: code refactoring

* chore(deps): update dependency overrides (#8831)

Update brace-expansion override from 2.0.2 to 5.0.5 and add picomatch,
yaml@1, and yaml@2 overrides to pin transitive dependency versions.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore(deps): replace dotenvx with dotenv and update overrides (#8832)

* chore(deps): replace dotenvx with dotenv and update dependency overrides

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: sort devDependencies in package.json files

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: version bump

* fix: scope IssueBulkUpdateDateEndpoint query to workspace and project (#8834)

The bulk update date endpoint fetched issues by ID without filtering
by workspace or project, allowing any authenticated project member to
modify start_date and target_date of issues in any workspace/project
across the entire instance (IDOR - CWE-639).

Scoped the query to include workspace__slug and project_id filters,
consistent with other issue endpoints in the codebase.

Ref: GHSA-4q54-h4x9-m329

* chore: adding traget commit sha for the github release

* [INFRA-346] chore: remove artifacts.plane.so references from community deployments (#8836)

* chore: Intake snooze modal width

* [INFRA-351] fix: correct directory and command for space program in supervisor.conf #8838

* [WEB-6813] fix: module not associated when accepting intake work items (#8839)

* fix: intake module association on accept

* chore: code refactoring

* chore: add ops/ — NixOS module + obs + hooks

---------

Signed-off-by: majiayu000 <1835304752@qq.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
Co-authored-by: Aaron <lifeiscontent@users.noreply.github.com>
Co-authored-by: pushya22 <130810100+pushya22@users.noreply.github.com>
Co-authored-by: Pushya Mitra Thiruvooru <pushya@Pushyas-MacBook-Pro.local>
Co-authored-by: b-saikrishnakanth <130811169+b-saikrishnakanth@users.noreply.github.com>
Co-authored-by: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com>
Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com>
Co-authored-by: Aaryan Khandelwal <65252264+aaryan610@users.noreply.github.com>
Co-authored-by: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Co-authored-by: VipinDevelops <vipinchaudhary1809@gmail.com>
Co-authored-by: gakshita <akshitagoyal1516@gmail.com>
Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>
Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>
Co-authored-by: Henit Chobisa <chobisa.henit@gmail.com>
Co-authored-by: Sangeetha <sangeethailango21@gmail.com>
Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>
Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com>
Co-authored-by: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Shaikh Naasir <yoursdeveloper@protonmail.com>
Co-authored-by: lif <1835304752@qq.com>
Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
Co-authored-by: vamsikrishnamathala <matalav55@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
Co-authored-by: yy <yhymmt37@gmail.com>
Co-authored-by: punto <119956578+AshrithSathu@users.noreply.github.com>
Co-authored-by: Ship it <161483884+vcscroll@users.noreply.github.com>
Co-authored-by: Akshat Jain <akshatjain9782@gmail.com>
Co-authored-by: stelmsk <151884118+stelmsk@users.noreply.github.com>
Co-authored-by: Cornelius <70640137+conny3496@users.noreply.github.com>
Co-authored-by: Dheeraj Kumar Ketireddy <dheeraj.ketireddy@plane.so>
Co-authored-by: Vihar Kurama <vihar.kurama@gmail.com>
Co-authored-by: Saurabh Kumar <70131915+Saurabhkmr98@users.noreply.github.com>
Co-authored-by: darkingtail <51188676+darkingtail@users.noreply.github.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: ouchan <111338754+ouchanip@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants