Post-alpha.6 roadmap · planning record

From one host to explicit network boundaries

Constellation already has exact identities, bounded authorization, durable attempt custody, reconciliation, signed local RPC, and versioned records. Its qualified composition is nevertheless local. This roadmap names the contracts and evidence required before any network-separated composition is called supported.

What exists now

The current release qualifies one disposable Linux installation. Its manifest explicitly excludes production deployment, arbitrary executor/provider integration, and federation.

Roadmap progression

MilestoneDispositionDelivered capabilityCompletion evidence
1. Remote inspectionCommitted next-profile workAuthenticated, disclosure-controlled Phosphor access with TLS, explicit freshness/staleness, bounded responses, and audit records. Read credentials confer no proposal, authorization, or execution permission.A separately deployed reader and owner, identity/refusal fixtures, bounded-response checks, stale/unavailable cases, access logs, public operator instructions, and a deployment qualification record.
2. distributed-custody/v1Committed next-profile workNightshift/AG on a governance host; Docket and a local executor on an effect host; one exact short-lived authorization; signed custody and settlement responses; reconciliation of the same occurrence after response loss.Published schemas and golden vectors, the complete failure matrix below, a real two-host non-production run, public installation/recovery instructions, and an immutable compatibility manifest.
3. Remote evidence ingressCommitted next-profile work after custodyNQ/Pulse acquisition remains near the observed system. Evidence crosses the boundary with source identity, provenance, freshness, bounded ingress, durable deduplication, and explicit entitlement-to-assert.Named evidence profiles, issuer/audience enrollment, stale/missing/contradictory/refused cases, duplicate/restart qualification, provenance-preserving receipts, and a public two-host example. Evidence never deserializes into authority.
4. Claim federationCandidate follow-onA foreign governor can submit signed claims, provenance, and receipts. The receiving governor verifies them and re-adjudicates under local law; only its locally issued authority is spendable.A separately versioned claim-import profile, independent trust-domain fixtures, local acceptance and refusal evidence, and proof that a foreign claim or receipt cannot be spent directly.
5. Authority federationResearch-scale, deliberately deferredNo committed capability. Delegation, cross-domain authority spend, and shared settlement remain constitutional research questions, not a presumed consequence of claim federation.No release criterion is defined. A future proposal must first justify why claim import plus local re-adjudication is insufficient.

distributed-custody/v1

The first runtime split keeps the effect boundary local to its custodian:

governance host                         effect host
Nightshift → AG  ── exact signed grant ──→ Docket → local executor
                 ← custody / settlement ──

lost response ──→ inspect/reconcile the same occurrence
                  never submit replacement work

SSH may install software, enroll identities, and place configuration under an operator's deployment procedure. It is not the runtime execution protocol, does not carry a generic remote shell command as governed work, and cannot stand in for Docket custody.

Execution locality

An execution locality is an enrolled executor placement near the systems it may affect. Its network position, routing access, installed adapters, trust domain, and current operational reachability are qualification properties—not authority. The governing invariant is reachability does not confer authority.

This deliberately borrows the useful operational position of an install gateway or bastion without inheriting an ambient-authority model. It does not introduce a mandatory Constellation Gateway component, make arbitrary remote shell access a supported primitive, or require AG to have direct access to the effect network. The first proving composition below binds this concept to closed, versioned action adapters rather than a general command channel.

Required identities and contracts

Headline case: deliberate response loss

First proving composition

Use two independently restartable, non-production hosts or local VMs and a small closed vocabulary of reversible actions: pinned service deployment, restart, backup verification, projection rebuild, rollback, and cache invalidation. Each action needs its own sealed plan, preconditions, executor implementation, qualified observation, and reconciliation evidence; there is no arbitrary-command escape hatch.

The protocol remains application-neutral. No ATProto-specific repository, schema, maintenance declaration, or deployment assumption is part of distributed-custody/v1. Selection and binding of a concrete proving deployment are separate operator decisions.

If an ATProto proving deployment is selected separately, phlogiston.app names the actual software, demonstration, visualization, and operator surface; phlogiston.social names the ATProto identity, public social surface, and protocol-facing experiments. Neither identity is part of the shared custody protocol or evidence that production binding is complete.

The custody milestone may begin with evidence already admitted on the governance host and must say so. It does not claim general remote NQ/Pulse ingress until milestone 3 qualifies that boundary.

Required qualification cases

