Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
760 commits
Select commit Hold shift + click to select a range
030cb09
fix(gc): restore host cosmetic cache
Svenmax Jul 11, 2026
4023feb
fix(gc): avoid duplicate host cache subscribe
Svenmax Jul 11, 2026
d4727bb
fix(gc): refresh host local cosmetics
Svenmax Jul 11, 2026
22473e7
fix(gc): advance host cosmetic cache version
Svenmax Jul 11, 2026
56470b6
fix(gc): rebuild host local item cache
Svenmax Jul 11, 2026
40daa96
fix(gc): mirror host equipped inventory
Svenmax Jul 11, 2026
06bcf38
fix(gc): preserve remote equipped inventory
Svenmax Jul 11, 2026
ff07431
fix(gc): refresh host local wearables
Svenmax Jul 11, 2026
8b1c368
fix(gc): defer host wearable refresh
Svenmax Jul 11, 2026
51051f8
fix(gc): update host client wearables
Svenmax Jul 11, 2026
3795a5e
fix(gc): include item payload helpers
Svenmax Jul 11, 2026
fd74db8
fix(gc): refresh host loadout cache
Svenmax Jul 11, 2026
2822540
fix(gc): retry host wearable refresh
Svenmax Jul 11, 2026
55ad1ef
fix(gc): route host wearable refresh to server
Svenmax Jul 11, 2026
71bd1e8
chore(gc): trace equipped cache baseline
Svenmax Jul 11, 2026
dfb6334
fix(gc): expose lobby generation diagnostic
Svenmax Jul 11, 2026
7fb7b28
fix(gc): align host equip payload encoding
Svenmax Jul 11, 2026
5385db7
fix(gc): infer host hero before equip replay
Svenmax Jul 11, 2026
7598f91
fix(gc): validate host lobby across gc identities
Svenmax Jul 12, 2026
db7c7ce
fix(gc): keep host lobby check in coordinator
Svenmax Jul 12, 2026
4b1d6e6
fix(gc): retain inferred host hero on client
Svenmax Jul 12, 2026
9137d0b
fix(gc): preserve known shared owner hero
Svenmax Jul 12, 2026
3d47061
fix(gc): retain known hero across lobby restore
Svenmax Jul 12, 2026
0e98eca
fix(gc): include host hero in 7034 response
Svenmax Jul 12, 2026
9e836ba
fix(gc): recover host hero before showcase
Svenmax Jul 12, 2026
1b9246e
fix(gc): route hero restore through lifecycle
Svenmax Jul 12, 2026
bbd0533
fix(gc): synchronize hero wearable lifecycle
Svenmax Jul 12, 2026
537ddc4
refactor(gc): single-track deferred tasks via Slot only
Svenmax Jul 12, 2026
331a0b4
refactor(gc): centralize owner_hero_id apply and preserve rules
Svenmax Jul 12, 2026
883d505
refactor(gc): share host showcase/wearable one-shot key rules
Svenmax Jul 12, 2026
ec4cdc5
refactor(gc): migrate high-risk post-login handlers into registry
Svenmax Jul 13, 2026
d7a78f9
refactor(gc): migrate launch chain into post-login registry
Svenmax Jul 13, 2026
293f2af
refactor(gc): enforce Store generation-gated write discipline
Svenmax Jul 13, 2026
2b47c37
refactor(gc): split inventory equip ports out of gc_internal
Svenmax Jul 13, 2026
8665152
refactor(gc): split practice lobby handlers into domain TUs
Svenmax Jul 13, 2026
a6e8432
refactor(gc): split lobby state coordinator into domain TUs
Svenmax Jul 13, 2026
8a925cb
test(gc): upgrade D.11 replay golden, deferred stress, offline root a…
Svenmax Jul 13, 2026
a0b8859
refactor(gc): finish D.12 template assets and gc_internal slim
Svenmax Jul 13, 2026
1e02940
docs(gc): sync D.12 gc_internal and template ownership status
Svenmax Jul 13, 2026
36d7025
docs(gc): record post-D.12 full verification handoff
Svenmax Jul 13, 2026
687f6a4
chore(gc): fix diff --check whitespace for PR gate
Svenmax Jul 13, 2026
a8fc7dc
fix(gc): include request_router in lobby handler helpers
Svenmax Jul 13, 2026
ef5d11f
refactor(gc): migrate post-login if-chain into registry
Svenmax Jul 13, 2026
91fe45b
refactor(gc): host hero adopt API + SourceTV registry (A3/B1)
Svenmax Jul 13, 2026
7b22482
refactor(gc): extract Hello welcome handlers (B2)
Svenmax Jul 13, 2026
af4c5dc
refactor(gc): whitelist template cases (B3)
Svenmax Jul 13, 2026
c72829e
refactor(gc): drop wrapped dead fallback (B4)
Svenmax Jul 13, 2026
d747af0
docs(gc): local/shared write inventory (C1)
Svenmax Jul 13, 2026
f6feac2
docs(gc): inventory Legacy lifecycle effects (C2)
Svenmax Jul 13, 2026
c700811
refactor(gc): named TeardownActionsRequested gate (C3)
Svenmax Jul 13, 2026
ebf3fc2
refactor(gc): finish TeardownActionsRequested migration (C4)
Svenmax Jul 13, 2026
15a5368
refactor(gc): name CustomGameLifecycleActionsRequested gate (C5)
Svenmax Jul 13, 2026
8a814b8
refactor(gc): path-specific teardown gates and action builders (C6)
Svenmax Jul 13, 2026
c74b7af
refactor(gc): unify custom-game SM+compute into decide_* (C7)
Svenmax Jul 13, 2026
8cf9966
refactor(gc): route member runtime through decide_* SM gate (C8)
Svenmax Jul 13, 2026
8227b06
refactor(gc): actionize QueuePostGame state mutations (C9)
Svenmax Jul 13, 2026
89dfe1e
docs(gc): close Phase C lifecycle exit review (C-exit)
Svenmax Jul 13, 2026
d6d1582
docs(gc): write Phase D boundary and stop conditions
Svenmax Jul 13, 2026
c801d72
docs(gc): add Phase E test-boundary and GP-09 split levels
Svenmax Jul 13, 2026
4de9915
feat(gc): plan ClientHello side effects for GP-09 L1.5 (E1)
Svenmax Jul 13, 2026
116b19b
feat(gc): plan ServerHello skip/push for GP-09 L1.5 (E2)
Svenmax Jul 13, 2026
1aac1c7
docs(gc): design GP-10 L4 dual-GC harness (E4)
Svenmax Jul 13, 2026
1ded7aa
docs(gc): close Phase E exit after S0 L4 link spike failure
Svenmax Jul 13, 2026
0b01e7d
fix(gc): remove duplicate GBE_kGcDebugLogPath in dll.cpp
Svenmax Jul 13, 2026
61d85bd
fix(gc): re-push host local wearables at TEAM_SHOWCASE
Svenmax Jul 13, 2026
166a5e5
fix(gc): queue host wearable 1029 on client GC too
Svenmax Jul 14, 2026
1be4091
fix(gc): fire host equip one-shot at PRE_GAME not TEAM_SHOWCASE
Svenmax Jul 14, 2026
58d8383
fix(gc): always set contains_equipped_state on SOUpdate
Svenmax Jul 14, 2026
a85f847
fix(gc): replace client equipped cache for host self-view
Svenmax Jul 14, 2026
43e5017
fix(gc): never CacheUnsub client inventory for host self-view
Svenmax Jul 14, 2026
d91ee67
fix(gc): align Dota CSO equip wire with official captures
Svenmax Jul 14, 2026
3814474
refactor(gc): tighten Dota lifecycle boundaries
Svenmax Jul 25, 2026
5d7299d
refactor(gc): centralize signout followup
Svenmax Jul 25, 2026
a888f18
refactor(gc): remove retired internal header
Svenmax Jul 25, 2026
aadbe34
test(gc): verify coordinator dependency contract
Svenmax Jul 25, 2026
7fd4fef
test(gc): audit capability header contracts
Svenmax Jul 25, 2026
a416370
docs(gc): synchronize current maintenance state
Svenmax Jul 25, 2026
aa21aae
docs(gc): reconcile lifecycle audit history
Svenmax Jul 25, 2026
e66417c
fix(gc): enforce public declaration definitions
Svenmax Jul 25, 2026
944e2e5
test(gc): audit lobby helper declarations
Svenmax Jul 25, 2026
8f2eec5
test(gc): audit locator declarations
Svenmax Jul 25, 2026
566231b
test(gc): audit reconnect network declarations
Svenmax Jul 25, 2026
f6c168a
refactor(gc): centralize queued launch state apply
Svenmax Jul 25, 2026
f667839
refactor(gc): centralize launch phase advance
Svenmax Jul 25, 2026
7ebb54e
refactor(gc): centralize generic lobby state capture
Svenmax Jul 25, 2026
af43faa
refactor(gc): centralize shared runtime restore
Svenmax Jul 25, 2026
e5d82da
refactor(gc): centralize steam auth launch metadata
Svenmax Jul 25, 2026
a633c67
refactor(gc): centralize 4511 launch marker
Svenmax Jul 25, 2026
771ece9
refactor(gc): centralize lifecycle state apply
Svenmax Jul 25, 2026
c5d0786
refactor(gc): centralize 4511 marker restore
Svenmax Jul 25, 2026
96ce463
refactor(gc): centralize postgame lobby state apply
Svenmax Jul 25, 2026
ba6395b
refactor(gc): centralize connect and match restore
Svenmax Jul 25, 2026
a4e3b4d
refactor(gc): centralize start time and room restore
Svenmax Jul 25, 2026
ccf1dd0
refactor(gc): centralize owner field restore
Svenmax Jul 25, 2026
fd8b72f
refactor(gc): centralize shared options restore
Svenmax Jul 25, 2026
a0a1db2
refactor(gc): centralize shared cache restore
Svenmax Jul 25, 2026
a2c7e87
refactor(gc): centralize custom game restore
Svenmax Jul 25, 2026
74c13dd
refactor(gc): centralize generation and generic lobby restore
Svenmax Jul 25, 2026
a389fca
refactor(gc): centralize generic runtime identity capture
Svenmax Jul 25, 2026
49ffa08
refactor(gc): centralize generic options capture
Svenmax Jul 25, 2026
b896856
refactor(gc): converge Dota lobby state boundaries
Svenmax Jul 25, 2026
8dd9934
refactor(gc): isolate registry defensive template routing
Svenmax Jul 25, 2026
86a981a
refactor(gc): isolate direct conditional fallback routing
Svenmax Jul 25, 2026
c48377d
refactor(gc): isolate wrapped hard miss routing
Svenmax Jul 25, 2026
9c9dd21
refactor(gc): guard legacy wrapped parser usage
Svenmax Jul 25, 2026
5918860
refactor(gc): guard template-only replay inventory
Svenmax Jul 25, 2026
adb92ff
refactor(gc): guard registry routing inventory
Svenmax Jul 25, 2026
ace643b
refactor(gc): guard registry metadata inventory
Svenmax Jul 25, 2026
8bc3b6a
docs(gc): sync current registry metadata status
Svenmax Jul 25, 2026
02421f2
docs(gc): sync routing inventory metadata wording
Svenmax Jul 25, 2026
277252e
refactor(gc): guard local shared merge inventory
Svenmax Jul 25, 2026
e53fc54
refactor(gc): guard local shared merge field groups
Svenmax Jul 25, 2026
9824576
refactor(gc): guard local shared merge definitions
Svenmax Jul 25, 2026
2575e56
refactor(gc): ignore comments in merge definition guard
Svenmax Jul 25, 2026
5b735bf
test(gc): guard merge definition line comments
Svenmax Jul 25, 2026
a272c65
refactor(gc): guard local shared merge duplicates
Svenmax Jul 25, 2026
ef4664f
refactor(gc): guard registry inventory duplicates
Svenmax Jul 25, 2026
ad91229
refactor(gc): guard template-only inventory duplicates
Svenmax Jul 25, 2026
f669e95
refactor(gc): guard registry-defensive inventory duplicates
Svenmax Jul 25, 2026
623e141
refactor(gc): guard direct conditional inventory duplicates
Svenmax Jul 25, 2026
3d982b7
refactor(gc): guard wrapped hard miss inventory section
Svenmax Jul 25, 2026
13b3cb7
refactor(gc): guard legacy parser inventory section
Svenmax Jul 25, 2026
acc456f
refactor(gc): guard template-only inventory section
Svenmax Jul 25, 2026
95fc089
refactor(gc): guard template-only inventory section presence
Svenmax Jul 25, 2026
a88de74
refactor(gc): guard registry-defensive inventory section presence
Svenmax Jul 25, 2026
0f44a1c
refactor(gc): guard direct conditional inventory section presence
Svenmax Jul 25, 2026
ffb642c
refactor(gc): guard wrapped hard miss inventory section presence
Svenmax Jul 25, 2026
8dc155b
refactor(gc): guard registry inventory section presence
Svenmax Jul 25, 2026
5cd9cac
refactor(gc): guard legacy parser inventory section presence
Svenmax Jul 25, 2026
9b88448
test(gc): guard local shared merge inventory section presence
Svenmax Jul 25, 2026
9c9719e
refactor(gc): guard local shared merge inventory section end
Svenmax Jul 25, 2026
2ce4a60
refactor(gc): guard registry inventory section end
Svenmax Jul 25, 2026
0e9798c
refactor(gc): guard template replay inventory section end
Svenmax Jul 25, 2026
3230803
refactor(gc): guard fallback inventory section end
Svenmax Jul 25, 2026
ab38683
refactor(gc): guard parser inventory section end
Svenmax Jul 25, 2026
badc04f
refactor(gc): share inventory section slicing
Svenmax Jul 25, 2026
f5ac04c
refactor(gc): anchor inventory section headings
Svenmax Jul 25, 2026
9567dc8
refactor(gc): require inventory heading boundary
Svenmax Jul 25, 2026
5406776
refactor(gc): share inventory markdown cells
Svenmax Jul 25, 2026
bfd15b2
refactor(gc): share inventory duplicate tracking
Svenmax Jul 25, 2026
08c7062
refactor(gc): share inventory duplicate issues
Svenmax Jul 25, 2026
545a43f
refactor(gc): share inventory numeric sorting
Svenmax Jul 25, 2026
80c0bf1
refactor(gc): share inventory emsg lists
Svenmax Jul 25, 2026
225d831
refactor(gc): share inventory emsg diff diagnostics
Svenmax Jul 25, 2026
2d00698
refactor(gc): name inventory section headings
Svenmax Jul 25, 2026
e77a2f6
refactor(gc): share case emsg extraction
Svenmax Jul 25, 2026
cf43072
refactor(gc): share request emsg extraction
Svenmax Jul 25, 2026
89e6f60
refactor(gc): share inventory numeric cell parsing
Svenmax Jul 25, 2026
aacc515
refactor(gc): share inventory multi numeric parsing
Svenmax Jul 25, 2026
fe47b54
refactor(gc): share audit marker slicing
Svenmax Jul 25, 2026
64b73a9
refactor(gc): share audit function call checks
Svenmax Jul 25, 2026
b6abf60
refactor(gc): reuse audit marker slicing
Svenmax Jul 25, 2026
716550d
refactor(gc): share audit word token checks
Svenmax Jul 25, 2026
0cce37c
refactor(gc): share audit marker order checks
Svenmax Jul 25, 2026
9a9ae98
refactor(gc): share audit any token checks
Svenmax Jul 25, 2026
93894d2
refactor(gc): share audit emsg token resolution
Svenmax Jul 25, 2026
5e531fa
refactor(gc): share audit adapter handler call parsing
Svenmax Jul 25, 2026
7326de4
refactor(gc): share audit replay label parsing
Svenmax Jul 25, 2026
908671c
refactor(gc): centralize SourceTV metadata apply
Svenmax Jul 25, 2026
912b5b7
refactor(gc): centralize runtime connect apply
Svenmax Jul 25, 2026
556bd74
refactor(gc): centralize owner connected apply
Svenmax Jul 25, 2026
831a6f4
refactor(gc): centralize owner team slot apply
Svenmax Jul 25, 2026
9493d88
refactor(gc): centralize chat channel apply
Svenmax Jul 25, 2026
78d1df0
refactor(gc): centralize broadcast channel apply
Svenmax Jul 26, 2026
fb5a272
refactor(gc): centralize cache metadata apply
Svenmax Jul 26, 2026
cd8ef02
refactor(gc): centralize owner lifecycle connection apply
Svenmax Jul 26, 2026
729e4fd
refactor(gc): centralize slot owner team apply
Svenmax Jul 26, 2026
12bc812
refactor(gc): centralize custom game loading metadata apply
Svenmax Jul 26, 2026
4cb93d6
refactor(gc): centralize bot difficulty team apply
Svenmax Jul 26, 2026
9c56c18
refactor(gc): centralize runtime metadata apply
Svenmax Jul 26, 2026
b7ca080
refactor(gc): centralize generic lobby id apply
Svenmax Jul 26, 2026
15dc709
refactor(gc): centralize server id apply
Svenmax Jul 26, 2026
48bff80
refactor(gc): centralize generation apply
Svenmax Jul 26, 2026
e0e6406
refactor(gc): centralize details update apply
Svenmax Jul 26, 2026
fdf66a6
refactor(gc): centralize members restore
Svenmax Jul 26, 2026
de2dd1f
refactor(gc): centralize owner name apply
Svenmax Jul 26, 2026
11fb5ac
refactor(gc): centralize generic observation flags
Svenmax Jul 26, 2026
e57b56c
refactor(gc): centralize local lobby clear
Svenmax Jul 26, 2026
f51fbf0
refactor(gc): centralize kick member snapshot apply
Svenmax Jul 26, 2026
db4f658
refactor(gc): centralize create state apply
Svenmax Jul 26, 2026
726640a
refactor(gc): centralize join merge apply
Svenmax Jul 26, 2026
e4f96eb
refactor(gc): centralize launch init apply
Svenmax Jul 26, 2026
dc5f43d
refactor(gc): centralize custom game launch serversetup apply
Svenmax Jul 26, 2026
28bdd9d
refactor(gc): centralize client lobby restore snapshot apply
Svenmax Jul 26, 2026
e98d5f1
docs(gc): update local assignment helper truth
Svenmax Jul 26, 2026
b96d9a3
test(gc): guard direct local lobby writes
Svenmax Jul 26, 2026
439fbff
test(gc): guard target local lobby object writes
Svenmax Jul 26, 2026
a5b850e
test(gc): guard nested local lobby field writes
Svenmax Jul 26, 2026
ca5e63b
test(gc): guard compound local lobby field writes
Svenmax Jul 26, 2026
9a90e53
test(gc): guard mutating local lobby field calls
Svenmax Jul 26, 2026
37ae7a7
test(gc): guard mutable local lobby aliases
Svenmax Jul 26, 2026
1a10dc7
test(gc): guard target local lobby field variants
Svenmax Jul 26, 2026
3307c9c
test(gc): allow const local lobby aliases
Svenmax Jul 26, 2026
94a21a4
test(gc): guard local lobby pointer aliases
Svenmax Jul 26, 2026
997e6df
test(gc): guard local lobby prefix incdec
Svenmax Jul 26, 2026
445d817
test(gc): guard target local lobby prefix incdec
Svenmax Jul 26, 2026
861f292
test(gc): guard explicit local lobby aliases
Svenmax Jul 26, 2026
09c5668
test(gc): guard forwarding local lobby aliases
Svenmax Jul 26, 2026
fea73d3
test(gc): guard decltype auto local lobby aliases
Svenmax Jul 26, 2026
bd180be
test(gc): guard indexed local lobby writes
Svenmax Jul 26, 2026
6327cd9
test(gc): guard target indexed local lobby writes
Svenmax Jul 26, 2026
51a008a
test(gc): guard indexed local lobby member writes
Svenmax Jul 26, 2026
9167894
test(gc): guard target indexed local lobby member writes
Svenmax Jul 26, 2026
d91e08d
test(gc): guard indexed local lobby prefix writes
Svenmax Jul 26, 2026
ea56148
test(gc): guard target indexed local lobby prefix writes
Svenmax Jul 26, 2026
762c6a3
test(gc): guard indexed local lobby postfix writes
Svenmax Jul 26, 2026
a27afd9
test(gc): guard target indexed local lobby postfix writes
Svenmax Jul 26, 2026
28c994b
test(gc): guard target indexed local lobby compound writes
Svenmax Jul 26, 2026
2dab4f7
test(gc): guard indexed local lobby compound writes
Svenmax Jul 26, 2026
6a0d141
test(gc): guard indexed local lobby mutating methods
Svenmax Jul 26, 2026
182d448
test(gc): guard target indexed local lobby mutating methods
Svenmax Jul 26, 2026
f10d37e
test(gc): guard parenthesized local lobby field writes
Svenmax Jul 26, 2026
9577b94
test(gc): guard target parenthesized local lobby field writes
Svenmax Jul 26, 2026
49319e8
test(gc): guard parenthesized indexed local lobby writes
Svenmax Jul 26, 2026
20ecfe5
test(gc): guard target parenthesized indexed local lobby writes
Svenmax Jul 26, 2026
9c17cf1
test(gc): guard parenthesized indexed local lobby member writes
Svenmax Jul 26, 2026
0c611eb
test(gc): guard target parenthesized indexed local lobby member writes
Svenmax Jul 26, 2026
d2631f5
refactor(gc): strengthen local lobby guardrails
Svenmax Jul 27, 2026
fb82efb
refactor(gc): route lobby capture through owner
Svenmax Jul 27, 2026
5006dea
refactor(gc): publish shared lobby from owner snapshot
Svenmax Jul 27, 2026
3cf5a87
refactor(gc): publish local member from owner snapshot
Svenmax Jul 27, 2026
95f97e8
refactor(gc): publish metadata from owner snapshot
Svenmax Jul 27, 2026
fbf5553
refactor(gc): route cache metadata through owner snapshot
Svenmax Jul 27, 2026
9a7e7ad
refactor(gc): guard lobby capture from owner snapshot
Svenmax Jul 27, 2026
977e413
refactor(gc): route slot handler reads through owner snapshot
Svenmax Jul 27, 2026
c8c5462
refactor(gc): route owner transfer reads through snapshot
Svenmax Jul 27, 2026
8e5c8a5
refactor(gc): route small lobby reads through snapshot
Svenmax Jul 27, 2026
4a0dfc4
refactor(gc): route lifecycle diagnostic reads through snapshot
Svenmax Jul 27, 2026
c881642
refactor(gc): route custom lifecycle handler reads through snapshot
Svenmax Jul 27, 2026
8934188
refactor(gc): route inventory handler reads through snapshot
Svenmax Jul 27, 2026
1ccc245
refactor(gc): route join handler reads through snapshot
Svenmax Jul 27, 2026
62699db
refactor(gc): route inventory coordinator reads through snapshot
Svenmax Jul 27, 2026
fd36c16
refactor(gc): route connection lifecycle reads through snapshot
Svenmax Jul 27, 2026
d7e4cc6
refactor(gc): route post-login lobby reads through snapshot
Svenmax Jul 27, 2026
b8be977
refactor(gc): route recover lobby reads through snapshot
Svenmax Jul 27, 2026
b1f746a
refactor(gc): route launch lobby reads through snapshot
Svenmax Jul 27, 2026
6f6d6bb
refactor(gc): route restore lobby reads through snapshot
Svenmax Jul 27, 2026
e49aab2
refactor(gc): route create lobby reads through snapshot
Svenmax Jul 27, 2026
996455b
refactor(gc): route misc lobby reads through snapshot
Svenmax Jul 27, 2026
a5247aa
refactor(gc): route welcome lobby reads through snapshot
Svenmax Jul 27, 2026
6b6cc0c
refactor(gc): route chat lobby reads through snapshot
Svenmax Jul 27, 2026
0affe13
refactor(gc): route coordinator lobby reads through snapshot
Svenmax Jul 27, 2026
927d9dc
refactor(gc): route lifecycle lobby reads through snapshot
Svenmax Jul 27, 2026
a9bbba4
refactor(gc): consolidate lobby translation units
Svenmax Jul 28, 2026
2a447b8
refactor(gc): add source-aware local lobby restore guards
Svenmax Jul 28, 2026
c720ffe
refactor(gc): preserve cache metadata during shared adopt
Svenmax Jul 28, 2026
90d0508
docs(gc): record domain boundary cleanup plan
Svenmax Jul 28, 2026
c8f0a66
fix(ci): checkout common deps for gc verification
Svenmax Jul 28, 2026
01111c2
refactor(gc): extract GBE_DotaLobbyCacheMetadata DTO from GBE_LocalLo…
Svenmax Jul 29, 2026
7328429
fix(gc): preserve custom game lifecycle action order
MonkeyCode-AI Jul 29, 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
  •  
  •  
  •  
