Skip to content

Codex/pr4 integration - #6

Merged
espressif2022 merged 16 commits into
feat/elf-vibe-gamesfrom
codex/pr4-integration
Oct 9, 2026
Merged

espressif2022 merged 16 commits into
feat/elf-vibe-gamesfrom
codex/pr4-integration

Conversation

@espressif2022

@espressif2022 espressif2022 commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

修改目的

整理 Raylib Lite Engine 的组件边界、开发入口和发布流程,让普通 native 示例独立构建,同时由 Vibe 负责 Iris 产品集成。

主要修改

1. 分离 Engine、Board 与 Iris 服务

  • 移除 ESP-Mosaico Board 中的 Iris 注册、截图、远程输入和健康确认实现。
  • 普通 native 示例不再依赖 Iris 或 Recovery,使用独立 factory 应用分区。
  • 增加通用 raylib_lite_native_services 接口,提供启动、绑定、首帧通知和解除绑定四个生命周期回调。
  • Vibe 构建显式选择 utils 中的 Iris 服务组件;游戏业务源码无需直接调用 Iris 接口。
  • 服务解除绑定失败时保留 Board,避免仍在执行的请求访问已释放资源。

2. 对齐 BSP 依赖

  • 更新 BSP Git revision,使用已拆分面板交接接口的版本。
  • 简化本地 BSP 覆盖逻辑,移除相邻 mosaico_boot_splash 组件的自动注册。
  • 普通 native 与 Vibe Iris 工程共用 Board 硬件接口,产品服务由 Vibe 构建层提供。

开机 logo 和震动仍由 utils 的保留 bootloader 实现,本 PR 不修改这些功能。

3. 整理游戏开发与 Host 入口

  • 使用统一的游戏模块接口组织共享源码。
  • 清理不再支持的 ELF 构建分支和旧接口描述。
  • 对齐 Host 文档与当前实际链接的功能范围。
  • 明确普通 native、Host 和 Vibe Iris 三种构建入口及各自职责。

4. 完善组件发布和独立例程

  • 发布前组装独立例程,每个游戏自带所需的共享组件和 Board 目录。
  • 移除发布例程中的本地 Engine override,由 Component Manager 解析版本依赖。
  • 发布包包含七个完整参考游戏,包括 Neon Rift Rally,以及最小消费例程。
  • 开发中的例程和专用渲染 benchmark 不进入 Registry 游戏例程。
  • 完善发布 CI、分区路径和构建验证。

5. 清理文档与补充检查

  • 精简 README 中重复、过时的产品部署说明。
  • 更新构建矩阵、Board 接入、游戏开发和发布文档。
  • 补充平台依赖边界、本地 Board 覆盖及发布组装检查。

验证结果

  • Engine 完整测试通过:111 项。
  • 最终 Board 覆盖和平台边界检查通过:31 项。
  • Markdown 链接检查及 git diff --check 通过。
  • ESP32-S31 普通 native 示例构建通过。
  • 实际组件归档解包后的独立例程构建通过。
  • 新 BSP Git revision 在无本地覆盖的工程中解析成功,未引入 splash、Iris 或 Recovery 组件。
  • Vibe Iris Tower Defense 和自定义计数游戏构建、打包通过。
  • 服务迁移后的两款游戏通过 Recovery 安装、首帧健康确认和固件身份校验。
  • Iris 截图、计数变化及 Tower Defense 远程交互验证通过。

最后的 BSP 引用和 splash 构建清理已重新验证配置、构建及打包,未再次烧录。此次未重新验证 BOX-3、开机震动、音频和长时间稳定性。

配套依赖

  • BSP PR 提供独立的面板交接接口。
  • utils PR 提供 Iris 应用服务组件及 Vibe 构建集成。
  • Vibe 需要更新 Engine、BSP 和 utils 的 submodule 指针。

