chore(unity): 固定Unity CLI Loop本地包并移除UnitySkills依赖
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# execute-dynamic-code design notes
|
||||
|
||||
This directory owns the user-facing `execute-dynamic-code` tool contract.
|
||||
The public contract must stay stable even when the internal compiler strategy changes.
|
||||
|
||||
## Fast path intent
|
||||
|
||||
- The preferred compilation path is Unity-bundled Roslyn.
|
||||
- `SharedRoslynCompilerWorkerHost` keeps a warm compiler process so structural cache misses stay fast.
|
||||
- The shared worker is an optimization only. It must not own response shaping, security validation, or tool-specific policy.
|
||||
|
||||
## Prewarm intent
|
||||
|
||||
- Auto prewarm exists to hide first-use compiler startup cost after server startup or recovery.
|
||||
- Prewarm must go through the same runtime facade used by normal requests.
|
||||
- Prewarm must be single-flight. It should never create a parallel execution lane or bypass runtime idleness checks.
|
||||
- Prewarm is allowed to improve latency only. It must not change observable tool behavior.
|
||||
|
||||
## Fallback intent
|
||||
|
||||
- Preferred order is: shared Roslyn worker -> one-shot Roslyn -> AssemblyBuilder fallback.
|
||||
- Fallback changes performance, not semantics.
|
||||
- Any fallback from the ideal fast path is a maintainer-visible error condition and must be logged through `DynamicCompilationHealthMonitor`.
|
||||
|
||||
## Invariants
|
||||
|
||||
- Security validation always runs in Unity after compilation and before execution.
|
||||
- In restricted mode, metadata validation and IL validation must both complete before `Assembly.Load`.
|
||||
- Tool entry points and use cases depend on runtime-facing facades, not compiler backend details.
|
||||
- Worker state is disposable. Domain reload or worker protocol failure must be handled by rebuilding state, not by preserving it.
|
||||
- The compile backend may change, but `ExecuteDynamicCodeResponse` shape and user-facing behavior must remain stable.
|
||||
Reference in New Issue
Block a user