Commit Graph

223 Commits

Author SHA1 Message Date
16ad9e48f4 docs(canvas): remove extraction scratch note 2026-04-03 20:32:33 +02:00
859aad4438 docs(canvas): annotate modularization seams 2026-04-03 20:30:35 +02:00
cdcd819a44 docs(canvas): add modularization strategy 2026-04-03 20:26:39 +02:00
4fad69a151 fix(canvas): ensure valid source and target node IDs when creating synthetic edges 2026-04-03 20:15:23 +02:00
d7d715fd03 fix(convex): rename helper modules to valid convex paths 2026-04-03 19:59:50 +02:00
081bf13e04 feat(a11y): add live region feedback for auth and billing flows 2026-04-03 19:47:56 +02:00
8ed9adf6f8 chore(lint): resolve remaining warnings and ignore generated convex artifacts 2026-04-03 19:41:34 +02:00
0173d5c604 fix(canvas): avoid server persistence for download-only renders 2026-04-03 19:39:31 +02:00
d320ff47b0 refactor(canvas): extract data and storage url orchestration from canvas 2026-04-03 19:31:05 +02:00
fb005f3cce refactor(billing): derive subscription product credits from shared tier map 2026-04-03 19:25:03 +02:00
8639478a11 refactor(config): unify tier credit constants across frontend and backend 2026-04-03 19:20:28 +02:00
7e87a74df9 feat(canvas): move image pipeline rendering off main thread with worker fallback 2026-04-03 19:17:42 +02:00
7e1a77c38c refactor(canvas): debounce and extract local snapshot persistence 2026-04-03 19:10:07 +02:00
234da6f7d7 refactor(app): scope heavy providers to authenticated route layouts 2026-04-03 19:01:48 +02:00
df2a6c1759 refactor(app): move auth gating and metadata to server-first patterns 2026-04-03 18:55:13 +02:00
9c8cd364b4 feat(a11y): improve keyboard and semantic controls in core UI 2026-04-03 18:54:04 +02:00
8dd1d1bb7c refactor(billing): centralize tier credits and align topup UI 2026-04-03 18:53:21 +02:00
609e4fca20 fix(canvas): separate download from upload side effects 2026-04-03 18:52:54 +02:00
68416ed9de test: add vitest baseline for critical payment and auth guards 2026-04-03 18:15:18 +02:00
2542748e82 fix(canvas): align optimistic edge id typing with queue payloads 2026-04-03 18:07:59 +02:00
af3cb47247 fix(canvas): resolve hook rule violations in delete and image nodes 2026-04-03 18:05:02 +02:00
c33e65b0f6 fix(tool-ui): remove render-time ref mutation in controllable state 2026-04-03 18:02:44 +02:00
16f24991a4 fix(dashboard): make recent transaction time formatting pure 2026-04-03 18:01:16 +02:00
67302da6ed fix(toast): remove invalid translation hook helper 2026-04-03 17:59:44 +02:00
d151fbb5b7 fix(polar): make webhook credit flows idempotent 2026-04-03 17:56:15 +02:00
923a73dafe fix(convex): enforce node-canvas match in generateImage 2026-04-03 17:46:26 +02:00
d3a4c4d335 fix(convex): validate every node in batch mutations 2026-04-03 17:42:47 +02:00
c094f6c80b fix(billing): block direct public credit topups 2026-04-03 17:40:22 +02:00
3474297e69 Refactor user initialization and balance retrieval logic
- Updated the `InitUser` component to handle session state more effectively by incorporating a loading state.
- Removed the unused `useAuthQuery` hook and adjusted the balance initialization logic to only proceed when the session is confirmed.
- Enhanced the `getBalance` query with improved error handling and logging for better debugging.
- Modified the `initBalance` mutation to return an object indicating whether a new balance was created, improving clarity in the initialization process.
2026-04-03 15:47:34 +02:00
6cbdfdcb79 Merge branch 'codex/canvas-anpassung' 2026-04-03 14:52:56 +02:00
1fb8fd2863 Refactor canvas storage URL handling and integrate adjustment presets
- Introduced a new `CanvasPresetsProvider` to manage adjustment presets for nodes, enhancing state management and reducing reactivity.
- Updated storage URL resolution to utilize a mutation instead of a reactive query, improving performance and reducing unnecessary re-renders.
- Refactored adjustment nodes (color-adjust, curves, detail-adjust, light-adjust) to use the new preset context for fetching user presets.
- Improved overall canvas functionality by streamlining storage ID collection and URL resolution processes.
2026-04-03 14:52:34 +02:00
5bd5a638e1 Update canvas documentation for toolbar and sidebar layout 2026-04-03 14:51:31 +02:00
3aaad38e06 Enhance canvas sidebar and toolbar with improved UI and state management
- Integrated NextImage for logo display in the canvas sidebar, enhancing visual consistency.
- Updated canvas name handling in the toolbar to ensure proper display and accessibility.
- Refactored sidebar layout for better responsiveness and user experience.
- Improved state management for category collapsibility in the sidebar, allowing for a more intuitive navigation experience.
2026-04-03 13:51:41 +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
8703387617 Enhance canvas functionality with storage URL resolution and debugging improvements
- Added a fallback mechanism for resolving storage URLs in `canvas-helpers.ts`, improving reliability when URLs are not directly available.
- Introduced new utility functions in `canvas.tsx` for summarizing update and resize payloads, enhancing debugging capabilities during canvas operations.
- Updated `compare-node.tsx` to improve state management and rendering logic, allowing for better handling of incoming edges and display modes.
- Refactored `render-node.tsx` to streamline the rendering process and include detailed logging for debugging render operations.
- Updated `.gitignore` to exclude `.kilo` files, ensuring cleaner repository management.
2026-04-02 16:12:56 +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
43e3e0544a Add storage ID handling and optimize canvas storage URL retrieval
- Introduced `hasStorageId` function to check for valid storage IDs in canvas nodes.
- Updated `batchGetUrlsForCanvas` query to utilize helper functions for improved readability and maintainability.
- Implemented `assertCanvasOwner`, `listNodesForCanvas`, `collectStorageIds`, and `resolveStorageUrls` to streamline the process of fetching storage URLs associated with a canvas.
- Enhanced query logic to skip unnecessary database calls when no valid storage IDs are present.
2026-04-01 18:41:42 +02:00
75e5535a86 Enhance Providers component with time zone support
- Updated `RootLayout` to retrieve the user's time zone using `getTimeZone` from `next-intl/server`.
- Modified the `Providers` component to accept and pass the time zone prop to `NextIntlClientProvider`, improving localization capabilities.
2026-04-01 18:21:16 +02:00
79d9092d43 Implement internationalization support across components
- Integrated `next-intl` for toast messages and locale handling in various components, including `Providers`, `CanvasUserMenu`, and `CreditOverview`.
- Replaced hardcoded strings with translation keys to enhance localization capabilities.
- Updated `RootLayout` to dynamically set the language attribute based on the user's locale.
- Ensured consistent user feedback through localized toast messages in actions such as sign-out, canvas operations, and billing notifications.
2026-04-01 18:16:52 +02:00
6ce1d4a82e Update package dependencies and documentation for LemonSpace v1.5
- Added `next-intl` dependency to `package.json` for internationalization support.
- Updated `pnpm-lock.yaml` to reflect the new dependency and its version.
- Revised LemonSpace Manifest and PRD to version 1.5, including updates to authentication methods and new features for offline sync and canvas management.
2026-04-01 14:40:27 +02:00