Elean

Changelog

Everything we shipped, in order.

New features, improvements, and fixes — dated, and kept in one place so you can catch up in a single scroll.

GitHub joins Google and email as a sign-in option, and the Help menu now points at the API reference, MCP docs, and the community.

New

  • Sign in with GitHub — You can now sign in to Elean using your GitHub account alongside the existing Google and email options.
  • Help menu — The Help menu now includes links to the API Reference, MCP documentation, and the Community.

Fixed

  • Danger Zone access — The Delete Workspace option in Settings is now correctly restricted to workspace owners only.
  • Security hardening — Several additional authorization and data integrity checks have been tightened across the API.

Board and table view are now remembered per project, and four fixes land across task moves, activity charts, and due date reminders.

Improved

  • Task view mode per project — Switching between board and table view is now remembered separately for each project instead of being shared across all projects.

Fixed

  • Move task button — The “Move task” button in the task detail panel was broken and did nothing when clicked.
  • Activity charts — Daily activity was being bucketed by UTC time instead of local time, causing charts to show activity on the wrong day.
  • Due date notifications — Stale due date reminders could be sent after a task’s due date was changed. Notifications now always reflect the latest value.
  • Security hardening — Several authorization checks across the API have been tightened.
  • API validation — Input validation across several endpoints has been improved, with clearer error responses for invalid data.

Editor & UI fixes

Fixed

  • Description showing unsaved changes on open: Opening a task could sometimes show the Save/Cancel buttons on the description even though nothing had been edited.
  • Comment with only a list couldn’t be submitted: A comment consisting entirely of a bullet or numbered list kept the “Add comment” button disabled despite having real content.
  • Link existing task search overflowing its container: The search dialog was rendering outside its own borders when task titles were long.

AI agents can work with subtasks, the Task Board gains a Linear-style filter bar, and every task property picker has been rebuilt to look the same everywhere.

New

  • MCP: subtask support — AI agents connected via mcp.elean.app can now create and move subtasks using parentTaskId in create_task and update_task, and list a task’s subtasks with the new list_subtasks tool. The same one-level nesting limit as in the dashboard applies.
  • Task Board filter bar — The filters popover and separate cycle selector have been replaced with a single Linear-style filter bar.
    • Filter by Status, Priority, Assignee, Labels, and Cycle — each with “is any of” and “is not any of” support, including Unassigned, No labels, and No cycle options.
    • Filter by due date, creation date, or last updated date using a custom range or quick presets like Today, Last 7 days, and Last 30 days.

Improved

  • Task property pickers — Assignee, label, priority, status, and cycle selectors have been redesigned with a consistent look and feel across the board, table, and task detail panel.
    • Assignee and label pickers now include search.
    • Multiple assignees in the task table now display as separate badges instead of being grouped together.
  • Labels — Adding multiple labels at once is now smoother, with no risk of accidentally dropping one while selecting another.
  • Attachment preview for draft comments — Files added to a comment or reply before sending can now be previewed — image thumbnail or file icon — matching the preview already available for posted attachments.
  • Kanban card properties — Priority, due date, and cycle badges on kanban cards now share a consistent style and align to the same baseline.

Fixed

  • Markdown in API and MCP-created content — Task descriptions and comments created via the public API or an MCP agent were showing raw markdown symbols instead of formatted text. Headings, bold, italic, inline code, lists, task lists, code blocks with syntax highlighting, blockquotes, and links now all render correctly.
  • Multi-assignee on board and table — Assigning multiple people to a task was only possible from the task detail panel. It now works directly from the kanban board and task table as well.
  • Search in assignee and label pickers — Typing in the search field now actually filters the list.
  • Subtask property changes not reflecting in table view — Changing a subtask’s status, priority, or assignee directly in the table now updates the row immediately without requiring a page refresh.
  • Multiple cycles in Task Board filter — Selecting more than one cycle in the filter was only applying the first one. All selected cycles are now respected.
  • Unassigned and No labels filters — Both filters were showing all tasks instead of only the matching ones.
  • Images pasted into comments — Images pasted or dropped into a comment or reply are now added as attachments instead of being inserted inline, where they were getting cut off and couldn’t be resized.

Task management & integrations

New

  • Cycle indicator on kanban cards: Tasks that belong to a cycle now show the cycle name on their card. A quick cycle filter button also appears next to Filters — no need to open the full filter panel.
  • [API] MCP: label listing and cycle assignment: AI agents connected via mcp.elean.app can now list available labels with the new list_labels tool, and assign tasks to a cycle when creating or updating them. list_statuses now also returns the correct project-specific statuses.
  • [API] Webhook events: Integrations now receive task.updated and task.deleted events — previously only status and priority changes were emitted, and deletions were never sent.

