Skip to content

Fail site publication closed on matrix failures#543

Merged
Krilliac merged 3 commits into
Workingfrom
agent/normalize-site-ci-evidence
Jul 18, 2026
Merged

Fail site publication closed on matrix failures#543
Krilliac merged 3 commits into
Workingfrom
agent/normalize-site-ci-evidence

Conversation

@Krilliac

@Krilliac Krilliac commented Jul 18, 2026

Copy link
Copy Markdown
Owner

What changed

  • derive repository-site publication status from every job in the exact triggering workflow attempt
  • require top-level success plus only completed success/skipped jobs before publishing current
  • validate paginated job count, unique IDs, run ID, source SHA, and attempt identity before checkout
  • keep the Actions read token scoped to the pre-checkout proof step and pass only the normalized conclusion to the isolated writer
  • keep partial reruns fail-closed; a fresh commit is required to promote the site
  • assert the final payload state matches the normalized conclusion before the write-capable job commits it

Why

Build run 29634568010 reported top-level success even though build-macos (Release, OpenGL, OFF) failed Monitor_TweenSustainedLoad. The original publisher copied only the top-level conclusion and published current/success, masking the matrix failure on the live site.

The readiness statuses remain evidence-bound: RDY-000 and DOC-400 stay in progress until legacy repository claims are reconciled and exact post-merge site evidence is attached.

Validation

  • repository contract: 22 capabilities, 18 gates, 55 work items
  • handoff render check passes
  • workflow YAML parses and both shell blocks pass bash -n
  • exact normalization fixtures cover matrix failure, all-pass, cancelled workflow, and partial rerun
  • known run 29634568010 normalizes 25 jobs to failure with the macOS job identified
  • clean exact-commit generator produced and validated 1,173 documentation routes with publication.state=blocked and conclusion=failure
  • git diff --check passes

@github-actions

github-actions Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

🔍 CodeQL Report

Language: c-cpp
Errors: 0 | Warnings: 50 | Notes: 0

⚠️ Warnings (50)
Rule Location Message
cpp/toctou-race-condition ThirdParty/SDL2/src/audio/SDL_audiodev.c:53 The filename being operated upon was previously checked, but the underlying file may have been changed since then. The filename being operated upon was previously checked, but the underlying file may have been changed since then.
cpp/toctou-race-condition ThirdParty/SDL2/src/haptic/linux/SDL_syshaptic.c:252 The filename being operated upon was previously checked, but the underlying file may have been changed since then.
cpp/toctou-race-condition ThirdParty/Utils/miniz/miniz_zip.c:4613 The filename being operated upon was previously checked, but the underlying file may have been changed since then.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:608 Comparison between l of type Type and mNumLayers of wider type uint.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:587 Comparison between l of type Type and mNumLayers of wider type uint.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:542 Comparison between l of type Type and mNumLayers of wider type uint.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:522 Comparison between l of type Type and mNumLayers of wider type uint.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:499 Comparison between l of type Type and mNumLayers of wider type uint.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:476 Comparison between l of type Type and mNumLayers of wider type uint.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:453 Comparison between l of type Type and mNumLayers of wider type uint.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:430 Comparison between l of type Type and mNumLayers of wider type uint.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:269 Comparison between broadphase_layer of type Type and mNumLayers of wider type uint.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:230 Comparison between broadphase_layer of type Type and mNumLayers of wider type uint.
cpp/comparison-with-wider-type ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp:68 Comparison between l of type Type and mNumLayers of wider type uint.
cpp/wrong-type-format-argument ThirdParty/AI/recastnavigation/Recast/Source/RecastRegion.cpp:1658 This format specifier for type 'int' does not match the argument type 'long'.
cpp/integer-multiplication-cast-to-long ThirdParty/Utils/json/nlohmann_json.h:629 Multiplication result may overflow 'int' before it is converted to 'size_type'.
cpp/integer-multiplication-cast-to-long ThirdParty/Utils/json/nlohmann_json.h:630 Multiplication result may overflow 'int' before it is converted to 'size_type'.
cpp/integer-multiplication-cast-to-long ThirdParty/AI/recastnavigation/Recast/Source/RecastMesh.cpp:1137 Multiplication result may overflow 'int' before it is converted to 'unsigned long'.
cpp/integer-multiplication-cast-to-long ThirdParty/AI/recastnavigation/Recast/Source/RecastMesh.cpp:878 Multiplication result may overflow 'int' before it is converted to 'unsigned long'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp:209 Multiplication result may overflow 'unsigned int' before it is converted to 'unsigned long'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp:1026 Multiplication result may overflow 'unsigned int' before it is converted to 'unsigned long'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp:1162 Multiplication result may overflow 'unsigned int' before it is converted to 'unsigned long'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp:1615 Multiplication result may overflow 'unsigned int' before it is converted to 'size_type'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp:531 Multiplication result may overflow 'unsigned int' before it is converted to 'size_type'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp:589 Multiplication result may overflow 'unsigned int' before it is converted to 'size_type'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp:626 Multiplication result may overflow 'unsigned int' before it is converted to 'size_type'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/Physics/Hair/HairSettings.cpp:593 Multiplication result may overflow 'unsigned int' before it is converted to 'size_type'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/Math/DynMatrix.h:15 Multiplication result may overflow 'unsigned int' before it is converted to 'size_type'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.cpp:51 Multiplication result may overflow 'unsigned int' before it is converted to 'size_type'.
cpp/integer-multiplication-cast-to-long ThirdParty/Physics/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.cpp:91 Multiplication result may overflow 'unsigned int' before it is converted to 'size_type'.
... ... 20 more findings omitted

