Release Ops

Release Package

Release notes, known issues, rollback, manifest, checksums, and signing/trust status for the current paid-beta candidate.

Version 0.1.0-alpha.83 Ready
Desktop evidence version 0.1.0-alpha.83 Ready
Candidate verdict Internal Alpha Only Ready
Candidate readiness 58% Ready
Paid beta allowed No Ready
Evidence status Release evidence generated for current package version Ready
Trust decision Signed Or Store Evidence Required Ready
Executable SHA256 6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863 Ready
Installer rehearsal Unsigned installer rehearsal artifact present for internal QA only Ready
Signing status Unsigned internal alpha evidence only Ready
Release output C:\Users\porte\OneDrive\Desktop\NyrA\release\0.1.0-alpha.83\win-unpacked Ready
Support path support@support.porterlabz.com Ready

Release Candidate Preflight

Open preflight CSV

Run npm run release:candidate:preflight to refresh the version-specific paid-beta/internal-alpha verdict from the latest dashboard, release, cloud, handoff, marketing, visual, billing, support, and legal state.

Release Blocker Queue

StatusSeverityOwnerBlockerNext Step
blocked P0 User + Codex Windows signing inputs are ready for a trusted installer build Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.
blocked P0 User + Codex Paid beta installer is signed or store-trusted Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.
blocked P0 User + Codex Deployability preflight has no P0 blockers 3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.
blocked P0 User Dashboard handoffs are cleared 3 user handoffs and 0 secret-store handoffs are still waiting.
blocked P1 User + Codex Marketing campaign has final publish values Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.
blocked P1 Codex Visuals match the shipping app Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.
blocked P0 User + Codex Billing live rehearsal inputs are ready After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.
blocked P0 User Support and legal review are ready Complete attorney/accountant review for the paid beta.

All Checks

StatusSeverityOwnerCheckDetail
pass P0 Codex Package version agrees with dashboard version package.json and dashboard both use 0.1.0-alpha.83.
pass P0 Codex Product metadata exists NyrA Swarm Little Buddy / com.porter.nyra.swarm-little-buddy
pass P0 Codex Release documents exist for this version Release runbook, notes, known issues, rollback, and signing decision docs exist.
pass P0 Codex Windows installer target is configured NSIS setup artifact target is configured.
pass P0 Codex Release evidence exists for this version Release manifest and SHA256SUMS match the package version.
blocked P0 User + Codex Windows signing inputs are ready for a trusted installer build Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.
pass P0 User + Codex Packaged Windows app launches without policy block Windows packaged launch gate is Packaged EXE Launchable But Unsigned.
blocked P0 User + Codex Paid beta installer is signed or store-trusted Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.
blocked P0 User + Codex Deployability preflight has no P0 blockers 3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.
blocked P0 User Dashboard handoffs are cleared 3 user handoffs and 0 secret-store handoffs are still waiting.
pass P0 User + Codex Cloud command center is deploy-ready Cloudflare Worker/Pages/D1 command-center deploy preflight is ready.
pass P0 User + Codex Android companion points at a stable hosted bridge without a bundled shared token Android companion release metadata points at a stable hosted bridge URL without a bundled shared token.
pass P1 Codex Automation policy matches the operator decision All unattended NyrA jobs are intentionally paused; definitions and prompt coverage remain ready for an explicit future restart.
blocked P1 User + Codex Marketing campaign has final publish values Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.
blocked P1 Codex Visuals match the shipping app Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.
blocked P0 User + Codex Billing live rehearsal inputs are ready After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.
blocked P0 User Support and legal review are ready Complete attorney/accountant review for the paid beta.
pass P0 User Business identity and pricing are set Business name, monthly price, and hosted AI cap are saved.
pass P1 Codex Desktop beta and future app version are mapped Desktop beta, mobile/app companion boundary, and beta exit criteria are mapped.

Release Candidate JSON