Improved

  • Create Task dialog: Redesigned layout with the project picker moved to the top. Property fields (assignee, status, priority, labels, due date, cycle) now start as icon-only and expand when a value is selected — less visual noise when starting from scratch. Status and priority changes animate smoothly. Removing a due date moved from an external × button to a “Remove date” option inside the calendar.

Fixed

  • “Upgrade” buttons: All upgrade prompts across the app (Custom Roles, Cycles, Audit Log, and others) now correctly open the Billing tab instead of General settings.
  • Bullet and checklist markers: List markers in task descriptions were floating above the text instead of aligning with it. Now correctly aligned.
  • Kanban loading state: The skeleton loader now matches the actual card layout, and columns show card skeletons instead of a “Loading…” text while tasks are being fetched.

A new mid-tier plan, expanded limits across all plans, and annual billing with 17% savings.

Improved

  • New Yasien plan: A new plan between River and Alpheus — $55/mo or $49/mo billed annually. Includes 35 seats, unlimited storage, and $3 per additional seat.
  • Bigger Free plan (Stream): 7 seats (up from 3), 2GB storage (up from 500MB), 10 projects (up from 5), 15 custom labels (up from 10), and 15 AI requests per user (up from 10).
  • River expanded: Now includes 20 seats, 25GB storage, 75 labels, and 35 AI requests per user — at the same price of $29/mo.
  • Alpheus expanded: Now includes unlimited storage and 75 AI requests per user — at the same price of $79/mo.
  • Annual billing: Available on River, Yasien, and Alpheus — 17% cheaper than monthly (River $25/mo, Yasien $49/mo, Alpheus $70/mo billed annually).
  • Scheduled plan changes: When changing your plan you can now choose to apply it immediately or at the next renewal — no surprise charges.
  • Annual renewal reminders: You’ll receive an email 7 days before your annual plan renews.

Connect AI agents like Claude Code to your workspace, syntax highlighting in code blocks, full-page settings, redesigned billing, and a round of editor fixes.

New

  • AI agent connectivity (MCP):
    • Connect AI agents like Claude Code directly to your workspace through a secure, one-click authorization flow — they can read your projects and tasks, create and update tasks, and add comments on your behalf.

    • See every AI agent connected to your account and revoke access anytime from Settings → Security.

    • Workspace owners can turn AI agent connections on or off for the whole workspace from Workspace Settings → Security — off by default until explicitly enabled.

  • Editor:
    • Code blocks now highlight syntax automatically for most popular languages — JS/TS, Python, Go, Rust, SQL, and many more. No manual language selection needed.
    • Pasting formatted text from Slack, GitHub, or any markdown source now renders as rich text instead of raw symbols.
  • Plan change confirmation: Before upgrading or downgrading, you now see the exact amount that will be charged or credited before confirming.

Improved

  • Full-page Settings: Workspace and Project Settings are now dedicated full-page views with an animated sidebar, replacing the previous modal overlay.

  • Redesigned Billing: New payment history with downloadable invoices and billing contact and card details.

  • Inline settings editing: Team invites, Roles, API Keys, Labels, and Statuses can now be created and edited inline without opening a separate dialog.

  • Billing success confirmation: Plan changes are now confirmed with a quick animation instead of a full-page redirect with a countdown.

  • Audit Log: Cleaner layout with timestamps always shown in full.

  • Two-factor authentication: Improved reliability and smoother animations when confirming a code.

  • Error handling: Unexpected errors now show a friendly screen with a reload option instead of a blank page.

Fixed

  • Security settings: Missing icons restored.
  • Payment history: Payment status (declined, processing, refunded) now displayed correctly.
  • Editor:
    • Pasting or dropping an image no longer uploads it immediately — the file is only sent to the server when you actually save the description or send the comment. Cancelling an edit with a pasted image leaves nothing behind.
    • Removing an image from a saved description now also deletes the associated attachment.
    • Pasting images now works correctly in comment replies and the Task Quick View panel.
    • Deleting a comment now removes all of its attachments from storage — previously they were left behind and could reappear as task attachments.

Redesigned auth and onboarding flow with a unified layout, a new screen for invited users, animated transitions, and a round of critical fixes.

New

  • Workspace invitation prompt: Users who receive a workspace invitation but sign in manually are now shown a choice — join the inviting workspace or create their own. Previously, the invitation would be left pending while the user unknowingly created a separate workspace.

  • Editable workspace slug: The workspace URL slug in onboarding is now editable and auto-generated from the workspace name, with live validation showing a checkmark, error, or spinner as you type.

  • Per-plan integration limits: Each integration now has its own instance limits depending on your plan. Discord supports up to 3 instances on Stream and 10 on River, Webhooks up to 2 on Stream and 10 on River — Alpheus has no limits on any integration. When the limit is reached, the Connect button is replaced with a “Limit reached” badge.

