Skip to content

integration: qualify engine, SDK and packaging for Working - #616

Draft
Krilliac wants to merge 1779 commits into
Workingfrom
codex/public-weather-sdk-20261003
Draft

Krilliac wants to merge 1779 commits into
Workingfrom
codex/public-weather-sdk-20261003

Conversation

@Krilliac

@Krilliac Krilliac commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Windows modifier handling now resolves physical Shift/Ctrl/Alt sides while preserving generic unions and frame edges. Installed FPS dispatch captures GUI output with closed stdin. H8/H9 were reconstructed from retained thread patch output because the unpublished Git objects were unavailable. Existing assertions, selections, timeouts, skip ceilings and release gates remain intact.

Draft head 1a8dfbd; installed-qualification product 7a07294 is pinned at all seven sites in the dedicated workflow. Later commits update Shipping reproducibility, test source-root/port handling, material-size arithmetic, Clang-Tidy budgets, TSan statistics validation, Windows test-lane accounting, MSI transform staging and the generated build-matrix inventory.

Hosted installed ABI10 weather qualification passed at the pinned 7a072946a product revision on current-head run 37503158807: both source contracts and installed-native jobs succeeded.

The material editor now decodes saved .spkmat values transactionally, including all ten parameter types, texture paths with spaces, UV transforms, render state and the legacy Ambient Occlusion slot. Missing, malformed, duplicate, nonfinite and out-of-project inputs preserve the active dirty material. Double-clicking a contained .spkmat asset opens the persistent Material Editor.

At earlier product revision 3e4c296, fresh MSVC Release configure/build passed with 2,450 dependency records and zero foreign dependencies. All 44 selected native gates passed in 520.09 seconds. Main suite: 8,176 passed, zero failed, 23 skipped; 277,424 assertions passed. The ten-case material gate passed 91 assertions, and normal Windows corpus replay passed all eight seeds. At current head 1a8dfbd65, a clean MSVC Release build passed, followed by all 44 selected native CTest gates in one vcvars64 run (560.22 seconds). This includes the full engine suite, installed SDK consumer, installer and notice coverage, editor/package/runtime, graphics, security and recovery drills.

The production parser has a sanitizer-backed fuzz target and eight-seed corpus. At eea548479, Windows MSVC libFuzzer/ASan passed 50,000 iterations. Linux Clang/libc++ ASan+UBSan built and passed the smoke target at an earlier revision; hosted fuzz compilation and all 75 smoke targets also passed earlier. FuzzPolicy and all 244 adversarial policy cases passed locally at eea548479. Clang-Tidy debt was reduced from 15,660 to 15,659.

At aed904c9c, deterministic documentation passed two isolated generations plus links, anchors, manifests and routes. The current head 1a8dfbd65 refreshed the exact build-matrix inventory after the CMake test-lane split; local inventory parity and hosted source contracts passed. Explicit MSVC CMake configure and Release build passed at the current head.

Fresh ZIP, NSIS and MSI packages were generated from a clean 1a8dfbd65 Release build. The ZIP's Engine, Editor and FPS binaries matched that build byte for byte when packaged. The unsigned per-user MSI passed identity/version, install, installed FPS runtime, exact-hash repair, uninstall and external data preservation. A read-only copy of that MSI produced the interruption transform without changing the input or leaving a temporary MSI. Owned-window relocated FPS input/save/load/negative/lifecycle acceptance passed. A disposable Blank3D module rebuilt against the relocated SDK used 103 package headers, zero engine-source headers, and ran 713 frames with zero lifecycle faults. A later explicit reconfigure relinked the same commit to different binary hashes for the 44-gate batch; the package binding is to the first clean build, and hosted Shipping remains a separate gate.

At earlier product revision 3e4c296, direct relocated-editor testing opened the authored material at roughness 0.248, changed and saved it at 0.348, then verified 0.348 in a fresh editor process. Both D3D11/WARP editor runs had zero presentation failures. The 1a8dfbd65 relocated editor separately loaded the disposable project and rendered 10,000 D3D11/WARP frames without a presentation failure. Current-head click/save interaction remains unverified because gated UI control is currently disabled.

Hosted Windows Shipping reproducibility passed at eea548479: 33 installed outputs compared, zero differences or missing outputs, and both independent builds passed strict closure of all 17 locked dependencies (Build run 37470843883).

At eea548479, Linux TSan ran 8,340 cases (8,325 passed, 15 skipped, zero test failures) but failed on one reported data race reached while a deferred Vulkan command list was freed; both conflicting accesses are in libVkLayer_khronos_validation. The validated artifact is retained from Build run 37470843883. A same-revision rerun was cancelled by a PR push before tests began; the new 1a8dfbd65 CI run must retest TSan. The finding is under investigation; no suppression or skip-ceiling change has been made.

