Closes #15, #22, #24, #25. Closes #1 and #27 (already shipped in 0.2.0). ## CI/CD (#22) - .forgejo/workflows/ci.yml — Python lint (ruff) + pytest + Vue typecheck + vitest on every PR/push. Installs cf-core from GitHub mirror for the CI runner. - .forgejo/workflows/release.yml — Docker build/push (api + web) to Forgejo registry on v* tags; git-cliff changelog; multi-arch amd64+arm64. - .forgejo/workflows/mirror.yml — push to GitHub + Codeberg mirrors. ## Self-hosted installer (#25) - install.sh rewritten to match CF installer pattern: coloured output, named functions, --docker / --bare-metal / --help flags, auto-detect Docker/conda/ Python/Node/Chromium/Xvfb, license key prompting with format validation. ## Nginx docs (#24) - docs/nginx-self-hosted.conf — sample nginx config: SPA fallback, SSE proxy (proxy_buffering off), long-term asset cache headers. - docs/getting-started/installation.md — bare-metal install section with nginx setup, Chromium/Xvfb note, serve-ui.sh vs nginx trade-off. ## cf-orch agent (#15) - compose.override.yml — cf-orch-agent sidecar service (profiles: [orch]). Starts only with docker compose --profile orch. Registers with coordinator at CF_ORCH_COORDINATOR_URL (default 10.1.10.71:7700). - .env.example — CF_ORCH_URL / CF_ORCH_COORDINATOR_URL comments expanded. ## Docs - mkdocs.yml + full docs/ tree (getting-started, reference, user-guide) staged from prior session work. Bump version 0.2.0 → 0.3.0.
4.6 KiB
4.6 KiB
Changelog
All notable changes to snipe are documented here.
Format follows Keep a Changelog.
Versions follow Semantic Versioning.
[0.3.0] — 2026-04-14
Added
Infrastructure and DevOps
.forgejo/workflows/ci.yml— Python lint (ruff) + pytest + Vue typecheck + vitest on every PR/push to main. Installs circuitforge-core from GitHub mirror so the CI runner doesn't need the sibling directory..forgejo/workflows/release.yml— Docker build and push (api + web images) to Forgejo container registry onv*tags. Builds both images multi-arch (amd64 + arm64). Creates a Forgejo release with git-cliff changelog notes..forgejo/workflows/mirror.yml— Mirror push to GitHub and Codeberg on main/tags.install.sh— Full rewrite following the CircuitForge installer pattern: colored output,--docker/--bare-metal/--helpflags, auto-detection of Docker/conda/Python/Node/Chromium/Xvfb, license key prompting, structured named functions.docs/nginx-self-hosted.conf— Sample nginx config for bare-metal self-hosted deployments (SPA fallback, SSE proxy settings, long-term asset caching).docs/getting-started/installation.md— No-Docker install section: bare-metal instructions, nginx setup, Chromium/Xvfb note.compose.override.yml—cf-orch-agentsidecar service for routing vision tasks to a cf-orch GPU coordinator (--profile orchopt-in).CF_ORCH_COORDINATOR_URLenv var documented..env.example—CF_ORCH_URLandCF_ORCH_COORDINATOR_URLcomments expanded with self-hosted coordinator guidance.
Screenshots (post CSS fix)
- Retook all docs screenshots (
01-hero,02-results,03-steal-badge,hero) after the color-mix token fix so tints match the theme in both dark and light mode.
Closed
#1SSE live score push — already fully implemented in 0.2.0; closed.#22Forgejo Actions CI/CD — shipped.#24nginx config for no-Docker self-hosting — shipped.#25Self-hosted installer script — shipped.#15cf-orch agent in compose stack — shipped.#27MCP server — already shipped in 0.2.0; closed.
[0.2.0] — 2026-04-12
Added
Trust signal UI — community feedback on seller trust scores (MIT component layer)
web/src/components/TrustFeedbackButtons.vue: "This score looks right / This score is wrong" button pair displayed below the trust badge on each listing card. Shows "Thanks, noted." on submission with no countdown or urgency.web/src/composables/useTrustFeedback.ts:FeedbackStatemachine (idle | sending | confirmed | disputed). Fail-soft: any network error still transitions to confirmed state — the UI never surfaces signal pipeline failures.- Slotted into
ListingCard.vueafter the trust badge, inside.card__score-col. - WCAG (Web Content Accessibility Guidelines) 2.1 compliance:
aria-live="polite"on confirmation message,aria-busyduring send, keyboard-focusable buttons withfocus-visiblestyles,prefers-reduced-motionguard on transitions. - Uses
--trust-high/--trust-lowtheme CSS custom properties for color consistency.
Note: The backend signal endpoint (POST /api/community/signal) and seller signal store are gated on cf-orch community postgres landing. The UI degrades gracefully when the endpoint is absent.
Forgejo feedback FAB (floating action button)
FeedbackButton.vue: floating "Feedback" button in the corner of every view. Opens a two-step modal (type + description → attribution + confirm) that files a Forgejo issue againstCircuit-Forge/snipe. Hidden whenFORGEJO_API_TOKENis unset or in demo mode.GET /api/feedback/status— returns{"enabled": bool}so the button never flashes before checking.POST /api/feedback— files the issue; returnsissue_numberandissue_url.
Live SSE score push (closes #1)
- Background enrichment results pushed to the browser via Server-Sent Events as trust scores complete.
[0.1.0] — 2026-03-25
Added
Initial beta release of Snipe — eBay listing intelligence and trust scoring.
- Listing search via eBay scraper (Kasada bypass with headed Chromium + Xvfb).
- Trust score composite: feedback rate, negative feedback ratio, member age, zero-feedback penalty.
TrustScoredataclass with red flags, partial score flag, composite score (0-100).- Vue 3 SPA frontend: search view, listing card grid, listing detail view, blocklist management.
- FastAPI backend:
/api/search,/api/enrich,/api/blocklist. - Keyword filtering for search queries.
- SQLite persistence via cf-core
dbmodule.