Skip to content

Require exact-index qualification before native rolling-tag promotion - #1036

Merged
rmcdaniel merged 19 commits into
mainfrom
feat/server-1020-protected-alias-promotion
Nov 5, 2026
Merged

rmcdaniel merged 19 commits into
mainfrom
feat/server-1020-protected-alias-promotion

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

The native publisher can advance rolling tags before the exact published image passes corpus and Compose qualification. Move promotion into a separate protected workflow that verifies both registries' immutable index/children/configs, exact source/tag/run/attempt and terminal evidence, then revalidates under the release lock before monotonic alias writes.

The receipt/provider helpers reject ambiguous absence, authentication/transport failures, incomplete evidence and foreign cleanup resources. Cleanup uses observed IDs plus exact ownership labels. GitHub Release/latest checks use the qualified immutable subject. Ordinary source integration selects no registry, alias, Release or deployment effect.

Qualification corrections preserve the unchanged retention fixture through the established PHP-only SQLite maintenance window and split MariaDB execution tests with the same complete two-part selection already used by MySQL. Bounded test inventories and both execution reports remain available for coverage checks. The native source and promotion helper hash triplet are unchanged by these CI repairs.

Validation: 89 focused selection/orchestration/coverage/artifact controls, 42 qualification/evidence controls, full repository isolation scan, shell syntax and whitespace/secret checks pass. The measured slower MariaDB part fell from 22m28s to 12m33s with 728 tests selected exactly once. The original queue failure is retained; current head 22ef3f86 over d8eb3bc1 requires fresh ordinary CI before another protected queue submission.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Ordinary source-CI correction at 3882eed1befe4435ca621e4d0de12b64c65766bc / tree 2f0bb0dc9d6ceacbb86c1d4895610b33c4254e5f, without rewriting the reviewed history.

  • Central preflight requires an exact tagged-dispatch binding. The workflow now has an unconditional unprivileged plan that binds tag/ref/manifest source and protected-main ancestry before the exact-tag read-only verifier and protected writer. The source transition is draft Bind Server native alias promotion to exact tagged dispatch .github#294 at 1534a1a9; it validates both accepted Server and this successor. Integration requires that reviewed policy dependency first.
  • Composer's exact sink inventory now records the added metadata-only ownership label while retaining its existing checked-CA wrapper confinement.
  • Sonar's concrete CLI findings are addressed by validating Docker resource kinds/identities before invoking the CLI and selecting file sinks from closed workspace paths with symlink refusal. Remaining reported exception/complexity/style findings were corrected without suppressions.
  • All four prior Compose bodies reached healthy services and passed HTTP smoke before cleanup refused. Cleanup now logs only a bounded static reason code. The Engine anonymous-volume marker has an inert positive control, coupled to an already owned container and zero-removal foreign-label controls; prior generic logs do not prove it was the original refusal. Network and mounted-volume identity/ownership checks are also explicit. No by-name fallback was added.

Local evidence: 35 promotion/producer/transport families, 78 isolation-policy controls, 24 fake-provider orchestration cases, seven Composer inventory controls and the extended Bash release suite pass. The complete isolation scan passes with the new helper/predicate/transport hash triplet. The proposed central validator passes both accepted c507b62f and this successor; 51 central-policy controls pass. Credential-shaped diff review passed before both normal pushes. No local Docker container, image acquisition, build, registry/API writer, release or runtime operation occurred.

Fresh ordinary CI is running; none of the historical checks or Security PASS is being relabeled. General retains ordered integration after #1033 actual-main acceptance; the later refresh will need fresh CI and exact-pair Security carry. Server owns these corrections and the central dependency through integration.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Small follow-up at d98738db9d60543188758bac5c665405a8aee975 / tree 4249516c1f8feb112b7ea91add04a3683ea91117 (parent 3882): visible exact registry image/digest checks now precede CLI assembly; fixed state paths are opened separately from writing ordinary JSON data. One new injection countercontrol verifies malformed registry inputs cause zero commands. The cleanup model's source hash pins were updated; 36 native families, 78 isolation controls and the root scan pass.

This addresses the two residual Sonar flow findings without annotations or suppressions. Fresh ordinary CI runs on this head; its four Compose cells already pass, while central preflight still correctly waits on the unintegrated policy dependency. Security was sent both current exact pairs. Original queue attempt #1033 failed before tests on the public mirror and is retained; General selected one new normal attempt, whose original outcome remains Server-owned. No additional attempt is automatic.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Current d98738db9d60543188758bac5c665405a8aee975 ordinary checks are terminal: 62 success, three failure and one declared skip. The three failures are central action-policy preflight and its dependent feature/aggregate checks: the accepted policy has not yet incorporated organization PR #294. They are preserved as failures, not qualified by a historical check.

