Commit Graph
84 Commits
Author SHA1 Message Date
google-labs-jules[bot] 261ba90ca4 feat: implement infinite scroll for all lists and set api limit to 20
- Added `useInfiniteScroll` hook using `react-intersection-observer`.
- Updated `PoseService` and `ExpressionService` to support pagination with mixed built-in and DB items.
- Updated `OutfitService` to support pagination.
- Updated `src/api/pose.ts`, `src/api/expression.ts`, `src/api/outfit.ts`, `src/api/character.ts` to accept `page`/`limit` (default limit 20).
- Refactored `Equipments`, `Characters`, `Poses`, `Expressions` pages to use infinite scroll.
- Refactored `CreateLookDialog` and `LoadOutfitDialog` to use infinite scroll.
- Updated `AGENTS.md` with new guidelines.
2026-02-14 15:18:02 +00:00
Yiling-J ea35643609 Merge pull request #22 from Yiling-J/redesign-create-look-dialog-13997618871008273386
Refine CreateLookDialog Layout
2026-02-14 16:53:46 +08:00
google-labs-jules[bot] 3e6ef3c7ab Refactor CreateLookDialog to use compact sidebar and 2-column grid
This change refines the `CreateLookDialog` layout to be more compact and user-friendly.

Key changes:
- Replaced the sidebar with a text-only vertical navigation bar (`w-32`) to maximize content space.
- Adjusted the equipment, pose, and expression grids to a fixed 2-column layout (`grid-cols-2`) for better item visibility and reduced density.
- Removed icons from sidebar buttons to streamline the interface.
- Updated `ScrollArea` components to correctly fill available height (`h-full`) to enable proper scrolling.
- Maintained the tabbed structure (Equipment, Pose, Expression, Instructions) and footer layout from the previous iteration.
2026-02-14 08:45:33 +00:00
google-labs-jules[bot] db22c3f271 Refactor CreateLookDialog to use compact sidebar and 2-column grid
This change refines the `CreateLookDialog` layout to be more compact and user-friendly.

Key changes:
- Replaced the sidebar with a text-only vertical navigation bar (`w-32`) to maximize content space.
- Adjusted the equipment grid to a fixed 2-column layout (`grid-cols-2`) for better item visibility and reduced density.
- Removed icons from sidebar buttons to streamline the interface.
- Maintained the tabbed structure (Equipment, Pose, Expression, Instructions) and footer layout from the previous iteration.
2026-02-14 08:26:08 +00:00
Yiling-J f5dbce1640 Merge pull request #21 from Yiling-J/feature-expression-customize-12480180928928972950
Add Expression Customization Feature
2026-02-14 15:13:34 +08:00
google-labs-jules[bot] aecad49192 feat: add expression customization
- Rename public/expressions files to expression_*.webp
- Add Expression model to Prisma schema
- Add expression field to Generation model
- Implement ExpressionService and API
- Update GenerationService to support expressions in AI prompt
- Add Expressions page and dialogs
- Update CreateLookDialog to include expression selector
- Add Expressions to sidebar and routing
2026-02-14 06:36:45 +00:00
yiling ji e3e38d2e9f add expressions 2026-02-14 13:49:07 +08:00
Yiling-J f323d9c69b Merge pull request #20 from Yiling-J/feature-custom-poses-12084446650630398805
Add custom poses support
2026-02-14 13:43:21 +08:00
google-labs-jules[bot] 6738e7f125 feat: add custom poses support
- Moved builtin poses to `public/poses`
- Added `Pose` model to schema and updated `Generation` model
- Created Pose Service and API
- Added Poses page to Frontend
- Updated CreateLookDialog to allow pose selection
- Updated Generation Service to handle pose instructions
- Added tests for Pose Service and Generation Service update
2026-02-14 04:51:24 +00:00
yiling ji 503b9ab6f3 add posegrid 2026-02-14 10:10:58 +08:00
Yiling-J 155744374d Merge pull request #19 from Yiling-J/refactor-equipment-single-select-and-fitting-room-header-13808441959024977531
feat: single select equipment category and updated fitting room header
2026-02-14 09:57:09 +08:00
yiling ji d6515e8c29 ui update 2026-02-13 21:27:20 +08:00
google-labs-jules[bot] a9dfa41083 feat: single select equipment category and updated fitting room header
- Refactored `Equipments` page to use single category selection.
- Updated `FittingRoom` page to use `PageHeader` component.
- Added `backButton` prop to `PageHeader` component to support navigation controls.
- Removed "Manage looks for" hint text from Fitting Room header.
2026-02-13 13:17:55 +00:00
Yiling-J 221dbea09f Merge pull request #18 from Yiling-J/extraction-grid-refactor-6576410645135316312
Refactor extraction to use grid-based splitting
2026-02-13 19:54:39 +08:00
google-labs-jules[bot] 50c0b0a943 Enhance extraction prompt for detail preservation
- Updated texture generation and refinement prompts to emphasize capturing and maintaining all details, materials, and patterns.
- Reverted analyze prompt to original state to avoid over-constraint.
2026-02-13 11:40:57 +00:00
google-labs-jules[bot] d18c4e771c Return texture sheet to client in extraction flow
- API: Emit 'texture_generated' event with sheet image and grid dimensions
- UI: Render generated texture sheet with grid overlay in ExtractorDialog
- Service: Expose getGridDimensions method publicly
2026-02-13 11:12:34 +00:00
google-labs-jules[bot] c887f6ebf0 Return texture sheet to client in extraction flow
- API: Emit 'texture_generated' event with sheet image and grid dimensions
- UI: Render generated texture sheet with grid overlay in ExtractorDialog
- Service: Expose getGridDimensions method publicly
2026-02-13 09:26:36 +00:00
google-labs-jules[bot] 2670930334 Refactor extraction to use grid-based splitting
- Removed AI-based bounding box detection
- Implemented deterministic grid calculation (1x3, 2x2, 2x3, 3x3)
- Updated extraction prompts to request specific grid layouts and white background
- Removed color assignment logic
- Updated ExtractedAsset interface
- Updated API to stream grid splitting status instead of detection status
- Updated tests to verify new logic and mock removal of color fields
- Removed "Detect Bounding Boxes" step from ExtractionFlowDesigner UI
2026-02-13 09:18:12 +00:00
google-labs-jules[bot] cfe624c5aa Refactor extraction to use grid-based splitting
- Removed AI-based bounding box detection
- Implemented deterministic grid calculation (1x3, 2x2, 2x3, 3x3)
- Updated extraction prompts to request specific grid layouts and white background
- Removed color assignment logic
- Updated ExtractedAsset interface
- Updated API to stream grid splitting status instead of detection status
- Updated tests to verify new logic and mock removal of color fields
2026-02-13 08:37:03 +00:00
Yiling-J 01cb28202d Merge pull request #17 from Yiling-J/feature-look-equipment-dialogs-7528901223240659226
feat: add clickable details dialogs for looks and equipment
2026-02-13 16:01:47 +08:00
google-labs-jules[bot] cf03f3e3d1 feat: switch details dialogs to top-down layout
- Updated `LookDetailsDialog` to use a top-down layout (image top, details bottom).
- Updated `EquipmentDetailsDialog` to use a top-down layout (image top, form bottom).
- Ensured images are contained and details are scrollable.
2026-02-13 07:58:03 +00:00
google-labs-jules[bot] f9407b0f27 feat: add clickable details dialogs for looks and equipment
- Added `LookDetailsDialog` to display full look image, prompt, and used equipment thumbnails.
- Updated `FittingRoom` page to open `LookDetailsDialog` on look click.
- Added `EquipmentDetailsDialog` to display full equipment image and allow editing name/description.
- Updated `Equipments` page to open `EquipmentDetailsDialog` on equipment click.
- Updated `GenerationService` to include equipment images in look details.
- Added `updateEquipment` to `EquipmentService` and `PATCH /equipments/:id` API endpoint.
- Added unit tests for equipment update functionality.
2026-02-13 07:52:30 +00:00
Yiling-J f592de52fd Merge pull request #16 from Yiling-J/feat-sticky-headers-and-settings-redesign-8421614059187835189
Make sticky headers transparent with separator
2026-02-13 12:23:28 +08:00
yiling ji 3b9b8daf2e update ui 2026-02-13 12:22:50 +08:00
google-labs-jules[bot] f9919107dd fix: make page header background opaque with background color 2026-02-13 03:05:05 +00:00
google-labs-jules[bot] 91303941c1 chore: remove verification files and update AGENTS.md 2026-02-13 02:50:30 +00:00
google-labs-jules[bot] 5192a4a9b4 fix: make page header background transparent and add separator 2026-02-13 02:47:26 +00:00
Yiling-J 63be1a890c Merge pull request #15 from Yiling-J/add-outfit-system-17834985661084869632
Add Outfit System
2026-02-13 10:21:33 +08:00
yiling ji ee1d5872a3 some style change 2026-02-11 23:13:42 +08:00
google-labs-jules[bot] a33545be6e feat: Add Outfit system and update docs
- Added `Outfit` model and migration.
- Implemented backend service and API for outfits.
- Added frontend support for outfits management (create, list, delete, load, save).
- Updated `AGENTS.md` with Prisma migration guidelines.
2026-02-11 09:20:40 +00:00
yiling ji d31e849e96 update agents.md 2026-02-11 16:07:43 +08:00
Yiling-J 6fe2f3c25e Merge pull request #14 from Yiling-J/update-character-list-ui-4219165027559735141
Update Character List UI
2026-02-10 23:02:19 +08:00
google-labs-jules[bot] d630c6cc59 style: update VibeCard image style
- Update `src/ui/components/VibeCard.tsx` to use `object-cover object-top` for the image, ensuring it fills the card area nicely.
2026-02-10 15:00:36 +00:00
google-labs-jules[bot] c51a29d0ca refactor: extract VibeCard component
- Create `src/ui/components/VibeCard.tsx` as a reusable component for the "vibe coded" card UI.
- Refactor `src/ui/pages/Characters.tsx` to use `VibeCard`.
- Refactor `src/ui/pages/Equipments.tsx` to use `VibeCard`.
2026-02-10 14:54:02 +00:00
google-labs-jules[bot] 9b7cc76cab feat: update character list UI with vibe coded design
- Update `CharacterService` to include generation counts (`_count.generations`) in the list response.
- Update `CharacterAPI` to map `_count.generations` to a flat `looksCount` field.
- Add new CSS classes (`clip-path-slant`, `clip-path-hex`, `scanline`, `font-display`) to `src/ui/index.css`.
- Revamp `src/ui/pages/Characters.tsx` to use the new card design with color bars, looks count, and improved visuals.
- Replaced "System // Operator_Select" with "System // Character_Select", "Select Operator" with "Characters", and "UNITS" with "COUNT".
- Remove `src/ui/CharacterListDemo.tsx`.
2026-02-10 14:15:10 +00:00
google-labs-jules[bot] 3d4caeb971 feat: update character list UI with vibe coded design
- Update `CharacterService` to include generation counts (`_count.generations`) in the list response.
- Update `CharacterAPI` to map `_count.generations` to a flat `looksCount` field.
- Add new CSS classes (`clip-path-slant`, `clip-path-hex`, `scanline`, `font-display`) to `src/ui/index.css`.
- Revamp `src/ui/pages/Characters.tsx` to use the new card design with color bars, looks count, and improved visuals.
- Remove `src/ui/CharacterListDemo.tsx`.
2026-02-10 13:22:35 +00:00
yiling ji f825e4db02 add character list demo page 2026-02-10 20:30:18 +08:00
Yiling-J 9bb6e0410f Merge pull request #13 from Yiling-J/feat-user-prompt-generation-3575445623933145553
Add user prompt for character look generation
2026-02-10 20:26:12 +08:00
google-labs-jules[bot] 272c06c585 feat: add user prompt to generation
- Update `Generation` model to include `userPrompt`.
- Update `GenerationService` to accept and use `userPrompt` in AI prompt.
- Update `Generation` API to accept `userPrompt`.
- Update `CreateLookDialog` to include an input for `userPrompt`.
- Add tests for `userPrompt` functionality.
- Install `dotenv` for prisma migrations.
2026-02-10 02:34:01 +00:00
Yiling-J c6029f446c Merge pull request #12 from Yiling-J/rename-outfits-to-looks-10262303159975520850
Rename "Outfit" to "Look" in Fitting Room
2026-02-10 09:59:41 +08:00
google-labs-jules[bot] de31b29404 Rename "Outfit" to "Look" in Fitting Room
Renames the terminology in the Fitting Room feature from "Outfit" to "Look" to better align with future feature plans (where "Outfit" will refer to equipment combinations).

Changes include:
- Renaming `CreateOutfitDialog.tsx` to `CreateLookDialog.tsx`.
- Updating the route from `/characters/:id/outfits` to `/characters/:id/looks`.
- Updating all UI text and internal variable names in the affected components.
- Updating navigation in `Characters.tsx`.
2026-02-10 01:54:28 +00:00
Yiling-J c8f3e94945 Merge pull request #11 from Yiling-J/refactor-generation-service-openai-responses-3103856168006018071
Refactor GenerationService to use OpenAI Responses API for Image Generation
2026-02-10 09:35:26 +08:00
google-labs-jules[bot] aba5b72659 Fix sticky header and add generation model selector to settings 2026-02-10 01:23:23 +00:00
google-labs-jules[bot] 4f0977c33e Refactor GenerationService to use UnifiedAIService.generateImage with OpenAI Responses API support 2026-02-10 01:07:28 +00:00
yiling ji 4778f919bc prettier 2026-02-09 23:40:01 +08:00
Yiling-J 889803e5cb Merge pull request #10 from Yiling-J/feature-ai-config-settings-9941067621474435809
feat: Add AI provider settings and update UI layout
2026-02-09 23:28:49 +08:00
yiling ji 92bd366f0b fix lint 2026-02-09 23:12:10 +08:00
yiling ji c40a841a9a fix prisma 2026-02-09 23:08:52 +08:00
google-labs-jules[bot] d260dbb198 feat: Add AI provider settings and update UI layout
- Add `Setting` model to Prisma schema for storing API keys and model configs.
- Implement `SettingService` and API for managing application settings.
- Refactor `src/service/ai.ts` to `UnifiedAIService` supporting dynamic OpenAI and Google provider selection.
- Add Settings page (`src/ui/pages/Settings.tsx`) to configure providers and default models.
- Update `AppSidebar` to include Settings, use text-under-icon style, and decrease sidebar width to 4.5rem.
- Update `Layout` to move "Forgery" title to header and add GitHub link.
- Add unit tests for `SettingService` and `UnifiedAIService`, mocking database interactions to resolve test environment issues.
- Fix API URL path for settings in frontend client.
2026-02-09 14:58:16 +00:00
google-labs-jules[bot] ee4ab2d9d1 feat: Add AI provider settings and update UI layout
- Add `Setting` model to Prisma schema for storing API keys and model configs.
- Implement `SettingService` and API for managing application settings.
- Refactor `src/service/ai.ts` to `UnifiedAIService` supporting dynamic OpenAI and Google provider selection.
- Add Settings page (`src/ui/pages/Settings.tsx`) to configure providers and default models.
- Update `AppSidebar` to include Settings, use text-under-icon style, and increase icon size.
- Update `Layout` to move "Forgery" title to header and add GitHub link.
- Add unit tests for `SettingService` and `UnifiedAIService`.
2026-02-09 14:28:31 +00:00