Show missing dependencies in dependency graph instead of failing
When dependencies are not cached on the server (common since we removed proactive caching), the dependency graph now: - Continues resolving what it can find - Shows missing dependencies in a separate section with amber styling - Displays the constraint and which package required them - Updates the header stats to show "X cached • Y not cached" This provides a better user experience than showing an error when some dependencies haven't been downloaded yet.
This commit is contained in:
@@ -244,7 +244,11 @@ function DependencyGraph({ projectName, packageName, tagName, onClose }: Depende
|
||||
<span>{projectName}/{packageName} @ {tagName}</span>
|
||||
{resolution && (
|
||||
<span className="graph-stats">
|
||||
{resolution.artifact_count} packages • {formatBytes(resolution.total_size)} total
|
||||
{resolution.artifact_count} cached
|
||||
{resolution.missing && resolution.missing.length > 0 && (
|
||||
<span className="missing-count"> • {resolution.missing.length} not cached</span>
|
||||
)}
|
||||
• {formatBytes(resolution.total_size)} total
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
@@ -307,6 +311,22 @@ function DependencyGraph({ projectName, packageName, tagName, onClose }: Depende
|
||||
)}
|
||||
</div>
|
||||
|
||||
{resolution && resolution.missing && resolution.missing.length > 0 && (
|
||||
<div className="missing-dependencies">
|
||||
<h3>Not Cached ({resolution.missing.length})</h3>
|
||||
<p className="missing-hint">These dependencies are referenced but not yet cached on the server.</p>
|
||||
<ul className="missing-list">
|
||||
{resolution.missing.map((dep, i) => (
|
||||
<li key={i} className="missing-item">
|
||||
<span className="missing-name">{dep.project}/{dep.package}</span>
|
||||
{dep.constraint && <span className="missing-constraint">@{dep.constraint}</span>}
|
||||
{dep.required_by && <span className="missing-required-by">← {dep.required_by}</span>}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{hoveredNode && (
|
||||
<div className="graph-tooltip">
|
||||
<strong>{hoveredNode.project}/{hoveredNode.package}</strong>
|
||||
|
||||
Reference in New Issue
Block a user