Skip to content

M4 — Capability negotiation + heartbeat + ack #13

@nficano

Description

@nficano

Goal

Capability negotiation + heartbeat + ack — the foundation v1.1 features that everything else negotiates against.

Scope

  • Arcp::Session::Feature constants module (9 entries), Feature::ALL.freeze
  • Arcp::Session::CapabilitySet Data.define with #intersect, #supports?
  • Arcp::Session::AgentInventory + AgentEntry with from_flat v1.0 compat
  • Hello/Welcome payloads carry features: and rich agents: shape
  • session.ping/session.pong payloads
  • HeartbeatLoop via Async::Task#sleep(interval); 2× silence → Arcp::Errors::HeartbeatLost
  • session.ack { last_processed_seq: }; Arcp::Runtime::EventLog#evict_up_to(seq)
  • Arcp::Errors::UnnegotiatedFeature (library-internal, never on the wire)
  • HeartbeatSpec, AckSpec, CapabilityNegotiationSpec
  • Samples: samples/heartbeat/, samples/ack_backpressure/, samples/capability_negotiation/
  • Diagrams: capability-negotiation.dot, heartbeat-flow.dot, ack-flow.dot
  • docs/concepts/heartbeats.md, docs/reference/capabilities.md
  • MIGRATION-v1.1.md first cut

Spec §

§6.2, §6.4, §6.5

Gate

Phase 07 §3.1, §3.2, §3.9 specs pass. bundle exec rake conformance adds rows for §6.2, §6.4, §6.5.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions