p3x-redis-ui 2026.4.2010 → 2026.4.2012

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/COMPARISON.md CHANGED
@@ -166,7 +166,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
166
166
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
167
167
 
168
168
 
169
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
169
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
170
170
 
171
171
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
172
172
 
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- # 📡 P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications v2026.4.2010
9
+ # 📡 P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications v2026.4.2012
10
10
 
11
11
 
12
12
 
@@ -83,336 +83,11 @@ Try the latest version at [p3x.redis.patrikx3.com](https://p3x.redis.patrikx3.co
83
83
 
84
84
  ## Features
85
85
 
86
- ### Triple GUI: Angular + React + Vue
87
-
88
- P3X Redis UI was originally built with AngularJS and has been fully migrated to three modern frontends — **Angular**, **React/MUI**, and **Vue/Vuetify** — all at full feature parity. You can switch between them live in **Settings → GUI**.
89
-
90
- - **Angular** (`/ng/`) — Angular CLI with esbuild, CDK virtual scrolling, standalone components with signals
91
- - **React** (`/react/`) — Zustand state management, @tanstack/react-virtual, MUI (Material UI), Vite
92
- - **Vue** (`/vue/`) — Pinia state management, Vue 3 Composition API, Vuetify, Vite
93
- - `/` auto-redirects to your last used frontend
94
- - **Shared across all three:** same Socket.IO protocol, same 54-language translation system, same 7 themes (4 dark + 3 light), Web Worker tree building, Playwright E2E tests
95
- - Works in the Electron desktop app, Docker, and standalone server
96
-
97
- ### AI-Powered Redis Query Translation
98
- - **Natural language queries:** type plain English (or any language) in the console — if Redis doesn't recognize the command, AI translates it to a valid Redis command and replaces the console input; the command is **not executed automatically** — you review, edit if needed, and press Enter to run it
99
- - **Multi-command AI:** AI can generate multiple commands or multi-line EVAL scripts — they are placed in the textarea for review, then executed with Enter
100
- - **Input replacement:** after AI translation, the console input is replaced with the generated Redis command so you can see exactly what will be executed before running it
101
- - **Multilingual:** understands 54 languages, explanations are returned in the language you type in
102
- - **Context-aware:** sends Redis version, loaded modules, available RediSearch indexes, current page, active connection, and selected database to the AI for accurate, situation-aware answers
103
- - **Agentic tool-use:** for investigation prompts ("why is memory high?", "show me the 10 busiest keys"), the AI can call safe read-only Redis tools (INFO, MEMORY STATS, SLOWLOG, SCAN, ACL WHOAMI, etc.) in a bounded loop and surfaces every tool call + result in the console scrollback for transparency
104
- - **AI Cheatsheet:** dedicated dialog (replaces the old Redis Commands popup) with categorized, searchable prompts grouped by feature (diagnostics, keys, data types, RedisJSON, RediSearch, TimeSeries, Bloom, VectorSet, scripting, cluster, ACL, translation). Module- and version-aware: groups only appear when the relevant module is loaded
105
- - **Stop button:** click the stop icon in the console input to cancel a running AI query instantly — the input is cleared and re-enabled while the server-side loop finishes in the background and its response is discarded
106
- - **Bring your own key:** optionally set your own free Groq API key in Settings for better performance (get one at [console.groq.com](https://console.groq.com))
107
- - **`ai:` prefix:** explicitly trigger AI translation by starting your input with `ai:` — works when AI is enabled in Settings
108
- - **AI toggle in console:** when AI is globally enabled in Settings, a slide toggle appears in the console toolbar to control auto-detect behavior:
109
- - **AI ON** (default): unrecognized commands automatically try AI translation
110
- - **AI OFF**: only the explicit `ai:` prefix triggers AI — console errors are instant with no Groq round-trip delay
111
- - When AI is disabled in Settings, the toggle is hidden and all AI features are off
112
-
113
- | Settings AI | Console Toggle | `ai:` prefix | Auto-detect on errors |
114
- |---|---|---|---|
115
- | Disabled | Hidden | Off | Off |
116
- | Enabled | ON (default) | Works | Works |
117
- | Enabled | OFF | Works | Off (instant errors) |
86
+ See [**Features**](artifacts/readme/features.md) — Triple GUI (Angular + React + Vue), AI-powered queries, real-time monitoring (Pulse / Profiler / PubSub / Analysis), RediSearch, RedisTimeSeries, ReJSON, RedisBloom, VectorSet, Redis 8.x, ACL, and more.
118
87
 
119
88
  ## AI Configuration
120
89
 
121
- The AI query translation feature works out of the box natural language queries are automatically translated to Redis commands via the Groq API.
122
-
123
- ### How It Works
124
-
125
- By default, AI queries are routed through `network.corifeus.com`, which handles the Groq API call. No configuration needed.
126
-
127
- If you set your own Groq API key, you can choose to:
128
- - **Keep routing via `network.corifeus.com`** (default) — your key is used but queries still go through the proxy for analytics
129
- - **Route directly to Groq** — toggle "Route via network.corifeus.com" OFF in AI Settings to bypass the proxy entirely
130
-
131
- ### AI Settings in the UI
132
-
133
- The **Settings** page has an **AI Settings** panel with:
134
- - **AI Enabled** — toggle AI on/off (enabled by default)
135
- - **Route via network.corifeus.com** — toggle routing (only visible with a valid Groq API key)
136
- - **Groq API Key** — set via the Edit button (validated against Groq before saving)
137
-
138
- ### Configuration Options
139
-
140
- **Recommended:** Configure AI settings via the GUI first (Settings > AI Settings). Once configured, you can optionally add `groqApiKeyReadonly: true` to `p3xrs.json` or `--groq-api-key-readonly` CLI flag to lock the settings.
141
-
142
- All settings can also be configured via `p3xrs.json` or CLI options.
143
-
144
- Config (`p3xrs.json`):
145
-
146
- ```json
147
- {
148
- "p3xrs": {
149
- "groqApiKey": "gsk_your_key_here",
150
- "aiEnabled": true,
151
- "aiUseOwnKey": false
152
- }
153
- }
154
- ```
155
-
156
- | Key | Type | Default | Description |
157
- |-----|------|---------|-------------|
158
- | `groqApiKey` | string | `""` | Your Groq API key (get free at [console.groq.com](https://console.groq.com)) |
159
- | `aiEnabled` | boolean | `true` | Enable/disable AI auto-detect on unrecognized commands; `ai:` prefix always works regardless |
160
- | `aiUseOwnKey` | boolean | `false` | `true` = route directly to Groq, `false` = route via network.corifeus.com |
161
- | `groqApiKeyReadonly` | boolean | `false` | Lock all AI settings (toggles disabled, Edit hidden) |
162
-
163
- CLI options:
164
-
165
- ```bash
166
- p3xrs --groq-api-key gsk_your_key_here
167
- p3xrs --groq-api-key-readonly
168
- ```
169
-
170
- ### Readonly Mode
171
-
172
- To prevent users from changing AI settings (e.g. on a public instance):
173
-
174
- Config (`p3xrs.json`):
175
-
176
- ```json
177
- {
178
- "p3xrs": {
179
- "groqApiKey": "gsk_your_key_here",
180
- "groqApiKeyReadonly": true
181
- }
182
- }
183
- ```
184
-
185
- CLI:
186
-
187
- ```bash
188
- p3xrs --groq-api-key gsk_your_key_here --groq-api-key-readonly
189
- ```
190
-
191
- Or combine with readonly connections (`-r`) which also disables AI settings:
192
-
193
- ```bash
194
- p3xrs -r --groq-api-key gsk_your_key_here
195
- ```
196
-
197
- Example systemd service (public instance):
198
-
199
- ```ini
200
- [Unit]
201
- Description=p3x-redis-ui
202
- After=network.target
203
-
204
- [Service]
205
- Type=simple
206
- User=user
207
- WorkingDirectory=/home/user/p3x-redis-ui
208
- ExecStart=/var/p3x-redis-ui-server/bin/p3xrs.mjs -r --groq-api-key-readonly --config /home/user/p3x-redis-ui/p3xrs.json
209
- Restart=on-abort
210
-
211
- [Install]
212
- WantedBy=multi-user.target
213
- ```
214
-
215
- ### Connection Resilience
216
- - **Auto-reconnect** — when the server disconnects, a spinner overlay appears and Socket.IO automatically retries the connection
217
- - **Seamless recovery** — when the server comes back, the page reloads and reconnects to the same Redis instance automatically
218
-
219
- ### Compatibility
220
- - **Redis 6+ with TLS** — see [Configuring Redis TLS](https://spin.atomicobject.com/2021/08/05/configuring-redis-tls/) for setup details
221
- - **Pika compatible** (not fully optimized)
222
- - **SSH tunneling** for single instances, cluster, and sentinel
223
- - **Environment variables:** customize server port and home directory via `P3XRS_PORT` and `P3XRS_DOCKER_HOME`
224
-
225
- ### Data Handling
226
- - **Auto data decompression** — automatically detects and decompresses compressed values stored in Redis. Supports GZIP, ZIP (PKZip), zlib/deflate, Zstandard (zstd), LZ4, Snappy, and Brotli. Shows a compression badge with the algorithm name and space savings ratio. Only decompresses when the result is valid text — binary uploads (e.g., gzipped images) are left untouched. Works for string, list, hash, set, and sorted set values.
227
- - **Value format toggle** — switch between Raw, JSON, Hex, and Base64 display for all key types (string, hash, list, set, zset, stream); display-only — copy and edit always use the raw original value
228
- - **Hex dump viewer** — proper hex editor layout with address column, hex bytes (16 per line), and ASCII representation
229
- - **JSON pretty-print** — auto-formats valid JSON values with indentation
230
- - **Base64 encoding** — encodes values including Unicode and binary data via TextEncoder
231
- - **Binary data:** use the download button for binary content; direct text editing is not supported for binary values
232
- - **Large values (>256 kB):** shown as `[object ArrayBuffer]`; use binary upload/download
233
- - **Clipboard:** text can be copied directly; binary data requires the download button
234
-
235
- ### Editing Safety
236
- - **Diff view before save** — optional diff dialog shows inline or side-by-side comparison of old vs. new value before committing changes; works for string, hash, list, and JSON key types including the JSON editor; collapsible unchanged sections with context lines; toggle in Redis Settings (default: off)
237
- - **Undo after save** — after saving a string or JSON key, a toast notification appears with an Undo button; clicking it restores the previous value immediately; works for both direct edits and JSON editor saves
238
-
239
- ### Key Export / Import
240
- - **Export:** download keys as a JSON file — supports string, list, set, zset, hash, stream, and JSON types with binary data encoded as base64 and TTL preservation
241
- - **Search-aware:** when a search is active, export only the matching results; otherwise export all keys in the current database
242
- - **Import:** upload a previously exported JSON file with a preview dialog showing all keys with their translated types, virtual scrolling for large key sets, and conflict handling (overwrite or skip existing keys)
243
- - **Hamburger menu:** export and import actions are accessible from the `⋮` menu in the tree controls toolbar; the menu label dynamically shows the key count and whether it's exporting all keys or search results
244
- - **Bulk delete:** delete all keys matching the current search pattern directly from the hamburger menu; when no search is active, deletes all keys using `FLUSHDB` for efficiency
245
-
246
- ### Real-Time Monitoring (Pulse / Profiler / PubSub)
247
-
248
- Three dedicated tabs accessible from the monitoring page:
249
-
250
- #### Pulse — Live Dashboard
251
- - **Live metrics:** memory usage (used, RSS, peak, fragmentation), ops/sec, connected/blocked clients, hit rate, network I/O, expired/evicted keys — updating every 2 seconds
252
- - **Dashboard info cards:** server info (OS, port, PID, config file, CPU usage), persistence status (RDB last save, AOF), replication (role, replicas, master host), keyspace breakdown (keys + expires per database), loaded modules with versions — all with individual export buttons
253
- - **uPlot charts:** four lightweight canvas charts (~35 KB) for memory, ops/sec, clients, and network I/O with theme-aware colors
254
- - **Slow log viewer:** recent slow queries with execution duration
255
- - **Client list:** all connected Redis clients with address, name, database, current command, idle time, and kill button
256
- - **Memory top keys:** top 20 biggest keys by memory usage with byte sizes
257
- - **Auto-refresh:** toggle auto-polling for client list and memory top keys
258
- - **Pause/resume:** pause live updates without leaving the page
259
- - **Export:** download overview data, dashboard info, charts (PNG), slow log, client list, and top keys as text files; Export All bundles everything into a ZIP with TXT + PNG + PDF
260
- - **Theme + language reactive:** charts reinitialize on theme or language change
261
-
262
- #### Profiler — Real-Time Command Stream
263
- - **Redis MONITOR:** streams every command executed on the server in real time via a dedicated Redis connection
264
- - **Command display:** timestamp (ms precision), database number, source IP, and full command with arguments
265
- - **Performance:** renders max 66 DOM entries for smooth scrolling, stores up to 10,000 entries in memory
266
- - **Persistence:** last 100 entries saved to localStorage
267
- - **Export:** download all entries as a text file
268
-
269
- #### PubSub — Channel Message Monitoring
270
- - **Pattern subscription:** subscribe with configurable glob patterns (default `*` for all channels) via `PSUBSCRIBE`
271
- - **Message display:** timestamp, channel name, and full message content in real time
272
- - **Restart:** re-subscribe with a new pattern without leaving the page
273
- - **Performance:** same 66 DOM / 10,000 memory / 100 localStorage limits as Profiler
274
- - **Export:** download all entries as a text file
275
-
276
- #### Analysis — Memory Analysis Dashboard
277
- - **One-click snapshot:** capture the full state of your Redis server at a point in time — type distribution, memory allocation per namespace, key expiration stats, and INFO memory breakdown
278
- - **Type distribution chart:** canvas bar chart showing how many keys and how much memory each data type (string, hash, list, set, zset, stream) uses
279
- - **Memory by prefix:** groups keys by their first `:` segment and ranks prefixes by total memory — quickly find which namespace is consuming the most resources
280
- - **Key expiration overview:** shows the count of keys with TTL vs persistent keys, plus the average TTL across all expiring keys (formatted with `humanize-duration`)
281
- - **Memory breakdown:** total, RSS, peak, overhead, dataset, Lua, fragmentation ratio, and allocator — all from `INFO memory`
282
- - **Server info header:** Redis version, mode (standalone/cluster/sentinel), and uptime displayed in the accordion header
283
- - **Configurable scan:** adjust "Top N" and "Max Scan Keys" to control scan depth; the UI shows how many keys were sampled out of the total database size
284
- - **Export All (ZIP):** download a complete analysis bundle as a ZIP file (`{connection}-analysis.zip`) containing the full text report and all chart images (PNG) — useful for sharing with your team or attaching to incident reports when investigating server issues
285
- - **Chart export:** each chart accordion has its own Export button to download individual charts as PNG
286
- - **Theme-aware:** bar charts use CSS custom property colors and automatically redraw on theme or window resize
287
-
288
- ### User Interface
289
- - **Responsive design:** works on phones, tablets, and desktops
290
- - **7 themes:** Light, Enterprise, Redis (light) + Dark, Dark Neu, Darko Bluo, Matrix (dark) — with **auto-switch** that follows your system's dark/light preference in real time
291
- - **Theme auto-switch:** defaults to system preference on first visit; manually selecting a theme overrides auto mode
292
- - **Info page:** dedicated page with keyboard shortcuts reference, about section (version, Redis info, links), and supported languages list
293
- - **Command palette:** VS Code-style quick command palette (`Ctrl+K` in Electron) with search and keyboard navigation
294
- - **Desktop shortcuts:** press ALT to access menus in the desktop version
295
- - **Tree view:** adjustable key count (100–100,000) with virtual scrolling for performance
296
- - **Smart tree memory:** expanded/collapsed folder state is saved per connection and database in session storage — survives page refreshes and database switches, restored automatically when reconnecting to the same server
297
-
298
- ### Keyboard Shortcuts (Electron Desktop)
299
- | Shortcut | Action |
300
- |----------|--------|
301
- | `Ctrl+R` / `F5` | Refresh current view |
302
- | `Ctrl+F` | Focus search input |
303
- | `Ctrl+N` | New key dialog |
304
- | `Ctrl+K` | Command palette |
305
- | `Ctrl+D` | Disconnect |
306
-
307
- ### Connection Management
308
- - **Connection groups:** organize connections into named groups with collapsible headers in Settings
309
- - **Drag-and-drop:** reorder connections within a group and reorder groups themselves by dragging headers
310
- - **Group toggle:** enable/disable grouped view with a single click — persisted in localStorage
311
- - **Group field:** optional group name in the connection dialog with autocomplete from existing groups
312
-
313
- ### Console and Search
314
- - **Global console drawer:** bottom slide-up drawer accessible from any page — toggle via the footer Console button or **Ctrl+`** shortcut. Lets you run commands without leaving the Keys / Monitoring / Settings page you're on. Preference persists across reloads (per-connection — drawer stays hidden when disconnected)
315
- - **Multi-line input:** the console uses a textarea that supports multi-line commands
316
- - **Shift+Enter** inserts a new line, **Enter** executes
317
- - Multiple commands (one per line) are executed sequentially
318
- - Multi-line `EVAL`/`EVALSHA` scripts are sent as a single command — Lua newlines are preserved
319
- - The textarea auto-grows up to 3 lines when focused, with a scrollbar for longer content
320
- - On blur the textarea collapses to a single line to keep the output visible
321
- - **Command history:** **Shift+ArrowUp/Down** navigates history (plain arrows scroll the textarea)
322
- - **AI multi-line:** AI-generated commands can be multiple lines — they are placed in the textarea for review before execution
323
- - **Channel monitoring:** toggle monitoring for all channel messages via a checkbox; the last 20 entries are stored in local storage
324
- - **Database selection:** choose databases via the console or dropdown (shows empty/filled status)
325
- - **Search modes:** client-side for small key sets, server-side for large key sets; search by prefix or substring
326
-
327
- ### Networking
328
- - **Sub-directory support:** use Nginx/Ingress path rewriting — see [Issue #43](https://github.com/patrikx3/redis-ui/issues/43)
329
- - **Cluster support:** continuously improving, with significant contributions by [@devthejo](https://github.com/devthejo)
330
-
331
-
332
- ### RediSearch Full-Text Search
333
- - **Search page:** full-text search UI with index selector, query input, and paginated results — only visible when RediSearch module is detected
334
- - **Index management:** create indexes with schema builder (TEXT, NUMERIC, TAG, GEO, VECTOR fields), drop indexes with confirmation
335
- - **Index info:** view index metadata and statistics after running a search
336
- - **Module-aware:** header button automatically appears when the `search` module is loaded (Redis 8+ or Redis Stack)
337
-
338
- ### RedisTimeSeries Visualization
339
- - **Module auto-detection** — TimeSeries UI automatically appears when the `timeseries` module is loaded (Redis Stack or Redis 8+)
340
- - **Interactive line chart** — uPlot canvas chart with theme-aware colors (dark/light), responsive resizing, and locale-aware time formatting via native `Intl`
341
- - **Live auto-refresh** — toggle auto-polling (10-second interval) to watch incoming data in real time
342
- - **Reactive inputs** — chart auto-reloads on any input change (from/to, aggregation, overlay, label filter) with debounced updates
343
- - **Time range & aggregation** — filter by from/to timestamps, apply aggregation functions (avg, min, max, sum, count, first, last, range, std.p, std.s, var.p, var.s) with configurable time buckets
344
- - **Data point management** — add, edit, and delete individual data points with confirmation dialogs; inline add form directly below the chart
345
- - **Bulk edit** — edit all data points at once via the Edit button in the chart header; monospace textarea with `timestamp value` per line; `*` timestamps are auto-spread by a configurable interval (1s to 24h)
346
- - **Bulk generate on create** — toggle "Bulk generate" in the Add Key dialog to create a new timeseries key with multiple data points at once using the formula generator
347
- - **Formula generator** — generate test data with mathematical formulas (sin, cos, linear, random, sawtooth) with configurable point count, amplitude, and offset
348
- - **TS.INFO panel** — view retention, total samples, memory usage, chunk info, duplicate policy, labels, and compaction rules in a settings-style mat-list
349
- - **Labels editor** — edit retention, duplicate policy, and labels on existing keys via `TS.ALTER`; labels are also editable from the Edit dialog
350
- - **Default labels** — keys created from the GUI automatically get a `key=<keyname>` label for discoverability; keys without labels get the default label assigned on first view
351
- - **Multiple series overlay** — overlay additional timeseries keys on the same chart by entering comma-separated key names
352
- - **TS.MRANGE label filter** — query across multiple keys by label filter (e.g. `sensor=temp`) and overlay all matching series on the chart with different colors
353
- - **Export chart as PNG** — download the chart as a PNG image with proper background (dark/light aware), title, and color legend
354
- - **Key creation** — create new timeseries keys with configurable retention, duplicate policy (`LAST`, `FIRST`, `MIN`, `MAX`, `SUM`, `BLOCK`), and labels
355
- - **Tree integration** — timeseries keys show with a chart-area icon and display the data point count (totalSamples) in the tree view
356
- - **Theme + language reactive** — charts reinitialize on theme or language change
357
- - **No external date library** — all date formatting uses native `Intl.DateTimeFormat`, no dayjs dependency for the timeseries component
358
-
359
- ### Redis 8 Module Support (ReJSON)
360
- - **ReJSON (JSON data type)** — view, create, edit, format, copy, and download JSON documents stored with `JSON.SET`
361
- - **Module auto-detection** — available modules are detected on connection via `MODULE LIST`
362
- - **JSON keys** appear in the tree with a `</>` icon; JSON type is available in the "Add Key" dialog when the module is detected
363
- - **Inline JSON tree** — JSON keys display as an expandable/collapsible tree with syntax coloring
364
- - **CodeMirror editor** — edit JSON documents with syntax highlighting, GitHub dark/light themes, line wrapping toggle, and code folding
365
-
366
- ### RedisBloom Probabilistic Data Structures
367
- - **Full support for 5 types** — Bloom filter, Cuckoo filter, Top-K, Count-Min Sketch, and T-Digest
368
- - **Module auto-detection** — probabilistic types appear when the `bf` (RedisBloom) module is detected via `MODULE LIST`
369
- - **Info display** — click any probabilistic key to see its metadata (capacity, size, error rate, items inserted, etc.) in a clean card layout
370
- - **Inline actions** — add items, check membership (Bloom/Cuckoo), query counts (CMS), query quantiles (T-Digest), and list top items (Top-K) — all from the key view
371
- - **Key creation** — create new keys with smart defaults pre-filled (error rate, capacity, K, width, depth, decay, compression)
372
- - **Tree integration** — each type has its own icon (filter, trophy, chart) and shows item count in the tree view
373
- - **Console hints** — full autocomplete support for all BF.*, CF.*, TOPK.*, CMS.*, and TDIGEST.* commands
374
- - **AI query support** — the AI console understands all RedisBloom types and commands
375
-
376
- ### Redis 8 VectorSet Support
377
- - **Native vector type** — full support for Redis 8's built-in `VECTORSET` data type (no module required)
378
- - **Vector info** — view metadata (dimensions, element count, quantization, projection) via `VINFO`
379
- - **Element browser** — paginated list of all vector elements with search, attribute inspection, and delete actions
380
- - **Similarity search** — search by element name or by raw vector with configurable COUNT; results displayed with similarity scores
381
- - **Attribute viewer** — inspect `VGETATTR` attributes on individual elements via info icon + toast
382
- - **Add elements** — inline form to add new vector elements with `VADD` (element name, vector, optional attributes)
383
- - **Key creation** — create new VectorSet keys from the "Add Key" dialog with dimension and initial element
384
- - **Tree integration** — VectorSet keys show with a data-array icon and display element count (VCARD) in the tree view
385
- - **Console hints** — autocomplete for VADD, VSIM, VCARD, VDIM, VGETATTR, VSETATTR, VREM, VINFO, VLINKS
386
- - **VSIM IN filter** (Redis 8.2+) — filter expression input for similarity search, narrow results by attribute values
387
- - **AI query support** — the AI console understands VectorSet types and commands
388
-
389
- ### Redis 8.x Advanced Features
390
- - **Per-field hash TTL** (Redis 8.0+) — set expiration on individual hash fields via `HEXPIRE`; schedule icon per field row with live countdown, color-coded (green >1h, yellow <1h, red <5min, pulsing <30s), tooltip with humanized duration; auto-refresh when a field expires
391
- - **String digest** (Redis 8.4+) — view the hash digest of any string key value via the `DIGEST` command; one-click button in string key actions
392
- - **Hybrid search** (Redis 8.4+) — toggle `FT.HYBRID` mode on the search page to combine text queries with vector similarity using Reciprocal Rank Fusion; requires a RediSearch index with a VECTOR field
393
- - **Cluster slot stats** (Redis 8.2+) — monitoring dashboard accordion showing top slots by key count, CPU time, or memory usage via `CLUSTER SLOT-STATS`; only visible in cluster mode
394
- - **Console command hints** — autocomplete for all new Redis 8.0–8.6 commands: HGETEX, HSETEX, HGETDEL, HTTL, HEXPIRE, HPERSIST, MSETEX, XDELEX, XCFGSET, DIGEST, FT.HYBRID, CLUSTER SLOT-STATS, CLUSTER MIGRATION
395
- - **AI query support** — AI prompt updated with all Redis 8.0–8.6 commands; Redis server version now correctly sent to AI for version-aware command generation
396
- - **Version-gated UI** — all Redis 8.x features automatically appear/hide based on the connected Redis server version
397
-
398
- ### ES Modules Backend
399
- The server codebase has been fully migrated from CommonJS to **ES Modules** (`.mjs`), enabling native Node.js ESM support and better tree-shaking.
400
-
401
- ### ACL Management (Redis 6.0+)
402
- - **User list** — view all ACL users with status (enabled/disabled), current user indicator, and rules summary
403
- - **Create / Edit / Delete** — full ACL user management via a dialog with chip-based rule editing
404
- - **Chip inputs** — commands, key patterns, and pub/sub channels are entered as chips with placeholder hints
405
- - **Deny highlighting** — commands starting with `-` (e.g. `-@dangerous`) are visually highlighted with the warning color
406
- - **Default user warning** — editing the `default` user shows an inline warning alert explaining the risk of locking out connections
407
- - **Save confirmation** — every ACL save shows a themed confirm dialog
408
- - **Consistent across GUIs** — identical chip styling, layout, and behavior in Angular, React, and Vue
409
-
410
- ### Security
411
- - **Secure configuration:** passwords and sensitive data are protected with unique identifiers for both main and node configurations
412
-
413
- <!--
414
- 👷 **The first full complete version was created in 20 days in September of 2018.**
415
- -->
90
+ See [**AI Configuration**](artifacts/readme/ai.md) works out of the box; covers GUI/CLI config, readonly mode, and the Groq API key.
416
91
 
417
92
 
418
93
  ## Important Notice
@@ -421,124 +96,8 @@ Do not manually create the configuration `JSON` file with a text editor. Use the
421
96
 
422
97
  ## Optional HTTP Basic Authentication
423
98
 
424
- Protect both HTTP routes and Socket.IO with HTTP Basic authentication.
425
-
426
- Config (`p3xrs.json`):
427
-
428
- ```json
429
- {
430
- "p3xrs": {
431
- "httpAuth": {
432
- "enabled": true,
433
- "username": "admin",
434
- "passwordHash": "$2b$10$..."
435
- }
436
- }
437
- }
438
- ```
439
-
440
- Generate a BCrypt password hash:
441
-
442
- ```bash
443
- node ./node_modules/p3x-redis-ui-server/bin/bcrypt-password.js -p myplainpass
444
- ```
445
-
446
- Environment variables:
447
-
448
- - `HTTP_USER`
449
- - `HTTP_PASSWORD`
450
- - `HTTP_PASSWORD_HASH`
451
- - `HTTP_PASSWORD_HASH_FILE`
452
- - `HTTP_AUTH_ENABLED` (`true|false`)
453
-
454
- CLI options:
455
-
456
- - `--http-auth-enable`
457
- - `--http-auth-disable`
458
- - `--http-auth-username`
459
- - `--http-auth-password`
460
- - `--http-auth-password-hash`
461
- - `--http-auth-password-hash-file`
462
-
463
- Notes:
464
-
465
- - `passwordHash` is preferred over plain `password`.
466
- - Use HTTPS or a reverse proxy with TLS when HTTP auth is enabled.
99
+ See [**HTTP Basic Auth**](artifacts/readme/http-basic-auth.md) config, env vars, CLI flags.
467
100
 
468
- ## All Features Are Free
469
-
470
- All features including SSH tunneling, Cluster/Sentinel, ReJSON, binary upload/download, and readonly connections are available for free. No license required.
471
-
472
-
473
- <!--
474
- ## License Integration
475
-
476
- The app validates licenses through `network.corifeus.com` for product `p3x-redis-ui`.
477
-
478
- - Validation endpoint: `GET https://network.corifeus.com/public/license/check/:licenseKey`
479
- - Returned data is shown in `Settings -> License`:
480
- - tier, validity and status, reason
481
- - starts/expires/check timestamps, days left
482
- - enabled features
483
- - License key is displayed only in masked form on the client.
484
- - License state refreshes every 60 minutes (server + client refresh flow).
485
- - License validation requires internet access.
486
-
487
- ### Tier Feature Policy
488
-
489
- - `free`
490
- - Core Redis UI only; no SSH tunneling, no Readonly connection mode, no Cluster/Sentinel, no Edit JSON/Upload binary/Download binary, no ReJSON.
491
- - Price: `0 HUF/month (€0/month)`.
492
- - `pro`
493
- - SSH tunneling, Readonly connection mode (including `--readonly-connections`/`-r`), Edit JSON, Upload binary, Download binary, ReJSON (JSON data type).
494
- - Base price: `400 HUF/month (€1/month)` or `4,000 HUF/year (€10/year)`.
495
- - Total with `27%` VAT: `500 HUF/month (€1.27/month)` or `5,100 HUF/year (€12.70/year)`.
496
- - `enterprise`
497
- - SSH tunneling, Cluster and Sentinel, Edit JSON, Upload binary, Download binary, ReJSON (JSON data type); `--readonly-connections`/`-r` also works.
498
- - Base price: `1,200 HUF/month (€3/month)` or `12,000 HUF/year (€30/year)`.
499
- - Total with `27%` VAT: `1,500 HUF/month (€3.81/month)` or `15,200 HUF/year (€38.10/year)`.
500
- - Yearly price is `10x` the monthly price.
501
- - Default license includes `5 seats`; for more seats, contact [`support@corifeus.com`](mailto:support@corifeus.com).
502
- - Enterprise trial: `10 days` free with a valid email address.
503
- - Billing info required: `Name, Billing e-mail, Country code, Postal code, City, Address, VAT ID (optional)`.
504
- - PayPal payment accepted only in `HUF` (Hungarian forint).
505
- - VAT (`27%` in Hungary) is added to paid plan prices.
506
- - Invoice/license communication is in English; invoice currency is HUF.
507
- - Contact: [`support@corifeus.com`](mailto:support@corifeus.com).
508
-
509
- Enforcement:
510
- - Backend enforces tier rules on connection save/connect/test paths
511
- - Backend enforces Pro+ for binary value writes (`key-set`, `key-new-or-set`)
512
- - Backend enforces Pro+ for ReJSON (JSON data type) operations (`key-get`, `key-new-or-set`, `key-json-set`)
513
- - Frontend mirrors the rules in UI controls (hide/disable + localized messages)
514
- - `--readonly-connections` (`-r`) requires `pro` or `enterprise` tier
515
-
516
- ### License Editing Policy (`p3xrs.json`)
517
-
518
- License editability is controlled by server config:
519
-
520
- - `p3xrs.licenseEditable` (recommended)
521
- - Legacy fallback: `p3xrs.editableActive`
522
- - Legacy fallback: `p3xrs.disabled` (inverted)
523
-
524
- If license editing is disabled:
525
-
526
- - the `Edit` button is disabled in the UI
527
- - the UI shows a terminal-only notice (EN/ZH/RU)
528
- - the server blocks license updates (`license_readonly`), preventing bypass from browser/API
529
-
530
- Example:
531
-
532
- ```json
533
- {
534
- "p3xrs": {
535
- "licenseEditable": false
536
- }
537
- }
538
- ```
539
-
540
- Restart the server after changing `p3xrs.json`.
541
- -->
542
101
 
543
102
  ## Installation
544
103
 
@@ -645,6 +204,8 @@ kubectl apply -f generated.yaml
645
204
 
646
205
  ### Desktop Applications
647
206
 
207
+ > **Stuck on the loading screen?** Reinstall the app (Snap / Flatpak / deb / rpm / AppImage / dmg / msi). A cached or partial install from a previous auto-update is the usual cause; reinstall clears it and the GUI loads on next launch.
208
+
648
209
  #### macOS
649
210
 
650
211
  Supports both Intel and Apple Silicon builds. If you download the `zip` for the `arm64` version, remove the quarantine attribute:
@@ -708,33 +269,7 @@ The app is listed on [ElectronJs Apps](https://electronjs.org/apps) — search f
708
269
 
709
270
  ## Architecture
710
271
 
711
- This application uses Socket.IO instead of REST for client-server communication. While unconventional, Socket.IO provides better responsiveness by avoiding HTTP protocol overhead, resulting in a smoother interaction experience.
712
-
713
- [REST vs WebSocket benchmarks](https://www.google.com/search?q=rest+vs+websocket+comparison+benchmarks)
714
-
715
-
716
- ### Communication Flow
717
-
718
- ```
719
- Browser / Electron App / VS Code Extension
720
-
721
- redis-ui-material
722
- ├── Angular frontend (/ng/) — Angular + Angular Material
723
- ├── React frontend (/react/) — React + MUI + Vite + Zustand
724
- └── Vue frontend (/vue/) — Vue 3 + Vuetify + Vite + Pinia
725
- ↓ Socket.IO + HTTP
726
- redis-ui-server (Express + ioredis)
727
-
728
- Redis Instance (standalone / cluster / sentinel, optional SSH tunnel)
729
- ```
730
-
731
- ### Related Repositories
732
-
733
- | Repository | Description |
734
- |------------|-------------|
735
- | [p3x-redis-ui](https://github.com/patrikx3/redis-ui) | Electron desktop app + CLI (this repo) |
736
- | [p3x-redis-ui-server](https://github.com/patrikx3/redis-ui-server) | HTTP + Socket.IO server backend |
737
- | [p3x-redis-ui-material](https://github.com/patrikx3/redis-ui-material) | Angular + React + Vue frontends |
272
+ See [**Architecture**](artifacts/readme/architecture.md) Socket.IO + Express + ioredis, three frontends (Angular / React / Vue), related repositories.
738
273
 
739
274
  ## Adoption Notes
740
275
 
@@ -824,7 +359,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
824
359
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
825
360
 
826
361
 
827
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
362
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
828
363
 
829
364
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
830
365
 
@@ -143,7 +143,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
143
143
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
144
144
 
145
145
 
146
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
146
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
147
147
 
148
148
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
149
149
 
@@ -312,7 +312,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
312
312
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
313
313
 
314
314
 
315
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
315
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
316
316
 
317
317
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
318
318
 
@@ -706,7 +706,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
706
706
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
707
707
 
708
708
 
709
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
709
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
710
710
 
711
711
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
712
712
 
@@ -355,7 +355,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
355
355
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
356
356
 
357
357
 
358
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
358
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
359
359
 
360
360
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
361
361
 
@@ -102,7 +102,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
102
102
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
103
103
 
104
104
 
105
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
105
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
106
106
 
107
107
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
108
108
 
@@ -139,7 +139,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
139
139
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
140
140
 
141
141
 
142
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
142
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
143
143
 
144
144
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
145
145
 
@@ -483,7 +483,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
483
483
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
484
484
 
485
485
 
486
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
486
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
487
487
 
488
488
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
489
489
 
@@ -111,7 +111,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
111
111
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
112
112
 
113
113
 
114
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
114
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
115
115
 
116
116
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
117
117
 
package/change-log.md CHANGED
@@ -5,6 +5,24 @@
5
5
 
6
6
  [//]: #@corifeus-header:end
7
7
 
8
+ ### v2026.4.2011
9
+ Released on 05/08/2026
10
+ * BUGFIX: Bumped @codemirror/view resolution to 6.42.1 to fix duplicate KeyBinding type error.
11
+ * DOCS: Trimmed README from 835 to 370 lines and moved long sections to artifacts/readme/.
12
+ * CHORE: Updated dependencies across all packages.
13
+
14
+ ### v2026.4.2010
15
+ Released on 05/08/2026
16
+ * FEATURE: Added Meet Assistant SaaS promo alongside AI Network Assistant on demo site.
17
+ * FEATURE: Registered forum icon for Meet Assistant SaaS promo button.
18
+ * BUGFIX: AI explanations now default to English when no UI language is set instead of biasing toward Hungarian.
19
+ * REFACTOR: Extracted shared AI prompt and parser to a common library module.
20
+ * REFACTOR: Moved callGroq, runSingleShotQuery, and AI utilities into the shared layer.
21
+ * DOCS: Added COMPARISON.md comparing P3X Redis UI against other Redis tools, linked from README.
22
+ * DOCS: Updated repository URL references across documentation.
23
+ * DOCS: Updated documentation headers across packages.
24
+ * CHORE: Updated dependencies to the latest versions across all packages.
25
+
8
26
  ### v2026.4.2007
9
27
  Released on 04/20/2026
10
28
  * BUGFIX: Updated info component in Material UI.
@@ -852,7 +870,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
852
870
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
853
871
 
854
872
 
855
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
873
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
856
874
 
857
875
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
858
876
 
package/contributors.md CHANGED
@@ -73,7 +73,7 @@ All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.eu](ht
73
73
  **🚨 Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
74
74
 
75
75
 
76
- [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2010
76
+ [**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2026.4.2012
77
77
 
78
78
  [![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for PatrikX3 / P3X](https://img.shields.io/badge/Donate-PatrikX3-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
79
79
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "p3x-redis-ui",
3
- "version": "2026.4.2010",
3
+ "version": "2026.4.2012",
4
4
  "description": "📡 P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications",
5
5
  "corifeus": {
6
6
  "description-snap": "P3X Redis UI: A highly functional and convenient database GUI that fits in your pocket, accessible on both responsive web and desktop applications",
@@ -33,7 +33,7 @@
33
33
  "publish-electron-snap-arm64": "rimraf dist && electron-builder --linux snap -p never --arm64",
34
34
  "publish-electron-yml": "node ./node_modules/corifeus-builder/src/utils/appimage/post-build.js",
35
35
  "publish-electron-flatpak": "rm -rf dist && electron-builder -p always --linux flatpak --x64 --arm64",
36
- "publish-macos": "electron-builder --mac --publish never",
36
+ "publish-macos": "electron-builder --mac --x64 --arm64 --publish never",
37
37
  "publish-macos-mas": "source ./secure/apple-env.sh && sudo rm -rf build && sudo rm -rf dist && mkdir build && cp secure/apple/p3xredisuimacos.provisionprofile ./build && cp -R artifacts/apple/entitlements/ ./build && electron-builder --mac mas --universal --publish never",
38
38
  "publish-macos-mas-save": "source ./secure/apple-env.sh && sudo rm -rf build && sudo rm -rf dist && cp -R artifacts/apple/entitlements/ ./build && cp secure/apple/p3xredisuimacos.provisionprofile ./build && electron-builder --mac mas --universal --publish never"
39
39
  },
@@ -87,8 +87,8 @@
87
87
  "corifeus-utils": "^2026.4.135",
88
88
  "electron-store": "^11.0.2",
89
89
  "electron-updater": "^6.8.3",
90
- "p3x-redis-ui-material": "^2026.4.459",
91
- "p3x-redis-ui-server": "^2026.4.374"
90
+ "p3x-redis-ui-material": "^2026.4.461",
91
+ "p3x-redis-ui-server": "^2026.4.376"
92
92
  },
93
93
  "build-save": {
94
94
  "mac": {