Improved

  • Auth page: Refreshed with a centered layout matching the new onboarding design. Google sign-in now appears above the email input.

  • Onboarding: Unified layout consistent with the auth page. Headers crossfade between steps, and each step animates in smoothly. Step number indicators removed.

  • Invite step: Invitation slots now appear dynamically as you fill them in, instead of showing three empty inputs upfront.

Fixed

  • Stuck “Authenticating…” screen: The loading screen no longer hangs indefinitely when following an expired or already-used magic link.
  • Expired magic link error: Users now see a clear message explaining that the link has expired or been used, with a prompt to request a new one.
  • Partial invite failure: A single failed invitation no longer cancels the remaining ones — all valid invites are now sent independently.
  • Onboarding flash on auth page load: The onboarding flow no longer briefly appears when loading the auth page.

Connect Discord and Webhooks from a new Integrations tab, navigate all settings from a single unified dialog, and a round of fixes.

New

  • Integrations: A new Integrations tab in Workspace Settings lets owners and admins connect external services. Currently supported: Discord (channel notifications) and Webhooks (HTTP POST to any URL). Choose which events to listen to, scope them to specific projects, manage multiple instances, and inspect delivery history with full payload and response details.
  • Unified Settings dialog: All settings — user, workspace, and project — are now accessible from a single dialog with left-side navigation, replacing three separate pages.

Improved

  • Label and assignee selectors: Both fields in the task detail panel now use a searchable popover, consistent with the cycle and parent task selectors.
  • Completed tasks: Task titles now appear with a strikethrough when marked as done in both board and table views.
  • Real-time updates: Cycles, members, labels, and statuses now update in real time across all connected clients without requiring a page refresh. Task search results also stay in sync when tasks are updated or deleted.

Fixed

  • My Tasks: Project cards are now stable and filter transitions are smooth.
  • Unsaved changes detection: Settings forms now correctly detect when changes have been reverted, preventing false “unsaved changes” indicators.
  • Intermittent logouts: Fixed an issue where users were unexpectedly signed out while working. Session validation is now cached, eliminating unnecessary network calls on every request.
  • Task disappearing on status change: Tasks no longer vanish from the table view when their status is updated.
  • Notification preferences error state: When the notifications service is unavailable, a clear error message is shown with a retry option instead of a blank screen.
  • Reply attachments: Attachments added to a reply are now correctly displayed in the comment thread.
  • Status and label updates: Changes now apply instantly in the UI without a visible delay.

Personal task dashboard, time-boxed cycles, redesigned comments with replies, inline file previews, custom roles, and a round of fixes.

New

  • Reply to comments: Comments now support replies — click Reply under any comment to respond directly to its author.

  • Custom Roles: Workspace Owners can now create and edit custom roles with a fully configurable permission matrix in Settings → Roles.

  • My Tasks dashboard: The home screen has been rebuilt into a personal view — with stats and an overview of your current tasks across the workspace.

  • Cycles: Time-boxed sprints are now available across the workspace and per project. Create and manage cycles, assign tasks to a cycle directly from the task panel, filter the board by cycle, and track progress with burndown, distribution, and workload charts. Available on River and Alpheus plans.

  • Analytics: A new Analytics page is available for workspace owners and admins, covering team activity, task distribution, and a project breakdown.

Improved

  • Comments: Cleaner redesign with a timeline layout. The section is now collapsible.

  • Delete confirmation: Deleting a comment now requires confirmation in a dialog.

  • File icons: Each file type now has a color-coded icon with a label — PDF, DOC, XLS, video, ZIP, code files, images, and more.

  • File previews: Clicking a file attachment opens an inline preview dialog. Images, PDFs, video, and audio all display directly — no new tab needed. A Download button saves the file straight to disk.

  • Permission matrix: Simplified and cleaned up — three redundant project-level permissions that had no effect have been removed. Custom roles can also be granted the new cycle:manage permission via workspace settings.

  • UI respects permissions: The “New Project” button and the + shortcut in the sidebar are now hidden for roles without project creation permission.

Fixed

  • Workspace name and description: Changes made in Settings → General are now properly saved. Previously the form appeared to submit successfully but changes were never persisted.
  • Change Role visibility: Admins no longer see the “Change Role” option for members they don’t have permission to edit.

Significant redesign of the core app interface, due date reminders, expanded Public API, and Amazon SES email delivery.

This release brings a significant redesign of the core app interface — navigation, sidebar, and task detail have all been reworked for a cleaner, more consistent experience. Email delivery also moves to Amazon SES under the hood.