{
  "schemaVersion": 1,
  "checkedAt": "2026-07-18T13:47:11.739Z",
  "app": "NyrA Swarm Little Buddy",
  "productName": "NyrA Swarm Little Buddy",
  "appId": "com.porter.nyra.swarm-little-buddy",
  "version": "0.1.0-alpha.83",
  "status": "INTERNAL_ALPHA_ONLY",
  "label": "Internal Alpha Only",
  "target": "Paid beta",
  "paidBetaAllowed": false,
  "internalAlphaAllowed": true,
  "readinessPercent": 58,
  "passCount": 11,
  "blockedCount": 8,
  "failCount": 0,
  "warningCount": 0,
  "checks": [
    {
      "id": "package-version",
      "label": "Package version agrees with dashboard version",
      "status": "pass",
      "owner": "Codex",
      "severity": "P0",
      "detail": "package.json and dashboard both use 0.1.0-alpha.83.",
      "nextStep": ""
    },
    {
      "id": "product-metadata",
      "label": "Product metadata exists",
      "status": "pass",
      "owner": "Codex",
      "severity": "P0",
      "detail": "NyrA Swarm Little Buddy / com.porter.nyra.swarm-little-buddy",
      "nextStep": ""
    },
    {
      "id": "release-docs",
      "label": "Release documents exist for this version",
      "status": "pass",
      "owner": "Codex",
      "severity": "P0",
      "detail": "Release runbook, notes, known issues, rollback, and signing decision docs exist.",
      "nextStep": ""
    },
    {
      "id": "windows-installer-target",
      "label": "Windows installer target is configured",
      "status": "pass",
      "owner": "Codex",
      "severity": "P0",
      "detail": "NSIS setup artifact target is configured.",
      "nextStep": ""
    },
    {
      "id": "release-evidence",
      "label": "Release evidence exists for this version",
      "status": "pass",
      "owner": "Codex",
      "severity": "P0",
      "detail": "Release manifest and SHA256SUMS match the package version.",
      "nextStep": ""
    },
    {
      "id": "windows-signing-readiness",
      "label": "Windows signing inputs are ready for a trusted installer build",
      "status": "blocked",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
      "nextStep": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer."
    },
    {
      "id": "windows-launchability",
      "label": "Packaged Windows app launches without policy block",
      "status": "pass",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "Windows packaged launch gate is Packaged EXE Launchable But Unsigned.",
      "nextStep": ""
    },
    {
      "id": "trusted-installer",
      "label": "Paid beta installer is signed or store-trusted",
      "status": "blocked",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
      "nextStep": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta."
    },
    {
      "id": "deployability",
      "label": "Deployability preflight has no P0 blockers",
      "status": "blocked",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
      "nextStep": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money."
    },
    {
      "id": "handoffs",
      "label": "Dashboard handoffs are cleared",
      "status": "blocked",
      "owner": "User",
      "severity": "P0",
      "detail": "3 user handoffs and 0 secret-store handoffs are still waiting.",
      "nextStep": "3 user handoffs and 0 secret-store handoffs are still waiting."
    },
    {
      "id": "cloud-command-center",
      "label": "Cloud command center is deploy-ready",
      "status": "pass",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "Cloudflare Worker/Pages/D1 command-center deploy preflight is ready.",
      "nextStep": ""
    },
    {
      "id": "stable-mobile-bridge",
      "label": "Android companion points at a stable hosted bridge without a bundled shared token",
      "status": "pass",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "Android companion release metadata points at a stable hosted bridge URL without a bundled shared token.",
      "nextStep": ""
    },
    {
      "id": "daily-automations",
      "label": "Automation policy matches the operator decision",
      "status": "pass",
      "owner": "Codex",
      "severity": "P1",
      "detail": "All unattended NyrA jobs are intentionally paused; definitions and prompt coverage remain ready for an explicit future restart.",
      "nextStep": ""
    },
    {
      "id": "marketing-final-values",
      "label": "Marketing campaign has final publish values",
      "status": "blocked",
      "owner": "User + Codex",
      "severity": "P1",
      "detail": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
      "nextStep": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values."
    },
    {
      "id": "visuals-final",
      "label": "Visuals match the shipping app",
      "status": "blocked",
      "owner": "Codex",
      "severity": "P1",
      "detail": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
      "nextStep": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing."
    },
    {
      "id": "billing-live-rehearsal",
      "label": "Billing live rehearsal inputs are ready",
      "status": "blocked",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
      "nextStep": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight."
    },
    {
      "id": "support-and-legal",
      "label": "Support and legal review are ready",
      "status": "blocked",
      "owner": "User",
      "severity": "P0",
      "detail": "Complete attorney/accountant review for the paid beta.",
      "nextStep": "Complete attorney/accountant review for the paid beta."
    },
    {
      "id": "business-pricing",
      "label": "Business identity and pricing are set",
      "status": "pass",
      "owner": "User",
      "severity": "P0",
      "detail": "Business name, monthly price, and hosted AI cap are saved.",
      "nextStep": ""
    },
    {
      "id": "app-version-roadmap",
      "label": "Desktop beta and future app version are mapped",
      "status": "pass",
      "owner": "Codex",
      "severity": "P1",
      "detail": "Desktop beta, mobile/app companion boundary, and beta exit criteria are mapped.",
      "nextStep": ""
    }
  ],
  "blockers": [
    {
      "id": "windows-signing-readiness",
      "status": "blocked",
      "severity": "P0",
      "owner": "User + Codex",
      "label": "Windows signing inputs are ready for a trusted installer build",
      "detail": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
      "nextStep": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer."
    },
    {
      "id": "trusted-installer",
      "status": "blocked",
      "severity": "P0",
      "owner": "User + Codex",
      "label": "Paid beta installer is signed or store-trusted",
      "detail": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
      "nextStep": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta."
    },
    {
      "id": "deployability",
      "status": "blocked",
      "severity": "P0",
      "owner": "User + Codex",
      "label": "Deployability preflight has no P0 blockers",
      "detail": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
      "nextStep": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money."
    },
    {
      "id": "handoffs",
      "status": "blocked",
      "severity": "P0",
      "owner": "User",
      "label": "Dashboard handoffs are cleared",
      "detail": "3 user handoffs and 0 secret-store handoffs are still waiting.",
      "nextStep": "3 user handoffs and 0 secret-store handoffs are still waiting."
    },
    {
      "id": "marketing-final-values",
      "status": "blocked",
      "severity": "P1",
      "owner": "User + Codex",
      "label": "Marketing campaign has final publish values",
      "detail": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
      "nextStep": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values."
    },
    {
      "id": "visuals-final",
      "status": "blocked",
      "severity": "P1",
      "owner": "Codex",
      "label": "Visuals match the shipping app",
      "detail": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
      "nextStep": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing."
    },
    {
      "id": "billing-live-rehearsal",
      "status": "blocked",
      "severity": "P0",
      "owner": "User + Codex",
      "label": "Billing live rehearsal inputs are ready",
      "detail": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
      "nextStep": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight."
    },
    {
      "id": "support-and-legal",
      "status": "blocked",
      "severity": "P0",
      "owner": "User",
      "label": "Support and legal review are ready",
      "detail": "Complete attorney/accountant review for the paid beta.",
      "nextStep": "Complete attorney/accountant review for the paid beta."
    }
  ],
  "nextCriticalChecks": [
    {
      "id": "windows-signing-readiness",
      "label": "Windows signing inputs are ready for a trusted installer build",
      "status": "blocked",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer.",
      "nextStep": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer."
    },
    {
      "id": "trusted-installer",
      "label": "Paid beta installer is signed or store-trusted",
      "status": "blocked",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta.",
      "nextStep": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta."
    },
    {
      "id": "deployability",
      "label": "Deployability preflight has no P0 blockers",
      "status": "blocked",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money.",
      "nextStep": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money."
    },
    {
      "id": "handoffs",
      "label": "Dashboard handoffs are cleared",
      "status": "blocked",
      "owner": "User",
      "severity": "P0",
      "detail": "3 user handoffs and 0 secret-store handoffs are still waiting.",
      "nextStep": "3 user handoffs and 0 secret-store handoffs are still waiting."
    },
    {
      "id": "marketing-final-values",
      "label": "Marketing campaign has final publish values",
      "status": "blocked",
      "owner": "User + Codex",
      "severity": "P1",
      "detail": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values.",
      "nextStep": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values."
    },
    {
      "id": "visuals-final",
      "label": "Visuals match the shipping app",
      "status": "blocked",
      "owner": "Codex",
      "severity": "P1",
      "detail": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing.",
      "nextStep": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing."
    },
    {
      "id": "billing-live-rehearsal",
      "label": "Billing live rehearsal inputs are ready",
      "status": "blocked",
      "owner": "User + Codex",
      "severity": "P0",
      "detail": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight.",
      "nextStep": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight."
    },
    {
      "id": "support-and-legal",
      "label": "Support and legal review are ready",
      "status": "blocked",
      "owner": "User",
      "severity": "P0",
      "detail": "Complete attorney/accountant review for the paid beta.",
      "nextStep": "Complete attorney/accountant review for the paid beta."
    }
  ],
  "evidence": {
    "packageJson": "package.json",
    "builderConfig": "electron-builder.json5",
    "releaseManifest": "docs/release/builds/0.1.0-alpha.83/release-manifest.json",
    "releaseChecksums": "docs/release/builds/0.1.0-alpha.83/SHA256SUMS.txt",
    "androidCurrentManifest": "release/current/android/manifest.json",
    "deployabilitySnapshot": "docs/launch_command_center/deployability-snapshot.json",
    "handoffReadiness": "docs/launch_command_center/handoff-readiness.json",
    "cloudDeployPreflight": "docs/launch_command_center/cloud-deploy-preflight.json",
    "releaseTrustPlan": "docs/launch_command_center/release-trust-plan.json",
    "windowsSigningReadiness": "docs/launch_command_center/windows-signing-readiness.json",
    "windowsReleaseLaunch": "docs/launch_command_center/windows-release-launch-check.json",
    "report": "docs/launch_command_center/RELEASE_CANDIDATE_PREFLIGHT.md",
    "dashboard": "docs/launch_command_center/pages/release-package.html"
  },
  "nextActions": [
    {
      "owner": "User + Codex",
      "action": "Windows signing readiness is Microsoft Artifact Signing Handoffs Missing. Run npm run release:windows-signing:preflight, then finish the listed Microsoft Artifact Signing or PFX handoffs before building a paid beta installer."
    },
    {
      "owner": "User + Codex",
      "action": "Choose the release trust path and produce signed or store-trusted installer evidence before paid beta."
    },
    {
      "owner": "User + Codex",
      "action": "3 P0 deployability blockers remain. Use the Deployability page and Handoffs page before live money."
    },
    {
      "owner": "User",
      "action": "3 user handoffs and 0 secret-store handoffs are still waiting."
    },
    {
      "owner": "User + Codex",
      "action": "Final publication still needs Attorney/accountant review approval for paid beta; Final screenshots approved from the shipping build; Recorded 90-second product demo and 30-second ad using final screenshots and launch values."
    },
    {
      "owner": "Codex",
      "action": "Final screenshots, diagrams, and demo visuals must match the shipping app before paid beta marketing."
    },
    {
      "owner": "User + Codex",
      "action": "After the legal and release-trust gates clear, switch rehearsal mode to live and run the guarded final preflight."
    },
    {
      "owner": "User",
      "action": "Complete attorney/accountant review for the paid beta."
    },
    {
      "owner": "User",
      "action": "Attorney/accountant review approved for paid beta: Mark Approved only after attorney/accountant review clears paid beta.",
      "dashboardPage": "pages/billing-rehearsal.html",
      "dashboardField": "billingRehearsal.attorneyReviewStatus"
    },
    {
      "owner": "User + Codex",
      "action": "Billing rehearsal mode set to live for final money preflight: Switch to live only after test-mode rehearsal, legal, support, and Stripe gates pass.",
      "dashboardPage": "pages/billing-rehearsal.html",
      "dashboardField": "billingRehearsal.mode"
    }
  ]
}

