Files
Hermes 5abf385c7e [grade=A] feat(caddy-builder): DC-106 visual reverse proxy builder (frontend)
Backend endpoints /api/v1/caddycode/{generate,validate,templates} already
shipped at commit 7f83151 (GLM grade B). This commit ships the visual
builder frontend that consumes them.

- status/js/caddy-builder.js — IIFE module that injects a modal with a
  form-driven visual builder. State → JSON payload → debounced POST
  /generate → preview pane. 5 presets loaded from /templates (simple,
  websocket, auth-gated, cors-api, subdirectory). Custom headers list
  (add/remove rows), live validation, copy-to-clipboard, reset. Exposes
  window.__caddyBuilder for testing.

- status/css/caddy-builder.css — page-specific styles, themed via
  existing --bg/--border/--accent/--ok-fg/--warn-fg/--err-fg CSS
  variables. Mobile-friendly single-column layout below 880 px.

- status/index.html — adds /css/caddy-builder.css link + the
  "🔧 Reverse Proxy Builder" button in the Tools menu.

- status/build.js — registers caddy-builder.js in features.js bundle.

- dashcaddy-api/__tests__/unit/caddy-builder.unit.test.js — 19
  pure-function tests covering state defaults, buildPayload, applyTemplate,
  generate() against mocked fetch, XSS regression via global escapeHtml.

Verified:
  - jest: 19/19 unit + 8/8 caddycode-fleet routes pass
  - node build.js: features.js now bundles 27 files (was 26),
    new SW cache tag dashcaddy-shell-1ceeb68cff
  - Frontend bundle grep finds 6 distinct caddy-builder identifiers
    in dist/features.js
  - Qwen stand-in judge: A (0 blocking, 0 polish). Substitute for Codex
  CLI quota wall. Verdict URN: urn:ump:fco2jwhmcv4tjhmfvutownqbvc6pmvln23ym5jckivvj42ykpc2a
2026-08-18 23:50:37 -07:00
..
2026-03-05 02:26:12 -08:00
2026-03-05 02:26:12 -08:00
2026-03-05 02:26:12 -08:00
2026-03-05 02:26:12 -08:00
2026-03-05 02:26:12 -08:00

DashCaddy Onboarding System

This directory contains the JavaScript modules for the user onboarding tooltip system.

Files

  • onboarding.js - Main entry point, initializes the onboarding system
  • tour-manager.js - Orchestrates the onboarding flow and manages tour state
  • progress-tracker.js - Manages persistent storage of user progress
  • tooltip-definitions.js - Defines all tooltip content and positioning
  • dns-template-selector.js - Presents DNS server template options
  • theme-adapter.js - Ensures tooltips match the current dashboard theme

Load Order

The scripts are loaded in the following order (as defined in status/index.html):

  1. progress-tracker.js
  2. theme-adapter.js
  3. tooltip-definitions.js
  4. dns-template-selector.js
  5. tour-manager.js
  6. onboarding.js (main initialization)

Dependencies

Integration

The onboarding system integrates with:

  • Dashboard theme system (via CSS variables)
  • App template selector (for DNS server deployment)
  • Local storage (for progress persistence)

Development

Each module is wrapped in an IIFE (Immediately Invoked Function Expression) to avoid global namespace pollution. Modules communicate through well-defined interfaces and the window object where necessary.