Severity: HIGH
Location: src/commands/actor/set-value.ts:59-72
Parent: #1188
Problem
const recordValue = value || process.stdin; — when the value argument is omitted (documented behavior: delete the record), recordValue becomes the (already-drained) process.stdin stream. The deletion check only matches undefined / null / '' / 'null' / 'undefined', never a stream object, so the code calls setRecord() with a junk/empty value instead of deleteRecord().
Impact
actor set-value OUTPUT (no value arg) is documented to delete the record, but instead creates/overwrites it with an empty/invalid value — violating the documented contract.
Suggested fix
Detect the omitted-argument / empty-stdin case explicitly before falling back to the stream, and route it to deleteRecord().
Generated by an ultra code review.
Severity: HIGH
Location:
src/commands/actor/set-value.ts:59-72Parent: #1188
Problem
const recordValue = value || process.stdin;— when thevalueargument is omitted (documented behavior: delete the record),recordValuebecomes the (already-drained)process.stdinstream. The deletion check only matchesundefined/null/''/'null'/'undefined', never a stream object, so the code callssetRecord()with a junk/empty value instead ofdeleteRecord().Impact
actor set-value OUTPUT(no value arg) is documented to delete the record, but instead creates/overwrites it with an empty/invalid value — violating the documented contract.Suggested fix
Detect the omitted-argument / empty-stdin case explicitly before falling back to the stream, and route it to
deleteRecord().Generated by an ultra code review.