Repository navigation
Game Development Studio 1.5.0
Game Development Studio 1.5.0 turns the harness from "what changed" into "where,
when and why to look": per-pass frame time, flicker and popping within a run,
validation errors diffed against a good run, commit bisection, live sessions with
a running engine, and a pull-request visual gate for engine repositories.
- Swift and Rust probe packages.
probe/Package.swift(import GDProbe)
andprobe/rust(crategdprobe) wrap the same C SDK over one ABI: runs,
frames, provenance, diagnostics, spans and live sessions. The Swift example
is driven through the harness in tests; the Rust crate is tested in CI. - Commit bisection.
game-dev bisect plan|runand theplan_bisect/
run_bisectMCP tools find the first commit at which a scenario changed
visually beyond the good commit's measured noise floor, or crossed a metric
limit. Each probe is built with the adapter's new optionalbuildscript in
its own temporary worktree, captured and sealed. Failed builds are skipped
and reported as a range; ends that do not reproduce stop the search; refs
that could be read as options are refused; worktrees are always removed. - Live sessions. The AI can talk to a running engine: snapshots, free-text
state queries answered from the engine's own scene graph, pause and exact
frame stepping. The C SDK gainsgdprobe_session.c(open, a non-blocking
per-framepoll,should_advance). The harness listens on a Unix socket in
a fresh0700directory, requires a one-time token, accepts one connection
and stops listening, names every snapshot file itself and decodes it before
reporting. MCP:start_live_session(gated likerun_scenario),
live_session_snapshot,live_session_query,live_session_control,
end_live_session,promote_live_session; CLI:game-dev session runwith
a script of steps. Sessions are never evidence:sess_records carry an
all-false evidence block andverify_capture_runrefuses them by name;
promotion produces a scenario plan for a sealed run. - Where the frame time went. Spans with parents and a clock domain arrive
asgame_dev.telemetry_event.v2lines (C SDK:gdprobe_span_reserve/
gdprobe_span_record) or as a Chrome/Perfetto JSON trace in a capture's
profiles, which was previously ignored without a word.game-dev performance breakdownand theperformance_breakdownMCP tool report each
pass's self-time, share of frame and longest chain per clock, and with a
baseline name the passes that grew. Every span is also a
span.<clock>.<name>measurement, so summaries, comparisons and goals see
per-pass time too. - Structured diagnostics. Validation-layer reports, GL debug messages and
engine assertions are recorded ascategory: diagnosticevents with
reservedseverity,message,sourceandmessage_idattributes. The C
SDK gainsgdprobe_diagnostic(), and the Vulkan and OpenGL examples route
their callbacks into it.game-dev capture diagnosticsand the
list_run_diagnosticsMCP tool group messages with handles and numbers
normalised away, place them in frames, and with a baseline name what is new. - Temporal analysis within a run.
game-dev visual sequenceand the
analyze_frame_sequenceMCP tool read one run's frames in order and report
flicker (pixels whose brightness reverses direction repeatedly, with a
heatmap), popping (objects appearing, vanishing or halving between adjacent
frames) and frame pacing (alternating short/long frames the mean hides),
attributed to object ids where the run has an id buffer. - Pull-request visual regression gate. A GitHub Action
(theisegoria/game-development-studio/action) captures a scenario on the
base commit and the head on the same runner, measures the base's own noise
floor, and fails the job when the head changed pixels beyond it. The job
summary carries the verdict, the plain-language summary, a per-attachment
table and heatmaps. No baseline files to commit. Seedocs/ci-gate.md. - The native Game Development Studio app gains a verified run library, an
attachment viewer with comparison controls, raw-sample performance charts and
histograms, package and durable-job libraries, and a view for reviewing
external-agent optimization sessions. - Optimization acceptance now refuses a candidate whose capture holds an
attachment nothing could read (neither PNG nor a binary raster with a
declared format), rather than passing it by omission. Analyses and
comparisons name such attachments inunsupportedAttachments. - Scenario processes find the Node runtime that launched the harness first on
PATH, so a project script using/usr/bin/env nodeworks from the bundled
app without a second global Node install. - Performance summaries enforce one measurement ceiling across all of a run's
telemetry and profile files, and no longer spread a file's measurements into
a single call, which overflowed the stack at the per-file ceiling.
Distribution remains the checksum-verified GitHub CLI tarball and skills ZIP; the
npm registry package remains unpublished, and the optional Anvil ZIP remains
ad-hoc signed and non-notarized. Live sessions are never evidence: they form
hypotheses that sealed runs prove. Span timings, diagnostics and bisection
verdicts are what the engine recorded on the machine that ran it, not
target-hardware measurements or proof of cause. The Rust crate is compiled and
tested in CI only. No paid provider call, engine integration or unattended
update is added.
Install from the checksum-verified theisegoria-game-development-studio-1.5.0.tgz; see the install guide and first capture. Node.js 22.5+ is installed separately. Verify every downloaded file against SHA256SUMS.txt; keep the prior release tarball for manual rollback. To gate pull requests in an engine repository, use theisegoria/game-development-studio/action@v1.5.0 (guide).
game-development-studio-plugin-1.5.0.zip contains skills only. The optional Anvil-1.5.0-macos-arm64.zip is ad-hoc signed, non-notarized and requires macOS 26+ on Apple Silicon; ANVIL_RELEASE.json records its source, runtime, signature and artifact evidence.
Validation: CI passed on the release commit, including the C, Swift and Rust probe SDKs, the software-lane determinism gate and the hosted Metal example; the v1.5.0 release workflow passed its platform, optional-tool, native packaging, exact-tarball first-run and Unix update/rollback gates. Uploaded assets were checked against SHA256SUMS.txt before publication.