Commit Graph
136 Commits
Author SHA1 Message Date
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
Yiling-J 46eb0b2d61 Merge pull request #31 from Yiling-J/add-example-data-seeding-14730136673616286047
Add example data seeding on startup
2026-02-16 12:23:13 +08:00
google-labs-jules[bot] bb49929a63 feat: Add example data seeding on startup
- Implement `ExampleDataService` to export/import Characters, Equipments, Poses, Expressions, and Generations.
- Add `generate-example` script to `package.json` to generate example data from current DB.
- Add startup logic in `src/index.ts` to seed example data if system is uninitialized and no data exists.
- Store system initialization state in `Setting` table.
- Add comprehensive tests for `ExampleDataService` in `src/service/example-data.test.ts` mocking `Bun` file API and `node:fs`.
- Refactor `src/service/example-data.ts` to use `Bun.file` and `Bun.write` for file I/O, ensuring better compatibility with Bun's test runner.
2026-02-16 04:19:27 +00:00
google-labs-jules[bot] efc3b9b554 feat: Add example data seeding on startup
- Implement `ExampleDataService` to export/import Characters, Equipments, Poses, Expressions, and Generations.
- Add `generate-example` script to `package.json` to generate example data from current DB.
- Add startup logic in `src/index.ts` to seed example data if system is uninitialized and no data exists.
- Store system initialization state in `Setting` table.
- Add comprehensive tests for `ExampleDataService` in `src/service/example-data.test.ts` mocking filesystem and database operations.
- Refactor `src/service/example-data.ts` to use default `node:fs` import for better test compatibility.
2026-02-16 04:09:40 +00:00
google-labs-jules[bot] 8986dd6b81 feat: Add example data seeding on startup
- Implement `ExampleDataService` to export/import Characters, Equipments, Poses, Expressions, and Generations.
- Add `generate-example` script to `package.json` to generate example data from current DB.
- Add startup logic in `src/index.ts` to seed example data if system is uninitialized and no data exists.
- Store system initialization state in `Setting` table.
- Add comprehensive tests for `ExampleDataService` in `src/service/example-data.test.ts` mocking filesystem and database operations.
2026-02-16 03:44:57 +00:00
google-labs-jules[bot] b04a011c2b feat: Add example data seeding on startup
- Implement `ExampleDataService` to export/import Characters, Equipments, Poses, Expressions, and Generations.
- Add `generate-example` script to `package.json` to generate example data from current DB.
- Add startup logic in `src/index.ts` to seed example data if system is uninitialized and no data exists.
- Store system initialization state in `Setting` table.
- Add comprehensive tests for `ExampleDataService` in `src/service/example-data.test.ts` mocking filesystem and database operations.
2026-02-16 03:38:04 +00:00
google-labs-jules[bot] dcfb885a01 feat: Add example data seeding on startup
- Implement `ExampleDataService` to export/import Characters, Equipments, Poses, Expressions, and Generations.
- Add `generate-example` script to `package.json` to generate example data from current DB.
- Add startup logic in `src/index.ts` to seed example data if system is uninitialized and no data exists.
- Store system initialization state in `Setting` table.
- Add comprehensive tests for `ExampleDataService` in `src/service/example-data.test.ts` mocking filesystem and database operations.
2026-02-16 03:32:05 +00:00
Yiling-J 790ecf27a0 Merge pull request #30 from Yiling-J/feat-equipment-extraction-confirm-16289701959854915767
Add confirmation step to equipment extraction
2026-02-16 10:56:00 +08:00
google-labs-jules[bot] 45f7d0b2ef fix: allow deleting equipment
- Add `DELETE /api/equipments/:id` endpoint.
- Add `deleteEquipment` method to `EquipmentService` which also cleans up associated assets and generation references.
- Implement delete action in `Equipments` page UI.
- Pass `actions` prop to `VibeCard` to enable context menu.
2026-02-16 02:55:09 +00:00
google-labs-jules[bot] b2f6869563 feat: add confirmation step to equipment extraction
Split the equipment extraction process into two phases:
1. Analyze & Split: Generates texture sheet and crops assets.
2. Refine & Save: Allows user to select which assets to keep before refining and saving.