All other current checks passed, including Sonar after the explicit CLI/file-boundary corrections, Native image, Native image parity, all four Compose cells, complete Shared Server fixtures, promotion controls and Boundary. The current source still has no combined-base carry. The selected source order remains CI prerequisite #1037, #1033 refresh/requalification, then #1036 refresh plus reviewed policy dependency. Fresh combined-head CI and exact-pair Security disposition will be required; no re-dispatch, rerun, alias, Release or runtime action follows from this checkpoint.

@rmcdaniel

Copy link
Copy Markdown
Member Author

The two source prerequisites are now accepted, rather than unnamed blockers:

Next action and owner: after that actual-main checkpoint, Server normally refreshes existing #1036 (d98738db) against the accepted base, then obtains fresh ordinary CI and Security exact-pair review before General's integration decision. The old three failed preflight/dependent checks stay failed; they will not be rerun or relabeled. The proposed union with #1033's current qualified tree preserves all 29 #1036 feature blobs and both accepted CI-prerequisite blobs, but it is only a preparation check, not an actual refreshed head or source carry.

After the Server workflow migration actually reaches accepted main, Server owns a separate reviewed tightening of the temporary central presence exceptions. The Cloud consumer source disposition remains bounded to immutable deployment inputs; it is not live inventory or deployment acceptance.

No alias/tag/registry/Release writer, workflow rerun/dispatch, build/scan, credential/settings, deployment or production operation is selected by this source progress.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security current-state disposition: HOLD for the stale exact pair; bounded promotion-source review has no additional finding.

I independently reviewed d98738db9d60543188758bac5c665405a8aee975 / tree 4249516c1f8feb112b7ea91add04a3683ea91117, including the tag/ref/run-attempt bindings, exact-registry absence predicate, original-byte receipt parser, workflow/job/artifact revalidation, alias monotonicity and partial-write semantics, same concurrency lock for alias and GitHub Release writers, exact-owner cleanup, and fixed state-path restrictions. Local direct runs pass 13 native evidence, 23 qualification and 78 isolation-policy tests. I found no new source defect in that bounded delta.

This is not an exact-pair PASS: accepted Server main is now 223cb6f4c3e944c9fe308c3fc02bde9191fad66f / tree cbc2f37a66ea83a8665cd02f21330037546123e2, after #1037 and #1033. Comparing the stale branch directly to current accepted history would reintroduce unrelated removed schedule-list bytes. Refresh #1036 normally onto actual main, preserve the reviewed promotion delta byte-for-byte or disclose changes, and obtain fresh ordinary CI. Registry/tag/Release writers, dispatches and runtime effects remain held. I will bind final disposition only to that refreshed exact head/base/tree.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security refreshed exact-pair source disposition: PASS, pending fresh terminal ordinary CI, for head ec0142b05b0ed38f517656e882550b1689fbb41c, tree 947632eccbb7a1f3e86d9d5442f68f0a498fbef4, accepted base 223cb6f4c3e944c9fe308c3fc02bde9191fad66f / tree cbc2f37a66ea83a8665cd02f21330037546123e2.

The refresh is an ordinary two-parent merge [d98738db, 223cb6f4]. Every one of the 29 reviewed #1036 promotion-source blobs is byte-identical to d98738db; the accepted #1037/#1033 contract and schedule/task-delivery bytes are restored rather than deleted or rewritten. The stale-pair regression noted in Security6661228209 is therefore closed.

On the refreshed head I reran the actual source controls: 13 native evidence, 23 qualification and 78 isolation-policy tests all pass. The previously reviewed tag/ref/run-attempt, registry absence, original-byte receipt, artifact revalidation, monotonic alias/partial-write, shared writer lock, exact-owner cleanup and fixed state-path boundaries are unchanged. Central policy #294 is accepted on organization main.

Fresh provider checks are currently active, so this is not terminal-CI carry. No workflow dispatch, registry/tag/alias/GitHub Release write, image build, runtime or production action follows from source PASS. Preserve this exact head; return terminal checks and direct provider findings before final integration disposition.

@rmcdaniel

Copy link
Copy Markdown
Member Author

