Spaces:
Running
Running
Commit History
8 days ago
-
fix: restore Eurogold images + kệ xoong search precision
- catalogue.js: SKU upsert prefers the row whose lead image is live, so a dead V.AISTUDIO /eurogold_img/ row can no longer clobber a live www.eurogold.vn photo (221 dead Eurogold leads -> 5). - catalogue.js: recoverDeadLeads maps dead-only SKUs through the dead filename itself (EPD4635VX->EPD4635.jpg, EUM101->EUM101L.jpg ...), restoring 16 more products deterministically. - product-search.js: kệ/giá name synonyms so 'kệ xoong' finds Eurogold 'Giá xoong nồi' racks; per-score-group round-robin tie-break so one brand family cannot swallow the field (Eurogold now visible in top-24). - merge.js: a strong product query (every term in a product name) drops CLIP interiors from the field -- kệ xoong shows ONLY racks; keywordFeatured defaults to productLimit so every relevant hit gets the neon ring+scale; leadImage refuses dead V.AISTUDIO dirs; PRODUCT_LIMIT 12->24. - App.jsx/worker.js: search-products limit 24->48. - tests: updated caps test (24), worker-shape score, added cro…aba5d22
9 days ago
-
feat: newest added products appear in 'mới' front row with neon ring (like newest interiors) (#5)
- src/worker.js: recentProductsOf + composite changed signature (36578e6ba682766e6bcb9e38c3b586c3ee9a8b39) - src/App.jsx: recentProducts state + handler + mergeResults option (a60dc2af7a78597a5906cc4432e5f9a77cb2b772) - src/merge.js: recentProducts ringed prepend (15f4e8989ef33830d9f50c984bd093dcd3237573) - dist bundle: recentProducts state/handler + merge ringed prepend (c82a18b21d6f385b1152325b477ed2ac06ad7278) - dist worker: recentProductsOf + composite changed (avatar-updated recentProducts) (1b1735130baf3afc4d92b550c64d66d72075459d)58b6cf1
10 days ago
-
Ring every exact hit with running neon, and sync vai-avatar's newest photos
ML InternFour changes, all of them visible at a glance: 1. The neon outline now RUNS. It was a static ring with a breathing glow; it is a conic gradient masked to a 2px border and rotated every frame, so the light travels around the edge. An animated border-color cannot do this (borders take no gradient) and an animated box-shadow only pulses in place. The stroke is on ::before and the halo on ::after, because one pseudo-element can hold only one background and the ring needs both. mask-composite turns the full-size gradient into an outline; without it the gradient would fill the tile and hide the photograph, so the test asserts the mask is present. 2. Interiors published on vai-avatar now appear here. src/avatar-interiors.js reads bep40/vai-avatar2-interior/index.json, which is the file carrying created_at -- 153 rows, newest 2026-10-05. metadata.json has 1,752 rows but no timestamps at all, so it cannot answer "newest". These are matched by TEXT, not by th…eb92bc7 -
V.AI STUDIO backdrop, vai-avatar's product search, size/position, neon
ML InternFour changes, all on the search field. Background. The same artwork vai-avatar shows on its body (public/avatars/vaistudio_center.png, copied byte-for-byte, md5 checked) at 30% opacity. It is a separate fixed layer rather than a background-image on .app because opacity on .app would fade the photographs and the search pill with it, and background-attachment:fixed cannot compose with the .vignette and .grain layers already sitting on top of the field. Product search. Ranking is now vai-avatar's own scoreProduct(), ported to product-search.js rather than extended in place, so the two modules can be diffed against each other when the original changes. The whole rule set carries over: exact SKU/model/title must win outright, millimetre sizes are compared numerically (the specs write "900 mm", "900mm" and "W900" for the same shelf), material words are matched against specs as well as title, and brand names get a flat bonus. 35 tests in scripts/test-product-search.mjs pin each rule. Both s…0df020e
13 days ago
-
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
15 days ago
-
fix(worker): rank products from the live catalogue instead of a missing embedding matrix
Verified signaturedbaf080 -
Upload src/worker.js
Verified signature67f0412 -
Upload src/worker.js
Verified signature81f1b70 -
Upload src/worker.js
Verified signatureb48d4b5 -
Upload src/worker.js
Verified signature843987c
16 days ago
-
Deploy Vietnamese interior image field (1222 imgs, multilingual CLIP text tower)
Verified signaturec9e39f3