Hecate keeps shipping v0.1.0-alpha.N releases while beta work lands
incrementally. Beta is not the next release by default; it is the quality gate
after core runtime contracts, view-by-view UX polish, and cleanup/refactoring
are complete.
master stays the protected integration and release branch. Beta-scope work
happens on feature branches forked from current master, lands through PRs, and
is released in alpha tags only after it merges.
| Area | Beta bar |
|---|---|
| Error contracts | Hecate-native errors across gateway, model chat, Hecate Chat, External Agent, Tasks, approvals, storage, retention, and provider readiness return stable type values, correct HTTP statuses, trace IDs when available, friendly operator messages, and raw details. |
| Provider/model readiness | Provider readiness is the canonical setup contract: credential state, discovery state, discovered model count, selected-model validity, route blocking reason, tool capability, pricebook status, last probe/result, and repair action. |
| Routing explainability | Route reports persist and expose selected route, skipped candidates, skip reasons, failover path, cache path, budget/policy decision, pricebook source, provider latency/error state, and final error. |
| Task runtime hardening | Queue, lease, running, awaiting approval, approved/rejected, cancelled, failed, completed, retry, resume, stale worker recovery, and shutdown behavior are audited and tested. |
| Storage and retention | Memory/SQLite parity is verified for providers, chats, tasks, approvals, grants, model capabilities, retention pruning, startup reconcile, and schema migration safety. |
| OpenTelemetry | Route choice/skip, provider failure, cache hit/miss, task lifecycle, approval lifecycle, chat segment lifecycle, external adapter behavior, retention, rate limits, and readiness probes emit useful spans, metrics, or logs. |
| Endpoint stability | Hecate-native endpoints stay under /hecate/v1/*; provider-compatible endpoints stay under /v1/*; tests and docs checks prevent old /admin/* and accidental Hecate-native /v1/* routes from returning. |
| View | Beta bar |
|---|---|
| Chats | Hecate Chat, External Agent, and direct model chat have clear segment boundaries, queued prompts, busy state, task/trace/run links, approvals, markdown/code rendering, run activity grouping, changed-files review, model/tool capability state, stale-model repair, and refresh/resume accuracy. |
| Providers | Provider setup is self-explanatory: readiness cards, discovered/running/installed states, credential repair, duplicate endpoint handling, route blocking reasons, model discovery failures, local provider discovery, and optimistic edits/deletes where safe. |
| Tasks | Task Detail is the canonical deep-debug view: clear run timeline, grouped advanced activity, approval cards, stdout/stderr/artifacts, retry/resume/cancel explanations, patch review, and chat-origin links. |
| Observability | The UI answers "what happened?" without JSON archaeology: request ledger, route report, trace viewer, skipped providers, policy/budget denial, cost calculation, cache path, provider failure, and final outcome. |
| Settings | Settings stays focused on pricebook, retention, model capability overrides/probes, External Agent readiness/grants, and OTel/export knobs when needed. |
| Costs | Costs clearly separates enforced gateway cost from adapter-reported usage. External Agent usage remains labelled as reported by adapter and not enforced by Hecate. |
| Desktop app | Before beta, decide whether unsigned desktop bundles are acceptable. If not, complete signing/notarization or clearly keep desktop labelled alpha while the rest of Hecate enters beta. |
- Shared transcript/activity primitives: model chat, Hecate Chat, External Agent chat, and Task Detail converge on one shared transcript/activity component family.
- Canonical readiness model: one provider/model readiness type feeds API, UI, docs, tests, and trace/telemetry labels.
- Task/chat boundaries: Tasks remain canonical for full run history and patch review; Hecate Chat projections stay accurate and linked. One chat can have many historical segments but only one active task-backed loop.
- Docs structure: user docs, runtime/API docs, RFCs, and
docs-aiguidance describe the same product and same caveats. - Remove stale legacy: old endpoint names, old
/gatewaylanguage, one-binary claims, stale screenshots, obsolete scripts, dead fixtures, and duplicate UI rendering paths are removed. - Release automation: alpha releases stay boring: docs drift checks, screenshots, links, Docker/native/binary parity, Tauri version stamp, release-doc refresh, and recovery instructions.
- Create a feature branch from current
masterfor every beta-scope slice, for examplefeature/provider-readiness-contractsorrefactor/shared-transcript-activity. - Rebase feature branches onto
origin/masterbefore opening or updating PRs. - Merge only reviewed PRs into
master; do not implement beta features directly onmaster. - Use direct
mastercommits only for release mechanics or urgent tiny corrections that are explicitly requested, such as version stamps, release-reference docs, or failed-release recovery. - Cut alpha releases from
masterafter completed PR slices merge andjust verifypasses. - Do not create a long-lived beta branch unless beta stabilization later needs a
freeze window. Until then,
masterremains the alpha release train and integration branch. - The first beta tag should be
v0.1.0-beta.1after the beta gate passes.
Hecate can move from alpha releases to a beta tag only when all of these are true:
- Runtime errors are stable and friendly across the main surfaces.
- Provider/model readiness can explain and repair common setup failures.
- Routing decisions are inspectable in traces/UI.
- Hecate Chat supports mixed direct/model and tools-on task-backed segments reliably.
- External Agent sessions have approvals, readiness, diagnostics, guardrails, diff inspect/revert, and trusted-subprocess warnings.
- Task runtime lifecycle is tested for approval, cancel, retry/resume, stale worker recovery, and shutdown.
- Memory/SQLite persistence and retention boundaries are tested and documented.
- OTel covers the important runtime decisions.
- UI polish passes are complete for Chats, Providers, Tasks, Observability, and Settings.
- README, known limitations, runtime API docs, release docs, screenshots, and
docs-aiguidance all describe the same product. - Latest alpha release passes
just verify, release workflow, links workflow, and desktop release matrix.
| Layer | Coverage |
|---|---|
| Go unit/API tests | Error contracts, provider readiness, route reports, task lifecycle, storage parity, retention, model capabilities, approvals, endpoint namespace checks. |
| Go e2e tests | Docker startup, OTLP smoke, ACP smoke, approval persistence/reconcile, provider readiness scenarios, task retry/resume/cancel, release-critical startup paths. |
| UI unit tests | Shared transcript components, friendly errors, readiness cards, chat segment state, queued prompts, approvals, task links, provider repair states. |
| Playwright e2e | First-run provider onboarding, stale selected model repair, Hecate Chat tools on/off/on, task approval in Chats, refresh during running/awaiting approval, External Agent approval + diff inspect/revert, provider readiness repair, trace/task links. |
| Release checks | just verify, links, screenshots, Docker image pull/run, release asset presence, Tauri matrix, README release links. |
- Alpha releases continue normally while this work is in progress.
- Beta is a quality gate, not a marketing rename for the next release.
- No feature work lands directly on
master; work is done in feature branches and merged through PRs. - No compatibility shims are required for alpha-only endpoint/API changes unless explicitly decided later.
- Hecate remains local-first and single-operator shaped for beta; multi-node and hosted deployments stay out of scope.
- External Agent CLIs remain trusted subprocesses for beta; Hecate supervises and warns, but does not sandbox their internals.