3 Commits

Author SHA1 Message Date
15b4ad38fb fix: {total,data} -> {total,rows} — DataViewer reads d.rows not d.data 2026-07-29 15:29:38 +08:00
960edc2581 fix: DSPY cate.llms->cate['llms'], return {total,data} for DataViewer
DataViewer/PageDataLoader expects {total:N, data:[...]} format.
Bare array causes d.total=undefined → NaN → infinite paging loop.
Also fixes same cate.llms attribute access bug from before.
2026-07-29 15:23:33 +08:00
1c25542e72 feat: cockpit-style model plaza with search, category tabs, provider sidebar
New layout:
- Search bar (top) with fuzzy name/description match
- Category tabs (wrapping, single-select)
- Provider sidebar (left, single-select)
- Card grid (right, sorted by name, refreshed on filter change)
- Both category/provider unselected = all published models

Added get_plaza_models() for flat filtered model listing.
Supports combined filtering: provider + category + search.
2026-07-28 17:55:17 +08:00