Skip to content

No way to see another node's agent-comms, wire-mesh-core, or cc-peer version #198

Description

@Mearman

whoami/update only report this process's own agent-comms version (getOwnPackageVersion(), tool.ts:349). There's no way to ask a remote peer, and no way to see wire-mesh-core's or cc-peer's version for anyone, including yourself.

  • list_agents has no version column at all, for any peer.
  • Nothing gossips a peer's own agent-comms version. wire-mesh's peer-advert already has an open extension tail (the same one presence/status and capability-request/candidates already ride, per wire-mesh's own namespacing convention) - advertise this node's own agent-comms version under a namespaced key there, and have list_agents read it back for other peers.
  • wire-mesh-core's own version is being handled at the wire-mesh layer instead of duplicated here: peer-advert never self-advertises wire-mesh-core's own version wire-mesh#179 has wire-mesh-core self-advertise its own version automatically on every peer-advert, so agent-comms gets it for free rather than reading its own dependency's package.json and gossiping it itself.
  • wire-mesh's handshake carries MESH_PROTOCOL_VERSION (handshake.ts), a small wire-format negotiation integer, not @exadev/wire-mesh-core's own semver - unrelated to either of the above, leave it as-is.
  • cc-peer's version isn't advertisable yet for a fronted session or the cc-peer bridge, blocked on cc-peer adding a real version field to its registry entries (Registry entries have no field for cc-peer's own package version cc-peer#43). Once that lands, fold the fronted session's cc-peer version into the same gossip key.

whoami's own output for this node should show every version it actually knows (agent-comms, wire-mesh-core once #179 lands, and cc-peer when fronting/bridging), and list_agents should show what every other peer has advertised - that's the cached path.

Also want a cache-bust: a way to ask a specific peer for its current versions right now rather than trust whatever it last gossiped. ExaDev/wire-mesh#179 adds a version.get manage-command for exactly this at the wire-mesh layer - wire this up as its own action (e.g. query_version, target a device, get back a live answer over sendManageRequest rather than a directory read) so a caller can explicitly choose live-but-slower over cached-but-instant. Depends on wire-mesh#179 landing first.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions