Skip to content

CL-5291: Library real artifacts (list, search, upload, UI cutover) - #50

Merged
TheGreatAxios merged 4 commits into
mainfrom
cl-5291-library-full
Aug 10, 2026
Merged

CL-5291: Library real artifacts (list, search, upload, UI cutover)#50
TheGreatAxios merged 4 commits into
mainfrom
cl-5291-library-full

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Summary

Completes CL-5291 beyond the engine-mount slice in #37:

  • Hub: tenant-scoped GET /artifacts (paginated + ?q= search), GET /artifacts/:id, POST /artifacts/upload over the mounted @corbits/artifacts engine; honest 503 when the plane is not configured
  • Web: Library cut over off the asset shim — list/search from the real plane, Upload control, unavailable empty state when hub answers 503

Test plan

  • apps/hub typecheck
  • apps/web typecheck
  • bun test src/artifact-routes.test.ts (hub) — 8 pass
  • bun test test/library-artifacts.test.ts test/pages.test.tsx (web) — 12 pass
  • With ARTIFACTS_DATABASE_URL set: open Library, upload a file, search by title
  • Without ARTIFACTS_DATABASE_URL: Library shows “Library not configured” (not a silent empty list)

Cover tenant-scoped list/search/upload/get, the unavailable 503 surface,
and the web mapping helpers that replace the asset shim.
Wire hub tenant routes over the mounted @corbits/artifacts engine
(list with q, get, multipart upload; 503 when unmounted) and cut the
Library page off the asset shim onto that plane with server-side search
and an Upload control.
Use RequireGrant from @intx/hub-api and plain Row[] so ESLint
no-explicit-any / array-type rules stay clean.
@TheGreatAxios
TheGreatAxios merged commit 239e0c6 into main Aug 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant