Use $cpanel->header() and $cpanel->footer() from LiveAPI to wrap
plugin content in cPanel's standard layout with sidebar navigation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cPanel's live engine provides the HTTP headers and page chrome
(sidebar, topbar). CGI should not output its own Content-Type.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
__PACKAGE__->run() was called before my variables were declared,
so $MAIN_CONFIG and $REMOTES_DIR were undef when action methods ran.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cPanel's live engine requires .live.cgi files to create a
Cpanel::LiveAPI connection. Without it, the engine cannot
establish communication with the CGI subprocess.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cPanel's adminbin framework requires the module to be directly
executable with a shebang line, and Script::Call modules need
__PACKAGE__->run() to bootstrap.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Variables declared with 'my' inside open3() were scoped to that call,
causing 'Global symbol requires explicit package name' errors.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The SVG had negative coordinates that rendered off-screen in cPanel's
sprite sheet. Export to clean 48x48 PNG (2.8KB) instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Server box with data rows (navy) and circular restore arrow (copper)
matching gniza brand colors.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace 378KB VTracer-traced logo with a clean 1KB 48x48 SVG icon
for cPanel's icon system. Update install.json, install.sh, and
uninstall.sh to reference the new icon. Also update README with
skip-suspended flag and schedule config fields.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add fallback write when O_EXCL _safe_write fails for CSRF tokens
(ensures token is always persisted to disk)
- Update SMTP test JS to sync new CSRF token into main form hidden field
(prevents stale token after SMTP test consumes the original)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>