I3822 — A deployment that names a provider is observed at its own URL, and is active only while it serves master
served.observe defaults its url to the deployment object's provider.url and its identity to the object's health.liveness route when --deployment names an object with a provider; the publishing workflow observes after every push; the object's status moves from declared to active only on an observation that judged it serving master, and a stale or unreachable observation is a finding. ADR 0219 decision 5.
BLOCKED wave 2 · p1 · implementation profile · runs alone
Blocked. This issue cannot start until I3821 is done. The status is derived from that, not declared.
Objective
served.observe defaults its url to the deployment object's provider.url and its identity to the object's health.liveness route when --deployment names an object with a provider; the publishing workflow observes after every push; the object's status moves from declared to active only on an observation that judged it serving master, and a stale or unreachable observation is a finding. ADR 0219 decision 5.
Why
Today served.observe defaults to the Pages site and build.json; nothing ties an observation to the deployment object, so the hosted application's currency cannot be judged and its status is a hand-set word.
Current state
served.observe takes --url or falls back to site/config.toml's base_url with identity build.json; /api/v1/live already answers commit and dirty; the object's status is declared.
Desired state
majordomus served observe --deployment majordomus reads provider.url and health.liveness, judges the answer against master by containment and records it; case 3822 serves a fixture liveness answer and proves served, stale and unreachable verdicts; the status is set to active by a recorded observation, not by hand.
Scope
- apps/majordomus-cli/src/served.rs
- apps/majordomus-cli/src/capability/builtin/served.rs
- .ai/repo/deployments
- test/cases/3822_a_provider_deployment_is_observed_at_its_url.sh
- .ai/repo/project/issues/I3822.yaml
Dependencies
What waits on this
Acceptance criteria
- An object with a provider is observed at its url and liveness route without --url
- A deployment answering master is served, one answering an older commit is stale, one not answering is unreachable
- The status is active only while the newest observation is served
Validation
- env -u MAJORDOMUS_SHARE -u MAJORDOMUS_HTTP_HOST -u MJ_ROOT bash test/run.sh 3822_a_provider_deployment_is_observed_at_its_url
Evidence required
- observed_at_provider_url
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I3822.yaml. Read it back with majordomus plan show I3822.