state-hub/api/services
tegwick 0b473c1bda
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Build and Publish Multi-Context Image / build-and-push (push) Successful in 1m3s
STATE-WP-0101-T02/T03: decision classes, evidence refusals, write-back route
T02: additive migration d5e6f7a8b9c0 (decision_class, memo_id,
approval_id, resolution_source, resolution_evidence, evidence_refs,
CHECKs, partial unique memo_id); typed evidence_refs; 409
evidence_required for text resolve, resolving PATCH fields and resolved
create on C1/C2; raise-only class; C3 refused as reserved.

T03: POST /decisions/{id}/resolve-evidence (link/resolve), projected
token verified by TokenReview with audience
state-hub-decision-writeback and an exact subject allowlist; outcome
record v1 validation, 8 KiB bound, secret scan; idempotent on
(decision_id, memo_id). Off by default (DECISION_WRITEBACK_ENABLED).
Tests use a fake reviewer; full suite 1286 passed.

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

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 5502@bnt-lap001
Assistant-Session: 68b3b02f-5d0f-4e71-8421-796f62e50196
2026-11-01 04:01:48 +01:00
..
token_sources Fixed and improved token tracking 2026-05-23 13:59:05 +02:00
__init__.py Implement RecentlyOnScope domain digest 2026-05-22 13:45:53 +02:00
consistency_sweep.py finish(STATE-WP-0064): cut over scheduler and split sweep errors from failures 2026-06-22 01:20:59 +02:00
decision_writeback.py STATE-WP-0101-T02/T03: decision classes, evidence refusals, write-back route 2026-11-01 04:01:48 +01:00
execution_queue.py fix(retirement): close projection and launch contract gaps 2026-08-23 00:52:18 +02:00
fabric_graph.py add Fabric read model rollback activation 2026-08-31 23:07:10 +02:00
forge_credential.py feat(forge): resolve an optional forge read credential (STATE-WP-0084-T02/T03) 2026-08-27 23:12:57 +02:00
forge_projection.py Guard Forge retirement with an exact expected UUID set 2026-10-05 01:46:06 +02:00
forge_repository.py repository-rename verify: accept descendant heads and retired dispatch after source-synced 2026-09-30 19:37:35 +02:00
historical_projection.py fix(consistency): preserve immutable historical binding rows 2026-10-17 02:26:29 +02:00
informed_decision_contract.py Implement private State Hub decision dispatch with durable replay 2026-10-04 22:36:05 +02:00
legacy_compat.py feat(api): retire phase-1/2 /workstreams REST aliases with 410 stranglers 2026-07-10 13:31:57 +02:00
legacy_meter.py feat(legacy-meter): scale retirement quiet period to call volume 2026-08-20 07:13:44 +02:00
lifecycle.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
markitect_templates.py Implement RecentlyOnScope domain digest 2026-05-22 13:45:53 +02:00
memo_dispatch.py Implement private State Hub decision dispatch with durable replay 2026-10-04 22:36:05 +02:00
memo_forwarding.py Implement private State Hub decision dispatch with durable replay 2026-10-04 22:36:05 +02:00
memo_notification.py Add a dev memo-forwarding fixture and deduplicated intake notifications. 2026-10-03 21:25:46 +02:00
message_receipts.py STATE-WP-0093: per-recipient broadcast receipts and standing notices (T01-T06). 2026-09-22 00:26:33 +02:00
ops_run_projection.py Prepare State Hub retirement baseline 2026-08-09 16:19:53 +02:00
recently_on_scope.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
reconciliation.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
repo_manager_dual_run.py feat(retirement): route SBOM scans through repo-manager 2026-08-21 23:15:34 +02:00
repository_aliases.py fix: bound repository collection identity projection 2026-09-05 02:03:52 +02:00
repository_identity.py feat: persist repository rename identity 2026-08-28 22:08:21 +02:00
repository_rename.py repository-rename verify: accept descendant heads and retired dispatch after source-synced 2026-09-30 19:37:35 +02:00
review_contracts.py feat(review): add multi-owner contracts and receipts 2026-08-22 20:57:51 +02:00
sbom_nexus.py feat: route SBOM writes to Nexus behind flag 2026-08-22 19:55:08 +02:00
schema_state.py feat(deploy): run migrations as part of the release, and report schema state 2026-08-26 00:00:09 +02:00
suggestion_relevance.py Finish CUST-WP-0011 and implement STATE-WP-0061 suggestion backlog. 2026-07-06 10:52:49 +02:00
suggestion_wsjf.py Finish CUST-WP-0011 and implement STATE-WP-0061 suggestion backlog. 2026-07-06 10:52:49 +02:00
summary_cache.py feat: project Nexus SBOM state into summaries 2026-08-22 20:12:16 +02:00
task_record_id_backfill.py fix(backfill): qualify short task ids with their workplan 2026-08-26 02:17:46 +02:00
wait_kind.py CUST-WP-0074-T02 follow-up: blocked_on / wait_until reach the hub read model 2026-09-29 21:38:27 +02:00
work_record_identifier_migration.py CUST-WP-0074-T02: task wait qualifiers in the hub read model 2026-09-28 22:39:18 +02:00
workplan_files.py feat(classification-spine): implement STATE-WP-0065 repo-anchored model 2026-06-22 13:52:13 +02:00
write_idempotency.py feat: add fast forge work-record reconciliation 2026-08-30 22:38:54 +02:00