Commit Graph

78 Commits

Author SHA1 Message Date
463830f178 feat(canvas): implement local node size pinning and reconciliation logic
- Added functions to handle local node size pins, ensuring that node sizes are preserved during reconciliation.
- Updated `reconcileCanvasFlowNodes` to incorporate size pinning logic.
- Enhanced tests to verify the correct behavior of size pinning in various scenarios.
- Updated related components to support new size pinning functionality.
2026-04-10 08:48:34 +02:00
26d008705f feat(agent): add execution-plan skeleton workflow 2026-04-09 21:11:21 +02:00
29c93eeb35 feat(agent): implement phase 2 runtime and inline clarification 2026-04-09 14:28:27 +02:00
b08e448be0 feat(canvas): add persistent node favorites with toolbar star and glow 2026-04-09 14:12:43 +02:00
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
87d78e4c99 Merge branch 'perf-convex-graph-query' 2026-04-08 12:50:15 +02:00
90e36a5c15 perf(canvas): reduce Convex hot-path query load 2026-04-08 12:49:23 +02:00
Matthias
22ec672f8e feat(dashboard): cache snapshot data and add credits activity analytics 2026-04-08 12:43:58 +02:00
96d9c895ad merge(feature/curious-star): integrate worktree changes into master 2026-04-08 08:14:20 +02:00
1bc0611ce3 fix(openrouter): use model-specific request modalities for image generation 2026-04-08 07:49:30 +02:00
d145cebe75 feat(ai): enable all image models with server-side tier enforcement 2026-04-08 07:21:30 +02:00
39d435d58e feat(ai): enable all image models with server-side tier enforcement 2026-04-07 21:48:35 +02:00
2d89c0620f chore(convex): refresh generated api types 2026-04-07 09:22:46 +02:00
3554577349 Merge branch 'refactor/convex-ai-modularization' 2026-04-07 09:21:57 +02:00
c10839b27e refactor(convex): modularize ai generation helpers and cleanup flows 2026-04-07 09:21:40 +02:00
2e8cb7fd85 feat(canvas, convex, lib): integrate AI video generation capabilities and enhance documentation
- Expanded the AI pipeline to support video generation, including the addition of `video-prompt` and `ai-video` node types.
- Updated connection policies to validate interactions between new video nodes and existing node types.
- Enhanced logging and error handling for video generation processes, including detailed polling strategies and response formats.
- Updated documentation to reflect new node types, their functionalities, and integration details within the canvas and backend systems.
- Ensured synchronization between client-side and backend model definitions for both image and video generation.
2026-04-07 09:20:57 +02:00
ed08b976f9 feat(canvas): add video-prompt node and enhance video generation support
- Introduced a new node type "video-prompt" for AI video generation, including its integration into the canvas command palette and node template picker.
- Updated connection validation to allow connections from text nodes to video-prompt and from video-prompt to ai-video nodes.
- Enhanced error handling and messaging for video generation failures, including specific cases for provider issues.
- Added tests to validate new video-prompt functionality and connection policies.
- Updated localization files to include new labels and prompts for video-prompt and ai-video nodes.
2026-04-07 08:50:59 +02:00
456b910532 feat(docs): update LemonSpace manifest and PRD for v2.0 release
- Updated version from v1.5 to v2.0 in both the LemonSpace Manifest and PRD documents.
- Expanded Phase 1 scope to include video and asset nodes, and integrated non-destructive image editing capabilities.
- Enhanced node taxonomy to reflect 6 categories with 27 node types.
- Added details on offline sync features and optimistic updates in the documentation.
- Improved clarity and structure of the product vision and problem statement sections.
2026-04-06 22:27:21 +02:00
fa6a41f775 feat(canvas): implement edge insertion reflow and enhance connection validation
- Introduced a new CSS transition for edge insertion reflowing to improve visual feedback during node adjustments.
- Enhanced the connection validation logic to include options for optimistic edges, ensuring better handling of edge creation scenarios.
- Updated the canvas connection drop menu to support additional templates and improved edge insertion handling.
- Refactored edge insertion logic to accommodate local node position adjustments during reflow operations.
- Added tests for new edge insertion features and connection validation improvements.
2026-04-05 23:25:26 +02:00
12cd75c836 refactor(canvas): integrate graph-based handling for image source resolution and pipeline steps 2026-04-04 10:28:20 +02:00
90d6fe55b1 feat(canvas): implement dropped connection resolution and enhance connection handling 2026-04-04 09:56:01 +02:00
d7d715fd03 fix(convex): rename helper modules to valid convex paths 2026-04-03 19:59:50 +02:00
8639478a11 refactor(config): unify tier credit constants across frontend and backend 2026-04-03 19:20:28 +02:00
68416ed9de test: add vitest baseline for critical payment and auth guards 2026-04-03 18:15:18 +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
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
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
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
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
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
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
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