glass/docs/refactor-plan.md
Ho Jin Yu 7d33ea9ca8
[Refactor] full refactor and file structure changed (#125)
* refactoring the bridge

* Update aec submodule

* folder structure refactor

* fixing ask logic

* resolve import err

* fix askview

* fix header content html path

* fix systemaudiodump path

* centralized ask logic

* delete legacy code

* change askservice to class

* settingsService facade

* fix getCurrentModelInfo

* common service ipc moved to featureBridge

* featureBridge init

* ui fix

* add featureBridge func for listenservice

* fix preload conflict

* shortcuts seperated

* refactor ask

* transfer roles from askview to askservice

* modifying windowBridge

* delete legacy ask code

* retrieve conversation history for askserice

* fix legacy code

* shortcut moved

* change naming for featurebridge

* screenshot moved from windowManager

* rough refactor done

---------

Co-authored-by: sanio <sanio@pickle.com>
Co-authored-by: jhyang0 <junhyuck0819@gmail.com>
2025-07-13 15:31:24 +09:00

1.3 KiB

Refactor Plan: Non-Window Logic Migration from windowManager.js

Goal

windowManager.js를 순수 창 관리 모듈로 만들기 위해 비즈니스 로직을 해당 서비스와 featureBridge.js로 이전.

Steps (based on initial plan)

  1. Shortcuts: Completed. Logic moved to shortcutsService.js and IPC to featureBridge.js. Used internalBridge for coordination.

  2. Screenshot: Next. Move captureScreenshot function and related IPC handlers from windowManager.js to askService.js (since it's primarily used there). Update askService.js to use its own screenshot method. Add IPC handlers to featureBridge.js if needed.

  3. System Permissions: Create new permissionService.js in src/features/common/services/. Move all permission-related logic (check, request, open preferences, mark completed, etc.) and IPC handlers from windowManager.js to the new service and featureBridge.js.

  4. API Key / Model State: Completely remove from windowManager.js (e.g., setupApiKeyIPC and helpers). Ensure all usages (e.g., in askService.js) directly require and use modelStateService.js instead.

Notes

  • Maintain original logic without changes.
  • Break circular dependencies if found.
  • Use internalBridge for inter-module communication where appropriate.
  • After each step, verify no errors and test functionality.