62 changes: 44 additions & 18 deletions .github/workflows/emu-build-all-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,46 @@ name: "Build emu (Linux)"
on:
workflow_call:
# needed since it allows this to become a reusable workflow
inputs:
matrix_prj:
required: false
type: string
default: '["api_regular","steamclient_regular","api_experimental","steamclient_experimental","tool_lobby_connect","tool_generate_interfaces","test_gamepad_linux"]'
matrix_arch:
required: false
type: string
default: '["x64","x86"]'
matrix_cfg:
required: false
type: string
default: '["debug","release"]'
emu_build_sha:
required: false
type: string
default: ""
continue_on_error:
required: false
type: boolean
default: true
workflow_dispatch:
# allows manual trigger
inputs:
matrix_prj:
required: false
type: string
default: '["api_regular","steamclient_regular","api_experimental","steamclient_experimental","tool_lobby_connect","tool_generate_interfaces","test_gamepad_linux"]'
matrix_arch:
required: false
type: string
default: '["x64","x86"]'
matrix_cfg:
required: false
type: string
default: '["debug","release"]'
continue_on_error:
required: false
type: boolean
default: true

permissions:
contents: "write"
Expand All @@ -31,26 +69,14 @@ jobs:
needs: ["deps"]
runs-on: "ubuntu-24.04"
if: ${{ !cancelled() }}
continue-on-error: true
continue-on-error: ${{ inputs.continue_on_error }}

strategy:
fail-fast: false
matrix:
prj: [
# regular api
"api_regular",
"steamclient_regular",
# api + client (experimental)
"api_experimental",
"steamclient_experimental",
# tools
"tool_lobby_connect",
"tool_generate_interfaces",
# tests
"test_gamepad_linux",
]
arch: ["x64", "x86"]
cfg: ["debug", "release"]
prj: ${{ fromJSON(inputs.matrix_prj) }}
arch: ${{ fromJSON(inputs.matrix_arch) }}
cfg: ${{ fromJSON(inputs.matrix_cfg) }}

steps:
# clone branch
Expand Down Expand Up @@ -91,7 +117,7 @@ jobs:
working-directory: "${{ github.workspace }}"
run: |
sudo chmod 777 ./${{env.THIRD_PARTY_BASE_DIR}}/common/linux/premake/premake5
./${{env.THIRD_PARTY_BASE_DIR}}/common/linux/premake/premake5 --file=premake5.lua --genproto --emubuild=${{ github.sha }} --os=linux gmake
./${{env.THIRD_PARTY_BASE_DIR}}/common/linux/premake/premake5 --file=premake5.lua --genproto --emubuild=${{ inputs.emu_build_sha || github.sha }} --os=linux gmake

# mandatory Linux packages
- name: "Install required packages"
Expand Down Expand Up @@ -123,7 +149,7 @@ jobs:
- name: "Upload target package"
uses: actions/upload-artifact@v7
with:
name: "emu-linux-${{ matrix.prj }}-${{ matrix.cfg }}-${{ matrix.arch }}-${{ github.sha }}"
name: "emu-linux-${{ matrix.prj }}-${{ matrix.cfg }}-${{ matrix.arch }}-${{ inputs.emu_build_sha || github.sha }}"
path: "build/linux"
if-no-files-found: "error"
compression-level: 9
Expand Down
18 changes: 15 additions & 3 deletions .github/workflows/emu-build-all-win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@ on:
required: false
type: string
default: '["debug","release"]'
emu_build_sha:
required: false
type: string
default: ""
continue_on_error:
required: false
type: boolean
default: true
workflow_dispatch:
# allows manual trigger
inputs:
Expand All @@ -31,6 +39,10 @@ on:
required: false
type: string
default: '["debug","release"]'
continue_on_error:
required: false
type: boolean
default: true

