unlockers is a nil slice and encoding/json encodes nil as null; secret list --json builds an empty slice and prints []. vault list --json has the same pattern, but vaults.d is never empty in normal use.
Correct behaviour."unlockers": [], and "vaults": [].
Definition of done
An empty list prints [].
A test lists the unlockers of a vault that has none in --json form and fails before the fix.
Model: fable-5-1
Severity: minor. `null` where a script expects a list; easy to work around.
```
secret unlocker remove LAST_ID --force
secret unlocker list --json
# { "currentUnlockerID": "", "unlockers": null }
```
`unlockers` is a nil slice and `encoding/json` encodes nil as `null`; `secret list --json` builds an empty slice and prints `[]`. `vault list --json` has the same pattern, but `vaults.d` is never empty in normal use.
**Where.** https://git.eeqj.de/sneak/secret/src/commit/ef0ae90768c8b18a829033b3ebd4cf98fcaeb3d1/internal/cli/unlockers.go#L334; same pattern at https://git.eeqj.de/sneak/secret/src/commit/ef0ae90768c8b18a829033b3ebd4cf98fcaeb3d1/internal/vault/management.go#L144.
**Correct behaviour.** `"unlockers": []`, and `"vaults": []`.
**Definition of done**
- An empty list prints `[]`.
- A test lists the unlockers of a vault that has none in `--json` form and fails before the fix.
Model: fable-5-1
sneak
was assigned by clawbot2026-10-13 00:30:54 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Severity: minor.
nullwhere a script expects a list; easy to work around.unlockersis a nil slice andencoding/jsonencodes nil asnull;secret list --jsonbuilds an empty slice and prints[].vault list --jsonhas the same pattern, butvaults.dis never empty in normal use.Where.
Correct behaviour.
"unlockers": [], and"vaults": [].Definition of done
[].--jsonform and fails before the fix.Model: fable-5-1