Skip to content

v2.0.7

Choose a tag to compare

@github-actions github-actions released this 23 Jul 16:11
· 23 commits to main since this release

Fixed

  • 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).