- Refactored `src/api/extract.ts` to expose `/analyze` and `/refine` endpoints.
- Updated `src/ui/components/ExtractorDialog.tsx` to handle the multi-step flow and selection UI.
- Added `CandidateAsset` type and updated `ExtractionStatus` in `src/ui/types.ts`.
2026-02-16 02:39:37 +00:00
Yiling-J d8cc081023 Merge pull request #29 from Yiling-J/delete-functionality-and-ui-tweaks-5663815655053873953
Implement cascading deletion and UI tweaks
2026-02-16 10:06:08 +08:00
yiling ji a611b68143 update vibe card style 2026-02-16 10:03:44 +08:00
google-labs-jules[bot] 8e22e3808c feat: implement deletion and ui tweaks
- Added `deleteFile` to `FileService` and `deleteAsset` to `AssetService` to support file deletion.
- Implemented cascading deletion in `CharacterService` (delete looks -> delete character image -> delete character).
- Updated `GenerationService`, `PoseService`, and `ExpressionService` to delete associated image assets upon deletion.
- Added `DELETE /api/generations/:id` endpoint.
- Created `DropdownMenu` and `DeleteConfirmDialog` UI components.
- Updated `VibeCard` to include an internal `DropdownMenu` driven by a new `actions` prop.
- Updated `Characters`, `Poses`, and `Expressions` pages to use the new `VibeCard` `actions` prop for deletion.
- Updated `FittingRoom` page to use the `DropdownMenu` and `DeleteConfirmDialog` for deleting looks.
- Updated `CreateLookDialog` to enforce single selection for equipment categories.
- Added necessary tests adjustments.
2026-02-16 01:58:45 +00:00
google-labs-jules[bot] 0373a8b43c feat: implement character/asset deletion and ui tweaks
- Added `deleteFile` to `FileService` and `deleteAsset` to `AssetService` to support file deletion.
- Implemented cascading deletion in `CharacterService` (delete looks -> delete character image -> delete character).
- Updated `GenerationService`, `PoseService`, and `ExpressionService` to delete associated image assets upon deletion.
- Added `DELETE /api/generations/:id` endpoint.
- Created `DropdownMenu` and `DeleteConfirmDialog` UI components.
- Updated `Characters`, `Poses`, `Expressions`, and `FittingRoom` pages to use the new delete UI (3-dot menu + confirmation).
- Updated `CreateLookDialog` to enforce single selection for equipment categories.
- Added necessary tests adjustments.
2026-02-16 01:41:32 +00:00
Yiling-J 0d1cd167ed Merge pull request #28 from Yiling-J/optimize-image-upload-11326080443017578345
Optimize Image Uploads
2026-02-15 22:15:32 +08:00
google-labs-jules[bot] a433927de7 Optimize image uploads to 2k webp 2026-02-15 14:10:07 +00:00
yiling ji 16b3ab2bc0 update pose images 2026-02-15 15:50:08 +08:00
Yiling-J b2640a59e8 Merge pull request #27 from Yiling-J/feature-backup-restore-6292895868242646111
Add Backup and Restore System
2026-02-15 15:38:37 +08:00
google-labs-jules[bot] b228376598 Refactor backup tests to mock fs and prevent CI race conditions
- Update `src/service/backup.test.ts` to fully mock `node:fs` methods (`existsSync`, `renameSync`, `mkdirSync`, `rmSync`).
- This prevents the test from interacting with the real file system, eliminating the `ENOENT` race condition error observed in CI pipelines.
- Ensures the test is idempotent and safely verifies the service logic without side effects.
- Verified all 49 tests pass locally.
2026-02-15 07:26:59 +00:00
google-labs-jules[bot] a452d79802 Refactor backup/restore to Service Layer and add comprehensive tests
- Create `BackupService` in `src/service/backup.ts` to encapsulate tar stream creation and restore logic (db connection, fs operations).
- Refactor `src/api/backup.ts` and `src/api/restore.ts` to use `BackupService`.
- Add unit tests for `BackupService` in `src/service/backup.test.ts`.
- Add API tests for backup and restore endpoints in `src/api/backup.test.ts` and `src/api/restore.test.ts`.
- Maintain existing functionality: uncompressed tar streaming, safe restore with rollback.
2026-02-15 05:30:33 +00:00
google-labs-jules[bot] a8f1ae7686 Add backup and restore system (tar only)
- Implement `GET /api/backup` to stream `data` directory as a tarball using `node-tar`.
- Implement `POST /api/restore` to accept and extract tarballs to the `data` directory.
- Update `BackupRestoreDialog` to accept `.tar` files and remove gzip references.
- Ensure safe restore with database connection management and rollback.
- Disabled Gzip compression as requested since assets are already compressed WebP files.
2026-02-15 05:22:01 +00:00
google-labs-jules[bot] 588a48e7f9 Add backup and restore system with gzip support
- Implement `GET /api/backup` to stream `data` directory as a gzipped tarball using `node-tar`.
- Implement `POST /api/restore` to accept and extract gzipped tarballs to the `data` directory, handling database disconnection/reconnection and rollbacks.
- Add `BackupRestoreDialog` UI component for downloading backups and uploading restore files.
- Integrate backup dialog trigger into the AppSidebar logo.
- Ensure type safety and add temporary integration tests for verification.
2026-02-15 05:16:03 +00:00
google-labs-jules[bot] 7381400d79 Add backup and restore functionality
- Add `GET /api/backup` endpoint to stream `data` directory as a tar file.
- Add `POST /api/restore` endpoint to handle tar file upload and restore.
- Implement `BackupRestoreDialog` in the UI for user interaction.
- Integrate backup/restore dialog into the sidebar via the logo.
- Ensure safe restore with rollback on failure and database connection management.
2026-02-15 05:07:36 +00:00
Yiling-J 92742b1272 Merge pull request #26 from Yiling-J/docs-update-readme-7271330270801183496
Update README
2026-02-15 12:08:40 +08:00
google-labs-jules[bot] 6952100ad6 docs: update README with project details, setup instructions, and key features 2026-02-15 04:03:45 +00:00
google-labs-jules[bot] a9c754a6bd docs: update README with project details and setup 2026-02-15 03:53:58 +00:00
Yiling-J 7de382a2c5 Merge pull request #25 from Yiling-J/docker-support-6109449474535310293
Add Docker support with multi-stage build and production serving
2026-02-15 11:41:35 +08:00
google-labs-jules[bot] 703badd7a2 feat: Add Dockerfile and production build support 2026-02-15 03:39:37 +00:00
Yiling-J 338558e990 Merge pull request #24 from Yiling-J/refactor-data-folder-10365341915644708364
Refactor data storage to `data/` folder and remove env files
2026-02-15 11:05:17 +08:00
google-labs-jules[bot] 8270715f5b Refactor data storage to data/ folder and remove env files
- Consolidate SQLite database and file storage into `data/` directory.
- Update `src/index.ts` to ensure `data` and `data/files` directories exist on startup.
- Update `src/db.ts` to use hardcoded `file:./data/data.db` path.
- Update `prisma.config.ts` to use absolute path to `data/data.db` for CLI compatibility.
- Update `.gitignore` to ignore `data/` directory entirely.
- Remove `.env.example` and `.env.test` as they are no longer needed.
- Fix TS2307 typecheck error by adding `*.webp` declaration to `src/env.d.ts`.
2026-02-15 03:02:24 +00:00
google-labs-jules[bot] bedf5670a8 Refactor data storage to data/ folder and remove env files
- Consolidate SQLite database and file storage into `data/` directory.
- Update `src/index.ts` to ensure `data` and `data/files` directories exist on startup.
- Update `src/db.ts` to use hardcoded `file:./data/data.db` path.
- Update `prisma.config.ts` to use absolute path to `data/data.db` for CLI compatibility.
- Update `.gitignore` to ignore `data/` directory entirely.
- Remove `.env.example` and `.env.test` as they are no longer needed.
2026-02-15 02:39:31 +00:00
yiling ji deb72c923f update env 2026-02-15 10:17:41 +08:00