archondev 2.19.36 → 2.19.37

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.
@@ -4811,7 +4811,7 @@ async function attemptPathScopeAutoRecovery(atom, cwd, parseSchema, options) {
4811
4811
  }
4812
4812
  const { listLocalAtoms, plan } = await import("./plan-S5EULQKJ.js");
4813
4813
  const before = await listLocalAtoms();
4814
- const beforeIds = new Set(before.map((entry) => entry.externalId));
4814
+ const recoveryStartedAt = Date.now();
4815
4815
  const recoverySource = atom.description ?? atom.title;
4816
4816
  const scopedRequest = `${recoverySource}
4817
4817
 
@@ -4821,12 +4821,22 @@ Constraints:
4821
4821
  console.log(chalk2.dim("\nAuto-recovery: re-planning with allowed-path scope constraints...\n"));
4822
4822
  await plan(scopedRequest, { conversational: true });
4823
4823
  const after = await listLocalAtoms();
4824
- const replacement = after.filter((entry) => !beforeIds.has(entry.externalId) && entry.status === "READY").sort((a, b) => {
4824
+ const byMostRecent = (a, b) => {
4825
4825
  const aTime = new Date(String(a.updatedAt ?? a.createdAt ?? "")).getTime() || 0;
4826
4826
  const bTime = new Date(String(b.updatedAt ?? b.createdAt ?? "")).getTime() || 0;
4827
4827
  return bTime - aTime;
4828
- })[0];
4828
+ };
4829
+ let replacement = after.filter((entry) => {
4830
+ if (entry.status !== "READY") return false;
4831
+ if (entry.externalId === atom.externalId) return false;
4832
+ const updatedAt = new Date(String(entry.updatedAt ?? entry.createdAt ?? "")).getTime() || 0;
4833
+ return updatedAt >= recoveryStartedAt - 2e3;
4834
+ }).sort(byMostRecent)[0];
4835
+ if (!replacement) {
4836
+ replacement = after.filter((entry) => entry.status === "READY" && entry.externalId !== atom.externalId).sort(byMostRecent)[0];
4837
+ }
4829
4838
  if (!replacement) {
4839
+ console.log(chalk2.yellow("Auto-recovery could not find a replacement READY atom to retry."));
4830
4840
  return false;
4831
4841
  }
4832
4842
  console.log(chalk2.dim(`Auto-recovery: retrying with ${replacement.externalId}...
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  execute
3
- } from "./chunk-B5OHK54H.js";
3
+ } from "./chunk-KZP4GK6K.js";
4
4
  import "./chunk-EBHHIUCB.js";
5
5
  import "./chunk-LGWUWEEJ.js";
6
6
  import "./chunk-WGLVDEZC.js";
package/dist/index.js CHANGED
@@ -56,7 +56,7 @@ import {
56
56
  EnvironmentConfigLoader,
57
57
  EnvironmentValidator,
58
58
  execute
59
- } from "./chunk-B5OHK54H.js";
59
+ } from "./chunk-KZP4GK6K.js";
60
60
  import {
61
61
  cloudCancel,
62
62
  cloudLogs,
@@ -4061,7 +4061,7 @@ async function continueWithCurrentTask(cwd) {
4061
4061
  console.log(chalk5.dim(`
4062
4062
  Continuing with ${nextAtom.externalId}...
4063
4063
  `));
4064
- const { execute: execute2 } = await import("./execute-QCEAXLVH.js");
4064
+ const { execute: execute2 } = await import("./execute-HXE6WQFQ.js");
4065
4065
  await execute2(nextAtom.externalId, { nonTerminating: true });
4066
4066
  }
4067
4067
  async function replanLatestBlockedAtom(cwd) {
@@ -4356,7 +4356,7 @@ async function executeNext() {
4356
4356
  const atomId = await prompt("Enter atom ID to execute (or press Enter for first pending)");
4357
4357
  const targetId = atomId.trim() || pendingAtoms[0]?.id;
4358
4358
  if (targetId) {
4359
- const { execute: execute2 } = await import("./execute-QCEAXLVH.js");
4359
+ const { execute: execute2 } = await import("./execute-HXE6WQFQ.js");
4360
4360
  await execute2(targetId, {});
4361
4361
  } else {
4362
4362
  console.log(chalk5.yellow("No atom to execute."));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "archondev",
3
- "version": "2.19.36",
3
+ "version": "2.19.37",
4
4
  "description": "Local-first AI-powered development governance system",
5
5
  "main": "dist/index.js",
6
6
  "bin": {