Updated: 2026-07-18T08:30:21Z — this comment is updated in-place, not duplicated.

@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage (GCC + lcov)

Utils/StringUtils.h                            |18.1%   116| 0.0%  21|    -    0
Utils/Telemetry.h                              |20.6%   136| 0.0%  23|    -    0
Utils/ThreadDebugger.h                         |11.6%   199| 0.0%  23|    -    0
Utils/ThreadSafeQueue.h                        |27.5%    40| 0.0%  11|    -    0
Utils/Timer.cpp                                |19.4%    36| 0.0%   7|    -    0
Utils/Timer.h                                  | 100%     2| 0.0%   2|    -    0
Utils/TimerManager.h                           |18.6%   102| 0.0%  19|    -    0
Utils/Tween.h                                  |26.3%    38| 0.0%   6|    -    0
Utils/UUID.h                                   |43.2%    37| 0.0%  16|    -    0
Utils/Validate.h                               |    -     0|    -   0|    -    0
Utils/WineDetection.cpp                        |23.1%    39| 0.0%   9|    -    0

[/home/runner/work/SparkEngine/SparkEngine/SparkSDK/Include/Spark/]
IEngineContext.h                               |7300%     1| 0.0%   1|    -    0
IModule.h                                      | 800%     1| 0.0%   1|    -    0
ServiceInterfaces.h                            | 200%     3| 0.0%   3|    -    0
Version.h                                      |    -     0|    -   0|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/EmptyProject/Source/]
GameModule.h                                   |38.9%    18| 0.0%   6|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/FPSStarter/Source/]
GameModule.h                                   |36.0%    25| 0.0%   7|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MultiplayerArena/Source/]
GameModule.h                                   |34.6%    26| 0.0%   7|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/PlatformerKit/Source/]
GameModule.h                                   |25.0%    32| 0.0%   7|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/RPGStarter/Source/]
GameModule.h                                   |37.5%    24| 0.0%   8|    -    0
================================================================================
                                         Total:|28.4% 39533| 0.0%  6k|    -    0

Per-Subsystem Coverage

Subsystem Lines Hit Coverage Threshold Status
AI 3805 1083 28.5% 35%
Animation 1726 538 31.2% 35%
Audio 0 0 0% 30%
Camera 0 0 0% 40%
Core 5045 3085 61.1% 40%
ECS 466 251 53.9% 40%
Editor 7598 3084 40.6% 25%
GameModules 8007 4414 55.1% 30%
Graphics 18000 9179 51% 30%
Networking 3755 2537 67.6% 35%
Physics 0 0 0% 35%
Scripting 1014 326 32.1% 30%
Utils 10293 6624 64.4% 60%

Total: 52.1% (31121/59709 lines)

@Krilliac
Krilliac marked this pull request as ready for review July 18, 2026 08:49
@Krilliac
Krilliac merged commit d60ba28 into Working Jul 18, 2026
30 checks passed
@Krilliac
Krilliac deleted the agent/normalize-site-ci-evidence branch July 18, 2026 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant