0c46850973
- run a singleton Codex App Server adapter in each dev workspace - gate Web Studio with a reloadable fragment-token to HttpOnly-session exchange - add ChatGPT device login and streamed chat to Web Studio - isolate authoring access in a declarative NixOS service account - split Web Studio canvas, object, panel, and model concerns - check generated Quixos protocol clients for drift - resolve same-repository quixos.lock fragments deterministically - preserve the collaborative canvas gesture fixes
36 lines
1.5 KiB
Plaintext
36 lines
1.5 KiB
Plaintext
workspace WebStudioFixture id "workspace:web-studio-fixture" revision "workspace:web-studio-fixture@1" commit "1111111111111111111111111111111111111111" {
|
|
atom Project id "atom:project";
|
|
atom ProjectComponent id "atom:project-component";
|
|
|
|
import interface Named;
|
|
import interface ReactComponent;
|
|
import interface HasReactComponent;
|
|
import package ComponentRuntime;
|
|
|
|
shared state ProjectName id "slot:project:name" on Project : string
|
|
policy optimistic-register default "Untitled project";
|
|
shared edge ProjectComponentEdge id "edge:project:component" {
|
|
atom ProjectComponent projection subject id "projection:component:subject" exactly-one;
|
|
atom Project projection component id "projection:project:component" optional-one;
|
|
}
|
|
|
|
conform Project as Named {
|
|
bind name.get to state ProjectName.read;
|
|
bind name.set to state ProjectName.write;
|
|
bind name.watch-start to state ProjectName.watch-start;
|
|
bind name.watch-stop to state ProjectName.watch-stop;
|
|
}
|
|
|
|
conform Project as HasReactComponent {
|
|
bind component.resolve to edge ProjectComponentEdge.component.resolve;
|
|
materialize component if absent using constructor ProjectComponent via edge ProjectComponentEdge.subject;
|
|
}
|
|
conform ProjectComponent as ReactComponent {
|
|
bind props.get to package ComponentRuntime.propsGet with {
|
|
project to interface Named via edge ProjectComponentEdge.subject;
|
|
};
|
|
}
|
|
|
|
constructor ProjectComponent to ComponentRuntime.createComponent;
|
|
}
|