Skip to content

Releases: BurakErdemci/gamachine

Gamachine v3.2.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 08:53

Gamachine v3.2.0

New models, a conversation that resumes itself when background work finishes, and
a persistent Antigravity session.

🍎 macOS (Apple Silicon): Gamachine-3.2.0-arm64.dmg
· 🪟 Windows: Gamachine-Setup-3.2.0.exe

New models: Gemini 3.8 Flash, Gemini 3.7 Flash and GPT-6 Astra

Gemini 3.8 Flash is the recommended default now, with 3.7 Flash alongside it,
and GPT-6 Astra joins the Codex list. The reasoning-effort choices differ per
model — GPT-6 offers low through max, the new Gemini models low, medium and
high — and the picker only shows what the model you picked actually supports.

Gemini 3.7 and 3.8 need agy 1.1.25 or newer for their display names. One
limitation worth knowing before you pick it: GPT-6 cannot be used on the older
chat-completions agent loop, because its tool calling exists only on the newer
API. Choosing it there now says so instead of failing halfway through a run.

The conversation wakes itself up when background work finishes

A run used to be tied to one open connection. If a subagent or a background
command finished after that connection closed, nothing resumed the turn — the
conversation just sat there until you typed something, and the result of the
work you were waiting for was invisible.

It now wakes itself. When background work completes, the conversation picks the
turn back up and tells you what finished. It waits if an approval card or a
prompt is on screen, so a wake never lands on top of a decision you are in the
middle of making, and it stops after three wakes in a row so a chain of tasks
cannot talk to itself indefinitely.

Antigravity CLI keeps one session open instead of restarting every turn

The Antigravity path used to start a fresh process for every single turn and
hand it the whole conversation as a command-line argument. That capped how much
history could be carried on Windows, made each turn pay a full startup, and left
the app scraping the CLI's own transcript files to figure out what happened.

It now holds one live session per conversation and sends each turn into it. The
turn's real token usage comes back from the CLI itself rather than being
reconstructed, the Windows length limit is gone, and everything that existed to
work around the restart — the history trimming, the transcript scraping, the
polling loop that guessed whether the CLI was still alive — is gone with it.

The usage and context panel stops going blank

The panel emptied out whenever the CLI session was busy or unavailable, and the
context section never showed anything at all. Usage readings are account-level
and stay true for a while, so the last successful reading is now kept for two
hours and shown with a "stale" badge and its age when nothing live can be
reached. Context falls back to an estimate from the stored conversation, clearly
labelled as an estimate rather than presented as a measurement.

Removed: the token and cost readout in the message box

The small "— tok" figure next to the memory ring reported wildly wrong numbers.
It is removed rather than corrected. The memory ring and the usage button are
unchanged.

Under the hood: secrets, approval cards and session cleanup

Everything the Antigravity CLI sends back now passes through one redaction step
on its way to the screen, including the final answer of a successful turn, which
previously bypassed it — that was the path by which a credential in a model's
own reply could reach the interface. Key names are masked as well as values, and
a deeply nested payload is trimmed rather than being allowed to kill the turn.

Approval cards are attributed to the conversation that created them, so a
pending card in one conversation no longer blocks another one from continuing.
A card that cannot be attributed still blocks, which is the safe direction.
Closing a session releases its own pending cards immediately instead of leaving
them to expire, and Stop only dismisses the cards belonging to the conversation
being stopped.

Gamachine v3.1.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 17:07

Gamachine v3.1.0

Offline live dictation, a 3D model preview, and bundled video tools.

🍎 macOS (Apple Silicon): Gamachine-3.1.0-arm64.dmg
· 🪟 Windows: Gamachine-Setup-3.1.0.exe

🎙️ Dictation: speak into the chat box, and it never leaves the machine

A microphone button in the chat box transcribes live, on-device, in Turkish or English, with no audio ever uploaded.

🛡️ Hardened before release

An external audit found 32 issues in the dictation code; 29 were fixed, each with a regression test.

🧊 3D model files open in a preview instead of the code editor

FBX, glTF/GLB, Collada, OBJ, STL and PLY files now open in an orbiting, animatable preview instead of the text editor.

