Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,33 @@ All notable repository and VS Code/Cursor extension changes are documented in th

The Unity UPM package has its own changelog at `Packages/com.rankupgames.unity-cursor-toolkit/CHANGELOG.md`.

## Unreleased

### Documentation

- Replaced retired dynamic Marketplace badges with a stable install badge that
links to the existing Marketplace item.
- Added one documentation index, a canonical Unity 7 readiness plan, and
evidence-gated WS1 through WS8 implementation plans.
- Clarified the difference between declared, validated, shipped, planned, and
historical compatibility statements across all public README surfaces.

## [0.6.7081326] - 2026-08-13

Release CI assigned `0.6.7081326` to the published distribution artifacts. The
source `package.json` keeps its base development version between releases.

### Added

- The Unity toolbar copy action now captures the main-camera application view,
overwrites one stable PNG in `Application.temporaryCachePath`, and appends
the absolute path to the copied console and profiler context.

### Security

- Updated the locked `js-yaml` transitive dependency to `4.3.1` to resolve the
remaining high-severity development dependency advisory.

## [0.6.1052826] - 2026-05-28

### Added
Expand Down
16 changes: 15 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,23 @@ The first `cd unity-cursor-toolkit` enters the repository root. The second enter

Changes to `unity-assets/` C# files must:

- Compile in Unity 2019+
- Preserve the package's declared Unity 2019.4 baseline
- Wrap editor-only code in `#if UNITY_EDITOR` / `#endif`

The declared baseline is not a tested compatibility claim. Record the exact
Unity Editor version and platform for each proof run. For CoreCLR or Unity 7
work, update `docs/UNITY_7_READINESS.md`, the affected file under `docs/tasks/`,
and public compatibility wording together.

## Documentation Status

- Use the status terms in `docs/README.md`.
- Keep both package documentation mirrors byte-identical.
- Do not advertise Unity 7 or CoreCLR support until the readiness gates have
exact-version evidence.
- Keep research and experiment results dated. Recheck external product facts
before using them for implementation or marketing.

## Code Style

- TypeScript strict mode
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added the `editor_validation` MCP tool and menu command for project-file regeneration plus script compile requests.
- Added the audited Unity-Unterm fork as a toolkit-internal terminal, Claude Code, code editor, completion, and debugger feature for Unity 6000.3 on macOS and Windows.
- Added Unity-Unterm launch aliases under `Tools > Unity Cursor Toolkit > Unterm`.
- Added a native toolbar copy action that captures the current main-camera
application view, overwrites one stable temporary PNG on every click, and
appends its absolute path to the copied console and profiler context.

### Documentation

- Added the canonical Unity 7 readiness plan and evidence-gated WS1 through
WS8 workstreams.
- Clarified that Unity 2019.4 and Unity 6000.3 are declared baselines, while
CoreCLR transition and Unity 7 support need exact-version proof.

### Security

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Editor tools for Cursor/VS Code and MCP-capable AI agents integrating with Unity

- **Hot Reload**: TCP server that triggers asset refresh when code changes are detected
- **Console Forwarding**: Streams Unity console output to Cursor/VS Code
- **Copy Snapshot**: Copies profiler/console context and overwrites one stable temporary main-camera screenshot on each click
- **MCP Bridge**: Model Context Protocol tool dispatch for AI-assisted Unity editing
- **Editor Validation**: Regenerates Unity project files and requests script compilation from Cursor/VS Code
- **Runtime Game Commands**: Project-owned coroutine workflows callable through MCP without UI automation
Expand Down Expand Up @@ -50,9 +51,27 @@ Add to your `Packages/manifest.json`:
## Requirements

- Unity 2019.4 or later for the core toolkit
- Unity 6000.3 or later on macOS or Windows for the bundled Unity-Unterm features
- Declared Unity 6000.3 or later requirement on macOS or Windows for the
bundled Unity-Unterm features; the local sample proof is Unity 6000.3.9f1 on
macOS, and Windows proof is pending
- Cursor or VS Code with the Unity Cursor Toolkit extension

## Unity Version Support and Unity 7 Readiness

- Core package metadata declares Unity 2019.4 or later.
- Unity-Unterm declares Unity 6000.3 or later on macOS or Windows. The local
sample proof is Unity 6000.3.9f1 on macOS; Windows proof is pending.
- Mono debugging and IL-patch hot reload are legacy-runtime paths. They must be
capability-gated before a CoreCLR-only Editor is claimed.
- Unity 7 is a planned, evidence-gated target. The CoreCLR audit, migration
assistant, replacement debugger, compatibility matrix, and first-party
CLI/Pipeline composition are not yet complete.

The canonical status and acceptance gates are in the
[Unity 7 readiness plan](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/UNITY_7_READINESS.md).
Detailed work is in the
[WS1–WS8 task index](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/tasks/README.md).

Do not install the standalone `dev.tnayuki.unterm` package beside this toolkit. Both packages contain the same editor types and native plugin identity, so that combination is unsupported.

Open the bundled tools from **Tools > Unity Cursor Toolkit > Unterm**, then choose **New Terminal**, **Claude Code**, **Code Editor**, **Debugger**, or **Settings**. Unity-Unterm MCP access remains disabled until it is explicitly enabled for the current project in Preferences.
Expand Down Expand Up @@ -102,10 +121,14 @@ Commands run on Unity's main thread as coroutines. They should call existing gam

See the repository docs:

- `docs/AI_AGENTS.md`
- `docs/GAME_COMMANDS.md`
- `docs/MCP_CLIENTS.md`
- `docs/FEATURE_ROADMAP.md`
- [AI agent guide](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/AI_AGENTS.md)
- [Runtime game commands](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/GAME_COMMANDS.md)
- [MCP client setup](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/MCP_CLIENTS.md)
- [Feature roadmap](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/FEATURE_ROADMAP.md)
- [Unity 7 readiness](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/UNITY_7_READINESS.md)
- [WS1–WS8 task index](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/tasks/README.md)
- [Package changelog](../CHANGELOG.md)
- [Package license](../LICENSE.md)

## Editor Validation

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/*
* Author: Miguel A. Lopez
* Company: Rank Up Games LLC
* Project: Unity Cursor Toolkit
* Description: Captures the current application camera view for editor diagnostics.
*/

#if UNITY_EDITOR
using System;
using System.IO;

using UnityEngine;

namespace UnityCursorToolkit
{
/// <summary>
/// Captures the current application view from the main camera to one stable temp file.
/// </summary>
internal static class ApplicationScreenshotCapture
{
private const string ScreenshotFileName = "unity-cursor-toolkit-application.png";

internal static string ScreenshotPath => Path.Combine(Application.temporaryCachePath, ScreenshotFileName);

internal static bool TryCapture(out string path, out string error)
{
path = ScreenshotPath;
error = null;

Camera camera = Camera.main;
if (camera == null)
{
error = "No main camera found";
return false;
}

int width = Math.Max(1, Screen.width);
int height = Math.Max(1, Screen.height);
RenderTexture previousTarget = camera.targetTexture;
RenderTexture previousActive = RenderTexture.active;
RenderTexture renderTexture = null;
Texture2D texture = null;

try
{
renderTexture = RenderTexture.GetTemporary(width, height, 24);
camera.targetTexture = renderTexture;
camera.Render();

RenderTexture.active = renderTexture;
texture = new Texture2D(width, height, TextureFormat.RGB24, false);
texture.ReadPixels(new Rect(0, 0, width, height), 0, 0);
texture.Apply();
File.WriteAllBytes(path, texture.EncodeToPNG());
return true;
}
catch (Exception exception)
{
error = exception.Message;
return false;
}
finally
{
camera.targetTexture = previousTarget;
RenderTexture.active = previousActive;
if (texture != null)
{
UnityEngine.Object.DestroyImmediate(texture);
}
if (renderTexture != null)
{
RenderTexture.ReleaseTemporary(renderTexture);
}
}
}
}
}

#endif // UNITY_EDITOR

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* Author: Miguel A. Lopez
* Company: Rank Up Games LLC
* Project: Unity Cursor Toolkit
* Description: Editor tool to copy all Unity console log entries to the clipboard.
* Description: Editor tool to copy Unity console/profiler context and a temporary application screenshot path.
* Adds a button to the main toolbar and a menu item under Tools.
* Created: 2026-04-13
* Last Modified: 2026-04-19
Expand Down Expand Up @@ -41,7 +41,7 @@ static MainToolbarButton CreateMainToolbarCopyLogsButton()
{
Texture2D _icon = EditorGUIUtility.IconContent("Clipboard").image as Texture2D;
return new MainToolbarButton(
new MainToolbarContent(_icon, "Copy all console logs to clipboard"),
new MainToolbarContent(_icon, "Copy profiler session, console transcript, and application screenshot path"),
() => CopyConsoleLogs());
}
#endif
Expand All @@ -55,8 +55,19 @@ static MainToolbarButton CreateMainToolbarCopyLogsButton()
internal static void CopyConsoleLogs()
{
var _entries = GetConsoleLogEntries();
string clipboardContent = ProfilerSessionRecorder.BuildClipboardSnapshot(_entries, ProfilerSnapshotSettings.Current.IncludeRawFrameArrays);
string screenshotPath;
string screenshotError;
if (ApplicationScreenshotCapture.TryCapture(out screenshotPath, out screenshotError))
{
clipboardContent += "\n\nApplication screenshot: " + screenshotPath;
}
else
{
Debug.LogWarning("(ConsoleLogCopyTool - CopyConsoleLogs) Application screenshot was not captured: " + screenshotError);
}

GUIUtility.systemCopyBuffer = ProfilerSessionRecorder.BuildClipboardSnapshot(_entries, ProfilerSnapshotSettings.Current.IncludeRawFrameArrays);
GUIUtility.systemCopyBuffer = clipboardContent;
if (string.IsNullOrEmpty(_entries))
{
Debug.Log("(ConsoleLogCopyTool - CopyConsoleLogs) Console is empty; copied current profiler session snapshot to clipboard");
Expand Down
10 changes: 10 additions & 0 deletions Packages/com.rankupgames.unity-cursor-toolkit/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added the `editor_validation` MCP tool and menu command for project-file regeneration plus script compile requests.
- Added the audited Unity-Unterm fork as a toolkit-internal terminal, Claude Code, code editor, completion, and debugger feature for Unity 6000.3 on macOS and Windows.
- Added Unity-Unterm launch aliases under `Tools > Unity Cursor Toolkit > Unterm`.
- Added a native toolbar copy action that captures the current main-camera
application view, overwrites one stable temporary PNG on every click, and
appends its absolute path to the copied console and profiler context.

### Documentation

- Added the canonical Unity 7 readiness plan and evidence-gated WS1 through
WS8 workstreams.
- Clarified that Unity 2019.4 and Unity 6000.3 are declared baselines, while
CoreCLR transition and Unity 7 support need exact-version proof.

### Security

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Editor tools for Cursor/VS Code and MCP-capable AI agents integrating with Unity

- **Hot Reload**: TCP server that triggers asset refresh when code changes are detected
- **Console Forwarding**: Streams Unity console output to Cursor/VS Code
- **Copy Snapshot**: Copies profiler/console context and overwrites one stable temporary main-camera screenshot on each click
- **MCP Bridge**: Model Context Protocol tool dispatch for AI-assisted Unity editing
- **Editor Validation**: Regenerates Unity project files and requests script compilation from Cursor/VS Code
- **Runtime Game Commands**: Project-owned coroutine workflows callable through MCP without UI automation
Expand Down Expand Up @@ -50,9 +51,27 @@ Add to your `Packages/manifest.json`:
## Requirements

- Unity 2019.4 or later for the core toolkit
- Unity 6000.3 or later on macOS or Windows for the bundled Unity-Unterm features
- Declared Unity 6000.3 or later requirement on macOS or Windows for the
bundled Unity-Unterm features; the local sample proof is Unity 6000.3.9f1 on
macOS, and Windows proof is pending
- Cursor or VS Code with the Unity Cursor Toolkit extension

## Unity Version Support and Unity 7 Readiness

- Core package metadata declares Unity 2019.4 or later.
- Unity-Unterm declares Unity 6000.3 or later on macOS or Windows. The local
sample proof is Unity 6000.3.9f1 on macOS; Windows proof is pending.
- Mono debugging and IL-patch hot reload are legacy-runtime paths. They must be
capability-gated before a CoreCLR-only Editor is claimed.
- Unity 7 is a planned, evidence-gated target. The CoreCLR audit, migration
assistant, replacement debugger, compatibility matrix, and first-party
CLI/Pipeline composition are not yet complete.

The canonical status and acceptance gates are in the
[Unity 7 readiness plan](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/UNITY_7_READINESS.md).
Detailed work is in the
[WS1–WS8 task index](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/tasks/README.md).

Do not install the standalone `dev.tnayuki.unterm` package beside this toolkit. Both packages contain the same editor types and native plugin identity, so that combination is unsupported.

Open the bundled tools from **Tools > Unity Cursor Toolkit > Unterm**, then choose **New Terminal**, **Claude Code**, **Code Editor**, **Debugger**, or **Settings**. Unity-Unterm MCP access remains disabled until it is explicitly enabled for the current project in Preferences.
Expand Down Expand Up @@ -102,10 +121,14 @@ Commands run on Unity's main thread as coroutines. They should call existing gam

See the repository docs:

- `docs/AI_AGENTS.md`
- `docs/GAME_COMMANDS.md`
- `docs/MCP_CLIENTS.md`
- `docs/FEATURE_ROADMAP.md`
- [AI agent guide](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/AI_AGENTS.md)
- [Runtime game commands](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/GAME_COMMANDS.md)
- [MCP client setup](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/MCP_CLIENTS.md)
- [Feature roadmap](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/FEATURE_ROADMAP.md)
- [Unity 7 readiness](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/UNITY_7_READINESS.md)
- [WS1–WS8 task index](https://github.com/rankupgames/unity-cursor-toolkit/blob/main/docs/tasks/README.md)
- [Package changelog](../CHANGELOG.md)
- [Package license](../LICENSE.md)

## Editor Validation

Expand Down
Loading