Import slugify_or_default from hub-core, add contract tests, vendor hub-core in Docker/Forgejo CI, document metadata isolation and pagination deferral, and align INTENT/SCOPE with three-repo stack.
109 lines
No EOL
2.8 KiB
Markdown
109 lines
No EOL
2.8 KiB
Markdown
---
|
|
id: CORE-WP-0009
|
|
type: workplan
|
|
title: "Hub-core adoption and ecosystem integration"
|
|
domain: infotech
|
|
repo: core-hub
|
|
status: finished
|
|
owner: codex
|
|
topic_slug: infotech
|
|
created: "2026-07-09"
|
|
updated: "2026-07-11"
|
|
state_hub_workstream_id: "75d9f8fd-088a-4634-bf05-9c20ecfd37ae"
|
|
---
|
|
|
|
# Hub-core adoption and ecosystem integration
|
|
|
|
Parent: `~/the-custodian/workplans/CUST-WP-0057-hub-ecosystem-consolidation.md`
|
|
|
|
## Goal
|
|
|
|
Adopt `hub-core` as an editable dependency and eliminate duplicate shared
|
|
utilities while keeping framework models in `core_hub`.
|
|
|
|
## Add hub-core dependency
|
|
|
|
```task
|
|
id: CORE-WP-0009-T01
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "5a9f1594-e3f1-4a53-a78a-2e4bbf4b9ee1"
|
|
```
|
|
|
|
Add `hub-core` to `pyproject.toml` with `[tool.uv.sources]` path dependency.
|
|
|
|
Done 2026-07-09: dependency and uv source added.
|
|
|
|
## Replace local slugify
|
|
|
|
```task
|
|
id: CORE-WP-0009-T02
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "1f3827b3-e2e6-4d99-88c6-a83361f579c7"
|
|
```
|
|
|
|
Import `slugify_or_default` from `hub_core.utils.slugs` in `api/v2.py`; remove
|
|
local `slugify()` and `re` import used only for slugs.
|
|
|
|
Done 2026-07-09: `api/v2.py` uses hub-core util.
|
|
|
|
## Contract test for hub-core pin
|
|
|
|
```task
|
|
id: CORE-WP-0009-T03
|
|
status: done
|
|
priority: high
|
|
state_hub_task_id: "00d83bfe-cb31-4111-be12-afe9e94e88b2"
|
|
```
|
|
|
|
Add `tests/test_hub_core_imports.py` proving hub-core utils import and version pin.
|
|
|
|
Done 2026-07-09: test added.
|
|
|
|
## Document metadata isolation
|
|
|
|
```task
|
|
id: CORE-WP-0009-T04
|
|
status: done
|
|
priority: medium
|
|
state_hub_task_id: "1d1735ca-4f9b-4c1a-bcbd-c1697e434a77"
|
|
```
|
|
|
|
Link `docs/specs/core-hub-architecture.md` boundary section to
|
|
`hub-core/docs/metadata-isolation.md`.
|
|
|
|
Done 2026-07-09: architecture spec updated.
|
|
|
|
## Evaluate pagination utility adoption
|
|
|
|
```task
|
|
id: CORE-WP-0009-T05
|
|
status: done
|
|
priority: low
|
|
state_hub_task_id: "b2e9ebcd-7bfe-4838-8f93-85fe5afbb155"
|
|
```
|
|
|
|
Assess `hub_core.utils.pagination` for `/api/v2` list endpoints that grow beyond
|
|
in-memory `page()` helper. Defer if no paginated DB queries yet.
|
|
|
|
Done 2026-07-09: `docs/specs/pagination-adoption.md` records deferral until list
|
|
endpoints need server-side limit/offset or compatibility spec adds query params.
|
|
Sync pagination in hub-core targets async SQLAlchemy when triggered.
|
|
|
|
## CI pin gate
|
|
|
|
```task
|
|
id: CORE-WP-0009-T06
|
|
status: done
|
|
priority: medium
|
|
state_hub_task_id: "f4c95bdb-6743-4abd-adbf-65f9cfc68bdf"
|
|
```
|
|
|
|
Ensure Forgejo CI installs hub-core from build context or path dep before
|
|
`pytest`. Document in `Makefile` alongside `the-custodian/scripts/hub-ecosystem-regression.sh`.
|
|
|
|
Done 2026-07-09: `.forgejo/workflows/ci-smoke.yaml` pytest job vendors hub-core
|
|
sibling checkout; `image.yaml` and `Dockerfile` vendor hub-core for container
|
|
builds; `Makefile` adds `hub-core-pin`, `ecosystem-regression`, and
|
|
`container-build` hub-core context. |