🖼️ Images open in the content area too

Textures and sprites open as pictures in the same panel the 3D preview uses, with a pixel-sharp actual-size mode.

🎬 Video links work without installing anything first

The tools that fetch and read video now ship with the app, YouTube Shorts links no longer fail, and a stalled or blocked download says why.

🗂️ The model list comes from your own account

The hand-maintained model list is gone; each provider is now asked what your account can actually reach.

📊 A usage and context panel, and a gauge that is always there

The context gauge is always on screen now, backed by a panel with real token counts and cost, opened without touching the conversation.

☑️ Questions from the assistant can take more than one answer

Multi-select, a free-text answer, and a skip option are all available now, and a fresh question no longer inherits the last one's selection.

⏹️ A run that stops early says why

A stalled run now stops on repeated tool calls rather than a fixed step count, and says which tool repeated; the step ceiling is a 300-step last resort.

⚠️ Errors say what actually went wrong

Provider outages, rate limits, and tool-support gaps are each named instead of collapsed into one generic error, and long silences report who the app is waiting on.

🔧 Gemini models can use tools

A long-standing bug that broke tool calls on Gemini API models is fixed.

📜 The chat stays where you left it

Scrolling up no longer gets dragged back to the bottom on new output, except for cards that need your answer.

🔗 The content area follows the file

Renaming, moving, or deleting a file now keeps the preview or editor in sync with it instead of pointing at a stale path.

🐳 The Docker development container actually runs

Docker mode is fixed after never having worked, and now fails fast with a clear message instead of silently.

⚖️ The project is now plain MIT

The Commons Clause condition is removed; the project is MIT-licensed and open source in the OSI sense.

🧹 Under the hood

The bundled Unity sprite tool was updated, and a long series of audited fixes on file reading, approval gates, and the Docker path each shipped with a regression test.


📥 Install

Download the file for your platform above. Windows removes the previous version
automatically. Updates are notify-only: Gamachine tells you a new version exists
and opens this page — it never installs anything by itself.

⚠️ Known limits

  • Intel Macs are not supported. Only an Apple Silicon build is published.
  • The app is unsigned, so both operating systems will warn you on first launch.

Gamachine v3.0.3

Choose a tag to compare

@github-actions github-actions released this 09 Aug 19:50

Gamachine v3.0.3

Compact now actually shrinks the context.

🍎 macOS (Apple Silicon): Gamachine-3.0.3-arm64.dmg
· 🪟 Windows: Gamachine-Setup-3.0.3.exe

🧠 Compact was summarising, not shrinking

Pressing Compact collapsed the conversation into a summary and left the model's
context exactly where it was. You could compact, then ask the CLI how much
context it was holding, and get the same number back — 773k of 1M tokens,
unchanged.
That was measured against a running session, not inferred from code.

Two faults, and the first one hid the second.

The session was being revived. Compact closes the live CLI session, which
used to be enough on its own. Since 3.0.1 the app also remembers each chat's CLI
session id so it can pick up where you left off — and nothing dropped that id
when you compacted. The next message resumed the old session, the CLI reloaded
its full transcript from disk, and the session that had just been closed came
back exactly as it was. On a resumed session the new summary is deliberately not
injected either, so the old context returned and the fresh summary never
arrived.

Short chats skipped the reset. Compact returned early when a chat had six
messages or fewer — the right call for summarising, the wrong one for resetting.
After a single compact the stored chat is short while the CLI session is still
full, so the next press reported "chat is already short" and reset nothing. That
is the state most people would actually run into.

Compact now drops the session id on both paths, so even a short chat gets a clean
CLI session. When there is nothing to summarise it says so and tells you the
context was reset anyway — and that message now comes from the dictionary, so an
English interface no longer shows a Turkish notification here.

🪟 The Windows installer name is fixed at the source

For three releases the installer shipped as Gamachine.Setup.X.Y.Z.exe while the
update feed asked for Gamachine-Setup-X.Y.Z.exe, and the difference was patched
by hand each time. The dots come from the installer framework's default naming
template rather than the product name, so renaming the product never helped. The
template is now pinned, and the build and the update feed agree without anyone
having to remember.


