Repository navigation
Add a render-only ./render entry for read-only viewers - #1
Merged
Merged
Conversation
Split boots:job into definition.render.ts (schema, defaults, capabilities, cone renderer, presentation, mcp) and definition.edit.ts (snapProfile, inspector parameters, and the game engine on the system slot, which reaches @pascal-app/editor). definition.ts composes both, so bootsPlugin is unchanged. @pascal-app/plugin-boots/render exports bootsRenderPlugin. check:render bundles it and fails on any @pascal-app/editor or next import; CI runs it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Read-only viewers can now render
boots:jobcones without loading@pascal-app/editor.What's split
boots:job(the only kind) is now built from two files, anddefinition.tscombines them:src/definition.render.ts(render half): schema,schemaVersion: 1, defaults, capabilities (selection, bounds and transforms, matching the built-ins), the cone renderer, presentation and themcpdescription.src/definition.edit.ts(editing half):snapProfile, the inspectorparametrics, and thesystemslot.The
systemslot holds the whole Boots game: Jump in, the?boots=dropgate, spectators and the pending Save/Discard preview. It has no separate "job system". It reaches@pascal-app/editorthroughgame/session.ts(useEditor) andgame/inventory.tsx(CATALOG_ITEMS), and it writes the scene on Save. So it goes in the editing half, the same way Spielberg's feed/capture system does. Read-only viewers still draw cones without it.src/render.tsexportsbootsRenderPlugin, with the samepascal:bootsid and the same kind asbootsPlugin.package.jsonadds a./renderexport that follows the root's source convention (./src/render.tsfor types and default).bootsPlugin,bootsHostPanel, plugin contract v1, the kind name, the schema version, defaults and migrations (none) are all unchanged.How it was verified
bun run check:render(new,scripts/check-render-entry.ts, added to CI): usesBun.buildto bundle./renderwith every dependency included (290 inputs, including core and viewer). It fails if any import resolves to@pascal-app/editorornext. As a self-test, the root entry must fail the same check. I also addedimport('./game/session')torender.tstemporarily, and the check caught both editor imports.src/render.test.ts: the render plugin has the same id, apiVersion, kinds, schema objects, schema versions, defaults and renderer as the root plugin. It carries no edit-only fields (snapProfile,parametrics,system,preview,tool, …), and the root definition keeps them.bun run check-types: passes.bun test: 3058 pass, 0 fail.🤖 Generated with Claude Code