fix: remove moments from recent cards, pin footer to bottom of card
This commit is contained in:
parent
00cb865507
commit
caedc9c224
4 changed files with 19 additions and 26 deletions
|
|
@ -42,8 +42,9 @@ Four issues identified with root causes already diagnosed:
|
|||
| 2 | Mobile job cards show vertical text ("C h e e") | `.pipeline-video__creator` missing overflow rules (App.css:4477) | Add `overflow: hidden; text-overflow: ellipsis; white-space: nowrap` (matches `.pipeline-video__filename` pattern) |
|
||||
| 3 | No stage direction chevrons | Pipeline stages listed without visual flow indicator | Add CSS chevron/arrow between stage indicators using `::after` pseudo-elements or inline SVG |
|
||||
| 4 | Filter text box should be replaced with button group | Current text input for status filter; should be "ALL \| Not Started \| In Progress \| Complete" buttons, end-aligned | Replace `<input>` with `<div className="filter-buttons">` flexbox, `justify-content: flex-end`, verify vertical alignment against adjacent elements |
|
||||
| 5 | Creators dropdown never populates (422 error) | Frontend requests `fetchCreators({ limit: 200 })` but backend validates `le=100` (line 1126) | Change to `limit: 100` |
|
||||
|
||||
**Verification:** Test collapse toggle on most-recent run, resize to 375px and check creator name truncation, confirm chevrons render between stages, confirm filter buttons align right and sit level with row.
|
||||
**Verification:** Test collapse toggle on most-recent run, resize to 375px and check creator name truncation, confirm chevrons render between stages, confirm filter buttons align right and sit level with row, confirm creator filter dropdown populates.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -135,8 +136,8 @@ Recommended execution order: **S01 → S02 → S03 → S04 → S05 → S06**
|
|||
|
||||
## Out of Scope (for this milestone)
|
||||
|
||||
- Creator landing page redesign (depends on backend social links API — see M017)
|
||||
- Auto-avatar images (backend-gated — see M017)
|
||||
- Embed tab (needs backend investigation first — see M017)
|
||||
- Creator landing page redesign (depends on backend social links API — see backend session workplan)
|
||||
- Auto-avatar images (backend-gated — see backend session workplan)
|
||||
- Embed tab (needs backend investigation first — see backend session workplan)
|
||||
- Any backend Python changes
|
||||
- M015 S04/S05 leftovers (trending searches block, admin dropdown hover) — should be completed by M015's own GSD session first
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
# M017: Backend Performance & Creator Features
|
||||
# Backend Performance & Creator Features — Session Workplan
|
||||
|
||||
> **Stream:** Backend — intended for a separate Claude Code session (not GSD)
|
||||
> **Conflict zone:** `backend/` only + one frontend API client fix
|
||||
> **Stream:** Backend — run in a separate Claude Code session while GSD executes M016
|
||||
> **Conflict zone:** `backend/` only — zero frontend changes
|
||||
> **Deploy cadence:** commit-build-redeploy after each task group
|
||||
|
||||
---
|
||||
|
||||
## Goal
|
||||
|
||||
Fix critical performance bottlenecks in the admin pipeline API, implement auto-avatar fetching for creators, and lay the backend groundwork for creator landing page improvements. Almost entirely backend Python — minimal frontend changes.
|
||||
Fix critical performance bottlenecks in the admin pipeline API, implement auto-avatar fetching for creators, and lay the backend groundwork for creator landing page improvements. Purely backend Python — no frontend changes (the creators 422 fix moved to M016 S02).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -31,11 +31,8 @@ stats = await asyncio.to_thread(inspector.stats) or {}
|
|||
Also consider: reduce inspect timeout to 0.5s, add Redis cache with 10-15s TTL to avoid repeated slow calls.
|
||||
**Impact:** Page load drops from ~3s to ~50ms.
|
||||
|
||||
#### 1b. Fix creators endpoint 422 error
|
||||
**File (frontend):** `frontend/src/pages/AdminPipeline.tsx` line 1126
|
||||
**File (backend):** `backend/routers/creators.py` line 28
|
||||
**Problem:** Frontend requests `fetchCreators({ limit: 200 })` but backend validates `le=100`. Returns 422 on every pipeline page load — creator filter dropdown never populates.
|
||||
**Fix:** Change frontend call to `limit: 100`. (This is the ONE frontend file touch in this stream.)
|
||||
#### ~~1b. Fix creators endpoint 422 error~~ → Moved to M016 S02
|
||||
The frontend `fetchCreators({ limit: 200 })` fix (AdminPipeline.tsx line 1126) is now part of M016's pipeline UI fixes slice, since that slice already owns AdminPipeline.tsx.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -141,24 +138,23 @@ As each endpoint is touched, also consider:
|
|||
|
||||
| File | What changes |
|
||||
|------|-------------|
|
||||
| `backend/routers/pipeline.py` | worker-status async fix, stale-pages rewrite, videos pagination, avatar endpoints |
|
||||
| `backend/routers/creators.py` | Creator detail expansion, social links |
|
||||
| `backend/routers/pipeline.py` | worker-status async fix, stale-pages rewrite, videos pagination, avatar admin endpoints |
|
||||
| `backend/routers/creators.py` | Creator detail expansion, social links, admin editing |
|
||||
| `backend/routers/techniques.py` | Related techniques optimization |
|
||||
| `backend/models.py` | Creator model additions (avatar, social_links, bio) |
|
||||
| `backend/schemas.py` | New response schemas |
|
||||
| `backend/services/avatar.py` | New — TheAudioDB integration |
|
||||
| `backend/tasks.py` | New avatar fetch task |
|
||||
| `alembic/versions/014_*.py` | Migration for creator columns |
|
||||
| `frontend/src/pages/AdminPipeline.tsx` | Line 1126 only — fix limit: 200 → 100 |
|
||||
|
||||
---
|
||||
|
||||
## Merge Coordination with M016
|
||||
|
||||
These two streams are designed to have minimal file overlap:
|
||||
- **M016 touches:** `App.css`, `Home.tsx`, `TechniquePage.tsx`, `TableOfContents.tsx`, `AdminPipeline.tsx` (CSS/JSX only), new frontend components, static assets
|
||||
- **M017 touches:** `backend/` (routers, models, schemas, services, tasks), `alembic/`, one line in `AdminPipeline.tsx`
|
||||
These two streams have **zero file overlap:**
|
||||
- **M016 touches:** `frontend/src/` only — `App.css`, `Home.tsx`, `TechniquePage.tsx`, `TableOfContents.tsx`, `AdminPipeline.tsx`, new frontend components, static assets
|
||||
- **This session touches:** `backend/` only — routers, models, schemas, services, tasks, `alembic/`
|
||||
|
||||
The single conflict point is `AdminPipeline.tsx` — M017's creators limit fix (line 1126) vs M016's pipeline UI fixes (collapse bug at line 729, filter buttons, chevrons). Resolve by merging M017's one-liner first, then M016's broader changes on top.
|
||||
No merge conflicts expected. The creators 422 fix (the former single overlap point) now lives in M016 S02.
|
||||
|
||||
For the avatar/social-links frontend wiring: M017 ships the API, M016 (or a follow-up) consumes it. No conflict — just sequencing.
|
||||
For avatar/social-links frontend wiring: this session ships the API, M016 (or a follow-up) consumes it. No conflict — just sequencing.
|
||||
|
|
@ -1619,6 +1619,7 @@ a.app-footer__repo:hover {
|
|||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
flex-wrap: wrap;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.recent-card__summary {
|
||||
|
|
|
|||
|
|
@ -330,11 +330,6 @@ export default function Home() {
|
|||
<span className="recent-card__creator">
|
||||
{t.creator_name || ''}
|
||||
</span>
|
||||
{t.key_moment_count > 0 && (
|
||||
<span className="recent-card__moments">
|
||||
{t.key_moment_count} moment{t.key_moment_count !== 1 ? 's' : ''}
|
||||
</span>
|
||||
)}
|
||||
{t.created_at && (
|
||||
<span className="recent-card__date">
|
||||
{new Date(t.created_at).toLocaleDateString('en-US', { month: 'short', day: 'numeric' })}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue