Skip to content

Release/v1.2.0 - #23

Merged
figulusproject merged 28 commits into
mainfrom
release/v1.2.0
Aug 15, 2026
Merged

Release/v1.2.0#23
figulusproject merged 28 commits into
mainfrom
release/v1.2.0

Conversation

@figulusproject

@figulusproject figulusproject commented Aug 15, 2026

Copy link
Copy Markdown
Owner

[1.2.0] - 2026-08-15

Added

  • @zod-crawler/pipeline: a new package, split out of @zod-crawler/core, holding the platform-portable half of the crawl pipeline (fetchAndCacheSamples, the SampleCache interface, hashId, hasCachedSample, fetchProgressEvent) with zero Node dependency of its own.
  • @zod-crawler/pipeline-node: a new package holding the Node/Redis backend (createNodeSampleCache, runBullmqFetchQueue, domainCooldownGate, redisConnection, crawlRegistry), depending on @zod-crawler/pipeline. apps/cli and apps/web's server now branch on redisUrl themselves to pick fetchAndCacheSamples or runBullmqFetchQueue, instead of that branch living inside a single fetch function.
  • @zod-crawler/pipeline-browser: a new package with createCacheApiSampleCache, a browser SampleCache backed by the Cache API, and createBrowserUrlFetcher, a fetch-based fetcher that retries through a CORS proxy only when a direct request throws (network/CORS failure), remembering per-job which origins already needed the proxy.
  • apps/web-demo: a new client-only Vite/React app rendering the same CrawlForm/JobList/JobDetail as apps/web, running a full crawl (fetchAndCacheSamples -> inferSchema -> validateSamples -> findCrawlCandidates) entirely in a browser Web Worker with no server, using @zod-crawler/pipeline-browser's cache and fetcher and prettier/standalone for formatting. Deployed at https://zodcrawler.figulus.dev/demo. A crawl doesn't survive a page refresh (no SSE/job registry, unlike apps/web) - a refresh just restarts.
  • @zod-crawler/components: a new shared shadcn/Tailwind UI package holding the UI and crawl components moved out of apps/web, so apps/web and apps/web-demo render from the same components.
  • tools/cors-proxy: a self-hosted CORS proxy at zodcrawler.figulus.dev/proxy that the demo falls back to when a target API doesn't allow direct cross-origin fetches, rate-limited per IP and capped daily.
  • tools/site-router: routes zodcrawler.figulus.dev's docs, the new demo, and everything else to the right place.
  • @zod-crawler/cli: a status subcommand (zod-crawler status --output <dir>) reports on a crawl started with --detach - running, finished (with its recorded exit code), or crashed - by reading <output>/zod-crawler.pid and <output>/zod-crawler.status.json, both written by the detached run itself.

Changed

  • CI workflow (ci.yml) and apps/cli/apps/web's Docker images now run on Node 22/24/26 instead of 20/22/24.
  • @zod-crawler/cli: upgraded from zod-cli-flags@1.0.2 to its renamed successor, zod-commands@1.1.3. --ids/--ids-file now use exclusiveGroups to declare "exactly one of" instead of a hand-written check in the parse transform, so cli.usage renders it as (--ids <value> | --ids-file <value>).

…rawler/pipeline package, and bullmqFetchQueue, crawlRegistry, domainCooldownGate, and nodeSampleCache into @zod-crawler/pipeline-node
…limit and a Durable Object daily request cap
… a ui/general/crawl split and Node subpath imports for a tsc -b composite build
…ets and redirecting everything else on zodcrawler.figulus.dev to the repo, and switch cors-proxy from a Custom Domain to a plain Route on the same zone
…awl UI from @zod-crawler/components with local-only state and a stubbed crawl submit
…apps/web-demo's Start crawl to a real Web Worker running fetchAndCacheSamples, inferSchema, validateSamples, and prettier/standalone
…everse proxy in tools/site-router, and a missing vite base path fix for apps/web-demo
…split, apps/web-demo, @zod-crawler/components, and the cors-proxy/site-router tools
…nts, wired into apps/web-demo above the crawl UI
… --ids/--ids-file and dropping the redundant flags: {} in sync-versions
migrate from zod-cli-flags to zod-commands
update to zod-commands v1.1.2 from v1.1.1
… for its per-command override schema support
add a status subcommand for --detach jobs
…and apps/web's Dockerfiles, and @zod-crawler/components to apps/web's, so both images build again
…es/core READMEs, and the web-demo browser-only banner, broken by tools/site-router serving docs under /docs instead of the domain root
…s site, with a new docs/demo.md page, a docs/_sidebar.md entry, and an apps/web-demo README
…:browser, and correct what build/typecheck actually run per-workspace
@vercel

vercel Bot commented Aug 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
zod-crawler Ready Ready Preview Aug 15, 2026 3:00am

@figulusproject
figulusproject merged commit ad85293 into main Aug 15, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant