feat(premiere-plugin): ZXP + Windows installer for the Premiere panel #24
No reviewers
Labels
No labels
bug
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: WildDragonLLC/dragonflight#24
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/premiere-installer"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Replaces the manual robocopy / install-windows.ps1 flow with two real distributable artifacts an editor can double-click:
dragonflight-premiere-panel-<version>.zxp(35 KB)dragonflight-premiere-panel-<version>-windows-setup.exe(2 MB)The Windows installer copies the bundle to
%APPDATA%\Adobe\CEP\extensions, setsPlayerDebugMode=1for CSXS 8 through 13, registers itself in Add/Remove Programs, and offers to remove any legacycom.wilddragon.mam.panelfolder so editors don't end up with duplicate panels in Window → Extensions.The
.zxpis signed with a self-signed cert (build/cert/dragonflight-selfsigned.p12, valid until 2051). The cert + passphrase are committed so Adobe's ZXP signature-continuity rule is satisfied across builds — rotating the cert would break upgrade-in-place for every editor.Also migrates the CEP bundle ID from
com.wilddragon.mam.panel→net.wilddragon.dragonflight.panelto match the wild-dragon → dragonflight repo rename. Manifest,.debug,CSInterface.js, README, QUICK_START, PLUGIN_FILES, and the growing-files quickstart all updated.Build
Requires Node 18+ and Inno Setup 6 (
winget install JRSoftware.InnoSetup). The.zxpalone can be built without Inno Setup on any OS vianode build-zxp.mjs.What's in this PR
build-all.ps1,build-zxp.mjs,installer.iss,build-installer.ps1,package.json,cert/.exeservices/premiere-plugin/build/is tracked despite root-levelbuild/globVerified
npm install && powershell -File build-all.ps1produced both artifacts cleanly on Windows 11 + Node 25 + Inno Setup 6.7.2.zxp.verify({skipChecks: true, info: true})—Signature verified successfully, cert valid 2026-05-23 → 2051-05-17.META-INF/signatures.xml,mimetype, full panel bundle, nobuild/cruft leaked in.Not verified
.exewas not actually executed on this machine — it built cleanly via ISCC but no install/uninstall test ran. First editor to install it is the smoke test; uninstall reverts the file copy but intentionally leavesPlayerDebugModealone (other CEP panels need it).Test plan
.exeon a Windows editor box that has the legacycom.wilddragon.mam.panelinstall — confirm the migration checkbox appears and removing the old folder works.zxpvia Anastasiy's on macOS, rundefaults write com.adobe.CSXS.11 PlayerDebugMode 1, restart Premiere, confirm panel loads%APPDATA%\Adobe\CEP\extensions\net.wilddragon.dragonflight.panel\is goneThe Premiere-running check passed a Boolean to Exec's var ResultCode (Integer) parameter — Pascal type error. The block also did nothing useful: it only checked but never warned or prompted. Drop it. {InstallDelete] of the legacy folder still works through the Tasks checkbox + Check function. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>End-to-end debugging against a live Premiere Pro 2025 + auth-enabled mam-api surfaced four real bugs that made v1.0.0 install cleanly but never load, plus the missing auth flow. All four are fixed and the panel is verified connected (status dot green, Reconnect button shown, project list populated). - manifest.xml: a comment in the <Resources> block contained "--" (inside "--enable-nodejs"/"--mixed-context"), which is illegal per the XML spec. CEP 12's strict parser logged ERROR XPATH Double hyphen within comment and skipped the panel entirely. Comment rewritten without double hyphens. - manifest.xml: lacked the Version="X.Y" attribute on <ExtensionManifest> and used a non-standard AbstractionLayers/empty <ExtensionList/> structure. CEP rejected it with Unsupported Manifest version '' Manifest rewritten to the standard CSXS 7.0 schema (ExtensionList + DispatchInfoList + RequiredRuntimeList), matching the working AMPP panel template. - main.js: re-declared `const csInterface = new CSInterface()` at top level even though CSInterface.js already declared the same binding. CEP 12 shares script-realm lexical scope across <script> tags, so the second const threw Identifier 'csInterface' has already been declared The throw fired before setupEventListeners(), so the Connect button's click handler was never attached. This is the root cause of the original "clicking Connect does nothing" symptom; everything else was secondary. Removed the duplicate declaration; main.js now uses the binding from CSInterface.js. - No auth support against AUTH_ENABLED=true servers. mam-api supports Bearer tokens (POST /api/v1/tokens), so added: • API token input field (password-masked) next to Server URL • localStorage persistence on every keystroke • window.fetch monkey-patch that injects Authorization: Bearer <token> on every request whose URL starts with the configured server. Signed S3 download URLs are NOT touched. Drive-by fixes that came out of the same debugging pass: - Server URL input listener was 'change' (fires on blur); switched to 'input' so typing-then-clicking-Connect immediately commits. - restoreSettings() now strips trailing slashes from the stored URL so older saved values like 'http://host/' stop producing //api/v1 404s. - CSS selector `input[type="text"].server-url` didn't match the new password input → the token field was unstyled and effectively invisible. Generalized to `input.server-url`; restructured the connection bar into `.connection-controls--stacked` (flex column) of two `.server-input-row` rows so two input fields fit cleanly. - Build scripts now parse ExtensionBundleVersion from both element form (<ExtensionBundleVersion>X</...>) and attribute form (ExtensionBundleVersion="X"), since the manifest rewrite switched schemas. Version bumped 1.0.0 → 1.0.1. New artifacts committed at services/premiere-plugin/build/releases/v1.0.1/ (.exe 2 MB, .zxp 35 KB). v1.0.0 left in place so editors who downloaded it can verify they're on the broken version. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>Pull request closed