Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
c162c07
Fixes Linux Debug terminal compilation after namespace refactoring
cppcooper Oct 15, 2026
486078e
Fixes font collection loading with missing preferred files
cppcooper Oct 15, 2026
bb5701f
Adds name-based font selection with application asset precedence
cppcooper Oct 15, 2026
ed42fe5
Adds public aggregate headers and a selected-component facade
cppcooper Oct 15, 2026
9a958d0
Documents artifact builds and complete public API consumption
cppcooper Oct 15, 2026
05f53fb
Fixes HID-enabled SDK exports and dependency documentation discovery
cppcooper Oct 15, 2026
3942284
Updates agents.md
cppcooper Oct 15, 2026
450f528
Improves documentation text size and explains text rendering stages
cppcooper Oct 15, 2026
3730085
Restructures getting started around game lifecycle and complete use c…
cppcooper Oct 15, 2026
df0cf51
Fixes documentation workflow validation on excluded branches
cppcooper Oct 15, 2026
e7dcbe0
Adds incremental documentation generation with explicit clean builds
cppcooper Oct 15, 2026
79807d1
Adds a root documentation generation script
cppcooper Oct 15, 2026
e8287fe
Clarifies getting started terminology with concrete API and build names
cppcooper Oct 15, 2026
6724637
Fixes incremental documentation invalidation and enum references
cppcooper Oct 15, 2026
745948e
Adds bounded GitHub Actions cache maintenance
cppcooper Oct 15, 2026
d19083b
Closes cache API error responses before handling failures
cppcooper Oct 15, 2026
6f08d46
Prioritizes main, develop and open pull request compiler caches
cppcooper Oct 15, 2026
9a58d4d
Adds layered compiler caches for main, develop and pull requests
cppcooper Oct 15, 2026
c67a9e5
Separates branch dependency caches from the shared Actions environment
cppcooper Oct 15, 2026
f961924
Preserves completed documentation stages after validation failures
cppcooper Oct 15, 2026
b2c9f86
Documents cache ownership and preserves reusable environment setup
cppcooper Oct 15, 2026
d6b99d3
Merges branch feat-shared-libraries into fixes-develop (squash)
cppcooper Oct 16, 2026
64816ff
Fixes native compiler cache format compatibility
cppcooper Oct 16, 2026
95e6112
Adds reviewed version and stable release automation
cppcooper Oct 16, 2026
6eec6bc
Fixes compiler cache fixture collision on Windows
cppcooper Oct 16, 2026
7ee84d2
Fixes streamed audio initialization lifetime race
cppcooper Oct 16, 2026
0d9dfc8
Shares a bounded vcpkg package pool across Windows CI jobs
cppcooper Oct 16, 2026
cbac83c
Stops logging before Engine DLL teardown
cppcooper Oct 16, 2026
a3c7ac3
Fixes Windows path fixtures in shared dependency cache tests
cppcooper Oct 16, 2026
0f0f8f0
Shares one vcpkg installation across Windows CI jobs
cppcooper Oct 16, 2026
0e2f6b2
Merges branch feat-sdk-docs into fixes-develop (squash)
cppcooper Oct 17, 2026
3fd5aa3
Updates documentation tooling tests for revision cache reuse
cppcooper Oct 17, 2026
44dc547
Fixes SDK runtime installation policy in generated scripts
cppcooper Oct 17, 2026
b1db6c1
Fixes relocated SDK checks at host runtime boundaries
cppcooper Oct 17, 2026
0ceb153
Fixes library argument lookup in SDK relocation test
cppcooper Oct 17, 2026
3237e03
Fixes Windows consumer names in CI tooling checks
cppcooper Oct 17, 2026
33a5560
Fixes Windows runtime scans at the system library boundary
cppcooper Oct 17, 2026
2840431
Updates the missing-runtime fixture for Windows path handling
cppcooper Oct 17, 2026
091ec2e
Fixes native-only TGUI consumers with shared Linux adapters
cppcooper Oct 17, 2026
7bca536
Revises agent instructions for focused verification and tooling contr…
cppcooper Oct 17, 2026
fa93cf3
Fixes Windows CI tooling fixtures and expands runner coverage
cppcooper Oct 17, 2026
79826ba
Fixes Windows staging and newline fixtures in CI tooling
cppcooper Oct 17, 2026
a178703
Fixes aliased temporary paths in CI fixtures
cppcooper Oct 17, 2026
c46f7aa
Adds persistent Windows tooling reuse instructions
cppcooper Oct 17, 2026
bd1fa2b
Revises HUD and GUI tutorials around TGUI and RmlUi
cppcooper Oct 17, 2026
f50f633
Adds clipboard copy controls to documentation code blocks
cppcooper Oct 18, 2026
329b72c
Merges fix/ui-default-materials into fixes-develop (squash)
cppcooper Oct 18, 2026
ca52b81
Merges completed engine and documentation branches into fixes-develop…
cppcooper Oct 18, 2026
2c6b1ec
Requires focused regression analysis and comprehensive build reuse
cppcooper Oct 18, 2026
aa4d670
Fixes frame fixture defaults and asynchronous test watchdogs
cppcooper Oct 18, 2026
ccf5140
Revises font setup and shared UI/controller documentation
cppcooper Oct 19, 2026
adcd15b
Adds isolated event notifications and runtime pressure observations
cppcooper Oct 19, 2026
7018680
Adds event publication audit and architectural assessment
cppcooper Oct 19, 2026
52b0632
Adds engine and module event implementation plan
cppcooper Oct 19, 2026
22b8900
Simplifies runtime pressure publication through Context
cppcooper Oct 19, 2026
881039e
Adds a typed event tutorial and notification flow diagram
cppcooper Oct 19, 2026
7df3bf4
Adds system integration diagrams to engine usage guides
cppcooper Oct 19, 2026
a1f3e5f
Simplifies event tutorial diagram into an inline block
cppcooper Oct 19, 2026
a34b05a
Explains event bus choices and delivery with Mermaid diagrams
cppcooper Oct 19, 2026
9ab44da
Uses standard Mermaid fences in the event tutorial
cppcooper Oct 19, 2026
fe29697
Switches documentation diagrams to browser-rendered Mermaid
cppcooper Oct 19, 2026
8458a12
Removes the spanning setup note from the Events sequence
cppcooper Oct 19, 2026
dda9250
Adds ownership and execution diagrams to runtime guides
cppcooper Oct 19, 2026
e67ed8e
Adds asset and resource lifetime diagrams
cppcooper Oct 19, 2026
f511b90
Adds integration and lifecycle diagrams to tutorials
cppcooper Oct 19, 2026
272c4a3
Adds module, startup and tooling diagrams
cppcooper Oct 19, 2026
778a0b1
Adds weak notification publishers to EventBus
cppcooper Oct 19, 2026
95aa6cc
Adds completed-poll gamepad availability observations
cppcooper Oct 19, 2026
7811e01
Adds aggregate settlement observations for asset uploads
cppcooper Oct 19, 2026
974e7e3
Documents publisher routing and engine observation events
cppcooper Oct 19, 2026
91dd6a9
Adds graphics domain lifecycle events and cache eviction
cppcooper Oct 19, 2026
b07f810
Adds engine-side diagnostics for notification events
cppcooper Oct 19, 2026
41cc9dd
Adds window and simulation view event integration
cppcooper Oct 19, 2026
7b990dd
Adds runtime lifecycle milestones and retained outcomes
cppcooper Oct 19, 2026
92d68a0
Adds negotiable shutdown and consumable native close intent
cppcooper Oct 19, 2026
20b465f
Adds runtime service phases and optional UI clocks
cppcooper Oct 19, 2026
19175ba
Adds bounded playback outcomes and optional runtime pumping
cppcooper Oct 19, 2026
982f74b
Adds committed asset catalogues with graphics-domain provenance
cppcooper Oct 20, 2026
31fc898
Updates documentation for integrated event families
cppcooper Oct 20, 2026
ac54833
Fixes the event tutorial navigation expectation
cppcooper Oct 20, 2026
7e8aa48
Fixes audio DLL exports and runtime CI test assumptions
cppcooper Oct 20, 2026
3591407
Fixes shared view source instantiations on Windows
cppcooper Oct 20, 2026
9cf3606
Retries transient Windows ccache installation failures
cppcooper Oct 20, 2026
85e37d7
Adds platform and simulation lifecycle hooks
cppcooper Oct 20, 2026
f25f3a1
Adds subsystem diagram explorer and revises Engine Systems usage guides
cppcooper Oct 21, 2026
a3c0303
Fixes checked links to generated diagram explorer views
cppcooper Oct 21, 2026
4bac58b
Fixes explorer rendering and compact documentation layouts
cppcooper Oct 21, 2026
89ad8c7
Improves inline documentation readability and link colors
cppcooper Oct 21, 2026
46a1b54
Adds public method entry points to application diagrams
cppcooper Oct 21, 2026
e8b493c
Clarifies action context arguments in the application input diagram
cppcooper Oct 21, 2026
02eefc5
Connects application methods to their argument and result types
cppcooper Oct 21, 2026
f35945a
Adds richer C++ syntax highlighting to documentation
cppcooper Oct 21, 2026
9265a81
Adds argument and result types to application diagrams
cppcooper Oct 21, 2026
2667628
Scopes Input diagram names to their subsystem
cppcooper Oct 21, 2026
37815c1
Simplifies signatures and namespace labels across subsystem diagrams
cppcooper Oct 21, 2026
2c042f7
Shows participating types without declaration qualifiers in diagrams
cppcooper Oct 21, 2026
ce3eb0d
Adds inline anchored rectangle overlap math
cppcooper Oct 22, 2026
3542f88
Fixes documentation CI test dependency setup
cppcooper Oct 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 26 additions & 0 deletions .github/actions/migrate-compiler-cache/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Import a previous compiler cache
description: Stage one compatible per-job compiler snapshot for a cold family cache.
inputs:
legacy-prefix:
description: Previous per-job cache prefix without its branch-layer suffix.
required: true
runs:
using: composite
steps:
- name: Describe previous compiler cache
id: migration
shell: bash
env:
LEGACY_CACHE_PREFIX: ${{ inputs.legacy-prefix }}
run: python .github/ci/compiler_cache.py migration-plan --prefix "$LEGACY_CACHE_PREFIX"
- name: Restore previous compiler cache
id: legacy
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.migration.outputs.path }}
key: ${{ steps.migration.outputs.key }}
restore-keys: ${{ steps.migration.outputs.prefix }}
- name: Stage previous compiler cache
if: steps.legacy.outputs.cache-matched-key != ''
shell: bash
run: python .github/ci/compiler_cache.py import
104 changes: 83 additions & 21 deletions .github/actions/prepare-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,33 @@ inputs:
profile:
description: CI composition, headless or modules.
required: true
cache-job:
description: Unique matrix job name for Windows dependency contributions.
default: worker
windows-vcpkg:
description: Build shared Windows dependencies once, or consume a prepared installation.
default: build
prepared-artifact:
description: Installed vcpkg artifact from this run's platform preparation job.
default: ''
outputs:
dependency-cache-writer:
description: Whether this run may publish its main or develop build dependency cache.
value: ${{ steps.metadata.outputs.dependency-cache-writer }}
runs:
using: composite
steps:
- name: Validate dependency preparation mode
shell: bash
env:
VCPKG_MODE: ${{ inputs.windows-vcpkg }}
PREPARED_ARTIFACT: ${{ inputs.prepared-artifact }}
run: |
case "$VCPKG_MODE" in
build) ;;
consume) test -n "$PREPARED_ARTIFACT" ;;
*) echo 'Unknown Windows vcpkg preparation mode' >&2; exit 1 ;;
esac
- name: Describe dependency caches
id: metadata
shell: bash
Expand All @@ -19,13 +43,16 @@ runs:
with:
path: ${{ steps.metadata.outputs.submodule-path }}
key: ${{ steps.metadata.outputs.submodule-key }}
restore-keys: |
${{ steps.metadata.outputs.submodule-prefix }}
${{ steps.metadata.outputs.submodule-main-prefix }}
- name: Check out pinned submodules
shell: bash
env:
CHERYL_SUBMODULE_TOKEN: ${{ github.token }}
run: python .github/ci/dependencies.py submodules
- name: Save submodule Git objects
if: steps.submodules.outputs.cache-hit != 'true'
if: steps.metadata.outputs.dependency-cache-writer == 'true' && steps.submodules.outputs.cache-hit != 'true'
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.metadata.outputs.submodule-path }}
Expand All @@ -39,26 +66,12 @@ runs:
${{ steps.metadata.outputs.vcpkg-root }}
${{ steps.metadata.outputs.ccache-tools }}
key: ${{ steps.metadata.outputs.tools-key }}
- name: Restore Windows dependency packages and downloads
if: runner.os == 'Windows'
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.metadata.outputs.dependency-path }}
key: ${{ steps.metadata.outputs.dependency-key }}
restore-keys: |
${{ steps.metadata.outputs.dependency-exact-prefix }}
${{ steps.metadata.outputs.dependency-profile-prefix }}
${{ steps.metadata.outputs.dependency-runner-prefix }}
- name: Snapshot Windows dependency cache
if: runner.os == 'Windows'
shell: bash
run: python .github/ci/dependencies.py cache-state --snapshot
- name: Prepare pinned Windows tools
if: runner.os == 'Windows'
shell: bash
run: python .github/ci/dependencies.py windows-tools
- name: Save Windows tools
if: runner.os == 'Windows' && steps.tools.outputs.cache-hit != 'true'
if: runner.os == 'Windows' && steps.metadata.outputs.environment-cache-writer == 'true' && steps.tools.outputs.cache-hit != 'true'
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: |
Expand All @@ -72,9 +85,6 @@ runs:
with:
path: ${{ steps.metadata.outputs.pip-path }}
key: ${{ steps.metadata.outputs.pip-key }}
restore-keys: |
${{ steps.metadata.outputs.pip-exact-prefix }}
${{ steps.metadata.outputs.pip-prefix }}
- name: Snapshot Python cache
if: runner.os == 'Windows' && inputs.profile == 'modules'
shell: bash
Expand All @@ -89,11 +99,63 @@ runs:
shell: bash
run: python .github/ci/dependencies.py cache-state --cache pip
- name: Save Python downloads and wheels
if: runner.os == 'Windows' && inputs.profile == 'modules' && steps.pip-state.outputs.changed == 'true'
if: runner.os == 'Windows' && inputs.profile == 'modules' && steps.metadata.outputs.environment-cache-writer == 'true' && steps.pip.outputs.cache-hit != 'true' && steps.pip-state.outputs.changed == 'true'
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.metadata.outputs.pip-path }}
key: ${{ steps.pip.outputs.cache-primary-key }}
- name: Describe shared Windows dependency pool
if: runner.os == 'Windows' && inputs.windows-vcpkg == 'build'
id: vcpkg
shell: bash
run: python .github/ci/vcpkg_cache.py describe
- name: Restore shared Windows dependency pool
if: runner.os == 'Windows' && inputs.windows-vcpkg == 'build'
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.vcpkg.outputs.cache-path }}
key: ${{ steps.vcpkg.outputs.cache-key }}
restore-keys: ${{ steps.vcpkg.outputs.cache-prefix }}
- name: Install Windows dependencies
if: runner.os == 'Windows' && inputs.windows-vcpkg == 'build'
id: vcpkg-install
shell: pwsh
env:
DEPENDENCY_PROFILE: ${{ inputs.profile }}
run: |
$vswhere = "${env:ProgramFiles(x86)}/Microsoft Visual Studio/Installer/vswhere.exe"
$vs = & $vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
if (!$vs) { throw 'MSVC x64 tools are unavailable' }
& "$vs/Common7/Tools/Launch-VsDevShell.ps1" -Arch amd64 -HostArch amd64 -SkipAutomaticLocation
python .github/ci/dependencies.py windows-install --profile $env:DEPENDENCY_PROFILE
if ($LASTEXITCODE) { exit $LASTEXITCODE }
- name: Pack prepared Windows dependencies
if: ${{ !cancelled() && runner.os == 'Windows' && inputs.windows-vcpkg == 'build' && steps.vcpkg-install.outcome == 'success' }}
id: vcpkg-pack
shell: bash
run: python .github/ci/vcpkg_cache.py pack --installed "$CHERYL_CI_VCPKG_INSTALLED_DIR"
- name: Retain prepared Windows dependencies
if: ${{ !cancelled() && runner.os == 'Windows' && inputs.windows-vcpkg == 'build' && steps.vcpkg-pack.outputs.has-content == 'true' }}
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: vcpkg-cache-${{ runner.arch }}-${{ inputs.cache-job }}-${{ github.run_attempt }}
path: ${{ steps.vcpkg.outputs.contribution-path }}
if-no-files-found: error
compression-level: 0
overwrite: true
retention-days: 1
- name: Download shared Windows installation
if: runner.os == 'Windows' && inputs.windows-vcpkg == 'consume'
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: ${{ inputs.prepared-artifact }}
path: ${{ steps.metadata.outputs.vcpkg-installed-dir }}
- name: Verify shared Windows installation
if: runner.os == 'Windows' && inputs.windows-vcpkg == 'consume'
shell: bash
env:
DEPENDENCY_PROFILE: ${{ inputs.profile }}
run: python .github/ci/dependencies.py windows-verify --profile "$DEPENDENCY_PROFILE"
- name: Update Linux package indexes
if: runner.os == 'Linux'
shell: bash
Expand All @@ -119,7 +181,7 @@ runs:
DEPENDENCY_PROFILE: ${{ inputs.profile }}
run: python .github/ci/dependencies.py apt-install --profile "$DEPENDENCY_PROFILE"
- name: Save Linux package binaries
if: runner.os == 'Linux' && steps.apt-plan.outputs.needed == 'true' && steps.apt.outputs.cache-hit != 'true'
if: runner.os == 'Linux' && steps.metadata.outputs.environment-cache-writer == 'true' && steps.apt-plan.outputs.needed == 'true' && steps.apt.outputs.cache-hit != 'true'
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.metadata.outputs.dependency-path }}/apt/*.deb
Expand Down
56 changes: 56 additions & 0 deletions .github/actions/restore-compiler-cache/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Restore layered compiler caches
description: Restore immutable compiler layers and optionally attach a fresh writable delta.
inputs:
prefix:
description: Compiler cache format, runner, architecture and compiler family prefix.
required: true
attach:
description: Configure ccache for a worker; publishers only restore the layers.
default: 'true'
outputs:
current-path:
description: Current immutable layer, or the publisher's merged layer to save.
value: ${{ steps.metadata.outputs.current-path }}
current-key:
description: New immutable key for this run's family snapshot.
value: ${{ steps.metadata.outputs.current-key }}
delta-archive:
description: Worker archive path for this run's compiler additions.
value: ${{ steps.metadata.outputs.delta-archive }}
current-hit:
description: Whether the current family layer was restored.
value: ${{ steps.current.outputs.cache-matched-key != '' }}
runs:
using: composite
steps:
- name: Describe compiler cache layers
id: metadata
shell: bash
env:
CACHE_PREFIX: ${{ inputs.prefix }}
run: python .github/ci/compiler_cache.py plan --prefix "$CACHE_PREFIX"
- name: Restore main compiler baseline
if: steps.metadata.outputs.restore-main == 'true'
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.metadata.outputs.main-path }}
key: ${{ steps.metadata.outputs.main-prefix }}${{ github.run_id }}-${{ github.run_attempt }}
restore-keys: ${{ steps.metadata.outputs.main-prefix }}
- name: Restore develop compiler additions
if: steps.metadata.outputs.restore-develop == 'true'
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.metadata.outputs.develop-path }}
key: ${{ steps.metadata.outputs.develop-prefix }}${{ github.run_id }}-${{ github.run_attempt }}
restore-keys: ${{ steps.metadata.outputs.develop-prefix }}
- name: Restore current compiler additions
id: current
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.metadata.outputs.current-path }}
key: ${{ steps.metadata.outputs.current-key }}
restore-keys: ${{ steps.metadata.outputs.current-prefix }}
- name: Configure compiler cache layers
if: inputs.attach == 'true'
shell: bash
run: python .github/ci/compiler_cache.py attach
Loading