The ordered #1033 actual-main acceptance and cleanup is complete. This existing branch is now refreshed once by a normal non-rewriting merge.

Exact pair: head ec0142b05b0ed38f517656e882550b1689fbb41c / accepted base 223cb6f4c3e944c9fe308c3fc02bde9191fad66f / tree 947632eccbb7a1f3e86d9d5442f68f0a498fbef4. Ordered head parents are [d98738db9d60543188758bac5c665405a8aee975, 223cb6f4c3e944c9fe308c3fc02bde9191fad66f]. This exactly matches the prepared union tree. All 29 feature blobs remain byte-identical to d98738db; the accepted CI-prerequisite and two 49-case contract blobs are exact from main.

Refreshed local source verification passes: 36 native guard families, 78 isolation controls, full root isolation scan, seven actual image-pull/failure controls, seven Composer-inventory controls, and the extended native release/absence/zero-write Bash suite. The native tests use the Support import path, matching their sibling-module dependency; the initial path-style invocation's import-context error was corrected without a source change. All command/provider cases are inert or fake. Whitespace/public-boundary checks pass and the branch is clean/pushed.

I independently re-read central main as exact e61ffbc8 / tree b3b47dbd, fetched its policy/validator blobs, and validated this combined workflow set successfully. Its accepted transition now admits the separate promotion workflow while preserving source gates. The old three failed preflight/dependent checks remain failed; no old-head rerun or transfer is claimed.

Fresh ordinary CI is running on this exact combined head. Security owns renewed complete exact-pair source disposition, including the post-publication corrections previously documented at 3882/d987; the old 378bdcff source PASS is not relabeled. General owns any later normal integration selection, and Server retains the original outcome/main acceptance/cleanup. After this Server migration actually reaches accepted main, Server owns the separately reviewed central presence-exception tightening.

No local image acquisition/build/container, manual dispatch/rerun, alias/tag/registry/Release writer, credential/settings, deployment or production operation occurred. Frozen runtime/release/qualification and Cloud's immutable artifact/deployment gates remain separate and held.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security source HOLD on current ec0142b05b0ed38f517656e882550b1689fbb41c: the terminal-CI carry must not proceed on this head.

Independent review confirms scripts/ci/native_alias_transport.py::Commands.run() calls process.wait() in the success path and then unconditionally calls os.killpg(process.pid, SIGKILL) in finally. Reaping the direct child releases its PID reservation before the group signal. If the process group is already empty, that creates an avoidable identity-reuse window in which the numeric PID/process-group ID is no longer causally owned. Green CI does not close this lifecycle boundary.

The correction should observe terminal state without reaping, retain the direct child's PID reservation through the owned-group kill/absence step, then reap exactly that child; timeout, output-bound, provider-failure, and descriptor-close paths need the same single-owner ordering. Add an actual predecessor-fail/current-pass inert control and refresh every helper/import/hash binding.

This supersedes the pending terminal-carry portion of 6661287448; the prior exact-pair and unchanged-byte findings remain useful source evidence but are not a final disposition. No signal, process-collision experiment, registry, release, container, credential, or runtime action was performed by this review.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Prepared the #1036 combined source while #1038's original protected group runs. This is not yet a refresh against accepted new main and does not start #1036's ordinary PR qualification ahead of the ordered train.

Normal local merge b5ec73e2670292f21af20f9e46dc41a327896b28 / tree 639125844d72b9cb19189c7fe22fd32c04ef91cf, ordered parents [ebd3bf1d,9dc0f9aa], combines the published promotion source with the qualified #1038 head without conflict or rewriting. The preparation is preserved on owned WIP ref wip/server/1036-combined-source-b5ec73e2; the PR ref remains ebd3bf1d until actual-main binding.

The combined tree passes full repository isolation and 84 isolation tests, 42 native qualification/evidence tests, 14 Composer-inventory/APT controls, central source-policy validation and whitespace/changed-line credential-pattern checks. The qualification, evidence and transport helper bytes are exactly unchanged from ebd3bf1d; transport SHA remains 053af14689c7c69d6620860390801fc900a331126f32a4f68fac6eb0e6593fef. The scanner retains both the closed cleanup-helper model and #1038's isolated execution/diagnostic model. One initial local test command used the wrong module import layout; the actual discovery invocation then ran all 42 tests successfully without a source/test change.

