Spaces:
Running
Running
Commit History
23 days ago
-
feat: product share links + repair Malloca/Hafele misbranding
Verified signatureTwo things. Share links. vai-avatar served share pages for interior images and chat answers but nothing for products, so a product link had nowhere to point. A /share/p/<sku> route now exists there and resolves against VAIX_PRODUCTS, the 11,704-row catalogue that Space already loads. A "Xem thêm" button in the viewer toolbar links products to it and interiors to the existing /share/i/. The link is keyed on the photo, not the image, so paging a gallery still shares the product rather than one of its photographs. Misbranding. 99 rows are named "Malloca | ..." while their brand field says Hafele, and all 1,011 of their image URLs point at Hafele's CDN rather than the Malloca storefront. Hafele resells Malloca, so these are Malloca products catalogued under the wrong brand. 77 now show a real Malloca photograph and the remaining 22, which have no Malloca row anywhere in the file, keep their photo with the brand corrected. No product is dropped and no non-Malloca row is touched. Matching…9bf56b3 -
fix(catalogue): stop dropping 355 Malloca products that are not duplicates
Verified signature3fa0a11 -
feat(catalogue): load the full 8,162-product shop, not just pasted URLs
Verified signaturea301301 -
feat(field): merge Malloca products into the interior image field
Verified signaturee34a847 -
fix(model): pin the CLIP text tower to a loadable ONNX revision
Verified signatureFixes 'Không tải được bộ tìm kiếm' / [ShapeInferenceError] Inferred=1 Declared=768. The model repo's first ONNX export declared 'masked' as [...,768]; commit 9e1d535 re-exported it cleanly. transformers.js cached the broken bytes under the unversioned /resolve/main/ URL, so reload and 'Thử lại' replayed them. Pinning 'revision' changes the cache key and lets those browsers recover.ad2fb72 -
feat(catalogue): read vai-avatar datasets directly so add/edit/delete sync without a writer
Verified signatureThe catalogue could only ever be as fresh as the last commit to this Space, and the only writer (the reconciler in the vai-avatar Space) stays disabled until that Space is given a write token. huggingface.co now reflects the caller's Origin in Access-Control-Allow-Origin on both the /resolve hop and the /api/resolve-cache hop it redirects to, so this Space can read the two datasets cross-origin and needs no token at all. fetchJSON() now tries the live dataset first and keeps the committed mirror as a same-origin fallback, so a Hub wobble cannot empty the shop and a stale mirror is no longer a ceiling. Every candidate is parsed and shape-checked, so a truncated or HTML body cannot pass as a catalogue. App.jsx polls every 30s (was 90s), which is now the whole end-to-end delay.e85692d -
fix(catalogue): build the product bundle + stop Vite mangling the mirror URL
Verified signatureThe Space served index-CigEzVrZ.js, a build from a tree with no product code at all, so no product could ever appear in the photo-viewer. Rebuilds from current src/ and points index.html at the stable assets/index.js + assets/app.css. candidateURLs() built its candidates with new URL(`../../${path}`, import.meta.url). Vite globbed that directory at build time and replaced the expression with a map keyed by the literal `../../${path}`, so every lookup was undefined -> 404, and the build dragged README.md, package-lock.json and an 11 MB products-gallery.json into dist/assets. The base is now a plain string; the rewrite cannot match it.dc5d935
24 days ago
-
Upload src/App.jsx
Verified signature44a97d8 -
Upload src/catalogue.js
Verified signatureeccb901 -
docs(catalogue): correct a claim that contradicted the README
Verified signatureThe header comment said "products-index.json is mirrored here for the same reason". Nothing in src/ reads that file: assets.js only exposes DATASET (the interior-photo dataset) and worker.js only fetches image-embeddings.json plus the .bin matrix. It is also not mirrored — sync-catalogue.mjs writes exactly two files — so the comment described a mechanism that does not exist. Rewritten to say what actually happens: only products.json and promos.json are mirrored, and the ~6k base Malloca catalogue is deliberately not, because it is only drawable from the Parquet. Also pinned down one thing the old wording left open: a record added via the promo CMS is added under `p.sku || p.model` in promos.json ONLY — it never appears in products_url_added.json. That is why the alias table has to span both files.2bda94f -
Upload src/catalogue.js
Verified signatureb0ed920 -
Upload src/catalogue.js
Verified signature8cbd471 -
Upload src/catalogue.js
Verified signaturec0a8e90 -
Upload src/catalogue.js
Verified signature0c12813 -
Upload src/App.jsx
Verified signatureaa815f9 -
Upload src/catalogue.js
Verified signatured5b24a6 -
Upload src/catalogue.js
Verified signature5b2024b -
Upload src/catalogue.js
Verified signature784ab80 -
Name the likely CORS cause when a live catalogue read fails
Verified signaturea3b10ae -
Restore full PhotoViewer (undo accidental truncation)
Verified signature2c4780a -
Upload src/PhotoViewer.jsx
Verified signatured0d6710
25 days ago
-
Fix product gallery paging: resolve the displayed frame from position
Verified signature6d8d43b -
Upload src/PhotoViewer.jsx
Verified signaturedbf4bb9 -
Upload src/catalogue.js
Verified signature2e3a635 -
Upload src/catalogue.js
Verified signature1bba59d -
Upload src/ProductResults.jsx
Verified signatureb2464e1 -
Delete src/products.js
Verified signaturef3f1722 -
Upload src/PhotoViewer.jsx
Verified signature3fd59f3 -
Upload src/index.css
Verified signaturefa651e5 -
fix(app): drop stray re-export, fix typo, declare refs before the worker effect reads them
Verified signature2156fc0 -
feat(app): poll the live catalogue so vai-avatar add/edit/delete propagate, and route products through the photo viewer
Verified signature291d837 -
fix(worker): rank products from the live catalogue instead of a missing embedding matrix
Verified signaturedbaf080 -
feat(products): rank from the live catalogue and open product photos in the shared viewer
Verified signature8fc5777 -
feat(viewer): let the photo viewer open product photos with gallery navigation and product caption
Verified signaturea0cb914 -
feat(catalogue): read products live from vai-avatar sources instead of a frozen snapshot
Verified signature00f4097 -
Upload src/products.js
Verified signaturebe309c4 -
Upload src/products.js
Verified signature480ef09 -
Upload src/ProductResults.jsx
Verified signaturee30fc7c -
Upload src/products.js
Verified signature2c278e9 -
Upload src/worker.js
Verified signature67f0412 -
Upload src/index.css
Verified signature8f2852f -
Upload src/index.css
Verified signaturef4e1e2e -
Upload src/App.jsx
Verified signaturea68d11b -
Upload src/ProductResults.jsx
Verified signaturedc0abf5 -
Upload src/ProductResults.jsx
Verified signature60162c8 -
Upload src/worker.js
Verified signature81f1b70 -
Upload src/products.js
Verified signature8103590 -
Upload src/worker.js
Verified signatureb48d4b5 -
Upload src/worker.js
Verified signature843987c -
Upload src/products.js
Verified signature011053c