V1 Web PWA · Surface walkthrough

Isis Artifact Detection

A per-surface walkthrough of the V1 Web PWA studio surface: layout, states, interactions, data, and cross-references.

walked
8sections2 minread

On this page

Context. surface studio · domain isis · route /studio/isis/artifact-detection · auth signed-in + studio entitlement (segment not in AAA_ONLY_STUDIO_ROUTES — renders as-is) · source apps/oshun/web/src/app/studio/isis/artifact-detection/page.tsx

Last walked. 2026-05-29 automated runtime walk (Playwright headless) — render, /v1 data (2xx), console/page-errors, expected content, screenshot verified; live screen-reader, touch, offline, and telemetry-delivery checks pending a manual AT pass. Evidence: WALKTHROUGH/results/runtime-sweep-2026-05-29.md; body re-derived 2026-06-03 from current source (lane-console architecture)

Purpose#

Admin lane console for 3D quality operations: it logs per-asset defect reports against the 3d-quality-gates review queue and groups them by provider, model version, and failure codes, surfacing a recurrent-failure cluster once occurrences and distinct assets cross the escalation thresholds (a systematic artifact, not one-off noise). All reads and writes flow through /v1/admin/isis/artifact-detection; it is admin-scoped and fails closed.

Entry points#

  • Sibling quick-action from /studio/isis/automated-quality-scoring
  • Studio index (/studio)
  • Direct URL / bookmark

Layout regions#

page.tsx mounts <ShellLayout active="studio"> (no breadcrumb panel) and three panels: the workspace, the Route Map, and sibling quick-actions.

  • Header: shell header
  • Workspace panel (data-isis-artifact-detection-workspace):
    • <h1> (WorkspaceHeading) "Isis Artifact Detection Workspace"
    • Summary paragraph (data-artifact-summary)
    • Recurrent-failure cluster list (data-artifact-clusters, threshold annotation from response.thresholds), each cluster data-artifact-cluster=<fingerprint> with data-artifact-cluster-count; empty state data-artifact-clusters-empty
    • Defect-report form (data-artifact-form)
    • Defect-report list (data-artifact-reports), each data-artifact-report=<queueItemId>
  • Route Map panel (data-isis-artifact-detection-route-map): <h2>Route Map</h2> over STUDIO_ISIS_ARTIFACT_DETECTION_ROUTE_MAP (5 entries)
  • Sibling quick-actions panel: /studio/isis/automated-quality-scoring, /studio

States#

  • Loadingoutcome === null; data-artifact-loading "Loading artifact detection…"
  • Unauthorized — 401/403 admin-scope fail-closed; data-artifact-unauthorized ("Isis workspace scope required to view artifact detection.")
  • Error — non-OK or malformed response; data-artifact-error
  • Ready (form)response present; cluster list + form + reports render
  • Result — after a log POST, data-artifact-result (data-artifact-status=ok|error); duplicate queue-item id → "A defect with that queue-item id already exists."

Interactions#

Defect-report form (data-artifact-form)#

  • Queue-item id (data-artifact-queueid, text input)
  • Asset id (data-artifact-assetid, text input)
  • Failure code (data-artifact-failurecode, <select> populated from response.failureCodes)
  • Provider (data-artifact-provider, text input; defaults tripo-comfy)
  • Model version (data-artifact-modelversion, text input; defaults tripo-2.1)
  • Log defect (data-artifact-log) — disabled until all fields present; POST /v1/admin/isis/artifact-detection, then reloads the catalog

Route Map#

  • Route-map articles ×5 (primary, /scenes/[sceneId], /exports/[exportId], /revisions/[revisionId], /governance/[policyId])

Sibling quick-actions#

  • Open Isis Automated Quality Scoring workspace/studio/isis/automated-quality-scoring
  • Back to Studio workspace index/studio

Data & contracts#

  • Reads: GET /v1/admin/isis/artifact-detection (reports, clusters, thresholds, failureCodes, severities, benchmarkCategories)
  • Writes: POST /v1/admin/isis/artifact-detection (log a defect report; returns { ok, clusters })
  • Realtime: none
  • Caching: client fetch on mount, cache: 'no-store', buildBffAuthHeaders()
  • Auth/role check: admin-scoped, fail-closed (401/403); route gated on signed-in + studio entitlement
  • Component sources:
    • apps/oshun/web/src/components/studio/StudioIsisArtifactDetectionWorkspace.tsx
    • apps/oshun/web/src/components/studio/StudioIsisArtifactDetectionRouteMap.ts

Cross-references#

Open questions / known gaps#

  • No breadcrumb on this route — navigation is via sibling quick-actions
  • Route-map sub-paths (/scenes, /exports, /revisions, /governance) are declared but not yet implemented as separate pages