permissions:
contents: "write"
Expand All @@ -56,7 +68,7 @@ jobs:
needs: ["deps"]
runs-on: "windows-2025-vs2026"
if: ${{ !cancelled() }}
continue-on-error: true
continue-on-error: ${{ inputs.continue_on_error }}

strategy:
fail-fast: false
Expand Down Expand Up @@ -112,7 +124,7 @@ jobs:
shell: "cmd"
working-directory: "${{ github.workspace }}"
run: |
"${{env.THIRD_PARTY_BASE_DIR}}\common\win\premake\premake5.exe" --file=premake5.lua --genproto --emubuild=${{ github.sha }} --dosstub --winrsrc --winsign --os=windows vs2026
"${{env.THIRD_PARTY_BASE_DIR}}\common\win\premake\premake5.exe" --file=premake5.lua --genproto --emubuild=${{ inputs.emu_build_sha || github.sha }} --dosstub --winrsrc --winsign --os=windows vs2026

# build target
- name: "Build target"
Expand All @@ -125,7 +137,7 @@ jobs:
- name: "Upload target package"
uses: actions/upload-artifact@v7
with:
name: "emu-win-${{ matrix.prj }}-${{ matrix.cfg }}-${{ matrix.arch }}-${{ github.sha }}"
name: "emu-win-${{ matrix.prj }}-${{ matrix.cfg }}-${{ matrix.arch }}-${{ inputs.emu_build_sha || github.sha }}"
path: "build/win"
if-no-files-found: "error"
compression-level: 9
Expand Down
63 changes: 63 additions & 0 deletions .github/workflows/emu-pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,66 @@ jobs:
matrix_prj: '["api_experimental"]'
matrix_arch: '["x64"]'
matrix_cfg: '["release"]'
emu_build_sha: ${{ github.event.pull_request.head.sha }}
continue_on_error: false

