Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
8ae595d
Update github-repo-stats.yml
dsarno Oct 10, 2025
83b16ea
Merge branch 'CoplayDev:main' into main
dsarno Oct 18, 2025
67be840
Merge branch 'CoplayDev:main' into main
dsarno Oct 21, 2025
f7ce27d
Merge branch 'CoplayDev:main' into main
dsarno Oct 24, 2025
83b9e47
Merge branch 'CoplayDev:main' into main
dsarno Oct 24, 2025
9dff8f1
Merge branch 'CoplayDev:main' into main
dsarno Oct 24, 2025
00fad91
Merge branch 'main' of https://github.com/CoplayDev/unity-mcp into main
dsarno Oct 27, 2025
74d35d3
Server: refine shutdown logic per bot feedback\n- Parameterize _force…
dsarno Oct 31, 2025
1bb280e
Revert "Server: refine shutdown logic per bot feedback\n- Parameteriz…
dsarno Oct 31, 2025
e6cc955
Merge branch 'CoplayDev:main' into main
dsarno Nov 1, 2025
532b30d
Merge branch 'CoplayDev:main' into main
dsarno Nov 5, 2025
5939d23
Merge branch 'CoplayDev:main' into main
dsarno Nov 6, 2025
9549dd4
Merge branch 'CoplayDev:main' into main
dsarno Nov 11, 2025
6ed7a35
Merge branch 'main' of https://github.com/CoplayDev/unity-mcp
dsarno Nov 25, 2025
aeceec3
Merge branch 'main' of github.com:dsarno/unity-mcp
dsarno Nov 25, 2025
7c6a162
Merge branch 'CoplayDev:main' into main
dsarno Nov 26, 2025
4d7f5e1
Merge branch 'main' of https://github.com/dsarno/unity-mcp into main
dsarno Nov 29, 2025
3f5bef1
Merge branch 'main' of https://github.com/CoplayDev/unity-mcp
dsarno Dec 2, 2025
5d23dd9
Merge branch 'main' of github.com:dsarno/unity-mcp
dsarno Dec 2, 2025
8003f6e
Merge branch 'CoplayDev:main' into main
dsarno Dec 3, 2025
08ce567
Merge branch 'main' of https://github.com/CoplayDev/unity-mcp into main
dsarno Dec 3, 2025
8cf6d22
Merge branch 'main' of https://github.com/dsarno/unity-mcp into main
dsarno Dec 3, 2025
efd34d9
Merge branch 'CoplayDev:main' into main
dsarno Dec 4, 2025
5e59fca
Merge branch 'CoplayDev:main' into main
dsarno Dec 4, 2025
5a0bdeb
Merge branch 'CoplayDev:main' into main
dsarno Dec 6, 2025
8dd333d
Merge branch 'main' of github.com:dsarno/unity-mcp
dsarno Dec 8, 2025
9207a0d
Add fork-only Unity tests workflow and guard upstream run
dsarno Dec 8, 2025
4f6ea55
Move fork Unity tests workflow to root
dsarno Dec 8, 2025
a5467a3
Fix MCP server install step in NL suite workflow
dsarno Dec 8, 2025
3f7ee97
Harden NL suite prompts for deterministic anchors
dsarno Dec 9, 2025
8300d3b
update claude haiku version for NL/T tests
dsarno Dec 9, 2025
ab8e810
Fix CI: share unity-mcp status dir
dsarno Dec 9, 2025
a22868b
update yaml
dsarno Dec 9, 2025
0ec6446
Add Unity bridge debug step in CI
dsarno Dec 9, 2025
3c2aa71
Fail fast when Unity MCP status file missing
dsarno Dec 9, 2025
c72198c
Allow Unity local share writable for MCP status
dsarno Dec 9, 2025
a2ccc49
Mount Unity cache rw and dump Editor log for MCP debug
dsarno Dec 9, 2025
a6be33a
Allow Unity config dir writable for MCP heartbeat/logs
dsarno Dec 9, 2025
98b239a
Write Unity logs to file and list config dir in debug
dsarno Dec 9, 2025
74a7c33
Use available Anthropic models for T pass
dsarno Dec 9, 2025
d4835c5
Use latest claude sonnet/haiku models in workflow
dsarno Dec 9, 2025
9574eb6
Fix YAML indentation for MCP preflight step
dsarno Dec 9, 2025
dfafc7e
Point MCP server to src/server.py and fix preflight
dsarno Dec 9, 2025
d144d9c
another try
dsarno Dec 9, 2025
debfd72
Add MCP preflight workflow and update NL suite
dsarno Dec 9, 2025
14dcec9
Fixes to improve CI testing
dsarno Dec 10, 2025
cb191f8
Cleanup
dsarno Dec 10, 2025
8406b6a
fixes
dsarno Dec 10, 2025
482abc5
diag
dsarno Dec 10, 2025
b260e51
Merge branch 'unity-tests-fork-backup'
dsarno Dec 10, 2025
7fbc0d2
fix yaml
dsarno Dec 10, 2025
4bcb447
fix status dir
dsarno Dec 10, 2025
efdfd80
Fix YAML / printing to stdout --> stderr
dsarno Dec 10, 2025
fc2013b
find in file fixes.
dsarno Dec 10, 2025
0e20067
fixes to find_in_file and CI report format error
dsarno Dec 10, 2025
9ec42fb
Only run the stats on the CoPlay main repo, not forks.
dsarno Dec 10, 2025
03f5cc7
Coderabbit fixes.
dsarno Dec 10, 2025
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
18 changes: 10 additions & 8 deletions .claude/prompts/nl-unity-suite-nl.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,25 +103,27 @@ STRICT OP GUARDRAILS
**Goal**: Demonstrate method replacement operations
**Actions**:
- Replace `HasTarget()` method body: `public bool HasTarget() { return currentTarget != null; }`
- Insert `PrintSeries()` method after `GetCurrentTarget()`: `public void PrintSeries() { Debug.Log("1,2,3"); }`
- Verify both methods exist and are properly formatted
- Validate.
- Insert `PrintSeries()` method after a unique anchor method. Prefer `GetCurrentTarget()` if unique; otherwise use another unique method such as `ApplyBlend`. Insert: `public void PrintSeries() { Debug.Log("1,2,3"); }`
- Validate that both methods exist and are properly formatted.
- Delete `PrintSeries()` method (cleanup for next test)
- **Expected final state**: `HasTarget()` modified, file structure intact, no temporary methods

