You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cross-call REPL context is now available on demand — --session <id> is
forwarded through cs.py and core_bridge.py to the C# Console request UUID, so
dependent cs exec calls can intentionally share variables, usings, types, and
helpers. Omitting the option keeps the previous fresh-session default; unrelated
agents/tasks use different ids, and domain reload still clears all session state.
The skill now tells agents to opt in only for genuinely dependent calls instead of
claiming state is either always shared or never shareable.
cs status text mode now exits like the JSON branch — 0 only when the live
service is healthy; no project / package missing / service unreachable all exit 1
(previously the text branch returned 0 for everything but a missing project),
matching the new "text mode: exit code carries success" convention. When the
service is down, text mode now also prints the installed package version read
from disk (version: X.Y.Z (package on disk)) instead of omitting the version
line entirely.
Changed
--json is no longer blanket-required (docs only, CLI unchanged) — the skill now
asks for --json only on the four commands whose payload is emitted solely as
structured JSON (command, list-commands, batch, complete). All other
subcommands print an equivalent, cheaper text form and run without it; exec adds --json only when the structured envelope is needed. (cs setup never had a JSON
branch — its documented --json was silently ignored.)
C# code goes through --file, never JSON-wrapped — SKILL.md and references/exec-code.md now make a raw .cs file the only documented way to pass
code to cs exec; the --input '{"code": …}' form (every quote/backslash/newline
JSON-escaped) is demoted to a stdin-piping edge case. Scratch .cs / req.json
files now have a mandatory location: the absolute path <project-root>/Temp/CSharpConsole/AgentScratch/ — inside Unity's own Temp/
(never imported, auto-cleaned on editor close, write-sandbox-friendly for
workspace-bound agents, and colocated with the service's existing Temp/CSharpConsole/ state). Semantic file names, overwritten per task; one-shot
suffix only under known same-project concurrency. Never under Assets/ (a typical
REPL snippet fails project compilation there — blocking refresh workflows and,
after an editor restart, potentially preventing the service from starting), and
never delete Temp/CSharpConsole/ itself. Decided in an adversarial CC↔Codex
review (local audit transcript: cc-codex-discussion-history/20260722-213810-scratch-file-conventions.md, kept
untracked by repo policy), which replaced the earlier <user-temp>/csharpconsole/<session>/ draft: a user-temp root is not guaranteed
writable under workspace-bound agent sandboxes, and the session token was pure
bookkeeping.
First-time setup asks which source shape (references/setup.md) — before writing
the manifest the agent now offers an explicit choice: pinned git URL (default,
team-friendly) vs. cloning the package to a user-chosen local path and installing via --source file:<dir> (agent performs the clone; caveat documented that absolute file: paths in the committed manifest are machine-specific).