New

  • Copy API IDs from Settings: Workspace admins and developers can now copy UUIDs for members, labels, and statuses directly from the settings UI. Hover over any entry to reveal a copy button — no extra API calls needed.

  • Due date reminders: Project leaders and workspace managers can configure per-project rules that automatically notify assignees and the project leader when a task is approaching or past its due date. Rules are defined as a number of days before or after the due date and can be toggled individually. User notification preferences are respected.

  • [API] Assignees and labels: Tasks can now be assigned to users and labeled directly from external integrations. Both fields are supported on task creation and updates — passing an empty array clears the current value.

  • [API] New endpoints: GET /{projectSlug}/labels lists all labels available in a project, GET /{projectSlug}/members lists all project members.

  • [API] Task filtering: The task list endpoint now accepts assigneeId and labelId as filters.

  • [API] Labels in task responses: Task objects now include a labels array with each label’s id, name, and color.

Improved

  • Sidebar: Simplified layout — flatter, less visual noise, notification bell integrated directly into the sidebar. Workspace settings now live at the bottom as a permanent entry.
  • Profile menu: Clicking your profile now surfaces account settings including Security and Notifications.
  • Help menu: The sidebar footer now has a Help dropdown covering docs and support.
  • New Task button: Moved to the header for faster access.
  • Notification preferences: Each notification type now has separate Email and In-app toggles, replacing the previous single on/off switch per channel.

Simplified project access model, passwordless auth, live chat support, and a round of fixes.

The past two weeks we stepped back from features to focus on the foundation. A database migration, a reworked deployment pipeline, and a round of refactoring — changes you won’t notice directly, but that make everything faster and more reliable going forward.

New

Project access & permissions — simplified: Per-project roles (Owner, Admin, Member) have been replaced with a cleaner two-level model. Access is now determined by two things: whether you’re the Project Leader of a given project, or a Workspace Admin.

Here’s what changed:

  • Project settings (general, team, statuses, access) are only visible to the project leader and workspace admins. Regular members no longer see the settings tab.
  • Adding/removing members — only the project leader or a workspace admin can do this.
  • Leaving a project — project leaders must transfer leadership before they can leave.
  • Joining projects — public projects are joinable by any workspace member. Private projects can only be joined by workspace admins, who see a Join button regardless of visibility.
  • Project list — workspace admins always see all projects, even with “hide private projects” enabled.

Live chat support: A support button is now available in the sidebar. First use prompts a one-time consent dialog — once accepted, you can reach us directly from within the app.

Improved

Assignee filter with search: The assignee filter now has a search input — useful once your workspace has more than a handful of members. Label filter style has been unified to match.

Fixed

Removing pending workspace members: Invited members who hadn’t accepted yet couldn’t be removed. This is now fixed — you can revoke pending invitations directly from the Members list.

Invited members now appear instantly: After sending an invitation, the new member showed up in the list only after a page refresh. Fixed.

Default invite role is now Member: Previously the invite form defaulted to Owner, requiring a manual role change every time. Now it defaults to Member.

Onboarding no longer lets you continue with an invalid workspace URL: The continue button is now blocked until the workspace slug passes validation.

Email notifications deliverability: Notification emails were bouncing for some providers, including Gmail. This has been resolved — notifications should now arrive reliably.

Assignee list scrolling in task quick view: The assignee dropdown in the quick view panel required grabbing the scrollbar to navigate. Normal scrolling now works.

Removed

Password login: Sign in is now magic link or Google only. The password option has been removed from the login screen and Settings → Security.

Per-project roles: Role assignment at the project level (Owner/Admin/Member per project) has been removed, along with the “Change role” action in project team settings. Access is now handled through Project Leader and Workspace Admin.


API access is now available on every plan with per-tier rate limits.

New

API Rate Limiting: API keys now have per-tier rate limits — Stream: 20 req/min, River: 60 req/min, Alpheus: 200 req/min. Limits are tracked per key, not per IP.

Bulk actions: Select multiple tasks using the new checkbox column and apply changes to all of them at once — set status, change priority, or delete with a confirmation prompt. A floating action bar appears at the bottom of the screen whenever tasks are selected.

Improved

API Access on All Plans: API access is now available on Stream, River, and Alpheus. Previously it was restricted to River and above.

Attachments: Tasks now accept a much wider range of file types — including video (mp4, webm, mov, avi), vector and raster images (svg, bmp, tiff, ico), LibreOffice documents (odt, ods, odp), and code or config files (json, yaml, xml, html, css, js, ts, sql, sh, log). Applies to both the dashboard and the public API.

Table view: The task table no longer renders inside a nested card — it now sits flat and full-width against the app background, reducing visual clutter.

Sorting: The table’s Status and Assignee columns are now sortable. Kanban columns gain two new sort options: Due Date (earliest or latest first) and Assignee (A–Z or Z–A).

Clear filters: A “Clear ×” button now appears directly in the toolbar whenever filters or search are active, without needing to open the filter popover. When no tasks match the current filters, a clear button also appears inline in the empty state.

Fixed

Workspace owner role management: Only the workspace creator can invite members as owner, assign the owner role, or remove other owners. Other owners can no longer bypass this by using the invite flow. The workspace creator cannot be removed or have their role changed by anyone.

Image paste in task descriptions and comments, label filtering on the board and API, and several real-time sync fixes.

Improved

Label Filtering: Tasks can now be filtered by labels on the board and via the public API.

Email Notifications: The elean logo now displays correctly in notification emails.

Optimistic Deletions: Deleting a task or comment now reflects instantly in the UI without waiting for a server response.

Fixed

Image paste in descriptions and comments: Pasting images into task descriptions and comments now uploads them correctly instead of failing for larger files.

Real-time task updates via API: Changes made through the public API are now reflected in real time for all workspace members without a page refresh.

Task status via API: Status set through the public API is now correctly persisted.

Deleted tasks and comments: Removed tasks and comments now disappear instantly for all workspace members without requiring a page refresh.

Project deletion redirect: Users viewing a project that gets deleted by another member are now automatically redirected instead of seeing a broken page.

Custom color picker for projects, statuses and labels, a redesigned changelog timeline, and several editor and dialog fixes.

New

Custom Color Picker: Projects, statuses, and labels now use a full HSV color picker instead of a fixed set of presets. Pick any color, enter a hex value directly, or reset to the default. Project colors are also now visible in the sidebar.

Improved

Changelog: The changelog page has been redesigned with a date-based timeline layout. Each release now shows a label and a short description instead of a version number.

Sidebar Updates: The updates indicator in the sidebar now shows the release label and description instead of a version number.

Fixed

Editor bubble menu in dialogs: The text formatting menu now works correctly inside task quick view and the create task dialog.

Create task dialog overflow: The create task dialog no longer overflows the screen when the description is long.

AI Improve dialog: The dialog no longer overflows its scroll area when content is long.

Assignee selector styling: The assignee selector in the create task form no longer shows a dashed border and italic text.

elean is officially out of early access. This release brings a public API with full task CRUD, GDPR compliance tools including data export and automatic inactivity deletion, a redesigned task quick view, and API key authorship in task activity.

New

Public API: The elean API is now available for external integrations. Create, update, delete, and comment on tasks programmatically. Task creation now correctly returns the assigned status. Full documentation available at docs.elean.app.

GDPR Data Export: Users can download a copy of all their data — profile, workspace memberships, tasks, comments, and activity history — from Settings → Security. Implements GDPR Article 20 right to data portability.

Inactivity Warning & Auto-deletion: Users inactive for 180 days receive an email warning. If no login follows within 30 days, the account is automatically anonymized. Implements data retention requirements under the DPA.

Task Quick View: Opening a task from the board or list now shows a two-column dialog — description, subtasks, and comments on the left; properties, attachments, and activity on the right. Subtasks are navigable inline without losing context.

Subscription Management: Subscriptions can now be cancelled with a scheduled end date or reactivated before the cancellation takes effect — directly from workspace billing settings.

Plan Feature Limits: Plan features are now enforced per tier — including multi-assignees, public roadmap, and audit log retention. Features unavailable on your current plan are gated accordingly.

Pricing & Plans: Subscription tiers are now fully available — compare plans and subscribe directly from the pricing page or the billing section in workspace settings.

Duplicate Task: Tasks can now be duplicated — clicking the duplicate icon opens a pre-filled create dialog with the same title, description, and properties ready to save as a new task.

API Key Authorship: Task activity and comments created via the API now show the API key name as the author instead of a blank entry.

Improved

Workspace member list: The member list in workspace settings now paginates instead of loading all members at once — faster and more usable in larger teams.

Attachment upload errors: Upload failures now show a clear error message — including a specific message when a file exceeds the size limit — instead of a generic “Failed”.

Updates in sidebar: Release updates are now accessible directly from the sidebar footer, replacing the previous popup.

Invitation error messages: Errors when inviting members — such as reaching the seat limit — now display a clear message instead of a generic error.

Email Notifications: Notifications are now batched — instead of receiving a separate email for every event, updates are grouped into a single digest delivered every 2 minutes. The email template has also been fully redesigned for better compatibility across mail clients including Gmail, Thunderbird, and Apple Mail.

Inactivity Emails: Added a dedicated email template for inactivity warnings — separate design from standard task notifications, with a clear CTA to log back in.

Fixed

Duplicate task IDs: Fixed a race condition where two tasks created at the same time could receive identical IDs.

Seat limit counting: Member limit checks now correctly count both active and invited members, excluding soft-deleted accounts. Previously, pending invitations were not counted, allowing workspaces to exceed their seat limit.

