Summary
- add a small SSH public-key identity helper that matches duplicates by key type + key material, ignoring comments/extra whitespace
- refresh the user's existing SSH-key list before starting the signed add-key flow
- stop before
/auth/sign-requestwhen the submitted key already exists or when the duplicate check cannot complete
Fixes #116
Test plan
node --test frontend/src/utils/sshKeys.test.mjsgit diff --check
Notes
- Attempted
npm run buildafternpm ci; local build is blocked on this dev server because installed Node is v18.20.4 while Vite 8 requires Node 20.19+ or 22.12+ (CustomEvent is not defined).
## Summary
- add a small SSH public-key identity helper that matches duplicates by key type + key material, ignoring comments/extra whitespace
- refresh the user's existing SSH-key list before starting the signed add-key flow
- stop before `/auth/sign-request` when the submitted key already exists or when the duplicate check cannot complete
Fixes #116
## Test plan
- `node --test frontend/src/utils/sshKeys.test.mjs`
- `git diff --check`
## Notes
- Attempted `npm run build` after `npm ci`; local build is blocked on this dev server because installed Node is v18.20.4 while Vite 8 requires Node 20.19+ or 22.12+ (`CustomEvent is not defined`).