# S02: Trust & Credibility Cleanup

**Goal:** Remove test data, jargon banners, and version display issues that undermine credibility.
**Demo:** After this: Creators page has no TestCreator. Footer shows clean version info. Search results have no yellow jargon banner.

## Tasks
- [x] **T01: Added hidden boolean column to Creator model, migration marking TestCreator as hidden, and filtered list_creators() to exclude hidden creators** — Add a `hidden` boolean column to the Creator model with default=False. Create an Alembic migration that adds the column and marks the TestCreator record as hidden. Update the `list_creators()` query and total count query to filter out hidden creators.

## Steps

1. Read `backend/models.py` — add `hidden: Mapped[bool]` column to the Creator class with `default=False, server_default='false'`
2. Generate Alembic migration: `cd backend && alembic revision --autogenerate -m 'add_creator_hidden_flag'`
3. Edit the generated migration to include a data migration step: `UPDATE creators SET hidden = true WHERE slug = 'testcreator'` (or whatever the test creator's slug is — check by reading the existing data migration or searching for 'test' in prior migrations)
4. Read `backend/routers/creators.py` — add `.where(Creator.hidden != True)` to the main `list_creators()` query (the `stmt = select(...)` before genre/sort)
5. Also add the same filter to the total count query if one exists in the endpoint
6. Verify: run `cd backend && python -c "from models import Creator; print('hidden' in [c.key for c in Creator.__table__.columns])"` to confirm the column exists in the model

## Must-Haves

- [ ] Creator model has `hidden` boolean column with server_default='false'
- [ ] Alembic migration adds column and marks TestCreator as hidden
- [ ] list_creators() filters out hidden creators
- [ ] Migration file is syntactically valid

## Verification

- `cd backend && python -c "from models import Creator; print([c.key for c in Creator.__table__.columns])"` includes 'hidden'
- `cd backend && alembic check` reports no pending changes (migration matches model)
- Migration file contains both schema change and data UPDATE statement
  - Estimate: 20m
  - Files: backend/models.py, backend/routers/creators.py, alembic/versions/
  - Verify: cd backend && python -c "from models import Creator; print('hidden' in [c.key for c in Creator.__table__.columns])" && alembic check 2>&1 | head -5
- [x] **T02: Removed yellow semantic-search-unavailable banner from search results, simplified footer to hide commit info in dev builds, and bumped version to 0.8.0** — Three independent frontend cleanups:
1. Remove the yellow 'semantic search unavailable' fallback banner from SearchResults
2. Clean up the footer to hide commit info when value is 'dev' (already partially done — verify and simplify)
3. Bump package.json version to 0.8.0

## Steps

1. Read `frontend/src/pages/SearchResults.tsx` — remove the fallback banner JSX block (the `{!loading && fallbackUsed && results.length > 0 && (...)}` section around lines 101-105). Keep the `fallbackUsed` state variable — it's harmless and the API still returns it
2. Read `frontend/src/App.css` around line 1119 — remove the `.search-fallback-banner` CSS rule block (approximately lines 1119-1127)
3. Read `frontend/src/components/AppFooter.tsx` — the footer already conditionally renders commit as a link vs plain text. Simplify: when `__GIT_COMMIT__` is 'dev', hide the commit section entirely (remove the else branch that shows plain 'dev' text, and the separator before it)
4. Edit `frontend/package.json` — change version from '0.1.0' to '0.8.0'
5. Run `cd frontend && npm run build` to verify zero build errors

## Must-Haves

- [ ] No fallback banner JSX in SearchResults.tsx
- [ ] No `.search-fallback-banner` CSS rule in App.css
- [ ] Footer hides commit section entirely when __GIT_COMMIT__ is 'dev'
- [ ] package.json version is 0.8.0
- [ ] `npm run build` succeeds with zero errors

## Verification

- `grep -q 'search-fallback-banner' frontend/src/pages/SearchResults.tsx && echo FAIL || echo PASS`
- `grep -q 'search-fallback-banner' frontend/src/App.css && echo FAIL || echo PASS`
- `grep -q '"0.8.0"' frontend/package.json && echo PASS || echo FAIL`
- `cd frontend && npm run build 2>&1 | tail -3`
  - Estimate: 15m
  - Files: frontend/src/pages/SearchResults.tsx, frontend/src/App.css, frontend/src/components/AppFooter.tsx, frontend/package.json
  - Verify: cd frontend && npm run build 2>&1 | tail -5 && grep -q 'search-fallback-banner' src/pages/SearchResults.tsx && echo 'FAIL: banner still present' || echo 'PASS: banner removed'
