You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[inference-out] upstream: provider-failure demotion ladder and neutral failure copy in tinyinference-llm failure/ #7
demotion.rs: DemotionKind and demote_decision(&ProviderHttpFailureFacts, provider_is_managed) -> Option<DemotionKind>. This is the ladder now in OpenHuman's HostErrorReporter: budget, no-model-loaded, custom upstream bad request, access policy, config rejection, context window, quota and so on. The ladder order is a user-visible contract. Carry the host's ladder-order tests with it.
copy.rs: a neutral FailureCopy { error_type, source, retryable, copy, key } table for product-neutral provider failures. That is about 15 rows: rate limit, timeout, network, context overflow, payload too large, unavailable, request rejected, and so on. Add trait FailureCopyProvider { fn copy(&self, class) -> Option<FailureCopy> } so a host overrides or extends. Keep the i18n keys (chat_error.*) stable, since the frontend renders by key.
classify_provider_failure_with(…, is_session_expired: impl Fn(&str) -> bool), or an equivalent predicate seam, so OpenHuman's error_classify.rs disappears.
Host rows unblocked (H3):
provider/ops/http_error.rs (259); the host keeps only the ErrorReporter impl (Sentry plus bus publishes)
provider/error_classify.rs (41)
the neutral rows of failure_copy/table.rs
Blocked by
None.
Definition of done
The listed APIs exist upstream with tests, are released/tagged, and the matching host-adoption leaf can pin them. Gates: the repo's own cargo test, cargo clippy -D warnings and CI.
Agent brief
Files to consider: the rows above; the epic's Evaluation section has each row's reason.
Research: the gaps listed above. Read the cited upstream symbols before writing code.
Workflow: one implementing-an-epic step. Follow OpenHuman's .claude/skills/migrate-to-submodule: upstream PR to the canonical tinyhumansai/<repo>, then tag/release; the OpenHuman gitlink bump and host deletion happen in the matching host-adoption leaf. tinyinference must not depend on tinyagents or OpenHuman.
Merged in #17 (c6d18ca). Integrated into the fork epic branch for tinyhumansai/openhuman#8092; final canonical upstream rollup and release/tag audit remain pending.
Activity
senamakel commentedon Oct 18, 2026
Merged in #17 (c6d18ca). Integrated into the fork epic branch for tinyhumansai/openhuman#8092; final canonical upstream rollup and release/tag audit remain pending.