util: Prevent panic when parsing a malformed shell variable (#63446)

# Objective

`to_cmd_variable` and `to_powershell_variable` removed the last byte of
a
`${...}` argument assuming it was the closing brace, without checking
one was
there

```rust
// If the input starts with "${", remove the trailing "}"
format!("$env:{}", &var_str[..var_str.len() - 1])
```

# Solution

Use strip_suffix('}') and pass the input through when it isn't a
variable reference

## Testing

added tests to cover this 


To reproduce on Windows, add a context server with a malformed argument
to settings.json:

``` 

"context_servers": {
  "crash-repro": {
    "command": "does-not-matter",
    "args": ["${"]
  }
}
} 
````
Opening the agent panel and zed will crash


Release Notes:

- Fixed a panic when converting a malformed `${` shell variable
reference on Windows

---------

Co-authored-by: zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>
ce48461eaaAli committed on 8/31/2026, 6:47:00 PM· committed by GitHubparent9785475
1 file changedLine totals unavailable