- Empty commands show temporary error hint (1s) but not added to history
- Arrow key navigation skips empty command entries
- Add appendCommandOutput helper for transient feedback
- Press ↑ to recall previous command, ↓ for next command (terminal-like behavior)
- Press ↓ at end of history to clear input
- Use readonly instead of disabled to maintain cursor focus and blink state
- Semi-transparent visual feedback during command execution
Redis write commands (SET/DEL/...) ran from the query editor or the
key-browser terminal did not update the dbN (count) labels in the left
tree until a manual refresh. Add refreshRedisDbKeyCounts(), which re-fetches
authoritative per-db counts via INFO keyspace and patches the labels in place
without rebuilding the tree (preserving expanded key nodes), then trigger it
fire-and-forget after any mutating command in both execution paths.
The Redis key-name completion cache was only cleared on connection
lifecycle events, so SET/DEL/EXPIRE/... left autocomplete showing
stale keys. Drop the cache for the db each write command ran on:
- add isRedisMutatingCommand() based on the command-table safety field
(confirm = write; destructive blocked cmds minus read-only/admin ones)
- invalidate after each mutating command in queryStore batch execution
and in RedisKeyBrowser.runRedisCommand
- Add "Fetch All" button alongside "Load More" to continuously SCAN until all keys loaded
- Add stop button and scan progress display during fetch-all
- Implement mergeKeysIntoRedisKeyTree for incremental namespace tree building
- Add toast notifications for empty form validation in key detail panel
- Add i18n translations for new UI elements (zh-CN, zh-TW, en, es)
- Add unit tests for incremental tree merge covering 6 scenarios
Generates a Redis insert command (SET/RPUSH/SADD/ZADD/HSET/XADD/JSON.SET) from
the current key's value and copies it to clipboard. Supports TTL, pagination
hints, and binary value handling.
Setting unmountOnHide to false on the Tabs component avoids re-mounting
RedisValueViewer and its heavy async initialisation (API calls + Shiki
highlighting) each time the user switches back from the CLI panel.