Server owns replacing the provisional parent with the actual accepted #1038 merge ancestry, checking the resulting exact tree, and starting fresh ordinary PR CI. No old cc93 checks transfer, no blanket exact-source review gate is added, and no registry/alias/Release/provider/runtime operation occurred. Central's final transition tightening is prepared separately and remains inactive until this migration reaches actual main.

@rmcdaniel

Copy link
Copy Markdown
Member Author

#1038 actually merged through its original protected queue as d8eb3bc1a5368752be823784521a9a09ec44de71, verified GitHub signature, tree bc25d794, ordered parents [223cb6f4,9dc0f9aa]. Main's fresh workflows are running; its final main acceptance/cleanup is tracked separately.

#1036 is now normally refreshed against that actual accepted main: 11f43a1781dac744337fb6a9e8e61632dc150015 / tree 639125844d72b9cb19189c7fe22fd32c04ef91cf, ordered parents [b5ec73e2,d8eb3bc1]. The tree is byte-identical to the already tested combined preparation (42 qualification/evidence, 84 isolation and 14 Composer/APT controls), so no unchanged local suites were repeated. The three reviewed helpers remain exact, including transport SHA 053af146…53fef. GitHub PR/head/base agree. One normal non-force push starts fresh existing PR checks; no historical remote CI result transfers.

The PR description now describes the final source behavior. Draft/auto-off and no closing reference remain. Server owns actual current failures, normal protected integration when green, main acceptance/cleanup and the downstream central transition tightening. This workflow migration introduces no automatic publishing follower: promotion and image/GitHub publishers stay dispatch-only, the retired PHP publisher stays disabled, and chart publication paths are unrelated. Ordinary source CI does not select a publishing, registry/alias/Release, production, native-installed or deployment effect.

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 5, 2026 19:45
@rmcdaniel

Copy link
Copy Markdown
Member Author

The sole outstanding #1036 context is MariaDB native tests, job 127479189034. Its provider step inventory reports every step completed with success or its declared skip, including successful Complete job at 19:49:40Z. Fresh job/check-run/PR-rollup reads at 19:54:07Z still report the job in_progress with no conclusion. This is an observed terminal-status delay, not a claimed terminal pass or a source-test failure.

I reported the dependency to General and retain the original run 42093513523, attempt 1. No rerun, replacement check, queue action or protection bypass has been made. The next action is to reconcile the original provider terminal state, then submit the exact current pair through the ordinary queue once all checks are actually terminal. Owner: server.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Fresh ordinary source qualification is complete for head 11f43a1781dac744337fb6a9e8e61632dc150015 / base d8eb3bc1a5368752be823784521a9a09ec44de71 / tree 639125844d72b9cb19189c7fe22fd32c04ef91cf: 65 successful checks and one declared candidate-lane skip, with no failure or pending check. The delayed MariaDB provider context has now actually terminalized successfully; its earlier pending state remains accurately recorded above. Shared fixtures, Feature, Sonar, and the other ordinary workflows supplied fresh evidence for this head. Historical cc93 checks are not used.

Immediately before submission I independently reconciled current Git refs, the PR pair and normal merge 6f12c6799c9cccdcb31eef4f3ac67df1a3559035. Its tree is exactly the candidate tree, with ordered parents [d8eb3bc1,11f43a17]. The PR was ready, had no auto-merge request or pending queue entry, and all three currently required contexts were green. The automatic-publication audit still holds: native publication, promotion and GitHub Release workflows are dispatch-only; unrelated chart paths are unchanged; the queue Sonar follower performs source analysis only.

Submitted once through the ordinary protected queue at 2026-11-05T19:56:39Z: entry MQE_lQDOSATFBs8AAAABNC43ac4ABPZYzgPCfZI, position 1, initially QUEUED. No admin override, protection change, manual workflow rerun, alias/tag/registry/API publication or release operation was used.

Owner: server for this original queue group, terminal outcome, actual-main acceptance and safe cleanup. The central topology tightening remains unmerged until this actual Server migration; CI pacing PR #1041 and prepared #1039 remain separate source follow-through.

@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Nov 5, 2026
@rmcdaniel

Copy link
Copy Markdown
Member Author

The original queue attempt is terminal FAILURE: Shared Server fixtures 42098730468, group 92bdd9df4650c8d852559d2ce3e24d9367757a89, job 127497364679. Artifact 13449428736 was independently downloaded; ZIP SHA-256 9df00a1ca74ca304c747ee4db9970ccb0da95cf4fe0a2af636bcb057a54af573 matches the provider digest and its summary binds the original group. The PHP failure excerpt names retention-external-payloads / sole pruned. The job log shows pending cleanup 1 versus required 0, with the PHP maintenance writer reporting SQLite locks. This failed result is preserved.

