← gitpulse
Merged
Size
XL
Change Breakdown
Documentation35%
Tests35%
CI/CD15%
New Feature15%
#3docs+ux+test: README, friendlier first-run, vitest + schema contract

53 tests, complete install guide, and friendlier first-run shipped

Gitpulse now ships its first test suite — 53 vitest tests across the action and site workspaces — alongside a complete README install guide with provider examples and a friendlier first-run state that guides new users to the setup docs.

The gitpulse README previously read "Phase 0 scaffold. Not yet functional." and directed strangers to a separate roadmap. That changed: the install guide now includes a copy-paste workflow snippet pinned to @v1, a table documenting every workflow input, provider examples for OpenAI, MiniMax, Groq, OpenRouter, and Anthropic, Pages enablement steps, and local development notes. A stranger can now adopt gitpulse on their own repo in minutes.

On first run, the homepage no longer displays the stark "No Stories Yet" message. It now shows an editorial eyebrow reading "First Edition" and a headline — "The press is warming up." — with a link back to the install guide or a nudge to trigger a manual run from the Actions tab. The empty state is now part of the onboarding rather than a dead end.

The first test infrastructure landed: 53 vitest tests cover slug truncation, unicode handling, URL path construction, base URL env precedence, concurrency capping and order preservation in parallel maps, recursive JSON schema constraint stripping (a workaround for MiniMax tool-calling), and the story schema contract. The StorySchema is a discriminated union distinguishing pr events from direct-push events — render.ts now validates every story against it before writing to disk, so the analyzer crashes in CI rather than silently producing malformed JSON the site cannot render. A new ci.yml workflow runs yarn typecheck and yarn test on every PR and push to main.