📥 Install

Download the file for your platform above. Windows removes the previous version
automatically. Updates are notify-only: Gamachine tells you a new version exists
and opens this page — it never installs anything by itself.

⚠️ Known limits

  • Intel Macs are not supported. Only an Apple Silicon build is published.
  • The app is unsigned, so both operating systems will warn you on first launch.

Gamachine v3.0.2

Choose a tag to compare

@github-actions github-actions released this 09 Aug 11:57

Gamachine v3.0.2

The agent can now play a game it is not looking at.

🍎 macOS (Apple Silicon): Gamachine-3.0.2-arm64.dmg
· 🪟 Windows: Gamachine-Setup-3.0.2.exe

🎮 Input reaches the game again

manage_input hands your running game to the agent — it injects keyboard, mouse
and gamepad events straight into Unity's Input System, so the game receives real
input while nobody is at the keyboard. It worked in demos and failed in real use,
and the difference was never the input path.

While you are in the chat window, Unity sits fully unfocused. Two separate things
happen there, and both were measured against a live editor with the window in the
background the whole time.

The engine stops. Play mode enters, timeScale reads 1, and the game sits
frozen at frame 2. Every key we sent was correct; no frame ever processed it. The
project's own Run In Background setting was already on and did not help — the
runtime value is separate and starts off.

The devices get switched off. The Input System disables every device when the
application loses focus, the real keyboard and mouse included. The key arrives at
a device nobody is listening to.

Both are handled now, on the input path only — pressing Play by hand does not
quietly change how your editor behaves. Nothing is written to your project: the
settings we take over are handed back when play mode exits.

🩺 describe tells the truth

Ask it why input seems ignored and it used to answer by listing the members it
had resolved — saying yes while the engine was frozen. No focus flag catches
this: during the freeze Unity still reports itself as focused. It now returns a
frame counter. Call it twice; if the number does not move, the game is not
running and the input path is not your problem.

📄 Wording corrections

The project is source-available, not open-source — MIT + Commons Clause
restricts commercial use, so it does not meet the OSI definition. The licence
section always said this correctly; one summary line did not. Our own clarifying
paragraph in LICENSE has also moved out of the Commons Clause text so the
standard condition reads verbatim, and the ~/.unity_architect_ai paths now
explain themselves: they hold your existing encryption key and database, and
renaming them would make already-saved API keys undecryptable.


Installing: on Windows, if you are coming from Unity Architect AI (v2.x),
remove it yourself first — the rename changed the application id, so it is not
replaced automatically. On macOS, if the unsigned dmg is reported as "damaged":
xattr -cr "/Applications/Gamachine.app"

⚠️ Only Apple Silicon (arm64) is published for macOS, and the builds are not
code-signed
: Windows SmartScreen → More info → Run anyway; macOS →
right-click → Open.

Gamachine v3.0.1

Choose a tag to compare

@github-actions github-actions released this 08 Aug 18:07

Gamachine v3.0.1

Three fixes on top of v3.0.0. If you installed v3.0.0, update — the first one
prevented Claude Code from starting at all on most Windows installs.

🍎 macOS (Apple Silicon): Gamachine-3.0.1-arm64.dmg
· 🪟 Windows: Gamachine-Setup-3.0.1.exe

🔧 Claude Code would not start on Windows

v3.0.0 stopped shipping a copy of the Claude Code CLI, so the app looks for the
one you installed. But npm install -g @anthropic-ai/claude-code puts only a
claude.cmd shim on PATH, and the SDK refuses to run .cmd files — a real
precaution, since cmd.exe can execute commands injected through arguments. The
result was a session that never opened, with Claude Code installed:

Refusing to execute batch script '...\claude.CMD'

The shim names its target in plain text, so the app now reads it and uses the real
executable. Nothing to install or configure.

🧠 The chat no longer forgets silently

When history was too long to fit into the context, the oldest messages were
dropped without a word. The model received a conversation that began in the
middle and had no way to know anything was missing — so instead of saying "I don't
have that part", it answered as if those messages never existed. On a real
conversation this was measured at 17 of 48 messages surviving: 71% of the text
gone, silently.

