chore(consistency): sync task status from DB [auto]

Updated by fix-consistency on 2026-10-13:
  - update .custodian-brief.md for rapp-playwright

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a13590-a16f-7f60-be60-fd71627bc99d
This commit is contained in:
custodian-sync 2026-10-13 20:24:20 +02:00
parent e2705891ac
commit e9b63c307b
15 changed files with 409 additions and 20 deletions

View file

@ -0,0 +1,162 @@
{
"observed_at": "2026-10-13T18:01:35.319316+00:00",
"forgejo_image": "code.forgejo.org/forgejo/forgejo:11.0.3-rootless",
"traefik_version": "3.6.7",
"prior_explicit_read_timeout": false,
"failed_blob_puts": [
{
"timestamp": "2026/10/13 16:50:28",
"status": 500,
"duration_ms": 60000.5
},
{
"timestamp": "2026/10/13 16:50:28",
"status": 500,
"duration_ms": 59998.7
},
{
"timestamp": "2026/10/13 16:50:28",
"status": 500,
"duration_ms": 7.6
},
{
"timestamp": "2026/10/13 16:50:28",
"status": 500,
"duration_ms": 59999.2
},
{
"timestamp": "2026/10/13 16:50:28",
"status": 500,
"duration_ms": 59998.0
},
{
"timestamp": "2026/10/13 16:50:28",
"status": 500,
"duration_ms": 59976.1
},
{
"timestamp": "2026/10/13 17:15:26",
"status": 500,
"duration_ms": 59999.7
},
{
"timestamp": "2026/10/13 17:15:26",
"status": 500,
"duration_ms": 60001.1
},
{
"timestamp": "2026/10/13 17:15:26",
"status": 500,
"duration_ms": 59999.5
},
{
"timestamp": "2026/10/13 17:15:26",
"status": 500,
"duration_ms": 59999.4
},
{
"timestamp": "2026/10/13 17:15:26",
"status": 500,
"duration_ms": 59924.0
},
{
"timestamp": "2026/10/13 17:17:21",
"status": 500,
"duration_ms": 59998.1
},
{
"timestamp": "2026/10/13 17:17:21",
"status": 500,
"duration_ms": 60001.2
},
{
"timestamp": "2026/10/13 17:17:21",
"status": 500,
"duration_ms": 60000.6
},
{
"timestamp": "2026/10/13 17:17:21",
"status": 500,
"duration_ms": 59999.5
},
{
"timestamp": "2026/10/13 17:17:21",
"status": 500,
"duration_ms": 59999.6
},
{
"timestamp": "2026/10/13 17:17:21",
"status": 500,
"duration_ms": 7.1
},
{
"timestamp": "2026/10/13 17:17:21",
"status": 500,
"duration_ms": 4.3
},
{
"timestamp": "2026/10/13 17:17:22",
"status": 500,
"duration_ms": 3.8
},
{
"timestamp": "2026/10/13 17:17:22",
"status": 500,
"duration_ms": 2.9
},
{
"timestamp": "2026/10/13 17:17:22",
"status": 500,
"duration_ms": 2.3
},
{
"timestamp": "2026/10/13 17:17:22",
"status": 500,
"duration_ms": 3.2
},
{
"timestamp": "2026/10/13 17:17:22",
"status": 500,
"duration_ms": 10.0
},
{
"timestamp": "2026/10/13 17:17:22",
"status": 500,
"duration_ms": 3.1
},
{
"timestamp": "2026/10/13 17:49:19",
"status": 500,
"duration_ms": 60000.2
},
{
"timestamp": "2026/10/13 17:49:19",
"status": 500,
"duration_ms": 59998.2
},
{
"timestamp": "2026/10/13 17:49:19",
"status": 500,
"duration_ms": 59999.9
},
{
"timestamp": "2026/10/13 17:49:19",
"status": 500,
"duration_ms": 60000.0
},
{
"timestamp": "2026/10/13 17:49:19",
"status": 500,
"duration_ms": 59999.4
}
],
"unexpected_eof_count": 20,
"offset_mismatch_count": 9,
"disk_available_gib": 129.9,
"forgejo_restarts": 0,
"cpu_requested_m": 3460,
"cpu_allocatable_m": 4000,
"rendered_change": "one additional argument: --entryPoints.websecure.transport.respondingTimeouts.readTimeout=600s",
"server_dry_run": "passed",
"client_diff": "new HelmChartConfig only"
}

