diff --git a/.gsd/milestones/M008/slices/S02/S02-PLAN.md b/.gsd/milestones/M008/slices/S02/S02-PLAN.md index 7e7a572..c34403a 100644 --- a/.gsd/milestones/M008/slices/S02/S02-PLAN.md +++ b/.gsd/milestones/M008/slices/S02/S02-PLAN.md @@ -30,7 +30,7 @@ - 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 -- [ ] **T02: Remove fallback banner, clean up footer, and bump version** — Three independent frontend cleanups: +- [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 diff --git a/.gsd/milestones/M008/slices/S02/tasks/T01-VERIFY.json b/.gsd/milestones/M008/slices/S02/tasks/T01-VERIFY.json new file mode 100644 index 0000000..4254005 --- /dev/null +++ b/.gsd/milestones/M008/slices/S02/tasks/T01-VERIFY.json @@ -0,0 +1,16 @@ +{ + "schemaVersion": 1, + "taskId": "T01", + "unitId": "M008/S02/T01", + "timestamp": 1774933997939, + "passed": true, + "discoverySource": "task-plan", + "checks": [ + { + "command": "cd backend", + "exitCode": 0, + "durationMs": 7, + "verdict": "pass" + } + ] +} diff --git a/.gsd/milestones/M008/slices/S02/tasks/T02-SUMMARY.md b/.gsd/milestones/M008/slices/S02/tasks/T02-SUMMARY.md new file mode 100644 index 0000000..e6dcc90 --- /dev/null +++ b/.gsd/milestones/M008/slices/S02/tasks/T02-SUMMARY.md @@ -0,0 +1,83 @@ +--- +id: T02 +parent: S02 +milestone: M008 +provides: [] +requires: [] +affects: [] +key_files: ["frontend/src/pages/SearchResults.tsx", "frontend/src/App.css", "frontend/src/components/AppFooter.tsx", "frontend/package.json"] +key_decisions: ["Removed fallbackUsed state entirely since TS strict mode flags unused variables — keeping dead state would break builds"] +patterns_established: [] +drill_down_paths: [] +observability_surfaces: [] +duration: "" +verification_result: "All grep checks pass (no banner references remain), version confirmed as 0.8.0, npm run build succeeds with zero errors. Slice-level Creator model check also passes." +completed_at: 2026-03-31T05:14:46.779Z +blocker_discovered: false +--- + +# 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 + +> 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 + +## What Happened +--- +id: T02 +parent: S02 +milestone: M008 +key_files: + - frontend/src/pages/SearchResults.tsx + - frontend/src/App.css + - frontend/src/components/AppFooter.tsx + - frontend/package.json +key_decisions: + - Removed fallbackUsed state entirely since TS strict mode flags unused variables — keeping dead state would break builds +duration: "" +verification_result: passed +completed_at: 2026-03-31T05:14:46.780Z +blocker_discovered: false +--- + +# 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 + +**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** + +## What Happened + +Three independent frontend cleanups: (1) removed fallback banner JSX and CSS rule plus the now-unused fallbackUsed state variable, (2) simplified AppFooter to conditionally hide commit section when __GIT_COMMIT__ is 'dev' instead of showing plain 'dev' text, (3) bumped package.json version to 0.8.0. Build passes with zero errors. + +## Verification + +All grep checks pass (no banner references remain), version confirmed as 0.8.0, npm run build succeeds with zero errors. Slice-level Creator model check also passes. + +## Verification Evidence + +| # | Command | Exit Code | Verdict | Duration | +|---|---------|-----------|---------|----------| +| 1 | `grep -q 'search-fallback-banner' frontend/src/pages/SearchResults.tsx` | 1 | ✅ pass (not found) | 100ms | +| 2 | `grep -q 'search-fallback-banner' frontend/src/App.css` | 1 | ✅ pass (not found) | 100ms | +| 3 | `grep -q '"0.8.0"' frontend/package.json` | 0 | ✅ pass | 100ms | +| 4 | `cd frontend && npm run build` | 0 | ✅ pass | 2600ms | + + +## Deviations + +Removed fallbackUsed state variable entirely — TS strict mode flagged it as unused after banner JSX removal, causing build failure. Plan said to keep it. + +## Known Issues + +None. + +## Files Created/Modified + +- `frontend/src/pages/SearchResults.tsx` +- `frontend/src/App.css` +- `frontend/src/components/AppFooter.tsx` +- `frontend/package.json` + + +## Deviations +Removed fallbackUsed state variable entirely — TS strict mode flagged it as unused after banner JSX removal, causing build failure. Plan said to keep it. + +## Known Issues +None. diff --git a/frontend/package.json b/frontend/package.json index 20eab20..ab8bdd8 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "chrysopedia-web", "private": true, - "version": "0.1.0", + "version": "0.8.0", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/App.css b/frontend/src/App.css index 3c9e3fb..2ff3c25 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -1116,16 +1116,6 @@ a.app-footer__repo:hover { max-width: 64rem; } -.search-fallback-banner { - padding: 0.5rem 0.75rem; - background: var(--color-banner-amber-bg); - border: 1px solid var(--color-banner-amber-border); - border-radius: 0.375rem; - font-size: 0.8125rem; - color: var(--color-banner-amber-text); - margin-bottom: 1rem; -} - .search-group { margin-bottom: 1.5rem; } diff --git a/frontend/src/components/AppFooter.tsx b/frontend/src/components/AppFooter.tsx index 98752be..e2899fa 100644 --- a/frontend/src/components/AppFooter.tsx +++ b/frontend/src/components/AppFooter.tsx @@ -15,7 +15,7 @@ export default function AppFooter() { Built {__BUILD_DATE__.slice(0, 10)} - {commitUrl ? ( + {commitUrl && ( <> · - ) : ( - <> - · - {__GIT_COMMIT__} - )} · ([]); - const [fallbackUsed, setFallbackUsed] = useState(false); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [localQuery, setLocalQuery] = useState(q); @@ -25,7 +24,6 @@ export default function SearchResults() { const doSearch = useCallback(async (query: string) => { if (!query.trim()) { setResults([]); - setFallbackUsed(false); return; } @@ -34,7 +32,6 @@ export default function SearchResults() { try { const res = await searchApi(query.trim()); setResults(res.items); - setFallbackUsed(res.fallback_used); } catch (err) { setError(err instanceof Error ? err.message : "Search failed"); setResults([]); @@ -97,13 +94,6 @@ export default function SearchResults() { {loading &&
Searching…
} {error &&
Error: {error}
} - {/* Fallback banner */} - {!loading && fallbackUsed && results.length > 0 && ( -
- Showing keyword results — semantic search unavailable -
- )} - {/* No results */} {!loading && !error && q && results.length === 0 && (