Two changes:

  • The CLI's own session is resumed where possible. It keeps the full
    transcript on disk; the app now remembers the session id and calls it back
    instead of re-sending a truncated summary. History survives closing the app.
  • When a summary is still needed — after switching agents, or if the session is
    gone — the cut is now stated. The model is told how many earlier messages are
    missing and asked to say so rather than guess.

The session id is tied to the project folder. Open a different workspace and it is
ignored, so a resumed session can never show you another project's history.


Installing: on Windows, if you are coming from Unity Architect AI (v2.x),
remove it yourself first — the rename changed the application id, so it is not
replaced automatically. On macOS, if the unsigned dmg is reported as "damaged":
xattr -cr "/Applications/Gamachine.app"

⚠️ Only Apple Silicon (arm64) is published for macOS, and the builds are not
code-signed
: Windows SmartScreen → More info → Run anyway; macOS →
right-click → Open.

Gamachine v3.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 15:21

Gamachine v3.0.0

Unity Architect AI is now Gamachine. A major version because this is not an
upgrade you install over the old one — and because two things about how the app
behaves have changed on purpose.

🍎 macOS (Apple Silicon): Gamachine-3.0.0-arm64.dmg
· 🪟 Windows: Gamachine-Setup-3.0.0.exe

⚠️ Read this before installing

The old version is not removed automatically. The application id changed with
the rename, so Windows treats this as a separate product: uninstall Unity
Architect AI
yourself, or you will have both. For the same reason, an installed
v2.3.1 will not offer you this update — this is the only place it is announced.

Your data is kept. Chat history, API keys and settings live in
~/.unity_architect_ai and that path deliberately did not change: it holds the
key your API keys are encrypted with, and renaming it would have made them
permanently unreadable. It is an invisible folder; the old name there costs you
nothing.

🔌 Bring your own AI — we no longer ship one

Earlier builds silently included a full copy of the Claude Code CLI. Nobody chose
that: the SDK vendors it, and the packaging step swept it in. It also defeated the
point — the bundled copy took priority over the CLI you had installed yourself, so
your own Claude Code was never used.

It is gone. You connect what you already use: an API key, or a CLI agent on your
machine. We do not install a third-party AI tool on your computer without telling
you.

The installer is 253 MB smaller as a result (roughly 45%).

🔒 The chat stays locked until a provider is connected

Picking a model was never the same as having the thing behind it. A cloud provider
needs a key; a CLI agent needs to be installed. Previously the app let you send a
message anyway, and the first reply could be a raw Python traceback.

Now the composer is disabled until the selected provider is actually usable, and it
tells you which of the three things is missing: a key, an installation, or a
sign-in.

🌍 English, properly

The interface followed a hard-coded Turkish default even for users who had never
seen Turkish — and that same value was sent to the model, so a question asked in
English came back in Turkish. The starting language now follows your operating
system.

The dictionary grew from 157 to 373 entries and the entire renderer goes through
it: toasts, tool blocks, approval cards, the terminal panel, the export dialog.

Still Turkish: the operating-system dialogs the desktop shell opens (folder
authorisation, update prompt) and backend error messages. Both need work beyond
translation and are not done yet.

⚖️ Licensing and privacy

  • The installer now actually contains the licences it is required to ship.
    Previously LICENSE and THIRD-PARTY-NOTICES.md were never copied into the
    package, while FFmpeg — which requires its licence text to travel with the binary
    — was shipped.
  • The FFmpeg notice was wrong. It declared GPL everywhere; the Windows build is
    LGPL, and no Windows source link was given at all. Now stated per platform.
  • The bundled .NET was declared as MIT. What ships is the .NET SDK under
    Microsoft's proprietary terms. Corrected.
  • Third-party telemetry is off. The MCP server inherited from the upstream fork
    reported to an external endpoint on startup, enabled by default, with nothing in
    this product telling you so. Disabled at the source.

🐛 Fixes

  • The Codex error path sent raw exception text to the interface without redaction —
    the same text can carry the local MCP key. The Claude path already redacted it;
    the sibling path did not.
  • The chat input's placeholder read "Ask zap a question…", left over from a
    template.
  • Dead screens were removed, which let the content-security policy drop its last
    remote image source.

Installing: on Windows, remove Unity Architect AI first (see above). On
macOS, if the unsigned dmg is reported as "damaged":
xattr -cr "/Applications/Gamachine.app"

⚠️ Only Apple Silicon (arm64) is published for macOS. The Intel dmg gets the
host architecture's backend embedded in it and there is no Intel Mac here to test
it on, so it is deliberately withheld rather than shipped untested.

⚠️ The builds are not code-signed. Windows SmartScreen → More info → Run
anyway
; macOS → right-click → Open.

Gamachine v2.3.1

Choose a tag to compare

@github-actions github-actions released this 07 Aug 12:45

Gamachine v2.3.1

A small but genuinely annoying bug: pasting a photo into the chat sometimes
killed the whole session.

🍎 macOS (Apple Silicon): Gamachine-2.3.1-arm64.dmg
· 🪟 Windows: Gamachine-Setup-2.3.1.exe

🖼 A pasted image no longer kills the chat

The symptom was odd: two photos would drop the session, three would not — so the
problem was not the count, it was the size.

The cause sat at the end of a chain. The image you paste is written to disk and
the model is handed only the file path; when the model opens it with Read, the
result comes back as base64 on a single line. That line had a 1 MB ceiling, and
crossing it did not truncate anything — it took down the entire session. Since
base64 is roughly 4/3 of the raw size, an ordinary 750 KB photo was enough.

The fix has two layers:

  • The line ceiling was raised to the value the product's other CLI path already
    used.
  • The real bound was moved to the source: large images are downscaled before
    they are ever written to disk. That closes the crash and cuts token cost.

Transparent PNGs survive this: the alpha channel is preserved. (The first attempt
turned transparent images into a solid black square — an audit round caught it
before release.)

🎮 The AI can now play the game (manage_input)

Entering play mode and taking a screenshot already worked; what was missing was
the ability to act. manage_input sends keyboard, mouse, gamepad and UI input
to a running game, so the AI can actually try the thing it just built.

Input is pressed onto Unity Input System's virtual devices from inside the
process: no window focus required, so your keyboard is not hijacked while the
AI plays.

⚠️ Measure the limit first: only game code written against the new Input
System sees these events. If your project uses the old Input.GetKey, the input
will not reach it; there, the one path that works is ui_click, which triggers
uGUI buttons. Run manage_input action="describe" to have it report your
project's input backend.

📸 The screenshot tool's name was wrong

The model was being taught an action name that did not exist, so screenshot
requests sometimes went nowhere. It is now bound to the real one.

📖 Documentation

Both READMEs were realigned with 105 commits' worth of reality. The most important
correction was a security claim: the docs said "unityMCP never shows an approval
card", when since v2.3.0 calls that mutate the scene do open one on the Claude
path. It is now described per provider.


Installing: on Windows the installer removes the previous version
automatically. On macOS, if the unsigned dmg is reported as "damaged":
xattr -cr "/Applications/Gamachine.app"

⚠️ Only Apple Silicon (arm64) is published for macOS. The Intel dmg is
deliberately withheld: it gets the host architecture's backend embedded in it, and
there is no Intel Mac here to test it on.

Gamachine v2.3.0

Choose a tag to compare

@BurakErdemci BurakErdemci released this 02 Aug 15:08

Gamachine v2.3.0

This release is about security. 125 commits landed since v2.2.0 and 100 of them
are fixes; the bulk of the work hardens the product's secrets, the approval gate and
file access. Four independent audit rounds were run — one of them entirely with
outside eyes — and every finding that came out of them was produced with runnable
evidence and closed.

⚠️ Everyone on v2.2.0 is advised to update. The leak and bypass classes
listed below were open in v2.2.0.

🍎 macOS (Apple Silicon): Unity-Architect-AI-2.3.0-arm64.dmg
· 🪟 Windows: Unity-Architect-AI-Setup-2.3.0.exe


🔐 Security

Local secret (the shared key between the backend and Unity MCP)

  • The secret now travels in the X-API-Key header, not in the URL. It used to be
    able to end up in the address bar, in log records and in process listings.
  • The secret is written to no CLI configuration file.
  • The token file is locked down with an ACL on Windows and writes are atomic.
    Authentication looks at the opened file descriptor, not at the path — redirection
    to a different file through a symlink/junction is closed.
  • Both the new and the old form of the secret are masked in logs.

Prompt and command line

  • The user prompt is no longer carried in process arguments. Previously any process
    on the machine could read the entire prompt from the process listing.
  • The [CMD] record no longer writes the whole prompt to a persistent file.

Approval gate

  • The gate was placed at the Unity MCP chokepoint: all nine providers go through the
    same gate. Before this, tool calls never saw the gate at all.
  • The gate can't be bypassed through the REST route either.
  • delete_file was brought under the gate.
  • The write approval card now shows what will be written — the card carries the entire
    input being authorized. Previously you were approving something you couldn't see.
  • The card says which project will change; in concurrent step rounds, auto-approval is now
    bound to an "all of them" rule rather than "at least one".
  • A project opened by the user can't disable the gate.
  • The Codex approval arbiter is pinned to user and is verified from the response:
    an approval request can no longer be delegated to a language model.

Desktop application

  • A Content Security Policy (CSP) was added and the Monaco editor is served locally
    instead of from a CDN — the app doesn't connect to an external server in order to run.
  • An origin gate for IPC calls: only the app's own page can call them.
  • The workspace root can only be a path the user picked through a native dialog.
  • The app can't navigate to a remote page, can't open a new window, can't add a <webview>.
    External links go to the operating system's browser.

File access

  • Paths that escape the workspace through symlinks, junctions, hard links and
    NTFS alternate data streams were closed.
  • The check/use race in the read gate was closed: the file the gate approved and the file
    that gets read must be the same, and that is verified by the identity of the opened
    descriptor.
  • Configuration writes can't overwrite a file outside the workspace.

Other

  • The prefix-match bypass in the command approval gate was closed.
  • The environment variable leak class was closed — matching on value, not on name.
  • All downloaded binaries (OmniSharp, .NET SDK, uv, ffmpeg, yt-dlp) were bound to a pinned
    ledger and to digest verification.
  • Configuration files written into the user's project were added to .gitignore.

✨ What's new

  • Claude Opus 5 support.
  • Kimi K3 / Kimi CLI provider.
  • Gemini 3.6 and Gemini 3.5 Lite.
  • The .NET SDK is bundled for OmniSharp (macOS/Linux) — zero setup.
  • Unity MCP: N+1 query improvement, partial matching, batch operation chaining,
    quota / round-trip / no-op behaviors.

🐛 Fixes

  • A file link in chat now actually opens the file. Clicking the green file name made the
    app look like it was "resetting" — in reality the window was navigating to that address and
    emptying the interface.
  • Unexpected data no longer blanks the whole window: an error boundary was added to the app;
    an error now shows a readable panel instead of a white screen.
  • The model list could hide all API models because of a stale closure value.
  • Unity MCP keeps reconnecting after a domain reload in the Editor.
  • C# project (csproj) generation no longer depends on having an external IDE installed.
  • The C# hover hang was fixed.
  • The place where execute_code could be bypassed was fixed.
  • Three bugs that could make the entire product unusable on Windows were fixed.
  • The app's own connection banner was getting caught by its own approval gate.

📄 License

The project is licensed under MIT + Commons Clause; third-party notices were added.


🧪 Quality

  • The Unity MCP server test suite (1522 tests) was wired into the quality gate.
  • The tests were made runnable on Windows; that work surfaced three product bugs.
  • Gates: backend 1077 tests, desktop 393 tests, type checking clean.

⚠️ Known issues

  • There is NO Intel Mac build in this release. It can be built, but since it can't be
    tested by actually running it (it is cross-compiled on an Apple Silicon machine and there is
    no Intel Mac on hand to test with) it was deliberately not published — shipping nothing was
    preferred over shipping an untested binary.
  • The app is unsigned. macOS shows a Gatekeeper warning on first launch; Windows SmartScreen
    may warn as well.
  • Auto-update only notifies — downloading and installing is left to the user (silent
    installation is deliberately off for an unsigned app).

Full list of changes: CHANGELOG.md
· Comparison: v2.2.0...v2.3.0

Gamachine v2.2.0

Choose a tag to compare

@BurakErdemci BurakErdemci released this 16 Jul 13:01

Gamachine v2.2.0

The star of this release: VSCode-quality C# code intelligence. The hand-written linter is history — an OmniSharp-Roslyn sidecar took its place. On top of that, execute_code was fixed for good, the effort selection is now real on every model, the file tree shows all Unity files, and GLM 5.2 joined the free pool.

🍎 macOS (Apple Silicon) arrived with this release — you can download Unity-Architect-AI-2.2.0-arm64.dmg below. Details at the bottom.

What's new in v2.2.0

🧠 OmniSharp C# code intelligence (NEW)

  • Live diagnostics: real compiler errors within 1-2 seconds as you type — fed by the csproj files Unity generates; the old linter's cross-file false positives are completely gone.
  • IntelliSense: type transform. and get the real Unity API completion list; documentation on hover over a symbol; go-to-definition with Ctrl+click.
  • Starts automatically when the workspace opens (a "Preparing C# analysis…" badge) and works even while Unity is closed. Requires no installation — OmniSharp and the .NET runtime are bundled (no extra installation at all, macOS included).
  • If there is no .sln in the workspace, sync_csproj is triggered from Unity automatically.

⚙️ execute_code — a permanent fix for "file name too long"

  • The AI's tool for running code inside Unity now uses Unity's own compiler (AssemblyBuilder): the language version is always the same as your project's, there is full access to the game's own types (Assembly-CSharp), and reference problems are structurally impossible.
  • Compile errors come back in a clean format with the correct line number; runtime errors come back with a stack trace.

🎚️ Effort/Reasoning — now REAL on every model

  • The thinking level you pick is now genuinely passed to all providers (previously it was ignored by most of them): Codex model_reasoning_effort, Gemini thinking_level, Copilot --effort, the NVIDIA/DeepSeek/Groq/Z.ai reasoning parameters…
  • New selector: the segmented bar only shows the levels the active model actually supports; what each level does is explained in the panel.
  • Auto by default: if you don't touch it, the model runs with its own sensible default.

📁 File tree — all Unity files

  • Prefabs, animations, scenes, materials, FBX, audio… they are all in the tree now (with type-based colored icons). Unity's YAML formats can be opened and edited in the editor.
  • Guards: an informative warning for binary files and for large files over 8MB.

🤖 Model pool

  • GLM 5.2 (the leader among open-weight models, 1M context) was added to the NVIDIA free pool and made the default; Qwen3 Coder 480B joined as well.

🛠️ Stability & fixes

  • Only the app's toggle starts the MCP server now — Unity opening a server in its own terminal and stealing the app's session was prevented.
  • Cursor/click offset in the editor was fixed (a font-loading race).
  • Overflow of long file paths in the top bar was fixed.
  • Antigravity (agy): progress streaming on long tasks, resuming where it left off, and pinning the response language to the user's language.

📜 What happened since v2.1.0? (a summary of 2.1.1 → 2.1.3)

If you're jumping to this release from 2.1.0, here is what landed in the versions in between:

v2.1.1 — New providers & one-click installation

  • 3 new CLIs: 🖱️ Cursor, 🐙 GitHub Copilot, 💻 OpenCode — all three with full access to the Unity MCP tools and session-resume support. OpenCode's opencode/* models are free and need no account.
  • NVIDIA NIM free pool: with a single free API key — Nemotron 3 Ultra 550B, Qwen 3.5 397B, Mistral Large 3, MiniMax M3, DeepSeek V4 Pro, Kimi K2.6 (~40 requests/min, no credit card).
  • Redesigned model picker: search, groups with brand logos, "not installed / free / no key" badges.
  • Plan awareness: models your subscription doesn't support appear locked; after a plan upgrade they unlock via ↻ Refresh.
  • One-click CLI installation/sign-in: "Install" and "Sign In" buttons, no terminal knowledge needed.
  • VSCode-style git badges in the file tree (M/U/A/D), an in-app image lightbox, understandable quota notifications.
  • Critical fix: the API key getting corrupted (401) when switching between subscription and API mode was fixed.