Seat count with add-ons: Workspaces with additional purchased seats now show the correct seat count in billing settings.

Billing plan limits on expiry: When a subscription ends or goes on hold, seat limits are now reset immediately to the plan’s included seats.

Task status missing on creation via API: Tasks created through the public API now correctly return the assigned status in the response.

Project deletion with tasks: Deleting a project no longer fails when tasks exist — tasks are removed cleanly before the project is deleted.

Overhauled workspace member removal, added account deletion, rewrote kanban drag-and-drop, and fixed several issues introduced in 0.4.0.

New

Account Deletion: Users can now permanently delete their account from Settings → Security → Danger Zone. Requires typing your email to confirm. Your profile is anonymized across all workspaces and the session is immediately revoked.

Improved

Private Attachments: Task attachments are no longer publicly accessible — files are now served via short-lived presigned URLs. Avatars are served from a separate CDN bucket and remain fast to load.

Kanban Drag and Drop: The kanban board now uses a rewritten drag-and-drop engine. Cards show a static placeholder at the exact drop position, the overlay rotates slightly while dragging, and sort order is preserved correctly after dropping — including both ascending and descending column sorts.

Fixed

Removing workspace members: Removing a member no longer breaks task history — the member is soft-deleted and appears as “Deleted User” in task views rather than being wiped from the record.

Invited user role assignment: Invited users no longer receive an incorrect role on an existing workspace during the sync process.

Stream-tier workspace incorrectly locked: Workspaces on the Stream plan were being incorrectly locked after the billing grace period due to a missing field in the database query.

Subtask progress bar disappearing after task update: The subtask progress bar no longer vanishes after any task is updated — missing relations in the WebSocket payload were causing the data to drop.

Billing and subscription plans go live for the first time, MFA and security controls land across user and workspace settings, and task management gets meaningful upgrades — move tasks between projects, customizable statuses, kanban subtask previews, and a new command palette.

This is a substantial release. Billing and subscription plans go live for the first time, MFA and security controls land across user and workspace settings, and task management gets a round of meaningful upgrades — move tasks between projects, customizable statuses, kanban subtask previews, and a new command palette.

New

Task Status Management: Workspaces now have a default set of task statuses that new projects inherit automatically. Each project can then customize its statuses independently — reorder, add, or remove without affecting the workspace template.

Move Task to Another Project: Tasks can now be moved between projects via the task detail header. Pick a target project, then assign a status for the parent task and each subtask individually — subtasks default to the closest equivalent status category in the target project.

Multi-Factor Authentication (MFA): Users can now set up TOTP-based MFA from account settings. Workspace admins can enforce MFA as a requirement for all members via the new Security settings in workspace configuration.

Security Settings: A dedicated Security page in user settings lets you manage your password and MFA setup in one place. Users without a password (e.g. social login) can now set one via email.

Quick Actions (⌘K): A command palette is now accessible via Ctrl / Cmd + K or the new button in the sidebar. Quickly create tasks and navigate without leaving the keyboard.

Project Privacy Controls: Workspace admins can now control whether private projects are visible to all members or hidden entirely. When hidden, a private project only appears for members explicitly added by the project admin.

Billing & Subscription Plans: Billing is now live — workspaces can subscribe to a plan, manage seats, and update payment methods directly from workspace settings. When a payment fails, the workspace enters a 7-day grace period: owners see a countdown banner and can fix payment without leaving the app. After the grace period, non-owner members lose access until billing is resolved; owners retain full access and are redirected to billing settings.

Improved

Subtask Preview in Kanban: Clicking the subtask progress bar on a kanban card now expands an inline list of subtasks with their status — previously only available in table view.

Auth & Onboarding: The login and onboarding screens have been fully rebuilt with a new responsive layout.

Task Activity History: Description changes are now tracked in task activity, alongside existing title change history.

Settings Deep Links: Settings tabs now sync with the URL via ?tab=x, so you can link directly to a specific tab and the correct tab opens on page refresh.

Fixed

Overdue badge on completed tasks: Tasks marked as done no longer show an overdue indicator, even if the due date has passed.

Settings page redirect on refresh: Refreshing a settings page no longer kicks you back to the dashboard — the permission check now waits for data to load before deciding whether to redirect.

Introducing Public API v0.0.1, rich link previews with OpenGraph support, optimized Kanban filtering, and enhanced multi-screenshot feedback.

Visibility and Interface Precision

This update focuses on how elean.app content is presented both internally and externally. We are also excited to introduce the first version of our public API, alongside interface optimizations and comprehensive localization updates.

New Features

Public API v0.0.1: We are launching the initial version of our public API. While this is a foundational release, it allows for basic integrations with the elean.app ecosystem.

  • Documentation: Full API documentation is now available at https://docs.elean.app/.
  • Feedback Wanted: As this is an early version, we highly encourage developers to share their feedback to help us prioritize future endpoints and features.

