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.