fix(afk): publish entrySlots[GAME_ORCHESTRATOR_IS_AFK] on chinlan - #10
Merged
Conversation
`KIOUAfkDisableAlwaysFalseInstall` used to only route through `KIOUHookInstall`, which is a no-op for slot publishing on chinlan (it returns the bypass entry so callers can invoke orig; it does not write into the entry slot table). That meant the AFK cave BLR'd through a NULL `entrySlots[GAME_ORCHESTRATOR_IS_AFK]` and crashed on the first `IsAfkEnabled` call — the exact regression the "always false" installer exists to prevent. Write the slot directly on chinlan so a plain `KIOUAfkDisableAlwaysFalseInstall(unityBase)` call in the consumer tweak is enough. JB path keeps calling `KIOUHookInstall` (which does the right thing there via `MSHookFunction`). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The default branch was renamed main -> master; workflow triggers need to match or push events / PR CI won't fire. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
tkgstrator
added a commit
that referenced
this pull request
Jul 27, 2026
* fix(afk): publish entrySlots[GAME_ORCHESTRATOR_IS_AFK] on chinlan `KIOUAfkDisableAlwaysFalseInstall` used to only route through `KIOUHookInstall`, which is a no-op for slot publishing on chinlan (it returns the bypass entry so callers can invoke orig; it does not write into the entry slot table). That meant the AFK cave BLR'd through a NULL `entrySlots[GAME_ORCHESTRATOR_IS_AFK]` and crashed on the first `IsAfkEnabled` call — the exact regression the "always false" installer exists to prevent. Write the slot directly on chinlan so a plain `KIOUAfkDisableAlwaysFalseInstall(unityBase)` call in the consumer tweak is enough. JB path keeps calling `KIOUHookInstall` (which does the right thing there via `MSHookFunction`). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * ci: update trigger branch from main to master The default branch was renamed main -> master; workflow triggers need to match or push events / PR CI won't fire. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
KIOUAfkDisableAlwaysFalseInstallonly routes throughKIOUHookInstall, which on chinlan is a no-op for slot publishing — it just returns the bypass entry so callers can invoke orig; it doesn't write into the entry slot table. So the AFK cave ends up BLR'ing through a NULLentrySlots[GAME_ORCHESTRATOR_IS_AFK]and crashes on the firstIsAfkEnabledcall — the exact regression the "always false" installer exists to prevent.Fix
Write the slot directly on chinlan so a plain
KIOUAfkDisableAlwaysFalseInstall(unityBase)in the consumer tweak is enough. JB path is unchanged (KIOUHookInstall→MSHookFunctionstill works).Test plan
python -m tools.check_recipescleanruffcleanIsAfkEnabledreturns false without the cave crashing.🤖 Generated with Claude Code