Commit Graph
62 Commits
Author SHA1 Message Date
jialinandjialin e35be94f7c fix(provider): filter bailian do not work 2026-06-18 11:50:19 +08:00
jialinandjialin 2bc10dbb2e fix: bailian logo, instance logs params container_name 2026-06-17 16:49:25 +08:00
jialinandjialin b634a03ef9 fix: use alibaba cloud icon for qwen provider 2026-06-17 15:30:43 +08:00
jialinandjialin a7b33a928b fix: anti double submit in form 2026-06-11 20:02:27 +08:00
gitlawrandjialin 26ce456bde feat: per-page extra-columns slot for list tables
Add `usePluginListColumns(pageKey)` so a registered plugin can splice
extra columns into a list page's columns hook keyed by page id. The
slot is wired into 11 list pages (Models, Model Routes, Clusters,
Cloud Credentials, MaaS Providers, Model Files, Model Instances,
GPU Service Instances / Public Keys / Storage / Storage Types) so any
consumer of the seam reaches every org-scoped list without per-page
plumbing.

The slot accepts either a static array or a hook function — the hook
form lets the registrant use React hooks to decide visibility without
the host having to evaluate it. Columns carry a `placement`:
`after-name` is the default (sits next to the row's identifying
column); `before-time` / `before-operation` are kept for back-compat
with the existing per-page `modelRoutes.extraColumns` slot.

SealTable-grid pages (Models / Model Routes / Clusters) absorb the
plugin column's span by shrinking the widest right-side columns so
the 24-unit grid stays balanced. Model Routes' `CREATE_TIME_MIN_SPAN`
drops from 3 to 2 because with two plugin columns active the grid
was 1 unit over and the action dropdown wrapped onto a new row; the
date string ellipsizes cleanly at the lower min.

ListItem types for Model Instances, MaaS Providers, Cloud Credentials,
and Model Files gain an optional `owner_principal_id` field — the
backend already emits it (denormalized from the parent resource), the
TS types just hadn't declared it.

The GPU Instances page splices the plugin column right before the
Cluster column (rather than after Name); the two read together since
Cluster narrows down to one Org.
2026-06-09 16:28:59 +08:00
lizw2andjialin 45e0ad9e93 fix(model-routes): use overridden model name for provider targets 2026-05-27 15:45:28 +08:00
gitlawrandjialin 2889ba7c78 feat: plugin extension slots for access, request interceptors, Users actions, and form fields
Four purely-additive seams that let build-time tooling extend host
behaviour without forking files:

* `src/access.extensions.ts` — identity `applyAccessExtensions`
  (mirrors `config/routes.extensions.ts`). `src/access.ts` runs the
  resolved predicate object through it. Adds two new predicates,
  `canSeeOrgAdmin` and `canManageCurrentOrg`, alongside the existing
  `canSeeAdmin`. Resources, Models children, Cluster Management, and
  Resources/Backends are retagged from `canSeeAdmin` to
  `canSeeOrgAdmin`. Users and Dashboard stay strict.
* `src/request.extensions.ts` — identity-empty
  `extraRequestInterceptors`. `src/request-config.tsx` spreads it
  into the existing `requestInterceptors` list so extensions can
  inject context-aware headers without forking the request config.
* Users page action column — renders
  `getGPUStackPlugin()?.components?.UserRowActions` next to the
  existing DropdownButtons inside a Space when a plugin component
  is registered. If absent, the cell renders exactly as before.
* `src/components/plugin-extra-fields.tsx` — generic component-slot
  helper. Renders `pluginManager.components.<name>` if registered,
  forwarding a `context` payload. Used by create/edit forms to let
  plugins inject extra `Form.Item` fields. Mounted in the relevant
  create forms — API Keys, Cloud Credentials, Clusters, Model
  Routes, Model Providers, and Inference Backends — under the slot
  name `CreateOrgScopeField`. Resources whose org is implicit from a
  parent (Models / Workers / Benchmarks / Worker Pools / Model Files
  inherit from the chosen Cluster) deliberately don't mount the slot.
2026-05-08 18:29:52 +08:00
jialinandjialin 6fccee3711 fix: impoer external components 2026-04-24 14:28:30 +08:00
jialinandjialin 6c161c6ae7 build: sync config 2026-04-24 14:28:30 +08:00
jialinandjialin 48b357b1c6 chore: update hooks import 2026-04-24 14:28:30 +08:00
jialinandjialin 8711c27b78 chore: replace components with core-ui, upgrade eslint 2026-04-24 14:28:30 +08:00
jialinandjialin c73609d155 fix: adjust border raduis 2026-04-08 18:54:06 +08:00
jialinandjialin 6c88a5554f fix: bedrock required fields 2026-03-20 17:23:55 +08:00
jialinandjialin f873d4e245 fix: show required fields for provider 2026-03-20 17:23:55 +08:00
jialinandjialin 0a0e03dc68 fix: open the advanced when configured 2026-03-20 17:23:55 +08:00
jialinandjialin f0e19c8934 fix: spin size 2026-03-19 12:28:18 +08:00
jialinandjialin 68519223fa fix: pagination cache for table list 2026-03-17 16:35:55 +08:00
jialin 76a3e5cfcf fix: custom config overwrite input value 2026-02-25 10:42:06 +08:00
jialin 200d63e5fc fix: add custom config in get-models, test-model 2026-02-25 10:28:31 +08:00
jialin 5151f26b9e fix: miss openaiCustomUrl in get-models payload 2026-02-24 15:36:41 +08:00
jialin 0824f0c13b fix: provider proxy_url set null when disabled 2026-02-24 11:07:53 +08:00
jialin 04092c3fa5 fix: openaicustomurl do not display 2026-02-24 11:07:53 +08:00
jialin c67a8c4120 fix: add other category 2026-02-12 19:38:47 +08:00
jialin 16c0e00b4f chore: diff envs in editing deployment 2026-02-12 19:38:47 +08:00
jialin d1c1c5acf9 chore: corex metax notes 2026-02-12 14:56:25 +08:00
jialin 9cb7145b4e fix: provider yaml inital value 2026-02-12 12:20:05 +08:00
jialin 978d327bcd chore: form tabs active change 2026-02-12 12:20:05 +08:00
jialin 07664b5f22 chore: quick create route 2026-02-12 12:20:05 +08:00
jialin b21fe0ac4c style: error message toast 2026-02-12 12:20:05 +08:00
jialin 1b8c17ce92 fix: tts params filter 2026-02-11 15:30:35 +08:00
jialin 35ae7b9643 fix(style): adjust ui 2026-02-10 17:29:57 +08:00
jialin 15d635322b fix: target model text overflow 2026-02-10 17:29:57 +08:00
jialin c3d5234710 fix: new added model item is cleared 2026-02-10 17:29:57 +08:00
jialin 9418e5b635 fix: get models in cloning 2026-02-10 11:33:24 +08:00
jialin 8779b79bbf fix: get models in cloning 2026-02-10 10:25:02 +08:00
jialin 1314123ad7 fix: api_key format 2026-02-09 11:51:26 +08:00
jialin cb13873098 fix: deduplicate models before submitting 2026-02-09 11:51:26 +08:00
jialin fba430999d fix(style): error message toast 2026-02-09 09:35:42 +08:00
jialin 33ce334bd7 fix: verify same model selected 2026-02-08 19:44:43 +08:00
jialin 379eeedde2 fix: deduplicate in select provider models and target models 2026-02-08 17:20:05 +08:00
jialin 21ffd2a564 fix: env params incorrect after switching between vendors 2026-02-07 16:51:09 +08:00
jialin 096227e3da fix: benchmark tooltip issues 2026-02-06 18:34:20 +08:00
jialin 4132494a49 chore: provider masked api-key 2026-02-06 17:33:06 +08:00
jialin 7f3d6bb55f fix: ui issues 2026-02-06 11:13:49 +08:00
jialin d54722609c fix: remove duplicate selected models 2026-02-06 11:13:49 +08:00
jialin 4e8b5e26ae feat: monitor button 2026-02-04 20:14:25 +08:00
jialin 42f24245b5 fix: maas provider custom config 2026-02-03 20:26:00 +08:00
jialin a2c33affcd fix: file import error 2026-02-03 18:27:49 +08:00
jialin f0390682ce chore: rebase main 2026-02-03 18:21:08 +08:00
jialin dcda9be50b style: display target model name 2026-02-03 18:21:08 +08:00