feat(T02-T11): IHF Phase 1 schema, controllers, views, and helpers

- Schema: hubs, widgets, widget_versions, interaction_events (append-only
  trigger), annotations, users — single migration file
- Web layer: Types, Routes, FrontController with auth + AutoRefresh layout
- Controllers: Hubs (CRUD), Widgets (CRUD + versioning), InteractionEvents
  (JSON capture, canonical event_type validation), Annotations (threaded,
  append-only)
- Sessions controller for IHP auth
- Views: Hubs (index/show/new/edit), Widgets (index/show/new/edit),
  Annotations (index/new), Sessions (login)
- widgetEnvelope helper with full data-* governance attributes
- Integration tests: Hub CRUD, Widget versioning, event capture, append-only
  guard, annotation threading, validation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-27 01:42:43 +00:00
parent ff11913d5c
commit c560e541c7
26 changed files with 1591 additions and 12 deletions

View File

@@ -51,7 +51,7 @@ Reference: `docs/ihp-overview.md`, `docs/ihp-data-and-queries.md`,
```task
id: IHUB-WP-0001-T01
status: todo
status: done
priority: high
state_hub_task_id: "e9e83628-d485-4163-9467-0d161f6274f3"
```
@@ -72,7 +72,7 @@ Set up the IHP project skeleton for inter-hub:
```task
id: IHUB-WP-0001-T02
status: todo
status: done
priority: high
state_hub_task_id: "e7254445-1375-44c3-9c59-111215b70692"
```
@@ -123,7 +123,7 @@ CREATE TABLE widget_versions (
```task
id: IHUB-WP-0001-T03
status: todo
status: done
priority: high
state_hub_task_id: "dac18955-7b2f-464f-97eb-0733c9163088"
```