docs: close live projection convergence and retain capacity residual
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a07ff8-19d0-7820-b4d0-1353833cb7fc
This commit is contained in:
parent
b5920d85e3
commit
b0063abe18
3 changed files with 373 additions and 3 deletions
300
docs/evidence/2026-09-10-projection-convergence.json
Normal file
300
docs/evidence/2026-09-10-projection-convergence.json
Normal file
|
|
@ -0,0 +1,300 @@
|
|||
{
|
||||
"observed_at": "2026-09-10T14:32:10.814248+00:00",
|
||||
"status": "live-converged",
|
||||
"implementation_commits": {
|
||||
"state-hub": "0747b4d95b3d30a12c41de673912659e8fdd1654",
|
||||
"repo-manager": "00ce69fadaa4d6a5486b4b12cb0aa39e8d7ce4ee"
|
||||
},
|
||||
"tests": {
|
||||
"repo-manager": 188,
|
||||
"state-hub_projection_consistency_api": 242
|
||||
},
|
||||
"before": {
|
||||
"selected_tasks": 24,
|
||||
"drifted_tasks": 6
|
||||
},
|
||||
"after": {
|
||||
"observed_at": "2026-09-10T14:29:31.367440+00:00",
|
||||
"checked": 24,
|
||||
"drifted_tasks": 0,
|
||||
"manual_task_patches": 0,
|
||||
"tasks": [
|
||||
{
|
||||
"task": "SECRETS-WP-0008-T01",
|
||||
"status": "done",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "SECRETS-WP-0008-T02",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "SECRETS-WP-0008-T03",
|
||||
"status": "done",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "SECRETS-WP-0008-T04",
|
||||
"status": "done",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "SECRETS-WP-0008-T05",
|
||||
"status": "done",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "SECRETS-WP-0008-T06",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "SECRETS-WP-0009-T01",
|
||||
"status": "done",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "SECRETS-WP-0009-T02",
|
||||
"status": "done",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "SECRETS-WP-0009-T03",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "RPF-WP-0035-T01",
|
||||
"status": "done",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "RPF-WP-0035-T02",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "RPF-WP-0035-T03",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "RPF-WP-0035-T04",
|
||||
"status": "done",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "RPF-WP-0035-T05",
|
||||
"status": "done",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "RPF-WP-0035-T07",
|
||||
"status": "todo",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "RPF-WP-0035-T06",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "HFACT-WP-0001-T01",
|
||||
"status": "progress",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "HFACT-WP-0001-T02",
|
||||
"status": "progress",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "HFACT-WP-0001-T03",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "HFACT-WP-0001-T04",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "HFACT-WP-0001-T05",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "HFACT-WP-0001-T06",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "HFACT-WP-0001-T07",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
},
|
||||
{
|
||||
"task": "HFACT-WP-0001-T08",
|
||||
"status": "wait",
|
||||
"drift": []
|
||||
}
|
||||
]
|
||||
},
|
||||
"live_release": {
|
||||
"helm_revision": 63,
|
||||
"status": "deployed",
|
||||
"pods": [
|
||||
{
|
||||
"pod": "state-hub-bf8df7596-xm9lx",
|
||||
"ready": true,
|
||||
"image": "forgejo.coulomb.social/coulomb/state-hub:main-0747b4d",
|
||||
"image_id": "forgejo.coulomb.social/coulomb/state-hub@sha256:78828c9e85848538878a27d2e3e6bebfd0cc7192c0961c92c749b27acca7b6f5",
|
||||
"restarts": 0
|
||||
},
|
||||
{
|
||||
"pod": "state-hub-mcp-5f579c6589-fh99w",
|
||||
"ready": true,
|
||||
"image": "forgejo.coulomb.social/coulomb/state-hub:main-0747b4d",
|
||||
"image_id": "forgejo.coulomb.social/coulomb/state-hub@sha256:78828c9e85848538878a27d2e3e6bebfd0cc7192c0961c92c749b27acca7b6f5",
|
||||
"restarts": 0
|
||||
}
|
||||
],
|
||||
"health": {
|
||||
"status": "ok",
|
||||
"db": "connected",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01",
|
||||
"schema": {
|
||||
"status": "ok",
|
||||
"applied": "b5e6f7a8c9d0",
|
||||
"expected": "b5e6f7a8c9d0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"independent_rederivation": {
|
||||
"observed_at": "2026-09-10T14:30:00.843952+00:00",
|
||||
"independent_request_keys": true,
|
||||
"receipts": [
|
||||
{
|
||||
"schema": "state-hub.repository-projection-reconcile.v1",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01",
|
||||
"expected_commit": "d1c13b5dd667bcad453c94564f65bdf5f172ba3b",
|
||||
"derived_commit": "d1c13b5dd667bcad453c94564f65bdf5f172ba3b",
|
||||
"outcome": {
|
||||
"schema": "state-hub.projection-reset.v1",
|
||||
"repo_slug": "secrets-engine",
|
||||
"commit": "d1c13b5dd667bcad453c94564f65bdf5f172ba3b",
|
||||
"status": "noop",
|
||||
"counts": {
|
||||
"created": 0,
|
||||
"updated": 0,
|
||||
"retired": 0,
|
||||
"refused": 0,
|
||||
"released": 0,
|
||||
"created_tasks": 0,
|
||||
"updated_tasks": 0,
|
||||
"cancelled_tasks": 0
|
||||
},
|
||||
"created": [],
|
||||
"updated": [],
|
||||
"retired": [],
|
||||
"released": [],
|
||||
"created_tasks": [],
|
||||
"updated_tasks": [],
|
||||
"cancelled_tasks": [],
|
||||
"refused": [],
|
||||
"notes": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"schema": "state-hub.repository-projection-reconcile.v1",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01",
|
||||
"expected_commit": "d3a502b45cebc0a658d0ee7499f1cfcf2a5902a4",
|
||||
"derived_commit": "d3a502b45cebc0a658d0ee7499f1cfcf2a5902a4",
|
||||
"outcome": {
|
||||
"schema": "state-hub.projection-reset.v1",
|
||||
"repo_slug": "railiance-platform",
|
||||
"commit": "d3a502b45cebc0a658d0ee7499f1cfcf2a5902a4",
|
||||
"status": "noop",
|
||||
"counts": {
|
||||
"created": 0,
|
||||
"updated": 0,
|
||||
"retired": 0,
|
||||
"refused": 0,
|
||||
"released": 0,
|
||||
"created_tasks": 0,
|
||||
"updated_tasks": 0,
|
||||
"cancelled_tasks": 0
|
||||
},
|
||||
"created": [],
|
||||
"updated": [],
|
||||
"retired": [],
|
||||
"released": [],
|
||||
"created_tasks": [],
|
||||
"updated_tasks": [],
|
||||
"cancelled_tasks": [],
|
||||
"refused": [],
|
||||
"notes": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"schema": "state-hub.repository-projection-reconcile.v1",
|
||||
"instance_role": "primary",
|
||||
"instance_label": "railiance01",
|
||||
"expected_commit": "c22cb9a87eebed341bad5214f6d4844e60485ddf",
|
||||
"derived_commit": "c22cb9a87eebed341bad5214f6d4844e60485ddf",
|
||||
"outcome": {
|
||||
"schema": "state-hub.projection-reset.v1",
|
||||
"repo_slug": "prj-helixforge-factory",
|
||||
"commit": "c22cb9a87eebed341bad5214f6d4844e60485ddf",
|
||||
"status": "noop",
|
||||
"counts": {
|
||||
"created": 0,
|
||||
"updated": 0,
|
||||
"retired": 0,
|
||||
"refused": 0,
|
||||
"released": 0,
|
||||
"created_tasks": 0,
|
||||
"updated_tasks": 0,
|
||||
"cancelled_tasks": 0
|
||||
},
|
||||
"created": [],
|
||||
"updated": [],
|
||||
"retired": [],
|
||||
"released": [],
|
||||
"created_tasks": [],
|
||||
"updated_tasks": [],
|
||||
"cancelled_tasks": [],
|
||||
"refused": [],
|
||||
"notes": []
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"capacity": {
|
||||
"node_allocatable_mcpu": 4000,
|
||||
"requested_before_mcpu": 3935,
|
||||
"requested_after_mcpu": 3895,
|
||||
"remaining_after_mcpu": 105,
|
||||
"api_surge_mcpu": 100,
|
||||
"mcp_request_before_mcpu": 50,
|
||||
"mcp_request_after_mcpu": 10,
|
||||
"mcp_limit_mcpu": 500,
|
||||
"sample_count": 1078,
|
||||
"coverage": "partial history within seven-day query window",
|
||||
"mcp_p99_mcpu": 2.350371109351198,
|
||||
"mcp_five_minute_peak_mcpu": 30.450431294722627,
|
||||
"failed_revision": 61,
|
||||
"healthy_atomic_rollback_revision": 62,
|
||||
"successful_revision": 63,
|
||||
"risk": "Reduced guaranteed share under contention; retain limits and review latency/errors/contention. Remaining release margin is narrow.",
|
||||
"residual": "STATE-WP-0091"
|
||||
},
|
||||
"factory_attempts": 0,
|
||||
"paid_provider_calls": 0,
|
||||
"manual_task_patches": 0,
|
||||
"dispatch_enabled": false
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Preserve task descriptions and explicit empty notes in Forge projection"
|
||||
domain: infotech
|
||||
repo: state-hub
|
||||
status: active
|
||||
status: finished
|
||||
owner: codex
|
||||
topic_slug: infotech
|
||||
created: "2026-09-10"
|
||||
|
|
@ -36,7 +36,7 @@ with the existing consistency parser and real PostgreSQL/API convergence.
|
|||
|
||||
```task
|
||||
id: STATE-WP-0090-T02
|
||||
status: progress
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "da0089fc-2c6f-52d7-91e9-83ee338caf2a"
|
||||
```
|
||||
|
|
@ -51,7 +51,7 @@ fields with zero manual task PATCH repairs. Preserve unrelated untracked evidenc
|
|||
|
||||
```task
|
||||
id: STATE-WP-0090-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "ac047cb8-fc56-5a2e-8a82-c5179f8cde8b"
|
||||
```
|
||||
|
|
@ -85,3 +85,16 @@ This reduces its guaranteed share under contention; bursts remain permitted.
|
|||
Nominal headroom becomes 105m, sufficient for this 100m API surge but too narrow
|
||||
to count as factory capacity admission. Broader capacity planning needs a live
|
||||
residual before closeout. No unrelated workload allocation is changed.
|
||||
|
||||
Completed: Helm revision 63 is deployed; API and MCP are Ready with the exact
|
||||
verified image digest, zero restarts and healthy primary/schema readback. Normal
|
||||
Repo Manager sync uses two requests per repository. All 24 selected source tasks
|
||||
match live fields with zero manual PATCH repairs. An independent request key
|
||||
forced another derivation for each repository: all three returned noop with zero
|
||||
changes. Platform's first derivation also corrected 30 tasks across its full repo;
|
||||
this is broader than the selected-chain comparison and is not a factory outcome.
|
||||
Evidence: docs/evidence/2026-09-10-projection-convergence.json.
|
||||
|
||||
Residual handed off before finish: STATE-WP-0091 owns repeatable rollout-headroom
|
||||
preflight, sustained MCP demand review and live shared-capacity handoff. HFACT T02
|
||||
retains selected-backlog readiness; native execution remains T01/T03/T04/T05/T06.
|
||||
|
|
|
|||
57
workplans/STATE-WP-0091-release-headroom.md
Normal file
57
workplans/STATE-WP-0091-release-headroom.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
id: STATE-WP-0091
|
||||
type: workplan
|
||||
title: "Check release headroom and retain a capacity allocation handoff"
|
||||
domain: infotech
|
||||
repo: state-hub
|
||||
status: ready
|
||||
owner: codex
|
||||
topic_slug: infotech
|
||||
created: "2026-09-10"
|
||||
updated: "2026-09-10"
|
||||
related: [STATE-WP-0090, RCLUSTER-WP-0014, RESOURCE-WP-0003, HFACT-WP-0001]
|
||||
---
|
||||
|
||||
Residual from STATE-WP-0090: revision 61 failed with Insufficient CPU even though
|
||||
runtime usage was modest. Revision 63 succeeded after a measured same-service
|
||||
MCP request adjustment. The single 4,000m node still reserves 3,895m (97.4%),
|
||||
leaving 105m against a 100m API surge. Existing cluster collection and portfolio
|
||||
contracts are finished inputs, not workplans to reopen. No factory capacity
|
||||
admission follows from this release.
|
||||
|
||||
## Check scheduling headroom before State Hub promotion
|
||||
|
||||
```task
|
||||
id: STATE-WP-0091-T01
|
||||
status: todo
|
||||
priority: high
|
||||
```
|
||||
|
||||
Add a read-only preflight to the existing promotion path. Reuse Kubernetes and
|
||||
railiance-cluster capacity evidence; check effective pod requests, init/overhead,
|
||||
placement constraints, rollout surge and migration-hook ordering. Report observed
|
||||
freshness, remaining CPU/memory and precise insufficient-capacity reasons before
|
||||
starting Helm. Do not claim a scheduling guarantee from an aggregate sum or lower
|
||||
requests automatically. Prove the observed 65m refusal and 105m narrowly sufficient
|
||||
case, including unrelated concurrent demand. Keep atomic rollback.
|
||||
|
||||
## Review sustained service demand and hand off shared capacity
|
||||
|
||||
```task
|
||||
id: STATE-WP-0091-T02
|
||||
status: todo
|
||||
priority: high
|
||||
```
|
||||
|
||||
State Hub owns its workload demand and release requirement. Check MCP latency,
|
||||
errors, CPU contention and coverage after the 50m-to-10m request change; its 500m
|
||||
limit, memory and replicas remain unchanged. The initial 1,078 five-minute samples
|
||||
are partial coverage, not a full week. Propose a durable release margin and hand
|
||||
any shared allocation or provisioning change to live records with railiance-cluster,
|
||||
railiance-platform and resource-control using their existing authority contracts.
|
||||
Include HFACT T01/T04 factory demand, other zero-request workloads and host usage;
|
||||
current aggregate reservation alone is not capacity admission. No unrelated
|
||||
allocation, procurement or scaling is authorized by this workplan. Close only
|
||||
after the repeatable preflight and explicit receiving work records are verified.
|
||||
|
||||
Evidence: docs/evidence/2026-09-10-projection-convergence.json.
|
||||
Loading…
Add table
Add a link
Reference in a new issue