Rich Link Previews (OpenGraph): Task pages now include dynamic meta tags. Sharing a link to a task in external communication tools will now display the Task ID and Title in the preview. This also ensures browser tabs and history entries provide clear context.

Multi-Screenshot Feedback: The feedback dialog now supports multiple attachments. Users can upload and send several screenshots simultaneously for more comprehensive bug reporting and visual suggestions.

Context-Aware Filtering: The Task Filters component now dynamically adjusts based on the active view.

Kanban Optimization: The status filter has been removed from the Kanban view to eliminate redundancy, as the board is already organized by status columns.

UI/UX & Localization

Project List Refinement: Removed the unused secondary action menu (three-dot button) from the Project List view to further declutter the interface.

Comprehensive Translation & Terminology: We have standardized the vocabulary and fixed missing translations across the entire app:

  • Filters & Labels: All filter options and label management settings are now fully localized in English and Polish.
  • Settings Indicators: Added missing translations for the “Soon” badge in Workspace and Project settings.
  • Consistency Audit: Adjusted terminology across settings and task details to ensure a professional and cohesive vocabulary.

Architect’s Note

The introduction of Public API v0.0.1 marks our first step toward a more open and extensible platform. Combined with rich metadata and a leaner UI, elean.app is becoming more integrated and efficient for every type of workflow.

Introducing project archiving, a complete overhaul of the service architecture, and enhanced workspace member management.

Structural Integrity and Lifecycle Management

This update focuses on long-term project management and a massive internal restructuring of our core services. We have introduced the ability to archive projects and completely rebuilt how workspaces, members, and tasks are handled internally to ensure a more robust and maintainable system.

New Features

Project Archiving: You can now archive projects that are no longer active. This keeps your workspace clean while preserving all historical data and task records. We have added full UI support, including localization and dedicated permissions for this state.

Enhanced Workspace Member Management: A new dedicated service now handles member-related operations. This includes improved logic for assigning users to workspaces, managing roles, and implementing strict validation to prevent unauthorized administrative changes.

Advanced Label Management: Introduced a centralized Workspace Label Service. This allows for more granular control over labels, including project-scoped validation and integrated audit logging for all label-related actions.

Architectural Refinement

Service Layer Decoupling: We have conducted a major refactor of the backend modules to improve separation of concerns and system performance:

  • Task Management: Task history, comments, and attachments have been moved into specialized services.
  • Project Module: Membership logic is now decoupled from core project services, allowing for more efficient data retrieval and cleaner code organization.
  • Streamlined Workspace Initialization: The workspace creation process has been optimized to automatically synchronize with Stytch organizations, setting up default roles, statuses, and priorities in a single, atomic operation.
  • Task Validation Engine: A new Task Validator Service has been implemented to ensure that all project members and labels are correctly authorized before any modifications occur.

UI/UX Enhancements

Mobile Visibility & Responsiveness

  • Task Properties: Task properties are now properly visible and formatted on mobile devices.
  • Adaptive Sidebar: The collapse button is now hidden on smaller screens to prevent accidental triggers and improve navigation flow.
  • Responsive Grid Layouts: Refined the project forms and icon color pickers for better display across various device widths.

Interface Polishing

  • Task Assignee Badges: Updated to conditionally show usernames based on context, with improved styling for mobile accessibility.
  • Spacing Adjustments: Added bottom padding to project lists and adjusted the “Recently Updated” section to ensure all timestamps are fully visible.

Fixes & Reliability

  • Invitation System: Fixed a formatting issue in invitation success messages, ensuring that email addresses are correctly displayed to the user.
  • Audit and History: Task history retrieval has been integrated directly into mutation services, ensuring a 100% accurate audit trail for every task modification.
  • API Route Standardization: Standardized internal routing for workspaces and projects to follow a consistent singular naming convention across all controllers.
  • Resource Optimization: Implemented specific query builders for creating default workspace resources, significantly improving performance during the initial setup of new environments.

Architect’s Note: This 0.3.2 release marks the completion of our transition to a service-oriented architecture. By decoupling our core logic, we’ve achieved a level of system stability that allows for much faster iteration on features like archiving and advanced member permissions.

Introducing multi-assignee support, a high-performance notification microservice with email integration, and a major API architectural refactor.

Infrastructure Overhaul

This update represents a significant shift in our technical architecture, moving towards a more scalable microservice-oriented approach. We have rebuilt the notification engine and expanded the core task management capabilities to support complex team workflows.

Core Features and Collaboration

Multi-Assignee Support: Tasks are no longer limited to a single owner. You can now assign multiple team members to a single task, ensuring shared responsibility and better visibility for collaborative efforts.

