state-hub/tests
tegwick 7f41d42488
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Multi-Context Image / build-and-push (push) Successful in 28s
fix(backfill): qualify short task ids with their workplan
A task id written as a bare "T01" is unique only inside its own workplan.
Stored as a canonical identifier it makes every workplan's first task share one
identity: 51 such ids were assigned to 148 rows on central before this was
caught, found because identified rows outnumbered distinct identities.

Short ids are now qualified as WORKPLAN-ID-T01. A short id in a file with no
workplan id in frontmatter is left unidentified — an identity that is not unique
is worse than none, which is the same rule the rest of this module already
follows.

The 136 affected rows on central have been cleared so the corrected backfill can
reassign them; the backfill never overwrites an existing identity, so they had to
be nulled rather than re-derived over.

Refs STATE-WP-0083-T06

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-26 02:17:46 +02:00
..
__init__.py feat(state-hub): integrate llm-connect as dependency (S3.1) 2026-02-27 08:32:17 +01:00
conftest.py STATE-WP-0070 T03: remove legacy workstream MCP aliases 2026-07-13 09:29:12 +02:00
test_capability_requests.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
test_classification.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
test_codex_mcp_launcher.py Prepare State Hub retirement baseline 2026-08-09 16:19:53 +02:00
test_codex_mcp_server.py Prepare State Hub retirement baseline 2026-08-09 16:19:53 +02:00
test_configure_codex.py Prepare State Hub retirement baseline 2026-08-09 16:19:53 +02:00
test_consistency_check.py fix(consistency): preserve repository domain in briefs 2026-08-23 13:57:22 +02:00
test_consistency_sweep.py feat(STATE-WP-0064): start parallel week with source-tagged sweep runners 2026-06-21 21:46:43 +02:00
test_cors.py feat: add workplan aliases and legacy meter 2026-06-04 08:25:31 +02:00
test_doi_scope_health.py scope refactoring 2026-05-01 01:47:14 +02:00
test_edge_outbox.py feat(statehub): add offline write buffer relay 2026-06-25 13:44:27 +02:00
test_edge_read_cache.py feat(edge): add offline read cache for allowlisted State Hub GET routes 2026-07-09 01:04:15 +02:00
test_edge_relay.py feat(statehub): add offline write buffer relay 2026-06-25 13:44:27 +02:00
test_ensure_gitignore_claude_rules.py Add gitignore-claude template and wire into registration flows 2026-07-08 15:06:18 +02:00
test_forge_projection.py feat(projection): reconcile a repository's projection against the forge 2026-08-26 01:19:10 +02:00
test_hub_core_imports.py feat: reuse hub-core base schemas 2026-06-07 16:42:54 +02:00
test_ingest_sbom.py feat(sbom): CUST-WP-0013 — expand SBOM infra to terraform, ansible, and tool manifests 2026-03-12 04:40:26 +01:00
test_instance_identity.py fix(config): bind the instance-identity settings to the env vars the chart sets 2026-08-25 12:55:11 +02:00
test_intake.py feat(consistency): rebuild authoritative intake IDs 2026-08-22 12:23:43 +02:00
test_legacy_meter.py feat(legacy-meter): scale retirement quiet period to call volume 2026-08-20 07:13:44 +02:00
test_lifecycle.py feat(tasks): adopt canonical task statuses 2026-05-26 01:32:50 +02:00
test_llm_connect_integration.py feat(state-hub): integrate llm-connect as dependency (S3.1) 2026-02-27 08:32:17 +01:00
test_mcp_legacy_deprecation.py Prepare State Hub retirement baseline 2026-08-09 16:19:53 +02:00
test_mcp_queued_receipts.py feat(statehub): add offline write buffer relay 2026-06-25 13:44:27 +02:00
test_mcp_registration.py Rename MCP server identifier from state-hub to dev-hub 2026-06-22 20:46:14 +02:00
test_mcp_smoke.py STATE-WP-0070 T04 (partial): drop open_workstreams from /state/summary 2026-07-13 10:04:38 +02:00
test_mcp_write_tools.py STATE-WP-0070 T03: remove legacy workstream MCP aliases 2026-07-13 09:29:12 +02:00
test_ops_run_projection.py Prepare State Hub retirement baseline 2026-08-09 16:19:53 +02:00
test_policy_router.py feat: use hub-core policy router 2026-06-07 13:14:08 +02:00
test_promote_intake.py CUST-WP-0061-T03: the promotion transition (statehub promote-intake) 2026-07-21 01:06:01 +02:00
test_quality_assessment.py feat: DoX assessment recording and soft visibility (STATE-WP-0077) 2026-07-22 21:18:40 +02:00
test_recently_on_scope.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
test_reconciliation.py feat(tasks): adopt canonical task statuses 2026-05-26 01:32:50 +02:00
test_register_from_classification.py fix(classification): harden registration updates 2026-08-23 11:30:36 +02:00
test_repo_manager_workplan_adapter.py feat(retirement): route SBOM scans through repo-manager 2026-08-21 23:15:34 +02:00
test_repo_sync.py feat(consistency): T04 push seal — closed-loop writeback for automated commits 2026-04-21 01:43:40 +02:00
test_review_contracts.py feat(review): add multi-owner contracts and receipts 2026-08-22 20:57:51 +02:00
test_routers_core.py fix(classification): harden registration updates 2026-08-23 11:30:36 +02:00
test_routers_td_ep_contrib.py fix(api): normalize trailing slashes — no slash on param routes 2026-04-26 15:13:01 +02:00
test_sbom_nexus_compat.py feat: project Nexus SBOM state into summaries 2026-08-22 20:12:16 +02:00
test_schema_state.py feat(deploy): run migrations as part of the release, and report schema state 2026-08-26 00:00:09 +02:00
test_services_router.py STATE-WP-0062 T5: docs, first-party↔repo test, mark workplan finished 2026-06-19 21:16:37 +02:00
test_statehub_register_cli.py feat: delegate project register; registrar-only ID minting 2026-08-18 21:51:30 +02:00
test_suggestions.py feat(STATE-WP-0079): retire the suggestion-backlog surface (slice E1) 2026-08-20 08:11:14 +02:00
test_summary_cache.py STATE-WP-0070 T04 (partial): drop open_workstreams from /state/summary 2026-07-13 10:04:38 +02:00
test_task_bulk_status_sync.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
test_task_flow_engine.py STATE-WP-0069 T06: add workplan flow entity and prefer open_workplans 2026-07-08 21:26:29 +02:00
test_task_record_id_backfill.py fix(backfill): qualify short task ids with their workplan 2026-08-26 02:17:46 +02:00
test_todo_md_staleness.py Add GET /repos/todo-md-staleness for daily TODO.md review 2026-07-08 13:19:06 +02:00
test_token_events.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
test_token_passthrough.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
test_token_sources.py Fixed and improved token tracking 2026-05-23 13:59:05 +02:00
test_tpsc_router.py feat: use hub-core TPSC router 2026-06-07 14:08:55 +02:00
test_validate_repo_adr.py fix(project-rules): qualify ad-hoc record identifiers 2026-08-23 14:45:26 +02:00
test_work_record_check.py Test coverage for C-31 work-record sidetrack detector (CUST-WP-0060 review) 2026-07-20 23:09:40 +02:00
test_work_record_identifier_migration.py fix(retirement): close projection and launch contract gaps 2026-08-23 00:52:18 +02:00
test_work_record_index.py C-33: generated per-repo work-record index (CUST-WP-0061-T04) 2026-07-21 01:25:26 +02:00
test_work_record_registration.py C-32: fix-consistency registration for intake/decision work records (CUST-WP-0061-T02) 2026-07-21 00:48:10 +02:00
test_write_idempotency.py feat(statehub): add offline write buffer relay 2026-06-25 13:44:27 +02:00