Release Trust Decision Form

Open plan CSV

Do not paste certificate passwords, private keys, token PINs, PFX files, Partner Center secrets, or signing credentials into this dashboard. Use a secret store or temporary signing shell.

Release Trust Pack

Open trust pack

Use the Release Trust Pack for the actionable channel/signing handoffs, safe command sequence, evidence slots, and daily agent queue.

Signing And Distribution Paths

PathDashboard ValueBest ForUser HandoffCodex ActionPaid Beta Gate
Direct signed installer Direct download beta Fastest controlled paid beta once a Windows code-signing certificate, timestamping, support, policies, and billing are ready. Choose legal publisher name, buy/verify code-signing certificate, keep private key or token out of the repo, and provide signing method through a secret store. Enable electron-builder signing, add signing verification evidence, package an installer, and publish checksum/install notes. Installer must verify as signed, release notes must name the support path, and checkout stays disabled until deployability has no P0 blockers.
Microsoft Store or store-trusted channel Microsoft Store Higher customer trust and store-managed distribution when Partner Center, package identity, listing assets, screenshots, and review are ready. Create/confirm Partner Center account, reserve app name, complete identity/tax/profile requirements, and provide store package/listing decisions. Map Store package identity, listing checklist, screenshots, version metadata, policies, installer/package notes, and submission evidence. Store account, first manual submission, package/listing assets, policy URLs, support path, and billing posture must match the shipping app.
Both direct signed and Microsoft Store Both Direct beta speed plus later store trust if support capacity can handle two release channels. Approve both distribution paths and keep one version/source-of-truth policy for support, rollback, and known issues. Track channel-specific install, update, rollback, support, and screenshot evidence in the command center. Both channels must show the same version, policies, support path, checksums where applicable, and rollback plan.
Hold unsigned internal alpha Hold Internal QA only when the product is still changing or business/support/legal/payment handoffs are not ready. Acknowledge this is not a paid public release path. Keep generating clean-build evidence and block paid checkout/distribution. Cannot be used for paid public beta.

Release Trust Plan JSON

{
  "schemaVersion": 1,
  "generatedAt": "2026-07-18T13:46:29.866Z",
  "status": "SIGNED_OR_STORE_EVIDENCE_REQUIRED",
  "label": "Signed Or Store Evidence Required",
  "productName": "NyrA Swarm Little Buddy",
  "appId": "com.porter.nyra.swarm-little-buddy",
  "version": "0.1.0-alpha.83",
  "selectedReleaseChannel": "Direct download beta + Microsoft Store prep",
  "selectedCodeSigningDecision": "Microsoft Trusted Signing first",
  "currentBuild": {
    "artifactTarget": "nsis",
    "signingConfigured": false,
    "resourceEditingEnabled": true,
    "signingStatus": "Unsigned internal alpha evidence only",
    "signAndEditExecutable": "enabled-or-default",
    "signExecutable": "disabled"
  },
  "recommendedFirstMove": "Use direct signed installer for the first paid beta if the user buys a Windows code-signing certificate; keep Microsoft Store mapped as a later or parallel trust channel.",
  "dashboardFields": [
    "decisions.releaseChannel",
    "decisions.codeSigningDecision",
    "appVersion.publisherName",
    "releaseTrust.certificateStatus",
    "releaseTrust.storeDeveloperAccount",
    "releaseTrust.signingEvidencePath",
    "releaseTrust.installerStoragePath"
  ],
  "userInputs": [
    "Choose release channel: direct download beta, Microsoft Store, or both.",
    "Choose signing path: buy OV certificate, Microsoft Store first, or hold unsigned internal alpha.",
    "Enter publisher/legal name after business identity is chosen.",
    "Upload certificate purchase/verification proof or Partner Center readiness evidence into the code-signing slot.",
    "Do not paste certificate passwords, PFX private keys, token PINs, or Partner Center secrets into the dashboard."
  ],
  "codexActionsAfterDecision": [
    "Enable the matching electron-builder signing or store packaging path.",
    "Add a signature verification check for the produced installer/package.",
    "Regenerate release evidence and checksums from the signed/store-trusted artifact.",
    "Update release notes, known issues, support macros, and rollback plan with the chosen channel.",
    "Keep checkout disabled until deployability has no P0 blockers."
  ],
  "noGoRules": [
    "No paid beta customers receive the raw win-unpacked folder.",
    "No paid public release ships with an unsigned direct-download installer.",
    "No signing secrets, certificate passwords, token PINs, or Partner Center client secrets are stored in the repo or dashboard JSON.",
    "No release is marked beta-ready until support, policy URLs, billing rehearsal, rollback, and installer trust evidence agree."
  ],
  "decisionPaths": [
    {
      "path": "Direct signed installer",
      "dashboardValue": "Direct download beta",
      "bestFor": "Fastest controlled paid beta once a Windows code-signing certificate, timestamping, support, policies, and billing are ready.",
      "userHandoff": "Choose legal publisher name, buy/verify code-signing certificate, keep private key or token out of the repo, and provide signing method through a secret store.",
      "codexAction": "Enable electron-builder signing, add signing verification evidence, package an installer, and publish checksum/install notes.",
      "paidBetaGate": "Installer must verify as signed, release notes must name the support path, and checkout stays disabled until deployability has no P0 blockers."
    },
    {
      "path": "Microsoft Store or store-trusted channel",
      "dashboardValue": "Microsoft Store",
      "bestFor": "Higher customer trust and store-managed distribution when Partner Center, package identity, listing assets, screenshots, and review are ready.",
      "userHandoff": "Create/confirm Partner Center account, reserve app name, complete identity/tax/profile requirements, and provide store package/listing decisions.",
      "codexAction": "Map Store package identity, listing checklist, screenshots, version metadata, policies, installer/package notes, and submission evidence.",
      "paidBetaGate": "Store account, first manual submission, package/listing assets, policy URLs, support path, and billing posture must match the shipping app."
    },
    {
      "path": "Both direct signed and Microsoft Store",
      "dashboardValue": "Both",
      "bestFor": "Direct beta speed plus later store trust if support capacity can handle two release channels.",
      "userHandoff": "Approve both distribution paths and keep one version/source-of-truth policy for support, rollback, and known issues.",
      "codexAction": "Track channel-specific install, update, rollback, support, and screenshot evidence in the command center.",
      "paidBetaGate": "Both channels must show the same version, policies, support path, checksums where applicable, and rollback plan."
    },
    {
      "path": "Hold unsigned internal alpha",
      "dashboardValue": "Hold",
      "bestFor": "Internal QA only when the product is still changing or business/support/legal/payment handoffs are not ready.",
      "userHandoff": "Acknowledge this is not a paid public release path.",
      "codexAction": "Keep generating clean-build evidence and block paid checkout/distribution.",
      "paidBetaGate": "Cannot be used for paid public beta."
    }
  ],
  "sourceLinks": [
    [
      "Microsoft SignTool reference",
      "https://learn.microsoft.com/en-us/windows/win32/seccrypto/signtool"
    ],
    [
      "Microsoft MSIX SignTool package signing",
      "https://learn.microsoft.com/en-us/windows/msix/package/sign-app-package-using-signtool"
    ],
    [
      "Microsoft package identity overview",
      "https://learn.microsoft.com/en-us/windows/apps/desktop/modernize/package-identity-overview"
    ],
    [
      "Microsoft Store submission API for MSI/EXE",
      "https://learn.microsoft.com/en-us/windows/apps/publish/store-submission-api"
    ],
    [
      "electron-builder Windows code signing",
      "https://www.electron.build/docs/tutorials/code-signing-windows-apps-on-unix/"
    ]
  ],
  "outputs": {
    "decisionDoc": "docs/release/SIGNING_AND_DISTRIBUTION_DECISION.md",
    "planJson": "docs/launch_command_center/release-trust-plan.json",
    "planCsv": "docs/launch_command_center/release-trust-plan.csv",
    "dashboardPath": "docs/launch_command_center/pages/release-package.html"
  }
}

