open source is social v-it.org
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Show publisher handle in vit skim output

Resolve DID→handle from following.json and describeRepo so each cap
prints "by: @handle". JSON output gets a synthetic _handle field.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+16 -1
+16 -1
src/cmd/skim.js
··· 45 45 const { agent } = await restoreAgent(did); 46 46 if (verbose) console.log('[verbose] session restored'); 47 47 48 - // build list of DIDs to query 48 + // build list of DIDs to query and DID→handle map 49 + const handleMap = new Map(); 49 50 let dids; 50 51 if (opts.handle) { 51 52 const handle = opts.handle.replace(/^@/, ''); 52 53 const resolved = await agent.resolveHandle({ handle }); 53 54 dids = [resolved.data.did]; 55 + handleMap.set(resolved.data.did, handle); 54 56 if (verbose) console.log(`[verbose] resolved ${handle} to ${resolved.data.did}`); 55 57 } else { 56 58 const following = readFollowing(); 59 + for (const e of following) handleMap.set(e.did, e.handle); 57 60 dids = following.map(e => e.did); 58 61 dids.push(did); 59 62 if (verbose) console.log(`[verbose] querying ${dids.length} accounts (${dids.length - 1} follows + self)`); 60 63 } 61 64 65 + // resolve own handle if not already known 66 + if (!handleMap.has(did)) { 67 + try { 68 + const desc = await agent.com.atproto.repo.describeRepo({ repo: did }); 69 + handleMap.set(did, desc.data.handle); 70 + } catch { 71 + if (verbose) console.log(`[verbose] could not resolve handle for ${did}`); 72 + } 73 + } 74 + 62 75 // fetch caps from each DID 63 76 const allCaps = []; 64 77 for (const repoDid of dids) { ··· 70 83 }); 71 84 const caps = res.data.records.filter(r => r.value.beacon === beacon); 72 85 if (verbose) console.log(`[verbose] ${repoDid}: ${res.data.records.length} caps, ${caps.length} matching beacon`); 86 + for (const cap of caps) cap._handle = handleMap.get(repoDid) || repoDid; 73 87 allCaps.push(...caps); 74 88 } catch (err) { 75 89 if (verbose) console.log(`[verbose] ${repoDid}: error fetching caps: ${err.message}`); ··· 98 112 const title = rec.value.title || ''; 99 113 const description = rec.value.description || ''; 100 114 console.log(`ref: ${ref}`); 115 + console.log(`by: @${rec._handle}`); 101 116 if (title) console.log(`title: ${title}`); 102 117 if (description) console.log(`description: ${description}`); 103 118 console.log();