Draft; not fully merge-ready or public-release qualified. Prior Build run 37470843883 at eea548479 finished red: required Linux TSan reported a race, the Shipping SparkGameFPS MSI interruption drill could not open its temporary database, and aggregate statistics and the Required CI Gate failed downstream. Clang-Tidy, VS2022 Release, CodeQL, installed ABI10, Windows installer, Windows Shipping matrix, and 33/33-output Shipping reproducibility passed at that revision. Advisory VS2026 Release also failed: its main suite reached the 240-second wrapper timeout after starting 8,128 of 8,309 cases, and the fail-closed CPU-floor scan withheld 14.44-reviewed CRT/STL exemptions from 14.51 PDBs. Advisory MSan was cancelled at the two-hour job limit with only partial test evidence. The MSI and VS2026 test-population fixes were pushed at aed904c9c; current head 1a8dfbd65 refreshes the stale generated inventory. Exact-head installed ABI10 and local 44-gate native qualification passed, but Build run 37503168539 remains queued and exact-head Wiki/Site Data runs were cancelled. No 14.51 CPU-floor exemption or TSan suppression has been granted. Signed clean-host upgrade/rollback, protected producer authority, broader panel/gameplay/multiplayer/hardware coverage and final hosted analysis remain pending. No merge or release is authorized.

Krilliac and others added 30 commits September 30, 2026 10:56
…e shrunk prototype inventory

acceptanceStatus[0] (still unmet) notes that nine prototype modules add
invalid-state rules through GetStateValidation (SDK v8), SparkGame and
VisualScript use IConsole/ModuleLog, and the inventory lost 15 private-header
entries, and names what remains (ECS components, EventBus, subsystem headers,
seven *EngineSystems.cpp). acceptanceStatus[1] lists the new SDK and engine
files and the PrototypeModuleKit_Helpers count (5 with ImGui / 4 without).
ENGINE_READINESS_HANDOFF.md re-rendered; tools/site-data/validate.py passes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The three swap-race regressions raise the family from 18 to 21 on POSIX and
20 on Windows, where the mod.json symlink swap is compiled out.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PostProcessPass::Tonemapping now executes on the Linux RHI path. When the
PostProcessingPipeline enables it with the variant the shipped PostProcess
shader implements (ACES, contrast 1), BeginFrame routes the scene into the
R16G16B16A16_FLOAT hdrLighting target through a format-matched forward
pipeline, and RenderScene ends with RenderPostProcessing, which binds
FullscreenQuad + PostProcess (GLSL on OpenGL, SPIR-V on Vulkan), its
constants and a linear-clamp sampler, and draws the HDR scene into the back
buffer. A frame asking for tone mapping the pass cannot perform renders to
the back buffer, is counted in tonemap.rejectedFrames, logged once, and
reports no post pass. Shutdown drains the device before releasing the render
targets the last draw reads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… and entries

The GOV-400 font lane made parse_package_rules() require an embeddedFonts
block, which the rules fixture in Tests/Tools/test_generate_sbom.py lacked:
18 of 46 tests errored (that suite runs in CI and as a CTest). Give the
fixture a non-matching embeddedFonts block so the real rules file stays
fail-closed.

