plugins: a splash is part of a plugin, like its icon
assets/splash.png is discovered by presence, published by the same copy that already took the whole assets directory, and carried on DiscoveredPlugin beside icon. The platform draws no splash — a plugin has no launch. It is carried because the plugin repository is where a product's artwork lives now, and the phone app that fronts the same product needs somewhere to read it from that is not a designer's folder. The pair is the point: the icon is a reduction of the splash's world, and keeping them together is what stops them drifting. Publishing no longer gates on the icon alone, which left a plugin shipping only a splash serving nothing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -106,6 +106,9 @@ export async function loadPlugin(dir: string, appName: string): Promise<Discover
|
||||
// could only ever name a glyph the platform had already bundled, which is a ceiling a plugin
|
||||
// from a marketplace has no way to see coming.
|
||||
icon: fileOrNull(join(dir, 'assets', 'icon.png')),
|
||||
// The launch scene, carried for whoever fronts this plugin on a phone. Same rule as the icon:
|
||||
// the file's presence is the declaration, and there is no manifest field to keep in step.
|
||||
splash: fileOrNull(join(dir, 'assets', 'splash.png')),
|
||||
api: fileOrNull(join(dir, 'api', 'router.ts')),
|
||||
schema: fileOrNull(join(dir, 'db', 'schema.ts')),
|
||||
sidecar: findSidecar(dir),
|
||||
|
||||
Reference in New Issue
Block a user