fix: align negotiate response with panproto-xrpc NegotiateResult panproto-xrpc::NegotiateResult expects { need, refs } where refs is the list of (name, target) pairs the remote has. The handler was returning { need, wantResolved } which the client couldn't decode.

Author: Aaron Steven White
Commit 078fb38193cb7b7beea6dec51dc36fd5eeb2ba10
Parent: 613ec8ea29
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
1 file changed +9 -2
@@ -72,10 +72,17 @@ pub async fn negotiate(
7272         }
7373     }
7474 
75-    let want_resolved: Vec<String> = want_ids.iter().map(|id| id.to_string()).collect();
75+    // Wire format expected by panproto-xrpc::NegotiateResult: { need, refs }
76+    // where refs is the list of (name, target) pairs the remote currently has.
77+    let refs: Vec<(String, String)> = fs_store
78+        .list_refs("refs/")
79+        .unwrap_or_default()
80+        .into_iter()
81+        .map(|(name, id)| (name, id.to_string()))
82+        .collect();
7683 
7784     Ok(Json(serde_json::json!({
7885         "need": need,
79-        "wantResolved": want_resolved,
86+        "refs": refs,
8087     })))
8188 }
cospan · schematic version control on atproto built on AT Protocol