generate-sbom.py reconcile also failed every font entry
cmake/SparkThirdPartyAudit.cmake writes into the packaged inventory
('<family> (editor font)', '<family> (font embedded in <component>)') as an
unlocked dependency. Fonts are the notice gate's, not dependencies.lock's:
report them under fontEntries and keep failing any other unlocked name.
New test fails on the old reconcile and passes now; SBOM suite 47 OK.
Also corrects the embedded-fonts.json description to name the real
embeddedFonts.markers key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The character row encoder writes a subnormal float as its shortest form
("1e-40"), which std::stof refused with out_of_range, so a saved character
could never load again. The decoder now reads floats through
StringUtils::ParseFloatingExact (from_chars acceptance rules, available on
every lane's standard library), which also refuses the leading space, plus
sign and hex forms the encoder never writes.

The rts-save-snapshot corpus is marked -text like every other corpus, so a
CRLF checkout cannot change the bytes its content digest pins. Also applies
clang-format 18.1.3 to two harnesses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nts description fix

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ctor starts

The windowed hosts (SparkEngineWindowsInit LoadAndInitModules, then
InitConsole -> GameplayLifecycleShared) load game modules before the lifecycle
calls InvalidStateDetector::Initialize(). With the SDK v8 route as first
landed, IStateValidation::AddRule refused every rule a module added from
OnLoad on those hosts, and Initialize() cleared the list anyway, so no
prototype module rule would ever have run there.

- InvalidStateDetector::Initialize() no longer clears m_rules; Shutdown()
  still empties it, so nothing survives from an earlier run.
- EngineSdkStateValidation::AddRule no longer refuses while the detector is
  not initialized; it still refuses an empty name, category or check.
- IStateValidation.h, InvalidStateDetector.h and Creating-a-Game-Module.md
  describe the new contract.

PrototypeModuleKit_StateRulesRegisterThroughSdkContext now adds a rule
through a real EngineContext while the detector is shut down, requires it to
be kept, to survive Initialize() and to run on the host's scan. Against the
previous engine code the test fails (4 assertions: AddRule false, rule count,
HasRule, runs == 0).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… it records

CreateTonemapPass moves from GraphicsDeviceResourcesLinuxShaders.cpp (which it
pushed past the 500-line .cpp threshold) into GraphicsRenderPipelinesLinux.cpp
next to RenderPostProcessing, declared in GraphicsEngineRHI.h. The forward and
tone-mapping pass tests brace every control-statement body.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dex release lanes

docs/update-all-docs.sh on d07f261 (WSL, all declared generators
completed); refreshes File-Tree LOC and the symbol/function indexes for the
16 merged release lanes since 2c1348a.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GatewayAreaControl.cpp braces 85 -> 84: the epoch-state reader moved to
GatewayAreaControlState.cpp, whose statements are braced. Measured with
clang-tidy 18.1.8 (all checks) on every changed shipped-product TU, base
c14bca6 vs head, deduplicated by (path, line, column, check) as the budget
counts; no other (file, check) pair changed.

The build-matrix inventory picks up the six new fuzz executables and the
shifted Tests/CMakeLists.txt lines, SparkGameMMO's module content inventory
records MMOCharacterRecord.{h,cpp} and its Utils/StringUtils.h include, and
module.json pins the four new MMOPersistence_ tests (17 -> 21).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nt lines

The per-platform SEC3Gameplay count block shifted later Tests/CMakeLists.txt
registrations by eight lines; only line numbers and line-derived ids change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ws record

SparkFuzzRTSPersistence failed to compile from the standalone fuzz-policy
project: RTSPersistence.h reaches Spark/Version.h, whose generated
Spark/GeneratedVersion.h was not on the target's include path. It now reuses
the header generated for SparkFuzzReflectedScene, like the chat target.

mmo-character-record listed MMOPersistenceSystem.cpp, so marking it fuzzed also
counted the inventory, guild, guild-member and id-suffix row decoders in that
file, which no harness drives. The file moves to a new blocked
mmo-persistence-rows record (137 parsers, 87 without a target); the fuzzed
record keeps MMOCharacterRecord.{h,cpp}.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nto r3/gov400-fonts

Both lines hardened the GOV-400 notice gates; every conflict keeps both
behaviours:

- PackageNoticeCoverageRules.json: the embeddedFonts block and the
  systemRuntime/noticeText payload rules, assetManifests and
  firstPartyRoots; the description names both.
- generate_third_party_notices.py and ValidateStagedPackageNotices.cmake:
  embedded-font rule parsing and binary scanning (before rule lookup, so it
  also runs on first-party binaries in closed world) alongside the
  system-runtime, notice-text, closed-world and strict asset-manifest
  checks. PackageCoverage is built by keyword so the new counters cannot
  be transposed. The pass summary keeps the embedded-font count and the
  closed-world line.
- SparkThirdPartyAudit.cmake: the notice gets the embedded-font entries
  and the optional MSVC runtime entry.
- TestInstallTreeNoticeCoverage.cmake and the Python parity check parse
  the merged summary line and compare the embedded-font count across both
  implementations.
- Tests and GOV-400-DECISIONS.md: the union of both sides' cases and text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…8 notice hardening)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SparkFuzzRTSPersistence linked RTSPersistence.cpp and RTSCommandSystem.cpp
for Validate and IsCommandValid, but GNU ld reports the undefined references of
Capture, Apply and the command system's unit/pathfinder calls even in sections
--gc-sections drops, so the target never linked. RTSPersistence::Validate (its
validators braced, logic unchanged) and RTSCommandSystem::IsCommandValid move
to Core/RTSPersistenceValidation.cpp; the target links that file and the codec
only. SparkTests compiles the new file beside the RTS sources it already lists;
the module globs it.

The SEC-120 acceptance note now reports the measured 50 of 137 parsers
fuzzed (it still said 10 of 141); the criterion stays unmet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GraphicsEngineLinuxFrame.cpp (SPARK_LOG_ONCE) and GraphicsRenderPipelinesLinux.cpp
(SPARK_LOG_ERROR) used the logging macros without including Utils/LogMacros.h,
so SparkEngineLib did not compile on Linux.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…braced

RTSPersistence.cpp braces 27 -> 5 and RTSCommandSystem.cpp braces 18 -> 17,
measured with clang-tidy 18.1.8 (all checks, deduplicated) on the changed
translation units, base c14bca6 vs head; RTSPersistenceValidation.cpp
reports no diagnostics of its own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…console and state-validation adapters

SparkGame now registers its showcase commands through IEngineContext::GetConsole()
and its Base rule through GetStateValidation(). The hand-written host contexts in
TestModuleABI (NullEngineContext), TestSparkGameShowcase (ShowcaseHostContext)
and TestLIFE200ModuleReloadReal (Life200EngineContext) returned nullptr for both,
so the module ran without commands and 9 tests failed on Linux gcc Debug at
e4367c0 (ModuleABI_SparkGameShutdownReleasesHostRegistryCallbacksBeforeUnload,
six SparkGameShowcase_*, both LIFE200_SparkGame*); all of them pass at the base
c14bca6.

Each context now holds the production EngineSdkConsole and
EngineSdkStateValidation, as the real EngineContext does, so the assertions on
the host SimpleConsole and InvalidStateDetector are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds the six targets to the fuzz-policy wiki page: what each harness drives
and checks, the defects its regression seeds pin, the pre-fix replays that
abort, the 151-second local campaign counts, the mmo-persistence-rows split
and the RTS validator move. No target has hosted runtime evidence yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mapping passes

Criteria 2 and 3 stay unmet: the forward draw-list and tone-mapping passes now
bind and draw on Lavapipe under a forced validation layer with zero errors
(local runs only), but the shadow, deferred and remaining post passes have no
Linux RHI pipeline and there is no vulkan-lavapipe job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

# Conflicts:
#	Tools/clang-tidy-budget.json
#	docs/readiness/build-matrix-inventory.json
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

# Conflicts:
#	Tools/clang-tidy-budget.json
#	docs/readiness/build-matrix-inventory.json
…Game.cpp tidy improvement

Hosted run on 5c95219:
- Blocking CodeQL (c-cpp) reported two new cpp/wrong-type-format-argument
  findings in Tests/Fixtures/CrashArtifactSandboxProbe.cpp: DWORD values
  (GetLastError, the integrity RID, the child exit code) passed to %lu/%lx.
  Cast each to unsigned long so the argument type matches the conversion on
  every data model.
- Clang-Tidy: GameModules/SparkGameFPS/Source/Game/Game.cpp
  bugprone-exception-escape budget 1 is stale (0 remain after the MOD-310 and
  fps-visible-frame merge); remove the entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eforeModules orders against console startup

Moving SparkGame onto ModuleLog dropped the "Loading SparkGame showcase module"
line that cmake/RunSparkLinuxSDLConsoleStartup.cmake locates to prove the module
loads after SimpleConsole initializes, so that test failed with "no SparkGame
OnLoad evidence". Log the same text through the SDK logger.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gets

The first 151-second campaign's logs were lost to a machine restart, so the
campaign was rerun at 76f3f25 (Clang 21 libFuzzer, ASan and UBSan, 151 s
each, no crash, leak, timeout or artifact) and the page now quotes those
counts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ylibs

The closed-world first-party rule for game-module libraries matched the
Linux lib*.so naming but not macOS lib*.dylib, so on build-macos
LicenseInventory_InstallTreeNoticeCoverage classified the 11 installed
module dylibs and their .sparkabi sidecars as unclassified (497 uncovered
instead of the 475 NOASSERTION assets). Extend the pattern to .dylib and
pin every platform's module naming in the closed-world parity cases, with
a non-Spark dylib that must stay unclassified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g drain

SecureTransport_Handshake_LowOrderHelloFloodDoesNoCryptoWork counted the
server's ConnectRejected replies with a single non-blocking drain right
after Update(). The server sends all 50 synchronously, but macOS loopback
delivery is asynchronous, and build-macos OpenGL saw 47 of 50. Wait up to
two seconds for all of them, then drain the rest, so the exact count is
still enforced and an extra reject still fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…quotes only

The windows-vs2022 Release "Execute documented subsystem commands" step
failed on wiki/advanced/Testing.md:585, whose filter
-R '^FPSVisibleFrame_(CheckerContract|AuthoredAndFallback)$' was cut at the
regex '|' as if it were a pipeline. The truncated selection could not be
queried, the step exited 1, and the later Run Tests step never ran, so
build/ctest-junit.xml was never written.

shell_segments() now splits on ; & | and newlines outside single or double
quotes, and falls back to splitting on every operator when a quote is
unbalanced, so a malformed command is never split less than before. The
checker, the static work-item validator and preset_references share it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d matrix resolves them

The Windows Shipping build-matrix parity check has reported 7 blocking
findings since the fuzz-replay executables landed: add_executable(${_target})
inside spark_add_fuzz_replay() was an unresolvable name, so the configured
windows-validation targets SparkFuzzReplay{Archive,CrashManifest,JsonUtils,
SceneManifest} had no source declaration (configured-target-undeclared) and
a fourth target-name-unresolved warning appeared. The pending-authority
validator also still pinned the SparkGameModule.cmake warning at line 190
after b6331ac re-baselined it to 245.

Each replay executable is now a literal add_executable() and
spark_fuzz_replay_test() attaches the shared settings and the corpus test;
the generated build graph and test registrations are byte-identical to
before. The pending validator pins the moved line (same warning, no new
accepted finding); inventory and parity baselines are regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Code Coverage (GCC + lcov)

ServerApplication.cpp                          | 6.2%   421| 0.0%  24|    -    0
ServerHealth.cpp                               | 9.8%    92| 0.0%   9|    -    0

[/home/runner/work/SparkEngine/SparkEngine/SparkShaderCompiler/src/]
BatchOutputPath.h                              | 8.3%    12| 0.0%   1|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/Blank3D/Source/]
GameModule.h                                   |20.5%    83| 0.0%  14|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/EmptyProject/Source/]
GameModule.h                                   |26.7%    60| 0.0%  13|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/FPSStarter/Source/]
GameModule.h                                   |14.8%   384| 0.0%  48|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MMOStarter/Source/]
GameModule.h                                   |12.7%   237| 0.0%  26|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MultiplayerArena/Source/]
GameModule.h                                   |16.9%   183| 0.0%  25|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/PlatformerKit/Source/]
GameModule.h                                   |12.2%   245| 0.0%  28|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/RPGStarter/Source/]
GameModule.h                                   |11.5%   338| 0.0%  37|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/ThirdPersonStarter/Source/]
GameModule.h                                   |10.6%   226| 0.0%  21|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/TopDownStarter/Source/]
GameModule.h                                   |10.8%   223| 0.0%  20|    -    0
================================================================================
                                         Total:|21.1%  102k| 0.0% 15k|    -    0

