Repository navigation
Add a render-only ./render entry for read-only viewers - #4
Merged
Merged
Conversation
Split each kind (trees:tree, trees:flower, trees:grass) into a render half (schema, defaults, capabilities, renderer, system, bake replacement renderer, read-only plan) and an edit half (snapProfile, parametrics, handles, preview, tool, toolHints). treesPlugin composes both, so editing hosts are unchanged; treesRenderPlugin from @pascal-app/plugin-trees/render loads without @pascal-app/editor. check:render bundles ./render with Bun.build and fails on any @pascal-app/editor or next import, with a negative probe on the root entry. 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 the Nature kinds without
@pascal-app/editor:What's split
Each kind (
trees:tree,trees:flower,trees:grass) now has a*definition.render.ts, a*definition.edit.tsand a composing*definition.ts.schemaVersion, defaults, category,bake: 'replace', capabilities (movable/rotatable/selectable/dragBounds/floorPlaced), the per-node proxyrenderer, the instancedsystem,bakeReplaceRenderer, the read-onlyfloorplansymbol, presentation and mcp text.snapProfile,parametrics, the tree rotatehandles,preview,tool,toolHints.find-synccatalog side effect andtreesHostPanel.treesPluginspreads the render plugin's identity and lists the composed definitions. Plugin contract v1, the kind names, schema versions, defaults and bake policy are unchanged. No kind declares migrations.package.jsonadds a./renderexport that follows the root's raw-source convention (types/default→./src/render.ts).Verification
bun run check-types: passes.bun test: 16 pass. The newsrc/render.test.tschecks that the render plugin has the same id,apiVersion, kinds, schemas, versions, bake policy, defaults and renderer/system/plan modules as the root plugin. It also checks that render definitions carry none of the editor's edit-contribution fields and that root definitions still carry theirs.bun run check:render(new, also added to CI): bundles./renderwithBun.build, following every static and lazy import including peer packages. It fails if anything resolves to@pascal-app/editorornext. A negative probe bundles the root entry and must catch its editor imports. Passes on Bun 1.4.4 and on CI's 1.3.0.main, checked by comparing before and after.🤖 Generated with Claude Code