arblant
BlueKnight-Panel-Marvel / deminified / MANUAL_ANALYSIS.md
MANUAL_ANALYSIS.md69 lines · 3.3 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
# Manual Analysis: v15.7 (minified) vs v13.0 (readable)

## Executive Summary
v15.7 is a **minified build** of essentially the same codebase as v13.0.
The version bump (13.0 → 15.7) does NOT indicate major new features —
both are built on BlueKnight Panel 5.2.4 with the Marvel/Arblant UI mod.

## Key Findings

### 1. Same Core
- Both report `version: "5.2.4"` (BlueKnight base)
- Same TAB_ROUTES (protocols, warp, subscriptions, dns, routing, settings, overview, password, nodeshare)
- Same APP_CONFIG structure (bk_session cookie, wd_session legacy)
- Same UI strings ("Default Dev Password Active", "Welcome to BlueKnight Panel", etc.)

### 2. Theme System (present in both)
- 9 glass theme backgrounds: theme-bg-1.webp through theme-bg-9.webp
- "Randomize Theme" feature (5 occurrences in both)
- ~940 `--theme-*` CSS variables (934 in v13, 945 in v15.7)
- Glass morphism design language

### 3. Arblant Branding (present in both)
- 4 occurrences of "arblant"/"Arblant" in both versions
- Marvel Multiverse Edition tagline

### 4. RTL Support (present in both)
- Both contain RTL markup
- Persian RTL engine via CSS (no hardcoded Persian text in either)

### 5. Differences (minor)
- v15.7 has 11 additional `--theme-*` variables (945 vs 934)
- v15.7 is 123KB smaller (minification: no whitespace, short names, no comments)
- v13.0 has 231 readable function names; v15.7 has minified equivalents

## Function Mapping (confirmed)
| v15.7 (minified) | v13.0 (readable) | Purpose |
|------------------|------------------|---------|
| `ki` | `renderDashboardPage` | Main panel HTML renderer |
| `Di` | `handlePanel` | Main panel request handler |
| `yo` | `dnsQuestion` | DNS question builder |
| `vo` | `TYPES` | DNS record types |

## Architecture (from v13.0 readable source)
```
handlePanel(request, env)
  ├── Check password configured → redirect to /panel/setup
  ├── Check session cookie → redirect to /panel/login  
  ├── Get settings from KV
  ├── Determine initialTab from URL path (TAB_ROUTES)
  ├── Handle POST (settings changes)
  └── renderDashboardPage({host, isDefaultPassword, flashMessage, settings, initialTab})
        ├── Sidebar with nav buttons (switchTab)
        ├── Tab panes (overview, protocols, warp, subscriptions, dns, routing, settings)
        └── Client-side JS (switchTab function)
```

## Implications for Feature Work
1. **Use v13.0 as primary reference** — it documents the full panel logic
2. **String-replacement on final HTML still works** but now I understand WHY
3. **For native modifications**: map the target function via v13.0, find minified equivalent in v15.7 by distinctive strings, then patch precisely
4. **New code between versions is minimal** — v13.0 covers ~95% of v15.7's logic

## Update 2026-10-20: v15-readable obtained
- File: `v15-readable.js` (1.34MB, 7,820 lines, node --check OK)
- Source: Claude reformatted the minified v15 with esbuild (indentation + line breaks)
- NOT original source: server functions still have short names (~170), comments gone
- Readable: client JS/CSS/HTML in template literals, FA/EN texts, translation dict, studio settings, 9 WebP images
- This is now the PRIMARY reference for v15.7 work (replaces v13.0 for v15-specific features)
- v13.0 remains useful for mapping short names to original intent (e.g. yo=dnsQuestion)