Per-Subsystem Coverage

Subsystem Lines Hit Coverage Threshold Status
AI 3876 1587 40.9% 35% ✅
Animation 2025 1037 51.2% 35% ✅
Audio 2005 1050 52.4% 30% ✅
Camera 317 317 100% 40% ✅
Core 11887 8283 69.7% 40% ✅
ECS 1226 706 57.6% 40% ✅
Editor 23021 11947 51.9% 25% ✅
GameModules 49694 25292 50.9% 30% ✅
Graphics 24769 13207 53.3% 30% ✅
Networking 6550 5149 78.6% 35% ✅
Physics 3607 1741 48.3% 35% ✅
Scripting 2849 2505 87.9% 30% ✅
Utils 14102 10486 74.4% 60% ✅

Selected-subsystem coverage: 57.1% (83307/145928 lines)

LCOV corpus coverage: 58.6% (102461/174767 lines); 28839 instrumented lines are outside the threshold table.

Signed-off-by: Krill <natew94@gmail.com>
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Code Coverage (GCC + lcov)

ServerApplication.cpp                          | 6.2%   421| 0.0%  24|    -    0
ServerHealth.cpp                               | 9.8%    92| 0.0%   9|    -    0

[/home/runner/work/SparkEngine/SparkEngine/SparkShaderCompiler/src/]
BatchOutputPath.h                              | 8.3%    12| 0.0%   1|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/Blank3D/Source/]
GameModule.h                                   |20.5%    83| 0.0%  14|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/EmptyProject/Source/]
GameModule.h                                   |26.7%    60| 0.0%  13|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/FPSStarter/Source/]
GameModule.h                                   |14.8%   384| 0.0%  48|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MMOStarter/Source/]
GameModule.h                                   |12.7%   237| 0.0%  26|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MultiplayerArena/Source/]
GameModule.h                                   |16.9%   183| 0.0%  25|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/PlatformerKit/Source/]
GameModule.h                                   |12.2%   245| 0.0%  28|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/RPGStarter/Source/]
GameModule.h                                   |11.5%   338| 0.0%  37|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/ThirdPersonStarter/Source/]
GameModule.h                                   |10.6%   226| 0.0%  21|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/TopDownStarter/Source/]
GameModule.h                                   |10.8%   223| 0.0%  20|    -    0
================================================================================
                                         Total:|21.1%  102k| 0.0% 15k|    -    0

