You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Unify App/Pipeline into one app type; make Overview consumer-visible for every app (#6)
* feat(app-detail): make the Overview tab consumer-visible for every app
The Overview tab previously rendered only from a deployment manifest
(`Pipeline`), so it appeared only for the org's own deployed apps and
never as the default tab on the consumer base — meaning the public apps
a consumer browses from Explore had no Overview at all.
Render Overview from the catalog `model` (App), which exists for every
app, and treat the deployment manifest as optional enrichment:
- Headline stats (Calls·7d, p50 latency, uptime, warm orchestrators)
come from the model, so they show for any app. Warm-orchestrator count
is a liveness/capacity signal for the caller.
- Endpoint card shows the call URL for every app; per-route rows appear
when the deployment manifest is known.
- Deployment-backed apps additionally get the full Deployment card
(pipeline id, entrypoint, image, version, GPU, last deployed, deployed
by, environments) + the request Schema — shown to any viewer.
- Catalog-only apps get a lighter Details card (provider, category, type,
pricing) so the tab isn't bare.
Overview is now available to everyone and is the default landing tab.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* refactor(data): unify App and Pipeline into one app type
There were two disjoint types — `App` (static catalog model) and
`Pipeline` (a deployed-app manifest) — with separate arrays and separate
lookups, even though the product vocabulary says "an app is a deployed
pipeline." This makes the data match the vocabulary: one app type, one
catalog array, one lookup, and every app carries its pipeline manifest.
- `App` keeps all its catalog fields and gains `deployment?: AppDeployment`
(the former `Pipeline`-only manifest: pipelineId, entrypoint, image,
version, gpu, endpoints, createdBy, environment, kind, status,
visibility, warm orchestrators, calls/latency/error metrics).
- `Pipeline` is now a transitional alias — `App & { deployment }` — so
operator components keep their prop types while reads migrate to
`app.deployment.X`.
- One `APPS` array = third-party catalog models (each given a derived
manifest) + the org's own deployed apps (manifest lifted from the old
PIPELINES literal). One `getAppById`; `getModelById` /
`getCapabilityById` / `getPipelineById` are thin deprecated aliases.
- Helpers (`publicPipelines`, `publicCatalog`, `deploymentsForPipeline`,
`PIPELINE_APP_IDS`, visibility) preserve their prior meaning over the
unified array — Explore shows the same set, multi-env "Deployed in"
pills intact, no private apps leak.
- The app-detail Overview now takes a single `app: App` and reads
`app.deployment`. Catalog models therefore surface a (synthetic, mock)
deployment manifest too, consistent with "every app is a pipeline."
Verified: typecheck, lint (0 warnings), build all pass; Explore (20
cards), catalog + owned app detail, and Home all render correctly.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments