refactor: move VCS operations fully into dev.panproto.node.* namespace The dev.cospan.node.* namespace is deprecated for VCS operations. panproto owns all VCS primitives (listRefs, getObject, putObject, setRef, listCommits, diffCommits, getHead, negotiate, getRepoInfo). The cospan namespace is reserved for cospan-specific features (social: stars, follows, issues, MRs, repo metadata). Changes: - Node router: drop dev.cospan.node.* VCS routes, keep only dev.panproto.node.* - Appview proxies: call dev.panproto.node.* upstream, serve at dev.panproto.node.proxy.* - Frontend node.ts and vcs.ts: call panproto namespace - Test files updated

Author: Aaron Steven White
Commit 123ce64358259a1bbb2ea1ffea4b87bf2f114e39
Parent: 80872378da
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
7 files changed +61 -82
@@ -74,7 +74,7 @@ export function listRefs(
7474 	did: string,
7575 	repo: string
7676 ): Promise<NodeRefListResponse> {
77-	return nodeXrpcQuery<NodeRefListResponse>(nodeUrl, 'dev.cospan.node.listRefs', {
77+	return nodeXrpcQuery<NodeRefListResponse>(nodeUrl, 'dev.panproto.node.listRefs', {
7878 		did,
7979 		repo
8080 	});
@@ -86,7 +86,7 @@ export function getObject(
8686 	repo: string,
8787 	id: string
8888 ): Promise<NodeObject> {
89-	return nodeXrpcQuery<NodeObject>(nodeUrl, 'dev.cospan.node.getObject', {
89+	return nodeXrpcQuery<NodeObject>(nodeUrl, 'dev.panproto.node.getObject', {
9090 		did,
9191 		repo,
9292 		id
@@ -98,7 +98,7 @@ export function getHead(
9898 	did: string,
9999 	repo: string
100100 ): Promise<NodeHead> {
101-	return nodeXrpcQuery<NodeHead>(nodeUrl, 'dev.cospan.node.getHead', {
101+	return nodeXrpcQuery<NodeHead>(nodeUrl, 'dev.panproto.node.getHead', {
102102 		did,
103103 		repo
104104 	});
@@ -109,7 +109,7 @@ export function getRepoInfo(
109109 	did: string,
110110 	repo: string
111111 ): Promise<NodeRepoInfo> {
112-	return nodeXrpcQuery<NodeRepoInfo>(nodeUrl, 'dev.cospan.node.getRepoInfo', {
112+	return nodeXrpcQuery<NodeRepoInfo>(nodeUrl, 'dev.panproto.node.getRepoInfo', {
113113 		did,
114114 		repo
115115 	});
@@ -87,7 +87,7 @@ export function listCommits(params: {
8787 	};
8888 	if (params.ref) query.ref = params.ref;
8989 	if (params.limit) query.limit = params.limit;
90-	return xrpcQuery<ListCommitsResponse>('dev.cospan.node.proxy.listCommits', query);
90+	return xrpcQuery<ListCommitsResponse>('dev.panproto.node.proxy.listCommits', query);
9191 }
9292 
9393 export function diffCommits(params: {
@@ -104,7 +104,7 @@ export function diffCommits(params: {
104104 		to: params.to,
105105 	};
106106 	if (params.contextLines !== undefined) query.contextLines = params.contextLines;
107-	return xrpcQuery<DiffCommitsResponse>('dev.cospan.node.proxy.diffCommits', query);
107+	return xrpcQuery<DiffCommitsResponse>('dev.panproto.node.proxy.diffCommits', query);
108108 }
109109 
110110 // ─── Commit-graph lane assignment ──────────────────────────────────
@@ -141,23 +141,23 @@ pub fn router(state: Arc<AppState>) -> Router {
141141         )
142142         // Node proxy (fetches from cospan nodes via panproto-xrpc)
143143         .route(
144-            "/xrpc/dev.cospan.node.proxy.listRefs",
144+            "/xrpc/dev.panproto.node.proxy.listRefs",
145145             get(node_proxy::proxy_list_refs),
146146         )
147147         .route(
148-            "/xrpc/dev.cospan.node.proxy.getHead",
148+            "/xrpc/dev.panproto.node.proxy.getHead",
149149             get(node_proxy::proxy_get_head),
150150         )
151151         .route(
152-            "/xrpc/dev.cospan.node.proxy.getObject",
152+            "/xrpc/dev.panproto.node.proxy.getObject",
153153             get(node_proxy::proxy_get_object),
154154         )
155155         .route(
156-            "/xrpc/dev.cospan.node.proxy.listCommits",
156+            "/xrpc/dev.panproto.node.proxy.listCommits",
157157             get(node_proxy::proxy_list_commits),
158158         )
159159         .route(
160-            "/xrpc/dev.cospan.node.proxy.diffCommits",
160+            "/xrpc/dev.panproto.node.proxy.diffCommits",
161161             get(node_proxy::proxy_diff_commits),
162162         )
163163         .route(
@@ -45,7 +45,7 @@ pub struct DiffCommitsParams {
4545     pub context_lines: Option<i64>,
4646 }
4747 
48-/// GET /xrpc/dev.cospan.node.proxy.listRefs
48+/// GET /xrpc/dev.panproto.node.proxy.listRefs
4949 /// Proxies to the node hosting this repo.
5050 pub async fn proxy_list_refs(
5151     State(state): State<Arc<AppState>>,
@@ -55,7 +55,7 @@ pub async fn proxy_list_refs(
5555         &state,
5656         &params.did,
5757         &params.repo,
58-        "dev.cospan.node.listRefs",
58+        "dev.panproto.node.listRefs",
5959         &[],
6060     )
6161     .await
@@ -63,7 +63,7 @@ pub async fn proxy_list_refs(
6363     Ok(Json(result))
6464 }
6565 
66-/// GET /xrpc/dev.cospan.node.proxy.getHead
66+/// GET /xrpc/dev.panproto.node.proxy.getHead
6767 pub async fn proxy_get_head(
6868     State(state): State<Arc<AppState>>,
6969     Query(params): Query<RepoParams>,
@@ -84,7 +84,7 @@ pub async fn proxy_get_head(
8484     Ok(Json(serde_json::json!({ "head": head_json })))
8585 }
8686 
87-/// GET /xrpc/dev.cospan.node.proxy.listCommits
87+/// GET /xrpc/dev.panproto.node.proxy.listCommits
8888 pub async fn proxy_list_commits(
8989     State(state): State<Arc<AppState>>,
9090     Query(params): Query<ListCommitsParams>,
@@ -101,7 +101,7 @@ pub async fn proxy_list_commits(
101101         &state,
102102         &params.did,
103103         &params.repo,
104-        "dev.cospan.node.listCommits",
104+        "dev.panproto.node.listCommits",
105105         &extra,
106106     )
107107     .await
@@ -110,7 +110,7 @@ pub async fn proxy_list_commits(
110110     Ok(Json(result))
111111 }
112112 
113-/// GET /xrpc/dev.cospan.node.proxy.diffCommits
113+/// GET /xrpc/dev.panproto.node.proxy.diffCommits
114114 pub async fn proxy_diff_commits(
115115     State(state): State<Arc<AppState>>,
116116     Query(params): Query<DiffCommitsParams>,
@@ -127,7 +127,7 @@ pub async fn proxy_diff_commits(
127127         &state,
128128         &params.did,
129129         &params.repo,
130-        "dev.cospan.node.diffCommits",
130+        "dev.panproto.node.diffCommits",
131131         &extra,
132132     )
133133     .await
@@ -308,7 +308,7 @@ pub struct ListTreeParams {
308308     pub path: Option<String>,
309309 }
310310 
311-/// GET /xrpc/dev.cospan.node.proxy.listTree
311+/// GET /xrpc/dev.panproto.node.proxy.listTree
312312 pub async fn proxy_list_tree(
313313     State(state): State<Arc<AppState>>,
314314     Query(params): Query<ListTreeParams>,
@@ -342,7 +342,7 @@ pub struct GetBlobParams {
342342     pub path: String,
343343 }
344344 
345-/// GET /xrpc/dev.cospan.node.proxy.getBlob
345+/// GET /xrpc/dev.panproto.node.proxy.getBlob
346346 pub async fn proxy_get_blob(
347347     State(state): State<Arc<AppState>>,
348348     Query(params): Query<GetBlobParams>,
@@ -380,7 +380,7 @@ pub async fn proxy_get_import_status(
380380     Ok(Json(result))
381381 }
382382 
383-/// GET /xrpc/dev.cospan.node.proxy.getObject
383+/// GET /xrpc/dev.panproto.node.proxy.getObject
384384 pub async fn proxy_get_object(
385385     State(state): State<Arc<AppState>>,
386386     Query(params): Query<ObjectParams>,
@@ -484,7 +484,7 @@ async fn list_commits_returns_history_with_parents() {
484484     .await;
485485 
486486     let url = format!(
487-        "{}/xrpc/dev.cospan.node.listCommits?did=did:plc:owner&repo=graph-test&limit=50",
487+        "{}/xrpc/dev.panproto.node.listCommits?did=did:plc:owner&repo=graph-test&limit=50",
488488         node.url
489489     );
490490     let client = Client::new();
@@ -515,7 +515,7 @@ async fn list_commits_returns_history_with_parents() {
515515 async fn list_commits_returns_404_for_unknown_repo() {
516516     let node = TestNode::spawn().await;
517517     let url = format!(
518-        "{}/xrpc/dev.cospan.node.listCommits?did=did:plc:nobody&repo=nothing",
518+        "{}/xrpc/dev.panproto.node.listCommits?did=did:plc:nobody&repo=nothing",
519519         node.url
520520     );
521521     let client = Client::new();
@@ -545,7 +545,7 @@ async fn diff_commits_shows_added_modified_removed_files() {
545545     .await;
546546 
547547     let url = format!(
548-        "{}/xrpc/dev.cospan.node.diffCommits?did=did:plc:owner&repo=diff-test&from={}&to={}",
548+        "{}/xrpc/dev.panproto.node.diffCommits?did=did:plc:owner&repo=diff-test&from={}&to={}",
549549         node.url, oids[0], oids[1]
550550     );
551551     let client = Client::new();
@@ -605,7 +605,7 @@ async fn diff_commits_returns_hunks_with_line_content() {
605605     .await;
606606 
607607     let url = format!(
608-        "{}/xrpc/dev.cospan.node.diffCommits?did=did:plc:owner&repo=hunk-test&from={}&to={}",
608+        "{}/xrpc/dev.panproto.node.diffCommits?did=did:plc:owner&repo=hunk-test&from={}&to={}",
609609         node.url, oids[0], oids[1]
610610     );
611611     let client = Client::new();
@@ -647,7 +647,7 @@ async fn diff_commits_reports_no_changes_for_same_commit() {
647647     .await;
648648 
649649     let url = format!(
650-        "{}/xrpc/dev.cospan.node.diffCommits?did=did:plc:owner&repo=same-test&from={}&to={}",
650+        "{}/xrpc/dev.panproto.node.diffCommits?did=did:plc:owner&repo=same-test&from={}&to={}",
651651         node.url, oids[0], oids[0]
652652     );
653653     let client = Client::new();
cospan · schematic version control on atproto built on AT Protocol