Next-Gen Notification System: The notification engine has been completely decoupled into a dedicated microservice.

Email Integration: We have introduced official support for email notifications, ensuring you stay informed even when away from the application.

Notification Preferences in Account Settings: You can now enable or disable email delivery and in-app notifications directly in your account settings under the Notifications section.

Queue-Based Processing: Utilizing BullMQ and Redis, notifications are now processed in the background, drastically reducing latency during task updates and comment posting.

Refined Inbox Experience: The notification center has been redesigned with a clear split between list and detail views, featuring better content parsing for TipTap descriptions.

Enhanced Task Table Intelligence: Sorting and filtering in the Table view have been upgraded with additional options and stricter validation, providing a more reliable way to organize large datasets.

Architectural Refinement

Unified User Module: We have merged the Authentication and User modules to streamline profile management and security. The system now utilizes a more robust session-based authentication flow.

API Standardization: In a move towards a cleaner RESTful architecture, we have standardized all endpoint paths.

  • Moved to singular resource naming (e.g., /workspace instead of /workspaces).
  • Simplified task and user routes by removing redundant prefixes.

Performance Optimization:

  • Implemented advanced caching for user and project statistics.
  • Optimized database queries for default status and priority creation using high-performance query builders.
  • Reduced redundant data transfer by optimizing notification filtering and unread count updates.

UI/UX Enhancements

Smart Navigation: Sidebar and breadcrumb components have been updated for improved consistency. Navigation now handles project and workspace transitions more gracefully following the API changes.

Localization Updates: Full Polish and English support for the new notification metadata and system messages.

Refined Task Cards: Improved interaction logic on task cards to better support selection and multi-tab navigation.

Fixes & Reliability

State Synchronization: Fixed an issue where task assignee data could remain stale after an update. Relations are now correctly cleared and reloaded.

Task History Integrity: Added robust error handling for task history retrieval, ensuring timeline stability even with legacy data.

Route Consistency: Corrected several routing inconsistencies across project and workspace settings.

Import Optimization: Conducted a global cleanup of unused dependencies and streamlined component imports to reduce the overall application bundle size.

Architect’s Note: By moving the notification system to a microservice and standardizing our API, we have laid the groundwork for extreme scalability. This update isn’t just about new features; it’s about building a professional-grade engine that can handle the demands of any size team.

FumoForge is now elean.app. Introducing 'The Purge' – a radical focus on speed, minimalism, and workspace control.

This isn’t just an update; it’s a rebirth.

We’ve officially transitioned from FumoForge to elean.app. This version marks our biggest leap forward, introducing a core philosophy we call “The Purge”—removing friction, decluttering the interface, and optimizing the core engine for maximum velocity.

The elean.app Identity

  • New Brand, Same Soul: FumoForge has evolved into elean.app. It’s cleaner, faster, and more professional.
  • Domain Migration: Welcome to your new home at elean.app. The entire infrastructure has been tuned for lower latency and better stability across the globe.

UI/UX: “The Purge” & Workspace Memory

We are stripping away the noise and giving you more control over how you navigate your workspace.

  • Persistent Workspace State: The app now remembers exactly where you left off.
  • Per-Project Memory: Filters, search queries, and sorting preferences are now saved individually for each project.
  • No More Resets: When you open a task and go back to the board, or switch between different projects, your filters and sort order stay exactly as you set them.
  • Global Table Sorting: Sorting in the Table view now works across your entire project, re-fetching data from the server to ensure accuracy across all pages.
  • Collapsible Project Lists: Added expand/collapse indicators to the project sections in the sidebar for better organization.
  • Multi-Tab Navigation: Overhauled the navigation system to support Middle-Click and Ctrl/Cmd+Click, allowing you to open tasks and projects in new tabs.
  • Collapsible Sidebar: Toggle the main sidebar to enter a focused “Zen mode.”
  • Smart Task Detail Toggles: Declutter the task view by hiding or expanding secondary properties (Priority, Status, Assignees).

Fixes & Reliability

  • Role Consistency: Fixed an inconsistency where user roles were not being translated correctly in the Project Settings view.
  • Live Subtask Updates: Fixed a synchronization issue where changing subtask properties from the Parent view didn’t trigger an instant UI refresh.
  • Project Name Integrity: Fixed an issue where certain project names (like “Dashboard”) were being mistakenly translated as system labels.
  • Visual Consistency: The “Private” visibility label now uses consistent capitalization across all view types.
  • UI Consistency: Updated all logos and system messages to reflect the new elean.app branding.
  • Mobile Task Creation: The “Create Task” modal is now fully responsive and fits perfectly on all screens.

Architect’s Note: Welcome to the era of elean.app. This 0.3.0 release is a commitment to simplicity and speed. We’ve purged the unnecessary to make room for your best work.