@adhdev/daemon-core 0.9.82-rc.513 → 0.9.82-rc.515
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/dist/config/mesh-config.d.ts +6 -1
- package/dist/detection/cli-detector.d.ts +7 -0
- package/dist/git/git-commands.d.ts +15 -1
- package/dist/index.js +109 -19
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +109 -19
- package/dist/index.mjs.map +1 -1
- package/dist/mesh/mesh-node-identity.d.ts +3 -0
- package/dist/mesh/mesh-node-slots.d.ts +29 -2
- package/dist/repo-mesh-types.d.ts +51 -0
- package/package.json +3 -3
- package/src/boot/daemon-lifecycle.ts +21 -5
- package/src/commands/high-family/mesh-status.ts +12 -0
- package/src/config/mesh-config.ts +12 -0
- package/src/detection/cli-detector.ts +21 -1
- package/src/git/git-commands.ts +36 -3
- package/src/mesh/mesh-node-identity.ts +79 -4
- package/src/mesh/mesh-node-slots.ts +56 -3
- package/src/repo-mesh-types.ts +52 -0
package/src/repo-mesh-types.ts
CHANGED
|
@@ -398,6 +398,40 @@ export interface RepoMeshRelatedRepo {
|
|
|
398
398
|
* (see migrateLoadedMeshConfig).
|
|
399
399
|
*/
|
|
400
400
|
|
|
401
|
+
/**
|
|
402
|
+
* Direction-B unified mirrored member state (REMOTE-NODE-SLOT-CAP-CHIP fix).
|
|
403
|
+
*
|
|
404
|
+
* A single self-reported observability envelope stamped by the daemon that OWNS a
|
|
405
|
+
* node's workspace and carried wholesale on the git_status envelope
|
|
406
|
+
* (reporterMemberState), replacing the fragmented per-field self-heal that mirrored
|
|
407
|
+
* providerVersions and daemonBuildVersion ad-hoc but silently dropped `slots`. The
|
|
408
|
+
* coordinator ingests this whole object onto the mirrored remote node in one place
|
|
409
|
+
* (mesh-node-identity.recordInlineMeshDirectGitTruth).
|
|
410
|
+
*
|
|
411
|
+
* Source-of-truth model: EACH NODE owns its own slots/versions locally; the
|
|
412
|
+
* coordinator is a pure mirror of a remote member's reported state. Its own
|
|
413
|
+
* join-time `policy` copy for a remote member is a stale empty `{}` and must never
|
|
414
|
+
* shadow this mirror (that would be a precedence inversion — see
|
|
415
|
+
* resolveNodeCapabilitySlots).
|
|
416
|
+
*/
|
|
417
|
+
export interface MeshReportedMemberState {
|
|
418
|
+
/** Reporter node's detected provider CLI/ACP versions (keyed by provider id). */
|
|
419
|
+
providerVersions?: Record<string, string>;
|
|
420
|
+
/** Reporter daemon's build version (getDaemonBuildInfo().version). */
|
|
421
|
+
daemonBuildVersion?: string;
|
|
422
|
+
/**
|
|
423
|
+
* Reporter node's OWN resolved capability slots (resolveNodeCapabilitySlots over
|
|
424
|
+
* its LOCAL real policy). This is the field the coordinator's join-time policy
|
|
425
|
+
* copy lacks for a remote member, and the reason remote slot-cap chips were
|
|
426
|
+
* missing. For a remote mirrored node this is authoritative over the (empty)
|
|
427
|
+
* local policy.slots; for the coordinator's own node the local policy is used
|
|
428
|
+
* directly (never mirrored here).
|
|
429
|
+
*/
|
|
430
|
+
slots?: NodeCapabilitySlot[];
|
|
431
|
+
/** Epoch ms the report was stamped; used for mirror staleness reasoning. */
|
|
432
|
+
lastReportedAt?: number;
|
|
433
|
+
}
|
|
434
|
+
|
|
401
435
|
export interface RepoMeshNodePolicy {
|
|
402
436
|
readOnly?: boolean;
|
|
403
437
|
canPush?: boolean;
|
|
@@ -915,6 +949,24 @@ export interface LocalMeshNodeEntry {
|
|
|
915
949
|
* owning daemon, carried on the git_status envelope (reporterDaemonBuildVersion)
|
|
916
950
|
* alongside the provider versions. Absent until first reported. */
|
|
917
951
|
reportedDaemonBuildVersion?: string;
|
|
952
|
+
/**
|
|
953
|
+
* Unified mirrored "member state" self-reported by the daemon that owns this
|
|
954
|
+
* node's workspace, carried wholesale on the git_status envelope
|
|
955
|
+
* (reporterMemberState) and ingested by the coordinator in one place. This is
|
|
956
|
+
* the Direction-B consolidation of the previously per-field self-heal
|
|
957
|
+
* (reportedProviderVersions, reportedDaemonBuildVersion — and now the node's
|
|
958
|
+
* OWN resolved capability `slots`, which the coordinator's join-time policy copy
|
|
959
|
+
* for a remote member does NOT carry). Each node owns its own slots/versions
|
|
960
|
+
* locally; the coordinator is a pure mirror of what a remote member reports over
|
|
961
|
+
* P2P — it must never treat its stale join-time policy copy as authoritative for
|
|
962
|
+
* a remote node's slots. The legacy flat fields above stay populated in parallel
|
|
963
|
+
* during rollout for back-compat (see mesh-node-identity ingest). `slots` is the
|
|
964
|
+
* reporter node's own resolved capability slots (resolveNodeCapabilitySlots over
|
|
965
|
+
* its LOCAL real policy). `lastReportedAt` is the epoch ms the report was
|
|
966
|
+
* stamped, so a partitioned node's mirror does not linger as fresh forever.
|
|
967
|
+
* Absent until the first envelope carrying it is ingested.
|
|
968
|
+
*/
|
|
969
|
+
reportedMemberState?: MeshReportedMemberState;
|
|
918
970
|
/**
|
|
919
971
|
* The operator-set machine nickname (config.machineNickname) of the daemon
|
|
920
972
|
* that owns this node's workspace. The local coordinator stamps its own
|