Skip to content

M4 — Capability negotiation + heartbeat + ack #13

@nficano

Description

@nficano

Goal

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

Scope

  • enum Feature: string (9 cases)
  • CapabilitySet value object with intersect() and supports()
  • AgentInventory + AgentEntry with fromFlat() v1.0 compat path
  • Hello/welcome carry features and rich agents shape
  • session.ping / session.pong
  • HeartbeatLoop via Revolt\EventLoop::repeat(), 2× silence → HeartbeatLostException
  • session.ack { last_processed_seq }; EventLog::evictUpTo($seq)
  • UnnegotiatedFeatureException (library-internal)
  • CapabilityNegotiationTest, HeartbeatTest, AckTest
  • Samples: samples/heartbeat/, samples/ack-backpressure/
  • 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 tests pass. composer conformance adds rows for §6.2, §6.4, §6.5; all pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions