@milpa/comal 0.1.4 → 0.1.5

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/README.md CHANGED
@@ -28,7 +28,7 @@ comal --help
28
28
 
29
29
  Keep the PATH line in your shell startup file if you use that prefix. If your Node manager already provides a user prefix, you can omit `--prefix "$HOME/.local"`. The package registers the `comal` executable; you do not need to create a shell alias.
30
30
 
31
- You can pin a version with `npx @milpa/comal@0.1.4` or `npm install --global @milpa/comal@0.1.4`. The local release manifest preserves SHA-256 and SHA-512 integrity is checked against npm at publish time. No independent publisher signature is claimed.
31
+ You can pin a version with `npx @milpa/comal@0.1.5` or `npm install --global @milpa/comal@0.1.5`. The local release manifest preserves SHA-256 and SHA-512 integrity is checked against npm at publish time. No independent publisher signature is claimed.
32
32
 
33
33
  ## Test without account or model
34
34
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milpa/comal",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Comal: governed operations, execution receipts, and programming assistance in any language",
5
5
  "type": "module",
6
6
  "private": false,
@@ -233,7 +233,12 @@ export class InteractiveController {
233
233
  if(failure){const state=this.connections.get(id);this.ui.notice(t(state.message),true);await this.recoverConnection(id,requested);}
234
234
  }
235
235
  scheduleConnectionRecovery(id,action){
236
- setImmediate(()=>this.recoverConnection(id,action).catch(()=>{}));
236
+ const runner=this.runner;
237
+ // Finishing a queued control persists its outcome asynchronously. Wait for
238
+ // that boundary; one event-loop tick can still find the runner occupied.
239
+ Promise.resolve(runner.processing).catch(()=>{}).then(()=>{
240
+ if(this.runner===runner)setImmediate(()=>this.recoverConnection(id,action).catch(()=>{}));
241
+ });
237
242
  }
238
243
  async recoverConnection(id,action){
239
244
  if(this.closed || this.ui.busy || this.runner.processing || this.modalOverlay() || this.ui.permission)return;