Changelog
History of deployed changes, generated from the repository.
Current version 0.1.2323621e91
- v0.1.2329 Jul 2026
chore(vscode): enable tsgo experimental language server
by OleksandrYehorov · 3621e91
- v0.1.2319 Jul 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 155cb7a
- v0.1.2309 Jul 2026
chore: upgrade typescript to 7.0.2 and bump pnpm to 11.10.0
by OleksandrYehorov · 1380845
- v0.1.2297 Jul 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · eacc2f2
- v0.1.2287 Jul 2026
docs(perf): prod compression verified as already enabled; close performance PRD
by Claude · 6592d03
- v0.1.2276 Jul 2026
perf(db): drop nine unused cars indexes (19 -> 10)
by Claude · 18513d9
- v0.1.2266 Jul 2026
perf(web): select explicit columns without raw_payload in getCar/getCarsByIds
by Claude · 6b32a7c
- v0.1.2256 Jul 2026
docs(triage): document in-progress as a PRD-only local status
by Claude · 6312f27
- v0.1.2246 Jul 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 92ee54a
- v0.1.2236 Jul 2026
Warranty as labeled estimate; claim VAT status only when known
by Claude · 92ab473
- v0.1.2226 Jul 2026
Serve card-sized images on the results grid, not 1400px
by Claude · 07c170c
- v0.1.2216 Jul 2026
Never delist on a filtered scrape run
by Claude · abe081f
- v0.1.2206 Jul 2026
Triage: retire perf issues 01/07 as superseded by card-image issue 03
by Claude · b0f85a8
- v0.1.2196 Jul 2026
Add PRDs: delisting scope safety + data honesty and card images
by Claude · f6a909b
- v0.1.21830 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 421a474
- v0.1.21730 Jun 2026
Group favorites by dealership
by Claude · 12f861a
- v0.1.21630 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 71c8717
- v0.1.21530 Jun 2026
feat(web): save cars to favorites
by Claude · 0e64931
- v0.1.21429 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 15dd3c6
- v0.1.21329 Jun 2026
perf(db): memory-map the DB file (mmap_size pragma)
by OleksandrYehorov · bfa8363
- v0.1.21229 Jun 2026
triage(options-exclude): mark shipped issues done
by OleksandrYehorov · fff74c3
- v0.1.21129 Jun 2026
triage(performance/06): wontfix FTS5 — conflicts with ADR 0001
by OleksandrYehorov · aed8d7e
- v0.1.21029 Jun 2026
docs(issues): file the performance backlog as .scratch issues
by OleksandrYehorov · 65e88d9
- v0.1.20929 Jun 2026
docs: performance log — shipped work + measured optimization backlog
by OleksandrYehorov · 75de27d
- v0.1.20829 Jun 2026
fix(web): vertically center the per-section clear (×) button
by OleksandrYehorov · dd02f8f
- v0.1.20729 Jun 2026
feat(web): keep the Clear-all button visible and disabled when no filters
by OleksandrYehorov · a1ca2b2
- v0.1.20629 Jun 2026
fix(web): stop the filter panel shifting when applying the first filter
by OleksandrYehorov · c0d3303
- v0.1.20529 Jun 2026
refactor(web): drop the filter fetch debounce
by OleksandrYehorov · eea4284
- v0.1.20429 Jun 2026
fix(web): stop the filter list flashing blank on every change
by OleksandrYehorov · 886e91a
- v0.1.20329 Jun 2026
refactor(web): simplify useDebouncedValue to depend on value identity
by OleksandrYehorov · 22cc3a8
- v0.1.20229 Jun 2026
perf(web): commit filter changes to the URL instantly, debounce the fetch
by OleksandrYehorov · 7e21bf2
- v0.1.20129 Jun 2026
perf: compute facet universe in one scan instead of ~13 GROUP BY queries
by OleksandrYehorov · 2d395f7
- v0.1.20029 Jun 2026
perf: collapse the option-facet count loop to one query when no pack is filtered
by OleksandrYehorov · fc6377d
- v0.1.19929 Jun 2026
perf: speed up list filters by lifting `reserved` into a column
by OleksandrYehorov · e2b2be4
- v0.1.19829 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 7627476
- v0.1.19729 Jun 2026
feat(web): bigger touch targets for mobile filters
by OleksandrYehorov · 59aa151
- v0.1.19629 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · daac74b
- v0.1.19529 Jun 2026
feat(web): exclusion chips and tri-state legend for the Options facet
by OleksandrYehorov · 332b617
- v0.1.19429 Jun 2026
feat(web): consistent per-pack count badges for the Options facet
by OleksandrYehorov · c4d4eb1
- v0.1.19329 Jun 2026
chore(tracker): mark shipped PRDs done; document the `done` state
by OleksandrYehorov · 7f241ff
- v0.1.19229 Jun 2026
feat(web): add option-pack exclude filter to the Options facet
by OleksandrYehorov · 8f75faa
- v0.1.19128 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 43e7ec5
- v0.1.19028 Jun 2026
chore: add Better Auth docs MCP server to .mcp.json
by OleksandrYehorov · 17cb7d2
- v0.1.18928 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · b5e7526
- v0.1.18828 Jun 2026
feat(web): remove the /update password gate
by OleksandrYehorov · 9b6fc79
- v0.1.18728 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 950a771
- v0.1.18628 Jun 2026
feat(deploy): self-seed preview DBs by scraping instead of cloning prod
by OleksandrYehorov · ac80d1c
- v0.1.18527 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · e807333
- v0.1.18426 Jun 2026
feat(web): move the scrape-run log to /update as a History tab + run bar
by OleksandrYehorov · 7f73d7c
- v0.1.18326 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 2c5b6f0
- v0.1.18226 Jun 2026
feat(web): browse all photos (and video) on the search card
by Claude · 46734f3
- v0.1.18126 Jun 2026
fix(web): refresh list/stats when a scrape run finishes off /update
by OleksandrYehorov · 5e968e8
- v0.1.18026 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · efe1da3
- v0.1.17926 Jun 2026
fix(stats): backfill cron runs mislabeled as 'cli'
by OleksandrYehorov · f778dfc
- v0.1.17825 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 87546a3
- v0.1.17725 Jun 2026
fix(search): VIN/bare-token search no longer dead-ends on the link page
by Claude · 3ba9c33
- v0.1.17625 Jun 2026
feat(search): self-heal search_text on scraper start
by Claude · 8e4eea7
- v0.1.17525 Jun 2026
feat(search): unified accent-insensitive free-text search
by Claude · 4983ac5
- v0.1.17425 Jun 2026
docs: design unified accent-insensitive search
by Claude · e7fe2b1
- v0.1.17325 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 739e21a
- v0.1.17225 Jun 2026
Add dealership name and car colour to the search card
by Claude · 014132b
- v0.1.17125 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 0644cf6
- v0.1.17024 Jun 2026
Fix dark mode styles for selected saved search
by Claude · 29e1a73
- v0.1.16924 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · ff0a464
- v0.1.16824 Jun 2026
Add a default saved search auto-applied on bare landing
by Claude · 7fdc64c
- v0.1.16724 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · aaeddcc
- v0.1.16624 Jun 2026
Remove stray screenshot file accidentally committed
by Claude · fd63716
- v0.1.16524 Jun 2026
Sync all relative-time rows to one shared clock
by Claude · 0063b2d
- v0.1.16424 Jun 2026
Table-driven relative time with a seconds rung
by Claude · a52f1be
- v0.1.16324 Jun 2026
Auto-update the Latest-syncs relative time without a reload
by Claude · 5cde68b
- v0.1.16224 Jun 2026
Drop the latest-row tint; keep the "Latest" badge as the only marker
by Claude · a37842a
- v0.1.16124 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · af62c7f
- v0.1.16024 Jun 2026
Make "Latest syncs" actionable + add a trigger/source column
by Claude · 736c4cf
- v0.1.15924 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 9cdeddf
- v0.1.15824 Jun 2026
chore: remove Intent skill gate hook
by OleksandrYehorov · b8d7f1e
- v0.1.15724 Jun 2026
refactor(db): extract pure planListingChanges from syncCars
by OleksandrYehorov · 255c6c8
- v0.1.15624 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · f81b515
- v0.1.15524 Jun 2026
chore: add agent skills, Intent gate hook, and shadcn MCP
by OleksandrYehorov · ea83c36
- v0.1.15424 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 047e10c
- v0.1.15324 Jun 2026
chore: relocate DWA_UPDATE_SECRET to the web app + scrape label tweak
by OleksandrYehorov · 89131fe
- v0.1.15224 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 52366ef
- v0.1.15124 Jun 2026
chore(deploy): wire DWA_UPDATE_SECRET into the web service
by OleksandrYehorov · e262b2a
- v0.1.15024 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 24229da
- v0.1.14924 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · b669313
- v0.1.14824 Jun 2026
feat(web): add a footer "Open by link" entry point to /find
by OleksandrYehorov · d8fb0dc
- v0.1.14724 Jun 2026
chore: bump packageManager to pnpm@11.9.0
by OleksandrYehorov · 68b809c
- v0.1.14624 Jun 2026
fix(web): render the bookmarklet without React blocking its javascript: URL
by OleksandrYehorov · 05379da
- v0.1.14524 Jun 2026
feat(web): open a car by its cupra.com / dasweltauto.es link
by OleksandrYehorov · 671f0b7
- v0.1.14424 Jun 2026
feat(web): reach /update via a top-nav item, not a header button
by Claude · f40a657
- v0.1.14323 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 521fd38
- v0.1.14223 Jun 2026
Add "Launch Edition" filter to the car list
by Claude · 32177ec
- v0.1.14123 Jun 2026
feat(web): gated /update page replacing the Update-data modal
by Claude · 4b835ea
- v0.1.14023 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 1bd11fd
- v0.1.13923 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · cc1fd7a
- v0.1.13823 Jun 2026
feat(web): edit + run the default scrape scope from the Update panel
by Claude · a859896
- v0.1.13723 Jun 2026
feat(scraper): persisted default scrape scope (DB + CLI)
by Claude · 5a904e2
- v0.1.13623 Jun 2026
feat(web): dealership filter + dealer-stock deep link on detail page
by Claude · 58c85ca
- v0.1.13523 Jun 2026
docs(scraper): PRD for persisted default scrape scope
by Claude · 1de3227
- v0.1.13423 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · d1b22d8
- v0.1.13322 Jun 2026
feat(scraper): typed filter registry across code/CLI/interactive APIs
by Claude · d1ba485
- v0.1.13222 Jun 2026
docs(scraper): PRD for typed-filter scraper API redesign
by Claude · 71a5a8b
- v0.1.13122 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · bc87445
- v0.1.13022 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · bca17f7
- v0.1.12922 Jun 2026
fix(web): guard date formatters against invalid dates (fixes blank home page)
by OleksandrYehorov · a443b0a
- v0.1.12822 Jun 2026
fix(deploy): drop dead in-repo /prod-data mount; rely on Coolify storage
by OleksandrYehorov · 8ff5d49
- v0.1.12722 Jun 2026
fix(deploy): gate preview clone on the /prod-data mount, not DWA_PREVIEW
by OleksandrYehorov · 7628ebb
- v0.1.12622 Jun 2026
fix(deploy): declare DWA_PREVIEW on the scraper service so it reaches the container
by OleksandrYehorov · 5f036ed
- v0.1.12522 Jun 2026
fix(db): gate preview clone on car count, not file existence
by OleksandrYehorov · fdccc0a
- v0.1.12422 Jun 2026
fix(deploy): mount prod data read-only via compose, not a Coolify storage
by OleksandrYehorov · ae1ce3c
- v0.1.12322 Jun 2026
feat(db,scraper): seed preview DBs from prod backups
by OleksandrYehorov · e5d3c0a
- v0.1.12222 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · d5650a5
- v0.1.12122 Jun 2026
chore: trigger preview redeploy
by Claude · de5621f
- v0.1.12022 Jun 2026
Improve compare page: responsive layout, sticky header, "only differences" toggle
by Claude · b3f1ff5
- v0.1.11922 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 5f9d0bc
- v0.1.11822 Jun 2026
chore: vendor intent-managed agent skills
by OleksandrYehorov · 78937ec
- v0.1.11722 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 3497cd7
- v0.1.11622 Jun 2026
docs: scaffold agent-skills config (issue tracker, triage labels, domain)
by OleksandrYehorov · 5b6a3d9
- v0.1.11522 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 758cc78
- v0.1.11422 Jun 2026
feat: classify Formentor generation from model year
by OleksandrYehorov · 0cf2bf6
- v0.1.11322 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 7e9e964
- v0.1.11222 Jun 2026
feat(web): add a reserved listing-status filter bucket
by OleksandrYehorov · 209a7c4
- v0.1.11122 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 01b67fc
- v0.1.11022 Jun 2026
feat(web): brand the detail view-on buttons with source favicons
by OleksandrYehorov · db6c2f1
- v0.1.10921 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 52bd257
- v0.1.10821 Jun 2026
chore(web): drop orphaned detail.reserved i18n string
by OleksandrYehorov · 5b4720c
- v0.1.10721 Jun 2026
feat(web): align detail summary with the search card via shared atoms
by OleksandrYehorov · 965cd59
- v0.1.10621 Jun 2026
feat(web): add an overlay slot to Gallery
by OleksandrYehorov · e5e87dc
- v0.1.10521 Jun 2026
feat(web): extract shared car primitives, refactor card to use them
by OleksandrYehorov · bcbbbe7
- v0.1.10421 Jun 2026
feat(web): unify warranty-remaining as base+extension on the list
by OleksandrYehorov · 1c2a600
- v0.1.10321 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 90382ef
- v0.1.10221 Jun 2026
feat(web): responsive header logo and copper active-nav pill
by OleksandrYehorov · 0f4f21b
- v0.1.10121 Jun 2026
feat(web): localize PWA manifest and document head per locale
by OleksandrYehorov · 3ac6a6c
- v0.1.10021 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · ea4ce65
- v0.1.9921 Jun 2026
feat(web): use the CUPRA emblem for favicon + PWA icons
by OleksandrYehorov · 83ef9fd
- v0.1.9821 Jun 2026
feat(web): CUPRA emblem logo + Open Graph image
by OleksandrYehorov · c5c1498
- v0.1.9721 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · de00b89
- v0.1.9621 Jun 2026
docs(deploy): forbid rewriting main history; fix coolify MCP env
by OleksandrYehorov · eb6d5bc
- v0.1.9521 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 95298c7
- v0.1.9421 Jun 2026
fix(web): adapt active filter chips to dark mode
by Claude · e20859a
- v0.1.9321 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 90a2de6
- v0.1.9220 Jun 2026
fix(web): align sort select with toolbar buttons in dark mode
by Claude · e70f87b
- v0.1.9120 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 3051600
- v0.1.9020 Jun 2026
Theme option-chip colours and the CUPRA.com CTA for dark mode
by Claude · f74e4ce
- v0.1.8920 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 53ededb
- v0.1.8820 Jun 2026
Add light/dark/system theme
by Claude · 24d5c67
- v0.1.8720 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 19b695e
- v0.1.8620 Jun 2026
perf(scraper): raise default concurrency to 12, shorten request delays
by OleksandrYehorov · bbeb782
- v0.1.8520 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 4bfb3ca
- v0.1.8420 Jun 2026
fix(web): scope Tailwind source detection to fix prod FOUC
by OleksandrYehorov · 58ed5cf
- v0.1.8320 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · e3c5449
- v0.1.8220 Jun 2026
feat(web): mobile-friendly header & filter toolbar; rename Distance filter to Location
by OleksandrYehorov · f1f4631
- v0.1.8120 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 58cf964
- v0.1.8020 Jun 2026
feat(web): per-filter clear button in filter panel
by OleksandrYehorov · fe90321
- v0.1.7920 Jun 2026
chore(web): refresh build-info [skip ci]
by github-actions[bot] · 7c50c0b
- v0.1.7820 Jun 2026
fix(docker): copy cupra-scraper source into builder for the web build
by OleksandrYehorov · a48d293
- v0.1.7720 Jun 2026
fix(web): read version/changelog from committed snapshot, not .git in image
by OleksandrYehorov · 753dbab
- v0.1.7620 Jun 2026
feat(web): auto-derive app version + changelog from git (#31)
by OleksandrYehorov · 8e5e5c0
- v0.1.7519 Jun 2026
fix(web): make the compare UI mobile-friendly
by Claude · 28ca70e
- v0.1.7419 Jun 2026
feat(web): side-by-side car comparison
by Claude · 411e1eb
- v0.1.7319 Jun 2026
feat(db,scraper): DB backups, pre-migrate snapshot, fetch timeout
by Claude · fe30548
- v0.1.7219 Jun 2026
docs: add app improvement plan (draft for review)
by Claude · a446a5f
- v0.1.7119 Jun 2026
fix(deploy): use literal ./data volume so Coolify can parse the compose
by OleksandrYehorov · c796323
- v0.1.7019 Jun 2026
feat(web): deep-link scrape summary changes + car age and listing-date UI
by OleksandrYehorov · 0930a2c
- v0.1.6919 Jun 2026
feat(web): auto-name saved searches and prevent duplicates
by Claude · efb48a6
- v0.1.6819 Jun 2026
feat(web): collapse all filter sections into a single accordion
by OleksandrYehorov · 875b712
- v0.1.6719 Jun 2026
feat(web): hide CUPRA Formentor facelift filter
by OleksandrYehorov · 19a29a4
- v0.1.6619 Jun 2026
Add English translations for free-text scraped data
by Claude · ec6ae5b
- v0.1.6519 Jun 2026
chore: bump pnpm to 11.8.0
by OleksandrYehorov · 17199bc
- v0.1.6419 Jun 2026
Give the web container DB write access (scraper stays sole migrator)
by Claude · 33d3cf7
- v0.1.6319 Jun 2026
feat(cupra-scraper): interactive CLI mode (default) with @clack/prompts
by Claude · 0d47aa9
- v0.1.6219 Jun 2026
Add manual "Update data" scraper trigger with live progress + summary
by Claude · 4dd7f6c
- v0.1.6119 Jun 2026
Replace city filter with city on card + title-case place names
by OleksandrYehorov · ca3b80b
- v0.1.6019 Jun 2026
Run DB migrations on scraper start so deploys migrate before web serves
by OleksandrYehorov · 3e0fa6e
- v0.1.5919 Jun 2026
Unify city filter and distance filter onto the scraped cities
by Claude · 4105b6f
- v0.1.5819 Jun 2026
Make Docker Compose preview-safe; previews reuse prod DB read-only
by OleksandrYehorov · a6bc7a5
- v0.1.5719 Jun 2026
Add empty .env.example placeholder
by OleksandrYehorov · 594189d
- v0.1.5619 Jun 2026
Add filter by trim level (VZ / VZ5)
by Claude · b0efc65
- v0.1.5519 Jun 2026
Docs: scheduled task targets compose service 'scraper'
by OleksandrYehorov · 47419c1
- v0.1.5419 Jun 2026
Copy cupra-scraper source into the scraper image stage
by OleksandrYehorov · 4c7d75e
- v0.1.5319 Jun 2026
Externalize Coolify MCP base URL and ignore env files
by OleksandrYehorov · cd04169
- v0.1.5219 Jun 2026
Add project-scoped Coolify MCP server config
by OleksandrYehorov · daa2726
- v0.1.5119 Jun 2026
Revert to a ./data bind mount to reuse Coolify's existing app directory
by OleksandrYehorov · 266cab4
- v0.1.5019 Jun 2026
Use a named volume for the shared DB instead of a relative bind mount
by OleksandrYehorov · c357099
- v0.1.4919 Jun 2026
Replace VPS systemd scraper with a Coolify Compose service
by OleksandrYehorov · e0f702d
- v0.1.4819 Jun 2026
Default Claude Code to auto permission mode in VSCode
by OleksandrYehorov · 37cc0b6
- v0.1.4719 Jun 2026
Replace hand-rolled server.mjs with TanStack Start's Nitro server
by OleksandrYehorov · 93cf845
- v0.1.4619 Jun 2026
Enforce LF line endings repo-wide via .gitattributes
by OleksandrYehorov · d16fb67
- v0.1.4519 Jun 2026
Add /health liveness endpoint for Coolify healthcheck
by OleksandrYehorov · 637b1b1
- v0.1.4419 Jun 2026
Multi-city distance search; key "new"/newest off offerDate
by OleksandrYehorov · fb3da35
- v0.1.4319 Jun 2026
Add `pnpm sync` alias for `dwa cupra --sync`
by OleksandrYehorov · 10fa93a
- v0.1.4218 Jun 2026
Detail page: video in carousel (first), equipment up top, renders collapsed
by OleksandrYehorov · 27d49a3
- v0.1.4118 Jun 2026
Add .gitattributes: force LF for shell/systemd files, mark PNGs binary
by OleksandrYehorov · 7db472e
- v0.1.4018 Jun 2026
Phase 4: CI workflow + scheduled-scrape units + ops docs (#15, #19, #21)
by OleksandrYehorov · b087cf2
- v0.1.3918 Jun 2026
Phase 3b: PWA support (#13)
by OleksandrYehorov · f7c4525
- v0.1.3818 Jun 2026
Phase 3a: light CUPRA brand pass (#11)
by OleksandrYehorov · c12c1e8
- v0.1.3718 Jun 2026
Phase 2: distance filter & sort (#9)
by OleksandrYehorov · 683b3f7
- v0.1.3618 Jun 2026
Mark Phase 1 done in PLAN.md
by OleksandrYehorov · 5ef845a
- v0.1.3518 Jun 2026
Phase 1 data quick-wins: offer date, DGT badge, paint filter, DWA link, renders
by OleksandrYehorov · 6730cd6
- v0.1.3418 Jun 2026
Add offline re-extract script (`pnpm reextract`)
by OleksandrYehorov · db9c47f
- v0.1.3318 Jun 2026
Phase 0: extract render images, DGT badge, offer/paint/coord columns
by OleksandrYehorov · c76e4f6