@runuai/host 0.9.119 → 0.9.120

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.
@@ -1959,7 +1959,13 @@ export class Orchestrator {
1959
1959
  return false;
1960
1960
  }
1961
1961
 
1962
- this.emitTaskStage(channel.taskId, "agents");
1962
+ // Live 2026-09-10 (Mac Studio, host 0.9.119): a reconcile pass had
1963
+ // already spawned the whole roster, bindSession had emitted `ready`, and
1964
+ // this unconditional `agents` then overwrote it — the page stayed
1965
+ // covered for good. Only announce the wake-up when there is one to do.
1966
+ const allBound = (): boolean =>
1967
+ initialRoster.every((agent) => channel.sessions.has(agent.id));
1968
+ if (!allBound()) this.emitTaskStage(channel.taskId, "agents");
1963
1969
  for (const agent of initialRoster) {
1964
1970
  if (!this.isActiveChannel(channel)) return false;
1965
1971
  // A prior partial start or an independently guarded recovery may already
@@ -2018,8 +2024,12 @@ export class Orchestrator {
2018
2024
  // so it both duplicated the opening turn AND re-injected it on a host
2019
2025
  // restart, making agents redo the first turn mid-task. The persona/mission
2020
2026
  // an agent needs live in the always-on system preamble, so nothing is lost.
2021
- // `ready` itself was emitted by bindSession as the last roster agent
2022
- // bound (or above, when one could not).
2027
+ // `ready` is emitted by bindSession as the last roster agent binds (or
2028
+ // above, when one could not). Re-assert it here for the roster that was
2029
+ // already bound when this loop began — every bind then predates this
2030
+ // pass and could have been overwritten by an `agents` from a start
2031
+ // that lost the race.
2032
+ if (allBound()) this.emitTaskStage(channel.taskId, "ready");
2023
2033
  return true;
2024
2034
  }
2025
2035
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runuai/host",
3
- "version": "0.9.119",
3
+ "version": "0.9.120",
4
4
  "description": "Uai host — runs ephemeral AI tasks in containers on a machine you control.",
5
5
  "license": "MIT",
6
6
  "author": "Uai Tech <team@runuai.com>",