Created
February 9, 2026 04:55
-
-
Save sdboyer/30ba9b5a22a283de45c474d2d9724f0b to your computer and use it in GitHub Desktop.
Txtar diff report for PR #28479
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <title>Poolio Txtar Diff Report</title> | |
| <style> | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, monospace; background: #f5f5f5; color: #333; } | |
| header { background: #1a1a2e; color: #eee; padding: 16px 24px; } | |
| header h1 { font-size: 18px; font-weight: 600; margin-bottom: 4px; } | |
| header .meta { font-size: 12px; color: #aaa; } | |
| .toolbar { display: flex; align-items: center; gap: 16px; padding: 12px 24px; background: #fff; border-bottom: 1px solid #ddd; font-size: 13px; flex-wrap: wrap; } | |
| .toolbar .stat { display: flex; gap: 4px; } | |
| .toolbar .stat-label { color: #888; } | |
| .toolbar .stat-value { font-weight: 600; } | |
| .toolbar .added { color: #22863a; } | |
| .toolbar .removed { color: #cb2431; } | |
| .toolbar .sep { border-left: 1px solid #ddd; height: 20px; } | |
| .btn { background: #f0f0f0; border: 1px solid #ccc; border-radius: 4px; padding: 4px 10px; font-size: 12px; cursor: pointer; font-family: inherit; } | |
| .btn:hover { background: #e0e0e0; } | |
| .btn.active { background: #0366d6; color: #fff; border-color: #0366d6; } | |
| .legend { display: flex; gap: 16px; padding: 8px 24px; background: #fafafa; border-bottom: 1px solid #eee; font-size: 11px; } | |
| .legend-item { display: flex; align-items: center; gap: 4px; } | |
| .legend-swatch { width: 14px; height: 14px; border-radius: 2px; border: 1px solid #ccc; } | |
| .swatch-no-output { background: #e8e8e8; } | |
| .swatch-unchanged { background: #fff; } | |
| .swatch-changed { background: #fff3cd; } | |
| .swatch-added { background: #d4edda; } | |
| .swatch-removed { background: #f8d7da; } | |
| .matrix-container { overflow: auto; padding: 16px 24px; max-height: 70vh; } | |
| table.matrix { border-collapse: collapse; font-size: 11px; } | |
| table.matrix th, table.matrix td { border: 1px solid #ddd; } | |
| table.matrix th { background: #f0f0f0; font-weight: 600; position: sticky; z-index: 1; } | |
| table.matrix thead th { top: 0; } | |
| table.matrix th.origin { z-index: 2; left: 0; top: 0; min-width: 140px; padding: 4px 8px; text-align: left; } | |
| table.matrix th.row-hdr { position: sticky; left: 0; z-index: 1; text-align: left; padding: 4px 8px; background: #f0f0f0; white-space: nowrap; max-width: 200px; overflow: hidden; text-overflow: ellipsis; } | |
| table.matrix th.col-hdr { padding: 4px 2px; width: 28px; min-width: 28px; max-width: 28px; height: 120px; vertical-align: bottom; } | |
| table.matrix th.col-hdr span { display: block; writing-mode: vertical-lr; text-orientation: mixed; transform: rotate(180deg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-height: 110px; font-size: 10px; } | |
| table.matrix td.cell { width: 28px; min-width: 28px; max-width: 28px; height: 22px; cursor: pointer; padding: 0; text-align: center; font-size: 9px; line-height: 22px; } | |
| table.matrix td.cell:hover { outline: 2px solid #0366d6; outline-offset: -2px; } | |
| table.matrix td.cell.active { outline: 2px solid #0366d6; outline-offset: -2px; } | |
| .c-no-output { background: #e8e8e8; } | |
| .c-unchanged { background: #fff; } | |
| .c-changed { background: #fff3cd; } | |
| .c-added { background: #d4edda; } | |
| .c-removed { background: #f8d7da; } | |
| .detail-panel { margin: 0 24px 24px; background: #fff; border: 1px solid #ddd; border-radius: 4px; display: none; } | |
| .detail-panel.active { display: block; } | |
| .detail-header { padding: 12px 16px; border-bottom: 1px solid #eee; display: flex; justify-content: space-between; align-items: flex-start; } | |
| .detail-header-left { flex: 1; } | |
| .detail-title { font-size: 14px; font-weight: 600; } | |
| .detail-subtitle { font-size: 12px; color: #666; margin-top: 2px; } | |
| .close-btn { cursor: pointer; color: #888; font-size: 20px; line-height: 1; padding: 0 4px; } | |
| .close-btn:hover { color: #333; } | |
| .detail-descriptions { display: flex; gap: 16px; padding: 10px 16px; border-bottom: 1px solid #eee; } | |
| .desc-box { flex: 1; background: #f9f9fb; border: 1px dashed #d0d0d8; border-radius: 4px; padding: 8px 12px; min-height: 48px; } | |
| .desc-box .desc-label { font-size: 10px; font-weight: 600; color: #888; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; } | |
| .desc-box .desc-src { font-size: 11px; color: #0366d6; word-break: break-all; margin-bottom: 2px; } | |
| .desc-box .desc-text { font-size: 12px; color: #aaa; font-style: italic; } | |
| .detail-stats { padding: 8px 16px; border-bottom: 1px solid #eee; font-size: 12px; color: #555; display: flex; gap: 16px; } | |
| .detail-stats .add { color: #22863a; font-weight: 600; } | |
| .detail-stats .del { color: #cb2431; font-weight: 600; } | |
| .detail-body { padding: 0; max-height: 60vh; overflow-y: auto; } | |
| .file-diff { border-bottom: 1px solid #eee; } | |
| .file-diff:last-child { border-bottom: none; } | |
| .file-diff-header { padding: 8px 16px; background: #f8f8f8; font-size: 12px; font-weight: 600; display: flex; justify-content: space-between; } | |
| .file-diff-stats { font-weight: normal; } | |
| .file-diff-stats .add { color: #22863a; } | |
| .file-diff-stats .del { color: #cb2431; } | |
| .badge { display: inline-block; font-size: 10px; font-weight: 600; padding: 1px 6px; border-radius: 3px; margin-left: 6px; } | |
| .badge-added { background: #d4edda; color: #155724; } | |
| .badge-removed { background: #f8d7da; color: #721c24; } | |
| .badge-modified { background: #fff3cd; color: #856404; } | |
| pre.diff { margin: 0; padding: 8px 16px; font-size: 11px; line-height: 1.5; overflow-x: auto; background: #fafafa; } | |
| pre.diff .diff-add { background: #e6ffed; color: #22863a; display: block; } | |
| pre.diff .diff-del { background: #ffeef0; color: #cb2431; display: block; } | |
| pre.diff .diff-hunk { color: #6f42c1; font-weight: 600; display: block; } | |
| pre.diff .diff-ctx { display: block; } | |
| </style> | |
| </head> | |
| <body> | |
| <header> | |
| <h1>Poolio Txtar Diff Report</h1> | |
| <div class="meta"> | |
| Commit: HEAD | |
| · 2026-02-08 23:54:11 | |
| </div> | |
| </header> | |
| <div class="toolbar"> | |
| <div class="stat"> | |
| <span class="stat-label">Suites:</span> | |
| <span class="stat-value">5/28 changed</span> | |
| </div> | |
| <div class="stat"> | |
| <span class="stat-label">Cases:</span> | |
| <span class="stat-value">9/14 affected</span> | |
| </div> | |
| <div class="stat"> | |
| <span class="stat-label">Lines:</span> | |
| <span class="stat-value added">+116</span> | |
| <span class="stat-value removed">-14</span> | |
| </div> | |
| <div class="sep"></div> | |
| <button class="btn" id="transpose-btn" title="Swap rows and columns">Transpose</button> | |
| </div> | |
| <div class="legend"> | |
| <div class="legend-item"><div class="legend-swatch swatch-no-output"></div> No output</div> | |
| <div class="legend-item"><div class="legend-swatch swatch-unchanged"></div> Unchanged</div> | |
| <div class="legend-item"><div class="legend-swatch swatch-changed"></div> Changed</div> | |
| <div class="legend-item"><div class="legend-swatch swatch-added"></div> Added</div> | |
| <div class="legend-item"><div class="legend-swatch swatch-removed"></div> Removed</div> | |
| </div> | |
| <div class="matrix-container" id="matrix-container"></div> | |
| <div class="detail-panel" id="detail-panel"> | |
| <div class="detail-header"> | |
| <div class="detail-header-left"> | |
| <div class="detail-title" id="detail-title"></div> | |
| <div class="detail-subtitle" id="detail-subtitle"></div> | |
| </div> | |
| <span class="close-btn" id="detail-close">×</span> | |
| </div> | |
| <div class="detail-descriptions" id="detail-descriptions"> | |
| <div class="desc-box"> | |
| <div class="desc-label" id="desc-suite-label">Suite</div> | |
| <div class="desc-src" id="desc-suite-src"></div> | |
| <div class="desc-text" id="desc-suite-text">No description</div> | |
| </div> | |
| <div class="desc-box"> | |
| <div class="desc-label" id="desc-case-label">Case</div> | |
| <div class="desc-src" id="desc-case-src"></div> | |
| <div class="desc-text" id="desc-case-text">No description</div> | |
| </div> | |
| </div> | |
| <div class="detail-stats" id="detail-stats"></div> | |
| <div class="detail-body" id="detail-body"></div> | |
| </div> | |
| <script> | |
| var cellData = {"bundle-generate-all-artifacts/bundle-generate":{"status":"added","fileDiffs":[{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue","status":"modified","linesAdded":11,"linesRemoved":1,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n@@ -2,7 +2,10 @@\n // Components are the fundamental building blocks that make up a release bundle.\n package framework\n \n-import \"time\"\n+import (\n+\t\"strings\"\n+\t\"time\"\n+)\n \n // Pattern for 40-character lowercase git SHA\n #GitSHA: =~\"^[a-f0-9]{40}$\"\n@@ -77,6 +80,13 @@\n \t// Source repository information for the component.\n \t// Used for changelog generation and tracking component provenance.\n \tsource?: #Source\n+\n+\t// Release series for this component. Controls which platform release series\n+\t// can include this component. Components with releaseSeries: \"main\" (the default)\n+\t// can be included in any series. Components with a specific series (e.g., \"acme\")\n+\t// can only be included in that series, and will prompt for confirmation if\n+\t// included in a different series.\n+\treleaseSeries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// Allow subtypes to add additional fields\n \t...\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue","status":"modified","linesAdded":3,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n@@ -18,6 +18,9 @@\n \t// Release info - present in first-party components\n \trelease?: _\n \tsource?: _\n+\n+\t// Release series - which platform release series this component belongs to\n+\treleaseSeries?: _\n \n \t// Upstream info - present in external components\n \tupstream?: _\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue","status":"modified","linesAdded":8,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n@@ -1,10 +1,18 @@\n package framework\n+\n+import \"strings\"\n \n // #PlatformRelease represents a complete platform release.\n // It unifies the manifest metadata with component configuration definitions.\n #PlatformRelease: {\n \t// platformVersion is the version number of this platform release\n \tplatformVersion!: string\n+\n+\t// series identifies the release series for this platform release.\n+\t// The main series (default) uses versions like \"2025.01.23-0\".\n+\t// Named series use versions like \"2025.01.23-0-acme\".\n+\t// Series names are case-insensitive and normalized to lowercase.\n+\tseries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// components lists all components included in this platform release\n \t// with their versions and commit SHAs for immutability tracking\n"}],"linesAdded":22,"linesRemoved":1,"totalFiles":30,"expectsError":false},"bundle-generate-all-artifacts/bundle-generate-full-tank":{"status":"added","fileDiffs":[{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue","status":"modified","linesAdded":11,"linesRemoved":1,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n@@ -2,7 +2,10 @@\n // Components are the fundamental building blocks that make up a release bundle.\n package framework\n \n-import \"time\"\n+import (\n+\t\"strings\"\n+\t\"time\"\n+)\n \n // Pattern for 40-character lowercase git SHA\n #GitSHA: =~\"^[a-f0-9]{40}$\"\n@@ -77,6 +80,13 @@\n \t// Source repository information for the component.\n \t// Used for changelog generation and tracking component provenance.\n \tsource?: #Source\n+\n+\t// Release series for this component. Controls which platform release series\n+\t// can include this component. Components with releaseSeries: \"main\" (the default)\n+\t// can be included in any series. Components with a specific series (e.g., \"acme\")\n+\t// can only be included in that series, and will prompt for confirmation if\n+\t// included in a different series.\n+\treleaseSeries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// Allow subtypes to add additional fields\n \t...\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue","status":"modified","linesAdded":3,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n@@ -18,6 +18,9 @@\n \t// Release info - present in first-party components\n \trelease?: _\n \tsource?: _\n+\n+\t// Release series - which platform release series this component belongs to\n+\treleaseSeries?: _\n \n \t// Upstream info - present in external components\n \tupstream?: _\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue","status":"modified","linesAdded":8,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n@@ -1,10 +1,18 @@\n package framework\n+\n+import \"strings\"\n \n // #PlatformRelease represents a complete platform release.\n // It unifies the manifest metadata with component configuration definitions.\n #PlatformRelease: {\n \t// platformVersion is the version number of this platform release\n \tplatformVersion!: string\n+\n+\t// series identifies the release series for this platform release.\n+\t// The main series (default) uses versions like \"2025.01.23-0\".\n+\t// Named series use versions like \"2025.01.23-0-acme\".\n+\t// Series names are case-insensitive and normalized to lowercase.\n+\tseries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// components lists all components included in this platform release\n \t// with their versions and commit SHAs for immutability tracking\n"}],"linesAdded":22,"linesRemoved":1,"totalFiles":45,"expectsError":false},"bundle-generate-all-artifacts/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-all-artifacts/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-all-artifacts/component-all-ready":{"status":"added","fileDiffs":[{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue","status":"modified","linesAdded":11,"linesRemoved":1,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n@@ -2,7 +2,10 @@\n // Components are the fundamental building blocks that make up a release bundle.\n package framework\n \n-import \"time\"\n+import (\n+\t\"strings\"\n+\t\"time\"\n+)\n \n // Pattern for 40-character lowercase git SHA\n #GitSHA: =~\"^[a-f0-9]{40}$\"\n@@ -77,6 +80,13 @@\n \t// Source repository information for the component.\n \t// Used for changelog generation and tracking component provenance.\n \tsource?: #Source\n+\n+\t// Release series for this component. Controls which platform release series\n+\t// can include this component. Components with releaseSeries: \"main\" (the default)\n+\t// can be included in any series. Components with a specific series (e.g., \"acme\")\n+\t// can only be included in that series, and will prompt for confirmation if\n+\t// included in a different series.\n+\treleaseSeries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// Allow subtypes to add additional fields\n \t...\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue","status":"modified","linesAdded":3,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n@@ -18,6 +18,9 @@\n \t// Release info - present in first-party components\n \trelease?: _\n \tsource?: _\n+\n+\t// Release series - which platform release series this component belongs to\n+\treleaseSeries?: _\n \n \t// Upstream info - present in external components\n \tupstream?: _\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue","status":"modified","linesAdded":8,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n@@ -1,10 +1,18 @@\n package framework\n+\n+import \"strings\"\n \n // #PlatformRelease represents a complete platform release.\n // It unifies the manifest metadata with component configuration definitions.\n #PlatformRelease: {\n \t// platformVersion is the version number of this platform release\n \tplatformVersion!: string\n+\n+\t// series identifies the release series for this platform release.\n+\t// The main series (default) uses versions like \"2025.01.23-0\".\n+\t// Named series use versions like \"2025.01.23-0-acme\".\n+\t// Series names are case-insensitive and normalized to lowercase.\n+\tseries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// components lists all components included in this platform release\n \t// with their versions and commit SHAs for immutability tracking\n"}],"linesAdded":22,"linesRemoved":1,"totalFiles":30,"expectsError":false},"bundle-generate-all-artifacts/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-all-artifacts/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-all-artifacts/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-all-artifacts/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-all-artifacts/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-all-artifacts/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-all-artifacts/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-all-artifacts/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-all-artifacts/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":21,"expectsError":false},"bundle-generate-full/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":36,"expectsError":false},"bundle-generate-full/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-generate-minimal/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-generate-minimal/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-generate-minimal/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-minimal/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-generate-selective-artifacts/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-generate-selective-artifacts/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-selective-artifacts/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":4,"expectsError":false},"bundle-spec-release/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":4,"expectsError":false},"bundle-spec-release/bundle-spec-invalid-array":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/bundle-spec-mixed-valid-invalid":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":4,"expectsError":false},"bundle-spec-release/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-release/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":12,"expectsError":false},"component-build/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":20,"expectsError":false},"component-build/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":22,"expectsError":false},"component-build/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build/component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build/component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":4,"expectsError":false},"component-build/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":6,"expectsError":false},"component-codegen/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":6,"expectsError":false},"component-codegen/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":6,"expectsError":false},"component-codegen/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen/component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen/component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-codegen/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-list/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-list/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-list/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-list/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-list/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-list/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-list/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-list/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-list/component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-list/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-list/component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-list/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-list/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-list/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":15,"expectsError":false},"component-release/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":6,"expectsError":false},"component-release/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release/platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":9,"expectsError":false},"component-release/prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":9,"expectsError":false},"component-show-all/bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-all/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-basic/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-basic/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-basic/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-basic/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-basic/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-basic/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-basic/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-basic/component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-basic/component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-basic/component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-basic/component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-basic/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-basic/platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-basic/prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-broken/bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-broken/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/component-builds-prune":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-builds-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-builds-json/stdout.txt\n+++ b/out/component-show-builds-json/stdout.txt\n@@ -32,6 +32,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n }\n \n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-builds-json/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/component-release":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-builds-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-builds-json/stdout.txt\n+++ b/out/component-show-builds-json/stdout.txt\n@@ -45,6 +45,7 @@\n },\n \"githubRepo\": \"example/repo\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n }\n \n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-builds-json/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds-json/platform-builds-prune":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-builds-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-builds-json/stdout.txt\n+++ b/out/component-show-builds-json/stdout.txt\n@@ -38,6 +38,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n }\n \n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-builds-json/prune-builds-edge-cases":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-builds-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-builds-json/stdout.txt\n+++ b/out/component-show-builds-json/stdout.txt\n@@ -32,6 +32,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n }\n \n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-builds/bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds/bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds/component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds/component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-builds/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds/component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-builds/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-builds/platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-builds/prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases-json/bundle-generate":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-releases-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-releases-json/stdout.txt\n+++ b/out/component-show-releases-json/stdout.txt\n@@ -14,6 +14,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"releases\": [\n {\n \"metadata\": {\n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases-json/bundle-generate-full-tank":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-releases-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-releases-json/stdout.txt\n+++ b/out/component-show-releases-json/stdout.txt\n@@ -14,6 +14,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"releases\": [\n {\n \"metadata\": {\n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases-json/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases-json/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases-json/component-all-ready":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-releases-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-releases-json/stdout.txt\n+++ b/out/component-show-releases-json/stdout.txt\n@@ -14,6 +14,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"releases\": [\n {\n \"metadata\": {\n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases-json/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases-json/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases-json/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases-json/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases-json/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases-json/component-types-external-dockerfile":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-releases-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-releases-json/stdout.txt\n+++ b/out/component-show-releases-json/stdout.txt\n@@ -22,6 +22,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"releases\": [\n {\n \"metadata\": {\n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases-json/forge-preonboarding":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-releases-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-releases-json/stdout.txt\n+++ b/out/component-show-releases-json/stdout.txt\n@@ -19,6 +19,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"releases\": [\n {\n \"metadata\": {\n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases-json/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases-json/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases/component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-show-releases/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-show-releases/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-validate/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-validate/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-validate/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-validate/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate-no-builtin-aliases/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"pdm-generate-no-builtin-aliases/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"pdm-generate-no-builtin-aliases/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate-no-builtin-aliases/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate-no-builtin-aliases/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"pdm-generate-no-builtin-aliases/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate-no-builtin-aliases/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate-no-builtin-aliases/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate-no-builtin-aliases/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate-no-builtin-aliases/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate-no-builtin-aliases/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate-no-builtin-aliases/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"pdm-generate-no-builtin-aliases/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate-no-builtin-aliases/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"pdm-generate/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"pdm-generate/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"pdm-generate/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"pdm-generate/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"pdm-generate/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-config-show/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-config-show/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-config-show/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-config-show/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-config-show/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-config-show/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-config-show/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-config-show/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-config-show/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-config-show/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-config-show/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-config-show/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-config-show/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-config-show/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create-transient/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"platform-release-create-transient/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"platform-release-create-transient/bundle-spec-invalid-array":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create-transient/bundle-spec-mixed-valid-invalid":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create-transient/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"platform-release-create-transient/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create-transient/component-build-push":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create-transient/component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"platform-release-create-transient/component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create-transient/component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"platform-release-create-transient/component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"platform-release-create-transient/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"platform-release-create-transient/platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"platform-release-create-transient/prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"platform-release-create/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"platform-release-create/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"platform-release-create/bundle-spec-invalid-array":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create/bundle-spec-mixed-valid-invalid":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"platform-release-create/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create/component-build-push":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create/component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"platform-release-create/component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-create/component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"platform-release-create/component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"platform-release-create/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"platform-release-create/platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"platform-release-create/prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"platform-release-list-json/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-list-json/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-list-json/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list-json/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list-json/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-list-json/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list-json/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list-json/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list-json/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list-json/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list-json/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list-json/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-list-json/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list-json/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list/bundle-generate":{"status":"changed","fileDiffs":[{"sectionName":"out/platform-release-list/stdout.txt","status":"modified","linesAdded":3,"linesRemoved":2,"unifiedDiff":"--- a/out/platform-release-list/stdout.txt\n+++ b/out/platform-release-list/stdout.txt\n@@ -1,4 +1,4 @@\n-VERSION TYPE COMPONENT COUNT\n-------- ---- ---------------\n-v0.0.1 release 6\n+VERSION SERIES TYPE COMPONENT COUNT\n+------- ------ ---- ---------------\n+v0.0.1 main release 6\n \n"}],"linesAdded":3,"linesRemoved":2,"totalFiles":1,"expectsError":false},"platform-release-list/bundle-generate-full-tank":{"status":"changed","fileDiffs":[{"sectionName":"out/platform-release-list/stdout.txt","status":"modified","linesAdded":4,"linesRemoved":3,"unifiedDiff":"--- a/out/platform-release-list/stdout.txt\n+++ b/out/platform-release-list/stdout.txt\n@@ -1,5 +1,5 @@\n-VERSION TYPE COMPONENT COUNT\n-------- ---- ---------------\n-1.20251203 release 7\n-1.20251208 release 10\n+VERSION SERIES TYPE COMPONENT COUNT\n+------- ------ ---- ---------------\n+1.20251203 main release 7\n+1.20251208 main release 10\n \n"}],"linesAdded":4,"linesRemoved":3,"totalFiles":1,"expectsError":false},"platform-release-list/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list/component-all-ready":{"status":"changed","fileDiffs":[{"sectionName":"out/platform-release-list/stdout.txt","status":"modified","linesAdded":5,"linesRemoved":4,"unifiedDiff":"--- a/out/platform-release-list/stdout.txt\n+++ b/out/platform-release-list/stdout.txt\n@@ -1,6 +1,6 @@\n-VERSION TYPE COMPONENT COUNT\n-------- ---- ---------------\n-1.20251203 release 7\n-1.20251208 release 10\n-1.20251211 release 11\n+VERSION SERIES TYPE COMPONENT COUNT\n+------- ------ ---- ---------------\n+1.20251203 main release 7\n+1.20251208 main release 10\n+1.20251211 main release 11\n \n"}],"linesAdded":5,"linesRemoved":4,"totalFiles":1,"expectsError":false},"platform-release-list/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list/forge-preonboarding":{"status":"changed","fileDiffs":[{"sectionName":"out/platform-release-list/stdout.txt","status":"modified","linesAdded":3,"linesRemoved":2,"unifiedDiff":"--- a/out/platform-release-list/stdout.txt\n+++ b/out/platform-release-list/stdout.txt\n@@ -1,4 +1,4 @@\n-VERSION TYPE COMPONENT COUNT\n-------- ---- ---------------\n-v0.0.1 release 6\n+VERSION SERIES TYPE COMPONENT COUNT\n+------- ------ ---- ---------------\n+v0.0.1 main release 6\n \n"}],"linesAdded":3,"linesRemoved":2,"totalFiles":1,"expectsError":false},"platform-release-list/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-list/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show-json/bundle-generate":{"status":"added","fileDiffs":[{"sectionName":"out/platform-release-show-json/stdout.txt","status":"modified","linesAdded":6,"linesRemoved":0,"unifiedDiff":"--- a/out/platform-release-show-json/stdout.txt\n+++ b/out/platform-release-show-json/stdout.txt\n@@ -16,6 +16,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"atlas\",\n@@ -40,6 +41,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"core-api\",\n@@ -67,6 +69,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"pool\",\n@@ -94,6 +97,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"splash\",\n@@ -121,6 +125,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vs-extension\",\n@@ -148,6 +153,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vscode-extension\",\n"}],"linesAdded":6,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-show-json/bundle-generate-full-tank":{"status":"added","fileDiffs":[{"sectionName":"out/platform-release-show-json/stdout.txt","status":"modified","linesAdded":7,"linesRemoved":0,"unifiedDiff":"--- a/out/platform-release-show-json/stdout.txt\n+++ b/out/platform-release-show-json/stdout.txt\n@@ -17,6 +17,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"atlas\",\n@@ -42,6 +43,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"core-api\",\n@@ -64,6 +66,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"web-assistant\",\n@@ -91,6 +94,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"pool\",\n@@ -118,6 +122,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"splash\",\n@@ -145,6 +150,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vs-extension\",\n@@ -172,6 +178,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vscode-extension\",\n"}],"linesAdded":7,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-show-json/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show-json/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show-json/component-all-ready":{"status":"added","fileDiffs":[{"sectionName":"out/platform-release-show-json/stdout.txt","status":"modified","linesAdded":7,"linesRemoved":0,"unifiedDiff":"--- a/out/platform-release-show-json/stdout.txt\n+++ b/out/platform-release-show-json/stdout.txt\n@@ -17,6 +17,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"atlas\",\n@@ -41,6 +42,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"core-api\",\n@@ -62,6 +64,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"web-assistant\",\n@@ -89,6 +92,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"pool\",\n@@ -116,6 +120,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"splash\",\n@@ -143,6 +148,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vs-extension\",\n@@ -170,6 +176,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vscode-extension\",\n"}],"linesAdded":7,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-show-json/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show-json/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show-json/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show-json/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show-json/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show-json/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show-json/forge-preonboarding":{"status":"added","fileDiffs":[{"sectionName":"out/platform-release-show-json/stdout.txt","status":"modified","linesAdded":6,"linesRemoved":0,"unifiedDiff":"--- a/out/platform-release-show-json/stdout.txt\n+++ b/out/platform-release-show-json/stdout.txt\n@@ -16,6 +16,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"atlas\",\n@@ -45,6 +46,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"core-api\",\n@@ -72,6 +74,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"pool\",\n@@ -99,6 +102,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"splash\",\n@@ -126,6 +130,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vs-extension\",\n@@ -153,6 +158,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vscode-extension\",\n"}],"linesAdded":6,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-show-json/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show-json/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-show/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-show/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-show/component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show/component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show/component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-release-show/platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-release-show/prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"tank-prune-builds/component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"tank-prune-builds/component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"tank-prune-builds/platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"tank-prune-builds/prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"workspace-discovery/bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"workspace-discovery/bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"workspace-discovery/bundle-spec-invalid-array":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"workspace-discovery/bundle-spec-mixed-valid-invalid":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"workspace-discovery/component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"workspace-discovery/component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"workspace-discovery/component-build-push":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"workspace-discovery/component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"workspace-discovery/component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"workspace-discovery/component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"workspace-discovery/component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"workspace-discovery/forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"workspace-discovery/platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"workspace-discovery/prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false}}; | |
| var report = {"gitRef":"HEAD","repoURL":"https://github.com/poolsideai/forge","linkRef":"HEAD","generatedAt":"2026-02-08T23:54:11.927429-05:00","cases":[{"name":"bundle-generate","sourcePath":"cmd/poolio/testdata/bundle-generate.txtar","hasWorkspace":true,"hasTank":true,"inputChanged":false,"componentCount":0},{"name":"bundle-generate-full-tank","sourcePath":"cmd/poolio/testdata/bundle-generate-full-tank.txtar","hasWorkspace":true,"hasTank":true,"inputChanged":false,"componentCount":0},{"name":"bundle-spec-invalid-array","sourcePath":"cmd/poolio/testdata/bundle-spec-invalid-array.txtar","hasWorkspace":true,"hasTank":false,"tags":{"expect-error/bundle-spec-release":"Validates that array-style components are rejected","expect-error/platform-release-create":"no released components, platform create should fail","expect-error/platform-release-create-transient":"no released components, platform create should fail"},"expectErrors":["bundle-spec-release","platform-release-create","platform-release-create-transient"],"inputChanged":false,"componentCount":0},{"name":"bundle-spec-mixed-valid-invalid","sourcePath":"cmd/poolio/testdata/bundle-spec-mixed-valid-invalid.txtar","hasWorkspace":true,"hasTank":false,"tags":{"expect-error/bundle-spec-release":"Second spec (z-invalid-array-components) should fail validation","expect-error/platform-release-create":"no released components, platform create should fail","expect-error/platform-release-create-transient":"no released components, platform create should fail"},"expectErrors":["bundle-spec-release","platform-release-create","platform-release-create-transient"],"inputChanged":false,"componentCount":0},{"name":"component-all-ready","sourcePath":"cmd/poolio/testdata/component-all-ready.txtar","hasWorkspace":true,"hasTank":true,"inputChanged":false,"componentCount":0},{"name":"component-broken-cue","sourcePath":"cmd/poolio/testdata/component-broken-cue.txtar","hasWorkspace":true,"hasTank":true,"tags":{"expect-error/component-build":"building component bad-schema","expect-error/component-validate":"loading local component bad-schema fails","expect-error/platform-release-create":"no released components","expect-error/platform-release-create-transient":"no released components"},"expectErrors":["component-build","component-validate","platform-release-create","platform-release-create-transient"],"inputChanged":false,"componentCount":3},{"name":"component-build-push","sourcePath":"cmd/poolio/testdata/component-build-push.txtar","hasWorkspace":true,"hasTank":false,"tags":{"- Clean build":"should be eligible for push","- Dirty build":"should be rejected (dirty: true in metadata)","- No metadata":"should be rejected (missing metadata.json)","Three scenarios are tested":"","expect-error/platform-release-create":"no released components, platform create should fail","expect-error/platform-release-create-transient":"no released components, platform create should fail"},"expectErrors":["platform-release-create","platform-release-create-transient"],"inputChanged":false,"componentCount":0},{"name":"component-builds-prune","sourcePath":"cmd/poolio/testdata/component-builds-prune.txtar","hasWorkspace":false,"hasTank":true,"tags":{"expect-error/platform-release-create":"no released components, platform create should fail","expect-error/platform-release-create-transient":"no released components, platform create should fail"},"expectErrors":["platform-release-create","platform-release-create-transient"],"inputChanged":false,"componentCount":0},{"name":"component-codegen-simple","sourcePath":"cmd/poolio/testdata/component-codegen-simple.txtar","hasWorkspace":true,"hasTank":false,"tags":{"expect-error/platform-release-create":"no released components, platform create should fail","expect-error/platform-release-create-transient":"no released components, platform create should fail"},"expectErrors":["platform-release-create","platform-release-create-transient"],"inputChanged":false,"componentCount":1},{"name":"component-release","sourcePath":"cmd/poolio/testdata/component-release.txtar","hasWorkspace":true,"hasTank":true,"tags":{"expect-error/platform-release-create":"no released components, platform create should fail","expect-error/platform-release-create-transient":"no released components, platform create should fail"},"expectErrors":["platform-release-create","platform-release-create-transient"],"inputChanged":false,"componentCount":0},{"name":"component-types-external-dockerfile","sourcePath":"cmd/poolio/testdata/component-types-external-dockerfile.txtar","hasWorkspace":true,"hasTank":true,"tags":{"Test component types":"external image and dockerfile build","This tests":"","expect-error/platform-release-create":"no released components, platform create should fail","expect-error/platform-release-create-transient":"no released components, platform create should fail"},"expectErrors":["platform-release-create","platform-release-create-transient"],"inputChanged":false,"componentCount":2},{"name":"forge-preonboarding","sourcePath":"cmd/poolio/testdata/forge-preonboarding.txtar","hasWorkspace":false,"hasTank":true,"inputChanged":false,"componentCount":0},{"name":"platform-builds-prune","sourcePath":"cmd/poolio/testdata/platform-builds-prune.txtar","hasWorkspace":false,"hasTank":true,"tags":{"Setup":"3 platform-builds with varying ages, 3 component-builds","expect-error/platform-release-create":"no released components, platform create should fail","expect-error/platform-release-create-transient":"no released components, platform create should fail"},"expectErrors":["platform-release-create","platform-release-create-transient"],"inputChanged":false,"componentCount":0},{"name":"prune-builds-edge-cases","sourcePath":"cmd/poolio/testdata/prune-builds-edge-cases.txtar","hasWorkspace":false,"hasTank":true,"tags":{"expect-error/platform-release-create":"no released components, platform create should fail","expect-error/platform-release-create-transient":"no released components, platform create should fail"},"expectErrors":["platform-release-create","platform-release-create-transient"],"inputChanged":false,"componentCount":0}],"suites":[{"name":"bundle-generate-all-artifacts","sourcePath":"cmd/poolio/bundle/generate_txtar_test.go:77","casesWithOutput":3,"casesSkipped":11,"casesWithDiffs":3,"consistentFileCount":false},{"name":"bundle-generate-full","casesWithOutput":2,"casesSkipped":12,"casesWithDiffs":0,"consistentFileCount":false},{"name":"bundle-generate-minimal","sourcePath":"cmd/poolio/bundle/generate_txtar_test.go:20","casesWithOutput":3,"casesSkipped":11,"casesWithDiffs":0,"consistentFileCount":true},{"name":"bundle-generate-selective-artifacts","sourcePath":"cmd/poolio/bundle/generate_txtar_test.go:137","casesWithOutput":2,"casesSkipped":12,"casesWithDiffs":0,"consistentFileCount":true},{"name":"bundle-spec-release","sourcePath":"cmd/poolio/bundlespec/release_txtar_test.go:17","casesWithOutput":5,"casesSkipped":9,"casesWithDiffs":0,"consistentFileCount":true},{"name":"component-build","sourcePath":"cmd/poolio/component/build_txtar_test.go:17","casesWithOutput":6,"casesSkipped":8,"casesWithDiffs":0,"consistentFileCount":false},{"name":"component-codegen","sourcePath":"cmd/poolio/component/codegen_txtar_test.go:12","casesWithOutput":6,"casesSkipped":8,"casesWithDiffs":0,"consistentFileCount":false},{"name":"component-list","sourcePath":"cmd/poolio/component/list_txtar_test.go:13","casesWithOutput":7,"casesSkipped":7,"casesWithDiffs":0,"consistentFileCount":true},{"name":"component-release","sourcePath":"cmd/poolio/component/release_txtar_test.go:15","casesWithOutput":5,"casesSkipped":9,"casesWithDiffs":0,"consistentFileCount":false},{"name":"component-show-all","sourcePath":"cmd/poolio/component/show_txtar_test.go:69","casesWithOutput":1,"casesSkipped":13,"casesWithDiffs":0,"consistentFileCount":true},{"name":"component-show-basic","sourcePath":"cmd/poolio/component/show_txtar_test.go:24","casesWithOutput":11,"casesSkipped":3,"casesWithDiffs":0,"consistentFileCount":true},{"name":"component-show-broken","sourcePath":"cmd/poolio/component/show_txtar_test.go:254","casesWithOutput":1,"casesSkipped":13,"casesWithDiffs":0,"consistentFileCount":true},{"name":"component-show-builds","sourcePath":"cmd/poolio/component/show_txtar_test.go:33","casesWithOutput":5,"casesSkipped":9,"casesWithDiffs":0,"consistentFileCount":true},{"name":"component-show-builds-json","sourcePath":"cmd/poolio/component/show_txtar_test.go:42","casesWithOutput":5,"casesSkipped":9,"casesWithDiffs":4,"consistentFileCount":true},{"name":"component-show-releases","sourcePath":"cmd/poolio/component/show_txtar_test.go:51","casesWithOutput":6,"casesSkipped":8,"casesWithDiffs":0,"consistentFileCount":true},{"name":"component-show-releases-json","sourcePath":"cmd/poolio/component/show_txtar_test.go:60","casesWithOutput":6,"casesSkipped":8,"casesWithDiffs":5,"consistentFileCount":true},{"name":"component-validate","sourcePath":"cmd/poolio/component/validate_txtar_test.go:14","casesWithOutput":4,"casesSkipped":10,"casesWithDiffs":0,"consistentFileCount":true},{"name":"pdm-generate","sourcePath":"cmd/poolio/bundle/pdm_txtar_test.go:15","casesWithOutput":4,"casesSkipped":10,"casesWithDiffs":0,"consistentFileCount":true},{"name":"pdm-generate-no-builtin-aliases","sourcePath":"cmd/poolio/bundle/pdm_txtar_test.go:72","casesWithOutput":4,"casesSkipped":10,"casesWithDiffs":0,"consistentFileCount":true},{"name":"platform-release-config-show","sourcePath":"cmd/poolio/release/config_show_txtar_test.go:14","casesWithOutput":4,"casesSkipped":10,"casesWithDiffs":0,"consistentFileCount":true},{"name":"platform-release-create","sourcePath":"cmd/poolio/release/platform-release_txtar_test.go:15","casesWithOutput":14,"casesSkipped":0,"casesWithDiffs":0,"consistentFileCount":false},{"name":"platform-release-create-transient","sourcePath":"cmd/poolio/release/platform-release_txtar_test.go:47","casesWithOutput":14,"casesSkipped":0,"casesWithDiffs":0,"consistentFileCount":false},{"name":"platform-release-list","sourcePath":"cmd/poolio/release/list_txtar_test.go:13","casesWithOutput":4,"casesSkipped":10,"casesWithDiffs":4,"consistentFileCount":true},{"name":"platform-release-list-json","sourcePath":"cmd/poolio/release/list_txtar_test.go:22","casesWithOutput":4,"casesSkipped":10,"casesWithDiffs":0,"consistentFileCount":true},{"name":"platform-release-show","sourcePath":"cmd/poolio/release/show_txtar_test.go:15","casesWithOutput":4,"casesSkipped":10,"casesWithDiffs":0,"consistentFileCount":true},{"name":"platform-release-show-json","sourcePath":"cmd/poolio/release/show_txtar_test.go:24","casesWithOutput":4,"casesSkipped":10,"casesWithDiffs":4,"consistentFileCount":true},{"name":"tank-prune-builds","sourcePath":"cmd/poolio/pep/tank_prune_builds_txtar_test.go:18","casesWithOutput":5,"casesSkipped":9,"casesWithDiffs":0,"consistentFileCount":true},{"name":"workspace-discovery","sourcePath":"pkg/distribution/workspace/discovery_txtar_test.go:14","casesWithOutput":14,"casesSkipped":0,"casesWithDiffs":0,"consistentFileCount":true}],"matrix":{"bundle-generate-all-artifacts":{"bundle-generate":{"status":"added","fileDiffs":[{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue","status":"modified","linesAdded":11,"linesRemoved":1,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n@@ -2,7 +2,10 @@\n // Components are the fundamental building blocks that make up a release bundle.\n package framework\n \n-import \"time\"\n+import (\n+\t\"strings\"\n+\t\"time\"\n+)\n \n // Pattern for 40-character lowercase git SHA\n #GitSHA: =~\"^[a-f0-9]{40}$\"\n@@ -77,6 +80,13 @@\n \t// Source repository information for the component.\n \t// Used for changelog generation and tracking component provenance.\n \tsource?: #Source\n+\n+\t// Release series for this component. Controls which platform release series\n+\t// can include this component. Components with releaseSeries: \"main\" (the default)\n+\t// can be included in any series. Components with a specific series (e.g., \"acme\")\n+\t// can only be included in that series, and will prompt for confirmation if\n+\t// included in a different series.\n+\treleaseSeries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// Allow subtypes to add additional fields\n \t...\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue","status":"modified","linesAdded":3,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n@@ -18,6 +18,9 @@\n \t// Release info - present in first-party components\n \trelease?: _\n \tsource?: _\n+\n+\t// Release series - which platform release series this component belongs to\n+\treleaseSeries?: _\n \n \t// Upstream info - present in external components\n \tupstream?: _\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue","status":"modified","linesAdded":8,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n@@ -1,10 +1,18 @@\n package framework\n+\n+import \"strings\"\n \n // #PlatformRelease represents a complete platform release.\n // It unifies the manifest metadata with component configuration definitions.\n #PlatformRelease: {\n \t// platformVersion is the version number of this platform release\n \tplatformVersion!: string\n+\n+\t// series identifies the release series for this platform release.\n+\t// The main series (default) uses versions like \"2025.01.23-0\".\n+\t// Named series use versions like \"2025.01.23-0-acme\".\n+\t// Series names are case-insensitive and normalized to lowercase.\n+\tseries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// components lists all components included in this platform release\n \t// with their versions and commit SHAs for immutability tracking\n"}],"linesAdded":22,"linesRemoved":1,"totalFiles":30,"expectsError":false},"bundle-generate-full-tank":{"status":"added","fileDiffs":[{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue","status":"modified","linesAdded":11,"linesRemoved":1,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n@@ -2,7 +2,10 @@\n // Components are the fundamental building blocks that make up a release bundle.\n package framework\n \n-import \"time\"\n+import (\n+\t\"strings\"\n+\t\"time\"\n+)\n \n // Pattern for 40-character lowercase git SHA\n #GitSHA: =~\"^[a-f0-9]{40}$\"\n@@ -77,6 +80,13 @@\n \t// Source repository information for the component.\n \t// Used for changelog generation and tracking component provenance.\n \tsource?: #Source\n+\n+\t// Release series for this component. Controls which platform release series\n+\t// can include this component. Components with releaseSeries: \"main\" (the default)\n+\t// can be included in any series. Components with a specific series (e.g., \"acme\")\n+\t// can only be included in that series, and will prompt for confirmation if\n+\t// included in a different series.\n+\treleaseSeries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// Allow subtypes to add additional fields\n \t...\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue","status":"modified","linesAdded":3,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n@@ -18,6 +18,9 @@\n \t// Release info - present in first-party components\n \trelease?: _\n \tsource?: _\n+\n+\t// Release series - which platform release series this component belongs to\n+\treleaseSeries?: _\n \n \t// Upstream info - present in external components\n \tupstream?: _\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue","status":"modified","linesAdded":8,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n@@ -1,10 +1,18 @@\n package framework\n+\n+import \"strings\"\n \n // #PlatformRelease represents a complete platform release.\n // It unifies the manifest metadata with component configuration definitions.\n #PlatformRelease: {\n \t// platformVersion is the version number of this platform release\n \tplatformVersion!: string\n+\n+\t// series identifies the release series for this platform release.\n+\t// The main series (default) uses versions like \"2025.01.23-0\".\n+\t// Named series use versions like \"2025.01.23-0-acme\".\n+\t// Series names are case-insensitive and normalized to lowercase.\n+\tseries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// components lists all components included in this platform release\n \t// with their versions and commit SHAs for immutability tracking\n"}],"linesAdded":22,"linesRemoved":1,"totalFiles":45,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"added","fileDiffs":[{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue","status":"modified","linesAdded":11,"linesRemoved":1,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/component.cue\n@@ -2,7 +2,10 @@\n // Components are the fundamental building blocks that make up a release bundle.\n package framework\n \n-import \"time\"\n+import (\n+\t\"strings\"\n+\t\"time\"\n+)\n \n // Pattern for 40-character lowercase git SHA\n #GitSHA: =~\"^[a-f0-9]{40}$\"\n@@ -77,6 +80,13 @@\n \t// Source repository information for the component.\n \t// Used for changelog generation and tracking component provenance.\n \tsource?: #Source\n+\n+\t// Release series for this component. Controls which platform release series\n+\t// can include this component. Components with releaseSeries: \"main\" (the default)\n+\t// can be included in any series. Components with a specific series (e.g., \"acme\")\n+\t// can only be included in that series, and will prompt for confirmation if\n+\t// included in a different series.\n+\treleaseSeries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// Allow subtypes to add additional fields\n \t...\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue","status":"modified","linesAdded":3,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/concrete.cue\n@@ -18,6 +18,9 @@\n \t// Release info - present in first-party components\n \trelease?: _\n \tsource?: _\n+\n+\t// Release series - which platform release series this component belongs to\n+\treleaseSeries?: _\n \n \t// Upstream info - present in external components\n \tupstream?: _\n"},{"sectionName":"out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue","status":"modified","linesAdded":8,"linesRemoved":0,"unifiedDiff":"--- a/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n+++ b/out/bundle-generate-all-artifacts/output/cue.mod/pkg/github.com/poolsideai/forge/pkg/distribution/framework/platform.cue\n@@ -1,10 +1,18 @@\n package framework\n+\n+import \"strings\"\n \n // #PlatformRelease represents a complete platform release.\n // It unifies the manifest metadata with component configuration definitions.\n #PlatformRelease: {\n \t// platformVersion is the version number of this platform release\n \tplatformVersion!: string\n+\n+\t// series identifies the release series for this platform release.\n+\t// The main series (default) uses versions like \"2025.01.23-0\".\n+\t// Named series use versions like \"2025.01.23-0-acme\".\n+\t// Series names are case-insensitive and normalized to lowercase.\n+\tseries: *\"main\" | =~\"^[a-z0-9][a-z0-9-]*$\" \u0026 strings.MaxRunes(32)\n \n \t// components lists all components included in this platform release\n \t// with their versions and commit SHAs for immutability tracking\n"}],"linesAdded":22,"linesRemoved":1,"totalFiles":30,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"bundle-generate-full":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":21,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":36,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"bundle-generate-minimal":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"bundle-generate-selective-artifacts":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"bundle-spec-release":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":4,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":4,"expectsError":false},"bundle-spec-invalid-array":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":4,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"component-build":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":12,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":20,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":22,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":4,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"component-codegen":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":6,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":6,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":6,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"component-list":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"component-release":{"bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":15,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":6,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":9,"expectsError":false},"prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":9,"expectsError":false}},"component-show-all":{"bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"component-show-basic":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false}},"component-show-broken":{"bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"component-show-builds":{"bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false}},"component-show-builds-json":{"bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-builds-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-builds-json/stdout.txt\n+++ b/out/component-show-builds-json/stdout.txt\n@@ -32,6 +32,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n }\n \n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-builds-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-builds-json/stdout.txt\n+++ b/out/component-show-builds-json/stdout.txt\n@@ -45,6 +45,7 @@\n },\n \"githubRepo\": \"example/repo\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n }\n \n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-builds-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-builds-json/stdout.txt\n+++ b/out/component-show-builds-json/stdout.txt\n@@ -38,6 +38,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n }\n \n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"prune-builds-edge-cases":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-builds-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-builds-json/stdout.txt\n+++ b/out/component-show-builds-json/stdout.txt\n@@ -32,6 +32,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n }\n \n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false}},"component-show-releases":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"component-show-releases-json":{"bundle-generate":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-releases-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-releases-json/stdout.txt\n+++ b/out/component-show-releases-json/stdout.txt\n@@ -14,6 +14,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"releases\": [\n {\n \"metadata\": {\n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-releases-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-releases-json/stdout.txt\n+++ b/out/component-show-releases-json/stdout.txt\n@@ -14,6 +14,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"releases\": [\n {\n \"metadata\": {\n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-releases-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-releases-json/stdout.txt\n+++ b/out/component-show-releases-json/stdout.txt\n@@ -14,6 +14,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"releases\": [\n {\n \"metadata\": {\n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-releases-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-releases-json/stdout.txt\n+++ b/out/component-show-releases-json/stdout.txt\n@@ -22,6 +22,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"releases\": [\n {\n \"metadata\": {\n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"forge-preonboarding":{"status":"added","fileDiffs":[{"sectionName":"out/component-show-releases-json/stdout.txt","status":"modified","linesAdded":1,"linesRemoved":0,"unifiedDiff":"--- a/out/component-show-releases-json/stdout.txt\n+++ b/out/component-show-releases-json/stdout.txt\n@@ -19,6 +19,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"releases\": [\n {\n \"metadata\": {\n"}],"linesAdded":1,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"component-validate":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"pdm-generate":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"pdm-generate-no-builtin-aliases":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"platform-release-config-show":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"platform-release-create":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-spec-invalid-array":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true}},"platform-release-create-transient":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"bundle-spec-invalid-array":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":3,"expectsError":false},"platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true},"prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":2,"expectsError":true}},"platform-release-list":{"bundle-generate":{"status":"changed","fileDiffs":[{"sectionName":"out/platform-release-list/stdout.txt","status":"modified","linesAdded":3,"linesRemoved":2,"unifiedDiff":"--- a/out/platform-release-list/stdout.txt\n+++ b/out/platform-release-list/stdout.txt\n@@ -1,4 +1,4 @@\n-VERSION TYPE COMPONENT COUNT\n-------- ---- ---------------\n-v0.0.1 release 6\n+VERSION SERIES TYPE COMPONENT COUNT\n+------- ------ ---- ---------------\n+v0.0.1 main release 6\n \n"}],"linesAdded":3,"linesRemoved":2,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"changed","fileDiffs":[{"sectionName":"out/platform-release-list/stdout.txt","status":"modified","linesAdded":4,"linesRemoved":3,"unifiedDiff":"--- a/out/platform-release-list/stdout.txt\n+++ b/out/platform-release-list/stdout.txt\n@@ -1,5 +1,5 @@\n-VERSION TYPE COMPONENT COUNT\n-------- ---- ---------------\n-1.20251203 release 7\n-1.20251208 release 10\n+VERSION SERIES TYPE COMPONENT COUNT\n+------- ------ ---- ---------------\n+1.20251203 main release 7\n+1.20251208 main release 10\n \n"}],"linesAdded":4,"linesRemoved":3,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"changed","fileDiffs":[{"sectionName":"out/platform-release-list/stdout.txt","status":"modified","linesAdded":5,"linesRemoved":4,"unifiedDiff":"--- a/out/platform-release-list/stdout.txt\n+++ b/out/platform-release-list/stdout.txt\n@@ -1,6 +1,6 @@\n-VERSION TYPE COMPONENT COUNT\n-------- ---- ---------------\n-1.20251203 release 7\n-1.20251208 release 10\n-1.20251211 release 11\n+VERSION SERIES TYPE COMPONENT COUNT\n+------- ------ ---- ---------------\n+1.20251203 main release 7\n+1.20251208 main release 10\n+1.20251211 main release 11\n \n"}],"linesAdded":5,"linesRemoved":4,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"changed","fileDiffs":[{"sectionName":"out/platform-release-list/stdout.txt","status":"modified","linesAdded":3,"linesRemoved":2,"unifiedDiff":"--- a/out/platform-release-list/stdout.txt\n+++ b/out/platform-release-list/stdout.txt\n@@ -1,4 +1,4 @@\n-VERSION TYPE COMPONENT COUNT\n-------- ---- ---------------\n-v0.0.1 release 6\n+VERSION SERIES TYPE COMPONENT COUNT\n+------- ------ ---- ---------------\n+v0.0.1 main release 6\n \n"}],"linesAdded":3,"linesRemoved":2,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"platform-release-list-json":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"platform-release-show":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"platform-release-show-json":{"bundle-generate":{"status":"added","fileDiffs":[{"sectionName":"out/platform-release-show-json/stdout.txt","status":"modified","linesAdded":6,"linesRemoved":0,"unifiedDiff":"--- a/out/platform-release-show-json/stdout.txt\n+++ b/out/platform-release-show-json/stdout.txt\n@@ -16,6 +16,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"atlas\",\n@@ -40,6 +41,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"core-api\",\n@@ -67,6 +69,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"pool\",\n@@ -94,6 +97,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"splash\",\n@@ -121,6 +125,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vs-extension\",\n@@ -148,6 +153,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vscode-extension\",\n"}],"linesAdded":6,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"added","fileDiffs":[{"sectionName":"out/platform-release-show-json/stdout.txt","status":"modified","linesAdded":7,"linesRemoved":0,"unifiedDiff":"--- a/out/platform-release-show-json/stdout.txt\n+++ b/out/platform-release-show-json/stdout.txt\n@@ -17,6 +17,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"atlas\",\n@@ -42,6 +43,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"core-api\",\n@@ -64,6 +66,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"web-assistant\",\n@@ -91,6 +94,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"pool\",\n@@ -118,6 +122,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"splash\",\n@@ -145,6 +150,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vs-extension\",\n@@ -172,6 +178,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vscode-extension\",\n"}],"linesAdded":7,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"added","fileDiffs":[{"sectionName":"out/platform-release-show-json/stdout.txt","status":"modified","linesAdded":7,"linesRemoved":0,"unifiedDiff":"--- a/out/platform-release-show-json/stdout.txt\n+++ b/out/platform-release-show-json/stdout.txt\n@@ -17,6 +17,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"atlas\",\n@@ -41,6 +42,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"core-api\",\n@@ -62,6 +64,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"web-assistant\",\n@@ -89,6 +92,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"pool\",\n@@ -116,6 +120,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"splash\",\n@@ -143,6 +148,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vs-extension\",\n@@ -170,6 +176,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vscode-extension\",\n"}],"linesAdded":7,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"added","fileDiffs":[{"sectionName":"out/platform-release-show-json/stdout.txt","status":"modified","linesAdded":6,"linesRemoved":0,"unifiedDiff":"--- a/out/platform-release-show-json/stdout.txt\n+++ b/out/platform-release-show-json/stdout.txt\n@@ -16,6 +16,7 @@\n \"branch\": \"main\",\n \"githubRepo\": \"poolsideai/atlas\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"atlas\",\n@@ -45,6 +46,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"image\"\n },\n \"name\": \"core-api\",\n@@ -72,6 +74,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"pool\",\n@@ -99,6 +102,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"splash\",\n@@ -126,6 +130,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vs-extension\",\n@@ -153,6 +158,7 @@\n },\n \"githubRepo\": \"poolsideai/forge\"\n },\n+ \"releaseSeries\": \"main\",\n \"type\": \"binary\"\n },\n \"name\": \"vscode-extension\",\n"}],"linesAdded":6,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"prune-builds-edge-cases":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false}},"tank-prune-builds":{"bundle-generate":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-generate-full-tank":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-invalid-array":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-codegen-simple":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-types-external-dockerfile":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"forge-preonboarding":{"status":"no-output","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false}},"workspace-discovery":{"bundle-generate":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-generate-full-tank":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"bundle-spec-invalid-array":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"bundle-spec-mixed-valid-invalid":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-all-ready":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-broken-cue":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-build-push":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-codegen-simple":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":0,"expectsError":false},"component-release":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"component-types-external-dockerfile":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"forge-preonboarding":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"platform-builds-prune":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false},"prune-builds-edge-cases":{"status":"unchanged","linesAdded":0,"linesRemoved":0,"totalFiles":1,"expectsError":false}}},"summary":{"totalCases":14,"changedCases":9,"totalSuites":28,"suitesWithDiffs":5,"totalLinesAdded":116,"totalLinesRemoved":14}}; | |
| var caseIndex = {}; | |
| report.cases.forEach(function(c) { caseIndex[c.name] = c; }); | |
| var suiteIndex = {}; | |
| report.suites.forEach(function(s) { suiteIndex[s.name] = s; }); | |
| var transposed = false; | |
| function getCell(suite, caseName) { | |
| return cellData[suite + '/' + caseName]; | |
| } | |
| function cssClass(status) { | |
| return 'c-' + status; | |
| } | |
| function renderMatrix() { | |
| var container = document.getElementById('matrix-container'); | |
| var rowItems = transposed ? report.cases : report.suites; | |
| var colItems = transposed ? report.suites : report.cases; | |
| var rowLabel = transposed ? 'Case' : 'Suite'; | |
| var colLabel = transposed ? 'Suite' : 'Case'; | |
| var table = document.createElement('table'); | |
| table.className = 'matrix'; | |
| var thead = document.createElement('thead'); | |
| var hrow = document.createElement('tr'); | |
| var origin = document.createElement('th'); | |
| origin.className = 'origin'; | |
| origin.textContent = rowLabel + ' \\ ' + colLabel; | |
| hrow.appendChild(origin); | |
| colItems.forEach(function(col) { | |
| var th = document.createElement('th'); | |
| th.className = 'col-hdr'; | |
| var span = document.createElement('span'); | |
| span.textContent = col.name; | |
| span.title = col.name; | |
| th.appendChild(span); | |
| hrow.appendChild(th); | |
| }); | |
| thead.appendChild(hrow); | |
| table.appendChild(thead); | |
| var tbody = document.createElement('tbody'); | |
| rowItems.forEach(function(row) { | |
| var tr = document.createElement('tr'); | |
| var th = document.createElement('th'); | |
| th.className = 'row-hdr'; | |
| th.textContent = row.name; | |
| th.title = row.name; | |
| tr.appendChild(th); | |
| colItems.forEach(function(col) { | |
| var suite = transposed ? col.name : row.name; | |
| var caseName = transposed ? row.name : col.name; | |
| var cell = getCell(suite, caseName); | |
| var td = document.createElement('td'); | |
| td.className = 'cell ' + cssClass(cell ? cell.status : 'no-output'); | |
| td.dataset.suite = suite; | |
| td.dataset['case'] = caseName; | |
| if (cell && cell.fileDiffs && cell.fileDiffs.length > 0) { | |
| td.title = '+' + cell.linesAdded + '/-' + cell.linesRemoved; | |
| } | |
| td.addEventListener('click', onCellClick); | |
| tr.appendChild(td); | |
| }); | |
| tbody.appendChild(tr); | |
| }); | |
| table.appendChild(tbody); | |
| container.innerHTML = ''; | |
| container.appendChild(table); | |
| } | |
| function onCellClick() { | |
| var suite = this.dataset.suite; | |
| var caseName = this.dataset['case']; | |
| var cell = getCell(suite, caseName); | |
| var ci = caseIndex[caseName]; | |
| var si = suiteIndex[suite]; | |
| document.querySelectorAll('td.cell.active').forEach(function(el) { el.classList.remove('active'); }); | |
| this.classList.add('active'); | |
| var panel = document.getElementById('detail-panel'); | |
| if (!cell || !cell.fileDiffs || cell.fileDiffs.length === 0) { | |
| document.getElementById('detail-title').textContent = suite + ' / ' + caseName; | |
| document.getElementById('detail-subtitle').textContent = cell ? cell.status : 'no output'; | |
| populateDescBoxes(suite, caseName, si, ci); | |
| document.getElementById('detail-stats').innerHTML = '<span style="color:#999">No diffs to display</span>'; | |
| document.getElementById('detail-body').innerHTML = ''; | |
| panel.classList.add('active'); | |
| return; | |
| } | |
| document.getElementById('detail-title').textContent = suite + ' / ' + caseName; | |
| document.getElementById('detail-subtitle').textContent = cell.status + ' \u2014 ' + cell.fileDiffs.length + ' file(s)'; | |
| populateDescBoxes(suite, caseName, si, ci); | |
| document.getElementById('detail-stats').innerHTML = | |
| '<span class="add">+' + cell.linesAdded + '</span>' + | |
| '<span class="del"> -' + cell.linesRemoved + '</span>' + | |
| '<span> across ' + cell.totalFiles + ' file(s)</span>' + | |
| (cell.expectsError ? '<span style="margin-left:8px;color:#856404">expects error</span>' : ''); | |
| var body = document.getElementById('detail-body'); | |
| body.innerHTML = ''; | |
| cell.fileDiffs.forEach(function(fd) { | |
| var div = document.createElement('div'); | |
| div.className = 'file-diff'; | |
| var hdr = document.createElement('div'); | |
| hdr.className = 'file-diff-header'; | |
| var nameSpan = document.createElement('span'); | |
| nameSpan.textContent = fd.sectionName; | |
| var badge = document.createElement('span'); | |
| badge.className = 'badge badge-' + fd.status; | |
| badge.textContent = fd.status; | |
| nameSpan.appendChild(badge); | |
| var stats = document.createElement('span'); | |
| stats.className = 'file-diff-stats'; | |
| stats.innerHTML = '<span class="add">+' + fd.linesAdded + '</span> <span class="del">-' + fd.linesRemoved + '</span>'; | |
| hdr.appendChild(nameSpan); | |
| hdr.appendChild(stats); | |
| div.appendChild(hdr); | |
| if (fd.unifiedDiff) { | |
| var pre = document.createElement('pre'); | |
| pre.className = 'diff'; | |
| fd.unifiedDiff.split('\n').forEach(function(line) { | |
| var span = document.createElement('span'); | |
| if (line.startsWith('@@')) { | |
| span.className = 'diff-hunk'; | |
| } else if (line.startsWith('+') && !line.startsWith('+++')) { | |
| span.className = 'diff-add'; | |
| } else if (line.startsWith('-') && !line.startsWith('---')) { | |
| span.className = 'diff-del'; | |
| } else { | |
| span.className = 'diff-ctx'; | |
| } | |
| span.textContent = line; | |
| pre.appendChild(span); | |
| }); | |
| div.appendChild(pre); | |
| } | |
| body.appendChild(div); | |
| }); | |
| panel.classList.add('active'); | |
| } | |
| function makeSourceLink(container, sourcePath) { | |
| container.innerHTML = ''; | |
| if (!sourcePath) return; | |
| if (report.repoURL && report.linkRef) { | |
| var parts = sourcePath.split(':'); | |
| var url = report.repoURL + '/blob/' + report.linkRef + '/' + parts[0]; | |
| if (parts.length > 1) url += '#L' + parts[1]; | |
| var a = document.createElement('a'); | |
| a.href = url; | |
| a.target = '_blank'; | |
| a.rel = 'noopener'; | |
| a.textContent = sourcePath; | |
| container.appendChild(a); | |
| } else { | |
| container.textContent = sourcePath; | |
| } | |
| } | |
| function populateDescBoxes(suite, caseName, si, ci) { | |
| document.getElementById('desc-suite-label').textContent = 'Suite: ' + suite; | |
| makeSourceLink(document.getElementById('desc-suite-src'), si ? si.sourcePath : ''); | |
| document.getElementById('desc-suite-text').textContent = si ? (si.casesWithDiffs + '/' + si.casesWithOutput + ' cases with diffs') : 'No description'; | |
| document.getElementById('desc-case-label').textContent = 'Case: ' + caseName; | |
| makeSourceLink(document.getElementById('desc-case-src'), ci ? ci.sourcePath : ''); | |
| document.getElementById('desc-case-text').textContent = describeCaseInfo(ci); | |
| } | |
| function describeCaseInfo(ci) { | |
| if (!ci) return 'No description'; | |
| var parts = []; | |
| if (ci.componentCount > 0) parts.push(ci.componentCount + ' component(s)'); | |
| if (ci.hasWorkspace) parts.push('workspace'); | |
| if (ci.hasTank) parts.push('tank'); | |
| if (ci.inputChanged) parts.push('inputs changed'); | |
| if (ci.expectErrors && ci.expectErrors.length > 0) parts.push('expects errors: ' + ci.expectErrors.join(', ')); | |
| return parts.length > 0 ? parts.join(' \u00b7 ') : 'No description'; | |
| } | |
| document.getElementById('detail-close').addEventListener('click', function() { | |
| document.getElementById('detail-panel').classList.remove('active'); | |
| document.querySelectorAll('td.cell.active').forEach(function(el) { el.classList.remove('active'); }); | |
| }); | |
| document.getElementById('transpose-btn').addEventListener('click', function() { | |
| transposed = !transposed; | |
| this.classList.toggle('active', transposed); | |
| document.getElementById('detail-panel').classList.remove('active'); | |
| renderMatrix(); | |
| }); | |
| renderMatrix(); | |
| </script> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment