@telepath-computer/television 0.1.159 → 0.1.161

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.
@@ -120,7 +120,7 @@ When the CLI rejects a command, follow the directive it prints rather than guess
120
120
 
121
121
  ### Server operation notes
122
122
 
123
- `tv serve` starts the local server. Bare `tv serve` binds `127.0.0.1` and is tokenless. Use `--listen <ipv4>` (repeatable or comma-separated) to add IPv4 listeners; any `--listen` requires an explicit global auth choice with `--auth` or `--no-auth`. Workflow commands connect to `localhost:<port>` only; use `--port`, `TELEVISION_PORT`, or the default `32848` rather than `--server`. When targeting non-default storage, pass `--storage-path` or set `TELEVISION_STORAGE_PATH` so the CLI reads the matching token from `<storagePath>/state/token`.
123
+ `tv serve` starts the local server. Use `tv serve --auth` for normal operation and every agent-managed install; bare `tv serve` still binds `127.0.0.1` and is tokenless for compatibility. Do not present auth/no-auth as a setup decision: work out network reach with the user, then install with `--auth`. Tokenless starts print a warning because local processes and browser pages the operator opens can control the server. Use `--no-auth` only if the user explicitly asks to run without a token. Use `--listen <ipv4>` (repeatable or comma-separated) to add IPv4 listeners; any `--listen` requires an explicit global auth choice, and agents supply `--auth`. Workflow commands connect to `localhost:<port>` only; use `--port`, `TELEVISION_PORT`, or the default `32848` rather than `--server`. When targeting non-default storage, pass `--storage-path` or set `TELEVISION_STORAGE_PATH` so the CLI reads the matching token from `<storagePath>/state/token`.
124
124
 
125
125
  `tv serve --persist` installs or refreshes the user system service. It captures the serve flags and relevant environment at install time (`--listen`, `--auth`/`--no-auth`, `--port`, `--storage-path`, `PATH`, `TELEVISION_PORT`, `TELEVISION_STORAGE_PATH`). Rerun it after changing listen/auth/port settings, PATH, or the Node/TV install. The refresh is non-atomic: if uninstall succeeds but install fails, fix the env and rerun `tv serve --persist`.
126
126
 
@@ -130,7 +130,7 @@ When the CLI rejects a command, follow the directive it prints rather than guess
130
130
 
131
131
  ## Read vs mutate
132
132
 
133
- Read commands print JSON. Workflow commands print plain text. Most mutation commands also print plain text, but `tv set-theme` is intentionally silent on success.
133
+ Read commands print JSON. Workflow commands print plain text. Most mutation commands also print plain text, but `tv set-theme` is intentionally silent on success. `tv serve` startup output is human-readable connection text.
134
134
 
135
135
  Use read commands when you need authoritative state for planning or verification. Use mutation commands when you are intentionally changing Television state.
136
136
 
@@ -432,10 +432,33 @@ Rules:
432
432
 
433
433
  - `--url` must be `http://` or `https://`.
434
434
  - Electron displays the URL in a webview.
435
- - Browser clients show a local unsupported placeholder.
436
- - Television does not fetch or watch the remote page.
435
+ - Browser clients show a local unsupported placeholder for ordinary web URLs.
436
+ - Browser clients render Television artifact proxy URLs (`http://<host>:<port>/artifact/<id>/...`) inline and live-reload them when the producer's ETag changes.
437
+ - Television does not fetch or watch ordinary remote pages from the consumer server.
437
438
 
438
- If the browser placeholder is not sufficient, create a markdown or HTML path artifact that links to the page and summarizes what the user needs from it.
439
+ ### Sharing Television artifacts by URL
440
+
441
+ To share a path artifact from one Television server to another, build a producer artifact proxy URL:
442
+
443
+ ```text
444
+ http://<producer-host>:<port>/artifact/<artifact-id>/<basename>
445
+ ```
446
+
447
+ First run `tv status` on the producer. Its JSON reports the server `bindAddresses` and `port`. Choose the host that the recipient can actually reach:
448
+
449
+ - Prefer a Tailscale CGNAT address (`100.64.0.0/10`) when one is present.
450
+ - Otherwise use a non-loopback bind address.
451
+ - Never emit a loopback host (`127.0.0.1` or `localhost`) for sharing; that points at the recipient's own machine.
452
+ - If the server is bound to `0.0.0.0`, determine the host's reachable IP by other means, then use that IP with the reported port.
453
+ - If you cannot determine an externally reachable IP, tell the user and explain that the server is only reporting loopback or wildcard bind information instead of inventing a localhost share URL.
454
+
455
+ For directory artifacts, use the directory proxy URL ending in `/artifact/<artifact-id>/`. For file artifacts, include the encoded basename. The recipient adds that URL with `tv create-url-artifact`; Television recognizes the `/artifact/<id>/...` shape, renders it inline, and reloads it from the producer when the producer content changes.
456
+
457
+ Markdown artifacts shared this way render as read-only HTML. Anyone with the artifact proxy URL can read the rendered artifact content, matching the HTML artifact capability model.
458
+
459
+ There is no separate `share-artifact` command. To "share" a URL artifact, pass along the underlying URL and let the recipient create their own URL artifact.
460
+
461
+ If the browser placeholder for an ordinary non-Television URL is not sufficient, create a markdown or HTML path artifact that links to the page and summarizes what the user needs from it.
439
462
 
440
463
  # HTML artifact style
441
464
 
@@ -58,8 +58,8 @@
58
58
  display: none !important;
59
59
  }
60
60
  </style>
61
- <script type="module" crossorigin src="../../assets/artifactMissing-B7Big40q.js"></script>
62
- <link rel="modulepreload" crossorigin href="../../assets/artifact-bridge-Ce9BPLXH.js">
61
+ <script type="module" crossorigin src="../../assets/artifactMissing-CxC-pgtU.js"></script>
62
+ <link rel="modulepreload" crossorigin href="../../assets/artifact-bridge-KdJfBNuH.js">
63
63
  <link rel="modulepreload" crossorigin href="../../assets/missing-artifact-page-DVzJ41AE.js">
64
64
  </head>
65
65
  <body>