Skip to content

Surface licensed max_nodes oversell to operators — visibility without the slot-claim mechanism (ruled C on #8501) #12667

Description

@os-zhuang

Provenance: maintainer ruling 2026-08-27 (PM chat, decision-inbox batch 4, adjudication session session_01DKWDdUJ2XNRESVVWUvcpnh), verbatim: 「其他接受」 — adopting Option C on #8501: make a licensed max_nodes oversell VISIBLE to operators; the atomic slot-claim enforcement mechanism is deliberately NOT built now (deferred until real commercial pull — see the reopen triggers recorded on #8501).

Scope

Make an over-cap boot visible beyond the existing os serve log line: an operator-facing surface (console and/or telemetry) showing declared replicas vs the licensed cap, fed by the MultiNodeGate verdict vocabulary (admitted / refused / capped) that #8367 / PR #8503 landed. Visibility only:

First actions for the implementing dev (premise-first)

  1. Re-measure the three facts on today's tree before designing — the seam changed at feat(service-cluster): carry an admitted node count through the multi-node gate (#8367) #8503: gate consulted once per process at boot (packages/cli/src/commands/serve.ts), no cluster membership view (generateNodeId random per process), OS_CLUSTER_REPLICAS is an operator-declared count identical in every replica (split-brain-guard.ts).
  2. Establish where the reading can actually land: if the display half lands in objectui (console surface), stop and report for cross-repo splitting per contract-first — do not absorb a cross-repo feature into one PR.

Named reader: the domain:services seat (gate and cluster primitives live in packages/services/service-cluster); routing note for triage. Refs: #8501 (ruling + full four-facet record), #8367 / PR #8503 (the seam), #8504 (the serve-time loud warning, landed), objectstack-ai/cloud#1275 (the 2026-08-13 overflow-semantics ruling — unchanged).

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions