Facts: name a repository owner/repository, without the forge's address (hq issue 288) #105

Merged
mesh-admin merged 2 commits from fix/facts-name-repositories-without-the-forge into main 2026-10-07 00:27:50 +00:00
Contributor

The facts snapshot promises no address. Every module's repository, its reads, and every sources entry still carried the clone URL, including the forge's private host and port. They are now kept as owner/repository (facts.RepositoryName, which handles http, ssh and scp-like forms).

Nothing the gate reads is lost: sameRepository matches by owner/name suffix. I checked this on the live facts with mesh-controller#104's controller. The facts were rewritten the same way and judged against a mesh-host change: the verdict and reach were identical (4 of 4 compose; rebuilds mesh-host, 1 tier).

This PR does not fix the rest of issue 288. Owners (one is a person's forge login), whole manifests (which name machines and domains) and a login in a settings value need a design answer, because a check reads them as they are.

Tests: TestARepositoryIsNamedWithoutTheForge; the facts, gate, check and plan tests pass.

novox/hq issue 288.

The facts snapshot promises no address. Every module's `repository`, its `reads`, and every `sources` entry still carried the clone URL, including the forge's private host and port. They are now kept as `owner/repository` (`facts.RepositoryName`, which handles http, ssh and scp-like forms). Nothing the gate reads is lost: `sameRepository` matches by owner/name suffix. I checked this on the live facts with mesh-controller#104's controller. The facts were rewritten the same way and judged against a mesh-host change: the verdict and reach were identical (4 of 4 compose; rebuilds mesh-host, 1 tier). This PR does not fix the rest of issue 288. Owners (one is a person's forge login), whole manifests (which name machines and domains) and a login in a settings value need a design answer, because a check reads them as they are. Tests: `TestARepositoryIsNamedWithoutTheForge`; the facts, gate, check and plan tests pass. novox/hq issue 288.
mesh-admin added 1 commit 2026-10-07 00:04:42 +00:00
Name a repository in the facts as owner/repository, without the forge's address
mesh/merge-gate error: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; the check could not run: a throwaway postgr…
mesh/repo-check error: the check could not run: a throwaway postgres:17-alpine could not be raised: docker run --label mesh.build=build-1791331512096605198…
mesh/delivery superseded: a newer head of the same pull request
3d7ccc8aeb
The snapshot promises no address, and every module's repository, reads and sources carried the URL the
mesh clones from. A check matches repositories by owner and name, so nothing it reads is lost (novox/hq
issue 288).
Author
Contributor

Delivery novox/mesh-controller@ec3769a8a669 — stopped since 2026-10-08T23:32:59Z

Covered: covered after its stop: a later walk that contains it was delivered: plan-1791658180097457523 (novox/mesh-controller at a2a671ad into main, done, contains its merge 099c176f)

Delivery plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-controller
  • tier 1: build-agent
  • tier 2: route-proxy
  • ace: receives build-agent, route-proxy
  • g14: receives build-agent
  • novox: receives mesh-controller, build-agent, route-proxy
  • shanks: receives build-agent
  • build-agent keeps data (ADR 0233): what it holds is backed up before it moves
  • route-proxy provides route: its consumers are sent again after it
  • route-proxy keeps data (ADR 0233): what it holds is backed up before it moves

Transitions

  • 2026-10-07 00:18 (new) → proposed (announced): novox/mesh-controller#105's head announced
  • 2026-10-07 00:26 proposed → checked (checked): the verdict names this commit
  • 2026-10-07 00:26 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-07 00:37 ready → held (hold): something holds it for a person: its group's composed check did not pass for the heads that merged, or it merged and no walk was opened for it
  • 2026-10-08 23:32 held → stopped (stop): covered: its merge 099c176fa9 is contained in cec797e996 which is delivered (walk plan-1791499975016484055); closed on the operator's word 2026-10-09; the held state came from no walk being opened for it — see hq issue to follow

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-controller@ec3769a8a669` — **stopped** since 2026-10-08T23:32:59Z **Covered**: covered after its stop: a later walk that contains it was delivered: plan-1791658180097457523 (novox/mesh-controller at a2a671ad into main, done, contains its merge 099c176f) **Delivery plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: mesh-controller - tier 1: build-agent - tier 2: route-proxy - ace: receives build-agent, route-proxy - g14: receives build-agent - novox: receives mesh-controller, build-agent, route-proxy - shanks: receives build-agent - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - route-proxy provides route: its consumers are sent again after it - route-proxy keeps data (ADR 0233): what it holds is backed up before it moves **Transitions** - 2026-10-07 00:18 (new) → proposed (announced): novox/mesh-controller#105's head announced - 2026-10-07 00:26 proposed → checked (checked): the verdict names this commit - 2026-10-07 00:26 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-07 00:37 ready → held (hold): something holds it for a person: its group's composed check did not pass for the heads that merged, or it merged and no walk was opened for it - 2026-10-08 23:32 held → stopped (stop): covered: its merge 099c176fa9a1 is contained in cec797e996b2 which is delivered (walk plan-1791499975016484055); closed on the operator's word 2026-10-09; the held state came from no walk being opened for it — see hq issue to follow The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
Author
Contributor

Merge check at 3d7ccc8a

  • mesh/merge-gate: ERROR — the check could not run: a throwaway postgres:17-alpine could not be raised: docker run --label mesh.build=build-1791331512096605198 -d --rm --name build-1791331512096605198-store -p 127.0.0.1::5432 -e POSTGRES_PASSWORD=check postgres:17-alpine: exit status 125 (modules: build-agent, mesh-controller, route-proxy)
  • mesh/repo-check: ERROR — the check could not run: a throwaway postgres:17-alpine could not be raised: docker run --label mesh.build=build-1791331512096605198 -d --rm --name build-1791331512096605198-store -p 127.0.0.1::5432 -e POSTGRES_PASSWORD=check postgres:17-alpine: exit status 125

Change plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-controller
  • tier 1: build-agent
  • tier 2: route-proxy
  • ace: receives build-agent, route-proxy
  • g14: receives build-agent
  • novox: receives mesh-controller, build-agent, route-proxy
  • shanks: receives build-agent
  • build-agent keeps data (ADR 0233): what it holds is backed up before it moves
  • route-proxy provides route: its consumers are sent again after it
  • route-proxy keeps data (ADR 0233): what it holds is backed up before it moves

Run by the build seat on novox as build-1791331512096605198 (builds --log build-1791331512096605198).

**Merge check** at `3d7ccc8a` - `mesh/merge-gate`: **ERROR** — the check could not run: a throwaway postgres:17-alpine could not be raised: docker run --label mesh.build=build-1791331512096605198 -d --rm --name build-1791331512096605198-store -p 127.0.0.1::5432 -e POSTGRES_PASSWORD=check postgres:17-alpine: exit status 125 (modules: build-agent, mesh-controller, route-proxy) - `mesh/repo-check`: **ERROR** — the check could not run: a throwaway postgres:17-alpine could not be raised: docker run --label mesh.build=build-1791331512096605198 -d --rm --name build-1791331512096605198-store -p 127.0.0.1::5432 -e POSTGRES_PASSWORD=check postgres:17-alpine: exit status 125 **Change plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: mesh-controller - tier 1: build-agent - tier 2: route-proxy - ace: receives build-agent, route-proxy - g14: receives build-agent - novox: receives mesh-controller, build-agent, route-proxy - shanks: receives build-agent - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - route-proxy provides route: its consumers are sent again after it - route-proxy keeps data (ADR 0233): what it holds is backed up before it moves Run by the build seat on novox as `build-1791331512096605198` (`builds --log build-1791331512096605198`).
jschoubben added 1 commit 2026-10-07 00:17:50 +00:00
Check again: the first check was redelivered mid-run and collided with its own store
mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery covered after its stop: a later walk that contains it was delivered: plan-1791658180097457523 (novox/mesh-controller at a2a671ad into main,…
ec3769a8a6
Author
Contributor

Merge check at ec3769a8

  • mesh/merge-gate: PASS — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy)
  • mesh/repo-check: PASS — its merge-check.sh passed

Change plan — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step

  • tier 0: mesh-controller
  • tier 1: build-agent
  • tier 2: route-proxy
  • ace: receives build-agent, route-proxy
  • g14: receives build-agent
  • novox: receives mesh-controller, build-agent, route-proxy
  • shanks: receives build-agent
  • build-agent keeps data (ADR 0233): what it holds is backed up before it moves
  • route-proxy provides route: its consumers are sent again after it
  • route-proxy keeps data (ADR 0233): what it holds is backed up before it moves

Run by the build seat on shanks as build-1791332298911091525 (builds --log build-1791332298911091525).

--- the gate: build-agent, mesh-controller, route-proxy
mesh-controller: ok, 45 tool(s)
1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here
judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-07T00:11:01Z says they run
composing every machine as the mesh is
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
composing every machine with the change
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued
merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose)
judged by controller development build against the facts of 2026-10-07T00:11:01Z

machines:
  - a machine (f35): composes
  - holds mesh-dns-resolver (idt): composes
  - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes
  - a machine (yvbpsm): composes

a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy
--- its merge-check.sh (go toolchain)
ok  	github.com/novox/mesh-controller/cmd/mesh-builder	1.035s
ok  	github.com/novox/mesh-controller/cmd/mesh-controller	378.039s
ok  	github.com/novox/mesh-controller/examples/objectstore-provisioner	1.027s
ok  	github.com/novox/mesh-controller/examples/postgres-provisioner	1.041s
ok  	github.com/novox/mesh-controller/examples/redis-provisioner	1.030s
ok  	github.com/novox/mesh-controller/examples/route-proxy	1.227s
ok  	github.com/novox/mesh-controller/internal/artifacts	1.081s
ok  	github.com/novox/mesh-controller/internal/broker	2.595s
ok  	github.com/novox/mesh-controller/internal/builder	1.481s
ok  	github.com/novox/mesh-controller/internal/catalogue	4.177s
ok  	github.com/novox/mesh-controller/internal/conditions	2.012s
ok  	github.com/novox/mesh-controller/internal/envfile	1.055s
ok  	github.com/novox/mesh-controller/internal/facts	1.059s
ok  	github.com/novox/mesh-controller/internal/identity	26.089s
ok  	github.com/novox/mesh-controller/internal/inventory	238.214s
ok  	github.com/novox/mesh-controller/internal/lease	17.689s
ok  	github.com/novox/mesh-controller/internal/licences	28.837s
ok  	github.com/novox/mesh-controller/internal/licences/adapters	1.061s
ok  	github.com/novox/mesh-controller/internal/link	83.469s
ok  	github.com/novox/mesh-controller/internal/lint	1.923s
ok  	github.com/novox/mesh-controller/internal/outward	1.085s
ok  	github.com/novox/mesh-controller/internal/overlay	1.075s
ok  	github.com/novox/mesh-controller/internal/secrets	1.537s
ok  	github.com/novox/mesh-controller/internal/store	10.099s
ok  	github.com/novox/mesh-controller/internal/testbus	1.227s
ok  	github.com/novox/mesh-controller/internal/token	1.014s
**Merge check** at `ec3769a8` - `mesh/merge-gate`: **PASS** — every machine composes with the change as it did without (4 of 4 compose) (modules: build-agent, mesh-controller, route-proxy) - `mesh/repo-check`: **PASS** — its merge-check.sh passed **Change plan** — builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step - tier 0: mesh-controller - tier 1: build-agent - tier 2: route-proxy - ace: receives build-agent, route-proxy - g14: receives build-agent - novox: receives mesh-controller, build-agent, route-proxy - shanks: receives build-agent - build-agent keeps data (ADR 0233): what it holds is backed up before it moves - route-proxy provides route: its consumers are sent again after it - route-proxy keeps data (ADR 0233): what it holds is backed up before it moves Run by the build seat on shanks as `build-1791332298911091525` (`builds --log build-1791332298911091525`). ``` --- the gate: build-agent, mesh-controller, route-proxy mesh-controller: ok, 45 tool(s) 1 manifest(s) checked. Judged against the seats this binary carries; a claim on one of the mesh's own seats is judged fully at registration, and a seat declared by a module not given here reads as unknown. Identities judged on a 6-character machine name, against the bounds of the providers given here judging 0 module(s) changed against 4 machine(s), as the snapshot of 2026-10-07T00:11:01Z says they run composing every machine as the mesh is the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued composing every machine with the change the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued the bus's user list leaves out 5 user(s) the mesh has minted no credential for: controller, node.f35, node.idt, node.ygcyr, node.yvbpsm. Each is a user that cannot connect until one is issued merge gate: PASS — every machine composes with the change as it did without (4 of 4 compose) judged by controller development build against the facts of 2026-10-07T00:11:01Z machines: - a machine (f35): composes - holds mesh-dns-resolver (idt): composes - holds git, holds mesh-artifact-store, holds mesh-broker, holds mesh-catalog, holds mesh-dns-resolver, holds mesh-store, holds mesh-vault, holds npm-package-registry, the control node, the hub (ygcyr): composes - a machine (yvbpsm): composes a merge would rebuild 3 module(s) in 3 tier(s): build-agent, mesh-controller, route-proxy --- its merge-check.sh (go toolchain) ok github.com/novox/mesh-controller/cmd/mesh-builder 1.035s ok github.com/novox/mesh-controller/cmd/mesh-controller 378.039s ok github.com/novox/mesh-controller/examples/objectstore-provisioner 1.027s ok github.com/novox/mesh-controller/examples/postgres-provisioner 1.041s ok github.com/novox/mesh-controller/examples/redis-provisioner 1.030s ok github.com/novox/mesh-controller/examples/route-proxy 1.227s ok github.com/novox/mesh-controller/internal/artifacts 1.081s ok github.com/novox/mesh-controller/internal/broker 2.595s ok github.com/novox/mesh-controller/internal/builder 1.481s ok github.com/novox/mesh-controller/internal/catalogue 4.177s ok github.com/novox/mesh-controller/internal/conditions 2.012s ok github.com/novox/mesh-controller/internal/envfile 1.055s ok github.com/novox/mesh-controller/internal/facts 1.059s ok github.com/novox/mesh-controller/internal/identity 26.089s ok github.com/novox/mesh-controller/internal/inventory 238.214s ok github.com/novox/mesh-controller/internal/lease 17.689s ok github.com/novox/mesh-controller/internal/licences 28.837s ok github.com/novox/mesh-controller/internal/licences/adapters 1.061s ok github.com/novox/mesh-controller/internal/link 83.469s ok github.com/novox/mesh-controller/internal/lint 1.923s ok github.com/novox/mesh-controller/internal/outward 1.085s ok github.com/novox/mesh-controller/internal/overlay 1.075s ok github.com/novox/mesh-controller/internal/secrets 1.537s ok github.com/novox/mesh-controller/internal/store 10.099s ok github.com/novox/mesh-controller/internal/testbus 1.227s ok github.com/novox/mesh-controller/internal/token 1.014s ```
mesh-admin merged commit 099c176fa9 into main 2026-10-07 00:27:50 +00:00
mesh-admin deleted branch fix/facts-name-repositories-without-the-forge 2026-10-07 00:27:50 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-controller#105