Commit Graph
100 Commits
Author SHA1 Message Date
Matthias b7f24223f2 Enhance canvas functionality by adding media preview capabilities and image upload handling. Introduce compressed image previews during uploads, improve media library integration, and implement retry logic for bridge edge creation. Update dashboard to display media previews and optimize image node handling. 2026-04-08 20:44:31 +02:00
Matthias a7eb2bc99c Update LemonSpace Manifest to v2.1, enabling all 9 image models in OpenRouter with server-side tier enforcement. Enhance dashboard functionality with a bundled snapshot query and localStorage caching for improved performance and analytics. Introduce credits activity chart and optimize canvas graph queries for better data handling. 2026-04-08 14:03:16 +02:00
Matthias 3085d9b456 merge(feature/dashboard): credits analytics and dashboard snapshot cache 2026-04-08 12:45:47 +02:00
Matthias eaccf6695a merge(master): integrate latest master into dashboard caching branch 2026-04-08 12:45:20 +02:00
Matthias 22ec672f8e feat(dashboard): cache snapshot data and add credits activity analytics 2026-04-08 12:43:58 +02:00
Matthias 3434f086e1 chore: update .gitignore to include .worktree/ directory 2026-04-08 12:28:43 +02:00
Matthias 29758982a3 chore: remove dashboard credits chart subproject 2026-04-08 12:28:33 +02:00
Matthias c4bd7e3282 chore(deps): add recharts version 3.8.0 to package.json and update pnpm-lock.yaml 2026-04-08 12:19:15 +02:00
Matthias 186a5b9f92 fix(image-pipeline): harden worker preview path 2026-04-05 09:49:51 +02:00
Matthias 86f487d0ef fix(image-pipeline): apply wasm/webgl lint hygiene cleanups 2026-04-04 23:06:43 +02:00
Matthias d10cb7ac8f docs(plans): finalize image pipeline gpu wasm webgl rollout plan 2026-04-04 23:02:33 +02:00
Matthias 92034e171e fix(image-pipeline): prefer wasm before cpu fallback 2026-04-04 22:56:01 +02:00
Matthias 198090b6c0 feat(image-pipeline): add wasm simd fallback backend scaffold 2026-04-04 22:51:26 +02:00
Matthias 46b7aeb26e fix(image-pipeline): align detail-adjust grain seed parity 2026-04-04 22:42:51 +02:00
Matthias 65e96cbdf1 feat(image-pipeline): expand webgl backend step coverage 2026-04-04 22:36:54 +02:00
Matthias c4ca4b001b test(image-pipeline): tighten parity quality gates 2026-04-04 22:25:45 +02:00
Matthias 455458cb1e test(image-pipeline): add cpu webgl parity coverage 2026-04-04 22:16:08 +02:00
Matthias 195a812ba2 fix(image-pipeline): correct webgl source binding and context init 2026-04-04 22:09:14 +02:00
Matthias 80f12739f9 fix(image-pipeline): wire webgl preview shader execution 2026-04-04 22:04:24 +02:00
Matthias 423eb76581 feat(image-pipeline): add webgl preview backend poc 2026-04-04 21:52:00 +02:00
Matthias b57062091a test(image-pipeline): harden backend flag fallback coverage 2026-04-04 21:41:10 +02:00
Matthias fd4f8f4f3b feat(image-pipeline): add backend rollout flags 2026-04-04 21:33:00 +02:00
Matthias 8fb5482550 feat(image-pipeline): add backend capability and fallback diagnostics 2026-04-04 21:17:32 +02:00
Matthias a6bec59866 refactor(image-pipeline): add backend router seam 2026-04-04 14:28:17 +02:00
Matthias 1d2654fec1 docs(plans): add image pipeline gpu wasm webgl plan 2026-04-04 14:15:56 +02:00
Matthias 9ec148a075 docs(plans): add image pipeline gpu wasm webgl design 2026-04-04 14:14:40 +02:00
Matthias 6f8cd10be3 fix(image-pipeline): clear final lint regressions 2026-04-04 13:35:48 +02:00
Matthias d02e6924f3 fix(image-pipeline): coalesce preview churn to latest state 2026-04-04 12:11:39 +02:00
Matthias 9a6192752e fix(image-pipeline): dedupe in-flight preview requests 2026-04-04 12:03:04 +02:00
Matthias d73db3a612 fix(image-pipeline): preserve worker errors and skip aborted histograms 2026-04-04 11:56:38 +02:00
Matthias b650485e81 fix(image-pipeline): make preview histogram opt-in 2026-04-04 11:47:04 +02:00
Matthias 4fa517066f fix(image-pipeline): close cleared in-flight source bitmaps 2026-04-04 11:40:32 +02:00
Matthias c0534e04e0 fix(image-pipeline): bound source bitmap cache lifecycle 2026-04-04 11:37:26 +02:00
Matthias 77f8736579 fix(image-pipeline): skip pre-aborted source bitmap loads 2026-04-04 11:32:59 +02:00
Matthias c41dde871f fix(image-pipeline): share source bitmap cache for abortable loads 2026-04-04 11:26:45 +02:00
Matthias 8660126fd6 docs(plans): add render pipeline performance plan 2026-04-04 11:00:04 +02:00
Matthias 533edaf7e5 docs(plans): add render pipeline performance design 2026-04-04 10:59:08 +02:00
Matthias ef98acd0de Enhance adjustment nodes with localized labels and improved state management
- Integrated localization for slider labels and prompts in color-adjust, curves, detail-adjust, and light-adjust nodes.
- Updated preset handling to include user-friendly prompts for saving presets.
- Improved state management for slider values and preset selections, enhancing user experience.
- Added reset actions to adjustment nodes for better control over user adjustments.
2026-04-02 23:56:45 +02:00
Matthias b0a844d3a3 Refactor adjustment nodes to use ParameterSlider for enhanced UI and functionality
- Replaced SliderRow components with ParameterSlider in color-adjust, curves, detail-adjust, and light-adjust nodes for improved user interaction.
- Updated minimum width and height configurations for adjustment nodes to accommodate new slider designs.
- Enhanced node templates and default dimensions to reflect the changes in adjustment node sizes.
- Improved state management and data handling for slider values in adjustment nodes.
2026-04-02 23:29:48 +02:00
Matthias f5f9753288 Enhance authentication flow with username support and social login placeholders
- Updated sign-in and sign-up pages to allow users to log in with either email or username.
- Added social login options for Google and Apple, currently implemented as placeholders.
- Improved error handling with localized messages for authentication failures.
- Refactored input fields and validation logic to enhance user experience and accessibility.
2026-04-02 23:10:40 +02:00
Matthias 9fa0b8452e Merge origin/master: combine compare URL pipeline with storage fallback
Made-with: Cursor
2026-04-02 22:29:11 +02:00
Matthias 519caefae2 Enhance canvas connection validation and image resolution handling
- Introduced new functions for validating canvas connections, ensuring proper source and target node types.
- Updated edge and node mutation logic to enforce connection policies and improve error handling.
- Enhanced image resolution handling by integrating a new image source resolution function for better URL retrieval.
- Refactored existing validation logic to streamline connection checks and improve maintainability.
2026-04-02 22:27:05 +02:00
Matthias 3fa686d60d Implement fullscreen preview functionality and optimize storage URL handling
- Added fullscreen output capability for render nodes, allowing users to view images in a larger format.
- Introduced a dialog component for fullscreen image display, including a close button.
- Enhanced storage URL resolution with performance logging to identify slow queries and improve efficiency.
- Updated various queries and handlers to include performance metrics for better monitoring and debugging.
2026-04-02 12:28:36 +02:00
Matthias f3c5c2d8f1 Enhance canvas functionality with new node types and validation
- Added support for new canvas node types: curves, color-adjust, light-adjust, detail-adjust, and render.
- Implemented validation for adjustment nodes to restrict incoming edges to one.
- Updated canvas connection validation to improve user feedback on invalid connections.
- Enhanced node creation and rendering logic to accommodate new node types and their properties.
- Refactored related components and utilities for better maintainability and performance.
2026-04-02 11:39:05 +02:00
Matthias 9bab9bb93d Add adjustment preset node type validation and enhance render data normalization
- Introduced `adjustmentPresetNodeTypeValidator` for validating new adjustment preset node types.
- Added new constants for render output resolutions and formats, including custom dimension constraints.
- Implemented normalization functions for render data, ensuring proper validation and error handling.
- Updated node creation and update mutations to utilize normalized data for improved consistency.
2026-04-02 08:46:55 +02:00
Matthias 624beac6dc Enhance canvas components with improved error handling and aspect ratio normalization
- Added error name tracking in NodeErrorBoundary for better debugging.
- Introduced aspect ratio normalization in PromptNode to ensure valid values are used.
- Updated debounced state management in CanvasInner for improved performance.
- Enhanced SelectContent component to support optional portal rendering.
2026-04-02 08:26:06 +02:00
Matthias 2142249ed5 Handle storage URL resolution failures gracefully
- Batch storage URL lookups to reduce request spikes
- Log and skip failed URL resolutions instead of throwing
- Preserve node reads when attached storage is unavailable
2026-04-01 20:41:05 +02:00
Matthias 3926940c5a Show upload progress and fix credit concurrency user scope
- Replace image upload POST with XHR progress tracking
- Keep upload state until Convex sync completes
- Pass owner userId through image generation to decrement concurrency correctly
2026-04-01 20:18:01 +02:00
Matthias 8988428fc9 Add fullscreen image preview and rich text editing capabilities
- Implemented fullscreen output functionality for AI image and image nodes, allowing users to view images in a larger format.
- Added a dialog component for displaying images in fullscreen mode, including a close button.
- Enhanced text nodes with a rich text editor, enabling quick formatting options such as bold, italic, headings, lists, and links.
- Updated base node wrapper to support toolbar actions for both image and text nodes, improving user interaction.
2026-04-01 20:03:53 +02:00
Matthias d34f965dbc Add dialog descriptions for project rename and delete confirmations
- Introduced `DialogDescription` components in `canvas-app-menu.tsx` and `canvas-card.tsx` to provide clearer context for users when renaming and deleting projects.
- Removed redundant paragraph elements in favor of the new dialog descriptions for a cleaner UI experience.
2026-04-01 12:19:13 +02:00
Matthias 34135d643e Add delete functionality to canvas card with confirmation dialog
- Implemented delete action for canvas cards, including a confirmation dialog.
- Updated `canvas-card.tsx` to support renaming and deleting canvases.
- Enhanced documentation in `CLAUDE.md` to reflect new features and mutations.
- Added success and error toast messages for delete actions.
2026-04-01 12:09:01 +02:00
Matthias 0022b57c88 Fix auth redirect origin and guard dashboard against missing session 2026-04-01 12:03:16 +02:00
Matthias 4065d0ce1c Add magic link sign-in and harden auth query fallbacks 2026-04-01 11:59:47 +02:00
Matthias d117d6f80c refinded look of connections in light mode 2026-04-01 11:41:09 +02:00
Matthias 37a346a2b1 Fix spawn-delete race and keep node deletion locked until synced 2026-04-01 11:22:11 +02:00
Matthias eb5ed06ced Enable offline edge split sync and stabilize local edge state 2026-04-01 11:04:40 +02:00
Matthias f9b15613c5 Document Stage 3 offline sync and idempotency architecture 2026-04-01 10:43:58 +02:00
Matthias b6187210c7 Enable offline delete and reconnect queue sync 2026-04-01 10:37:20 +02:00
Matthias da576c1400 Enable offline canvas create sync with optimistic ID remapping 2026-04-01 10:19:50 +02:00
Matthias 32bd188d89 Implement local-first canvas sync and fix drag edge stability 2026-04-01 09:40:31 +02:00
Matthias c1d7a49bc3 feat: add react-resizable-panels dependency and update canvas components for improved layout
- Introduced the react-resizable-panels package to enhance panel resizing capabilities.
- Refactored CanvasPage to utilize CanvasShell for a cleaner layout.
- Updated CanvasSidebar to support a compact mode and improved rendering logic for user entries.
- Enhanced CanvasUserMenu with a compact option for better UI adaptability.
2026-04-01 08:46:26 +02:00
Matthias 3ac8857025 feat: enhance layout and error handling in canvas component
- Added suppressHydrationWarning to RootLayout for improved hydration handling.
- Updated error logging in CanvasInner to use more descriptive parameters, enhancing debugging capabilities.
2026-03-31 15:39:06 +02:00
Matthias 73bdf56f72 feat: update LemonSpace ADR to reflect WebWorker migration and caching strategy
- Revised the image processing pipeline description to highlight the transition to a Web-Worker-based architecture using OffscreenCanvas for rendering.
- Updated caching strategy details to clarify how source images are cached and how parameter changes affect rendering.
- Documented the current implementation status, including the integration of worker requests for preview and full rendering, and noted deviations from the original architectural vision.
- Added sections on fallback mechanisms and the influence of the WebWorker migration guide on the current implementation.
2026-03-31 14:02:39 +02:00
Matthias 72adce5fd9 feat: enhance RootLayout with meta tags and external script
- Added meta tags for viewport, description, keywords, author, and robots to improve SEO and accessibility.
- Included Rybbit script for enhanced functionality, ensuring better integration with the platform.
2026-03-30 07:45:59 +02:00
Matthias 81f0b1d7a3 feat: enhance canvas operations with local persistence and optimistic updates
- Introduced local persistence for canvas state, enabling snapshot reading and writing for improved user experience during interactions.
- Added new functions for handling node movement, resizing, and edge creation/removal with optimistic updates, ensuring immediate feedback in the UI.
- Refactored existing logic to streamline node and edge operations, enhancing overall responsiveness and synchronization with the server.
2026-03-29 21:21:39 +02:00
Matthias 5d4ddd3f78 feat: enhance canvas node management with position handling and optimistic updates
- Introduced functions for managing optimistic edge and node IDs, improving synchronization during updates.
- Added position pinning logic to maintain local node positions until server confirmation, enhancing user experience during drag-and-drop operations.
- Implemented signature normalization for edge connections, ensuring consistent handling of node relationships.
- Refactored node merging logic to prioritize local positions, improving responsiveness during user interactions.
2026-03-29 20:37:28 +02:00
Matthias 75ed27b1c3 feat: enhance image handling and node deletion logic in canvas
- Introduced a new function to determine acceptable geometry for node deletion, improving synchronization checks with Convex.
- Added image dimension retrieval for uploaded files, enhancing the handling of image nodes during drag-and-drop operations.
- Updated drag-and-drop functionality to support image uploads, including error handling and user feedback for failed uploads.
- Refactored existing logic to ensure better management of optimistic node states and improve overall user experience on the canvas.
2026-03-28 23:42:12 +01:00
Matthias 2a645b9489 feat: implement node deletion handling and geometry synchronization in canvas
- Added functionality to block node deletion based on synchronization status with Convex, providing user feedback through toast notifications.
- Introduced helper functions to determine reasons for blocking deletions, enhancing user experience during canvas interactions.
- Updated asset node styling to improve visual consistency and adjusted minimum dimensions for asset nodes to ensure better layout management.
2026-03-28 23:07:27 +01:00
Matthias acb5bca3b8 fix: update canvas toolbar and canvas settings for improved usability
- Updated the CanvasToolbar to provide a clearer label for the scissors tool, enhancing user understanding of its functionality.
- Modified the CanvasInner component to disable grid snapping, allowing for more flexible positioning of elements on the canvas.
2026-03-28 22:47:30 +01:00
Matthias 4e55460792 feat: enhance canvas components with improved sidebar and toolbar functionality
- Updated CanvasSidebar to accept canvasId as a prop, enabling dynamic content based on the current canvas.
- Refactored CanvasToolbar to implement a dropdown menu for adding nodes, improving usability and organization.
- Introduced new node types and updated existing ones in the node template picker for better categorization and searchability.
- Enhanced AssetNode to utilize context for asset browser interactions, streamlining asset management on the canvas.
- Improved overall layout and styling for better user experience across canvas components.
2026-03-28 22:35:44 +01:00
Matthias e41d3c03b0 feat: add minimum zoom level for canvas to enhance usability
- Introduced a constant for minimum zoom level, allowing users to zoom out further on large boards.
- Updated the CanvasInner component to apply the new minimum zoom setting, improving the overall user experience during canvas interactions.
2026-03-28 22:07:21 +01:00
Matthias cbfa14a40b feat: enhance canvas functionality with scissors mode and node template updates
- Implemented visual feedback and cursor changes for scissors mode in dark and light themes, improving user interaction during edge manipulation.
- Updated node template picker to include new keywords for AI image generation, enhancing searchability.
- Renamed and categorized node types for clarity, including updates to asset and prompt nodes.
- Added support for video nodes and adjusted related components for improved media handling on the canvas.
2026-03-28 21:11:52 +01:00
Matthias 02f36fdc7b feat: implement scissors mode for edge manipulation on canvas
- Introduced a new scissors mode that allows users to cut edges by clicking or dragging on the canvas.
- Added keyboard shortcuts for toggling scissors mode and canceling actions, enhancing user interaction.
- Implemented visual feedback for the scissors mode, including a preview of the cutting path.
- Refactored edge handling logic to support edge removal during scissors mode, improving dynamic edge management.
2026-03-28 17:56:27 +01:00
Matthias 9694c50195 feat: implement createNodeWithEdgeToTarget mutation for enhanced node connections
- Added a new mutation to create nodes connected to existing nodes, allowing for more dynamic interactions on the canvas.
- Updated the CanvasPlacementContext to include the new mutation, improving the workflow for node creation and edge management.
- Enhanced optimistic updates for immediate UI feedback during node and edge creation processes.
- Refactored related components to support the new connection method, streamlining user interactions.
2026-03-28 17:50:45 +01:00
Matthias b3a1ed54db feat: implement edge splitting at existing nodes with position updates
- Added a new mutation to split edges at existing nodes, allowing for dynamic edge management during canvas interactions.
- Enhanced the logic to update node positions in a single transaction, improving user experience during edge manipulations.
- Refactored edge handling to support optimistic updates, ensuring smoother UI feedback during edge splits.
- Introduced error handling for edge and node validation to maintain data integrity during operations.
2026-03-28 13:31:41 +01:00
Matthias fb24205da0 feat: enhance canvas connection handling with custom animation and edge management
- Added a custom connection line component with animation for improved visual feedback during node interactions.
- Implemented CSS animations for temporary connection lines, enhancing the user experience in the canvas.
- Refactored edge creation and removal logic to support optimistic updates, improving performance during node manipulations.
- Introduced a utility function to compute edge reconnections after node deletions, streamlining edge management.
2026-03-28 13:26:47 +01:00
Matthias e5f27d7d29 feat: implement error classification and handling for AI generation limits
- Added error classification for daily generation cap and concurrency limits in the PromptNode component, improving user feedback during AI image generation failures.
- Enhanced toast notifications to provide specific messages for daily limit and concurrent job errors.
- Introduced internal mutations in the credits module to check abuse limits and track usage, ensuring better resource management and user experience.
- Updated AI error handling logic to categorize and respond to different error types effectively.
2026-03-28 11:31:11 +01:00
Matthias 4b4d784768 feat: enhance canvas styling and edge handling with glow effects
- Added custom CSS variables for edge stroke and connection line styles in light and dark modes to improve visual consistency.
- Updated edge rendering logic to utilize new styles, enhancing the appearance of temporary edges during interactions.
- Introduced a new utility function for applying glow effects based on source node types, improving the visual feedback of connections.
- Refactored edge mapping to support glow effects, enhancing user experience during node interactions.
2026-03-28 11:02:19 +01:00
Matthias b243443431 feat: implement createNodeConnectedFromSource functionality for enhanced node creation
- Added a new mutation to create nodes connected to existing nodes, improving the canvas interaction model.
- Updated the CanvasPlacementContext to include createNodeConnectedFromSource, allowing for seamless node connections.
- Refactored the PromptNode component to utilize the new connection method, enhancing the workflow for AI image generation.
- Introduced optimistic updates for immediate UI feedback during node creation and connection processes.
2026-03-28 00:06:45 +01:00
Matthias 5dd5dcf55b feat: integrate centered flow node positioning in canvas components
- Added useCenteredFlowNodePosition hook to improve node placement in the CanvasCommandPalette and CanvasToolbar.
- Updated node creation logic to utilize centered positioning, enhancing the visual layout and user experience during node interactions.
- Refactored offset calculations to stagger node positions based on the current node count, ensuring a more organized canvas layout.
2026-03-27 23:56:06 +01:00
Matthias 83c0073d51 feat: enhance canvas components with clientRequestId for optimistic updates
- Added clientRequestId to various canvas components to support optimistic UI updates during node creation and manipulation.
- Updated the canvas command palette, toolbar, and node components to generate unique clientRequestIds for better tracking of user actions.
- Enhanced the canvas placement context to handle clientRequestId for improved correlation between optimistic and real node IDs.
- Refactored node duplication and creation logic to utilize clientRequestId, ensuring smoother user interactions and state management.
2026-03-27 23:52:51 +01:00
Matthias 6e866f2df6 feat: add cmdk dependency and enhance canvas node creation with edge splitting functionality
- Introduced the cmdk package for improved command palette capabilities.
- Enhanced the canvas placement context to support creating nodes with edge splitting, allowing for more dynamic node interactions.
- Updated the canvas inner component to utilize optimistic updates for node creation, improving user experience during interactions.
- Refactored node handling logic to incorporate new mutation types and streamline data management.
2026-03-27 23:40:31 +01:00
Matthias 4e84e7f76f feat: enhance dashboard and canvas components with improved state management and resizing logic
- Added client mount state to the dashboard to prevent premature interactions before the component is fully loaded.
- Updated button disabling logic to ensure it reflects the component's readiness and user session state.
- Introduced zIndex handling in canvas placement context for better node layering.
- Enhanced asset and image nodes with improved resizing logic to maintain aspect ratios during adjustments.
- Refactored node components to streamline rendering and improve performance during dynamic updates.
2026-03-27 23:17:10 +01:00
Matthias e96c9c611c feat: implement batch node removal and enhance canvas node management
- Replaced individual node removal with a batch removal mutation to improve performance and user experience.
- Introduced optimistic UI updates to prevent flickering during node deletions.
- Enhanced edge reconnection logic to automatically handle edges associated with deleted nodes.
- Updated asset and image node components to support new metrics tracking for better diagnostics.
- Refactored node resizing logic to ensure consistent behavior during drag-and-drop operations.
2026-03-27 22:08:16 +01:00
Matthias 8e4e2fcac1 feat: enhance asset browser panel with improved asset selection and loading states
- Added state management for asset selection to prevent multiple simultaneous selections.
- Implemented request sequence tracking to ensure accurate loading state handling during asset searches.
- Enhanced error handling and user feedback for asset loading failures.
- Updated UI elements to improve accessibility and user experience during asset browsing.
2026-03-27 21:26:29 +01:00
Matthias bc3bbf9d69 feat: enhance canvas functionality with new asset node type and improved image handling
- Introduced a new "asset" node type in the canvas sidebar for better resource management.
- Updated image node components to support dynamic image dimensions and improved resizing logic.
- Enhanced prompt and AI image nodes to utilize reference images from asset nodes, improving integration and functionality.
- Refactored canvas utilities to accommodate new asset configurations and maintain consistent media handling.
2026-03-27 20:33:20 +01:00
Matthias 6e38e2d270 refactor: replace useQuery with useAuthQuery for improved authentication handling
- Updated multiple components to utilize useAuthQuery instead of useQuery for fetching user-related data, enhancing authentication management.
- Adjusted balance and subscription queries across various components including InitUser, ManageSubscription, PricingCards, CreditDisplay, and others to ensure consistent authentication checks.
- Improved overall code maintainability by centralizing authentication logic in the new hook.
2026-03-27 18:35:12 +01:00
Matthias 2f89465e82 feat: integrate Sentry for error tracking and enhance user notifications
- Added Sentry integration for error tracking across various components, including error boundaries and user actions.
- Updated global error handling to capture exceptions and provide detailed feedback to users.
- Enhanced user notifications with toast messages for actions such as credit management, image generation, and canvas exports.
- Improved user experience by displaying relevant messages during interactions, ensuring better visibility of system states and errors.
2026-03-27 18:14:04 +01:00
Matthias 5da0204163 feat: enhance canvas and node components with error handling and retry logic
- Integrated retry logic for AI image generation to handle transient errors and improve user experience.
- Updated error categorization to provide more informative feedback based on different failure scenarios.
- Enhanced node components to display retry attempts and error messages, improving visibility during image generation failures.
- Refactored canvas and node components to include retry count in status updates, ensuring accurate tracking of generation attempts.
2026-03-27 11:35:18 +01:00
Matthias 99a359f330 chore: remove outdated documentation files for LemonSpace
- Deleted the LemonSpace Manifest v1.2, Phase 1 TODO, and PRD v1.1 documents as they are no longer relevant to the current project scope.
- This cleanup helps streamline the documentation and focuses on the latest project requirements and updates.
2026-03-27 10:14:42 +01:00
Matthias cf3a338b9f feat: add new subscription tier and update credit configurations
- Introduced a new "max" subscription tier with associated monthly credits and top-up limits.
- Updated existing subscription tiers' monthly credits and top-up limits for "starter", "pro", and "business".
- Enhanced credit display and overview components to reflect the new tier and its attributes.
- Integrated Polar authentication features for improved subscription management and credit handling.
2026-03-27 09:47:44 +01:00
Matthias 0bc4785850 feat: improve canvas card editing experience with navigation suppression
- Added logic to suppress card navigation while editing the canvas name to prevent accidental navigation.
- Introduced a flag to manage in-flight save operations, ensuring that multiple save requests are not processed simultaneously.
- Enhanced the editing flow by ensuring the input is selected after a brief delay, improving user interaction.
2026-03-27 09:00:35 +01:00
Matthias 806c92fc80 feat: update Next.js configuration and package dependencies
- Adjusted `reactStrictMode` in `next.config.ts` to reduce strict mode double mounts during development, addressing hydration issues.
- Modified `dev` script in `package.json` to suppress hydration warnings, and added a `dev:strict` script for strict mode development.
- Added new dependencies: `@polar-sh/better-auth` and `@polar-sh/sdk` for enhanced authentication and SDK functionalities.
- Updated `pnpm-lock.yaml` to reflect new package versions and dependencies.
2026-03-27 08:54:26 +01:00
Matthias 886a530f26 feat: implement internal credits handling in AI image generation
- Added support for internal credits feature in the generateImage action.
- Conditional reservation of credits based on the INTERNAL_CREDITS_ENABLED environment variable.
- Updated error handling to ensure credits are released or committed only when reservations are made.
2026-03-26 20:23:46 +01:00
Matthias 8daa4a91fb feat: enhance canvas and node components with improved edge handling and new node features
- Refactored canvas toolbar to utilize new canvas placement context for node creation.
- Updated node components (compare, group, image, note, prompt, text) to include source and target handles for better edge management.
- Improved edge intersection handling during node drag operations for enhanced user experience.
- Added utility functions for edge identification and node positioning to streamline interactions.
2026-03-26 18:22:57 +01:00
Matthias a5cde14573 feat: refactor canvas and node components for improved functionality and styling
- Removed unused hooks and optimized edge handling in the canvas component.
- Adjusted positioning of handles in the compare node for better alignment.
- Enhanced prompt node to utilize incoming edges for dynamic prompt generation and improved user feedback.
- Updated text node to synchronize content changes with the React Flow state.
- Improved logging in edge removal to handle idempotent operations gracefully.
2026-03-26 17:35:25 +01:00
Matthias 824939307c feat: enhance canvas functionality with proximity edge handling and improved authentication logging
- Introduced temporary edge styling for proximity connections in the canvas.
- Updated edge synchronization logic to filter out temporary edges during data processing.
- Enhanced authentication logging to provide detailed user identity information when authentication fails.
- Added a new utility function for sanitizing edge handle IDs to ensure compatibility with React Flow.
- Implemented a node handle mapping for proximity connections to streamline edge management.
2026-03-26 10:57:10 +01:00
Matthias 5e99e8cfde feat: improve MiniMap node styling with dynamic color functions
- Introduced functions to determine node color and stroke color based on node type for the MiniMap component.
- Updated MiniMap to utilize these functions for enhanced visual representation of nodes.
2026-03-25 21:54:42 +01:00
Matthias da6529f263 feat: enhance canvas functionality with new node types and improved data handling
- Added support for a new "compare" node type to facilitate side-by-side image comparisons.
- Updated AI image and prompt nodes to include aspect ratio handling for better image generation.
- Enhanced canvas toolbar to include export functionality for canvas data.
- Improved data resolution for compare nodes by resolving incoming edges and updating node data accordingly.
- Refactored frame node to support dynamic resizing and exporting capabilities.
- Introduced debounced saving for prompt node to optimize performance during user input.
2026-03-25 21:33:22 +01:00
Matthias fffdae3a9c feat: integrate credit cost tracking in AI image generation and prompt nodes
- Added credit cost tracking to AI image nodes, displaying the cost in Euro-Cent.
- Updated prompt node to create edges between prompt and AI image nodes during image generation.
- Enhanced Convex action to include credit cost in image generation data handling.
- Introduced utility function for formatting Euro-Cent values for better user display.
2026-03-25 18:27:45 +01:00