auth-yes/tasks/complete/2026-0825.01.jul.story.arch.ui-decomposition-roadmap-2300.ph3.md
google-labs-jules[bot] afaecdaa26 Extract WebAuthn Components & Deduplicate Assets
- Extracted `PasskeyTable` and `WebAuthnScript` into `ui/components/auth/`.
- Refactored `PasskeysPage.tsx` and `RegisterPage.tsx` to use the new components instead of inline scripts and HTML.
- Deleted the duplicate `ui/public/ui/utils/bip39_wordlist.ts` and `ui/public/ui/utils/bip39.ts`.
- Updated all import references to use `ui/utils/bip39_wordlist.ts` and `/public/utils/bip39.ts`.

Co-authored-by: mrteye <1945243+mrteye@users.noreply.github.com>
2026-08-26 06:54:29 +00:00

45 lines
1.8 KiB
Markdown

# TASK METADATA
- **Target Files:** `ui/components/PasskeysPage.tsx`,
`ui/components/RegisterPage.tsx`, `ui/components/auth/PasskeyTable.tsx`,
`ui/components/auth/WebAuthnScript.tsx`,
`ui/public/ui/utils/bip39_wordlist.ts`, `ui/utils/bip39_wordlist.ts`,
`ui/ui_scripts.test.ts`
- **Core Objective:** Phase 3 (WebAuthn Scripts & Asset Deduplication): Extract
shared WebAuthn client ceremony helper scripts into
`ui/components/auth/WebAuthnScript.tsx`, modularize `PasskeysPage.tsx`, and
delete the duplicate 2,051-line `ui/public/ui/utils/bip39_wordlist.ts` asset.
- **Dependencies:**
`tasks/new/2026-0825.01.jul.story.arch.ui-decomposition-roadmap-2300.md`
- **Additional Important Notes:** Strictly 100% pure Hono SSR JSX. Preserve
WebAuthn challenge/verify ceremonies, passkey deletion, and verify all
wordlist imports point to `ui/utils/bip39_wordlist.ts`.
---
### 2. Architectural Considerations & Risks
- **Risks:**
- Broken WebAuthn registration/login ceremony if base64url or credential
creation helpers are altered.
- Broken imports if files still reference the deleted
`ui/public/ui/utils/bip39_wordlist.ts`.
- **Mitigation:**
- Verify with `deno task check` and `deno test --allow-all`.
### 3. Proposed Implementation
1. **Extract WebAuthn Components & Scripts (`ui/components/auth/`):**
- `PasskeyTable.tsx`: Passkeys list table and mobile deck rendering.
- `WebAuthnScript.tsx`: SSR JSX script component containing shared base64url
converters, biometric ceremony triggers, and challenge handlers.
2. **Deduplicate Wordlist Asset:**
- Delete `ui/public/ui/utils/bip39_wordlist.ts`.
- Update any import statements to point directly to
`ui/utils/bip39_wordlist.ts`.
3. **Quality Gates & Validation:**
- Run `deno fmt`, `deno task lint`, `deno task check`.
- Run `deno test --allow-all` (all 58 tests must pass).