Skip to content

Game Development Studio 1.5.0

Choose a tag to compare

@theisegoria theisegoria released this 05 Oct 08:59
· 4 commits to main since this release

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)
    and probe/rust (crate gdprobe) 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|run and the plan_bisect /
    run_bisect MCP 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 optional build script 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 gains gdprobe_session.c (open, a non-blocking
    per-frame poll, should_advance). The harness listens on a Unix socket in
    a fresh 0700 directory, 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 like run_scenario),
    live_session_snapshot, live_session_query, live_session_control,
    end_live_session, promote_live_session; CLI: game-dev session run with
    a script of steps. Sessions are never evidence: sess_ records carry an
    all-false evidence block and verify_capture_run refuses 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
    as game_dev.telemetry_event.v2 lines (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 breakdown and the performance_breakdown MCP 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 as category: diagnostic events with
    reserved severity, message, source and message_id attributes. The C
    SDK gains gdprobe_diagnostic(), and the Vulkan and OpenGL examples route
    their callbacks into it. game-dev capture diagnostics and the
    list_run_diagnostics MCP 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 sequence and the
    analyze_frame_sequence MCP 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. See docs/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 in unsupportedAttachments.
  • Scenario processes find the Node runtime that launched the harness first on
    PATH, so a project script using /usr/bin/env node works 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.