Installer Rehearsal

Use npm run release:installer:rehearsal to build an internal NSIS setup artifact, refresh release evidence, and verify installer checksums. This does not clear the paid-beta signing/store-trust gate.

[
  {
    "path": "builder-debug.yml",
    "absolutePath": "C:\\Users\\porte\\OneDrive\\Desktop\\NyrA\\release\\0.1.0-alpha.83\\builder-debug.yml",
    "sizeBytes": 7511,
    "sha256": "0cbcc3174837937807ab2aaebc941c29cc4acd0702e4797dd5a3a4222e8a6509",
    "signed": false,
    "signatureStatus": "NotApplicable",
    "signerSubject": "",
    "signerThumbprint": "",
    "paidBetaStatus": "Internal QA artifact only until signed or store-trusted distribution is verified."
  },
  {
    "path": "NyrA Swarm Little Buddy-Windows-0.1.0-alpha.83-Setup.exe",
    "absolutePath": "C:\\Users\\porte\\OneDrive\\Desktop\\NyrA\\release\\0.1.0-alpha.83\\NyrA Swarm Little Buddy-Windows-0.1.0-alpha.83-Setup.exe",
    "sizeBytes": 98879672,
    "sha256": "579dc28979b3b8917d82221b8e9100baac6e9b48dd1165712653e048093689a2",
    "signed": false,
    "signatureStatus": "NotSigned",
    "signerSubject": "",
    "signerThumbprint": "",
    "paidBetaStatus": "Internal QA artifact only until signed or store-trusted distribution is verified."
  },
  {
    "path": "NyrA Swarm Little Buddy-Windows-0.1.0-alpha.83-Setup.exe.blockmap",
    "absolutePath": "C:\\Users\\porte\\OneDrive\\Desktop\\NyrA\\release\\0.1.0-alpha.83\\NyrA Swarm Little Buddy-Windows-0.1.0-alpha.83-Setup.exe.blockmap",
    "sizeBytes": 104504,
    "sha256": "6981e1daa35b56b3dc4122ad37f53b28406465a9056ab5fbeddbe53272ff2166",
    "signed": false,
    "signatureStatus": "NotApplicable",
    "signerSubject": "",
    "signerThumbprint": "",
    "paidBetaStatus": "Internal QA artifact only until signed or store-trusted distribution is verified."
  }
]

Release Evidence

