5 Commits
Author SHA1 Message Date
Kevin Codex 1f25242207 chore(hosts): move the explorer to explorer.twigpine.com
The explorer, its docs and its agent files now name explorer.twigpine.com
and node / node2 / node3.twigpine.com, and the proxy rules call the nodes
by those names. explorer.gitlawb.com forwards pages to the new address;
the API proxy, llms.txt, skill.md and the raw docs keep answering there.
The Manila node keeps its current address, and the documented node default
for ICAPTCHA_URL is unchanged because it is the value the node ships with.
2026-10-13 15:51:30 +08:00
Kevin Codex 764fd90131 feat: docs share pages — wire og-docs.png into /docs crawler metadata
/docs and /docs/:slug now rewrite to api/docs-page.ts, which swaps the
marker-delimited social-meta block in the built shell for per-section
title/description and the og-docs.png card (same mechanism as
repo-page; helpers deliberately duplicated so the prod-verified
repo-page stays untouched). Raw /docs/*.md is unaffected — the
filesystem is served before rewrites. DocsPage mirrors the titles
client-side during SPA navigation. Unknown slugs get hub metadata
without echoing the input.
2026-07-22 15:46:09 +08:00
Kevin Codex c682af2e9e feat: per-repo social metadata — SSR share pages + dynamic OG images
Crawler-visible metadata for /repos/:owner/:name without turning the SPA
into an SSR app: a Vercel function fetches the built index.html, swaps
the marker-delimited social-meta block for repo-specific tags, and a
sibling function renders per-repo OG cards with @vercel/og (JetBrains
Mono TTFs; Satori can't consume WOFF2). Private repos and upstream
errors always get the generic site metadata plus noindex — repository
data is never interpolated on those paths. The client hook keeps
document meta in sync during SPA navigation, and the /api proxy narrows
to /api/v1 so local functions are reachable. Cache tiers: immutable
versioned OG URLs, 5m/1h SWR for pages, no-store on errors.
2026-07-22 12:48:19 +08:00
Kevin CodexandClaude Fable 5 a23f2249a8 Add node home, peers, events, tasks, and network sections (#8)
Expands the explorer from repos+agents into a full replacement for
gitlawb.com/node, with URL paths matching the old site 1:1 (minus the
/node prefix) so a single redirect covers the migration:

- / — node overview dashboard: identity, stat tiles, live activity
  feed, agent-task summary, p2p status, quick clone
- /peers — searchable peer directory with live per-peer ping checks
- /events — node-level ref-update feed with local/gossip filter and
  visibility-aware 30s auto-refresh
- /tasks + /tasks/:id — agent task queue with server-side status
  filter, payload-derived titles, and pretty-printed payload/result
- /network — fan-out to the 4 federation nodes with per-node cards
  and a replication-coverage table over their event feeds

Peer nodes serve no CORS headers, so node2/node3/manila get proxy
prefixes in vercel.json and the vite dev proxy. Section nav moves
from per-page tabs into the global layout.

Co-authored-by: Claude Fable 5 <[email protected]>
2026-07-05 22:32:29 +08:00
Kevin CodexandClaude Fable 5 0253e5c31a Add Vercel rewrites for API proxy and SPA fallback (#6)
The Vite dev proxy (/api, /node-info → node.gitlawb.com) only exists in
the dev server, so the deployed static build 404'd every API call.
vercel.json now mirrors the proxy in production and adds an SPA fallback
so client-side routes survive refresh/deep links. Also ignores the
.vercel project-link directory.

Co-authored-by: Claude Fable 5 <[email protected]>
2026-07-03 09:47:05 +08:00