Export template source from 6582c95be18e19db92ee263d298a6550935e4c23:quixos-instance/packages/web-studio-canvas-runtime

This commit is contained in:
Quixos Template Publisher
2000-01-01 00:00:00 +00:00
commit 38b01a55ba
31 changed files with 459 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
# Studio graph capabilities
This system package implements ordinary Canvas/Placement/Placeable interfaces.
It owns no database, web server, Worker, page session, or special presentation
object per rendered subject. The workspace binds storage and relationship edges.
The checked component is an independent consumer of the same public contracts.
- `Canvas.create` creates an initialized canvas. The server entry factory uses the
workspace host's idempotent root protocol, without a second package-local cache.
- `Canvas.place` validates the requested renderer through the subject's portable
`Placeable.canPresent` contract and creates one placement with both relationships.
- `Canvas.createAndPlace` is an example compound factory: child canvas creation,
renderer validation and placement creation share one transaction. An invalid
renderer rolls back the child, too. Other domains can compose their own creation
ports in exactly this way; there is no frontend business reducer.
- `position` and `size` are separate whole-record registers. Concurrent move and
resize survive independently; concurrent moves resolve in server acceptance
order without mixing one move's x coordinate with another move's y coordinate.
- `remove` is explicitly server-only. Deletion needs the full incoming-reference
graph; a partial replica cannot safely predict all deletion restrictions and
cascades. Removing a placement preserves its subject. The interface does not
advertise a portable delete or keep a hidden archive in the canvas query.
The generic `canPresent<atom Subject>` implementation reads the explicitly granted
`reflection catalog [presentations]` port. This exposes only immutable checked
presentation IDs, subject contracts and their conforming atoms. It does not expose
live object inventory or private state. The dispatcher verifies the concrete
receiver; reference expectations supplied by a caller are not conformance proof.
A changed presentation catalog participates in the consuming execution group's
reuse digest. Unrelated modules do not acquire that dependency.
Queries have explicit prototype bounds: 100 canvases in navigation and 200
placements per open canvas. Title-only cards use their own small input projection.
A selected/new placement can retain `PlacementInputs` even if a list excludes it.
A larger Studio should add explicit windows or pagination rather than silently
pretend these bounded queries cover an arbitrarily large workspace.
`tools/local-first/studio.nix` builds the source snapshot through the checked
artifact builder and tests the generic workspace host. Run
`nix build .#checks.x86_64-linux.camino-studio-capabilities` at the monorepo root.
These are unpublished fixture resource pins; normal independently retained source
assembly and scaffolding are qualified in WI-12. The old checkedServer/Yarn and
migration recipes were removed, rather than presenting them as a compatible path.