generated from coulomb/repo-seed
CORE-WP-0005-T04 prerequisites resolved: seed full Inter-Hub vocabulary; keep /hubs protected (ops-hub gate expects 401)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -35,12 +35,69 @@ WIDGET_TYPES = [
|
||||
CatalogItem(slug="status-summary", name="Status Summary"),
|
||||
CatalogItem(slug="workplan-board", name="Workplan Board"),
|
||||
CatalogItem(slug="event-stream", name="Event Stream"),
|
||||
# Inter-Hub compatibility vocabulary (CORE-WP-0005-T04 prerequisite 1):
|
||||
# the full legacy widget_type_registry so migrated widgets stay
|
||||
# referentially complete and legacy catalog consumers see a superset.
|
||||
CatalogItem(slug="action", name="Action Control", description="Button, link, or trigger widget"),
|
||||
CatalogItem(slug="chart", name="Chart", description="Data visualisation chart widget"),
|
||||
CatalogItem(slug="chat", name="Chat Region", description="Conversational interaction region"),
|
||||
CatalogItem(slug="diff", name="Diff / Review", description="Code diff or change review element"),
|
||||
CatalogItem(slug="form", name="Form", description="Data entry form widget"),
|
||||
CatalogItem(slug="ops-backup-set", name="ops-backup-set"),
|
||||
CatalogItem(slug="ops-cluster", name="ops-cluster"),
|
||||
CatalogItem(slug="ops-endpoint", name="ops-endpoint"),
|
||||
CatalogItem(slug="ops-environment", name="ops-environment"),
|
||||
CatalogItem(slug="ops-host", name="ops-host"),
|
||||
CatalogItem(slug="ops-incident", name="ops-incident"),
|
||||
CatalogItem(slug="ops-migration-wave", name="ops-migration-wave"),
|
||||
CatalogItem(slug="ops-readiness-gate", name="ops-readiness-gate"),
|
||||
CatalogItem(slug="ops-release", name="ops-release"),
|
||||
CatalogItem(slug="ops-risk", name="ops-risk"),
|
||||
CatalogItem(slug="ops-runbook", name="ops-runbook"),
|
||||
CatalogItem(slug="ops-secret-set", name="ops-secret-set"),
|
||||
CatalogItem(slug="ops-service", name="ops-service"),
|
||||
CatalogItem(slug="ops-service-catalog", name="ops-service-catalog"),
|
||||
CatalogItem(slug="panel", name="Status Panel", description="Summary or status information panel"),
|
||||
CatalogItem(slug="recommendation", name="Recommendation", description="AI or system recommendation block"),
|
||||
CatalogItem(slug="table", name="Table", description="Tabular data display widget"),
|
||||
CatalogItem(slug="workflow-step", name="Workflow Step", description="Single step in a multi-step workflow"),
|
||||
]
|
||||
|
||||
EVENT_TYPES = [
|
||||
CatalogItem(slug="interaction.event", name="Interaction Event"),
|
||||
CatalogItem(slug="workplan.progress", name="Workplan Progress"),
|
||||
CatalogItem(slug="evidence.recorded", name="Evidence Recorded"),
|
||||
# Inter-Hub compatibility vocabulary (see WIDGET_TYPES note).
|
||||
CatalogItem(slug="abandoned", name="Abandoned"),
|
||||
CatalogItem(slug="accepted_recommendation", name="Accepted Recommendation"),
|
||||
CatalogItem(slug="blocked_by_policy", name="Blocked by Policy"),
|
||||
CatalogItem(slug="clicked", name="Clicked"),
|
||||
CatalogItem(slug="commented", name="Commented"),
|
||||
CatalogItem(slug="escalated", name="Escalated"),
|
||||
CatalogItem(slug="failed", name="Failed"),
|
||||
CatalogItem(slug="flagged_confusing", name="Flagged Confusing"),
|
||||
CatalogItem(slug="flagged_helpful", name="Flagged Helpful"),
|
||||
CatalogItem(slug="focused", name="Focused"),
|
||||
CatalogItem(slug="ops-backup-verified", name="ops-backup-verified"),
|
||||
CatalogItem(slug="ops-drift-detected", name="ops-drift-detected"),
|
||||
CatalogItem(slug="ops-endpoint-verified", name="ops-endpoint-verified"),
|
||||
CatalogItem(slug="ops-health-checked", name="ops-health-checked"),
|
||||
CatalogItem(slug="ops-inventory-registered", name="ops-inventory-registered"),
|
||||
CatalogItem(slug="ops-inventory-updated", name="ops-inventory-updated"),
|
||||
CatalogItem(slug="ops-migration-gate-failed", name="ops-migration-gate-failed"),
|
||||
CatalogItem(slug="ops-migration-gate-passed", name="ops-migration-gate-passed"),
|
||||
CatalogItem(slug="ops-readiness-gate-updated", name="ops-readiness-gate-updated"),
|
||||
CatalogItem(slug="ops-release-observed", name="ops-release-observed"),
|
||||
CatalogItem(slug="ops-restore-tested", name="ops-restore-tested"),
|
||||
CatalogItem(slug="ops-risk-accepted", name="ops-risk-accepted"),
|
||||
CatalogItem(slug="ops-risk-raised", name="ops-risk-raised"),
|
||||
CatalogItem(slug="ops-runbook-executed", name="ops-runbook-executed"),
|
||||
CatalogItem(slug="ops-service-discovered", name="ops-service-discovered"),
|
||||
CatalogItem(slug="rejected_recommendation", name="Rejected Recommendation"),
|
||||
CatalogItem(slug="retracted", name="Retracted"),
|
||||
CatalogItem(slug="retried", name="Retried"),
|
||||
CatalogItem(slug="submitted", name="Submitted"),
|
||||
CatalogItem(slug="viewed", name="Viewed"),
|
||||
]
|
||||
|
||||
ANNOTATION_CATEGORIES = [
|
||||
|
||||
@@ -82,6 +82,24 @@ With operator approval, switch production traffic such as `hub.coulomb.social` t
|
||||
list must gain a token before cutover.
|
||||
3. Operator approval + rollback plan (existing gate).
|
||||
|
||||
**Prerequisite resolutions 2026-07-03:**
|
||||
|
||||
1. **Catalog gap — resolved by seeding.** Core Hub's catalogs are static
|
||||
in-code seeds (`seeds.py`), not DB registries, so extending the migration
|
||||
bundle schema was the wrong shape. Seeded the complete Inter-Hub
|
||||
vocabulary instead (23 widget types incl. all 7 orphaned `ops-*` types,
|
||||
30 event types) as an explicit Inter-Hub-compatibility block; existing
|
||||
Core Hub seeds retained. 22 tests pass. Migrated widgets are
|
||||
referentially complete once the new image ships.
|
||||
2. **Auth posture — resolved by keeping Core Hub protected.** Consumer
|
||||
audit found only two `/api/v2/hubs` status consumers:
|
||||
`ops-hub/interhub_gate_probe.py` **asserts 401** (it encodes the desired
|
||||
hardened contract and currently fails against Inter-Hub production,
|
||||
which serves 200), and `railiance-forge/tools/gitea-runner-status.sh`
|
||||
is informational. No anonymous consumer depends on a 200. Core Hub's
|
||||
protected listing is therefore an intentional hardening that satisfies
|
||||
the ops-hub gate at cutover; no code change made.
|
||||
|
||||
|
||||
## Progress 2026-07-02 — staging import completed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user