The GitHub Actions job "Required Checks" on texera.git/main has failed. Run started by GitHub user github-merge-queue[bot] (triggered by github-merge-queue[bot]).
Head commit for run: b3ff4b7eda2b200f0c8a3c1f5b0a6884d7bd4855 / Tanishq Gandhi <[email protected]> feat(frontend): add the Models page (#8068) ### What changes were proposed in this PR? Adds the **Models** page: list, search, create, rename, delete. To get there without adding a third `type === "..."` arm everywhere, each resource kind now supplies a **descriptor** — icon, routes, ownership, rename, description, filter sources — aggregated by `ResourceRegistryService`. `card-item`, `list-item` and `filters` read that instead of branching on the entry type. Workflow, dataset, project and file behave exactly as before; models are just one more descriptor. The page lists from `/model/list` and filters client-side, so models stay out of global search until the hub backend lands. That endpoint is now scoped to what the caller was granted: `ResourceAccess.listVisible` takes an `includePublic` flag, defaulted so `/dataset/list` — whose picker legitimately offers public datasets to read as workflow input — is unchanged. Your Work → Models therefore shows your own and shared models only, exactly like Your Work → Datasets. The sidebar and cards use Material Symbols `hub` (Apache-2.0, attributed in `LICENSE`), registered once through `NzIconService`. ng-zorro has no icon that reads as an ML model, and the denser Material glyphs are illegible at the sidebar's 15px. <img width="629" height="444" alt="Admin settings" src="https://github.com/user-attachments/assets/f3bdcfa3-452a-4291-8763-3de684e1abfc" /> <img width="1289" height="614" alt="Create model" src="https://github.com/user-attachments/assets/7148eecf-0295-4321-9aa5-2d2c90bf9967" /> <img width="1849" height="659" alt="Models page" src="https://github.com/user-attachments/assets/128d993e-a6d1-4606-b732-b75356c6fa6c" /> ### Any related issues, documentation, discussions? Groundwork for #6499; does not close it. `models_enabled` ships **false** until the detail page lands. `/user/model/:mid` has no component yet, so the model descriptor deliberately carries no `privateRoute` — a model card does not navigate, rather than hitting the `**` wildcard and landing on Workflows — and creating a model refreshes the list instead. The flag is toggleable live in Admin → Settings, and hides the sidebar entry, not the route, same as `datasets_enabled`. ### How was this PR tested? 56 new tests across the registry, `ModelService`, the Models page and the create modal. ```bash cd frontend && npx ng test \ --include src/app/dashboard/service/user/resource-registry/resource-registry.service.spec.ts \ --include src/app/dashboard/service/user/model/model.service.spec.ts \ --include src/app/dashboard/component/user/user-model/user-model.component.spec.ts \ --include src/app/dashboard/component/user/user-model/user-model-creator/user-model-creator.component.spec.ts sbt 'testOnly *ModelResourceSpec' ``` Regression: 417 frontend tests across 15 spec files covering card/list items, filters, search and the sidebar, and 23 in `ModelResourceSpec`. Plus `tsc --noEmit`, eslint, prettier and `scalafmtCheck`. Four spec edits. Three are fixture or tab-count updates. The fourth is a behavior change stated on purpose: `"listModels should include public models owned by another user"` is inverted to `omit`, since that assertion described the bug above; it now also checks the model is still reachable through `getPublicModel`, so public discovery stays covered. Manual: Admin → Settings → Models on, create a model, search it by framework, switch card/list views, rename inline, delete. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code Opus 5 Report URL: https://github.com/apache/texera/actions/runs/33211812558 With regards, GitHub Actions via GitBox