Per-Subsystem Coverage

Subsystem Lines Hit Coverage Threshold Status
AI 3876 1587 40.9% 35% ✅
Animation 2025 1037 51.2% 35% ✅
Audio 2005 1050 52.4% 30% ✅
Camera 317 317 100% 40% ✅
Core 11887 8283 69.7% 40% ✅
ECS 1226 706 57.6% 40% ✅
Editor 24229 12204 50.4% 25% ✅
GameModules 49694 25290 50.9% 30% ✅
Graphics 24769 13207 53.3% 30% ✅
Networking 6550 5149 78.6% 35% ✅
Physics 3607 1741 48.3% 35% ✅
Scripting 2849 2505 87.9% 30% ✅
Utils 14102 10486 74.4% 60% ✅

Selected-subsystem coverage: 56.8% (83562/147136 lines)

LCOV corpus coverage: 58.4% (102716/175975 lines); 28839 instrumented lines are outside the threshold table.

Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage (GCC + lcov)

lcov: ERROR: no valid records found in tracefile coverage.info
	(use "lcov --ignore-errors empty ..." to bypass this error)

Per-Subsystem Coverage

Subsystem Lines Hit Coverage Threshold Status
AI 0 0 0% 35% ❌
Animation 0 0 0% 35% ❌
Audio 0 0 0% 30% ❌
Camera 0 0 0% 40% ❌
Core 0 0 0% 40% ❌
ECS 0 0 0% 40% ❌
Editor 0 0 0% 25% ❌
GameModules 0 0 0% 30% ❌
Graphics 0 0 0% 30% ❌
Networking 0 0 0% 35% ❌
Physics 0 0 0% 35% ❌
Scripting 0 0 0% 30% ❌
Utils 0 0 0% 60% ❌

Selected-subsystem coverage: 0% (0/0 lines)

LCOV corpus coverage: 0% (0/0 lines); 0 instrumented lines are outside the threshold table.

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage (GCC + lcov)

ServerApplication.cpp                          | 6.2%   421| 0.0%  24|    -    0
ServerHealth.cpp                               | 9.8%    92| 0.0%   9|    -    0

[/home/runner/work/SparkEngine/SparkEngine/SparkShaderCompiler/src/]
BatchOutputPath.h                              | 8.3%    12| 0.0%   1|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/Blank3D/Source/]
GameModule.h                                   |20.5%    83| 0.0%  14|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/EmptyProject/Source/]
GameModule.h                                   |26.7%    60| 0.0%  13|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/FPSStarter/Source/]
GameModule.h                                   |14.8%   384| 0.0%  48|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MMOStarter/Source/]
GameModule.h                                   |12.7%   237| 0.0%  26|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MultiplayerArena/Source/]
GameModule.h                                   |16.9%   183| 0.0%  25|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/PlatformerKit/Source/]
GameModule.h                                   |12.2%   245| 0.0%  28|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/RPGStarter/Source/]
GameModule.h                                   |11.5%   338| 0.0%  37|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/ThirdPersonStarter/Source/]
GameModule.h                                   |10.6%   226| 0.0%  21|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/TopDownStarter/Source/]
GameModule.h                                   |10.8%   223| 0.0%  20|    -    0
================================================================================
                                         Total:|21.1%  102k| 0.0% 15k|    -    0

Per-Subsystem Coverage

Subsystem Lines Hit Coverage Threshold Status
AI 3876 1587 40.9% 35% ✅
Animation 2025 1037 51.2% 35% ✅
Audio 2005 1050 52.4% 30% ✅
Camera 317 317 100% 40% ✅
Core 11887 8283 69.7% 40% ✅
ECS 1226 706 57.6% 40% ✅
Editor 24229 12204 50.4% 25% ✅
GameModules 49694 25290 50.9% 30% ✅
Graphics 24769 13207 53.3% 30% ✅
Networking 6550 5149 78.6% 35% ✅
Physics 3607 1741 48.3% 35% ✅
Scripting 2849 2505 87.9% 30% ✅
Utils 14102 10486 74.4% 60% ✅

Selected-subsystem coverage: 56.8% (83562/147136 lines)

LCOV corpus coverage: 58.4% (102716/175975 lines); 28839 instrumented lines are outside the threshold table.

Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage (GCC + lcov)

ServerApplication.cpp                          | 6.2%   421| 0.0%  24|    -    0
ServerHealth.cpp                               | 9.8%    92| 0.0%   9|    -    0

