Skip to main content

Public Alpha limitations and troubleshooting

Horologium v0.0.1 is a Public Alpha — a self-hosted validation slice, not a GA product. This page states what that means concretely, so nothing here is discovered as a surprise mid-evaluation.

What's genuinely solid today

  • The evidence → claim → finding model, and the deterministic reconciliation rules over it (claim_conflict, documentation_conflict, released_not_live, implemented_not_released, unresolved_lifecycle) — see Integrity states and the evidence model.
  • The Implemented/Released/Deployed lifecycle vector, computed deterministically per capability, per target, at a point in time — see Reality layers.
  • The temporal model (state_at, transition timelines) — see Product Shape and temporal history.
  • The self-host artifact (docker-compose.yml) and the read-only MCP adapter, both exercised end-to-end in this repository's test suite against the same golden fixture the hosted demo runs.
  • The security posture described in Security, privacy and data boundaries: credential handling, egress control, and sensitivity labeling are implemented and tested, not just documented intent.

Known gaps, named explicitly

No live evidence-collection pipeline for operators yet. Git, Jira, docs, and deployment providers exist as Rust implementations and are proven against the golden fixture in this repository's test suite, but there is no operator-facing CLI or config surface yet for pointing a self-hosted instance at your own Git remote, Jira project, or docs site and running a real collection. See Evidence sources for the exact boundary. Until then, a fresh install is populated only by seeding the golden fixture.

Two of five lifecycle dimensions are permanently Unresolved in this release. Enabled and Observed have no provider yet — they always resolve to Unresolved(no_provider_configured). This is an honest gap, not a bug: see Reality layers.

Tested and Built are not yet independent lifecycle dimensions. They're represented structurally in the model (a document/work_item graph, an artifact entity keyed by content digest) but not wired into deterministic predicates the way Implemented/Released/Deployed are.

No authentication in this release. No session, no token, no user model, no roles. A self-hosted instance must sit behind a reverse proxy with real authentication before it's exposed beyond 127.0.0.1. See Security, privacy and data boundaries.

Single-operator, single-workspace. One deployment serves one team's truth. There is no multi-tenant hosted product in this Public Alpha, and the hosted demo is never pointed at real data — see Security, privacy and data boundaries and the hosted demo walkthrough.

Self-host is by invitation during this Alpha. Per the now-resolved HORO-540 (repository and container distribution model), the source repository stays private during this Alpha phase and there is no public git clone or anonymous docker pull. Approved Alpha/design-partner users receive the artifact through a private channel instead. See the callout at the top of the self-host quickstart for exactly what that means and how to request access.

The hosted demo is a demonstration environment, not an SLA-backed service. It runs on free-tier infrastructure sized for demo traffic and may be reset or briefly unavailable — see the hosted demo walkthrough.

Troubleshooting

Most day-to-day self-host issues (a failing docker compose up, a restart loop, a port conflict, an empty-looking dashboard) are covered in the self-host quickstart's own troubleshooting section — start there first.

"Why does everything show Unresolved on a fresh install?" Because nothing has been collected or seeded yet, or because you're looking at the Enabled/Observed dimensions specifically, which have no provider in this release (see above). Seed the golden fixture per the quickstart to see a populated instance, and treat any Unresolved(no_provider_configured) result as expected rather than a defect.

"MCP tool calls return nothing useful." Confirm HOROLOGIUM_API_BASE_URL in your MCP client config actually points at a running, seeded horologium-server (curl its /healthz first) — the adapter has no data of its own and simply reflects whatever the API returns. See MCP / coding-agent integration.

"I found a real bug, not a documented limitation." This is a Public Alpha under active development — please report it against the repository rather than assuming it's expected. Check this page and the self-host quickstart's troubleshooting section first in case it's a documented, known behavior rather than a defect.