BoundaryCases that must be retainedRequired conclusion
Delivery and response lossRequest lost before Docket acceptance; request accepted but response lost; effect settled but settlement response lost.Pre-acceptance absence permits no inference. Accepted work is inspected/reconciled by its original identity. A lost response never causes replacement execution.
Replay and restartDuplicate delivery before and after restart; AG, Docket, and executor restart at every durable boundary.Identical delivery returns or reconstructs the same custody state; conflicting delivery refuses; terminal mechanics are not repeated.
Partitions and timePartition during execution and reconciliation; expired or not-yet-valid authorization; clock skew outside policy.Unavailable and indeterminate remain distinct. Expired/future grants and clocks outside policy refuse. Reconnection resumes inspection, not effect submission.
Identity and bindingWrong issuer, audience, occurrence, nonce, body digest, or protocol version; key rotation with old in-flight occurrences.Every mismatch refuses before new mechanics. Rotation follows the documented in-flight rule and cannot reinterpret an old occurrence.
Input and evidenceOversized or malformed messages; stale, missing, contradictory, or unauthorized evidence.The bounded parser and evidence boundary fail closed with typed outcomes. Evidence remains testimony, not permission.
Executor outcomesExecutor refusal, timeout, crash, and indeterminate outcome.Docket retains the exact attempt and evidence. Reconciliation does not invoke mechanics and never rewrites uncertainty as failure.
RecoveryBackup and restore at each documented quiescent boundary, including a settled occurrence.Restored state retains replay/deduplication and terminal markers; a settled effect is not repeated. Unsupported cross-version restore refuses or remains explicitly unqualified.

Dependency order and ownership

  1. Freeze semantics and vectors: AG and Docket jointly define the exact authorization/custody envelope, transcript, states, and shared conformance corpus. Existing authority and executor semantics remain owned by their current components.
  2. Qualify remote inspection independently: Phosphor/AG own read projection and bounded presentation; deployment owns TLS identity, disclosure policy, and audit retention.
  3. Build the custody boundary: AG owns judgment and issuance; Docket owns remote acceptance, durable attempt custody, inspection, settlement, and reconciliation; the executor owns only sealed local mechanics and factual receipts.
  4. Exercise two-host recovery: Nightshift owns the stable occurrence and continuation posture. Operators own host enrollment, service lifecycle, backups, clocks, and credential placement.
  5. Publish an experimental profile: the integration release owns exact pins, public reproduction, qualification references, and limitations. Component versions continue independently.
  6. Add remote evidence ingress: NQ owns evidence disposition; Pulse owns proposition-specific present support; acquisition stays near the observed system. Standing may supply entitlement-to-assert semantics only through an explicit consumer binding; it does not automatically become a network authority service.
  7. Consider claim federation: only after single-governor distributed custody and evidence ingress have operational evidence. The receiving AG remains the local judgment and authority owner.

OpenTelemetry / OTLP convergence

Use OpenTelemetry as the preferred commodity observability substrate across the operational family where it fits. Use standard OTel APIs and semantic conventions for ordinary traces, metrics, and logs, and prefer OTLP for telemetry interchange/export. Preserve every component's authority, custody, admissibility, expiry, coverage, refusal, and judgment semantics above that substrate. OTLP carriage does not make telemetry authoritative state.

Two related tracks stay distinct. A service may emit ordinary operational telemetry directly to an enrolled collector; it does not pass through Monitor or Pulse merely to report a trace. Monitor/Pulse has a separate possible role: carrying exact OTLP bytes as a governed observation payload with additional evidence semantics.

A. Constellation instrumentation survey

AG and NQ already depend on Rust tracing and tracing-subscriber, but current use is limited to a small number of startup and service call paths. That is an implementation foothold, not a shared observability profile.

Completion evidence: one component-by-component inventory tied to current revisions, a proposed convention with disclosure and cardinality bounds, one deterministic local exporter exercise, and an explicit keep/replace/delete disposition for each active bespoke path. No fleet-wide migration follows automatically.

B. Monitor/Pulse EvidenceEnvelope<OTLP> experiment

EvidenceEnvelope<OTLP> is shorthand for using Monitor's existing ObservationCustodyEnvelopeV1; it is not a proposal for a new generic envelope framework. Source inspection found that the envelope already retains opaque payload_hex, a byte-exact payload_digest under transport.observation-payload.v1, observation kind, source/session identities, sequence, and qualification bindings. Pulse separately retains subject/observer incarnations, policy generation, coverage, validity, judgment, and consumer-relative reliance semantics. The canonical Monitor repository publishes the current implementation and hosted Pulse subsystem. Older Nightshift source cuts remain pinned compatibility exports for immutable released profiles; they are not the canonical development source.

Completion evidence: a frozen OTLP metrics fixture; received-byte and transport-digest identity; admitted and rejected cases; exact size measurements; an unchanged-byte stock-consumer read; and confirmation that Pulse's existing coverage, freshness, reliance, refusal, and authority-free posture remain intact.

Scope decision and non-goals

Monitor's current normative scope excludes generic observability ingestion and OpenTelemetry compatibility. Before Track B begins, an explicit bounded decision must establish that one opaque OTLP payload experiment does not turn Monitor into an OTel-compatible monitoring product. This roadmap records the question; it does not amend that scope boundary.

The survey and bounded experiment may proceed independently of the numbered distribution milestones once separately authorized. A broad migration waits for their results and is neither required for distributed-custody/v1 nor implied by this roadmap.