### NL-2. Anchor Comment Insertion (Additive State B)
**Goal**: Demonstrate anchor-based insertions above methods
**Actions**:
- Use `find_in_file` to locate current position of `Update()` method
- Use `find_in_file` with a tolerant anchor to locate the `Update()` method, e.g. `(?m)^\\s*(?:public|private|protected|internal)?\\s*void\\s+Update\\s*\\(\\s*\\)`
- Expect exactly one match; if multiple, fail clearly rather than guessing.
- Insert `// Build marker OK` comment line above `Update()` method
- Verify comment exists and `Update()` still functions
- **Expected final state**: State A + build marker comment above `Update()`

### NL-3. End-of-Class Content (Additive State C)
**Goal**: Demonstrate end-of-class insertions with smart brace matching
**Goal**: Demonstrate end-of-class insertions without ambiguous anchors
**Actions**:
- Match the final class-closing brace by scanning from EOF (e.g., last `^\s*}\s*$`)
or compute via `find_in_file` + ranges; insert immediately before it.
- Insert three comment lines before final class brace:
- Use `find_in_file` to locate brace-only lines (e.g., `(?m)^\\s*}\\s*$`). Select the **last** such line (preferably indentation 0 if multiples).
- Compute an exact insertion point immediately before that last brace using `apply_text_edits` (do not use `anchor_insert` for this step).
- Insert three comment lines before the final class brace:
```
// Tail test A
// Tail test B
Expand Down Expand Up @@ -159,7 +161,7 @@ find_in_file(pattern: "public bool HasTarget\\(\\)")

**Anchor-based insertions:**
```json
{"op": "anchor_insert", "anchor": "private void Update\\(\\)", "position": "before", "text": "// comment"}
{"op": "anchor_insert", "anchor": "(?m)^\\s*(?:public|private|protected|internal)?\\s*void\\s+Update\\s*\\(\\s*\\)", "position": "before", "text": "// comment"}
```

---
Expand Down
55 changes: 55 additions & 0 deletions .github/workflows/claude-mcp-preflight.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Claude MCP Preflight (no Unity)

on: [workflow_dispatch]

permissions:
contents: read

jobs:
mcp-preflight:
runs-on: ubuntu-latest
timeout-minutes: 15

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: astral-sh/setup-uv@v4
with:
python-version: "3.11"

- name: Install MCP server deps
run: |
set -eux
uv venv
echo "VIRTUAL_ENV=$GITHUB_WORKSPACE/.venv" >> "$GITHUB_ENV"
echo "$GITHUB_WORKSPACE/.venv/bin" >> "$GITHUB_PATH"
if [ -f Server/pyproject.toml ]; then
uv pip install -e Server
elif [ -f Server/requirements.txt ]; then
uv pip install -r Server/requirements.txt
else
echo "No MCP Python deps found" >&2
exit 1
fi
- name: Preflight MCP server (stdio)
env:
PYTHONUNBUFFERED: "1"
MCP_LOG_LEVEL: debug
UNITY_PROJECT_ROOT: ${{ github.workspace }}/TestProjects/UnityMCPTests
UNITY_MCP_STATUS_DIR: ${{ github.workspace }}/.unity-mcp-dummy
UNITY_MCP_HOST: 127.0.0.1
run: |
set -euxo pipefail
mkdir -p "$UNITY_MCP_STATUS_DIR"
# Create a dummy status file with an unreachable port; help should not require it
cat > "$UNITY_MCP_STATUS_DIR/unity-mcp-status-dummy.json" <<JSON
{ "unity_port": 0, "reason": "dummy", "reloading": false, "project_path": "$UNITY_PROJECT_ROOT/Assets" }
JSON
uv run --active --directory Server mcp-for-unity --transport stdio --help \
> /tmp/mcp-preflight.log 2>&1 || { cat /tmp/mcp-preflight.log; exit 1; }
cat /tmp/mcp-preflight.log
Loading