{
  "schemaVersion": 1,
  "generatedAt": "2026-07-17T04:57:28.061Z",
  "productName": "NyrA Swarm Little Buddy",
  "appId": "com.porter.nyra.swarm-little-buddy",
  "version": "0.1.0-alpha.83",
  "packageName": "desktop-buddy",
  "releaseDirectory": "C:\\Users\\porte\\OneDrive\\Desktop\\NyrA\\release\\0.1.0-alpha.83\\win-unpacked",
  "releaseRoot": "C:\\Users\\porte\\OneDrive\\Desktop\\NyrA\\release\\0.1.0-alpha.83",
  "executable": {
    "path": "NyrA Swarm Little Buddy.exe",
    "sizeBytes": 226913280,
    "sha256": "6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863",
    "signed": false,
    "signatureStatus": "NotSigned",
    "signerSubject": "",
    "signerThumbprint": ""
  },
  "installerArtifacts": [
    {
      "path": "builder-debug.yml",
      "absolutePath": "C:\\Users\\porte\\OneDrive\\Desktop\\NyrA\\release\\0.1.0-alpha.83\\builder-debug.yml",
      "sizeBytes": 7511,
      "sha256": "0cbcc3174837937807ab2aaebc941c29cc4acd0702e4797dd5a3a4222e8a6509",
      "signed": false,
      "signatureStatus": "NotApplicable",
      "signerSubject": "",
      "signerThumbprint": "",
      "paidBetaStatus": "Internal QA artifact only until signed or store-trusted distribution is verified."
    },
    {
      "path": "NyrA Swarm Little Buddy-Windows-0.1.0-alpha.83-Setup.exe",
      "absolutePath": "C:\\Users\\porte\\OneDrive\\Desktop\\NyrA\\release\\0.1.0-alpha.83\\NyrA Swarm Little Buddy-Windows-0.1.0-alpha.83-Setup.exe",
      "sizeBytes": 98879672,
      "sha256": "579dc28979b3b8917d82221b8e9100baac6e9b48dd1165712653e048093689a2",
      "signed": false,
      "signatureStatus": "NotSigned",
      "signerSubject": "",
      "signerThumbprint": "",
      "paidBetaStatus": "Internal QA artifact only until signed or store-trusted distribution is verified."
    },
    {
      "path": "NyrA Swarm Little Buddy-Windows-0.1.0-alpha.83-Setup.exe.blockmap",
      "absolutePath": "C:\\Users\\porte\\OneDrive\\Desktop\\NyrA\\release\\0.1.0-alpha.83\\NyrA Swarm Little Buddy-Windows-0.1.0-alpha.83-Setup.exe.blockmap",
      "sizeBytes": 104504,
      "sha256": "6981e1daa35b56b3dc4122ad37f53b28406465a9056ab5fbeddbe53272ff2166",
      "signed": false,
      "signatureStatus": "NotApplicable",
      "signerSubject": "",
      "signerThumbprint": "",
      "paidBetaStatus": "Internal QA artifact only until signed or store-trusted distribution is verified."
    }
  ],
  "androidArtifacts": [
    {
      "path": "NyrA-Android-alpha-aligned-0.1.0-alpha.83.apk",
      "absolutePath": "C:\\Users\\porte\\OneDrive\\Desktop\\NyrA\\release\\0.1.0-alpha.83\\android\\NyrA-Android-alpha-aligned-0.1.0-alpha.83.apk",
      "sizeBytes": 3428144,
      "sha256": "3b698bcddeeeaae2617b5bf2d3f73df8a67438a361d276a4475adb4d60da3b5d",
      "signed": false,
      "signerSha256": "",
      "signerDn": "",
      "paidBetaStatus": "Internal Android debug/intermediate QA artifact only; not for customer distribution."
    },
    {
      "path": "NyrA-Android-alpha-signed-0.1.0-alpha.83.apk",
      "absolutePath": "C:\\Users\\porte\\OneDrive\\Desktop\\NyrA\\release\\0.1.0-alpha.83\\android\\NyrA-Android-alpha-signed-0.1.0-alpha.83.apk",
      "sizeBytes": 3477419,
      "sha256": "b92bbedcc86066f17edc620a105b04a6cdbd284b6d767abdb1b88ecfb07791b0",
      "signed": true,
      "signerSha256": "19b615c8c76bacdcca00bc13f7bea7a64b92fe2d1b1805efd51d6f35566ac4f7",
      "signerDn": "CN=NyrA Alpha Install, OU=Internal Testing, O=Porter Labs LLC, L=Easley, ST=SC, C=US",
      "paidBetaStatus": "Porter Labs signed Android alpha APK for internal device and emulator testing; not a Play Store customer release."
    }
  ],
  "installerReadiness": {
    "hasSetupExe": true,
    "signedSetupPresent": false,
    "status": "Unsigned installer rehearsal artifact present for internal QA only",
    "paidBetaGate": "A paid beta still needs a signed installer or store-trusted distribution path before customers receive the setup artifact."
  },
  "fileCount": 75,
  "totalSizeBytes": 367635820,
  "signing": {
    "configured": false,
    "resourceEditingEnabled": true,
    "executableSigned": false,
    "installerSigned": false,
    "authenticodeStatus": "NotSigned",
    "signerSubject": "",
    "signerThumbprint": "",
    "status": "Unsigned internal alpha evidence only",
    "paidBetaGate": "A paid beta still needs a code-signing certificate or store-trusted distribution path."
  },
  "commandCenter": {
    "supportEmail": "nyrasupport@gmail.com",
    "releaseChannel": "Direct download beta + Microsoft Store prep",
    "codeSigningDecision": "Microsoft Trusted Signing first",
    "domain": "porterlabz.com",
    "nextVersion": "0.1.0-beta.1"
  },
  "requiredCompanionDocs": [
    "docs/release/RELEASE_RUNBOOK.md",
    "docs/release/RELEASE_NOTES_0.1.0-alpha.83.md",
    "docs/release/KNOWN_ISSUES_0.1.0-alpha.83.md",
    "docs/release/ROLLBACK_PLAN.md"
  ],
  "mobileReadiness": {
    "hasDebugApk": true,
    "hasSignedAlphaApk": true,
    "status": "Porter Labs signed Android alpha APK present for internal device and emulator testing",
    "paidBetaGate": "Mobile release still needs signed release builds, store metadata, privacy policy URLs, and device QA before customer distribution."
  },
  "blockersBeforePaidBeta": [
    "Signed or store-trusted installer path",
    "Public domain and policy URLs",
    "Confirmed support inbox and ticket roundtrip",
    "Hosted billing backend and Stripe test/live rehearsal",
    "Attorney/accountant review for policy and payment posture"
  ],
  "files": [
    {
      "path": "chrome_100_percent.pak",
      "sizeBytes": 119889,
      "sha256": "15a5bcb49a5c02d6a4e736e8dfa11dabb0bac0589641a4e25f0c06472ccaae6d"
    },
    {
      "path": "chrome_200_percent.pak",
      "sizeBytes": 197073,
      "sha256": "b7acfb068fa681f4ecb8f782bd4e3926590076c61fd0de3de4a12dde227cf52b"
    },
    {
      "path": "d3dcompiler_47.dll",
      "sizeBytes": 4741488,
      "sha256": "a05f99734f7c4822fefc12b367af21fd0976ed6608752fb1e1e80b6ece7ecbbb"
    },
    {
      "path": "dxcompiler.dll",
      "sizeBytes": 25723392,
      "sha256": "c067467d36959dc1aff2061ec6a17970e866b5e2a4b20d9a6db1ea598973a66a"
    },
    {
      "path": "dxil.dll",
      "sizeBytes": 1509760,
      "sha256": "77e039c905030a641e53658a008b74e90635a5ea9b6b79eabd0f2003bdfca59a"
    },
    {
      "path": "ffmpeg.dll",
      "sizeBytes": 3036160,
      "sha256": "2b8f41656a6bc5c11c289892421c2ddb8232e90a7d74a838057da136fe892bfb"
    },
    {
      "path": "icudtl.dat",
      "sizeBytes": 10876560,
      "sha256": "bd8c145abdf3f8383276ce01dfa4ae48709bef9fef1c0711eb7c3fab4f6eb7c2"
    },
    {
      "path": "libEGL.dll",
      "sizeBytes": 508928,
      "sha256": "34998ce757fc1ea58669462d87a1cd6ba27d2ea47a539f4ccfa21c4270f43003"
    },
    {
      "path": "libGLESv2.dll",
      "sizeBytes": 8112128,
      "sha256": "fe00a94de59674c525aebfc7b9498a96e061d75533ea4412cf78e4c00f5685cb"
    },
    {
      "path": "LICENSE.electron.txt",
      "sizeBytes": 1096,
      "sha256": "5154e165bd6c2cc0cfbcd8916498c7abab0497923bafcd5cb07673fe8480087d"
    },
    {
      "path": "LICENSES.chromium.html",
      "sizeBytes": 20367095,
      "sha256": "e3c8a6093358521d4512d68945e16338755e687619196e63948d46c9267537b6"
    },
    {
      "path": "locales/af.pak",
      "sizeBytes": 620482,
      "sha256": "d990f4ced39e31a1149d2a1842ce2504706885e6ab05957ee2f338c77d94c16b"
    },
    {
      "path": "locales/am.pak",
      "sizeBytes": 1006731,
      "sha256": "8d3d5dfc64acfbb0c35036d74561d09ddf3b22058eeed0f8d26a2e9c0703248e"
    },
    {
      "path": "locales/ar.pak",
      "sizeBytes": 1109627,
      "sha256": "295b944f5e032235abd83e7ed5a65ded77e37a0d7911935448a13753fbde0863"
    },
    {
      "path": "locales/bg.pak",
      "sizeBytes": 1150764,
      "sha256": "2789212aac5f2133ed23c1f84623bc64eb4cfbd93aef7af751d1221e27a21daa"
    },
    {
      "path": "locales/bn.pak",
      "sizeBytes": 1479936,
      "sha256": "e72b72977b40fb10472fe1a3fcffcda8b434bf52e2bb2da2935faa80da224812"
    },
    {
      "path": "locales/ca.pak",
      "sizeBytes": 699584,
      "sha256": "49eda8c16449dbe7620f52c3354f6a5f0d14c98e9ffe4624b81465c141420172"
    },
    {
      "path": "locales/cs.pak",
      "sizeBytes": 726069,
      "sha256": "8386f70e830a565d0674014ae4ad385a61eb43d7e7b99d4d373d14388dfd32ce"
    },
    {
      "path": "locales/da.pak",
      "sizeBytes": 652599,
      "sha256": "1c25a84efa2fafada0ee38196149b9173bc2570520b9932cd677e382ad70c3ed"
    },
    {
      "path": "locales/de.pak",
      "sizeBytes": 700799,
      "sha256": "941c4d0ac3de30cdb5922e4bf1423354eca1148aacd3dd71499af3bba1fcea8f"
    },
    {
      "path": "locales/el.pak",
      "sizeBytes": 1265039,
      "sha256": "3ee2e46a5a569e411ccf9d77ee4f356e1833bfccbaefcc5e71b7c1517206ab5f"
    },
    {
      "path": "locales/en-GB.pak",
      "sizeBytes": 565496,
      "sha256": "aac3b4904d021d58d053bdea2d8056a219ecda1e341d87cb70070aea2cee418f"
    },
    {
      "path": "locales/en-US.pak",
      "sizeBytes": 571518,
      "sha256": "bce3ec06227dba2273c4ff12482cba37b709cc8bf5fd29c4380f9a07b92bf821"
    },
    {
      "path": "locales/es-419.pak",
      "sizeBytes": 690699,
      "sha256": "3a40216501e507071eb6ffb242eff9b9015e209a34434155cd35f78fff57d590"
    },
    {
      "path": "locales/es.pak",
      "sizeBytes": 686799,
      "sha256": "940fb4b4b54dba60441fd52bdf3175e088c72fef7003a82988be25062a5266d6"
    },
    {
      "path": "locales/et.pak",
      "sizeBytes": 627098,
      "sha256": "ecc838878412cc9f28dda9efed2fc60b67315f5fdf64e912db33cee7571a5939"
    },
    {
      "path": "locales/fa.pak",
      "sizeBytes": 1038151,
      "sha256": "5fa7790100ab1e84a0c9b45612943cca98783fb3973cb07a4c083037e0cfe9dd"
    },
    {
      "path": "locales/fi.pak",
      "sizeBytes": 638637,
      "sha256": "18d904efd7d15a49ef3638c45a40b3aa604e5ec4b68e017ab3f568e6a8202fd4"
    },
    {
      "path": "locales/fil.pak",
      "sizeBytes": 723756,
      "sha256": "4034bd7ef11f48d7d646aacb7006562f0f9caec888785a13c36e31b9724dd798"
    },
    {
      "path": "locales/fr.pak",
      "sizeBytes": 746468,
      "sha256": "3f67ef11ecc42bfc8a8f6d1cccc3bb505c028256801e26fd3f784dc0998a3762"
    },
    {
      "path": "locales/gu.pak",
      "sizeBytes": 1462607,
      "sha256": "b207f2046791aa8150015ca78f9f76f2f6509953a00c5e89b155bb40e3a26474"
    },
    {
      "path": "locales/he.pak",
      "sizeBytes": 908717,
      "sha256": "eaa7fe5bb25a3690df8a0904d0b190f6a46b87ce71cf5dfff6e5f00c4f3e7037"
    },
    {
      "path": "locales/hi.pak",
      "sizeBytes": 1549657,
      "sha256": "6e58e12bfc69547d03d61f23445bc996e1b09ed5e8599b00f553bf8d022a08b5"
    },
    {
      "path": "locales/hr.pak",
      "sizeBytes": 698898,
      "sha256": "6990ba056fcd1cac97ed5b48024be4ab366846a9c517d43a181cbb0eefa095d1"
    },
    {
      "path": "locales/hu.pak",
      "sizeBytes": 747469,
      "sha256": "b83fc60c6d3ce3a04338ea16ba4627d6dfdf81f4373fe4921ac01c7c9558bcb6"
    },
    {
      "path": "locales/id.pak",
      "sizeBytes": 618246,
      "sha256": "a6ccb8c77ecd0db5c9d8d3b809937e627fffb136737ffeba65a9c09e6469a243"
    },
    {
      "path": "locales/it.pak",
      "sizeBytes": 675917,
      "sha256": "e1de70662a2de56345f259ae9c22b08f787d36c51cf1742c827e514e9d034528"
    },
    {
      "path": "locales/ja.pak",
      "sizeBytes": 824127,
      "sha256": "babf93791e59b57c7b21e850e1bba68b07dedb2a7c5cb8afdbd1a1814527deea"
    },
    {
      "path": "locales/kn.pak",
      "sizeBytes": 1681104,
      "sha256": "c317f8b5b2bd0ab21cfa93164b3c8f249b59e97aa0e2a392169e8e1bd545a068"
    },
    {
      "path": "locales/ko.pak",
      "sizeBytes": 701212,
      "sha256": "37f167bdf1c7f0095e256dfdf1d5f40a92e29a350bc78a8fe048f364d5fdbd76"
    },
    {
      "path": "locales/lt.pak",
      "sizeBytes": 759941,
      "sha256": "0c755ce72d1b71e77d58ab014228458d8ce2b0c51a9b00769635c6609255c9f2"
    },
    {
      "path": "locales/lv.pak",
      "sizeBytes": 757295,
      "sha256": "911f922f6ab11d04c4913b04088619276994104979b2c5f132182953fabc24a9"
    },
    {
      "path": "locales/ml.pak",
      "sizeBytes": 1728736,
      "sha256": "8beb5df27b5a1b88d0f441518a807b2c6acd99a81820cd0249710ea12bc179d0"
    },
    {
      "path": "locales/mr.pak",
      "sizeBytes": 1431694,
      "sha256": "1971da05e4868841c9d9f78be5e17ab09178af99b86a6c07df385015a0c9d9ef"
    },
    {
      "path": "locales/ms.pak",
      "sizeBytes": 651309,
      "sha256": "b60c552a9ced5d0e1f4ed408f65a04068acad7d80db7cf88528fbebbcd337e23"
    },
    {
      "path": "locales/nb.pak",
      "sizeBytes": 623206,
      "sha256": "cb50908b03c77263297e63ff75d4d3c58fb0cb491c69a8964239e787c762f52d"
    },
    {
      "path": "locales/nl.pak",
      "sizeBytes": 649223,
      "sha256": "b6a6cecceeb0097d5fd9628c684d53339f7871948655740e0f625bfedbf526ae"
    },
    {
      "path": "locales/pl.pak",
      "sizeBytes": 725422,
      "sha256": "dee5b710ca72425cd4d1236ce260f8d68b41bfdfceaeb2f98c8e89217b24208f"
    },
    {
      "path": "locales/pt-BR.pak",
      "sizeBytes": 680438,
      "sha256": "83e2d22e2caf95780d1659ca05070c26d5988ae50fde36770737d60250ee5d53"
    },
    {
      "path": "locales/pt-PT.pak",
      "sizeBytes": 684180,
      "sha256": "266e49a497c6bf9e48502c7eb01aea1fa90260b6fb1609165ff50307a3d81b59"
    },
    {
      "path": "locales/ro.pak",
      "sizeBytes": 710046,
      "sha256": "16b11fb73ea0c5d0336de453d3e2abd2de69b3e6c66dcd72bae318666525bb18"
    },
    {
      "path": "locales/ru.pak",
      "sizeBytes": 1177833,
      "sha256": "d8e86f2b2fb7232cde6fec3a927678a5923f5844f4e5d87bbe114f5dd717dac6"
    },
    {
      "path": "locales/sk.pak",
      "sizeBytes": 738142,
      "sha256": "c033373575cc83d84dff00116d504f7a66bdf7ae019c9d5c7c6907b2c808b662"
    },
    {
      "path": "locales/sl.pak",
      "sizeBytes": 706747,
      "sha256": "1550f8df161a3484a6c7af9bc5321fae524e10d6853467afcb8749054a73e601"
    },
    {
      "path": "locales/sr.pak",
      "sizeBytes": 1088532,
      "sha256": "a76930f2c72e49dc3a2c9be7e7bce0f9da0c93de03b6e275521fa86da0d2d39c"
    },
    {
      "path": "locales/sv.pak",
      "sizeBytes": 630691,
      "sha256": "118cbf34d040c8946669f889393364070e88d3f0263f1b66ab4638b1f8f3c291"
    },
    {
      "path": "locales/sw.pak",
      "sizeBytes": 667151,
      "sha256": "b50bd207747c65aac6888a8c57dc64fc88b74bd835301ef3da509c931af20e2e"
    },
    {
      "path": "locales/ta.pak",
      "sizeBytes": 1720238,
      "sha256": "2c5f8aaf21c9a035f71d763cfa9a20886892fcde7cf71878168a9df0faa6d417"
    },
    {
      "path": "locales/te.pak",
      "sizeBytes": 1591907,
      "sha256": "e9e85c763b92b5a98e74290c3ff07e7953269ab6228a4cc343745229819d7f8f"
    },
    {
      "path": "locales/th.pak",
      "sizeBytes": 1337523,
      "sha256": "0684a30ec9e0fe9baeeb215840b6c6b4f04e11c9afbcf9d18687af9a685e0927"
    },
    {
      "path": "locales/tr.pak",
      "sizeBytes": 679644,
      "sha256": "7a42e54611e2633c9c999f121abf2ffbda37746237e01ce29dc650510af08b0c"
    },
    {
      "path": "locales/uk.pak",
      "sizeBytes": 1185632,
      "sha256": "1fafb514e4380b430b19b9031b30249e93aaecd71109b125e5b6d99c2be60b43"
    },
    {
      "path": "locales/ur.pak",
      "sizeBytes": 1021689,
      "sha256": "0c1cfa61d9a9be6338b0a160b43ff362a982003053ae5be3b3ec867e78374d7b"
    },
    {
      "path": "locales/vi.pak",
      "sizeBytes": 808093,
      "sha256": "3594ddfb89758a3d87d51bf90e676a5dd6107a6becd96c8840df6739cf268af1"
    },
    {
      "path": "locales/zh-CN.pak",
      "sizeBytes": 577794,
      "sha256": "2fcc82972ec5b9b3d1c7adbe7f5ccebbcec8f592383fd835c134a03e82bf8a24"
    },
    {
      "path": "locales/zh-TW.pak",
      "sizeBytes": 570101,
      "sha256": "454d9fc97034cc4009d0903de952e6a3b2fa215969efc9822bbd1c4997afa51e"
    },
    {
      "path": "NyrA Swarm Little Buddy.exe",
      "sizeBytes": 226913280,
      "sha256": "6852fb9095a426a5c8128225e93d22b0ca3521c51d4d2af605ca3219327ee863",
      "signed": false,
      "signatureStatus": "NotSigned",
      "signerSubject": "",
      "signerThumbprint": ""
    },
    {
      "path": "resources.pak",
      "sizeBytes": 6876288,
      "sha256": "cf35fa43000d3fc4ee885b1309b388a39b27a5d8eab9bc981badec15554a7972"
    },
    {
      "path": "resources/app.asar",
      "sizeBytes": 1439124,
      "sha256": "46137b1e720d1349c4f2f6530455eb8bd4beba7793d0503b050fb21dd63174cd"
    },
    {
      "path": "resources/elevate.exe",
      "sizeBytes": 107520,
      "sha256": "9b1fbf0c11c520ae714af8aa9af12cfd48503eedecd7398d8992ee94d1b4dc37"
    },
    {
      "path": "snapshot_blob.bin",
      "sizeBytes": 346432,
      "sha256": "f9942e15201c6eca99047604e4ec705d527fd3931e45e5abd9e334c999df673b"
    },
    {
      "path": "v8_context_snapshot.bin",
      "sizeBytes": 721176,
      "sha256": "3285d38d1df75b039238ee2af424fb9d9f1e6a01c3f5b7c7a94dd6566e84a780"
    },
    {
      "path": "vk_swiftshader_icd.json",
      "sizeBytes": 106,
      "sha256": "32d83ff113fef532a9f97e0d2831f8656628ab1c99e9060f0332b1532839afd9"
    },
    {
      "path": "vk_swiftshader.dll",
      "sizeBytes": 5611520,
      "sha256": "95777490adba529d5efc082df98d0e603c4e85ff7d1ffe16b175ad6eb2c5454b"
    },
    {
      "path": "vulkan-1.dll",
      "sizeBytes": 955392,
      "sha256": "6c5a087a8039eea56b26c90115a99bd19791474b6b03056db036a7d86165152c"
    }
  ]
}

Checksum Preview

15a5bcb49a5c02d6a4e736e8dfa11dabb0bac0589641a4e25f0c06472ccaae6d        119889  chrome_100_percent.pak
b7acfb068fa681f4ecb8f782bd4e3926590076c61fd0de3de4a12dde227cf52b        197073  chrome_200_percent.pak
a05f99734f7c4822fefc12b367af21fd0976ed6608752fb1e1e80b6ece7ecbbb       4741488  d3dcompiler_47.dll
c067467d36959dc1aff2061ec6a17970e866b5e2a4b20d9a6db1ea598973a66a      25723392  dxcompiler.dll
77e039c905030a641e53658a008b74e90635a5ea9b6b79eabd0f2003bdfca59a       1509760  dxil.dll
2b8f41656a6bc5c11c289892421c2ddb8232e90a7d74a838057da136fe892bfb       3036160  ffmpeg.dll
bd8c145abdf3f8383276ce01dfa4ae48709bef9fef1c0711eb7c3fab4f6eb7c2      10876560  icudtl.dat
34998ce757fc1ea58669462d87a1cd6ba27d2ea47a539f4ccfa21c4270f43003        508928  libEGL.dll
fe00a94de59674c525aebfc7b9498a96e061d75533ea4412cf78e4c00f5685cb       8112128  libGLESv2.dll
5154e165bd6c2cc0cfbcd8916498c7abab0497923bafcd5cb07673fe8480087d          1096  LICENSE.electron.txt
e3c8a6093358521d4512d68945e16338755e687619196e63948d46c9267537b6      20367095  LICENSES.chromium.html
d990f4ced39e31a1149d2a1842ce2504706885e6ab05957ee2f338c77d94c16b        620482  locales/af.pak

