Skip to content

fleet(#1376): serving advertisement — roster serving tag + device_type on boot #1379

Description

@jeonghun-jj-lee

Important

Problem — A peer's roster row currently has capabilities: [] and no device_type — the Fleet Manager's attach list can't show which machines have engines available to attach to.
Approach — On boot, a peer writes its roster serving tag + reach coordinates (placement descriptor) + device_type (from the #1368 self-report vocabulary) so the Fleet Manager and the resolver's keeper path see it as an attach candidate.
Scope — in: boot-time roster serving tag write, device_type population, placement descriptor reach coordinates. out: the resolver wiring (Slice 1), attach lifecycle (Slice 2).

Acceptance Criteria

  • A standalone (engine-armed) machine writes serving to its roster row's capabilities[] on boot
  • The row's device_type is populated using the fleet: self-reported device identity (friendly name + device type) in the roster #1368 self-report vocabulary
  • placementDescriptor(row) returns serving: true for the row
  • The roster row passes parseRosterRow validation
  • A machine that is NOT engine-armed (a hosted-only / never-fork client) does NOT write serving

Testing Decisions

Extend the existing fleet_roster.test.ts suite: add a case for boot-time serving write on an engine-armed machine, and a negative case for a never-fork client. Reuse placementDescriptor assertions already in the suite.

Key Decisions

  • serving is derived from being engine-armed, not a user toggle (H1). The user-facing toggle comes with the ADR 0029 surface-collapse follow-up.

Constraints & Invariants

  • The serving tag rides the existing capabilities[] axis (ADR 0026) — no new roster schema fields.
  • server_mode is unchanged; serving is orthogonal.

Prior Art

Source

Part of #1376. References #1341 (peer serving advertisement) as the original slice.

Activity

  1. added 2 commits that reference this issue on Sep 21, 2026
  2. added a commit that references this issue on Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions