Add CI/CD pipeline, linting, debounced settings, and cleanup improvements#28
Draft
Add CI/CD pipeline, linting, debounced settings, and cleanup improvements#28
Conversation
…provements - Fix logout to clear IndexedDB assets (data leakage prevention) - Add ESLint flat config with TypeScript/React plugins and Prettier - Add lint and format scripts to package.json - Create CI workflow running type-check and build on push/PR - Fix hardcoded logo path to use chrome.runtime.getURL() - Remove unused AuthService methods (resetPassword, updateUser, deleteAccount) - Remove unused ApiClient methods (getPublic, putWithAuth) - Fix UploadService completion callback memory leak (Map -> Set with unsubscribe) - Debounce settings save in options.tsx (300ms) to reduce I/O on slider drags - Use VITE_API_URL env var with production fallback in environment.ts - Use import.meta.env.DEV for enableLogging in environment.ts Co-authored-by: numbers-official <181934381+numbers-official@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] [Feature] Add CI/CD pipeline, linting, debounced settings, and cleanup improvements
Add CI/CD pipeline, linting, debounced settings, and cleanup improvements
Mar 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ten medium-priority improvements spanning data privacy, developer experience, performance, and dead code removal.
Data Privacy
Developer Experience
@typescript-eslint,eslint-plugin-react-hooks,eslint-plugin-react-refresh, andeslint-config-prettier.prettierrc)lintandformatscripts added topackage.json.github/workflows/ci.yml) runstype-checkandbuildon push/PR tomainwith minimalcontents: readpermissionsBug Fixes
../../images/...) tochrome.runtime.getURL('images/Word-Logo-Bright-crop.png')— the relative path breaks if build output structure changesUploadService.completionCallbackschanged fromMap<string, fn>(unbounded growth keyed by timestamp+random) toSet<fn>;onUploadComplete()now returns an unsubscribe functionPerformance
chrome.storage.localwrite on everyonChangeevent; state update is now immediate, storage write is debouncedDead Code Removal
AuthService: removedresetPassword(),updateUser(),deleteAccount()(never called;deleteAccountalso had broken cleanup semantics)ApiClient: removedgetPublic()andputWithAuth()(never called)Environment Configuration
apiUrlnow readsimport.meta.env.VITE_API_URLwith the production URL as fallbackenableLoggingnow usesimport.meta.env.DEV ?? false— previouslytrueunconditionally in productionOriginal prompt
📍 Connect Copilot coding agent with Jira, Azure Boards or Linear to delegate work to Copilot in one click without leaving your project management tool.