@adhdev/daemon-core 0.9.82-rc.79 → 0.9.82-rc.80

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adhdev/daemon-core",
3
- "version": "0.9.82-rc.79",
3
+ "version": "0.9.82-rc.80",
4
4
  "description": "ADHDev daemon core — CDP, IDE detection, providers, command execution",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1816,24 +1816,28 @@ export class DaemonCommandRouter {
1816
1816
  return nextStatus;
1817
1817
  });
1818
1818
 
1819
- if (!changed && !(options?.requireDirectPeerTruth && unavailableNodeIds.size > 0)) return snapshot;
1819
+ const aggregateDirectTruthSatisfied = sourceOfTruth.coordinatorOwnsLiveTruth === true
1820
+ || directPeerTruth.satisfied === true;
1821
+ if (!changed && !(options?.requireDirectPeerTruth && unavailableNodeIds.size > 0 && !aggregateDirectTruthSatisfied)) return snapshot;
1820
1822
  const nextSourceOfTruth = {
1821
1823
  ...sourceOfTruth,
1822
1824
  ...(Object.keys(directPeerTruth).length ? {
1823
1825
  directPeerTruth: {
1824
1826
  ...directPeerTruth,
1825
- satisfied: options?.requireDirectPeerTruth === true ? unavailableNodeIds.size === 0 : directPeerTruth.satisfied,
1827
+ satisfied: options?.requireDirectPeerTruth === true
1828
+ ? aggregateDirectTruthSatisfied || unavailableNodeIds.size === 0
1829
+ : directPeerTruth.satisfied,
1826
1830
  unavailableNodeIds: [...unavailableNodeIds],
1827
1831
  },
1828
1832
  ...(options?.requireDirectPeerTruth === true ? {
1829
- coordinatorOwnsLiveTruth: unavailableNodeIds.size === 0,
1830
- currentStatus: unavailableNodeIds.size === 0 ? 'live_git_and_session_probes' : 'direct_peer_truth_unavailable',
1833
+ coordinatorOwnsLiveTruth: aggregateDirectTruthSatisfied || unavailableNodeIds.size === 0,
1834
+ currentStatus: aggregateDirectTruthSatisfied || unavailableNodeIds.size === 0 ? 'live_git_and_session_probes' : 'direct_peer_truth_unavailable',
1831
1835
  } : {}),
1832
1836
  } : {}),
1833
1837
  };
1834
1838
  return {
1835
1839
  ...snapshot,
1836
- ...(options?.requireDirectPeerTruth === true && unavailableNodeIds.size > 0 ? {
1840
+ ...(options?.requireDirectPeerTruth === true && unavailableNodeIds.size > 0 && !aggregateDirectTruthSatisfied ? {
1837
1841
  success: false,
1838
1842
  code: 'mesh_direct_peer_truth_unavailable',
1839
1843
  error: 'Selected coordinator could not confirm direct mesh truth for every remote node yet.',
@@ -4851,7 +4855,7 @@ export class DaemonCommandRouter {
4851
4855
  ? { ...directTruth, unavailableNodeIds: [] as string[] }
4852
4856
  : directTruth;
4853
4857
  const directTruthSatisfied = !requireDirectPeerTruth
4854
- || (effectiveDirectTruth.directEvidenceCount > 0 && effectiveDirectTruth.unavailableNodeIds.length === 0);
4858
+ || effectiveDirectTruth.directEvidenceCount > 0;
4855
4859
  if (requireDirectPeerTruth && !directTruthSatisfied) {
4856
4860
  const failureResult = {
4857
4861
  success: false,
@@ -5144,6 +5148,7 @@ export class DaemonCommandRouter {
5144
5148
  peerAttemptedCount: effectiveDirectTruth.peerAttemptedCount,
5145
5149
  peerConfirmedCount: effectiveDirectTruth.peerConfirmedCount,
5146
5150
  unavailableNodeIds: effectiveDirectTruth.unavailableNodeIds,
5151
+ partialNodeFailures: effectiveDirectTruth.unavailableNodeIds,
5147
5152
  },
5148
5153
  } : {}),
5149
5154
  historicalEvidenceOnly: ['recoveryHints', 'ledger.summary', 'queue.summary'],