63 Commits
Author SHA1 Message Date
西风逍遥游 137bae71ea Fix Android script log routing build guard 2026-10-11 08:08:32 +08:00
西风逍遥游 0589a5ae80 fix(android): route script output to logcat 2026-10-11 07:26:45 +08:00
西风逍遥游 0dff989de0 fix(vulkan): keep VMA on its compiled API contract 2026-10-11 06:37:09 +08:00
西风逍遥游 dfc9246764 fix(vulkan): negotiate instance API for feature queries 2026-10-11 06:02:44 +08:00
西风逍遥游 6be2a6ce84 fix(android): select libc++ runtime for target ABI 2026-10-11 05:26:38 +08:00
西风逍遥游 5b2a7fb0f6 fix(android): package the requested emulator ABI 2026-10-11 04:39:50 +08:00
西风逍遥游 28c294824c fix(android): disable OpenAL NEON for x86 builds 2026-10-11 04:10:03 +08:00
西风逍遥游 9bfda9017b ci: test Android APK natively on x86_64 emulator 2026-10-11 03:54:54 +08:00
西风逍遥游 12e697fbd5 fix(ci): run Gradle wrapper with bash 2026-10-11 03:04:56 +08:00
西风逍遥游 9655503413 fix(android): install required SDK runtime libraries 2026-10-11 01:37:57 +08:00
西风逍遥游 d61167a241 fix(ci): test-sign consumer APKs before launch 2026-10-11 01:25:36 +08:00
西风逍遥游 c6bd3123aa fix(ci): run APK gate through a checked-in script 2026-10-11 01:19:08 +08:00
西风逍遥游 360fccb2f0 fix(ci): run ARM64 APKs on API 35 emulator 2026-10-10 20:08:56 +08:00
西风逍遥游 f87fc85f33 fix(ci): opt into TCG for arm64 APK gate 2026-10-09 11:37:19 +08:00
西风逍遥游 44b02254c8 ci: extend macOS debug test budget 2026-09-21 20:11:36 +08:00
西风逍遥游 523e3e662a ci: run arm64 emulator without HVF 2026-09-21 13:57:24 +08:00
西风逍遥游 ffc7ade79e ci: budget full cold release matrix 2026-09-20 18:23:14 +08:00
西风逍遥游 8683501daa ci: harden cold native builds 2026-09-19 15:08:09 +08:00
西风逍遥游 2ea142be3c ci: allow release builds to reach their step budgets 2026-09-19 11:27:15 +08:00
西风逍遥游 b0abede501 ci(release): validate Android SDK from every consumer host 2026-09-19 01:32:46 +08:00
西风逍遥游 4ab841c047 ci(release): gate mobile SDK runtime usability 2026-09-18 20:42:42 +08:00
西风逍遥游 31880f0021 feat(examples): gate examples in CI and make repository scripts UTF-8 on every host
`examples/<name>/` was a tested surface in name only. The source-quality job had
no examples check at all, and scripts/smoke_examples.sh accepted any process that
had not printed one of its error markers: a project that died during startup,
exited after a single frame, or crashed without a marker was reported as PASS.
Nothing stopped a malformed or unregistered example from reaching dev, which is
how 14 examples arrived without READMEs and 20 were never registered in the
overview table.

Source side
- scripts/check_examples.py classifies every directory under examples/ as either
  runnable (main.nut plus a config.nut that assigns the engine `config` table) or
  as a reviewed non-runnable sample listed in NON_RUNNABLE_EXAMPLES with a
  reason. Both kinds must own a README.md and appear in examples/README.md.
  Stale exemptions and overview links to missing directories fail as well.
- `make check/examples` and a new source-quality CI step run the gate.
- scripts/tests/test_check_examples.py covers it and pins each failure mode
  against fixtures.

Runtime side
- scripts/smoke_examples.sh now enforces liveness, not just marker absence: every
  runnable example must still be running after MIN_RUN_SECONDS (default 2s; CI
  passes 2s), and a process that dies inside that window fails whatever its exit
  code. A clean self-exit after the window passes with an explicit note instead
  of being silently accepted as a pass.
- The Linux CI step sets MIN_RUN_SECONDS=2 and keeps RUN_SECONDS=6, so the job's
  wall clock is unchanged (13.7 min of its 20 min budget on dev).

Windows / GBK
- scripts/utf8_stdio.py re-encodes stdout/stderr as UTF-8 and every scripts/*.py
  program calls it as the first statement of its __main__ block. On a Chinese
  Windows a redirected stream falls back to the ANSI code page (cp936), and
  printing a character that code page cannot encode (arrows, superscripts, bullet
  separators, emoji - all common in this repository) raised UnicodeEncodeError
  and turned a checker into a traceback.
- The mirror image is input: read_text() without encoding= decoded UTF-8
  repository text as cp936 and raised UnicodeDecodeError.
- scripts/tests/test_utf8_stdio.py enforces both conventions for every script and
  test module; text file I/O and child-process decoding now pass encoding="utf-8"
  explicitly.
- Unit-test invocations run with `python3 -X utf8` so the runner's own output
  never follows the host code page.

Violations the new gates found on top of dev, fixed here: 14 examples shipped
without a README (fluid3d, mesh-impact-lab, mesh-modifier-lab, spline-tube-lab on
the earlier dev tip, plus pcg-depth-of-field, pcg-detail-overwrite,
pcg-layer-culling, pcg-location-system, pcg-runtime-orchestration,
pcg-scene-player-culling, pcg-snow-wind, pcg-thunder-strike, pcg-ui-scaler and
pcg-underwater added by #397), 20 were missing from the overview table (those 14
plus archspace-editor, geometry-stroke-lab, interior-mapping, layered-animation,
triplanar-decal, terrain-stamping), and scripts/export_meshret_onnx.py had no
UTF-8 stdio guard.

Verified locally: `python -m ruff check scripts` (All checks passed);
scripts/check_test_manifest.py; scripts/check_quality_metadata.py;
scripts/check_architecture_contracts.py --base HEAD; scripts/check_nodiscard.py;
`make -n check/examples`; scripts/check_examples.py (125 examples: 118 runnable,
7 reviewed non-runnable); and `python -X utf8 -m unittest discover -s scripts/tests
-p "test_*.py"` (155 tests, OK). The runtime half of the contract needs a Linux
headless build, so it is verified by the CI examples smoke step rather than
locally.
2026-09-15 20:20:23 +08:00
西风逍遥游 7e7fbea543 fix(ci): tolerate Windows line endings and slow apt downloads 2026-09-11 19:51:42 +08:00
西风逍遥游 859845bbb4 Merge branch 'dev' into codex/test-suite-representative-tests 2026-09-11 14:25:00 +08:00
西风逍遥游 5741795fe3 fix: validate representative tests across native GPU backends 2026-09-11 14:19:51 +08:00
西风逍遥游 d7a9dab413 Merge pull request #362 from EVEngine/codex/tensor-onnx-gpu-tts
feat(tensor): add quantized ONNX inference with reusable Vulkan sessions
2026-09-11 01:08:16 +08:00
西风逍遥游 23b3dcf085 Merge remote-tracking branch 'origin/dev' into codex/test-suite-representative-tests
# Conflicts:
#	test/voxel_render.cpp
2026-09-10 21:47:11 +08:00
西风逍遥游 130e7cd3b1 fix(ci): distinguish multiply assignment from pointer declarations 2026-09-10 21:42:06 +08:00
西风逍遥游 fcb8755998 Merge remote-tracking branch 'origin/dev' into codex/ue-assets-materials-skinning
# Conflicts:
#	scripts/resource_format_suite.py
2026-09-10 18:17:50 +08:00
西风逍遥游 956570131f Merge dev and preserve resource format test contracts 2026-09-10 15:36:51 +08:00
西风逍遥游 7d513f767f test: replace redundant work with representative behavioral checks 2026-09-10 15:34:01 +08:00
西风逍遥游 f025c32d63 fix: bind PBR UV vertex streams and register VRM format coverage 2026-09-10 15:07:42 +08:00
西风逍遥游 4fdcdde7f7 Register VRM import coverage in resource format contracts 2026-09-10 14:41:53 +08:00
西风逍遥游 a30ba7f874 Merge remote-tracking branch 'origin/dev' into codex/ue-assets-materials-skinning
# Conflicts:
#	src/modules/graphics/shaders/mesh3d_gbuffer_skin.frag.spv
#	src/modules/graphics/shaders/mesh3d_gbuffer_skin_alpha.frag.spv
#	src/modules/graphics/shaders/mesh3d_gbuffer_skin_alpha_frag_spv.inc
#	src/modules/graphics/shaders/mesh3d_gbuffer_skin_frag_spv.inc
#	src/modules/graphics/shaders/mesh3d_gbuffer_vis.frag.spv
#	src/modules/graphics/shaders/mesh3d_gbuffer_vis_frag_spv.inc
#	src/modules/graphics/vulkan/Graphics3D.cpp
2026-09-10 12:18:00 +08:00
西风逍遥游 fd2b43f1c2 Support UE skeletal assets, extensible skin palettes and PBR materials 2026-09-10 08:34:07 +08:00
西风逍遥游 bcdfc9ab5d test(resources): add format contracts and repair codec regressions 2026-09-10 08:09:50 +08:00
西风逍遥游andCursor eabc7ffaaa fix(test): discover test sources via test_src.txt instead of CONFIGURE_DEPENDS
Keep auto-adding test/*.cpp without Ninja glob restacking. Make reconfigures when a test file is newer than the list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-04 22:22:04 +08:00
西风逍遥游 543aa55434 refactor(ci): classify failures and pin webgpu inputs 2026-09-03 16:29:23 +08:00
西风逍遥游 c39660737e refactor(ci): make contracts and publication ownership explicit 2026-09-03 15:46:53 +08:00
西风逍遥游 b401049a37 Merge pull request #291 from EVEngine/codex/c++
Add build analysis tool and narrow public headers to reduce build fanout
2026-08-31 23:01:19 +08:00
西风逍遥游 8b8ca06fc8 Make binding signature selection deterministic 2026-08-31 20:44:17 +08:00
西风逍遥游 dee118e020 Merge branch 'dev' into codex/c++ 2026-08-31 20:42:37 +08:00
西风逍遥游 31a2c0cc1e feat(climbing): add motion matching demo and UE converter 2026-08-31 15:26:46 +08:00
西风逍遥游 73fc9d5bd7 ci: consolidate source quality gate 2026-08-30 17:09:20 +08:00
西风逍遥游 5e8252b7a9 ci: gate heavy jobs behind scoped preflight 2026-08-30 16:29:06 +08:00
西风逍遥游 13a32d8ca7 ci: teach checks about split metadata sources 2026-08-30 16:00:46 +08:00
西风逍遥游 fbd6ef14b6 build: reduce shared manifest conflict hotspots 2026-08-30 16:00:46 +08:00
西风逍遥游 c2ae0b0200 Audit and trim high-impact public headers 2026-08-30 03:36:53 +08:00
西风逍遥游 63246b8c68 fix: complete architecture consolidation contracts 2026-08-28 00:01:55 +08:00
西风逍遥游 293be41d66 Merge remote-tracking branch 'origin/dev' into codex/architecture-consolidation
# Conflicts:
#	cmake/module_manifest.cmake
#	docs/usr/modules/procgen.md
#	src/engine/CMakeLists.txt
#	src/engine/cmdline/Run.cpp
#	src/engine/common/ScriptModule.h
#	src/modules/animation/Animation.cpp
#	src/modules/physics/World.cpp
#	src/modules/physics/World3D.cpp
#	src/modules/procgen/Procgen.cpp
#	src/modules/procgen/Procgen.h
#	src/modules/scene/SceneCapabilities.cpp
#	src/modules/schema/Schema.cpp
#	src/modules/schema/Schema.h
2026-08-27 14:52:28 +08:00