V0.1.1 release, close to actual release. Bug & security fixes/improvements.
This commit is contained in:
70
agent3_batch4.md
Normal file
70
agent3_batch4.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# Batch 4: Content Delivery + Rendering Verification
|
||||
|
||||
## 1. ViewContent.svelte Assessment
|
||||
|
||||
**Status: CORRECT**
|
||||
|
||||
- **Multi-file display**: Correctly branches on `metadata.files.length === 1` vs multi-file.
|
||||
- **Metadata rendering**: Displays:
|
||||
- `created_at` via `new Date(metadata.created_at).toLocaleString()`
|
||||
- `total_size` via `formatSize(metadata.total_size)`
|
||||
- `author` conditionally (`{#if metadata.author}`), linking to `https://t.me/{username}`
|
||||
- **Password propagation**: `password` state is initialized from `sc` prop and passed to all `fileUrl()` / `rawUrl()` calls for single-file viewers.
|
||||
- **Viewer routing**: `getViewerFor()` maps `render_flags` to the correct component.
|
||||
|
||||
## 2. MixedGallery.svelte Assessment
|
||||
|
||||
**Status: CORRECT**
|
||||
|
||||
- **Multi-file handling**: Iterates `files` with keyed `{#each}` (`(file.idx)`), rendering each in its own panel with index and filename header.
|
||||
- **Password propagation**: The `password` prop (default `''`) is passed to **every** `fileUrl()` and `rawUrl()` call across all viewer types (image, video, audio, markdown, text, pdf, docx, dangerous, sensitive, document). This ensures password-protected multi-file galleries load correctly.
|
||||
- **Consistency**: Uses the same viewer mapping logic as `ViewContent.svelte`.
|
||||
|
||||
## 3. Frontend Display Issues Affecting Submission/Forward System
|
||||
|
||||
**No blocking issues found.**
|
||||
|
||||
### Author Visibility Toggle
|
||||
- The backend supports `show_author: bool` (database + API).
|
||||
- The server returns `author: Option<AuthorInfo>`; when `show_author` is `false`, `author` is `null`.
|
||||
- The frontend respects this via `{#if metadata.author}` — no author block is rendered when hidden.
|
||||
- **Conclusion**: Author visibility toggle works end-to-end.
|
||||
|
||||
### Password Field Behavior
|
||||
- `Home.svelte`: Password field appears when `needsPassword` is set (401 response without password, or incorrect password entered). Correctly appends `sc` to URL on success.
|
||||
- `ViewContent.svelte`: If `sc` is present in URL, it pre-fills the password state. If metadata fetch returns 401, shows password panel. Correct.
|
||||
|
||||
### Minor Observations (non-blocking)
|
||||
1. **Missing `loading = false` in `Home.svelte` success path**: After successful metadata fetch, `loading` is never reset to `false`. Because the component unmounts on navigation, this is not user-visible, but it is a logic gap.
|
||||
2. **`MixedGallery.svelte` flag logic**: Combines executable (`64`) and dangerous (`128`) into a single `'dangerous'` branch. `ViewContent.svelte` separates them into `'executable'` / `'dangerous'`, but both map to `<ExecutableWarning>`, so behavior is identical.
|
||||
3. **Chunk size warning**: Build emits a warning about `lib-BKGKj-wr.js` (~497 kB). This is from `marked` / `DOMPurify` and is cosmetic only.
|
||||
|
||||
## 4. Build Result
|
||||
|
||||
```
|
||||
> cgcx-frontend@0.1.0 build
|
||||
> vite build
|
||||
|
||||
vite v8.0.14 building client environment for production...
|
||||
✓ 621 modules transformed.
|
||||
|
||||
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 2.19s
|
||||
(!) Some chunks are larger than 500 kB after minification.
|
||||
```
|
||||
|
||||
**Result: BUILD PASSED** (only chunk-size warnings, no errors).
|
||||
|
||||
## Summary
|
||||
|
||||
| Component | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| ViewContent.svelte | ✅ OK | Metadata + password + multi-file routing correct |
|
||||
| MixedGallery.svelte | ✅ OK | Password passed to all file URLs; multi-file panels correct |
|
||||
| Author visibility | ✅ OK | Respects backend `show_author` via conditional render |
|
||||
| Password behavior | ✅ OK | Pre-fill, prompt, and URL propagation all work |
|
||||
| Build | ✅ PASS | Clean production build |
|
||||
Reference in New Issue
Block a user