Skip to content

feat(stack): a declaration names what its service answers; a squatter reads as occupied - #51

Merged
rodrigoteamx merged 1 commit into
mainfrom
t-0030/server-surfaces
Sep 28, 2026
Merged

rodrigoteamx merged 1 commit into
mainfrom
t-0030/server-surfaces

Conversation

@rodrigoteamx

Copy link
Copy Markdown
Contributor

A TCP connect only says that something accepts on a port. On a developer machine an unrelated next-server on :3000 made coa stack report the declared Mercure hub as up (greenhouse evidence/1035).

  • ServiceDeclaration may carry a ServiceSignature: one GET path and the statuses the service answers it with (a set, because the answer can depend on configuration — a Mercure hub answers a topic-less subscription with 400 when anonymous subscribers are allowed, 401 when a JWT is required).
  • StackReader asks it through a SignatureProbe when the port accepts: a match is up; anything else is the new state occupied, with the status in the new row key answered. Declarations without a signature read by TCP exactly as before.
  • HttpSignatureProbe reads the status line only (a service whose right answer is a stream does not hold the reader); no HTTP within 0.5 s is null, never an exception.

Measured on cattle (greenhouse evidence/1037): published 0.16.0 reads the next-server as up; this branch reads it occupied (answered 404), and reads real hubs (dunglas/mercure with/without anonymous, FrankenPHP 1.12.7's built-in hub) as up. Mutation controls in the suite. Additive; milpa/admin and milpa/agent-workspace PRs require it (>=0.17).

Greenhouse decisions/0504, evidence/1037.

…tter reads as occupied

A TCP connect only says that something accepts on the port. On a developer
machine a next-server on :3000 made the declared Mercure hub read as up
(greenhouse evidence/1035). A ServiceDeclaration may now carry a
ServiceSignature — one GET path and the statuses the service answers it
with — and StackReader asks it through a SignatureProbe: up when the answer
matches, the new state occupied (with the status it answered) when the port
accepts but answers otherwise. Declarations without a signature read by TCP
as before. HttpSignatureProbe reads the status line only, so a service whose
right answer is a stream does not hold the reader.

Greenhouse decisions/0504, evidence/1037.
@rodrigoteamx
rodrigoteamx merged commit 29f3af5 into main Sep 28, 2026
2 checks passed
@rodrigoteamx
rodrigoteamx deleted the t-0030/server-surfaces branch September 28, 2026 23:21
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