Skip to content

v0.1.0 — Initial MVP Release#6

Merged
seanhanca merged 2 commits into
livepeer:developfrom
qianghan:develop
Feb 9, 2026
Merged

v0.1.0 — Initial MVP Release#6
seanhanca merged 2 commits into
livepeer:developfrom
qianghan:develop

Conversation

@qianghan
Copy link
Copy Markdown
Contributor

@qianghan qianghan commented Feb 9, 2026

v0.1.0 — Initial MVP Release

Changes

  • Seed dynamic discovery — Replaced ~70 lines of hardcoded plugin data in seed.ts with discoverPlugins() that reads from plugins/*/plugin.json at seed time
  • PluginManifest type consolidation — Added RuntimePlugin interface to @naap/types for API/DB shape; replaced 5 local PluginManifest copies with canonical imports
  • User/AuthUser type consolidation — Added canonical AuthUser and User types to @naap/types; replaced 5 local copies across the codebase; deleted deprecated LegacyShellUser
  • Port deduplication — All 11 plugin backends now read devPort from plugin.json instead of hardcoding fallback ports
  • Added DeepPartial<T> utility type for validation/provisioning function signatures
  • Release notes — Comprehensive RELEASE_NOTES_v0.1.0.md covering platform features, plugins, SDK, development process, and architecture

Verification

  • prisma seed exits 0 with dynamic plugin discovery (11 plugins from plugin.json)
  • All 11 plugins return bundleUrl via /api/v1/base/plugins/personalized
  • Login API returns token for admin@livepeer.org
  • Shell loads HTTP 200
  • tsc --noEmit passes on packages/types, apps/web-next, services/base-svc
  • Full start.sh stop --all && start.sh start --all cycle: all 11 backends pass deep health checks

Tag

v0.1.0 tagged on this commit. See RELEASE_NOTES_v0.1.0.md for the full release notes.

Made with Cursor

seanhanca and others added 2 commits February 8, 2026 20:00
- Seed data: dynamically discover plugins from plugin.json instead of
  hardcoding 70+ lines of plugin metadata (names, routes, icons, order)
- PluginManifest types: add RuntimePlugin to @naap/types for the API/DB
  shape; replace 5 local PluginManifest copies with canonical imports
- User/AuthUser types: add canonical AuthUser and User to @naap/types;
  replace 5 local copies, delete deprecated LegacyShellUser
- Port duplication: all 11 plugin backends now read devPort from
  plugin.json instead of hardcoding fallback ports
- Add DeepPartial<T> utility type for validation/provisioning functions

Verified: prisma seed exits 0, all 11 plugins return bundleUrl via API,
login returns token, shell loads HTTP 200, tsc --noEmit passes on
packages/types, apps/web-next, and services/base-svc.

Co-authored-by: Cursor <cursoragent@cursor.com>
Comprehensive release notes covering platform features, 11 plugins,
core services, plugin SDK, development process, and architecture.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Feb 9, 2026

@seanhanca is attempting to deploy a commit to the Livepeer Foundation Team on Vercel.

A member of the Team first needs to authorize it.

@seanhanca seanhanca merged commit 4a8f245 into livepeer:develop Feb 9, 2026
1 of 2 checks passed
.filter(dir => fs.existsSync(path.join(pluginsDir, dir, 'plugin.json')))
.map(dir => {
const manifest = JSON.parse(
fs.readFileSync(path.join(pluginsDir, dir, 'plugin.json'), 'utf8')
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.

Unhandled JSON parsing error in plugin discovery causes crash on malformed plugin.json files

Fix on Vercel

Comment on lines +11 to +14
email: string | null;
displayName: string | null;
avatarUrl: string | null;
address: string | null;
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.

Suggested change
email: string | null;
displayName: string | null;
avatarUrl: string | null;
address: string | null;
email?: string | null;
displayName?: string | null;
avatarUrl?: string | null;
address?: string | null;

AuthUser fields (email, displayName, avatarUrl, address) are marked as required with null value instead of optional, breaking code that handles undefined fields

Fix on Vercel

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.

2 participants