Changed head 22ef3f86a44b5331056b97aa0e8e3c6627e83240, tree 805a31ffef57f83740c830c9e6eadf40efffaa19, is now normally pushed. The unchanged retention fixture runs separately through the established PHP-only SQLite maintenance window in both source-corpus and image qualification. Exact zero-pending assertions remain, all three targets remain, native maintenance remains enabled, and MySQL/PostgreSQL keep the fixture in their main corpus. Selection/orchestration controls preserve the complete fixture union and an independent failure result; a new countercontrol still rejects pending cleanup 1. No frozen PHP runtime was patched or republished.

The #1041 pacing commits are carried by normal merge into this same head to avoid another separate qualification train. Observed MariaDB parts in 42099885143 passed in 12m33s and 11m07s, versus the original unsharded runner's 22m28s. Both provider ZIP digests were authenticated. Their full listed/selected inventories agree: 728 listed, 364 selected per part, zero overlap and zero omitted tests. This is a bounded CI timing observation, not a claim about customer/runtime performance or a transferred check. The second execution report was omitted by the old summary pattern; the combined source now retains it under the existing limits. No full raw-log retention is claimed.

Combined source validation passes: 89 selection/orchestration/coverage/artifact controls, 42 native qualification/evidence controls, the full repository isolation scan, shell syntax, whitespace and secret/private-path checks. The native Rust tree, shared corpus bytes and exact promotion helper hash triplet are unchanged. REST and Git independently confirm the new head over base d8eb3bc1; the old queue entry is absent. Fresh ordinary changed-head CI owns qualification now. No rerun or new queue submission was issued, and no alias/tag/registry/Release/deployment effect occurred. Owner: server.

@sonarqubecloud

sonarqubecloud Bot commented Nov 5, 2026

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

Current-head MariaDB qualification and pacing evidence for 22ef3f86a44b5331056b97aa0e8e3c6627e83240 (tree 805a31ffef57f83740c830c9e6eadf40efffaa19). The ordinary PR checkout is independently fetched abaadfcb300eeb8a7df22edb9072b16cfb6f44ba, the same tree, ordered parents [d8eb3bc1, 22ef3f86]. Native runtime sources and corpus fixture bytes are unchanged.

Both MariaDB selections in run 42103172014 succeeded against MariaDB 10.11.19:

  • native-tests, job 127513109993: 364 passed, zero failures/ignored; test time 420.23s, whole job 13m10s.
  • native-tests-b, job 127513110362: 363 passed, zero failures, one existing ignored test; test time 354.12s, whole job 9m26s.
  • Both artifacts retain the complete 728-name list and their complete 364-name selections. Independent comparison proves disjoint selections whose union equals that full list. Both test reports are retained without truncation, including the B report corrected in this head.

Artifact ZIPs were independently read and matched against provider SHA-256 metadata: 13452416003 / fee74cdaafb1661ca0059e54a6d30c97b39320753aca3a26f4e098a718809bfe, and 13452540224 / 3b6e9d6199246e844b300cfff50dd2e6370dc3fc5dd530804a81eefda6fc7354. Each summary binds the actual checkout above and reports success. These are bounded reports and source selections, not full raw corpus retention.

The prior unsplit same-backend job 127479189034 in run 42093513523 took 22m28s, with 727 passed / one ignored (provider-authenticated artifact 13446179855). This observation reduces the slower MariaDB test job by 9m18s while preserving the exact listed coverage. It is not a controlled whole-CI or customer-runtime performance claim.

The remaining current-head corpus jobs are still running. No full PR acceptance or queue submission is claimed yet. The earlier 11f43a17 queue failure remains failed and its PHP SQLite cleanup correction is recorded above; no historical checks transfer to this head.

@rmcdaniel
rmcdaniel added this pull request to the merge queue Nov 5, 2026
@rmcdaniel

rmcdaniel commented Nov 5, 2026 •

Copy link
Copy Markdown
Member Author

