16cd32b0db
fix: body background follows theme tokens + Plausible analytics
...
- theme.css: add background: var(--color-surface) to body so it responds
to theme changes (was hardcoded #0d1117 via FOFT guard in index.html,
causing mixed dark/light on light theme)
- index.html: add Plausible analytics snippet (cookie-free, self-hosted,
skips localhost; reports to hostname + circuitforge.tech rollup)
- index.html: clarify FOFT guard comment — bundle overrides both html
and body once loaded
2026-04-17 03:00:16 -07:00
dbe9aaa00b
feat: add Plausible analytics to Vue SPA and docs
CI / Python tests (push) Has been cancelled
CI / Frontend typecheck + tests (push) Has been cancelled
Mirror / mirror (push) Has been cancelled
2026-04-16 21:15:56 -07:00
fb81422c54
feat: snipe beta backlog batch (tickets #22/#28/#30/#34/#35/#36/#37/#38)
...
Cloud/session:
- fix(_extract_session_token): return "" for non-JWT cookie strings (snipe_guest=uuid was
triggering 401 → forced login redirect for all unauthenticated cloud visitors)
- fix(affiliate): exclude guest: and anonymous users from pref-store writes (#38 )
- fix(market-comp): use enriched comp_query for market comp hash so write/read keys match (#30 )
Frontend:
- feat(SearchView): unauthenticated landing strip with free-account CTA (#36 )
- feat(SearchView): aria-pressed on filter toggles, aria-label on icon buttons, focus-visible
rings on all interactive controls, live region for result count (#35 )
- feat(SearchView): no-results empty-state hint text (#36 )
- feat(SEO): og:image 1200x630, summary_large_image twitter card, canonical link (#37 )
- feat(OG): generated og-image.png (dark tactical theme, feature pills) (#37 )
- feat(settings): TrustSignalPref view wired to /settings route (#28 )
- fix(router): /settings route added; unauthenticated access redirects to home (#34 )
CI/CD:
- feat(ci): Forgejo Actions workflow (ruff + pytest + vue-tsc + vitest) (#22 )
- feat(ci): mirror workflow (GitHub + Codeberg on push to main/tags) (#22 )
- feat(ci): release workflow (Docker build+push + git-cliff changelog) (#22 )
- chore: git-cliff config (.cliff.toml) for conventional commit changelog (#22 )
- chore(pyproject): dev extras (pytest/ruff/httpx), ruff config with ignore list (#22 )
Lint:
- fix: remove 11 unused imports across api/, app/, tests/ (ruff F401 clean)
2026-04-13 19:32:50 -07:00
7a704441a6
feat(snipe): Vue 3 frontend scaffold + Docker web service
...
- web/: Vue 3 + Vite + UnoCSS + Pinia, dark tactical theme (amber/#0d1117)
- AppNav, ListingCard, SearchView with filters/sort, composables
(useSnipeMode, useKonamiCode, useMotion), Pinia search store
- Steal shimmer, auction countdown, Snipe Mode easter egg all native in Vue
- docker/web/: nginx + multi-stage Dockerfile (node build → nginx serve)
- compose.yml: api (8510) + web (8509) services
- Dockerfile CMD updated to uvicorn for upcoming FastAPI layer
- Clean build: 0 TS errors, 380 modules
2026-03-25 15:11:35 -07:00