@volter/world-console 2.0.8 → 2.0.10

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.
@@ -429,7 +429,7 @@ type Diff = { base: { id: string; at: string | null }; changes: Array<{ twin: st
429
429
  type Branch = { name: string; at?: { instant?: string }; createdAt: string; expiresAt: string | null };
430
430
  /** The branches door: the host's snapshots of this World, and the World's own named branches (`volter world branch`),
431
431
  * one of which, `checkedOut`, is the one this serve holds. */
432
- type BranchesDoor = { branches: Branch[]; checkedOut?: string; named?: Array<{ name: string; running: boolean }> };
432
+ type BranchesDoor = { branches: Branch[]; checkedOut?: string; named?: Array<{ name: string; running: boolean }>; canServe?: boolean };
433
433
  /** What the World's session answered: its scope; `unknown` when the host has no session door (a write then says). */
434
434
  type Scope = 'pending' | 'read' | 'write' | 'unknown';
435
435
 
@@ -1019,7 +1019,7 @@ function BranchList({ name, token, canWrite, branches, opens, note, remove, onCh
1019
1019
  ) : null}
1020
1020
  {branches.state === 'ok' && (branches.data.named?.length ?? 0) > 0 ? (
1021
1021
  <>
1022
- <p className="lede">This World's own branches (<code>volter world branch</code>). One runs at a time; “Serve here” stops this one's twins and serves that one in its place.</p>
1022
+ <p className="lede">This World's own branches (<code>volter world branch</code>). One runs at a time; {branches.data.canServe ? <>“Serve here” stops this one's twins and serves that one in its place.</> : <>this host serves one of them; another is served by <code>volter world checkout &lt;branch&gt;</code> where the World lives, then serving again.</>}</p>
1023
1023
  {serveError ? <p role="alert">{serveError}</p> : null}
1024
1024
  <div className="block">
1025
1025
  <table className="dense" aria-label="World branches">
@@ -1029,7 +1029,7 @@ function BranchList({ name, token, canWrite, branches, opens, note, remove, onCh
1029
1029
  <tr key={b.name}>
1030
1030
  <td><b>{b.name}</b>{b.name === branches.data.checkedOut ? <> <span className="badge">served here</span></> : null}</td>
1031
1031
  <td className="mode">{b.running ? 'running' : 'stopped'}</td>
1032
- <td className="num row-actions">{canWrite && b.name !== branches.data.checkedOut ? <button type="button" disabled={serving !== null} onClick={() => void serveHere(b.name)}>{serving === b.name ? 'Switching…' : 'Serve here'}</button> : null}</td>
1032
+ <td className="num row-actions">{canWrite && branches.data.canServe && b.name !== branches.data.checkedOut ? <button type="button" disabled={serving !== null} onClick={() => void serveHere(b.name)}>{serving === b.name ? 'Switching…' : 'Serve here'}</button> : null}</td>
1033
1033
  </tr>
1034
1034
  ))}
1035
1035
  </tbody>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/world-console",
3
- "version": "2.0.8",
3
+ "version": "2.0.10",
4
4
  "description": "The dashboard of Volter World: a World's pages, the same on a laptop, a self-hosted host and the hosted cloud — mounted by the host at /-/console/. A pure frontend over the World's own doors; its kit (./kit) is the pieces the platform's pages share.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -23,8 +23,8 @@
23
23
  "react-dom": "^19.2.7"
24
24
  },
25
25
  "devDependencies": {
26
- "@volter/world-host": "2.0.13",
27
- "@volter/world-runtime": "2.0.14",
26
+ "@volter/world-host": "2.0.22",
27
+ "@volter/world-runtime": "2.0.23",
28
28
  "@volter/world-tooling": "0.1.0",
29
29
  "@types/bun": "^1.2.20",
30
30
  "@types/node": "^24.0.0",
@@ -51,5 +51,6 @@
51
51
  "type": "git",
52
52
  "url": "git+https://github.com/volter-ai/twin.git",
53
53
  "directory": "apps/console"
54
- }
54
+ },
55
+ "homepage": "https://world.volter.ai/docs/README"
55
56
  }