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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed
--help (-h) and --version now exit 0 with no ok:false JSON document when combined with --json on query, search, list-repos, or expand. Previously commander's own successful
help/version exit was caught by the same --json error handler as a real
error, printing an {"ok": false, "error": {"message": "(outputHelp)"}}
(or the version string, respectively) document and exiting 1. A real
error in --json mode (an unknown option, a missing argument) is
unaffected and still produces that document with a nonzero exit (task 53112c27).
Added
Every LLM constructor (Anthropic, OpenAI, and the openai-compatible/ ollama lane) now sets a request timeout from the new ORACLE_LLM_TIMEOUT_MS env var (default 120000ms, chosen to cover a cold
local Ollama model's load plus a full non-streaming generation) and a
fixed maxRetries: 0, plus a matching overall deadline wrapped around the
whole chain.invoke() call so a server that sends response headers and
then stalls the body is also bounded, not just a fully unreachable
endpoint. An unreachable or unresponsive LLM endpoint now falls back to
raw retrieved context within that bound instead of hanging (previously a
closed local port could take over 70 seconds to surface as a failure).
With retries disabled, a single transient provider error (429/5xx/529) is
no longer retried and now falls back to degraded: true immediately
instead of after LangChain's own multi-attempt backoff. See
docs/configuration.md and README.md for the default and its reasoning
(task 844aac2c).
--json success documents for query, search, and list-repos now
carry "ok": true (additive; expand already had it). query --json
additionally marks an LLM-failure fallback to raw retrieved context with "degraded": true and "degradedReason": "llm_request_failed", while
staying ok: true and exiting 0; the README's --json contract
section documents keys, ok, degraded, and exit status per command in
one place (task df880cbc).
Two release guards: a vitest unit test fails when CHANGELOG.md's first ## [x.y.z] - date heading differs from package.json's version, and
release.yml's changelog-extraction step (scripts/extract-changelog-notes.sh)
fails with an explicit message when no release notes are found for the
tagged version. The tag-derived version is now passed to the extraction
program as a positional argument rather than interpolated into the awk
program text.
Changed
A set-but-invalid ORACLE_LLM_TIMEOUT_MS (non-numeric, zero, negative,
non-integer, or above 2147483647) now fails config loading for every
command, including index and MCP server startup, with the same
fail-loud contract as ORACLE_MAX_FILE_SIZE; unset or empty uses the
default. With LLM retries disabled, a single transient provider error
(429/5xx/529) falls back to degraded: true immediately.