Skip to content

feat(frontend): add the Models page - #8068

Merged
aicam merged 2 commits into
apache:mainfrom
tanishqgandhi1908:feat/model-list-page
Aug 28, 2026
Merged

feat(frontend): add the Models page#8068
aicam merged 2 commits into
apache:mainfrom
tanishqgandhi1908:feat/model-list-page

Conversation

@tanishqgandhi1908

@tanishqgandhi1908 tanishqgandhi1908 commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

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.

Admin settings Create model Models page

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.

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

@github-actions github-actions Bot added feature frontend Changes related to the frontend GUI labels Aug 28, 2026
@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Automated Reviewer Suggestions

Based on the git blame history of the changed files, we recommend the following reviewers:

  • Contributors with relevant context: @Neilk1021, @zyratlo, @Ma77Ball
    You can notify them by mentioning @Neilk1021, @zyratlo, @Ma77Ball in a comment.

@tanishqgandhi1908

Copy link
Copy Markdown
Contributor Author

/request-review @aicam

@github-actions
github-actions Bot requested a review from aicam August 28, 2026 05:10
@codecov-commenter

codecov-commenter commented Aug 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.96403% with 21 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.45%. Comparing base (eddec26) to head (aa95760).
⚠️ Report is 8 commits behind head on main.

Files with missing lines Patch % Lines
...nt/user/list-item/card-item/card-item.component.ts 83.33% 2 Missing and 3 partials ⚠️
...rd/component/user/list-item/list-item.component.ts 80.76% 2 Missing and 3 partials ⚠️
...omponent/user/user-model/user-model.component.html 88.23% 4 Missing ⚠️
.../component/user/user-model/user-model.component.ts 95.29% 1 Missing and 3 partials ⚠️
frontend/src/app/dashboard/type/dashboard-entry.ts 90.90% 1 Missing and 1 partial ⚠️
...user-model-creator/user-model-creator.component.ts 97.77% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #8068      +/-   ##
============================================
+ Coverage     93.43%   93.45%   +0.02%     
  Complexity     4710     4710              
============================================
  Files          1181     1193      +12     
  Lines         47801    48105     +304     
  Branches       5326     5343      +17     
============================================
+ Hits          44663    44958     +295     
- Misses         1698     1707       +9     
  Partials       1440     1440              
Flag Coverage Δ *Carryforward flag
access-control-service 81.00% <ø> (ø)
agent-service 99.32% <ø> (ø) Carriedforward from 5beae59
amber 89.61% <ø> (ø) Carriedforward from 5beae59
computing-unit-managing-service 73.67% <ø> (ø)
config-service 86.73% <ø> (ø)
file-service 87.91% <100.00%> (+0.02%) ⬆️
frontend 95.91% <94.85%> (+0.01%) ⬆️
notebook-migration-service 79.31% <ø> (ø)
pyamber 97.74% <ø> (ø) Carriedforward from 5beae59
workflow-compiling-service 77.19% <ø> (ø)

*This pull request uses carry forward flags. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@tanishqgandhi1908 tanishqgandhi1908 changed the title feat(frontend): add the Models page feat(frontend, file-service): add the Models page Aug 28, 2026
@tanishqgandhi1908 tanishqgandhi1908 changed the title feat(frontend, file-service): add the Models page feat(frontend): add the Models page Aug 28, 2026
@github-actions github-actions Bot added docs Changes related to documentations platform Non-amber Scala service paths labels Aug 28, 2026

@aicam aicam left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@aicam
aicam added this pull request to the merge queue Aug 28, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Aug 28, 2026
@aicam
aicam added this pull request to the merge queue Aug 28, 2026
Merged via the queue into apache:main with commit b3ff4b7 Aug 28, 2026
44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Changes related to documentations feature frontend Changes related to the frontend GUI platform Non-amber Scala service paths

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants