{"record":{"id":"548dfa3d660efb5e","repo":"ruvnet/ruflo","slug":"release-asset-exceeds-maxbytes-byte-limit","errorCode":null,"errorMessage":"release asset exceeds ${maxBytes} byte limit","messagePattern":"release asset exceeds (.+?) byte limit","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/cli/src/proxy/release.ts","lineNumber":67,"sourceCode":"\nexport interface ReleaseAssets {\n  archiveBytes: Buffer;\n  archiveFilename: string;\n  sumsBytes: Buffer;\n  sigBase64: string;\n}\n\nconst DEV_INSTALL_ENV = 'RUFLO_DEV_PROXY_INSTALL';\nconst RELEASE_SOURCE_ENV = 'RUFLO_PROXY_RELEASE_SOURCE';\nconst GH_REPO = 'cognitum-one/meta-proxy';\nconst PUBLIC_DIST_BASE = 'https://github.com/cognitum-one/meta-proxy-dist/releases/download';\nconst MAX_ARCHIVE_BYTES = 32 * 1024 * 1024;\n\nasync function downloadPublicAsset(url: string, maxBytes: number): Promise<Buffer> {\n  const response = await fetch(url, { redirect: 'follow', signal: AbortSignal.timeout(120_000) });\n  if (!response.ok) throw new Error(`release download failed: HTTP ${response.status} for ${url}`);\n  const declared = Number(response.headers.get('content-length') ?? 0);\n  if (declared > maxBytes) throw new Error(`release asset exceeds ${maxBytes} byte limit`);\n  const bytes = Buffer.from(await response.arrayBuffer());\n  if (bytes.length > maxBytes) throw new Error(`release asset exceeds ${maxBytes} byte limit`);\n  return bytes;\n}\n\nasync function ghExecutor() {\n  // Dynamic import, not a static one: @claude-flow/security is only an\n  // optionalDependency of this package (see auth/security-bridge.ts for the\n  // same reasoning) — a static top-level import would crash module load for\n  // any consumer that doesn't have it installed, even ones that never touch\n  // this dev-only download path.\n  const { SafeExecutor } = await import('@claude-flow/security');\n  return new SafeExecutor({ allowedCommands: ['gh'], timeout: 120_000 });\n}\n\n/**\n * Dev-only fallback: `gh release download` via SafeExecutor into `destDir`.\n * Requires the caller's environment to already have `gh` authenticated","sourceCodeStart":49,"sourceCodeEnd":85,"githubUrl":"https://github.com/ruvnet/ruflo/blob/6b01dc5a687b26b3e218f796de45ec51f8fa9e8c/v3/@claude-flow/cli/src/proxy/release.ts#L49-L85","documentation":"Error \"release asset exceeds ${maxBytes} byte limit\" thrown in ruvnet/ruflo.","triggerScenarios":"Thrown at v3/@claude-flow/cli/src/proxy/release.ts:67 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6b01dc5a687b26b3e218f796de45ec51f8fa9e8c","analyzedAt":"2026-08-12T13:20:50.148Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}