建议按 BSP → Engine → utils → Vibe 的顺序合并。若 BSP 使用 squash 或 rebase 合并,应更新依赖到最终提交。

Stop tracking sewer_labyrinth, vertical_dock and the vector prototypes while preserving local files through ignore rules. Move prototype-only tests out of the public suite and refresh documentation and CLI replay coverage. Fix GCC enum comparisons in the Host module bridge.
@espressif2022
espressif2022 changed the base branch from main to feat/elf-vibe-games October 8, 2026 12:50
@espressif2022
espressif2022 requested a balanced review from Copilot October 8, 2026 13:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new Neon Rift Rally feedback and steering checks are not connected to the PR test workflow.

1 open finding
What changed in this PR

Prepares the engine for Registry distribution, streamlines maintained examples, and expands renderer/game validation.

Changes:

  • Adds release assembly, archive validation, isolated-consumer CI, API documentation, and a minimal ESP-IDF consumer.
  • Pins ESP-Mosaico dependencies, makes Iris services optional, and removes retired examples.
  • Optimizes triangle/tinted-texture rendering and expands Neon Rift Rally behavior and tests.

Checks: Static review only; Host tests, native builds, and device startup/input/display/audio/haptics paths were not exercised.

File Description
tools/​prepare_release_consumer.py Creates isolated archive consumers.
tools/​check_release.py Validates staged releases and archives.
tools/​check_markdown_links.py Expands maintained-document coverage.
THIRD_PARTY_NOTICES.md Updates dependencies and media provenance.
tests/​test_vertical_dock.py Removes retired game tests.
tests/​test_svg2vg.py Removes vector-render integration tests.
tests/​test_release_packaging.py Adds release packaging tests.
tests/​test_primitives.c Adds triangle pixel-oracle coverage.
tests/​test_game_cli.py Updates maintained game matrix.
tests/​test_examples.py Loads game-local test modules.
tests/​test_columns.c Adds tinted-scaling oracle coverage.
tests/​README.md Documents unified test discovery.
tests/​fakes/​sewer_audio/​raylib_lite_game_audio.h Removes retired audio fake.
src/​renderer/​raylib_lite_renderer.c Optimizes opaque tinted scaling.
src/​renderer/​raylib_lite_raylib_impl.c Optimizes triangle scan conversion.
release/​minimal/​README.md Documents minimal consumer.
release/​minimal/​main/​main.c Adds offscreen scheduler example.
release/​minimal/​main/​idf_component.yml Declares minimal dependencies.
release/​minimal/​main/​CMakeLists.txt Registers minimal application component.
release/​minimal/​CMakeLists.txt Adds minimal ESP-IDF project.
release/​asset_provenance.json Records maintained media provenance.
README.md Replaces root English documentation.
README.EN.md Removes superseded English README.
idf_component.yml Adds Registry metadata and filters.
examples/​vertical_dock/​scenarios/​warehouse-loop.json Removes retired scenario.
examples/​vertical_dock/​scenarios/​turn-view.json Removes retired scenario.
examples/​vertical_dock/​scenarios/​power-on.json Removes retired scenario.
examples/​vertical_dock/​scenarios/​outer-corner.json Removes retired scenario.
examples/​vertical_dock/​scenarios/​north-gate.json Removes retired scenario.
examples/​vertical_dock/​scenarios/​maintenance-room.json Removes retired scenario.
examples/​vertical_dock/​scenarios/​maintenance-obstacle.json Removes retired scenario.
examples/​vertical_dock/​scenarios/​high-route.json Removes retired scenario.
examples/​vertical_dock/​scenarios/​exploration-route.json Removes retired scenario.
examples/​vertical_dock/​scenarios/​cargo-occlusion.json Removes retired scenario.
examples/​vertical_dock/​README.md Removes retired game documentation.
examples/​vertical_dock/​partitions.csv Removes retired partition layout.
examples/​vertical_dock/​main/​idf_component.yml Removes retired manifest.
examples/​vertical_dock/​main/​CMakeLists.txt Removes retired component build.
examples/​vertical_dock/​game.sim.json Removes retired Host manifest.
examples/​vertical_dock/​CMakeLists.txt Removes retired native project.
examples/​vertical_dock/​assets_src/​prepare_materials.py Removes retired asset generator.
examples/​vertical_dock/​assets_src/​materials.json Removes retired atlas configuration.
examples/​vertical_dock/​assets_src/​game_assets.json Removes retired asset manifest.
examples/​vertical_dock/​assets_src/​details.json Removes retired atlas configuration.
examples/​vector_puppet/​README.md Removes experimental example documentation.
examples/​vector_puppet/​partitions.csv Removes experimental partition layout.
examples/​vector_puppet/​main/​vg_raster.h Removes experimental raster API.
examples/​vector_puppet/​main/​puppet_rig.h Removes experimental rig API.
examples/​vector_puppet/​main/​puppet_draw.h Removes experimental drawing API.
examples/​vector_puppet/​main/​idf_component.yml Removes experimental manifest.
examples/​vector_puppet/​main/​CMakeLists.txt Removes experimental component build.
examples/​vector_puppet/​game.sim.json Removes experimental Host manifest.
examples/​vector_puppet/​CMakeLists.txt Removes experimental native project.
examples/​vector_pet/​partitions.csv Removes experimental partition layout.
examples/​vector_pet/​main/​vg_raster.h Removes experimental raster API.
examples/​vector_pet/​main/​pet.h Removes experimental game API.
examples/​vector_pet/​main/​pet_draw.h Removes experimental drawing API.
examples/​vector_pet/​main/​idf_component.yml Removes experimental manifest.
examples/​vector_pet/​main/​CMakeLists.txt Removes experimental component build.
examples/​vector_pet/​game.sim.json Removes experimental Host manifest.
examples/​vector_pet/​CMakeLists.txt Removes experimental native project.
examples/​vector_cat/​partitions.csv Removes experimental partition layout.
examples/​vector_cat/​main/​vg_raster.h Removes experimental raster API.
examples/​vector_cat/​main/​vg_asset.h Removes experimental asset API.
examples/​vector_cat/​main/​vg_asset.c Removes experimental asset implementation.
examples/​vector_cat/​main/​idf_component.yml Removes experimental manifest.
examples/​vector_cat/​main/​CMakeLists.txt Removes experimental component build.
examples/​vector_cat/​main/​cat_rig.h Removes experimental rig API.
examples/​vector_cat/​main/​cat_draw.h Removes experimental drawing API.
examples/​vector_cat/​game.sim.json Removes experimental Host manifest.
examples/​vector_cat/​CMakeLists.txt Removes experimental native project.
examples/​tower_defense/​scenarios/​start.json Adds replay scenario.
examples/​tower_defense/​README.md Documents pinned dependencies.
examples/​tower_defense/​main/​CMakeLists.txt Supports namespaced engine resolution.
examples/​tomb_raycast/​tests/​test_tomb_raycast.py Corrects repository-root lookup.
examples/​tomb_raycast/​README.md Updates build and performance guidance.
examples/​tomb_raycast/​main/​CMakeLists.txt Supports namespaced engine resolution.
examples/​tomb_raycast/​HISTORICAL_PERFORMANCE.md Archives device measurements.
examples/​sky_hop/​README.md Documents pinned dependencies.
examples/​sky_hop/​main/​CMakeLists.txt Supports namespaced engine resolution.
examples/​sewer_labyrinth/​scenarios/​unpowered-pump.json Removes retired scenario.
examples/​sewer_labyrinth/​scenarios/​third-person-turn.json Removes retired scenario.
examples/​sewer_labyrinth/​scenarios/​submerged-duct.json Removes retired scenario.
examples/​sewer_labyrinth/​scenarios/​render_workshop.py Removes retired capture tool.
examples/​sewer_labyrinth/​scenarios/​render_service_duct.py Removes retired capture tool.
examples/​sewer_labyrinth/​scenarios/​render_motion.py Removes retired capture tool.
examples/​sewer_labyrinth/​scenarios/​relay-room.json Removes retired scenario.
examples/​sewer_labyrinth/​scenarios/​power-slice.json Removes retired scenario.
examples/​sewer_labyrinth/​scenarios/​patrol-loop.json Removes retired scenario.
examples/​sewer_labyrinth/​scenarios/​missing-fuse.json Removes retired scenario.
examples/​sewer_labyrinth/​scenarios/​mark-start.json Removes retired scenario.
examples/​sewer_labyrinth/​scenarios/​checkpoints.json Removes retired checkpoints.
examples/​sewer_labyrinth/​scenarios/​chart-route.json Removes retired scenario.
examples/​sewer_labyrinth/​scenarios/​center-gate.json Removes retired scenario.
examples/​sewer_labyrinth/​partitions.csv Removes retired partition layout.
examples/​sewer_labyrinth/​main/​sewer_contracts.h Removes retired game contracts.
examples/​sewer_labyrinth/​main/​idf_component.yml Removes retired manifest.
examples/​sewer_labyrinth/​main/​CMakeLists.txt Removes retired component build.
examples/​sewer_labyrinth/​game.sim.json Removes retired Host manifest.
examples/​sewer_labyrinth/​CMakeLists.txt Removes retired native project.
examples/​sewer_labyrinth/​assets_src/​prepare_materials.py Removes retired asset generator.
examples/​sewer_labyrinth/​assets_src/​materials.json Removes retired atlas configuration.
examples/​sewer_labyrinth/​assets_src/​generate_audio.py Removes retired audio generator.
examples/​sewer_labyrinth/​assets_src/​game_assets.json Removes retired asset manifest.
examples/​render_benchmark/​README.md Documents automatic BSP fetching.
examples/​render_benchmark/​CMakeLists.txt Fetches pinned BSP fallback.
examples/​README.md Updates supported example matrix.
examples/​raylib_shooter/​README.md Documents pinned dependencies.
examples/​raylib_shooter/​main/​CMakeLists.txt Supports namespaced engine resolution.
examples/​neon_rift_rally/​tests/​test_rally_game.c Expands steering/course tests.
examples/​neon_rift_rally/​tests/​test_neon_rift_rally.py Expands deterministic model tests.
examples/​neon_rift_rally/​tests/​run_host_tests.sh Adds standalone feedback/input checks.
examples/​neon_rift_rally/​tests/​course_select.json Exercises pointer course selection.
examples/​neon_rift_rally/​tests/​check_steering_response.py Adds steering calibration acceptance.
examples/​neon_rift_rally/​tests/​check_imu_steering.py Adds IMU/touch replay checks.
examples/​neon_rift_rally/​tests/​check_feedback.py Adds cue/haptic lifecycle check.
examples/​neon_rift_rally/​performance/​steering-tuning.md Records steering methodology.
examples/​neon_rift_rally/​performance/​host-optimization.md Records Host renderer measurements.
examples/​neon_rift_rally/​main/​rally_view.h Extends view inputs and profiling.
examples/​neon_rift_rally/​main/​rally_game.h Adds courses, steering, and opponents.
examples/​neon_rift_rally/​main/​CMakeLists.txt Supports namespaced engine resolution.
examples/​neon_rift_rally/​assets_src/​prepare_track_background.py Adds Pillow compatibility.
examples/​neon_rift_rally/​assets_src/​prepare_rally_sprites.py Adds Pillow compatibility.
examples/​neon_rift_rally/​assets_src/​motorcycle_poses.json Adds motorcycle pose atlas.
examples/​neon_rift_rally/​assets_src/​generate_audio.py Adds collision cue.
examples/​neon_rift_rally/​assets_src/​game_assets.json Registers new game assets.
examples/​living_worlds/​tests/​test_living_worlds.py Corrects repository-root lookup.
examples/​living_worlds/​tests/​test_living_worlds_session.py Relocates session harness lookup.
examples/​living_worlds/​tests/​test_living_worlds_session.c Adds lifecycle/rollback tests.
examples/​living_worlds/​tests/​test_living_worlds_audio.py Relocates audio harness lookup.
examples/​living_worlds/​tests/​test_living_worlds_audio.c Adds audio lifecycle tests.
examples/​living_worlds/​README.md Updates deployment guidance.
examples/​living_worlds/​PERFORMANCE.md Marks measurements historical.
examples/​living_worlds/​main/​CMakeLists.txt Supports namespaced engine resolution.
examples/​living_worlds/​HISTORICAL_PERFORMANCE.md Archives device measurements.
examples/​last_zone_extraction/​tests/​test_last_zone_model.py Relocates model harness lookup.
examples/​last_zone_extraction/​tests/​test_last_zone_feedback.py Relocates feedback harness lookup.
examples/​last_zone_extraction/​README.md Updates supported build paths.
examples/​last_zone_extraction/​main/​CMakeLists.txt Supports namespaced engine resolution.
examples/​common_components/​examples_common/​README.md Clarifies unsupported ELF path.
examples/​boards/​esp-mosaico/​sdkconfig.defaults Disables Iris by default.
examples/​boards/​esp-mosaico/​README.md Documents pinned Board dependencies.
examples/​boards/​esp-mosaico/​project.cmake Fetches pinned Recovery source.
examples/​boards/​esp-mosaico/​Kconfig Adds Iris opt-in setting.
examples/​boards/​esp-mosaico/​idf_component.yml Pins BSP and Iris revisions.
examples/​boards/​esp-mosaico/​CMakeLists.txt Adds OTA dependency.
examples/​boards/​esp-mosaico/​board.c Gates Iris and confirms OTA directly.
docs/​skills/​mosaico-game-development/​SKILL.EN.md Updates supported workflows.
docs/​skills/​mosaico-game-development/​SKILL.CN.md Updates Chinese workflow guidance.
docs/​reference-designs.EN.md Updates documentation link.
docs/​README.md Becomes English documentation index.
docs/​README.EN.md Removes superseded English index.
docs/​README.CN.md Updates bilingual index links.
docs/​quickstart.EN.md Clarifies checkout/native requirements.
docs/​quickstart.CN.md Updates Chinese quickstart.
docs/​game-development.EN.md Documents release and validation workflow.
docs/​game-development.CN.md Updates Chinese development workflow.
docs/​engine-capabilities.EN.md Links public lifecycle contract.
docs/​board-porting.EN.md Documents ownership and concurrency.
docs/​board-porting.CN.md Updates Chinese Board contract.
docs/​agent-cli.EN.md Updates replay and ELF guidance.
docs/​agent-cli.CN.md Updates Chinese CLI guidance.
CONTRIBUTING.md Removes language-selector stub.
CONTRIBUTING.EN.md Updates documentation link.
CMakeLists.txt Clarifies namespaced component use.
CHANGELOG.md Records release integration changes.
API.md Adds public application contract.
.gitignore Ignores experiments and release output.
.github/​workflows/​release-checks.yml Adds package/build/upload pipeline.
.github/​workflows/​checks.yml Installs expanded Host dependencies.

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

Comment thread examples/neon_rift_rally/tests/run_host_tests.sh
@espressif2022
espressif2022 marked this pull request as ready for review October 9, 2026 06:59
Comment thread examples/boards/esp-mosaico/idf_component.yml
@espressif2022
espressif2022 merged commit 80d8352 into feat/elf-vibe-games Oct 9, 2026
22 checks passed
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.

3 participants