[/home/runner/work/SparkEngine/SparkEngine/SparkShaderCompiler/src/]
BatchOutputPath.h                              | 8.3%    12| 0.0%   1|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/Blank3D/Source/]
GameModule.h                                   |20.5%    83| 0.0%  14|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/EmptyProject/Source/]
GameModule.h                                   |26.7%    60| 0.0%  13|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/FPSStarter/Source/]
GameModule.h                                   |14.8%   384| 0.0%  48|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MMOStarter/Source/]
GameModule.h                                   |12.7%   237| 0.0%  26|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MultiplayerArena/Source/]
GameModule.h                                   |16.9%   183| 0.0%  25|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/PlatformerKit/Source/]
GameModule.h                                   |12.2%   245| 0.0%  28|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/RPGStarter/Source/]
GameModule.h                                   |11.5%   338| 0.0%  37|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/ThirdPersonStarter/Source/]
GameModule.h                                   |10.6%   226| 0.0%  21|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/TopDownStarter/Source/]
GameModule.h                                   |10.8%   223| 0.0%  20|    -    0
================================================================================
                                         Total:|21.1%  102k| 0.0% 15k|    -    0

Per-Subsystem Coverage

Subsystem Lines Hit Coverage Threshold Status
AI 3876 1587 40.9% 35% ✅
Animation 2025 1037 51.2% 35% ✅
Audio 2005 1050 52.4% 30% ✅
Camera 317 317 100% 40% ✅
Core 11887 8283 69.7% 40% ✅
ECS 1226 706 57.6% 40% ✅
Editor 24396 12396 50.8% 25% ✅
GameModules 49694 25290 50.9% 30% ✅
Graphics 24769 13207 53.3% 30% ✅
Networking 6550 5149 78.6% 35% ✅
Physics 3607 1741 48.3% 35% ✅
Scripting 2849 2505 87.9% 30% ✅
Utils 14102 10486 74.4% 60% ✅

Selected-subsystem coverage: 56.9% (83754/147303 lines)

LCOV corpus coverage: 58.4% (102908/176142 lines); 28839 instrumented lines are outside the threshold table.

Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage (GCC + lcov)

ServerApplication.cpp                          | 6.2%   421| 0.0%  24|    -    0
ServerHealth.cpp                               | 9.8%    92| 0.0%   9|    -    0

[/home/runner/work/SparkEngine/SparkEngine/SparkShaderCompiler/src/]
BatchOutputPath.h                              | 8.3%    12| 0.0%   1|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/Blank3D/Source/]
GameModule.h                                   |20.5%    83| 0.0%  14|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/EmptyProject/Source/]
GameModule.h                                   |26.7%    60| 0.0%  13|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/FPSStarter/Source/]
GameModule.h                                   |14.8%   384| 0.0%  48|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MMOStarter/Source/]
GameModule.h                                   |12.7%   237| 0.0%  26|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MultiplayerArena/Source/]
GameModule.h                                   |16.9%   183| 0.0%  25|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/PlatformerKit/Source/]
GameModule.h                                   |12.2%   245| 0.0%  28|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/RPGStarter/Source/]
GameModule.h                                   |11.5%   338| 0.0%  37|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/ThirdPersonStarter/Source/]
GameModule.h                                   |10.6%   226| 0.0%  21|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/TopDownStarter/Source/]
GameModule.h                                   |10.8%   223| 0.0%  20|    -    0
================================================================================
                                         Total:|21.1%  102k| 0.0% 15k|    -    0

Per-Subsystem Coverage

Subsystem Lines Hit Coverage Threshold Status
AI 3876 1587 40.9% 35% ✅
Animation 2025 1037 51.2% 35% ✅
Audio 2005 1050 52.4% 30% ✅
Camera 317 317 100% 40% ✅
Core 11887 8283 69.7% 40% ✅
ECS 1226 706 57.6% 40% ✅
Editor 24450 12455 50.9% 25% ✅
GameModules 49694 25287 50.9% 30% ✅
Graphics 24769 13207 53.3% 30% ✅
Networking 6550 5149 78.6% 35% ✅
Physics 3607 1741 48.3% 35% ✅
Scripting 2849 2505 87.9% 30% ✅
Utils 14102 10495 74.4% 60% ✅

Selected-subsystem coverage: 56.9% (83819/147357 lines)

LCOV corpus coverage: 58.4% (102973/176196 lines); 28839 instrumented lines are outside the threshold table.

Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
Signed-off-by: Krill <natew94@gmail.com>
@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage (GCC + lcov)

ServerApplication.cpp                          | 6.2%   421| 0.0%  24|    -    0
ServerHealth.cpp                               | 9.8%    92| 0.0%   9|    -    0

