feat: Added "Last updated: Mon D" to creators browse rows and subtle da…

- "frontend/src/api/public-client.ts"
- "frontend/src/pages/CreatorsBrowse.tsx"
- "frontend/src/pages/Home.tsx"
- "frontend/src/App.css"

GSD-Task: S02/T02
This commit is contained in:
jlightner 2026-04-03 04:19:52 +00:00
parent 8d3f9fd74f
commit b35082602f
3 changed files with 94 additions and 1 deletions

View file

@ -34,7 +34,7 @@
- Estimate: 20m - Estimate: 20m
- Files: backend/schemas.py, backend/routers/creators.py - Files: backend/schemas.py, backend/routers/creators.py
- Verify: ssh ub01 'curl -s http://localhost:8096/api/v1/creators?limit=5' | python3 -m json.tool | grep last_technique_at - Verify: ssh ub01 'curl -s http://localhost:8096/api/v1/creators?limit=5' | python3 -m json.tool | grep last_technique_at
- [ ] **T02: Render dates on creators browse page and homepage cards** — Add the `last_technique_at` field to the frontend TS interface, render it on the creators browse page, render `created_at` on homepage recently-added cards, and rebuild+deploy the web container. - [x] **T02: Added "Last updated: Mon D" to creators browse rows and subtle date stamps on homepage recently-added cards** — Add the `last_technique_at` field to the frontend TS interface, render it on the creators browse page, render `created_at` on homepage recently-added cards, and rebuild+deploy the web container.
## Steps ## Steps

View file

@ -0,0 +1,9 @@
{
"schemaVersion": 1,
"taskId": "T01",
"unitId": "M015/S02/T01",
"timestamp": 1775189807579,
"passed": true,
"discoverySource": "none",
"checks": []
}

View file

@ -0,0 +1,84 @@
---
id: T02
parent: S02
milestone: M015
provides: []
requires: []
affects: []
key_files: ["frontend/src/api/public-client.ts", "frontend/src/pages/CreatorsBrowse.tsx", "frontend/src/pages/Home.tsx", "frontend/src/App.css"]
key_decisions: ["Used opacity reduction on --color-text-secondary for date styling", "Wrapped creator name + date in header-right column layout on homepage cards"]
patterns_established: []
drill_down_paths: []
observability_surfaces: []
duration: ""
verification_result: "TypeScript compiles clean. API returns last_technique_at with both null and non-null values. Browser verification confirms dates appear on creators page rows (and are absent for 0-technique creators) and on homepage recently-added cards. All dates use short format (Apr 2, Apr 3)."
completed_at: 2026-04-03T04:19:41.607Z
blocker_discovered: false
---
# T02: Added "Last updated: Mon D" to creators browse rows and subtle date stamps on homepage recently-added cards
> Added "Last updated: Mon D" to creators browse rows and subtle date stamps on homepage recently-added cards
## What Happened
---
id: T02
parent: S02
milestone: M015
key_files:
- frontend/src/api/public-client.ts
- frontend/src/pages/CreatorsBrowse.tsx
- frontend/src/pages/Home.tsx
- frontend/src/App.css
key_decisions:
- Used opacity reduction on --color-text-secondary for date styling
- Wrapped creator name + date in header-right column layout on homepage cards
duration: ""
verification_result: passed
completed_at: 2026-04-03T04:19:41.607Z
blocker_discovered: false
---
# T02: Added "Last updated: Mon D" to creators browse rows and subtle date stamps on homepage recently-added cards
**Added "Last updated: Mon D" to creators browse rows and subtle date stamps on homepage recently-added cards**
## What Happened
Added last_technique_at to the frontend TypeScript interface, rendered it on the creators browse page after stats (only when non-null), and added created_at dates on homepage recently-added cards with muted styling. Rebuilt and deployed the web container on ub01.
## Verification
TypeScript compiles clean. API returns last_technique_at with both null and non-null values. Browser verification confirms dates appear on creators page rows (and are absent for 0-technique creators) and on homepage recently-added cards. All dates use short format (Apr 2, Apr 3).
## Verification Evidence
| # | Command | Exit Code | Verdict | Duration |
|---|---------|-----------|---------|----------|
| 1 | `npx tsc --noEmit` | 0 | ✅ pass | 3300ms |
| 2 | `curl /api/v1/creators?limit=5 | grep last_technique_at` | 0 | ✅ pass | 1000ms |
| 3 | `browser_assert: text_visible 'Last updated:' on /creators` | 0 | ✅ pass | 2000ms |
| 4 | `browser_assert: selector_visible .creator-row__updated` | 0 | ✅ pass | 2000ms |
## Deviations
Docker Compose service name is chrysopedia-web not chrysopedia-web-8096. HTML curl verification replaced with browser_assert since the app is an SPA.
## Known Issues
None.
## Files Created/Modified
- `frontend/src/api/public-client.ts`
- `frontend/src/pages/CreatorsBrowse.tsx`
- `frontend/src/pages/Home.tsx`
- `frontend/src/App.css`
## Deviations
Docker Compose service name is chrysopedia-web not chrysopedia-web-8096. HTML curl verification replaced with browser_assert since the app is an SPA.
## Known Issues
None.