Skip to content

Carry the generated catalogue into the served directory - #132

Merged
iderex merged 1 commit into
mainfrom
land-the-first-catalogue
Aug 23, 2026
Merged

Carry the generated catalogue into the served directory#132
iderex merged 1 commit into
mainfrom
land-the-first-catalogue

Conversation

@iderex

@iderex iderex commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Closes #131.

The generator has been able to build a catalogue since the disabled declaration
landed, and nothing had ever carried its output into docs/. The address an
operator pastes answered 404, and a Jellyfin server renders that as an empty
repository with no error at all.

The file is the run's output and not typed by hand

go run . publish

1 of 12 declared plugin(s) resolved with something to publish.
  1 disabled
  10 no releases

what each resolved plugin's releases came to:
  requests             1 version(s), 0 skipped, 0 stopping the run

manifest.json: wrote new bytes, carrying 1 plugin(s) and 1 version(s).

Exit status 0. What the placed file holds:

python -c "import json; d=json.load(open('docs/manifest.json',encoding='utf-8')); print(len(d),'entry'); [print(p['name'], p['guid'], p['owner'], [v['version'] for v in p['versions']]) for p in d]"
1 entry
Requests 0f9c9107-b31b-459e-81fa-6d35dac25e79 Flowfin ['0.1.0.0']

One entry and one version is the scope #65 settled on 2026-08-21. Flowfin in
the owner field is what entry 4 of #1 settled on 2026-08-22.

Both run 2026-08-23 against the tree at 8dc007d, which is origin/main at the
time this branch was cut.

The gate

go run . gate

gate examined 14 of 14 legs.
  build                            passed
  test                             passed
  format                           passed
  editorconfig                     passed
  tests-reach-nothing              passed
  no-hardcoded-names               passed
  site-fetches-nothing-outside     passed
  site-links-resolve               passed
  coverage                         passed
  site-declares-its-language       passed
  install-address-is-answered      passed
  colour-stands-off-every-surface  passed
  page-matches-the-token-file      passed
  pr-hygiene                       passed

Run 2026-08-23 with the change staged. The install-address-is-answered leg
passes because this change prints no address anywhere; it places the file the
address will answer with.

The harness did not run and was not asked for. Nothing in it gates a merge, and
the requirement that would exercise this file end to end against a real server is
needs-jellyfin, which is #54 and is open. So a green here does not say that a
Jellyfin server accepts this catalogue, and nothing in this change claims it
does.

The change is only the placed file

git diff --name-only origin/main...HEAD
docs/manifest.json

What this does not do

It does not record the address as answering. internal/address.Answered stays
empty, so no tracked file may print the address yet, and the quickstart in #55
still cannot be written. The reading that fills that list is taken after the host
has rebuilt, and it is a later step in decisions/release-procedure.md.

It does not deploy. The site is served from docs/ on the default branch by a
host this repository does not run, so the gap between this merge and the address
answering is real time that nothing here reports on.

It does not touch the served pages, sources/ or the generator.

Review

No second person has read this. That is stated rather than implied, and the
evidence above stands in place of a second reader: every claim carries the
command that produced it, and each command is one a reader can run against this
branch.

The publication verb has been able to build a catalogue since the disabled
declaration landed, and nothing had ever carried its output into `docs/`. The
address an operator pastes therefore answered 404, and a Jellyfin server renders
that as an empty repository with no error at all, which is indistinguishable
from a typo and from a project that is not ready.

`go run . publish` at 8dc007d exits 0 and writes one plugin and one version.
That is the scope #65 settled on 2026-08-21, and the owner field carries the
publishing organisation, which is what entry 4 of #1 settled on 2026-08-22.
The workflow that runs the verb on a schedule carries read-only permission and
pushes nothing, so a merge is the only route these bytes have.

What this prevents is the state where the generator, the gate and the schedule
are all green and the file an operator fetches does not exist.

It does not record the address as answering. That reading is taken after the
host has rebuilt, and it is a later step in decisions/release-procedure.md.

Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
@iderex
iderex merged commit 514c771 into main Aug 23, 2026
36 checks passed
@iderex
iderex deleted the land-the-first-catalogue branch August 23, 2026 02:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Land the first generated catalogue, so that the address has something to answer with

1 participant