esoul-sdk 0.19.0 → 0.19.1

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.
@@ -524,7 +524,19 @@ export function createProgramManager(opts) {
524
524
  slots.delete(linkId);
525
525
  }
526
526
  else {
527
- slot.link = l; // grants may have changed; the next start uses them
527
+ // What the app may reach here can change without a new version (the owner picks "Whole
528
+ // computer" after assigning, or narrows it). The program was started — or refused, with
529
+ // no sandbox — under the OLD reach, so a change restarts it under the new one; the old
530
+ // slot goes quiet like a replaced version (its late "stopped" must not land on top).
531
+ const before = JSON.stringify(reach(slot));
532
+ slot.link = l;
533
+ if (JSON.stringify(reach(slot)) !== before) {
534
+ if (slot.reportTimer)
535
+ clearTimeout(slot.reportTimer);
536
+ slot.silenced = true;
537
+ stop(slot, "what the app may reach on this computer changed");
538
+ slots.delete(linkId);
539
+ }
528
540
  }
529
541
  }
530
542
  for (const l of Object.values(links)) {
@@ -303,7 +303,9 @@ The rules that keep it safe and quiet:
303
303
  system, writes only `p.dataDir` (its own folder, kept across versions) and
304
304
  the folder the owner granted (`p.workspaceRoot`); its home and `/tmp` are
305
305
  private scratch space. With no sandbox on the computer it is refused and
306
- the card says why.
306
+ the card says why. Changing what the app may reach there (the owner picks
307
+ another choice on the card) restarts the program under the new reach —
308
+ widened, narrowed, or out of a refusal.
307
309
  - **Supervised.** A resident program that exits is restarted with backoff;
308
310
  five exits in five minutes and it stops, `failed`, with the last log lines
309
311
  on the card. Its environment is scrubbed (PATH, LANG, TZ, HOME): the
package/llms-full.txt CHANGED
@@ -3245,7 +3245,9 @@ The rules that keep it safe and quiet:
3245
3245
  system, writes only `p.dataDir` (its own folder, kept across versions) and
3246
3246
  the folder the owner granted (`p.workspaceRoot`); its home and `/tmp` are
3247
3247
  private scratch space. With no sandbox on the computer it is refused and
3248
- the card says why.
3248
+ the card says why. Changing what the app may reach there (the owner picks
3249
+ another choice on the card) restarts the program under the new reach —
3250
+ widened, narrowed, or out of a refusal.
3249
3251
  - **Supervised.** A resident program that exits is restarted with backoff;
3250
3252
  five exits in five minutes and it stops, `failed`, with the last log lines
3251
3253
  on the card. Its environment is scrubbed (PATH, LANG, TZ, HOME): the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "esoul-sdk",
3
- "version": "0.19.0",
3
+ "version": "0.19.1",
4
4
  "description": "Build a full product on ExternalSoul: your own tables with per-person rules, a viewer on every seam, app roles, access levels, realtime with audiences, durable tasks, and bindings to other apps.",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",