@timurproko/a1 0.1.8-dev.136 → 0.1.8-dev.137

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.
@@ -47,9 +47,6 @@ export async function runBootstrap(options) {
47
47
  const activeId = state.references.active;
48
48
  const active = activeId === null ? undefined : state.releases[activeId];
49
49
  const activeIsLaunchable = active === undefined || (options.releaseIsLaunchable?.(active.releaseRoot) ?? true);
50
- if (active !== undefined && !activeIsLaunchable) {
51
- output.write(`${PRODUCT_TEXT.diagnostic(`retired release ${active.releaseId} because its copy is not launchable; rebuilding from the installed package.`)}\n`);
52
- }
53
50
  if (activeIsLaunchable && active?.approval === "approved" && active.packageVersion === installedVersion) {
54
51
  const endpointMatches = endpoint?.releaseId === active.releaseId
55
52
  && endpoint.releaseRoot === active.releaseRoot
@@ -77,6 +74,17 @@ export async function runBootstrap(options) {
77
74
  await stateStore.activate(candidate.releaseId);
78
75
  state = await stateStore.read();
79
76
  }
77
+ else if (!activeIsLaunchable && candidate.releaseId !== activeId
78
+ && state.releases[candidate.releaseId]?.approval !== "approved") {
79
+ // The active reference points at a copy that cannot launch, so reusing it
80
+ // is off the table — but an unapproved candidate would lose the selection
81
+ // below to that same broken active (`start-active`). Approving the healed
82
+ // candidate here lets ordinary cohort selection activate it, while a live
83
+ // busy cohort still wins the endpoint checks and keeps its sessions.
84
+ const diagnosticsPath = await certifyMaterializedRelease(candidate, paths.dataDir);
85
+ await stateStore.approve(candidate.releaseId, diagnosticsPath);
86
+ state = await stateStore.read();
87
+ }
80
88
  // The candidate's own endpoint decides whether this launch attaches or starts a supervisor.
81
89
  // A cohort other than this one is not in the way: it listens somewhere else.
82
90
  endpointPaths = resolveCohortEndpoint(paths, candidate.releaseId, environment);
@@ -5,7 +5,7 @@
5
5
  "platform": "darwin",
6
6
  "architecture": "arm64",
7
7
  "capability": "unsupported",
8
- "builtAt": "2026-08-26T05:59:16.405Z",
8
+ "builtAt": "2026-08-26T06:22:58.678Z",
9
9
  "artifact": {
10
10
  "filename": "process-guardian",
11
11
  "sha256": "7524bf568992517f50ed53196c861c5edeba0d7275633bb4735ab45bd5963a28",
@@ -5,11 +5,11 @@
5
5
  "platform": "linux",
6
6
  "architecture": "x64",
7
7
  "capability": "supported",
8
- "builtAt": "2026-08-26T05:59:26.040Z",
8
+ "builtAt": "2026-08-26T06:22:53.598Z",
9
9
  "artifact": {
10
10
  "filename": "process-guardian",
11
- "sha256": "29e22fe29de2828982bc67ef418c4adcaab1490281477b7bea592ec6fe621bcd",
12
- "size": 415696
11
+ "sha256": "ee8a00eaaf79c707459bbbfb52518e9739314967049fbe5fa625f36ce33db9ee",
12
+ "size": 414568
13
13
  },
14
14
  "provenance": {
15
15
  "language": "Rust",
@@ -5,10 +5,10 @@
5
5
  "platform": "win32",
6
6
  "architecture": "x64",
7
7
  "capability": "supported",
8
- "builtAt": "2026-08-26T05:59:44.317Z",
8
+ "builtAt": "2026-08-26T06:23:46.974Z",
9
9
  "artifact": {
10
10
  "filename": "process-guardian.exe",
11
- "sha256": "f36f8c76d82ce8e3d163c7671868bd0ab8b7bc1e14a190714aaeb304b2116a5b",
11
+ "sha256": "7b6350b01d875ee3d0db81a1ed5126df5e4a796b93c9ea146e9f24d1f1ab5a2e",
12
12
  "size": 172544
13
13
  },
14
14
  "provenance": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timurproko/a1",
3
- "version": "0.1.8-dev.136",
3
+ "version": "0.1.8-dev.137",
4
4
  "description": "Standalone terminal workspace for supervised native and managed agents",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.13.0",