Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

I0913

The provider configuration is generated, and the cheap profile is declared

Where it stands

devtask.issue
Readiness
cancelled withdrawn
Status
CANCELLED
Can start
not now
Milestone
Milestone status
ACTIVE
Wave
3
Waiting on
none
Holds back
Behind it in all
9
Evidence
0 of 4
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I0913

majordomus plan verify I0913

majordomus plan done I0913

What it is

Objective
Generate the Fly configuration from the canonical object — application, region, port, resources, autostart and autostop, health check, concurrency — and declare the cheap cost profile as data that a reader and a check can both see.
Why
fly.toml at the repository root is excellent for a developer and unacceptable as a second source of truth. Generating it keeps the ergonomics and removes the drift; declaring the cost profile makes an expensive change deliberate and visible in review.
Now
Fly.io is not a target (owner order, 2026-10-12: Fly.io is disconnected; what ships is the release binaries, GitHub Pages and the GHCR image). fly.toml is no longer generated and is not in the tree; the deployment object carries no provider block and deployment/v1 refuses one. Nothing this issue asks for exists or is wanted any more; closing it is the owner's act. Before 2026-10-12 fly.toml was generated from .ai/repo/deployments/majordomus.yaml by majordomus generate deployment (measured on master 6042f4286, 2026-09-10). Measured on 722228ef3c, 2026-10-12.
Wanted
fly.toml is generated, marked as generated with its source and regeneration command, validated by the provider's own validator, and every value in it traces to the canonical object.
Done when
Cancelled 2026-10-14 on master e28daccd9b: its whole outcome is a generated fly.toml validated by `fly config validate`, and fly.toml has left the tree. 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).
Risk
The high-availability profile invites a second configuration file. It must be a derived override of the same base or documented prose, never a parallel file to maintain.

Acceptance

  • Every value in the generated configuration traces to the canonical object, and changing the object changes the configuration on regeneration
  • The generated file carries a header naming its source and its regeneration command without invalidating the format
  • The region is chosen deliberately for the intended audience and persisted in the canonical object rather than hardcoded in the projection
  • The cheap profile — one machine, shared CPU, the declared memory, minimum running zero, autostart on, autostop enabled, one region, no volume — is declared as data and asserted by a check
  • A service health check points at the canonical route with a startup grace period taken from the measured cold start
  • Concurrency limits follow the measured behaviour of the server rather than an arbitrary number
  • The provider's own configuration validator accepts the generated file
Validation
majordomus generate --checkfly config validate
Evidence required
generated_flytomlregion_from_speccheap_profilefly_config_validate
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
fly.tomlapps/majordomus-cli/src/deploy/fly.rs
Not
A second configuration file for a high-availability profileAny volume, extra service or extra address that the deployment does not requireAny secret value
Depends on
Priority
p0
Profile
implementation
Parallel safe
true
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-09-06
Updated
2026-10-14
Started
unknown: the record declares no `started_at`
Verified
unknown: the record declares no `verified_at`
Completed
unknown: the record declares no `completed_at`

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

Nothing is wrong with these records.