Repository navigation
Required Go validation cannot provision isolated PostgreSQL test fixtures #573
Description
🤖 Generated by the Agentic Engineer
Delivered on: 2026-10-13
Description
The shared Go Test and Coverage jobs originally ran consumer tests without a disposable database fixture. Database-backed applications that deliberately refused missing fixture configuration could not pass input-free required validation, even when their own CI provisioned an isolated service and passed the full race suite. The maintained contract and compatible legacy delivery have since landed; this issue now tracks the remaining end-to-end rollout acceptance described below.
Steps to Reproduce
- Use a Go application whose integration tests require explicit runtime and migration database URLs and refuse skipping database tests.
- Run the shared input-free required workflow. Its Test and Coverage jobs provide neither a service nor fixture URLs.
- Run the same full suite against a fresh local PostgreSQL 17 fixture with separate restricted roles; it passes.
Expected Behavior
A source-reviewed, absent-by-default declaration beside the resolved module can opt into a strictly typed disposable PostgreSQL fixture for each Test and Coverage job. Existing consumers start no service unless explicitly configured. Non-fixture test commands and fail-closed missing-fixture behavior remain unchanged; opted-in fixture runs disable cached verdicts while retaining full test scope and race/coverage settings.
Actual Behavior
The original reproduction failed when both fixture URLs were unset and passed with a new disposable fixture. That implementation gap has since been delivered: the maintained contract and compatible legacy mirror have merged, and the historical hosted checkpoints below record actual database tests. The pilot required-workflow checkpoint also records Test and race-Coverage execution with separate disposable fixtures and runner teardown at the merged pilot module contents.\n\nSee the released legacy checkpoint and pilot required-workflow checkpoint. Remaining acceptance is release-gate retirement and any outstanding cleanup acceptance; runner teardown is not an independent later container/volume absence check. The separate production-activation prerequisites devantler-tech/monorepo#3936 and #3939 remain open as of 2026-10-15. This issue remains open; the body correction grants no rollout or production activation.
Acceptance Criteria
- Use immutable catalogue code to parse a bounded, tracked, closed-schema declaration and generate local URLs and provisioning SQL.
- No remote endpoints, credentials, arbitrary commands, arbitrary scripts, container options or caller-selected images.
- Keep owner, migrator and runtime roles separate; preserve least privilege and fixture-only data.
- Test and Coverage each receive a fresh digest-pinned PostgreSQL 17 service; unconfigured consumers start none.
- Declaration changes select actual Test and Coverage execution.
- Prove healthy, absent, malformed, unsafe, failed-provisioning and privilege controls plus real native database tests.
- Deliver the maintained contract first, then only the urgent compatible legacy mirror and explicit consumer adoption. Never suppress checks, skip database tests or alter protection.
- Keep this issue open until hosted maintained/legacy validation, pilot adoption and release-gate retirement are verified. A source-only PR is part of delivery, not completion of the whole rollout.
Delivery rationale
High priority: this blocks completion of an already-started portal validation slice. Medium end-to-end effort includes shared and legacy validation, substantive review, consumer adoption and publication. No paid service or production database is involved.
Primary references
- https://docs.github.com/en/actions/reference/workflows-and-actions/reusing-workflow-configurations#limitations-of-reusable-workflows
- https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idservicesservice_idimage
Part of #287.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Effort
Projects
- StatusShow more project fields🫴 Ready
Activity
chore: agent-claim #573 nonce=5d993aa4526b4502ba3af963271f97cc
chore: agent-claim #573 nonce=e010dbe9b080f84304f9cfb12bb05295
devantler commentedon Oct 12, 2026
The maintained fixture implementation is merged in #574 at dacbc94, and its urgent legacy mirror is now merged in actions#1411 at 52e17809f0eb2be98184930325092d7aa31302e3. The mirror had complete current-head native CI, actual isolated PostgreSQL Test/race-Coverage receipts and a substantive CodeRabbit green before its normal protected exact-head squash merge; actions#1410 is closed.
The normal release pipeline merged actions#1412 and published v13.10.10 at the signed release commit 6f3d2b43ca2f00c772d4eb62c0c0c0cfa7a23a53. The release/tag and successful run 38308060112 were verified directly. Business-site#63 published its signed adoption/runtime corrections at ef9f6d24f4156125ee8658ec92f671b7aef52e8e. Its real organization-required Test and race-Coverage jobs successfully provisioned isolated PostgreSQL-17 fixtures through that exact immutable helper, passed all four module packages and removed their service containers. Source CI 38308430588 also completed successfully.
The consumer now has signed source-quality corrections at 12e97e54a54277f7e2d9a0a18ddbd39abce57f52. Source CI 38314849880 succeeds, and required run 38314850754 again passes actual Test/race-Coverage, build, tidy, vulnerability and dead-code jobs. Its exact-head MegaLinter result confirms zero duplication, CSS and djlint findings; the remaining template/context/dictionary/link/fictional-fixture reports are preserved, never waived.
The shared Go compatibility repair #578 is now normally merged at d3bd1ca with fresh substantive current-head review and complete post-promotion CI, then published as v7.10.2 with its tag bound to that exact squash. The urgent frozen-catalogue mirror actions#1414 is draft at a34f19c1e653f6fca2609d47cfc0a9398037e4f4 with native CI still pending. Compiler compatibility remains #577 until release and actual consumer verification; container root-configuration loading is independently tracked in #579.
The consumer remains draft. Actual final-head complete validation, substantive review, protected merge and source-owned distribution/publication remain outstanding. This rollout stays OPEN; no test, protection, native code-quality evidence or portal launch gate is waived.
chore: agent-claim #573 nonce=b8863102a918503657a4d6a30df12a6b
devantler commentedon Oct 12, 2026
Hosted fixture checkpoint, 2026-10-12 23:06 UTC: Legacy Coverage job 115045791412, on actions#1414 head
dba6239e1dbf2520876059f62bbbe29920e880ea, failed before any coverage or database test ran. The PostgreSQL service initialized successfully and accepted connections at 23:05:03; its retained server log then records a fast shutdown at 23:05:23. Fixture provisioning at 23:06:44 consequently found that exact service container stopped.The runner journal records a Docker restart at 23:05:21. Disk reclamation began later, at 23:05:24, so it cannot explain the preceding shutdown. The restart is a concrete service-lifecycle lead; the initiating cause and whether it recurs remain unproven. The failure is not a database privilege assertion, failed application test, or evidence that the linter compatibility change caused it.
Keep this rollout acceptance open. Before collecting another verdict, establish service continuity through runner initialization and distinguish an environment interruption from a reproducible fixture defect while retaining hardening, isolated roles, full test scope and failure propagation. Earlier successful Test/Coverage receipts remain valid for their own runs; this failed job supplies no new acceptance pass. No workflow was rerun, check suppressed, or active delivery branch changed in that checkpoint.
New consumer checkpoint, 2026-10-13 00:41 UTC: The urgent producer repair is now merged in actions#1414 and released as v13.10.11. Business-site's current signed head
3ada2bfc5d7fe3d7187a34e3bdbf09c9ef446fc3runs the immutable provisioner at release commit10ab0f1c94b951c16f6db58d094b42d49e2f775f, with the fixed service restart policy and final TCP-readiness check. Nevertheless, Test job 115070717540 fails during fixture preparation, before application tests run.Its service was initially healthy. The retained server log records a subsequent fast shutdown, and the runner journal records two Docker restarts during hardening initialization. The exact bound service still fails all thirty readiness attempts and emits the bounded TCP-readiness failure. That is a newly observed recurrence despite the restart-policy correction; it does not establish why automatic restart failed, and no container state beyond the recorded observations is claimed.
The same head's Coverage job 115070717464 succeeds with the actual database/race suite, and source CI 38327781571 succeeds. Required Go run 38327782114 remains FAILURE: Test fixture setup and the separately tracked runtime-template link checker both fail. All twelve jobs and all thirty-six native contexts were read; no pending context remains. These distinct results are not a clean overall consumer rollout.
Next repair must reproduce interruption of the exact owned disposable service through runner initialization, preserve the immutable image/environment/container binding and restricted roles, and prove successful complete provisioning before emitting either fixture URL. Retain refusal of wrong service identity, failed inspection/start/readiness, partial SQL and privilege failures. Never retry partially executed provisioning or weaken runner hardening to pass the pilot. Fresh native Test and race-Coverage proof is still required after any correction.
This observation changes no branch, protection, portal release gate or deployment. No retry was requested in this checkpoint, and #573 remains OPEN.
8 remaining items
chore: agent-claim #573 nonce=845931ab4d0b6416e42b0e57b1651dba
devantler commentedon Oct 13, 2026
The maintained stopped-service recovery is delivered in #586 at
8ed2071ebe18864b8b86efe0f6b1df8d73d2a6aband published as v7.10.4. Its release run and post-merge CI both completed successfully at that exact revision. This confirms maintained source validation and release publication; the legacy mirror and complete pilot rollout are still outstanding.The separate manifest publication run failed before uploading any artifact: its OIDC setup could not resolve the hosted token endpoint. The publication workflow itself is unchanged from the previous successful release. One bounded failed-job recovery was requested; attempt 2 was read back in progress at the same released revision. No recovery success or cluster adoption is claimed, and no hardening or publication check was changed.
Keep #573 open. Next delivery remains the urgent compatible legacy recovery mirror, actual native Test/race-Coverage and cleanup proof, and explicit consumer adoption; the separate publication recovery also needs its terminal result collected. Earlier fixture receipts do not prove those remaining conditions.
chore: agent-claim #573 nonce=edd6c4a13e1f8f55de7740cd1784c273
devantler commentedon Oct 13, 2026
Publication recovery checkpoint: attempt 2 of manifest publication run 38377204300 completed successfully at released revision
8ed2071ebe18864b8b86efe0f6b1df8d73d2a6ab. Native job 115247919690 records successful immutable-helper checkout and Sign & promote manifests artifact. The original failed attempt remains part of the history; no additional retry or workflow change was made by this run.This collects the terminal recovery result left pending in the previous checkpoint. It does not prove cluster adoption, the compatible legacy mirror, or the complete pilot rollout. Keep #573 open for those remaining acceptance conditions.
chore: agent-claim #573 nonce=0404b54c3582ac540e7ce64035275dfd
devantler commentedon Oct 13, 2026
Legacy hosted-validation checkpoint: CI run 38397346200 completed successfully on actions#1418 revision
e4f19e8fe3943c396f3160d4cb538722ff13c3bb. All 241 native jobs were collected across the complete paginated response.The native recovery job exercised a deliberately stopped service, recovered that same disposable service, and passed actual database tests with restricted roles. Its log separately confirms the cleanup refusal controls and verified removal. The isolated Test and Coverage jobs both completed fixture preparation and their real test paths successfully.
This collects the hosted behavior left pending by the legacy mirror. It establishes proof for this PR revision only: #1418 is still a draft awaiting substantive current-head review and merge, and the required code-quality rule has no readable verdict. No review request, retry, branch change, promotion, merge or deployment was performed in this checkpoint; the recent delivery writer is preserved.
Keep #573 open for released legacy delivery, explicit pilot adoption and release-gate retirement. Passing source fixtures does not complete that rollout.
chore: agent-claim #573 nonce=52166b50fe347b0658712a189e39571f
devantler commentedon Oct 13, 2026
Released legacy checkpoint: actions#1418 has now merged from reviewed source
e4f19e8fe3943c396f3160d4cb538722ff13c3bbas13da43d5196ddcff0119c58090489e335ba7105f. Post-merge CI 38414368910 completed successfully at that merge, with all 237 native jobs collected across three complete pages and no failed or pending job.The actual native fixture job confirms stopped-service recovery, real database and restricted-role tests, and the cleanup refusal controls. The isolated Test and race Coverage jobs also completed successfully.
Release 38415584294 succeeded at
ea4df9004d4ab43b6c9af5b0c5f55712f7211328, and the published v13.10.12 release binds that exact revision. The four producer/admission/recovery/cleanup files are byte-identical across the PR source, merge and release trees. Thus the legacy mirror is released, replacing the earlier draft-only checkpoint on this issue. Its delivery issue actions#1417 is already completed; this run did not merge another PR.Keep #573 open for complete pilot adoption and release-gate retirement. This checkpoint verifies legacy delivery and publication, not those remaining rollout conditions or production database behavior. No rerun, deployment or source mutation was made.
chore: agent-claim #573 nonce=27c6a12eb4ce9bcfdf98bcd0f79ea9f6
devantler commentedon Oct 13, 2026
Pilot acceptance checkpoint: business-site main
e6b5b44d1896543e5e44b8f0e5e4a9cb6f466fe5retains the tracked module-local disposable PostgreSQL declaration. Its native portal identity job and complete CI aggregate report success at that source. These are application-owned checks; this observation does not establish maintained/legacy required Test and race-Coverage execution, service recovery, or cleanup at the pilot revision. The job-log and required-workflow reads needed for that join were unavailable under the current GitHub REST request limit.The pilot’s reviewed server contract also keeps production activation off until monorepo#3936 and monorepo#3939 clear. Both remain open; #3939 currently has three open native prerequisites. Successful fixture publication or source CI therefore cannot authorize that activation or satisfy the rollout’s release-gate retirement criterion.
Keep #573 open. The next check must bind the pilot’s actual organization-required Test/Coverage and cleanup receipts to released immutable catalogue code, then verify release-gate retirement against its separate deployment prerequisites. No source, protection, feature flag, workflow run, or production resource was changed.
chore: agent-claim #573 nonce=f2311c08b358a65a0145066841909a96
devantler commentedon Oct 13, 2026
Pilot required-workflow checkpoint, 2026-10-13: the evidence unavailable at the previous checkpoint is now collected. Required Go validation 38450251958 completed successfully for business-site#74 final head
e0d3e6391746d47598fbbf103a3b49b58419d192; all twelve native jobs were read without a pagination cap.The actual Test job and race-Coverage job each prepared its disposable fixture and passed all five Go packages with cached verdicts disabled. Coverage retained race detection and atomic coverage. Their logs bind the immutable provisioner to released actions v13.10.12 source
ea4df9004d4ab43b6c9af5b0c5f55712f7211328; the release record confirms that source. Both jobs record successful runner removal of their separate service container and network. This is the runner's teardown receipt, not an independent later container or volume absence check, and this pilot did not deliberately interrupt its service to exercise recovery.The tested synthetic merge
02cdd1d3fbffa40a23b6948c5936604ecac1526c, final PR head and merged maine6b5b44d1896543e5e44b8f0e5e4a9cb6f466fe5have the identical complete server subtree4f9e99a5195b5f9166a889eeffb6f1031071a91e. These receipts therefore cover the merged pilot's module contents, including its tracked fixture declaration, rather than merely an earlier source revision.Keep #573 open for release-gate retirement and any remaining cleanup acceptance. The reviewed server contract still requires monorepo#3936 and monorepo#3939 before production activation. Both are open, and #3939 has three open native prerequisites. This checkpoint performs no rerun, source change, protection change, flag activation or production write.
devantler commentedon Oct 18, 2026
Board reconciliation, 2026-10-18: returned from In Review to Ready.
**Delivered on:** 2026-10-13to the body, and recorded Deploy and verify the unified business site and private portal monorepo#3939 as a native blocked by dependency, so the card shows the wait.