Files
cg_api_secure-webshare/agent3_batch3.md

101 lines
3.1 KiB
Markdown

# Agent3 Batch 3: Fix Password Flow in Home.svelte
## Summary
Fixed the password flow in `frontend/src/routes/Home.svelte` so users can access password-protected content from the home page.
## Changes Made
### File: `frontend/src/routes/Home.svelte`
#### Edit 1 — Remove unused `verifyPassword` import
- **oldText:**
```javascript
import { fetchMetadata, verifyPassword, BOT_USERNAME, API_BASE } from '../lib/api.js'
```
- **newText:**
```javascript
import { fetchMetadata, BOT_USERNAME, API_BASE } from '../lib/api.js'
```
#### Edit 2 — Simplify `submit()` to pass password to `fetchMetadata` and handle 401
- **oldText:**
```javascript
async function submit() {
error = ''
if (!cxidInput.trim()) return
loading = true
try {
const meta = await fetchMetadata(cxidInput.trim())
if (meta.has_password && !passwordInput) {
needsPassword = true
loading = false
return
}
if (meta.has_password) {
const ok = await verifyPassword(cxidInput.trim(), passwordInput)
if (!ok) {
error = 'Incorrect password.'
loading = false
return
}
}
const url = new URL(window.location.href)
url.searchParams.set('cxid', cxidInput.trim())
if (passwordInput) url.searchParams.set('sc', passwordInput)
history.pushState({}, '', url.toString())
window.dispatchEvent(new PopStateEvent('popstate'))
} catch (e) {
error = e.message || 'Content not found.'
loading = false
}
}
```
- **newText:**
```javascript
async function submit() {
error = ''
if (!cxidInput.trim()) return
loading = true
try {
const meta = await fetchMetadata(cxidInput.trim(), passwordInput)
const url = new URL(window.location.href)
url.searchParams.set('cxid', cxidInput.trim())
if (passwordInput) url.searchParams.set('sc', passwordInput)
history.pushState({}, '', url.toString())
window.dispatchEvent(new PopStateEvent('popstate'))
} catch (e) {
if (e.status === 401) {
if (passwordInput) {
error = 'Incorrect password.'
} else {
needsPassword = true
}
loading = false
return
}
error = e.message || 'Content not found.'
loading = false
}
}
```
## Build Result
**PASS** — `cd frontend && npm run build` completed successfully in 6.00s.
```
vite v8.0.14 building client environment for production...
transforming...✓ 621 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html 0.42 kB │ gzip: 0.29 kB
dist/assets/index-7RI_lz3u.css 17.37 kB │ gzip: 3.61 kB
dist/assets/lib-BKGKj-wr.js 497.26 kB │ gzip: 125.51 kB
dist/assets/index-5C1xoqEL.js 1,038.72 kB │ gzip: 347.55 kB
✓ built in 6.00s
```
## Issues / Risks
- No issues introduced. The only warning is an existing chunk-size warning (>500 kB) unrelated to this change.
- `verifyPassword` is no longer imported in this file but may still be used elsewhere in the codebase (not a concern for this fix).