Skip to content

I0931 — The application exists, one machine runs it, and the URL answers

Create or resolve the production application, deploy the cheap profile without accidental redundancy, verify the machine inventory and the resources against the declared policy, run the route-derived smoke suite against the public URL, and write the deployment report.

CANCELLED wave 7 · p0 · deep-work profile · runs alone

Part of fly-deployment — The container image is a projection of the repository model, and its smoke is its evidence.

Objective

Create or resolve the production application, deploy the cheap profile without accidental redundancy, verify the machine inventory and the resources against the declared policy, run the route-derived smoke suite against the public URL, and write the deployment report.

Why

Everything before this is preparation. A deployment that has never run is a hypothesis, and an exit code from a deploy command is not evidence that anything is being served.

Current state

No application exists at any provider.

Desired state

One application, one machine, the declared resources, the declared region, a public HTTPS URL that answers, a smoke suite that passes against it, and a machine-readable report of what was deployed.

Scope

  • .ai/repo/deployments

Out of scope

  • Creating a new application on any subsequent deploy
  • Mutating or deleting any unrelated application
  • Accepting a deploy command's exit code as verification

Dependencies

What waits on this

Acceptance criteria

  • The authenticated identity and organisation are inspected before anything is created, and an existing intended application is reused rather than duplicated
  • The application name is deterministic, and a global collision produces a stable derived name rather than an interactive dead end
  • The first deployment does not create redundant machines, and the inventory is inspected from machine-readable output rather than assumed
  • The machine count, CPU class, memory, region, autostart, autostop and minimum running are asserted against the declared cheap profile after the deployment
  • The public URL answers over HTTPS, redirects behave as intended, and static assets load
  • The route-derived smoke suite passes against the public URL, including the websocket, MCP and API surfaces that are served
  • A machine-readable deployment report records the application, the URL, the revision, the image, the region, the resources, the measured sizes and the smoke result, following the repository's artifact conventions

Validation

  • majordomus deploy
  • majordomus deploy status
  • majordomus deploy doctor

Evidence required

  • app_created
  • single_machine
  • remote_smoke
  • deployment_report

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Risk

This is the issue that spends money and touches a real account. It runs once the container evidence is in, and the inventory assertion is what keeps a mistake from billing indefinitely.

Completion report

Cancelled 2026-10-14 on master e28daccd9b: its outcome, the Fly application exists, one Machine runs it and its URL answers, is the Fly deployment itself. The owner disconnected Fly.io on 2026-10-12; this repository deploys release binaries, the GHCR image and GitHub Pages (commit 9af3fa65a4 removed fly.toml).

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/I0931.yaml. Read it back with majordomus plan show I0931.

Searches the titles and descriptions of every page this site publishes.