NyrA Signing And Distribution Decision

Generated: 2026-07-18T13:46:29.866Z

Status: Signed Or Store Evidence Required

This page turns the Windows release-trust blocker into a dashboard workflow. It is not legal, tax, or Microsoft/Stripe support advice. It is the operational checklist NyrA needs before a paid beta customer receives an installer.

Current Build

Field Value
Product NyrA Swarm Little Buddy
Version 0.1.0-alpha.83
App ID com.porter.nyra.swarm-little-buddy
Windows target nsis
Signing configured No
Signing status Unsigned internal alpha evidence only
Release channel saved Direct download beta + Microsoft Store prep
Code-signing decision saved Microsoft Trusted Signing first

Recommended First Move

Use direct signed installer for the first paid beta if the user buys a Windows code-signing certificate; keep Microsoft Store mapped as a later or parallel trust channel.

Dashboard Inputs Needed

Decision Paths

Path Dashboard Value Best For User Handoff Codex Action Paid Beta Gate
Direct signed installer Direct download beta Fastest controlled paid beta once a Windows code-signing certificate, timestamping, support, policies, and billing are ready. Choose legal publisher name, buy/verify code-signing certificate, keep private key or token out of the repo, and provide signing method through a secret store. Enable electron-builder signing, add signing verification evidence, package an installer, and publish checksum/install notes. Installer must verify as signed, release notes must name the support path, and checkout stays disabled until deployability has no P0 blockers.
Microsoft Store or store-trusted channel Microsoft Store Higher customer trust and store-managed distribution when Partner Center, package identity, listing assets, screenshots, and review are ready. Create/confirm Partner Center account, reserve app name, complete identity/tax/profile requirements, and provide store package/listing decisions. Map Store package identity, listing checklist, screenshots, version metadata, policies, installer/package notes, and submission evidence. Store account, first manual submission, package/listing assets, policy URLs, support path, and billing posture must match the shipping app.
Both direct signed and Microsoft Store Both Direct beta speed plus later store trust if support capacity can handle two release channels. Approve both distribution paths and keep one version/source-of-truth policy for support, rollback, and known issues. Track channel-specific install, update, rollback, support, and screenshot evidence in the command center. Both channels must show the same version, policies, support path, checksums where applicable, and rollback plan.
Hold unsigned internal alpha Hold Internal QA only when the product is still changing or business/support/legal/payment handoffs are not ready. Acknowledge this is not a paid public release path. Keep generating clean-build evidence and block paid checkout/distribution. Cannot be used for paid public beta.

Codex Actions After User Chooses

No-Go Rules

Secret Handling

Certificate private keys, PFX files, token PINs, Partner Center client secrets, and timestamp/signing credentials stay outside the repo. Put them in the deployment/signing secret store or a temporary local shell only when signing.

Source Notes

NyrA Release Runbook

Scope: Swarm Little Buddy desktop paid-beta release operations.

This runbook defines the release evidence required before NyrA can be handed to paying beta customers. The current release channel is still blocked on signing or store-trusted distribution, so the unpacked build is evidence for internal verification, not a paid public installer.

Release Candidate Procedure

  1. Confirm the command center has current business, support, domain, pricing, hosted AI cap, billing backend, and release-channel decisions.
  2. Run npm run release:trust to refresh the signing and distribution decision packet.
  3. Run npm run build:clean from the repo root.
  4. Confirm the clean build finishes from %TEMP%\nyra-desktop-buddy-clean-build.
  5. Confirm release evidence is generated under docs/release/builds/<version>/ inside the clean-build workspace.
  6. Open the generated release-manifest.json and SHA256SUMS.txt.
  7. Record the executable SHA256 in the command center before sharing the build.
  8. Confirm release notes, known issues, support path, policy links, signing decision, and rollback plan match the build.
  9. Do not ship to paid users until the signed or store-trusted distribution path is chosen and tested.

Evidence Required For Every Candidate

Release Channels

Channel Use Paid Beta Status
Clean unpacked Windows folder Internal QA, support rehearsal, local smoke tests Evidence only
Direct signed installer Controlled paid beta if code signing, policy pages, support, billing, and rollback are ready Candidate
Microsoft Store or Store-private distribution Paid beta/public launch if store account, package identity, review, and policies are ready Candidate

Signing Gate

NyrA should not be sold as a public Windows download until one of these is true:

The current electron-builder.json5 keeps Windows resource branding enabled but has win.signExecutable set to false. The internal alpha therefore carries NyrA metadata and icon resources while remaining intentionally unsigned; it cannot be treated as a trusted paid installer.

Release Evidence Commands

npm run release:trust
npm run build:clean
npm run release:installer:rehearsal
npm run release:evidence
npm run test:installer-artifact
npm run test:release-package
npm run test:signing-distribution

npm run build:clean runs the evidence generator inside the temporary clean-build workspace after the Windows package is built.

Installer Rehearsal

Run npm run release:installer:rehearsal when you need to prove the Windows setup package path before the signing or Store handoff is finished. The rehearsal builds the NSIS Setup.exe, refreshes release evidence, and verifies that installer artifacts are recorded in release-manifest.json.

The resulting setup file is an unsigned installer rehearsal artifact for internal QA only. It is not a paid-beta customer handoff until a code-signing certificate or Microsoft Store/store-trusted distribution path is chosen and verified.

Customer Handoff Rules

Release Stop Conditions

Stop the release if any of these occur:

NyrA 0.1.0-alpha.83 Release Notes

Internal alpha only. Do not sell this build.

Improved

Verified

Boundary

NyrA 0.1.0-alpha.83 Known Issues

NyrA Rollback Plan

Scope: Swarm Little Buddy desktop paid-beta release operations.

Rollback exists to protect paying customers if activation, billing, consent, support, or computer-control behavior regresses.

Rollback Triggers

Rollback or pause distribution when any of these happen:

Immediate Response

  1. Stop sharing the affected installer or build folder.
  2. Disable public checkout links if billing or activation is affected.
  3. Update the command center task board and team updates.
  4. Send affected customers the support path and known workaround.
  5. Re-run npm run build:clean on the last known-good commit or package.
  6. Generate fresh release evidence and compare SHA256 values.
  7. Keep the failed build manifest and known issue notes for incident review.

Customer Communication

Use plain language:

Artifact Retention

For each release candidate, keep:

Do not retain customer secrets, raw API keys, passwords, full card numbers, or recovery codes in release evidence.

Recovery Exit Criteria

Distribution can resume only after: