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
majordomus
The Majordomus layer, served from its container image
What it is
- URI
majordomus://deployment/majordomus- Kind
deployment- Identity
majordomus- Path
.ai/repo/deployments/majordomus.yaml- Provenance
- declared
- Media type
application/yaml- As a capability
- deployment.majordomus
Front matter
{
"schema": "deployment/v1",
"kind": "deployment",
"id": "majordomus",
"title": "The Majordomus layer, served from its container image",
"description": "The container image of this repository's executable, published to GHCR, serving the AI layer over HTTP and MCP; no hosting provider runs it.",
"status": "declared",
"application": "majordomus",
"build": {
"package": "majordomus-cli",
"binary": "majordomus",
"profile": "release",
"inputs": [
"apps/majordomus-cli",
"share",
".ai",
"docs",
"lib",
"bin",
"test",
"README.md",
"AGENTS.md",
"CLAUDE.md",
"CONTRIBUTING.md",
"SECURITY.md"
]
},
"listen": {
"port": 8080,
"interface": "all"
},
"health": {
"liveness": "/api/v1/live",
"readiness": "/api/v1/ready",
"grace_seconds": 2,
"interval_seconds": 15,
"timeout_seconds": 2
},
"resources": {
"cpu_kind": "shared",
"cpus": 1,
"memory_mb": 256
},
"machines": {
"count": 1,
"min_running": 0,
"autostart": true,
"autostop": true
},
"region": "fra",
"budgets": {
"blocking_check_ms": 25
},
"created_at": "2026-09-06",
"updated_at": "2026-10-12"
}Content
# The deployment of this repository's executable. Authoritative: the container image
# definition and its ignore file are generated from this file and `majordomus generate
# --check` fails when one of them is edited by hand.
#
# No hosting provider is a target (owner order, 2026-10-12: "disable Fly.io; deploy only
# binaries + GitHub Pages (+ the GHCR image); Fly.io is now disconnected"). This object
# named Fly.io in a `provider` block and fly.toml was rendered from it; nothing ever ran
# there, so `retired` ("it was deployed, and is kept for the record") would claim a past
# that did not happen. The block left the contract instead: a field nothing reads is
# removed (docs/SCHEMAS.md), and fly.toml is no longer generated. What still reads this
# object is the generated deploy/Dockerfile, built and smoke-tested by docker-image.yml and
# by release.yml's `image` job into ghcr.io, and the image's own `serve --deployment
# majordomus`, which takes its address from `listen`. `status: declared` stays true:
# nothing runs from this object. `region`, `machines` and `resources` are still required
# by deployment/v1 but no generated artifact reads them any more; whether they go too is
# the fly-deployment milestone's decision, not this change's.
schema: deployment/v1
kind: deployment
id: majordomus
title: The Majordomus layer, served from its container image
description: The container image of this repository's executable, published to GHCR, serving the AI layer over HTTP and MCP; no hosting provider runs it.
status: declared
application: majordomus
build:
package: majordomus-cli
binary: majordomus
profile: release
# The build context, and nothing else. The package's own directory is what the builder
# stage compiles; every other input is what the running process reads — the tool
# distribution, the layer, and the files this repository's source classes point at, so
# that the deployed index is the same shape as the one here.
inputs:
- apps/majordomus-cli
- share
- .ai
- docs
- lib
- bin
- test
- README.md
- AGENTS.md
- CLAUDE.md
- CONTRIBUTING.md
- SECURITY.md
# No `site:` yet. The image does not carry the built site, and declaring one it does not
# serve would be the drift this kind exists to prevent (I0912 owns it).
listen:
# One port. The process and the image both read this.
port: 8080
# A hosted process is reachable or it is nothing; `all` is the intent, not a suppressed
# warning. Local invocation keeps its loopback default and never reads this object.
interface: all
health:
# Registered capabilities, not router entries: every capability route lives under
# /api/v1/, so these are the paths the registry actually serves and the platform polls
# what OpenAPI, the reference and the smoke suite already know about.
liveness: /api/v1/live
readiness: /api/v1/ready
grace_seconds: 2
interval_seconds: 15
timeout_seconds: 2
resources:
cpu_kind: shared
cpus: 1
# A hypothesis until a measured run under it passes; I0922 decides the final number.
memory_mb: 256
machines:
count: 1
min_running: 0
autostart: true
autostop: true
region: fra
# Every budget below is written by the run that measured it; a number nobody measured
# would be a preference wearing a baseline's name. The size, cold-start and memory figures
# are not here yet because nothing has measured them (I0921, I0922, I0923).
budgets:
# `majordomus bench health.live` and `bench health.ready`, quick profile, debug build:
# p99 2.1 ms and 6.4 ms over HTTP. The ceiling leaves room for a loaded machine and is
# still an order of magnitude under any platform's check timeout.
blocking_check_ms: 25
created_at: 2026-09-06
updated_at: 2026-10-12