-
Notifications
You must be signed in to change notification settings - Fork 0
fix: Phase 4 Technical Debt - ESLint, Recovery Files, Bundle Optimization #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| { | ||
| "root": true, | ||
| "env": { | ||
| "browser": true, | ||
| "es2021": true, | ||
| "webextensions": true | ||
| }, | ||
| "extends": [ | ||
| "eslint:recommended", | ||
| "plugin:@typescript-eslint/recommended", | ||
| "plugin:react/recommended", | ||
| "plugin:react-hooks/recommended" | ||
| ], | ||
| "parser": "@typescript-eslint/parser", | ||
| "parserOptions": { | ||
| "ecmaVersion": "latest", | ||
| "sourceType": "module", | ||
| "ecmaFeatures": { | ||
| "jsx": true | ||
| } | ||
| }, | ||
| "plugins": [ | ||
| "@typescript-eslint", | ||
| "react", | ||
| "react-hooks" | ||
| ], | ||
| "rules": { | ||
| "@typescript-eslint/no-explicit-any": "warn", | ||
| "@typescript-eslint/no-unused-vars": ["warn", { "argsIgnorePattern": "^_" }], | ||
| "react/react-in-jsx-scope": "off", | ||
| "react/prop-types": "off", | ||
| "no-console": ["warn", { "allow": ["warn", "error"] }] | ||
| }, | ||
| "settings": { | ||
| "react": { | ||
| "version": "detect" | ||
| } | ||
| }, | ||
| "ignorePatterns": [ | ||
| "dist/", | ||
| "node_modules/", | ||
| "*.config.js", | ||
| "*.config.ts" | ||
| ] | ||
| } | ||
|
|
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,111 @@ | ||
| # Dependency Upgrade Plan | ||
|
|
||
| This document outlines the planned dependency upgrades for post-launch maintenance. | ||
|
|
||
| ## Current Status | ||
|
|
||
| ### Production Dependencies | ||
| - `@synonymdev/pubky`: `^0.5.4` (pinned) | ||
| - `dompurify`: `^3.3.1` | ||
| - `react`: `^18.3.1` | ||
| - `react-dom`: `^18.3.1` | ||
|
|
||
| ### Dev Dependencies | ||
| - `vite`: `^5.3.3` | ||
| - `vitest`: `^1.3.1` | ||
| - `typescript`: `^5.5.3` | ||
| - `@playwright/test`: `^1.40.0` | ||
|
|
||
| ## Upgrade Priorities | ||
|
|
||
| ### High Priority (Post-Launch) | ||
|
|
||
| 1. **@synonymdev/pubky** (when stable) | ||
| - Current: `^0.5.4` | ||
| - Target: Latest stable (check changelog for breaking changes) | ||
| - Risk: Medium - Core SDK, test thoroughly | ||
| - Timeline: After 1-2 months of stable production use | ||
|
|
||
| 2. **React** (when 19.x stable) | ||
| - Current: `^18.3.1` | ||
| - Target: `^19.0.0` (when released) | ||
| - Risk: Medium - May require code changes | ||
| - Timeline: Wait for ecosystem adoption | ||
|
|
||
| ### Medium Priority (Quarterly) | ||
|
|
||
| 3. **Vite** (when 6.x stable) | ||
| - Current: `^5.3.3` | ||
| - Target: `^6.0.0` (when released) | ||
| - Risk: Medium - Build tool, test build process | ||
| - Timeline: After Vite 6 stable release | ||
|
|
||
| 4. **TypeScript** (quarterly) | ||
| - Current: `^5.5.3` | ||
| - Target: Latest 5.x (avoid 6.x until stable) | ||
| - Risk: Low - Usually backward compatible | ||
| - Timeline: Every 3 months | ||
|
|
||
| 5. **Playwright** (quarterly) | ||
| - Current: `^1.40.0` | ||
| - Target: Latest 1.x | ||
| - Risk: Low - Test framework, update tests if needed | ||
| - Timeline: Every 3 months | ||
|
|
||
| ### Low Priority (As Needed) | ||
|
|
||
| 6. **DOMPurify** (security updates) | ||
| - Current: `^3.3.1` | ||
| - Target: Latest 3.x | ||
| - Risk: Low - Security library, patch updates only | ||
| - Timeline: When security patches released | ||
|
|
||
| 7. **Vitest** (quarterly) | ||
| - Current: `^1.3.1` | ||
| - Target: Latest 1.x | ||
| - Risk: Low - Test framework | ||
| - Timeline: Every 3 months | ||
|
|
||
| ## Upgrade Process | ||
|
|
||
| 1. **Create feature branch**: `chore/upgrade-{package}-{version}` | ||
| 2. **Update package.json**: Change version range | ||
| 3. **Run `npm install`**: Install new version | ||
| 4. **Run `npm run typecheck`**: Check for type errors | ||
| 5. **Run `npm run lint`**: Check for linting issues | ||
| 6. **Run `npm test`**: Run unit tests | ||
| 7. **Run `npm run test:e2e`**: Run E2E tests | ||
| 8. **Manual testing**: Test critical user flows | ||
| 9. **Update CHANGELOG.md**: Document upgrade | ||
| 10. **Create PR**: Get review before merging | ||
|
|
||
| ## Breaking Changes Tracking | ||
|
|
||
| ### @synonymdev/pubky | ||
| - Monitor: https://github.com/synonymdev/pubky/releases | ||
| - Watch for: API changes, Client constructor changes, auth flow changes | ||
|
|
||
| ### React 19 | ||
| - Monitor: https://react.dev/blog | ||
| - Watch for: Hook changes, component API changes, concurrent features | ||
|
|
||
| ### Vite 6 | ||
| - Monitor: https://vitejs.dev/blog | ||
| - Watch for: Config changes, plugin API changes, build output changes | ||
|
|
||
| ## Security Updates | ||
|
|
||
| For security-related updates: | ||
| 1. Create hotfix branch immediately | ||
| 2. Test critical paths only | ||
| 3. Deploy to production ASAP | ||
| 4. Full testing in follow-up PR | ||
|
|
||
| ## Notes | ||
|
|
||
| - Always test in development environment first | ||
| - Keep backup of working package-lock.json | ||
| - Document any breaking changes in code comments | ||
| - Update type definitions if needed | ||
| - Check peer dependency requirements | ||
|
|
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new recovery export UI calls
setShowRecoveryModalhere and later readsshowRecoveryModal,recoveryPassphrase,recoveryPassphraseConfirm,recoveryError, andisExportingRecovery, but the component never declares these state hooks (only name/bio/upload state is initialized at the top). This leaves the component using undefined identifiers, so the TypeScript build will fail (and at runtime would throwReferenceError) as soon as the file is imported, blocking the profile editor and the new recovery flow entirely.Useful? React with 👍 / 👎.