@lone-wolf-akela/dsh-sandboxie-redirect 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,19 @@
3
3
  Notable changes per release. The format is loose; the version numbers are what
4
4
  the DSH compatibility gate reads.
5
5
 
6
+ ## 0.3.4 — 2026-10-13
7
+
8
+ **`sandbox_clear` mode `status` no longer answers in `inspect`'s words**
9
+
10
+ - `render` gave every action except `clear` the inspect head line, so a status
11
+ query read `Sandbox copies for <workspace>: 0 found.` — which looks like "this
12
+ workspace has no copy" when the call says nothing about copies at all. `status`
13
+ now has its own head, `Session projection state for <workspace>.`, above the
14
+ projection detail that actually carries the information.
15
+ - `test/tool-execute.mjs` pins the rendered text of all three actions, plus the
16
+ empty and truncated copy lines, so the wording cannot silently fall through
17
+ again.
18
+
6
19
  ## 0.3.3 — 2026-10-13
7
20
 
8
21
  **`sandbox_clear` mode `status` never worked**
package/lib/tool.mjs CHANGED
@@ -208,10 +208,18 @@ export async function apply(ctx) {
208
208
  (copy) =>
209
209
  `- ${copy.box}: ${copy.files} file(s), ${humanBytes(copy.bytes)}${copy.truncated ? " (counting stopped early)" : ""} at ${copy.root}`
210
210
  );
211
- const head =
212
- value.action === "clear"
213
- ? `Cleared ${value.cleared.length} sandbox copy/copies for ${value.workspace}.`
214
- : `Sandbox copies for ${value.workspace}: ${value.copies.length} found.`;
211
+ // Every action gets its OWN head line. `status` used to fall through
212
+ // to the inspect wording, so a status query answered "N found." —
213
+ // which reads as "this workspace has no copy" when the call says
214
+ // nothing about copies at all; the informative part is the note.
215
+ let head;
216
+ if (value.action === "clear") {
217
+ head = `Cleared ${value.cleared.length} sandbox copy/copies for ${value.workspace}.`;
218
+ } else if (value.action === "status") {
219
+ head = `Session projection state for ${value.workspace}.`;
220
+ } else {
221
+ head = `Sandbox copies for ${value.workspace}: ${value.copies.length} found.`;
222
+ }
215
223
  return [{ type: "text", text: [head, ...lines, value.note].join("\n") }];
216
224
  }
217
225
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lone-wolf-akela/dsh-sandboxie-redirect",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "DSH bundle adding a copy-on-write permission preset: shell commands run inside a per-workspace Sandboxie box, so writes outside the workspace land in the box's copy while the real disk is untouched.",
5
5
  "type": "module",
6
6
  "license": "MIT",