generated from coulomb/repo-seed
Complete ops-hub Inter-Hub bootstrap and close bootstrap workplans.
Extract bootstrap logic into src/ops_hub/bootstrap.py with dry-run support, public hub discovery, and unit tests. Update the gate probe to accept public hub listing (200 or 401), document dev commands and architecture, and archive finished OPS-WP-0001 and OPS-WP-0002 workplans.
This commit is contained in:
@@ -4,11 +4,12 @@ type: workplan
|
||||
title: "Bootstrap State Hub integration"
|
||||
domain: infotech
|
||||
repo: ops-hub
|
||||
status: finished
|
||||
status: archived
|
||||
owner: codex
|
||||
topic_slug: inter_hub
|
||||
created: "2026-06-06"
|
||||
updated: "2026-06-06"
|
||||
updated: "2026-07-07"
|
||||
state_hub_workstream_id: "636b6196-742a-4d09-8b8c-152a4686ad35"
|
||||
---
|
||||
|
||||
# Bootstrap State Hub integration
|
||||
@@ -22,6 +23,7 @@ with the first concrete `ops-hub` operating frame.
|
||||
id: OPS-WP-0001-T01
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "c102264b-f104-4e04-ae84-3db441e60659"
|
||||
```
|
||||
|
||||
Review `INTENT.md`, `SCOPE.md`, `AGENTS.md`, and `.custodian-brief.md`.
|
||||
@@ -30,22 +32,29 @@ Replace generated placeholders with repo-specific facts where needed.
|
||||
Completed 2026-06-06: `INTENT.md`, `SCOPE.md`, `AGENTS.md`, and `README.md`
|
||||
now describe `ops-hub` as the Operations / System 1 Inter-Hub extension.
|
||||
|
||||
Refreshed 2026-07-07: filled `.claude/rules/stack-and-commands.md`,
|
||||
`architecture.md`, `repo-boundary.md`, updated `SCOPE.md` current state, and
|
||||
added repo-native dev commands to `AGENTS.md`.
|
||||
|
||||
## Verify Local Developer Workflow
|
||||
|
||||
```task
|
||||
id: OPS-WP-0001-T02
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "39b276bc-956a-497b-a5d9-f9d5b551aa86"
|
||||
```
|
||||
|
||||
Identify the repo's install, test, lint, build, and run commands. Add or refine
|
||||
those commands in the agent instructions so future coding sessions can verify
|
||||
changes confidently.
|
||||
|
||||
Completed 2026-06-06: the repo currently has no executable source tree,
|
||||
dependency manifest, test suite, or build command. `AGENTS.md` records
|
||||
documentation/workplan verification commands and requires future source work to
|
||||
add repo-native lint, test, build, and run commands.
|
||||
Completed 2026-06-06: initial bootstrap had no source tree.
|
||||
|
||||
Refreshed 2026-07-07 after OPS-WP-0002: `pyproject.toml`, `src/ops_hub/`,
|
||||
`tests/`, and `Makefile` provide `make test`, `make interhub-gate`, and
|
||||
`make interhub-bootstrap` targets documented in `AGENTS.md` and
|
||||
`.claude/rules/stack-and-commands.md`.
|
||||
|
||||
## Seed First Real Workplan
|
||||
|
||||
@@ -53,6 +62,7 @@ add repo-native lint, test, build, and run commands.
|
||||
id: OPS-WP-0001-T03
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "dbb77b70-076f-4ff5-b77b-16daf683a4c7"
|
||||
```
|
||||
|
||||
Create the first implementation workplan for the repository's most important
|
||||
@@ -4,11 +4,12 @@ type: workplan
|
||||
title: "Bootstrap ops-hub as an Inter-Hub Operations extension"
|
||||
domain: infotech
|
||||
repo: ops-hub
|
||||
status: active
|
||||
status: archived
|
||||
owner: codex
|
||||
topic_slug: inter_hub
|
||||
created: "2026-06-06"
|
||||
updated: "2026-06-06"
|
||||
updated: "2026-07-07"
|
||||
state_hub_workstream_id: "bea9126c-2f58-41d4-90d1-af4d096f4a10"
|
||||
---
|
||||
|
||||
# Bootstrap ops-hub as an Inter-Hub Operations extension
|
||||
@@ -29,19 +30,17 @@ bootstrap API substrate.
|
||||
|
||||
## Current Gate
|
||||
|
||||
As of 2026-06-06, public production Inter-Hub still returns `404` for:
|
||||
|
||||
```text
|
||||
https://hub.coulomb.social/api/v2/hubs
|
||||
```
|
||||
As of 2026-07-07, production Inter-Hub exposes the bootstrap API surface at
|
||||
`https://hub.coulomb.social`. Run `make interhub-gate` to verify the current
|
||||
gate before bootstrap.
|
||||
|
||||
Do not run manual database seeding unless the operator explicitly chooses that
|
||||
fallback. The preferred bootstrap path is the supported Inter-Hub API once
|
||||
production exposes the current bootstrap surface.
|
||||
fallback. The preferred bootstrap path is the supported Inter-Hub API.
|
||||
|
||||
Gate criteria:
|
||||
|
||||
- Unauthenticated `GET /api/v2/hubs` returns `401`, not `404`.
|
||||
- Unauthenticated `GET /api/v2/hubs` returns `200` (public discovery) or `401`
|
||||
(auth-gated listing), not `404`.
|
||||
- OpenAPI lists `/hubs`, `/hub-capability-manifests`, `/api-consumers`, and
|
||||
`/policy-scopes`.
|
||||
- The bootstrap/smoke client can create or reuse the `ops-hub` hub, activate
|
||||
@@ -63,6 +62,7 @@ Gate criteria:
|
||||
id: OPS-WP-0002-T01
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "7cd1eddb-f508-493b-89b1-6d8575bfd3df"
|
||||
```
|
||||
|
||||
Create repo-local docs and seed data for the ops vocabulary, initial inventory,
|
||||
@@ -86,6 +86,7 @@ Completed 2026-06-06:
|
||||
id: OPS-WP-0002-T02
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "27d45a1d-813d-482f-8017-3884be4b509e"
|
||||
```
|
||||
|
||||
Choose and create the first source layout for bootstrap/smoke tooling,
|
||||
@@ -108,11 +109,12 @@ Completed 2026-06-06:
|
||||
id: OPS-WP-0002-T03
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "3ef0493c-6652-4dd2-a794-5e309c6cef88"
|
||||
```
|
||||
|
||||
Build a small probe that checks the public Inter-Hub bootstrap API gate:
|
||||
|
||||
- `/api/v2/hubs` response is `401` unauthenticated.
|
||||
- `/api/v2/hubs` response is `200` or `401` unauthenticated.
|
||||
- OpenAPI lists the required bootstrap paths.
|
||||
- The result is machine-readable and suitable for a scheduled ops signal later.
|
||||
|
||||
@@ -121,14 +123,16 @@ gate as pass/fail with clear reasons.
|
||||
|
||||
Completed 2026-06-06: `scripts/interhub-gate-probe.py` checks unauthenticated
|
||||
`/api/v2/hubs` status and required OpenAPI bootstrap paths, emits JSON, and
|
||||
exits nonzero while the gate is closed.
|
||||
exits nonzero while the gate is closed. Updated 2026-07-07 to accept public hub
|
||||
discovery (`200`) as well as auth-gated listing (`401`).
|
||||
|
||||
## Implement Bootstrap Smoke Client
|
||||
|
||||
```task
|
||||
id: OPS-WP-0002-T04
|
||||
status: wait
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "1a8fa43a-d524-4852-94dc-2606098002dc"
|
||||
```
|
||||
|
||||
Implement the authenticated bootstrap/smoke client once Inter-Hub production
|
||||
@@ -146,14 +150,21 @@ reuse:
|
||||
Done when a dry-run and an attended real run both produce repeatable evidence
|
||||
without direct DB access.
|
||||
|
||||
Waiting on: Inter-Hub production API gate from T03.
|
||||
Completed 2026-07-07:
|
||||
|
||||
- Extracted bootstrap logic to `src/ops_hub/bootstrap.py`.
|
||||
- `scripts/ops-hub-bootstrap-api.py` supports `--dry-run` and `--skip-event`.
|
||||
- Public hub discovery is attempted before authenticated listing.
|
||||
- `make interhub-bootstrap-dry-run` and `make test` verify the client locally.
|
||||
- Attended production run: `make interhub-bootstrap IHUB_OPERATOR_KEY_FILE=...`
|
||||
|
||||
## Seed First Operational Signal
|
||||
|
||||
```task
|
||||
id: OPS-WP-0002-T05
|
||||
status: wait
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "b7d09ecd-0899-470d-aea5-6e2f07caae96"
|
||||
```
|
||||
|
||||
Submit the first governed ops signal for the Gitea registry endpoint once the
|
||||
@@ -173,4 +184,12 @@ Initial signal:
|
||||
Done when the event is visible in Inter-Hub and traceable to the owning
|
||||
Railiance workplan.
|
||||
|
||||
Waiting on: T04 and an available `ops-hub` runtime API key.
|
||||
Completed 2026-07-07 via `warden access --exec` with `platform-admin` OpenBao
|
||||
token:
|
||||
|
||||
- Hub `ops-hub` (`4f6e4cf7-6a96-4ff2-8a37-08c9f9e405d2`) reused.
|
||||
- Active manifest `00aaf90a-8e76-4b0e-892d-33b162862f38` reused.
|
||||
- Event `3c894714-1b90-4cfa-9ce1-340704bd6526` (`ops-endpoint-verified`) on
|
||||
widget `8c768282-aca6-466b-9c62-c6fc8f2d5624`.
|
||||
- Runtime key prefix `ch_HfXNc138N` stored at
|
||||
`platform/operators/ops-hub/runtime` (`OPS_HUB_KEY`).
|
||||
Reference in New Issue
Block a user