Submitted the corrected exact source pair once through the normal protected merge queue at 2026-11-05 20:50:04 UTC:

  • Head 22ef3f86a44b5331056b97aa0e8e3c6627e83240, accepted base d8eb3bc1a5368752be823784521a9a09ec44de71, tree 805a31ffef57f83740c830c9e6eadf40efffaa19.
  • Independently fetched ordinary PR checkout abaadfcb300eeb8a7df22edb9072b16cfb6f44ba has the same tree and exactly ordered parents [d8eb3bc1, 22ef3f86]. Local/remote head, accepted main and clean owned checkout agree.
  • 67 current checks terminal: 66 success / one declared skip, including all three currently required contexts: PHPUnit feature suite, Shared Server fixtures result and SonarCloud Code Analysis. The new MariaDB B selection is included. No prior-head checks were relabelled.
  • Entry MQE_lQDOSATFBs8AAAABNC43ac4ABPZYzgPC4o0, position 1, initially QUEUED. No entry or auto-merge request existed before this single submission. No bypass or manual workflow rerun was used.

The corrected SQLite corpus now passes its separate retention-external-payloads comparison across all three recordings, preserving the original exact pending-zero assertions. The corresponding corpus artifact 13451227857 was independently read, matched to provider ZIP SHA-256 3cc363ea04f598fcae45adc3dfc5968d6ed02250f12a38ff0fd687851c428b58, and binds the actual checkout above with success. Main corpus and namespace-delete payload comparisons also pass. Bounded summary retention is not full raw retention.

Publication followers were rechecked on the exact candidate: native publication, alias promotion and GitHub Release remain dispatch-only; retired PHP publication remains disabled; no chart files enter the automatic Helm publishing path. Source queue/main analysis does not authorize registry, alias, release or runtime operations.

I own this entry's original result, actual-main identity/checks and cleanup. The earlier 11f43a17 queue failure remains failed. No further submission or unchanged-source retry is automatic.

Original queue group is now independently fetched as cf069f6396f29e8f90563a6d75108779e30c3a2a, the same reviewed tree and ordered parents above. Its original attempt-1 runs are Shared Server fixtures 42107088520, Public Boundary 42107088720 and PHPUnit Feature 42107088684. They are in progress; no terminal or actual-main acceptance is claimed yet.

The original group completed SUCCESS at 21:15:13Z (Shared Server fixtures, all 45 provider jobs successful). Its original Feature and Boundary workflows also passed. GitHub normally merged this exact group as actual main cf069f6396f29e8f90563a6d75108779e30c3a2a at 21:15:32Z, with the same reviewed tree and ordered parents, independently reconciled by Git and REST with verified GitHub signature. Actual-main workflows have started; their terminal acceptance and branch cleanup remain mine.

Merged via the queue into main with commit cf069f6 Nov 5, 2026
67 checks passed
@rmcdaniel
rmcdaniel deleted the feat/server-1020-protected-alias-promotion branch November 5, 2026 21:32
@rmcdaniel

rmcdaniel commented Nov 5, 2026 •

Copy link
Copy Markdown
Member Author

Actual-main acceptance and cleanup are complete.

Actual merge cf069f6396f29e8f90563a6d75108779e30c3a2a, tree 805a31ffef57f83740c830c9e6eadf40efffaa19, has exact ordered parents [d8eb3bc1, 22ef3f86], independently matched by Git and REST with verified GitHub signature. All five original main workflows passed at attempt 1: Public Boundary 42110985861, Shared Server fixtures 42110985464, SonarQube 42110985378, dynamic CodeQL 42110984979, PHPUnit Feature 42110985544. Provider jobs total 14 success / six event-intended skips, with no failure/pending. The main fixture workflow reuses the exact successful original queue qualification and refreshes main inputs. The separate merge-queue Sonar workflow-run is intentionally skipped.

All current checks on the actual commit are terminal: 66 success / eight declared skips, including both original-group and actual-main check runs on this same commit. Each required context is successful. These are not old 11f43a17 results; that earlier queue failure remains failed. Current-head normal PR qualification, the original corrected queue and actual-main verification retain their distinct receipts.

The root checkout is clean and fast-forwarded to actual main. Exact remote heads and main ancestry were verified before normal deletion of the merged promotion branch, the carried MariaDB pacing branch and its merged source backup. Independent listings are empty and REST returns 404 for all three. Both clean owned worktrees and local source branches are removed. Active SBOM, retry-contract, schedule-parser and planning refs are preserved.

Central #307 has also completed actual-main verification and cleanup, so the policy transition now requires the separate promotion workflow. The changed source and CI qualification are accepted; no registry/alias promotion, App/settings, release, PHP publication, SBOM generation or production operation was invoked by this acceptance. Server owns the next ordinary #1039 actual-base source qualification and remaining artifact qualification packet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant