Skip to content

Commit e3c482d

Browse files
Andrew Bakerclaude
andcommitted
Add CS Monitor — DevTools-style performance panel (v1.7.35)
Full-featured developer panel docked at the bottom of every admin and frontend page (manage_options only). Covers: - DB Queries: timing, plugin attribution, N+1 detection, duplicate detection, call-stack trace, EXPLAIN on demand, multi-column sort - HTTP/REST: outbound call timing, status, plugin attribution - Logs: reads wp-content/debug.log + in-request PHP errors, filterable by level/source; debug toggle stored in DB via ini_set (no wp-config.php editing) - Summary: plugin leaderboard, top queries, N+1 list, dupe groups - Header: tall pill toggle button, ? help popover, JSON export - Mobile: horizontal scroll on narrow viewports, query column shown Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent d27dff3 commit e3c482d

File tree

12 files changed

+2929
-29
lines changed

12 files changed

+2929
-29
lines changed

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
66

77
## [Unreleased]
88

9+
## [1.7.25] - 2026-03-23
10+
11+
### Fixed
12+
- `editor.js`: `onPasteCode` now handles both the toolbar Paste button and the browser's native paste event (Ctrl+V) — previously Ctrl+V completely bypassed `decodeClipboardText()`, meaning escape-sequence decoding never ran on keyboard pastes; textarea now has `onPaste` handler that calls `event.preventDefault()` and reads from `event.clipboardData` synchronously
13+
14+
## [1.7.24] - 2026-03-23
15+
16+
### Fixed
17+
- `editor.js`: `decodeClipboardText()` replaced broken `JSON.parse` approach with direct regex-based decoding — `JSON.parse` was silently failing when `\u0022` decoded to `"` inside the JSON string, causing `\n` to be stored as literal `n` and `\u0022` to be stored as literal `u0022` in the database; now handles `\n`, `\t`, `\r`, `\\`, `\uXXXX`, and bare `uXXXX` correctly
18+
- `editor.js`: Added `(attributes.content || '')` null guard on `.split('\n')` row calculation to prevent TypeError on null content
19+
- `cs-code-block.php`: Removed `opacity:.5;pointer-events:none` inline styles from the Migrate All button — inline styles were never cleared when the button was re-enabled via JS, leaving it visually disabled
20+
- `assets/cs-code-migrate.css`: Added `.cs-btn-orange:disabled` and `.cs-btn-primary:disabled` CSS rules to handle disabled state declaratively
21+
- `cs-code-block.php`: Fixed `printf()` in `render_migrate_panel()` — outer format string was wrapped in `esc_html__()` while `%s` was replaced with raw HTML; outer string now uses `__()` with a `phpcs:ignore` annotation
22+
- `blocks/code/block.json`: Synced `version` field from `1.7.18` to `1.7.23`
23+
924
## [1.7.21] - 2026-03-22
1025

1126
### Fixed

assets/cs-admin-tabs.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
color: #1a2332;
1313
max-width: 1200px;
1414
margin-top: 10px;
15+
padding-right: 20px;
1516
}
1617

1718
/* ── Banner ─────────────────────────────────────── */

assets/cs-code-block.css

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,22 +61,30 @@
6161
border-bottom: 1px solid var(--cs-toolbar-border);
6262
}
6363

64-
/* 3. BRAND LINK */
65-
.cs-code-brand {
64+
/* 3. BRAND LINK — use wrapper specificity to override theme a{color} rules */
65+
.cs-code-wrapper .cs-code-brand {
6666
font-size: 0.65rem;
6767
font-weight: 700;
6868
letter-spacing: 0.05em;
6969
text-transform: uppercase;
7070
text-decoration: none;
7171
flex-shrink: 0;
72-
color: #61afef;
72+
color: #61afef !important;
7373
opacity: 0.85;
7474
transition: opacity 0.15s ease, color 0.15s ease;
7575
}
7676

77-
.cs-code-brand:hover {
77+
.cs-code-wrapper .cs-code-brand:hover {
7878
opacity: 1;
79-
color: #0fb8e0;
79+
color: #0fb8e0 !important;
80+
}
81+
82+
.cs-code-wrapper[data-active-theme="light"] .cs-code-brand {
83+
color: #2271b1 !important;
84+
}
85+
86+
.cs-code-wrapper[data-active-theme="light"] .cs-code-brand:hover {
87+
color: #135e96 !important;
8088
}
8189

8290
.cs-brand-bolt {

assets/cs-code-migrate.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,14 @@
400400
margin: 0 5px;
401401
}
402402

403+
/* Disabled button state */
404+
.cs-btn-orange:disabled,
405+
.cs-btn-primary:disabled {
406+
opacity: 0.5;
407+
pointer-events: none;
408+
cursor: not-allowed;
409+
}
410+
403411
/* Loading spinner */
404412
.cs-loading {
405413
display: inline-flex;

0 commit comments

Comments
 (0)