@unoverse-platform/studio 0.1.58 → 0.1.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unoverse-platform/studio",
3
- "version": "0.1.58",
3
+ "version": "0.1.60",
4
4
  "type": "module",
5
5
  "description": "Unoverse Studio: the local authoring app. Reads your own rx/ folder, no backend.",
6
6
  "scripts": {
package/src/host.ts CHANGED
@@ -22,21 +22,19 @@ export const UNOVERSE_BASE = "";
22
22
  export const hasAuth = false;
23
23
 
24
24
  /**
25
- * The universe Studio is signed into (the header connection), or null when offline.
26
- * THE LIVE PREVIEW'S SERVER. One source of truth: the same selection App.tsx keeps
27
- * (`studio:universe` is its usePersistentState pointer into the saved universe list),
28
- * so it is impossible to be signed into one universe and silently previewing against
29
- * another. The shared screens fall back to the local dev platform only when no
30
- * universe is connected.
25
+ * THE LIVE PREVIEW'S SERVER: always null here, meaning the local dev platform.
26
+ *
27
+ * This used to read the universe picked in the header (`studio:universe`), written by
28
+ * the connect button. That chrome is gone (LOCAL_STUDIO.md §Publish is terminal-only) —
29
+ * and reading the stale localStorage value after removing the UI left Live mode aimed
30
+ * at a universe nobody could change or clear, failing with that universe's errors
31
+ * (seen live: "Unknown Unoverse template" from a universe the app was never published
32
+ * to). So local Studio's Live preview targets the local dev platform, full stop.
33
+ * Pointing Live at the workspace's own universe (unoverse.yaml) is future work and
34
+ * will come from the workspace, not from a browser store.
31
35
  */
32
36
  export function liveUniverseUrl(): string | null {
33
- try {
34
- const raw = localStorage.getItem("studio:universe");
35
- const url = raw === null ? null : (JSON.parse(raw) as string | null);
36
- return url || null;
37
- } catch {
38
- return null;
39
- }
37
+ return null;
40
38
  }
41
39
 
42
40
  /**
@@ -102,16 +102,16 @@ fetch it as raw markdown.
102
102
  ## Step 3: Deploy loop (after the artifact is written)
103
103
 
104
104
  Components and templates have NO scaffold command. Author them from the references
105
- (mirror the closest existing artifact). Validation lives in Studio: its publish step
105
+ (mirror the closest existing artifact). Validation lives in the deploy lint (`unoverse deploy studio`): it
106
106
  lints every definition before anything leaves the machine (0 errors required, doc-cited
107
107
  messages; justify any warning), and the conformance checklist is
108
108
  [UNOVERSE_CONFORMANCE](https://docs.unoverse.ai/unoverse/UNOVERSE_CONFORMANCE.md).
109
109
 
110
110
  | Artifact | To see it live |
111
111
  |---|---|
112
- | Component / atom / template / style | Preview in Studio (`unoverse studio`), then publish from Studio: the publish lint gates it |
112
+ | Component / atom / template / style | Preview in Studio (`unoverse studio`), then `unoverse deploy studio`: the deploy lint gates it |
113
113
  | Existing component restyle/edit only | takes effect live (the SDK reads `design/` directly) |
114
- | Agent skill / prompt block | publish from Studio, same gate |
114
+ | Agent skill / prompt block | `unoverse deploy studio`, same gate |
115
115
  | Node | Studio's Nodes screen: Load sample → Run. A node is YAML; running it is the only proof (no build) |
116
116
 
117
117
  **Close the loop with the developer.** After creating something visual, tell them how
@@ -32,7 +32,7 @@ It prints every part the agent can fill, its description, and its limits. Read t
32
32
  output, not the YAML. Then run the design lint
33
33
  (`node -e "import('./packages/base/src/lint/design/index.mjs').then(m=>{const r=m.lintDefinitions();console.log(r.problems.length);r.problems.forEach(p=>console.log(p.level,p.file,p.msg))})"`).
34
34
 
35
- In a **Studio developer workspace**, the same linter runs as Studio's publish lint; it
35
+ In a **Studio developer workspace**, the same linter runs as the deploy lint (`unoverse deploy studio`); it
36
36
  catches two of the five traps below by name. Read what it says rather than silencing it, and always do the final proof in
37
37
  Step 6: one real fill.
38
38