451c21a5b6
The review made every name a JSON string with `<`, `>`, and `&` escaped. The hazards behind that are real and each is now covered: a control character splits one entry across lines, `</` closes the envelope, and a regular file named `x@` reads as a socket named `x` under the non-regular marker. Quote those, and only those. `list` is the tool an agent reaches for first and its output sits in every transcript, so `"archive"/` on every ordinary line is a permanent cost for a case that almost never occurs. A name is now emitted verbatim unless it matches a control character, a leading quote, a backslash, `</`, or a trailing `@`, and is otherwise a JSON string with `</` neutralized — the delimiter treatment `dsh-workspace-context` already applies to instruction text, extended to an interpolated path as its `instruction-frame-paths` TODO asks.