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.
Tabular handles paging client-side — scroll to bottom auto-loads more.
Record_view renders each model as a card (icon + name + description).
Removed all server-side pagination logic from the template.
- All filter buttons use location.href with fully server-constructed URLs
No more mixing {{active_provider}} (stale server var) with dynamic JS state
- SearchBar, category, provider, pagination all use location.href pattern
- Card uses width:100% (fill DynamicColumn slot) + cheight:14 (fixed height)
- Model plaza root is VBox (not VScrollPanel), scroll delegated to cards area
- All filter buttons now script-update rw.opts.url + rw.show_widget()
instead of urlwidget target navigation (which silently failed)
- Root wrapped in VScrollPanel so scroll position preserved
- Card cwidth 25→22 for better column fit
- Page buttons also use RefreshWidget update pattern
- Handle llm.pricing_display when it's a string (not array)
- Card cwidth 15→25 to fill DynamicColumn properly
- Added page/page_size pagination with prev/next buttons
- page param forwarded through model_plaza→plaza_model_cards
- Removed iconid from get_llmproviders GROUP BY (caused duplicates)
- Replaced KeyinText with SearchBar (built-in input+search+clear)
- Switched navigation from window.location.assign to urlwidget
targeting sage_main_content (stays in workspace, no full reload)
-@ is not a valid CSS selector, Bricks parses it as '#@' and fails.
Switched all filter button binds to actiontype:script with window.location.assign().
Replaced nonexistent Input widget with KeyinText for search.
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.
get_llmage_llm and get_llms_by_catelog had ORDER BY ending
at a.id — model names within same provider/catalog appeared
in arbitrary order. Added a.name as final sort key.
The ad5d8c0 commit had line number prefixes (1|, 2|, ...) baked into
file content. Also fixed cache call bugs:
- params_kw.model or 'qwen3-max' -> params_kw.model
- 'ktv_pipeline' hardcoded -> catelogid variable
- extra tab before params_kw.llmcatelogid
- missing f-string braces in debug()