emu-linux-release:
name: "linux"
if: ${{ !cancelled() && github.event_name == 'pull_request' }}
uses: "./.github/workflows/emu-build-all-linux.yml"
with:
matrix_prj: '["api_experimental"]'
matrix_arch: '["x64"]'
matrix_cfg: '["release"]'
emu_build_sha: ${{ github.event.pull_request.head.sha }}
continue_on_error: false

gc-verification:
name: "gc verification"
runs-on: "ubuntu-24.04"
if: ${{ !cancelled() && github.event_name == 'pull_request' }}

steps:
- name: "Checkout branch"
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: "Clone third-party deps (deps/common)"
uses: actions/checkout@v6
with:
ref: "third-party/deps/common"
path: "third-party/deps/common"

- name: "Install required packages"
shell: "bash"
run: |
sudo apt update -y
sudo apt install -y build-essential python3 protobuf-compiler libprotobuf-dev libcurl4-openssl-dev libmbedtls-dev libopus-dev portaudio19-dev

- name: "Run full GC verification"
shell: "bash"
working-directory: "${{ github.workspace }}"
run: bash tools/run_gc_verification.sh --full --base-sha "${{ github.event.pull_request.base.sha }}"

gc-tsan:
name: "gc thread sanitizer"
runs-on: "ubuntu-24.04"
if: ${{ !cancelled() && github.event_name == 'pull_request' }}

steps:
- name: "Checkout branch"
uses: actions/checkout@v6

- name: "Install Clang"
shell: "bash"
run: |
sudo apt update -y
sudo apt install -y clang

- name: "Run GC ThreadSanitizer tests"
shell: "bash"
working-directory: "${{ github.workspace }}"
env:
CXX: clang++
run: bash tools/run_gc_tsan_tests.sh
Loading