v2.1.2 — Animation pipeline fixes

  • manage_fbx full_setup no longer overwrites clip names and loop settings.
  • Smart naming recognizes the X_Anim_Walk / Mixamo @ conventions — no more setting up the controller by hand.
  • animator_get_info also finds the Animator on child objects (the "No Animator component" error is gone).
  • Fixed the misdetection of Cursor's session state (the "Sign In" button now shows correctly).

v2.1.3 — MCP connection stability & a design refresh

  • The WebSocket "eviction storm" was solved at the root: Unity's AssetImportWorker processes stealing the MCP bridge was prevented — from ~16 drops per minute to 0.
  • Codex model locks no longer disappear after "Refresh"; a successful response unlocks automatically.
  • Design: a roomy, Claude.ai-style chat reading experience, a layered surface system, a brand light whose color follows the active model.
  • Unity 6.4 CS0618 warning noise was silenced.

🍎 macOS (Apple Silicon) notes

  • Installation: download Unity-Architect-AI-2.2.0-arm64.dmg → drag the app to Applications.
  • The "can't be opened because it is damaged" warning: because the package is unsigned, macOS stamps a quarantine flag onto the copy that came from the internet (the app is NOT damaged). The fix — a single line in Terminal:
    xattr -cr "/Applications/Unity Architect AI.app"
    After that it opens with a normal double-click. (On older macOS versions, right click → Open may be enough.)
  • C# IntelliSense (OmniSharp): the .NET runtime (10 LTS) is bundled — no extra installation is needed at all, it works even if you have no .NET on your Mac.
  • Video-to-chat: ffmpeg + yt-dlp are bundled, no extra installation needed (ffmpeg runs through Rosetta 2 — on Apple Silicon Macs Rosetta is usually already installed).
  • There is no Intel (x64) Mac package in this release.

🔄 Updates & security

The app checks for a new version at startup and tells you — you approve the installation; there is no silent/automatic installation. On Windows, the installer removes the old version automatically.

Gamachine v2.1.3

Choose a tag to compare

@BurakErdemci BurakErdemci released this 14 Jul 16:28

Gamachine v2.1.3

A chronic MCP WebSocket connection problem was solved at the root, the model lock system was fixed, and the chat and overall app design were reworked.

🔌 The MCP WebSocket "eviction storm" — solved at the root

  • Root cause found: Unity's background AssetImportWorker processes were also starting the MCP bridge and registering with the same project hash, causing constant connection contention with the main Editor (an "eviction" every 15-30 seconds). Worker processes no longer start the bridge at all.
  • Result: where there used to be ~16 connection drops per minute, 0 drops were measured in a 2-minute live test.
  • Connection drop logs were also cleaned out of the console — only a single red error appears on a permanent connection loss; temporary reconnects are now silent.
  • Fixes stemming from "fake null" around the Animator child search and setup_clips setting preservation are in this release as well.

🔒 Model lock system fix

  • Model locks (due to plan limits) disappearing after "Refresh" in Codex was fixed — the lock information is now preserved and unlocks automatically once a model responds successfully.
  • The model picker now refreshes lock state on every open (previously it could stay stale until the app was restarted).

🎨 Design refresh

  • Chat stream: a roomy, Claude.ai-style reading experience — wide paragraph spacing, thin separator lines for headings, tables in their own card with horizontal scrolling, a "thinking" indicator with a shimmer animation and an elapsed-time counter.
  • General interface: a layered surface system (less flat black), a brand light whose color follows the active model (empty state and the Copilot panel), refined sidebar and top bar.

🐛 Other

  • The CS0618 (obsolete API) yellow compiler warnings caused by version-compatibility shims on Unity 6.4 were silenced — behavior didn't change, only the noise is gone.

🔄 Updates & security

The app checks for a new version at startup and tells you — you approve the installation; there is no silent/automatic installation. On Windows, the installer removes the old version automatically.

A macOS (Apple Silicon) package will be added separately.