Commit Graph
50 Commits
Author SHA1 Message Date
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
Yiling-J 61da94c5c9 Merge pull request #9 from Yiling-J/feature-fitting-room-and-character-creation-299810460561217948
feat: add character creation and fitting room ui
2026-02-09 17:03:58 +08:00
google-labs-jules[bot] f052e1bf8f feat: add character creation and fitting room ui
- Implemented `Character Creation` flow with dialog and image upload.
- Implemented `Fitting Room` page with split view (Character Preview / Generations).
- Implemented `Create Outfit` dialog with equipment filtering and selection.
- Added `POST /api/generations` to handle outfit generation.
- Updated `AIService` to support complex prompt structure with interleaved text and images.
- Updated `CharacterService` to support fetching single character.
- Added frontend routes and components.
- Added relevant tests.
- Fixed lint issues and updated UI sizing to 150px.
2026-02-09 08:56:04 +00:00
google-labs-jules[bot] cc024a0aea feat: add character creation and fitting room ui
- Implemented `Character Creation` flow with dialog and image upload.
- Implemented `Fitting Room` page with split view (Character Preview / Generations).
- Implemented `Create Outfit` dialog with equipment filtering and selection.
- Added `POST /api/generations` to handle outfit generation.
- Updated `AIService` to support complex prompt structure with interleaved text and images.
- Updated `CharacterService` to support fetching single character.
- Added frontend routes and components.
- Added relevant tests.
2026-02-09 00:10:59 +00:00
Yiling-J fba32312ce Merge pull request #8 from Yiling-J/jules-5007510567183700961-73aeff6d
feat: add sidebar and split views for characters and equipments
2026-02-08 23:20:20 +08:00
yiling ji 6d43ce96d5 fix lint 2026-02-08 23:01:23 +08:00
yiling ji 5ebad7befe update shadcn 2026-02-08 22:51:06 +08:00
google-labs-jules[bot] 7f837ead71 feat: add sidebar, characters page, and equipments page with filter
- Add `react-router-dom` for client-side routing.
- Add `shadcn` components: `Sidebar`, `Dialog`, `Button`, `ScrollArea`, `Avatar`, `Badge`, `Card`, `Sheet`, `Tooltip`, `Separator`, `Input`, `Label`.
- Implement `AppSidebar` with navigation to Characters and Equipments.
- Implement `Characters` page displaying character avatars.
- Implement `Equipments` page with:
  - Horizontal scrollable category filter (multi-select).
  - Equipment grid layout.
  - "Extract Equipment" button opening a `Dialog` (refactored from `Extractor` component, maintaining original UI design).
  - Added support for pasting images directly into the Extractor Dialog.
- Update `Equipment` API and Service to support filtering by multiple categories.
- Add database index to `Equipment` table on `[category, subCategory]`.
- Refactor `App.tsx` and `Layout.tsx` to use the new routing and sidebar structure.
- Remove legacy `Stash` and `Extractor` components.
2026-02-08 14:39:35 +00:00
google-labs-jules[bot] 6991642f69 feat: add sidebar, characters page, and equipments page with filter
- Add `react-router-dom` for client-side routing.
- Add `shadcn` components: `Sidebar`, `Dialog`, `Button`, `ScrollArea`, `Avatar`, `Badge`, `Card`, `Sheet`, `Tooltip`, `Separator`, `Input`, `Label`.
- Implement `AppSidebar` with navigation to Characters and Equipments.
- Implement `Characters` page displaying character avatars.
- Implement `Equipments` page with:
  - Horizontal scrollable category filter (multi-select).
  - Equipment grid layout.
  - "Extract Equipment" button opening a `Dialog` (refactored from `Extractor` component but maintaining original UI design).
- Update `Equipment` API and Service to support filtering by multiple categories.
- Add database index to `Equipment` table on `[category, subCategory]`.
- Refactor `App.tsx` and `Layout.tsx` to use the new routing and sidebar structure.
- Remove legacy `Stash` and `Extractor` components.
2026-02-08 14:00:47 +00:00
google-labs-jules[bot] bc3102a660 feat: add sidebar, characters page, and equipments page with filter
- Add `react-router-dom` for client-side routing.
- Add `shadcn` components: `Sidebar`, `Dialog`, `Button`, `ScrollArea`, `Avatar`, `Badge`, `Card`, `Sheet`, `Tooltip`, `Separator`, `Input`, `Label`.
- Implement `AppSidebar` with navigation to Characters and Equipments.
- Implement `Characters` page displaying character avatars.
- Implement `Equipments` page with:
  - Horizontal scrollable category filter (multi-select).
  - Equipment grid layout.
  - "Extract Equipment" button opening a `Dialog` (refactored from `Extractor` component).
- Update `Equipment` API and Service to support filtering by multiple categories.
- Add database index to `Equipment` table on `[category, subCategory]`.
- Refactor `App.tsx` and `Layout.tsx` to use the new routing and sidebar structure.
- Remove legacy `Stash` and `Extractor` components.
2026-02-08 12:26:17 +00:00
Yiling-J 0084194266 Merge pull request #7 from Yiling-J/update-categories-to-string-6889465491109430858
Replace Category table with hardcoded string categories
2026-02-08 18:18:05 +08:00
google-labs-jules[bot] 44291666e7 feat: replace Category table with string fields in Equipment
- Removed Category table from schema.prisma
- Updated Equipment table to use string `category` and `subCategory`
- Created `src/lib/categories.ts` with hardcoded categories
- Updated `ExtractionService` to use hardcoded categories and "Others" fallback
- Updated `Extract` API to stream `asset_refined` events
- Updated Frontend to handle new data structure and SSE events
- Updated tests to reflect changes
2026-02-08 09:10:22 +00:00
Yiling-J 4a814e117c Merge pull request #2 from Yiling-J/jules-forgery-feature-14118265087119997838
feat: Integrate Extraction UI Demo with Hono Backend
2026-02-08 16:15:12 +08:00
yiling ji 5ad86d3143 add test env 2026-02-08 16:11:07 +08:00
Yiling-J b60c7448f5 Merge pull request #6 from Yiling-J/fix-extraction-test-mocks-3801222500713040204
Fix test pollution by removing unused global mocks in extraction service
2026-02-08 13:23:38 +08:00
yiling ji 772971ab95 fix gemini schema 2026-02-08 13:22:39 +08:00
google-labs-jules[bot] f903873f16 Remove unused global mocks from extraction service tests
- Removed unused `mock.module` calls for `file`, `category`, `asset`, and `equipment` services in `src/service/extraction.test.ts`.
- These mocks were causing global pollution and interfering with `src/service/file.test.ts`, causing it to fail.
- Verified that `extraction.test.ts` and `file.test.ts` now pass independently and together.
2026-02-08 05:19:33 +00:00
yiling ji 35c91ec17a change idle timeout 2026-02-08 12:57:39 +08:00
yiling ji dd7afeeb71 update 2026-02-08 12:56:04 +08:00
Yiling-J 8e63341afc Merge pull request #5 from Yiling-J/refactor-service-instance-methods-6682712602208773896
Refactor services to use instance methods
2026-02-08 12:13:34 +08:00
google-labs-jules[bot] ed54192f4a refactor: Convert service methods from static to instance methods
- Refactored `AssetService`, `CategoryService`, `CharacterService`, `EquipmentService`, `FileService`, `ExtractionService`, `GenerationService` to use instance methods.
- Exported singleton instances for each service.
- Updated all API routes to use the exported service instances.
- Updated all tests to use and mock service instances.
- Updated `AGENTS.md` to reflect the new service layer pattern.
- Verified changes with lint, format, typecheck, and test.
2026-02-08 04:13:21 +00:00
Yiling-J 2475bcd550 Merge pull request #4 from Yiling-J/refactor-hono-api-routes-1758627388033681198
Refactor Hono API routes for typed RPC client & lint fixes
2026-02-08 11:05:53 +08:00
google-labs-jules[bot] 36d917eadd Refactor Hono API routes for typed RPC client & lint fixes 2026-02-08 03:05:02 +00:00
yiling ji 51252249eb fix format 2026-02-08 10:32:56 +08:00
Yiling-J 79c8840659 Merge pull request #3 from Yiling-J/jules-fix-lint-tests-types-10072341192937692961
Fix lint/typecheck/test issues and refactor UI types
2026-02-08 09:58:56 +08:00
google-labs-jules[bot] c944cff76b Fix lint/typecheck/test issues and refactor UI types
- Add `.env` to `.gitignore` and create `.env.example`.
- Install `@modelcontextprotocol/sdk` to fix type errors.
- Fix linting issues (unused vars, error handling) in `src/api/extract.ts` and `src/service/ai.ts`.
- Fix typecheck errors in `src/service/file.ts` (Buffer types) and `src/service/ai.ts` (GenAI types).
- Update `tsconfig.json` to use React JSX and skip lib checks.
- Fix tests in `src/service/asset.test.ts` (mocking `Bun.write`) and `src/api/equipment.test.ts`.
- Refactor `src/ui/components/Stash.tsx` and `src/ui/components/Extractor.tsx` to infer types from Hono client.
- Simplify `src/ui/types.ts` by removing redundant types.
2026-02-08 01:58:12 +00:00
yiling ji 0f538117fc fix prisma init 2026-02-07 23:43:33 +08:00
google-labs-jules[bot] 7194663eb5 feat: Integrate Extraction UI Demo with Hono Backend
- Migrated frontend demo to `src/ui` as a Bun-native React app.
- Implemented `ExtractionService` with 5-step AI extraction flow (Analyze, Generate, Detect, Crop, Refine).
- Implemented `FileService` for image processing and storage using `sharp`.
- Implemented `EquipmentService` and `CategoryService` for managing game assets.
- Set up Hono RPC (`hc`) for type-safe frontend-backend communication.
- Configured `Bun.serve` to handle both API routes and frontend static files/SPA routing.
- Added `zod` validation for API endpoints.
- Updated `AGENTS.md` with new architecture details.
2026-02-07 14:45:29 +00:00
yiling ji 4615a075b1 add demo ui 2026-02-07 21:05:33 +08:00
Yiling-J 2c6bf14d69 Merge pull request #1 from Yiling-J/feature-backend-infra-6262829423610331401
Backend Infrastructure Setup
2026-02-07 21:03:37 +08:00
google-labs-jules[bot] 5f8de096a6 feat: backend infra setup with prisma, services, and apis
- Added Prisma schema with Asset, Character, Equipment, Generation, Category models
- Configured SQLite with LibSQL adapter
- Implemented Service layer (src/service) with unit tests
- Implemented API layer (src/api) with Hono and integration tests
- Added static file serving for assets
- Configured CI/CD with GitHub Actions
- Added Developer Guide (AGENTS.md)
- Removed Format Check from CI
2026-02-07 13:02:46 +00:00
google-labs-jules[bot] 299be74d66 feat: backend infra setup with prisma, services, and apis
- Added Prisma schema with Asset, Character, Equipment, Generation, Category models
- Configured SQLite with LibSQL adapter
- Implemented Service layer (src/service) with unit tests
- Implemented API layer (src/api) with Hono and integration tests
- Added static file serving for assets
- Configured CI/CD with GitHub Actions
- Added Developer Guide (AGENTS.md)
2026-02-07 12:32:56 +00:00
google-labs-jules[bot] 1d87fd6db8 feat: backend infra setup with prisma, services, and apis
- Added Prisma schema with Asset, Character, Equipment, Generation, Category models
- Configured SQLite with LibSQL adapter
- Implemented Service layer with unit tests
- Implemented API layer with Hono and integration tests
- Added static file serving for assets
- Configured CI/CD with GitHub Actions
- Added Developer Guide (AGENTS.md)
2026-02-07 11:58:53 +00:00
yiling ji ad26eeaf5e update gitignore 2026-02-07 18:19:04 +08:00
yiling ji 5f9c755f71 init project 2026-02-07 12:05:18 +08:00