Describe the bug
When a client is in "no-touch" mode, the "TOUCH" command must update the last access time of a key (see https://valkey.io/commands/client-no-touch/).
This does not work when the "TOUCH" command is called from a script.
To reproduce
The problem is present in all released versions (Valkey 7.2.7, 8.0.1) and unstable:
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> client no-touch on
OK
127.0.0.1:6379> object idletime foo
(integer) 9
127.0.0.1:6379> set foo bar
OK
127.0.0.1:6379> object idletime foo
(integer) 18
127.0.0.1:6379> eval "redis.call('touch', KEYS[1])" 1 foo
(nil)
127.0.0.1:6379> object idletime foo
(integer) 49
127.0.0.1:6379> touch foo
(integer) 1
127.0.0.1:6379> object idletime foo
(integer) 1
Expected behavior
eval "redis.call('touch', KEYS[1])" 1 foo above should reset the last access time.
Additional information
This is a problem that was fixed in the Redis 8.0-M02 pre-release.