Phase 9 wiring: name the Hub project internet_control

The Hub routes by the project name in its human-owned routing.md, which
already names this project `internet_control` (the placeholder row from the
Hub brief). The frozen contract requires the /capabilities name to match that
row, so /capabilities now reports `internet_control` as well.

Found while wiring the live Hub (approved confirmation 60b235f3): the Hub
routed the screen-time question to `internet_control` and returned
`no_client` against a project registered as `internet_use_control`. Aligning
the name, rather than editing the Hub repository or its routing file, makes
the end-to-end round-trip work.

Live proof after the rename and the Hub registration:

  POST http://192.168.20.13:8788/ask
  {"text":"how long have the kids been on screen today?","asker":"sam","source":"console"}
  200 {"status":"ok","answer":"The kids have had 1h 22m of screen time today.",
       "route":{"kind":"project","project":"internet_control"}}

Repository, module and service names are unchanged; only the Hub-facing
project string changed.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-10-13 19:33:54 +11:00
parent 3cf353d933
commit 8c42daf4d9
4 changed files with 16 additions and 10 deletions

View File

@@ -90,7 +90,7 @@ func TestCapabilitiesRequiresToken(t *testing.T) {
if err := json.Unmarshal(rec.Body.Bytes(), &body); err != nil {
t.Fatalf("decode: %v", err)
}
if body.Project != "internet_use_control" {
if body.Project != "internet_control" {
t.Errorf("project = %q", body.Project)
}
if len(body.Topics) == 0 {
@@ -202,7 +202,7 @@ func TestNotifyDeliversThroughApprise(t *testing.T) {
srv, st := newHubTestApp(t, testHubToken, stub.URL)
rec := hubRequest(t, srv.Handler(), http.MethodPost, "/notify",
`{"from":"internet_use_control","level":"important","message":"3 emails need a decision.","person":"sam"}`,
`{"from":"internet_control","level":"important","message":"3 emails need a decision.","person":"sam"}`,
testHubToken)
if rec.Code != http.StatusOK {
t.Fatalf("status = %d, want 200 (%s)", rec.Code, rec.Body.String())