open source is social v-it.org
0
fork

Configure Feed

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

ship network-explorer cap + fix cursor initialization

- Record network-explorer-launch cap
- Add .vit project config and README
- Fix explore worker: seed cursor 24h back on first run, always advance cursor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

+17 -4
+5
.vit/README.md
··· 1 + # .v̇it 2 + 3 + this project participates in the social open source network. capabilities flow through people and agents you trust — not through gatekeepers or centralized platforms. the future of open source is social. 4 + 5 + learn more at [v-it.org](https://v-it.org)
+1
.vit/caps.jsonl
··· 1 1 {"ts":"2026-02-12T03:56:05.612Z","did":"did:plc:gnmc53xy3rhbyepipqv2b3rl","rkey":"3men3vw76522p","collection":"org.v-it.cap","pds":"https://bsky.social","uri":"at://did:plc:gnmc53xy3rhbyepipqv2b3rl/org.v-it.cap/3men3vw76522p","cid":"bafyreidlziwnl33r6j45ayedaxr2x2745crbnoe6hgao5olikjeynahytu"} 2 + {"ts":"2026-03-09T13:33:55.478Z","did":"did:plc:gnmc53xy3rhbyepipqv2b3rl","rkey":"3mgmxu7cptc2j","ref":"network-explorer-launch","collection":"org.v-it.cap","pds":"https://bsky.social","uri":"at://did:plc:gnmc53xy3rhbyepipqv2b3rl/org.v-it.cap/3mgmxu7cptc2j","cid":"bafyreicocgzx6ges4nzdybnyowmudqnaiqrxd7hnrzf44c5kn7i65kvfhu"}
+3
.vit/config.json
··· 1 + { 2 + "beacon": "vit:github.com/solpbc/vit" 3 + }
+8 -4
explore/src/index.js
··· 30 30 }, 31 31 32 32 async scheduled(event, env, ctx) { 33 - const cursor = await getCursor(env); 34 - const result = await streamEvents(env, cursor); 35 - if (result.latestCursor) { 36 - await saveCursor(env, result.latestCursor); 33 + let cursor = await getCursor(env); 34 + // On first run, start 24h ago to catch everything in the Jetstream buffer 35 + if (!cursor) { 36 + cursor = String((Date.now() - 24 * 60 * 60 * 1000) * 1000); 37 37 } 38 + const result = await streamEvents(env, cursor); 39 + // Always advance cursor — use latest event time, or current time if no events 40 + const nextCursor = result.latestCursor || String(Date.now() * 1000); 41 + await saveCursor(env, nextCursor); 38 42 }, 39 43 };