[/home/runner/work/SparkEngine/SparkEngine/SparkShaderCompiler/src/]
BatchOutputPath.h                              | 8.3%    12| 0.0%   1|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/Blank3D/Source/]
GameModule.h                                   |20.5%    83| 0.0%  14|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/EmptyProject/Source/]
GameModule.h                                   |26.7%    60| 0.0%  13|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/FPSStarter/Source/]
GameModule.h                                   |14.8%   384| 0.0%  48|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MMOStarter/Source/]
GameModule.h                                   |12.7%   237| 0.0%  26|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MultiplayerArena/Source/]
GameModule.h                                   |16.9%   183| 0.0%  25|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/PlatformerKit/Source/]
GameModule.h                                   |12.2%   245| 0.0%  28|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/RPGStarter/Source/]
GameModule.h                                   |11.5%   338| 0.0%  37|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/ThirdPersonStarter/Source/]
GameModule.h                                   |10.6%   226| 0.0%  21|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/TopDownStarter/Source/]
GameModule.h                                   |10.8%   223| 0.0%  20|    -    0
================================================================================
                                         Total:|21.1%  102k| 0.0% 15k|    -    0

Per-Subsystem Coverage

Subsystem Lines Hit Coverage Threshold Status
AI 3876 1587 40.9% 35% ✅
Animation 2025 1037 51.2% 35% ✅
Audio 2005 1050 52.4% 30% ✅
Camera 317 317 100% 40% ✅
Core 11887 8283 69.7% 40% ✅
ECS 1226 706 57.6% 40% ✅
Editor 24450 12455 50.9% 25% ✅
GameModules 49694 25290 50.9% 30% ✅
Graphics 24769 13207 53.3% 30% ✅
Networking 6550 5149 78.6% 35% ✅
Physics 3607 1741 48.3% 35% ✅
Scripting 2849 2505 87.9% 30% ✅
Utils 14102 10496 74.4% 60% ✅

Selected-subsystem coverage: 56.9% (83823/147357 lines)

LCOV corpus coverage: 58.4% (102977/176196 lines); 28839 instrumented lines are outside the threshold table.

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage (GCC + lcov)

/home/runner/work/_temp/f28d722d-526f-4506-8dd4-10d6e6972f78.sh: line 15: lcov: command not found

@github-actions

github-actions Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage (GCC + lcov)

ServerApplication.cpp                          | 6.2%   421| 0.0%  24|    -    0
ServerHealth.cpp                               | 9.8%    92| 0.0%   9|    -    0

[/home/runner/work/SparkEngine/SparkEngine/SparkShaderCompiler/src/]
BatchOutputPath.h                              | 8.3%    12| 0.0%   1|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/Blank3D/Source/]
GameModule.h                                   |20.5%    83| 0.0%  14|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/EmptyProject/Source/]
GameModule.h                                   |26.7%    60| 0.0%  13|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/FPSStarter/Source/]
GameModule.h                                   |14.8%   384| 0.0%  48|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MMOStarter/Source/]
GameModule.h                                   |12.7%   237| 0.0%  26|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/MultiplayerArena/Source/]
GameModule.h                                   |16.9%   183| 0.0%  25|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/PlatformerKit/Source/]
GameModule.h                                   |12.2%   245| 0.0%  28|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/RPGStarter/Source/]
GameModule.h                                   |11.5%   338| 0.0%  37|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/ThirdPersonStarter/Source/]
GameModule.h                                   |10.6%   226| 0.0%  21|    -    0

[/home/runner/work/SparkEngine/SparkEngine/Templates/TopDownStarter/Source/]
GameModule.h                                   |10.8%   223| 0.0%  20|    -    0
================================================================================
                                         Total:|21.1%  102k| 0.0% 15k|    -    0

Per-Subsystem Coverage

Subsystem Lines Hit Coverage Threshold Status
AI 3876 1587 40.9% 35% ✅
Animation 2025 1037 51.2% 35% ✅
Audio 2005 1050 52.4% 30% ✅
Camera 317 317 100% 40% ✅
Core 11887 8283 69.7% 40% ✅
ECS 1226 706 57.6% 40% ✅
Editor 24450 12455 50.9% 25% ✅
GameModules 49694 25293 50.9% 30% ✅
Graphics 24769 13207 53.3% 30% ✅
Networking 6550 5149 78.6% 35% ✅
Physics 3607 1741 48.3% 35% ✅
Scripting 2849 2505 87.9% 30% ✅
Utils 14102 10496 74.4% 60% ✅

Selected-subsystem coverage: 56.9% (83826/147357 lines)

LCOV corpus coverage: 58.4% (102980/176196 lines); 28839 instrumented lines are outside the threshold table.

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.

2 participants