View file

@ -0,0 +1,28 @@
{
"observed_at": "2026-10-13T18:12:13.559452+00:00",
"configuration_commit": "bad08fd712bded4aefe011d2cdad1f50ade8c43e",
"authority": "ADMINISTER @ realm:kubernetes/railiance01",
"activation": "APPROVED",
"source": "founder publication-fix instruction and explicit approval of shared timeout change",
"deployment_generation": 2,
"observed_generation": 2,
"ready_replicas": 1,
"image": "rancher/mirrored-library-traefik:3.6.7",
"timeout_arguments": [
"--entryPoints.websecure.transport.respondingTimeouts.readTimeout=600s"
],
"https_checks": [
{
"url": "https://forgejo.coulomb.social/api/v1/version",
"status": 200
},
{
"url": "https://reuse.coulomb.social/health",
"status": 200
},
{
"url": "https://forgejo.coulomb.social/v2/",
"status": 401
}
]
}

View file

@ -0,0 +1,53 @@
{
"observed_at": "2026-10-13T18:15:32.252082+00:00",
"uploads": [
{
"timestamp": "2026/10/13 18:13:40",
"kind": "blob",
"status": 201,
"duration_ms": 85466.9
},
{
"timestamp": "2026/10/13 18:14:02",
"kind": "blob",
"status": 201,
"duration_ms": 106917.7
},
{
"timestamp": "2026/10/13 18:14:06",
"kind": "blob",
"status": 201,
"duration_ms": 111375.0
},
{
"timestamp": "2026/10/13 18:15:07",
"kind": "blob",
"status": 201,
"duration_ms": 172691.8
},
{
"timestamp": "2026/10/13 18:15:17",
"kind": "blob",
"status": 201,
"duration_ms": 182603.3
},
{
"timestamp": "2026/10/13 18:15:17",
"kind": "manifest",
"status": 201,
"duration_ms": 39.3
},
{
"timestamp": "2026/10/13 18:15:17",
"kind": "manifest",
"status": 201,
"duration_ms": 108.9
},
{
"timestamp": "2026/10/13 18:15:17",
"kind": "manifest",
"status": 201,
"duration_ms": 30.6
}
]
}

View file

@ -0,0 +1,63 @@
# Forgejo image publication fixed — 2026-10-13
Release **0.1.0** is published and pullable on railiance01. Its immutable reference:
```text
forgejo.coulomb.social/coulomb/rapp-playwright@sha256:8d6fd5a8172cf906bb503642ed620761945c5138b86f6396c36f65cbe6def441
```
The fetched OCI index bytes hash to exactly that digest, matching the image
previously tested by the independent agent. The linux/amd64 manifest is
`sha256:20d8310d44cd807579aca06df01090a7bb27892ce387519f9957e4dd67f64cc7`;
cluster pull resolved the expected config
`sha256:5bda1139fda091648b1e984f6be8119291ad5616263b206d62ac7986ba2762b3`.
This publication did not rebuild or alter the browser image and did not deploy
the browser workload.
## Cause and fix
The previous HTTP 499/500 responses were caused by the shared Traefik ingress
cutting off large request bodies at its default 60-second read deadline. Forgejo
reported `unexpected EOF`; retries of those interrupted sessions could report
`offset mismatch between file and model`. Authentication and smaller blobs
succeeded. Forgejo had no restarts and approximately 130GiB disk available.
The approved fix declares a **bounded 600-second read timeout** on the shared
`websecure` entry point through a k3s `HelmChartConfig`. This setting covers HTTPS
request bodies for all services on that entry point. Other timeouts, TLS and
registry authentication remain unchanged. Source is owned by railiance-cluster:
`install/traefik/railiance01-helmchartconfig.yaml`, initial published commit
`bad08fd712bded4aefe011d2cdad1f50ade8c43e`, workplan RCLUSTER-WP-0016.
The estate close-down checklist row 23 tracks review of the longer shared budget.
Rendering the installed chart with its actual base values produced exactly one
additional argument. Server dry-run and diff passed, capacity was checked, and
the k3s Helm controller rolled Traefik to generation 2, Ready, on the same 3.6.7
image. Forgejo version and reuse health returned HTTP 200; registry `/v2/` still
returned HTTP 401 without authentication. Rollback is a reviewed source change
back to 60s and reapplication through the same controller.
References: [Traefik entry-point timeout](https://doc.traefik.io/traefik/v3.6/reference/install-configuration/entrypoints/)
and [k3s managed customization](https://docs.k3s.io/networking/networking-services).
## Executed verification
- `docker push forgejo.coulomb.social/coulomb/rapp-playwright:0.1.0` succeeded.
Five large layers completed with HTTP 201 in 85.5, 106.9, 111.4, 172.7 and
182.6 seconds. Manifests published at 2026-10-13T18:15:17Z.
- `docker buildx imagetools inspect ...:0.1.0` returned the exact expected index.
The raw fetched index's SHA-256 was independently computed and matched.
- `ssh railiance01 'sudo k3s crictl pull <immutable-reference>'` succeeded, and
`crictl inspecti` confirmed the expected image config identity.
Retained [diagnosis](2026-10-13-publication-diagnosis.json),
[rollout and HTTPS checks](2026-10-13-publication-timeout-rollout.json),
[successful upload timings](2026-10-13-publication-upload-timings.json),
[remote index](2026-10-13-published-image-index.json),
[cluster pull](2026-10-13-published-image-pull.json), and
[release record](../../releases/0.1.0.json).
WP-0003-T01 is now done and WP-0003 is finished. Managed workload admission,
consumer binding, deployment and live browser recovery/rollback remain in
WP-0004-T01. The publication fix does not claim those outcomes or close discovery
and consumer-acceptance work.

View file

@ -0,0 +1,28 @@
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:20d8310d44cd807579aca06df01090a7bb27892ce387519f9957e4dd67f64cc7",
"size": 3344,
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"digest": "sha256:3267896f3b778dedce0b2c92ea1c67b64a6e168417aa422c4750dcbcb0d165f5",
"size": 566,
"annotations": {
"vnd.docker.reference.digest": "sha256:20d8310d44cd807579aca06df01090a7bb27892ce387519f9957e4dd67f64cc7",
"vnd.docker.reference.type": "attestation-manifest"
},
"platform": {
"architecture": "unknown",
"os": "unknown"
}
}
]
}

View file

@ -0,0 +1,12 @@
{
"observed_at": "2026-10-13T18:17:15.031531+00:00",
"node": "railiance01",
"pull_command": "sudo k3s crictl pull forgejo.coulomb.social/coulomb/rapp-playwright@sha256:8d6fd5a8172cf906bb503642ed620761945c5138b86f6396c36f65cbe6def441",
"pull_exit_code": 0,
"image_id": "sha256:5bda1139fda091648b1e984f6be8119291ad5616263b206d62ac7986ba2762b3",
"repo_digests": [
"forgejo.coulomb.social/coulomb/rapp-playwright@sha256:8d6fd5a8172cf906bb503642ed620761945c5138b86f6396c36f65cbe6def441"
],
"size_bytes": "990518395",
"workload_deployed": false
}

View file

@ -69,3 +69,10 @@ explicit migration/rollback decision.
Upgrade Playwright and its base image together, update the lockfile, repeat the
unit/browser/client tests and consumer pilot, then publish a new immutable image.
The Python client checks protocol v1 and does not install Playwright.
## Published release
Release [0.1.0](../releases/0.1.0.json) is published and pull-verified. Use its
immutable reference for rendering; registry publication is no longer blocked.
The cluster-owned ingress now allows a bounded 600-second HTTPS request body;
see [cause, rollout and verification](evidence/2026-10-13-publication.md).