feat(direct-control): caller-owned shared session seam + graceful FIN close + timeout stats#1654
Merged
Merged
Conversation
This was referenced Jun 12, 2026
Merged
refactor(studio): decompose App.tsx non-React corpus into feature modules and shared utilities
#1608
Merged
|
Railway preview (MapGen Studio): not provisioned for this PR. Policy (Graphite stacks): previews are created only for the top-of-stack PR by default.
Debug: |
This was referenced Jun 12, 2026
Merged
This was referenced Jun 12, 2026
mateicanavra
force-pushed
the
design/tuner-session-seam
branch
from
June 12, 2026 20:44
725ee7b to
2f8b0f1
Compare
mateicanavra
force-pushed
the
design/bun-server-daemon
branch
from
June 12, 2026 20:44
e279fc3 to
13b52fd
Compare
mateicanavra
changed the base branch from
design/bun-server-daemon
to
graphite-base/1654
June 12, 2026 22:27
mateicanavra
force-pushed
the
graphite-base/1654
branch
from
June 12, 2026 22:29
13b52fd to
7afc682
Compare
mateicanavra
force-pushed
the
design/tuner-session-seam
branch
from
June 12, 2026 22:29
2f8b0f1 to
bffb13b
Compare
mateicanavra
force-pushed
the
design/tuner-session-seam
branch
from
June 12, 2026 22:30
bffb13b to
3ce8eec
Compare
… close + timeout stats Civ7DirectControlOptions.session — withCiv7DirectControlSession reuses a caller-owned session without closing it (all ~60 procedures funnel through this wrapper); absent, behavior is unchanged. close() now ends with a FIN handshake (1s fallback to destroy) — the abrupt-destroy teardown is the suspected driver of the game-side fd leak that wedges the tuner. session.stats tracks consecutive response-timeouts (reset on any resolved frame) as the wedge/busy signature for the studio's backoff gate. 389/389 package tests (5 new pins: reuse over one connection, no close of injected sessions, FIN observed, stats accumulate/reset). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
mateicanavra
force-pushed
the
design/tuner-session-seam
branch
from
June 12, 2026 22:44
3ce8eec to
2258cfe
Compare
This was referenced Jun 12, 2026
Owner
Author
Merge activity
|
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.
Civ7DirectControlOptions.session — withCiv7DirectControlSession reuses a
caller-owned session without closing it (all ~60 procedures funnel through
this wrapper); absent, behavior is unchanged. close() now ends with a FIN
handshake (1s fallback to destroy) — the abrupt-destroy teardown is the
suspected driver of the game-side fd leak that wedges the tuner.
session.stats tracks consecutive response-timeouts (reset on any resolved
frame) as the wedge/busy signature for the studio's backoff gate.
389/389 package tests (5 new pins: reuse over one connection, no close of
injected sessions, FIN observed, stats accumulate/reset).
Co-Authored-By: Claude Fable 5 noreply@anthropic.com