Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
7962de0
feat: expose weather and state validation through public SDK services
Krilliac Oct 3, 2026
5118cf1
feat: verify FPS persistence input and preserve authored spawn points
Krilliac Oct 3, 2026
25548f7
fix: disambiguate reflected scene JSON array indices
Krilliac Oct 3, 2026
0a26782
ci: qualify pinned ABI10 weather and owned FPS input
Krilliac Oct 3, 2026
db5398d
fix(ci): unblock installed native qualification and readiness validation
Krilliac Oct 4, 2026
8d5e1d1
style(test): satisfy mainline formatting for installed FPS lineage
Krilliac Oct 4, 2026
d12c435
ci: qualify the repaired installed ABI10 candidate
Krilliac Oct 4, 2026
fe68814
fix(fps): reject active weather calls off the game thread
Krilliac Oct 4, 2026
7696a2f
ci: pin weather qualification to the thread-policy repair
Krilliac Oct 4, 2026
8d99cd9
fix(ci): stream the pinned SDE archive in Windows Release
Krilliac Oct 4, 2026
c69267a
fix(ci): classify reflected gameplay scene input under SEC-120
Krilliac Oct 4, 2026
a41cb37
fix(test): serialize the owned save receipt with the vendored JSON API
Krilliac Oct 4, 2026
a2ed0cb
fix(test): rebuild reflected scene fixtures with the vendored JSON API
Krilliac Oct 4, 2026
8ef2f4c
ci: qualify the vendored JSON test compatibility repairs
Krilliac Oct 4, 2026
cc20077
fix(test): use an explicit JSON byte-count type on macOS
Krilliac Oct 4, 2026
33ca7da
ci: pin installed qualification to the portable receipt repair
Krilliac Oct 4, 2026
7361ee4
fix(ci): bind Windows CTest tool case aliases by physical identity
Krilliac Oct 4, 2026
38dd8e4
Fix runtime and cross-platform qualification blockers
Krilliac Oct 4, 2026
d1b920e
ci: qualify the corrected runtime and platform candidate
Krilliac Oct 4, 2026
89e1910
ci: initialize pinned crypto sources for Wiki tooling tests
Krilliac Oct 4, 2026
5e8523f
ci: bind installed qualification to complete source dependencies
Krilliac Oct 4, 2026
356401e
fix: close release qualification blockers
Krilliac Oct 4, 2026
30ad35f
ci: qualify final release candidate
Krilliac Oct 4, 2026
4231360
docs: refresh module source inventory
Krilliac Oct 4, 2026
ced069f
ci: qualify refreshed module inventory
Krilliac Oct 4, 2026
69fb222
docs: refresh fuzz policy source census
Krilliac Oct 5, 2026
14e9878
ci: qualify refreshed fuzz policy evidence
Krilliac Oct 5, 2026
002e29b
test: isolate parallel asset fixtures
Krilliac Oct 5, 2026
6a163ab
ci: qualify isolated asset fixtures
Krilliac Oct 5, 2026
9a928fe
docs: refresh release indexes
Krilliac Oct 5, 2026
3ddff57
fix: recover editor and Windows input qualification repairs
Krilliac Oct 5, 2026
a480893
fix(docs): preserve tracked casing in Windows snapshot checks
Krilliac Oct 5, 2026
873f62b
ci: qualify reconstructed Windows readiness product
Krilliac Oct 5, 2026
b53332c
fix(build): enforce Windows CPU floor with compiler target identity
Krilliac Oct 5, 2026
a518090
ci: qualify Windows CPU floor repairs at exact product revision
Krilliac Oct 5, 2026
4980f8e
fix(editor): apply declared panel sizes on first use
Krilliac Oct 5, 2026
361779d
ci: qualify first-use editor panel repair at exact product revision
Krilliac Oct 5, 2026
029b332
fix(console): emit prompts only when awaiting a command
Krilliac Oct 5, 2026
98f2454
ci: qualify console prompt repair at exact product revision
Krilliac Oct 5, 2026
1ca34d7
fix(installer): preserve per-user scope in native MSI commands
Krilliac Oct 5, 2026
b166a34
ci: qualify per-user MSI and console repairs
Krilliac Oct 5, 2026
3c2c9d2
style(console): align pipe prompt helper declarations
Krilliac Oct 5, 2026
cf36420
fix(editor): save first materials with native paths and checked writes
Krilliac Oct 5, 2026
d51d3bc
ci: qualify material persistence repair
Krilliac Oct 5, 2026
ab21c16
fix: restore readiness tests and editor exit status
Krilliac Oct 6, 2026
938eb6f
ci: qualify restored readiness product revision
Krilliac Oct 6, 2026
a81c1ab
ci: preserve isolated sequential determinism checks
Krilliac Oct 6, 2026
75f6449
ci: bind sequential readiness qualification revision
Krilliac Oct 6, 2026
40b4423
ci: declare CMake download and refresh matrix inventory
Krilliac Oct 6, 2026
b0b2f4f
ci: bind declared-tool qualification revision
Krilliac Oct 6, 2026
8ac9f7a
fix(editor): preserve authored material values on reopen
Krilliac Oct 6, 2026
5c228b2
ci: bind material reload qualification revision
Krilliac Oct 6, 2026
3e4c296
fix(editor): route and fuzz material asset loading
Krilliac Oct 6, 2026
ca2b3eb
ci: bind material dispatch qualification revision
Krilliac Oct 6, 2026
3d0f72d
test: include editor material fuzz target in policy inventory
Krilliac Oct 6, 2026
146d317
ci: canonicalize Shipping repro build paths
Krilliac Oct 6, 2026
dc7628c
ci: remove Shipping drive alias reliably in Git Bash
Krilliac Oct 6, 2026
6707de6
ci: stage Shipping checkouts at one real build path
Krilliac Oct 6, 2026
cbe6527
test: use source roots and ephemeral network ports
Krilliac Oct 6, 2026
7a07294
fix(editor): keep material size arithmetic wide
Krilliac Oct 6, 2026
eea5484
ci: bind parser revision and restore TSan validation
Krilliac Oct 6, 2026
aed904c
ci: preserve Windows test coverage and writable MSI transform staging
Krilliac Oct 6, 2026
1a8dfbd
ci: refresh build matrix inventory after test lane split
Krilliac Oct 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ docs/site/readiness.json text eol=lf
# Fuzz corpus manifests hash seed bytes exactly. Keep JSON seeds LF-stable so
# Windows autocrlf cannot invalidate the cross-platform content digest.
FuzzerTests/corpora/json-utils/*.json text eol=lf
FuzzerTests/corpora/material-editor-files/** -text
FuzzerTests/corpora/crash-manifest/*.json text eol=lf
# .sparkscene seeds deliberately carry CRLF, lone CR, NUL and non-UTF-8 bytes;
# store them verbatim so neither normalization nor autocrlf rewrites a seed.
Expand Down
2 changes: 1 addition & 1 deletion .github/badges/files.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"label": "source files",
"message": "3,235",
"message": "3,252",
"color": "green",
"cacheSeconds": 300
}
16 changes: 8 additions & 8 deletions .github/badges/loc-breakdown.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"schemaVersion": 1,
"total": 933347,
"files": 3235,
"engine": 346913,
"editor": 106228,
"game": 163669,
"total": 936157,
"files": 3252,
"engine": 347396,
"editor": 106742,
"game": 164092,
"services": 12922,
"pipeline": 3188,
"tests": 276437,
"tools": 23990
"pipeline": 3231,
"tests": 277774,
"tools": 24000
}
2 changes: 1 addition & 1 deletion .github/badges/loc.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"label": "C++ lines of code",
"message": "933,347",
"message": "936,157",
"color": "blue",
"logo": "cplusplus",
"cacheSeconds": 300
Expand Down
2 changes: 1 addition & 1 deletion .github/badges/tests.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"label": "test definitions",
"message": "8,530",
"message": "8,563",
"color": "brightgreen",
"cacheSeconds": 300
}
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ SparkConsole/ ← External debug console app (named pipe communication)

Shaders/HLSL/ ← DirectX shaders (PBR, post-processing, compute)
Shaders/GLSL/ ← OpenGL shaders (experimental)
Tests/ ← 8,530 test definitions across 738 files, CTest integration
Tests/ ← 8,563 test definitions across 741 files, CTest integration
Templates/ ← Game module templates
Assets/ ← Demo scenes, models, scripts
```
Expand Down
2 changes: 1 addition & 1 deletion .github/prompts/build-test.prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Workflow triggers and required/advisory matrix rows are defined in `.github/work

## Testing

8,530 test definitions across 738 files in `Tests/` with internal framework + CTest.
8,563 test definitions across 741 files in `Tests/` with internal framework + CTest.

```powershell
# Registered CTest cases; an empty selection is an error.
Expand Down
2 changes: 1 addition & 1 deletion .github/prompts/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ SparkConsole/ ← External debug console app (named pipe communication)

Shaders/HLSL/ ← DirectX shaders (PBR, post-processing, compute)
Shaders/GLSL/ ← OpenGL shaders (experimental)
Tests/ ← 8,530 test definitions across 738 files, CTest integration
Tests/ ← 8,563 test definitions across 741 files, CTest integration
Templates/ ← Game module templates
Assets/ ← Demo scenes, models, scripts
```
Expand Down
409 changes: 409 additions & 0 deletions .github/scripts/compare_windows_shipping_repro.py

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions .github/scripts/new-msi-failure-transform.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ Require (-not $cmd.Contains("'")) 'System cmd.exe path cannot be embedded in MSI

$work = Join-Path ([IO.Path]::GetDirectoryName($output)) ('.spark-qual-fail-' + [Guid]::NewGuid().ToString('N') + '.msi')
Copy-Item -LiteralPath $source -Destination $work
# Artifact downloads can mark the verified MSI read-only. Copy-Item preserves
# that attribute, but the temporary database must be writable in transact mode.
# Change only the disposable copy; the input package remains untouched.
(Get-Item -LiteralPath $work -ErrorAction Stop).IsReadOnly = $false
$installer = $null
$original = $null
$modified = $null
Expand Down
14 changes: 14 additions & 0 deletions .github/scripts/qualify-editor-fps.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,20 @@ def discovery(document, require_command=False, source=None, build=None, source_s
'-DSPARK_ENGINE_EXECUTABLE_NAME=SparkEngine.exe', '-DSPARK_EXPECTED_SOURCE_SHA='+source_sha,
'-DSPARK_PYTHON_EXECUTABLE='+sys.executable.replace('\\', '/'),
'-P', (source/'cmake/RunEditorFPSInstalledLineage.cmake').as_posix()]
if sys.platform == 'win32' and len(normalized) == len(expected):
# PATHEXT lookup can report .EXE while CMake reports .exe. Accept
# only case aliases of the same physical tool, never changed flags.
for index, prefix in ((0, ''), (7, '-DSPARK_PYTHON_EXECUTABLE=')):
if not normalized[index].startswith(prefix):
continue
actual_path = normalized[index][len(prefix):]
expected_path = expected[index][len(prefix):]
if actual_path != expected_path and actual_path.casefold() == expected_path.casefold():
try:
if os.path.samefile(actual_path, expected_path):
normalized[index] = expected[index]
except OSError:
pass
if normalized != expected:
raise ValueError('Dedicated CTest exact command binding changed')
return props
Expand Down
Loading
Loading