Open-decision register

These decisions are prerequisites for implementation. The roadmap deliberately does not decide them by implication.

IDDecisionMust preserve
DC-01Wire protocol and TLS termination placement.Bounded framing, channel confidentiality, endpoint authentication, retained end-to-end application signatures, and no authority in the proxy.
DC-02Trust-domain/realm identity and issuer/audience enrollment format.Explicit trust roots, no “same network” trust, no transitive or cross-realm trust by default, and recoverable key rotation.
DC-03Application-signature transcript and canonical body digest.Domain separation, exact version/body/audience binding, common golden vectors, and no rebasing of existing alpha.6 artifacts.
DC-04Atomic boundary between nonce consumption, Docket acceptance, and durable response custody.No accepted occurrence can become replayable after restart; uncertain commit remains reconcilable.
DC-05Cancellation and expiry after Docket acceptance.No implication that a cancellation request stopped mechanics; no retroactive rewrite of an already valid custody decision.
DC-06Clock source, maximum skew, authorization lifetime, and behavior during clock uncertainty.Typed fail-closed behavior without turning clock availability into authority.
DC-07Restore, migration, rollback, and key/state recovery support matrix.Terminal attempts and deduplication survive supported restoration; unsupported version transitions are refused and documented.
DC-08Which notifications are required for supported operation.Delivery remains separate from evidence, settlement, and authority; ambiguous delivery cannot cause recursive alerting or effect retry.
DC-09Exact first action adapters and proving environment.Closed reversible actions, disposable non-production targets, no application-specific semantics in the protocol, and no generic remote command runner.
DC-10Execution-locality enrollment, stable identity, relocation, and failover.A moved or replacement executor cannot inherit an occurrence implicitly; locality change and executor succession cannot create duplicate effects.
DC-11Evidence and freshness for routing, placement, reachability, and trust-domain claims.Operator attestation, mechanical measurement, or a composed rule must be named explicitly; stale or indeterminate topology never becomes permission.
DC-12Capability-schema discovery, version negotiation, and executor implementation succession.Only enrolled versions are executable; negotiation cannot silently widen work, audience, resources, or adapter behavior.
DC-13Locality key/credential custody, emergency isolation, and revocation.Credential possession and network access remain separate from authority; isolation and revocation have explicit in-flight occurrence and reconciliation rules.
DC-14Locality behavior under partition and response loss.Recovery inspects the same Docket occurrence and attempt; it never authorizes a replacement effect because a response disappeared.

Candidate and deferred work

Claim federation

A foreign governor may eventually submit a signed claim, provenance, and receipts through a versioned import profile. The receiver must authenticate the speaker, decide whether it may make that claim to that audience, verify freshness and provenance, and then perform fresh local judgment. A foreign acceptance, permission, or settlement record is never directly spendable by the receiving Docket.

Authority federation

Authority federation is not the default objective and is not a natural upgrade from claim federation. Before it could become a roadmap commitment, a concrete need would have to resolve delegation law, trust-root governance, revocation and freeze propagation, partitions, clock behavior, conflicting governors, shared budget accounting, duplicate/double-spend prevention, and final settlement ownership. Consensus or multi-writer authority is not introduced merely to make deployment symmetric.

Explicit non-goals

Promotion from experimental to supported

distributed-custody/v1 may be described as supported only when all of the following are public and pass against one immutable integration manifest:

  1. The wire, identity, signature, custody, state-machine, and receipt contracts are versioned; two independently built endpoints consume the same positive and negative conformance vectors.
  2. The real two-host proving composition completes the closed action set and every required failure case above, especially deliberate response loss, without replacement execution.
  3. A clean public-only installation from exact source pins reproduces enrollment, start/stop/restart, inspection, execution custody, reconciliation, backup/restore where supported, and safe cleanup without private dependencies.
  4. Operator documentation covers configuration and credential references, clocks, rotation/revocation, state locations, logs, audit records, backup, recovery, migration/rollback limits, notification behavior, and existing-attempt inspection before retry.
  5. The immutable release manifest records exact component commits, contract/configuration versions, runtime/toolchain requirements, artifact digests where applicable, qualification evidence, tested topology, and limitations.
  6. All remaining unsupported behavior is explicit. Component tests, loopback demonstrations, transport success, or one favorable run cannot substitute for the two-host qualification evidence.

Smallest coherent implementation tranche: freeze DC-01 through DC-06 plus the minimum DC-10 through DC-14 execution-locality decisions, publish the common transcript and conformance corpus, and implement only AG→Docket acceptance/inspect/reconcile for one sealed local-copy-style executor while keeping Docket and that executor together. Bind the logical locality, trust domain, exact executor and capability version, audience, resource scope, and fresh placement qualification. Qualify the wrong-locality refusals, deliberate response loss, and restart before adding more action adapters or remote evidence ingress.