Commit Graph
167 Commits
Author SHA1 Message Date
google-labs-jules[bot] bb4f6f61fb feat: add download option to VibeCard and Fitting Room looks
- Added download option to VibeCard dropdown menu when an image is present.
- Added download option to Fitting Room generated look card dropdown menu.
- Implemented client-side download logic using temporary anchor tag.
- Verified with typecheck and tests.
2026-02-18 14:44:27 +00:00
Yiling-J a88422aca4 Merge pull request #44 from Yiling-J/update-docker-config-12796957791026376751
Update Docker Compose to use latest image and add standalone run instructions
2026-02-18 22:19:54 +08:00
google-labs-jules[bot] 7da8e28f32 Update Docker Compose to use latest image and add standalone run instructions to README
- Updated `docker-compose.yml` to pull `yilingj/forgery:latest` instead of building locally.
- Updated `README.md` with instructions for using Docker Compose with the pre-built image.
- Added instructions for standalone `docker run` execution in `README.md`.
2026-02-18 13:19:56 +00:00
yiling ji a890555c4e remove sha tag from dockerhub 2026-02-18 21:05:47 +08:00
Yiling-J 6411eb1e68 Merge pull request #43 from Yiling-J/chore-add-release-workflow-7734661522119203214
Add Release Workflow for Docker Hub
2026-02-18 21:00:49 +08:00
google-labs-jules[bot] 068dc39d39 chore: add release workflow for docker hub
- Added `.github/workflows/release.yml` for multi-platform Docker builds.
- Configured triggers for `main` branch pushes and `v*` tags.
- Uses `docker/metadata-action` for tagging:
  - `latest` is only updated on semantic version tags (e.g., `v1.0.0`).
  - `main` branch pushes are tagged with `main` and commit SHA.
- Supports `linux/amd64` and `linux/arm64`.
- Uses hardcoded `yilingj` username and `DOCKERHUB_TOKEN` secret.
2026-02-18 12:59:14 +00:00
google-labs-jules[bot] e7bdaf75d2 chore: add release workflow for docker hub
- Added `.github/workflows/release.yml` for multi-platform Docker builds.
- Configured triggers for `main` branch pushes and `v*` tags.
- Uses `docker/metadata-action` for tagging:
  - `latest` is only updated on semantic version tags (e.g., `v1.0.0`).
  - `main` branch pushes are tagged with `main` and commit SHA.
- Supports `linux/amd64` and `linux/arm64`.
- Requires `DOCKERHUB_USERNAME` and `DOCKERHUB_TOKEN` secrets.
2026-02-18 12:47:53 +00:00
google-labs-jules[bot] 7aca5c1ff9 chore: add release workflow for docker hub
- Added `.github/workflows/release.yml` to build and push Docker images to Docker Hub.
- Configured trigger on `push` to `main` branch and `v*` tags.
- Enabled multi-platform builds for `linux/amd64` and `linux/arm64`.
- Uses `docker/metadata-action` for automatic tagging (`latest`, semver).
- Requires `DOCKERHUB_USERNAME` and `DOCKERHUB_TOKEN` secrets.
2026-02-18 12:31:11 +00:00
yiling ji cc086fec3a fix docker build 2026-02-18 19:53:18 +08:00
Yiling-J 5095881cc1 Merge pull request #42 from Yiling-J/update-outfit-ui-grid-2148683806176639834
Enhance Outfit List UI and Edit Functionality
2026-02-18 15:29:35 +08:00
google-labs-jules[bot] b292548d6e Improve Outfit List and Create Outfit Dialog UI 2026-02-18 07:22:46 +00:00
google-labs-jules[bot] 1761bed9ce feat(ui): Enhance Outfit list UI and add Edit functionality
- Update `VibeCard` to support custom `children` content and ensure text readability with a gradient overlay.
- Refactor Outfit list in `Equipments.tsx` to use a grid of `VibeCard` components.
- Implement a 3x3 equipment preview grid inside Outfit cards, with overflow (+N) handling.
- Center the preview grid to 80% height as per design requirements.
- Update `CreateOutfitDialog` to support editing existing outfits (PUT request).
- Change category selection in `CreateOutfitDialog` to single-select.
- Update equipment selection grid in `CreateOutfitDialog` to fixed 3 columns.
- Add "Edit" action to Outfit cards.
2026-02-18 05:07:13 +00:00
Yiling-J d712452645 Add MIT License to the project 2026-02-18 12:35:09 +08:00
Yiling-J 69c56d064b Merge pull request #41 from Yiling-J/fix-fitting-room-and-extractor-save-14637309535569615021
Fix Fitting Room overflow and add Save as Outfit to Extractor
2026-02-18 12:22:07 +08:00
yiling ji 82aa28000a update ui 2026-02-18 12:21:07 +08:00
google-labs-jules[bot] 599f566f80 Remove verification artifacts
- Deleted `verification/fitting_room_v2.png`
- Deleted `verification/verify_fitting_room_v2.py`
2026-02-18 03:24:08 +00:00
google-labs-jules[bot] 219d9224d0 Fix Fitting Room UI, add Extractor outfit save, update Dockerfile
- Fitting Room:
  - Constrain page height to viewport.
  - Use `ScrollArea` for "Generated Looks".
  - Ensure character image uses `object-contain` and empty state is centered.
