Commit Graph
100 Commits
Author SHA1 Message Date
Matthias 22ec672f8e feat(dashboard): cache snapshot data and add credits activity analytics 2026-04-08 12:43:58 +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
Matthias 8d6ce275f8 feat: enhance AI image generation and prompt handling in canvas components
- Introduced shimmer animation for loading states in AI image nodes.
- Updated prompt node to handle image generation with improved error handling and user feedback.
- Refactored AI image node to manage generation status and display loading indicators.
- Enhanced data handling in canvas components to include canvasId for better context management.
- Improved status message handling in Convex mutations for clearer user feedback.
2026-03-25 18:18:55 +01:00
Matthias 2f4d8a7172 deleted forgotten implement files and readme 2026-03-25 18:00:44 +01:00
Matthias ca40f5cb13 feat: enhance canvas and layout components with new features and improvements
- Added remote image patterns to the Next.js configuration for enhanced image handling.
- Updated TypeScript configuration to exclude the 'implement' directory.
- Refactored layout component to fetch initial authentication token and pass it to Providers.
- Replaced CanvasToolbar with CanvasSidebar for improved UI layout and functionality.
- Enhanced Canvas component with new drag-and-drop file upload capabilities and batch node movement.
- Updated various node components to support new status handling and improved user interactions.
- Added debounced saving for note and prompt nodes to optimize performance.
2026-03-25 17:58:58 +01:00
Matthias d1834c5694 feat: enhance dashboard and canvas page functionality
- Added theme support to the dashboard with light, dark, and system options.
- Improved canvas ID handling with validation and fetching logic.
- Updated layout component to suppress hydration warnings for better rendering.
- Refactored dashboard to include user session management and workspace creation functionality.
2026-03-25 15:32:20 +01:00
Matthias 056e60743d feat: add Resend integration for email verification and update package dependencies
- Integrated Resend for sending email verification upon user sign-up.
- Updated package.json to include Resend as a dependency.
- Enhanced authentication flow with error handling for email sending.
- Removed outdated Canvas Implementation Guide documentation.
2026-03-25 14:56:20 +01:00
Matthias 4d17936570 feat: implement Convex-synced canvas foundation 2026-03-25 14:21:19 +01:00
Matthias 66c4455033 feat: update dependencies and refactor layout and homepage components
- Added new dependencies: @daveyplate/better-auth-ui, next-themes, and sonner.
- Refactored layout component to use Providers and Toaster for better state management and notifications.
- Updated homepage to utilize authClient for session management and improved user experience with navigation links for sign-in and sign-up.
2026-03-25 11:42:02 +01:00