Skip to content

fix(run): admission carries a module's declared page - #1252

Merged
antoinetoussaint-byte merged 1 commit into
mainfrom
fix/admission-carries-module-page
Oct 30, 2026
Merged

antoinetoussaint-byte merged 1 commit into
mainfrom
fix/admission-carries-module-page

Conversation

@antoinetoussaint-byte

Copy link
Copy Markdown
Contributor

What

A native run admits every selected module before the first consumer starts (admitSelected). Until now it rendered each manifest with the frontend deferred, so the page was removed. The authority (codefly-dev/authority at d0210535, authority-core/decide/manifest.go) admits a module's roles only when the module also declares a page: "module %q declares roles and no page". As a result, any module page that declares roles was refused at admission, and the run stopped before any service started. This reproduces with obin-ai/module-directory#13 on 0.1.229.

The fix:

  • Admission now builds each selected module's page bundle before taking the delivery lock, the same way a ready delivery does, and names that bundle in the admitted manifest.
  • The ready delivery reuses the bundle retained for unchanged inputs.
  • An early delivery falls back to the previously published payload only when it was given no bundle.

Classification

This is a fix in the code that owns the behaviour (the launcher's admission). The authority's rule is correct; the manifest the CLI sent at admission did not describe the module.

Reuse

It uses launcher.frontendBundle and LocalFrontend's input-keyed retention, and adds no new build path.

Tests

  • New test TestAdmissionCarriesADeclaredPage. It fails without the change (no admitted manifest carries a page) and passes with it, including a second admission that builds nothing.
  • go test ./cmd/run/ and go vet ./cmd/run/ pass.

Not verified

  • A full playground boot with a module page that declares roles. The module-directory page cannot yet be bundled from its committed tree (its sibling packages have no dist/), which is tracked on that PR.
  • No independent review yet.

🤖 Generated with Claude Code

A native run admits the whole selected closure before the first consumer
starts, and rendered every manifest there with its frontend deferred. The
authority admits a module's roles only beside its page ("module declares
roles and no page"), so a module page declaring roles was refused at
admission and the run stopped before any service started.

Admission now builds each selected module's page bundle before taking the
delivery lock, as a ready delivery does, and names it in the admitted
manifest; the ready delivery reuses the bundle retained for unchanged
inputs. An early delivery keeps a previously published payload only when it
was handed none.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@antoinetoussaint-byte
antoinetoussaint-byte added this pull request to the merge queue Oct 30, 2026
Merged via the queue into main with commit 452c8a7 Oct 30, 2026
19 checks passed
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.

1 participant