- Extractor:
  - Add "Save as Outfit" checkbox and name input to `RefineStage`.
  - Implement API call to create outfit upon completion.
- Dockerfile:
  - Copy `example-data` directory to final image.
2026-02-18 03:05:10 +00:00
google-labs-jules[bot] 7f12e5f909 Fix Fitting Room overflow and add Save as Outfit to Extractor
- Fixed Fitting Room page overflow by constraining height and using ScrollArea for the Generated Looks section.
- Added "Save as Outfit" checkbox and input to the Refine stage of the Extractor dialog.
- Installed @radix-ui/react-checkbox and added Shadcn Checkbox component.
- Updated Dockerfile to include example-data directory in the final image.
2026-02-18 02:50:22 +00:00
yiling ji 9eaf136550 add example data 2026-02-18 10:12:35 +08:00
Yiling-J 2ea634090d Merge pull request #40 from Yiling-J/refactor-poses-expressions-db-14152250609701592538
Refactor Poses and Expressions to be Database-Driven
2026-02-17 17:24:53 +08:00
google-labs-jules[bot] 58fd8fa537 Refactor poses and expressions to be fully database-driven
- Removed hardcoded `BUILTIN_POSES` and `BUILTIN_EXPRESSIONS` constants.
- Updated `PoseService` and `ExpressionService` to only list and delete items from the database.
- Removed the `type` field ('builtin' | 'custom') from `PoseItem` and `ExpressionItem`.
- Updated `GenerationService` to resolve pose and expression assets strictly from the database (`data/files`) instead of falling back to `public/`.
- Updated `Poses.tsx` and `Expressions.tsx` to remove "SYSTEM" vs "CUSTOM" UI distinction and enable deletion for all items.
- Updated `pose.test.ts` and created `expression.test.ts` to verify the new behavior.
- Fixed `generation.test.ts` to mock database calls correctly for pose/expression lookups and avoid polluting other tests.
2026-02-17 09:18:04 +00:00
google-labs-jules[bot] 14d23144c4 Refactor poses and expressions to be fully database-driven
- Removed hardcoded `BUILTIN_POSES` and `BUILTIN_EXPRESSIONS` constants.
- Updated `PoseService` and `ExpressionService` to only list and delete items from the database.
- Removed the `type` field ('builtin' | 'custom') from `PoseItem` and `ExpressionItem`.
- Updated `GenerationService` to resolve pose and expression assets strictly from the database (`data/files`) instead of falling back to `public/`.
- Updated `Poses.tsx` and `Expressions.tsx` to remove "SYSTEM" vs "CUSTOM" UI distinction and enable deletion for all items.
- Updated `pose.test.ts` and created `expression.test.ts` to verify the new behavior.
2026-02-17 04:59:16 +00:00
Yiling-J 044764fcf7 Merge pull request #39 from Yiling-J/add-equipment-upload-10544077274154872392
Allow direct equipment upload
2026-02-17 11:19:18 +08:00
google-labs-jules[bot] 3908637ff5 feat: allow direct equipment upload
- Added `POST /api/equipments` endpoint to create equipment from an existing asset.
- Created `UploadEquipmentDialog` component with drag-and-drop and clipboard paste support.
- Added "Upload" button to the Equipments page header.
- Verified new equipment creation flow via frontend verification script.
2026-02-17 03:13:15 +00:00
google-labs-jules[bot] 5fb845914c feat: allow direct equipment upload
- Added `POST /api/equipments` endpoint to create equipment from an existing asset.
- Created `UploadEquipmentDialog` component with drag-and-drop and clipboard paste support.
- Added "Upload" button to the Equipments page header.
- Verified new equipment creation flow via frontend verification script.
2026-02-17 03:05:36 +00:00
Yiling-J e6329be051 Merge pull request #38 from Yiling-J/refactor-ulid-schema-default-12914212072284971523
Refactor schema to use @default(ulid()) and remove manual assignment
2026-02-17 10:38:50 +08:00
google-labs-jules[bot] e66917d716 Refactor schema to use @default(ulid()) and remove manual assignment
- Update prisma/schema.prisma to use @default(ulid()) for all relevant models
- Remove manual ulid() calls from all service files
- Update list APIs to order by id descending
- Update AssetService tests to match new behavior
- Update AGENTS.md with new conventions
- Remove empty migration file (20260217022222_add_ulid_default)
2026-02-17 02:37:20 +00:00
yiling ji 1d3ff555dd ui improvement 2026-02-17 10:12:07 +08:00
Yiling-J 413b24e2c1 Merge pull request #37 from Yiling-J/extractor-dialog-footer-17605281711190367568
Refactor ExtractorDialog footer layout
2026-02-16 19:39:13 +08:00
google-labs-jules[bot] 384262e309 I have refactored ExtractorDialog to use DialogFooter and moved the stage actions. Here is a summary of the changes I made:
*   I added `DialogFooter` to `ExtractorDialog`.
*   I moved the action buttons (Start, Cancel, and the finish button) from `AnalyzeStage`, `SelectionStage`, and `RefineStage` to the `ExtractorDialog` footer.
*   I lifted the `selectedIndices` state from `SelectionStage` to `ExtractorDialog`.
*   I updated `AnalyzeStage` to show the status in the primary action button.
*   I enabled cancellation during analysis.
*   I ensured that `onSuccess` is called only when the user clicks the finish button in the Refine stage.
2026-02-16 11:34:08 +00:00
yiling ji c2cefb6bc9 ui update 2026-02-16 19:13:27 +08:00
Yiling-J 123cc2cccd Merge pull request #36 from Yiling-J/redesign-extractor-ui-vibe-60020766140160295
Redesign ExtractorDialog UI
2026-02-16 16:46:47 +08:00
google-labs-jules[bot] b5296e8a08 Delete image-refine-vibe reference folder
- Removed the `image-refine-vibe` directory as the redesign based on it has been successfully implemented and approved.
2026-02-16 08:18:06 +00:00
google-labs-jules[bot] 180408b883 Redesign ExtractorDialog with vibe reference workflow and light mode
- Refactor `ExtractorDialog.tsx` into modular stages: `UploadStage`, `AnalyzeStage`, `SelectionStage`, `RefineStage`.
- Implement new UI flow: Upload -> Analyze -> Select -> Refine.
- Adapt "vibe" reference visuals to application's Light Mode theme (Slate/Cyan/Amber).
- Implement real-time status updates for analysis and refinement steps using backend streams.
- Add drag-and-drop and paste support for image upload.
- Visualize candidate selection grid and refinement progress.
- Implement manual confirmation for analysis start.
- Increase dialog size to `max-w-[98vw]` and `h-[95vh]`.
- Simplify title bar and adjust candidate grid cell size to 140px.
- Adjust refinement grid cell size to 160px.
2026-02-16 07:49:38 +00:00
google-labs-jules[bot] 39bcda5b0e Redesign ExtractorDialog with vibe reference workflow and light mode
- Refactor `ExtractorDialog.tsx` into modular stages: `UploadStage`, `AnalyzeStage`, `SelectionStage`, `RefineStage`.
- Implement new UI flow: Upload -> Analyze -> Select -> Refine.
- Adapt "vibe" reference visuals to application's Light Mode theme (Slate/Cyan/Amber).
- Implement real-time status updates for analysis and refinement steps using backend streams.
- Add drag-and-drop and paste support for image upload.
- Visualize candidate selection grid and refinement progress.
- Implement manual confirmation for analysis start.
- Increase dialog size to `max-w-[98vw]` and `h-[95vh]`.
- Simplify title bar and adjust candidate grid cell size to 140px.
2026-02-16 07:41:20 +00:00
google-labs-jules[bot] c3752a1c93 Redesign ExtractorDialog with vibe reference workflow and light mode
- Refactor `ExtractorDialog.tsx` into modular stages: `UploadStage`, `AnalyzeStage`, `SelectionStage`, `RefineStage`.
- Implement new UI flow: Upload -> Analyze -> Select -> Refine.
- Adapt "vibe" reference visuals to application's Light Mode theme (Slate/Cyan/Amber).
- Implement real-time status updates for analysis and refinement steps using backend streams.
- Add drag-and-drop and paste support for image upload.
- Visualize candidate selection grid and refinement progress.
2026-02-16 07:19:08 +00:00
yiling ji 544d93b67b add refine vibe demo 2026-02-16 14:58:36 +08:00
Yiling-J 87c9dbca1d Merge pull request #35 from Yiling-J/fix-extraction-test-9808362104329540100
Fix failing extraction service tests
2026-02-16 14:35:43 +08:00
google-labs-jules[bot] d4ddb43e00 test: update extraction service prompt expectations
Updates the test expectations in `src/service/extraction.test.ts` to match the actual prompt content used in `src/service/extraction.ts`. The previous test was asserting the presence of specific instructions regarding cropping artifacts that are no longer present in the codebase. The updated test now verifies the presence of the task name and the instruction to return only the image.
2026-02-16 06:33:05 +00:00
Yiling-J 1b3b35112c Merge pull request #34 from Yiling-J/docs-readme-remix-11838642017644994137
Revamp README to be more attractive and accurate
2026-02-16 14:15:08 +08:00
google-labs-jules[bot] 85e633d201 Docs: Revamp README with improved structure, correct tech stack, and restored logo
- Restored the centered logo `<div>` block at the top as requested.
- Replaced generic intro with "Why Forgery?", "Highlights", and "Core Concepts" sections derived from marketing copy.
- Corrected tech stack information (Bun, Hono, React, SQLite) to match the codebase.
- Replaced incorrect `curl` demos with a UI-focused "How It Works" workflow.
- Updated installation instructions to use `bun` commands.
- Added "Architecture Overview" to explain the modular pipeline.
2026-02-16 06:12:45 +00:00
Yiling-J e8f2447318 Merge pull request #33 from Yiling-J/ui-fix-fitting-room-delete-and-labels-6795841561204379208
Fix Fitting Room UI: Delete Button Visibility & Remove Equipment Labels
2026-02-16 14:10:48 +08:00
google-labs-jules[bot] 017b4587f6 Docs: Revamp README with improved structure and correct tech stack
- Replaced generic intro with "Why Forgery?", "Highlights", and "Core Concepts" sections derived from marketing copy.
- Corrected tech stack information (Bun, Hono, React, SQLite) to match the codebase.
- Replaced incorrect `curl` demos with a UI-focused "How It Works" workflow.
- Updated installation instructions to use `bun` commands.
- Added "Architecture Overview" to explain the modular pipeline.
2026-02-16 06:07:57 +00:00
google-labs-jules[bot] 79fdf41915 fix(ui): improve delete button visibility and remove equipment labels in Fitting Room
- Add semi-transparent dark background to delete button for better visibility on light images.
- Remove equipment labels from generation cards in Fitting Room.
2026-02-16 06:02:43 +00:00
yiling ji db256185f5 update refine prompt 2026-02-16 13:43:59 +08:00
Yiling-J 78f8c84f03 Merge pull request #32 from Yiling-J/update-refine-prompt-17971344056863413798
Update refine prompt to remove border artifacts
2026-02-16 13:43:28 +08:00
google-labs-jules[bot] e75377ef3b Update refine prompt and add crop padding to remove border artifacts 2026-02-16 05:23:57 +00:00
google-labs-jules[bot] 46cc219b58 Update refine prompt and add crop padding to remove border artifacts 2026-02-16 05:17:49 +00:00
google-labs-jules[bot] 54a168bcb4 Update refine prompt and add crop padding to remove border artifacts 2026-02-16 04:53:20 +00:00
google-labs-jules[bot] be3fc30f33 Update refine prompt to remove border artifacts 2026-02-16 04:39:54 +00:00