// SOFTWARE

Hub API

The stateless digest service that turns git activity into the Hub's journey feed.

[API][MVP-DEVELOPMENT]v1.0.0
Loading…PUBLIC[ TRY IT LIVE → http://blackview.local:8080/hub ]

Getting Started

Getting Started

Hub API is the stateless digest service behind the Hub's content pipeline. It never touches a filesystem, a database, or a git credential — every call carries everything it needs in the request body, and every response is fully reproducible from that same input alone.

Authentication

None. The service is only ever called from trusted callers on the home LAN — hub-products-journey.sh / hub-journey-rollup.sh / hub-article-draft.sh running on the Mac mini, and the PR review-resolution GitHub Actions workflow running on that same machine's self-hosted runner. hub-products-sync.sh (the hourly product-copy script) never calls this service — it's purely a file copy, no LLM involved. No API key, no auth header, no session.

How every call works

Every endpoint below follows the same discipline:

  1. The caller assembles a request carrying everything the model needs — voice/tone instructions, any relevant exclusion rules, and the raw material to synthesize from. Nothing is looked up from disk on this side; the caller supplies it all.
  2. This service calls a local Ollama model's /api/generate — never /api/chat — with format set to a JSON schema matching the endpoint's expected response shape.
  3. The response is validated against that schema. A malformed or non-conforming result is retried, same request, up to 3 times (POST /digest/article-draft makes four sequential, single-purpose calls per request — Article Suggestion, Article Metadata, LinkedIn Post, Image Prompt — each with its own wider 6-attempt budget, since content-quality checks on its drafted output, not just schema conformance, can also trigger a retry).
  4. If it still fails after exhausting that budget, the caller gets a clear error rather than a best-effort guess passed through silently — except POST /digest/article-draft, which instead returns a normal response with articleSuggestion: null and its own attemptFailures/validationExhausted diagnostics, since a null result is already a valid outcome for that endpoint.

What this service does not do

It never produces or touches promotional copy or API reference documentation — that content (including this very page) is written directly by mar_claude_plugins agents in each product's own repo, not generated by this service. It also never applies a patch to disk itself — POST /digest/review-fix only ever returns a decision; the calling script is the one that writes to a file.

SwiftVaporOllama