Build / Windsurf · engineering-technology (AI/dev docs-as-streams)

Dependency Watchtower

Your dependency stack, watched by a citation-grade agent that opens the PR before the breaking change bites. A live, deployed Watchtower URL showing real, source-linked changelog/release claims for exactly the packages your repo depends on, plus a saved monitor and a one-click 'send to Devin' upgrade brief.

A deployable dependency watchtower.

A real Next.js app scaffolded in Cascade/Devin Local, deployed to Netlify/*.windsurf.build, backed by a server-side route that calls the Synorb REST API. The home view is a live 'Watchtower' board of dependency-change cards grouped by package, each card built from Synorb's documentation-format manifests: the structured claim (e.g. 'langchain-openrouter 0.2.5 deduplicates finish metadata and strips Responses reasoning IDs'), claim_type/confidence/evidence chips, the resource tag (the exact SDK package / model SKU), a Recharts release-cadence sparkline per package, and a prominent 'View changelog source' link to the real GitHub/vendor URL Synorb returned. A saved Synorb Beacon (scoped to the user's chosen package set) is re-run by beacon_id on a schedule; when a high-significance change lands, the app writes a ready-to-dispatch Devin task (a Markdown brief + the cited source_url) so an agent in the Command Center can open the upgrade/mitigation PR. Web search is used ONLY to fill gaps Synorb does not cover, visibly flagged as 'web, unverified' vs Synorb's green 'cited source' badge.

This is native to Devin Desktop's post-rebrand center of gravity (agents acting on ground truth in the Command Center) and it is impossible with a generic news/search MCP: only Synorb returns a STRUCTURED, deduped claim tagged to the exact resource (SDK package / model SKU via the resource tag_type) with a never-invent-URLs citation contract — which is precisely what makes an auto-dispatched PR auditable for the enterprise base (Ramp, NVIDIA, Modal) that cannot accept ungrounded LLM output. It turns 'I think LangChain changed something' into 'langchain-anthropic 1.4.8, here is the release, here is the diff-worthy claim, here is the PR.'

Click, answer a few plain-English questions, get a working product.

No setup to learn. Windsurf asks a handful of normal-person questions — each with a smart default, so “you pick” always works — then builds it with live Synorb data flowing in.

1

Which tools or libraries do you want to keep an eye on? (Name a few — like the AI SDKs and platforms your project uses — or let me read your package.json and pick them for you.)

Smart default: Read package.json if present; otherwise watch the popular AI/dev stack: Anthropic, OpenAI, LangChain, Vercel AI SDK, Supabase, Stripe, Cloudflare.

2

What kind of changes matter most to you?

Smart default: Breaking changes, deprecations, and new releases first — surface those at the top and flag the rest as routine.

3

What look do you want?

Smart default: Control Room (recommended) — dark, dense, status-light aesthetic that reads like an ops board.

4

When a high-impact change lands, should the app draft a ready-to-send task for a Devin agent to open the upgrade PR?

Smart default: Yes — draft the brief automatically (with the source link) but never dispatch without your click.

5

How far back should the first board look?

Smart default: Last 30 days, then keep it live with a saved monitor.

Pick a look. It ships with taste by default.

Control Room

Dark, dense, monospace-accent ops board with status lights (red=breaking, amber=deprecation, green=routine), per-package lanes, and a calm citation chip on every card. Recommended default — reads as a serious dev tool, not an AI toy.

Release Notes

Light, editorial, generous whitespace; each change is a clean entry with a bold claim line, version pill, and an underlined 'read the changelog' link. Feels like a beautifully typeset changelog digest.

Terminal

Green-on-black, fixed-width, log-stream styling with [BREAKING]/[DEPRECATED]/[RELEASE] prefixes and inline source URLs — for engineers who want it to look like tailing a feed.

Synorb is the cited core. Windsurf’s own tools make it pop.

INFRA-BACKED dev codebase. Build time: Cascade/Devin Local configures the Synorb MCP in ~/.codeium/windsurf/mcp_config.json (remote Streamable HTTP, serverUrl https://mcp.synorb.com/mcp, Authorization: Bearer ${env:SYNORB_MCP_TOKEN}), then calls synorb-stream-search for each watched tool and synorb-manifests (compact=true, media_format=documentation, target_count 5-10) to inspect REAL changelog claims and build the UI against the true data shape. Runtime: the deployed Next.js app's server-side API route (NOT the browser) calls the Synorb REST API at https://api.synorb.com using SYNORB_API_KEY + SYNORB_SECRET read from server env / Netlify env vars. Credentials are requested only when the agent creates .env, in plain terms, with a link to https://synorb.com/connect (free, no card). The MCP build-time token and the REST runtime key+secret are kept distinct and BOTH server-side — never shipped to client code. The standing watch is a saved Synorb Beacon executed by beacon_id on a schedule (a Devin Playbook / GitHub Action the agent writes), so the board keeps refreshing.

Cited data core
Synorb
Streamslangchain (stream 17813083002437499 — 42 manifests/90d, real github.com/langchain-ai release URLs, resource tags OpenRouter/OpenAI Codex), openai (stream 17723038993572886), databricks-ai-research (stream 17806684970436815), zhipu-ai (17801201634780571), moonshot-ai (17801201634780572), ai21-labs (17801201634780575), engineering-technology home_domain docs-as-streams: Anthropic, Vercel/Vercel AI SDK, Supabase, Stripe, Cloudflare, HuggingFace changelogs, resource-tagged SDK packages and model SKUs as the per-package routing key
Primitivesdocumentation media_format manifests (changelogs / API refs / release notes), resource tag_type (exact SDK package, model SKU, API endpoint — the join key that maps a change to a dependency in package.json), structured claims with claim_type/confidence/evidence + claims_rollup, never-invent-URLs citation contract (clickable real GitHub/vendor source_url), significance field (gates which changes auto-dispatch to Devin), Beacons (synorb-configure-beacon -> synorb-save-beacon, re-run by beacon_id) as the standing watch, synorb-stream-search + synorb-manifests mode=count zero-quota preflight
Experience layer
Windsurf native tools
ComposesRecharts — per-package release-cadence sparkline and a stacked 'changes by significance' bar across the watched set, Devin Command Center / Cloud Devin task dispatch — generate a Markdown upgrade brief (claim + cited source_url) the user sends to an agent to open the PR, Windsurf App Deploys (Netlify / *.windsurf.build) — ship the live Watchtower URL, other MCPs (optional) — GitHub MCP to read the repo's package.json so the watched set auto-matches real dependencies, web search — GAP ONLY: if Synorb has no coverage for a niche package, fetch a fallback note rendered with a distinct 'web, unverified' badge, generated hero/section imagery — a tasteful 'control-room' header asset
Web searchgaps only — clearly marked, never the primary feed

Credential safetySynorb credentials stay server-side or local — never in client/frontend code. You only enter them when the agent asks, with credentials from synorb.com/connect.

One click from the original source.

Provenance is the product. Every change card renders Synorb's real source_url as a primary 'View changelog source' button plus a small source-domain pill (github.com, anthropic.com); the claim text links inline to the same URL. The 'send to Devin' upgrade brief embeds the cited source_url so the resulting PR description is auditable back to the original release note. Web-search gap-fillers get a visually distinct grey 'web, unverified' badge and are never styled like Synorb-cited cards. Never invent URLs — only render source_url values Synorb returns.

Questions builders ask.

Will this show real live data on the first run?

Yes. The build prompt connects Synorb at build time to learn the real data shape, then wires live Synorb data into the running product. A live, deployed Watchtower URL showing real, source-linked changelog/release claims for exactly the packages your repo depends on, plus a saved monitor and a one-click 'send to Devin' upgrade brief.

Where do my Synorb credentials go?

Only where they are safe. INFRA-BACKED dev codebase. Build time: Cascade/Devin Local configures the Synorb MCP in ~/.codeium/windsurf/mcp_config.json (remote Streamable HTTP, serverUrl https://mcp.synorb.com/mcp, Authorization: Bearer ${env:SYNORB_MCP_TOKEN}), then calls synorb-stream-search for each watched tool and synorb-manifests (compact=true, media_format=documentation, target_count 5-10) to inspect REAL changelog claims and build the UI against the true data shape. Runtime: the deployed Next.js app's server-side API route (NOT the browser) calls the Synorb REST API at https://api.synorb.com using SYNORB_API_KEY + SYNORB_SECRET read from server env / Netlify env vars. Credentials are requested only when the agent creates .env, in plain terms, with a link to https://synorb.com/connect (free, no card). The MCP build-time token and the REST runtime key+secret are kept distinct and BOTH server-side — never shipped to client code. The standing watch is a saved Synorb Beacon executed by beacon_id on a schedule (a Devin Playbook / GitHub Action the agent writes), so the board keeps refreshing.

How are sources shown?

Provenance is the product. Every change card renders Synorb's real source_url as a primary 'View changelog source' button plus a small source-domain pill (github.com, anthropic.com); the claim text links inline to the same URL. The 'send to Devin' upgrade brief embeds the cited source_url so the resulting PR description is auditable back to the original release note. Web-search gap-fillers get a visually distinct grey 'web, unverified' badge and are never styled like Synorb-cited cards. Never invent URLs — only render source_url values Synorb returns.

Is this just a Synorb feed, or a real app?

A real app. Synorb is the cited data core; it also composes the platform's own tools: Recharts — per-package release-cadence sparkline and a stacked 'changes by significance' bar across the watched set, Devin Command Center / Cloud Devin task dispatch — generate a Markdown upgrade brief (claim + cited source_url) the user sends to an agent to open the PR, Windsurf App Deploys (Netlify / *.windsurf.build) — ship the live Watchtower URL, other MCPs (optional) — GitHub MCP to read the repo's package.json so the watched set auto-matches real dependencies, web search — GAP ONLY: if Synorb has no coverage for a niche package, fetch a fallback note rendered with a distinct 'web, unverified' badge, generated hero/section imagery — a tasteful 'control-room' header asset.

What will it ask me before building?

A few plain-English questions, each with a smart default so you can just say 'you pick': Which tools or libraries do you want to keep an eye on? (Name a few — like the AI SDKs and platforms your project uses — or let me read your package.json and pick them for you.); What kind of changes matter most to you?; What look do you want?; When a high-impact change lands, should the app draft a ready-to-send task for a Devin agent to open the upgrade PR?; How far back should the first board look?.

Using a different agent?

The same Synorb MCP connects to every major coding agent. Pick yours.

Free credentials. No card.

Generate credentials, connect Windsurf, and ship something with live, cited intelligence.