Skip to content

feat(runtime): ship an independent transport-neutral field-node profile #401

Description

@forkwright

Finding

Akroasis planning promises grid-down PACE behavior and future disconnected
state convergence, but the old multi-transport field-node outline has no live
owner. Mesh-local custody is correctly owned by #397 and state convergence by
#398; neither owns an independent field runtime or transport-neutral PACE
execution.

Desired correction

Define a bounded field-node runtime profile that remains useful while
disconnected and executes Phase 08 PACE policy across configured, separately
qualified delivery adapters.

  • Keep policy selection in praxis; the runtime reports adapter health and
    executes an explicit selected route without becoming a second policy owner.
  • Keep mesh custody/retry semantics in feat(kerykeion): survive partitions with durable custody-aware message delivery #397. Other transports earn separate
    adapters and acceptance before they can be advertised; no archived HF,
    internet, USB, payload-size, routing-algorithm, or device-count assumption
    transfers by default.
  • Name local services and resource budgets required for independent operation,
    including bounded storage, CPU, memory, power-state inputs, and operator
    status.
  • Persist enough lifecycle/delivery state to recover after crash without
    silently duplicating an accepted non-idempotent action.
  • Keep cross-installation data merge semantics in feat(sync): converge field-node state after disconnected operation #398 rather than hiding them
    inside message delivery.

Done when

  • A declared field profile starts with no upstream service and exposes honest
    local capability and degradation state.
  • An injected-clock multi-adapter simulator exercises adapter loss, PACE
    failover/hysteresis, reconnect, crash boundaries, bounded queues, and
    explicit terminal delivery outcomes without hardware.
  • Runtime status distinguishes unavailable, unhealthy, withheld, and selected
    adapters, and never advertises a transport whose qualification is absent.

Boundary

Future/dependency-gated. It does not pull #397 or #398 ahead of older Phase
acceptance, and it does not authorize hardware activity.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions