fix: remove false "importing" banner, hide empty sparkline Import status now reports "ready" when the git mirror exists (on- demand parsing provides HEAD schema data). The "importing" state was a leftover from server-side import which has been removed. Schema evolution sparkline is hidden when all commits have 0 vertex counts (no vcs store data). It only renders when git-remote-cospan has pushed full commit-level schemas.

Author: Aaron Steven White
Commit 126cba79240bff164cf1a22284c308edee157cf0
Parent: 167ce82f2c
Structural diff unavailable

These commits were pushed via plain git push, so no pre-parsed schemas are available. Install git-remote-cospan and re-push via panproto:// to see scope-level changes, breaking change detection, and semantic diffs.

brew install panproto/tap/git-remote-cospan
2 files changed +18 -10
@@ -103,7 +103,7 @@
103103 		importStatus={data.importStatus}
104104 	/>
105105 
106-	{#if (data.schemaStats?.commits?.length ?? 0) > 1}
106+	{#if (data.schemaStats?.commits?.length ?? 0) > 1 && data.schemaStats.commits.some(c => c.totalVertexCount > 0)}
107107 		<div class="mb-4 rounded-lg border border-border bg-surface-1 px-4 py-3">
108108 			<h3 class="mb-2 text-xs font-semibold uppercase tracking-wider text-text-muted">
109109 				Schema Evolution
@@ -41,26 +41,34 @@ pub async fn get_import_status(
4141         .len()
4242         > 0;
4343 
44-    let has_vcs = store.exists(&params.did, &params.repo);
45-
4644     drop(store);
4745 
46+    // Schema data is available via two paths:
47+    // 1. Full import via git-remote-cospan (marks file exists)
48+    // 2. On-demand parsing (getProjectSchema parses HEAD files on each request)
49+    //
50+    // If marks exist, the full commit history is available.
51+    // If no marks but mirror exists, on-demand parsing provides HEAD data.
52+    // The "importing" state only applies when git-remote-cospan is actively
53+    // pushing schema objects (detected by marks file growing).
4854     if has_marks {
4955         Ok(Json(json!({
5056             "status": "ready",
51-            "message": "Schema analysis complete.",
57+            "message": "Full schema history available.",
5258             "ready": true,
5359         })))
54-    } else if has_vcs {
60+    } else if has_mirror {
61+        // Mirror exists but no marks: on-demand parsing provides HEAD data.
62+        // Full commit history requires pushing via git-remote-cospan.
5563         Ok(Json(json!({
56-            "status": "importing",
57-            "message": "Schema analysis in progress. Structural data will appear shortly.",
58-            "ready": false,
64+            "status": "ready",
65+            "message": "Schema data available for HEAD. Push via git-remote-cospan for full commit history.",
66+            "ready": true,
5967         })))
6068     } else {
6169         Ok(Json(json!({
62-            "status": "pending",
63-            "message": "Schema analysis has not started yet.",
70+            "status": "no_repo",
71+            "message": "Repository not found on this node.",
6472             "ready": false,
6573         })))
6674     }
cospan · schematic version control on atproto built on AT Protocol