Skip to content

docs: API keys, providers, and fallback configuration#20

Merged
kargarisaac merged 12 commits intomainfrom
docs/api-keys-and-providers
Mar 29, 2026
Merged

docs: API keys, providers, and fallback configuration#20
kargarisaac merged 12 commits intomainfrom
docs/api-keys-and-providers

Conversation

@kargarisaac
Copy link
Copy Markdown
Contributor

Summary

  • Improved API keys section with .env file guidance and provider table
  • Documented fallback_models configuration with TOML example
  • Removed stale ResponsesProxy reference

🤖 Generated with Claude Code

kargarisaac and others added 12 commits March 28, 2026 10:44
- Explain .env file loading (python-dotenv, from project root)
- Add provider table with env vars and config values
- Document fallback_models configuration with example
- Remove stale ResponsesProxy reference

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…loading

- lerim init now includes LLM provider selection with API key entry
- Keys saved to ~/.lerim/.env with 600 permissions
- load_dotenv always checks ~/.lerim/.env (not just CWD)
- Shows all 7 providers with descriptions
- Preserves existing keys, supports multiple providers
- Beautiful terminal UX with section headers
- README updated with provider table and ~/.lerim/.env guidance

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The evals framework (benchmark runners, golden dataset comparisons,
LLM-as-judge scoring, judge prompts) is optimization infrastructure,
not a user-facing feature. Moving it to the private repo protects
quality criteria, reward signal design, and optimization strategies.

Removed:
- evals/ directory (7 runners, scores, judge, configs, dataset, prompts)
- tests/unit/test_eval_scores.py, tests/integration/test_eval_runners.py,
  tests/integration/test_judge.py
- site/evals/

Renamed:
- build_eval_config() → build_isolated_config() in settings.py

Kept:
- CHANGELOG.md historical entries (unchanged)
- Integration tests that don't depend on evals (test_extract, test_summarize,
  test_dspy_adapters)
- build_isolated_config() function body (used by lerim-cloud via editable install)

600 unit tests pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Updated the job claiming logic to process multiple sessions in a loop, allowing for better handling of pending jobs.
- Enhanced the extraction and failure tracking by accumulating results from each batch of claimed jobs.
- Improved overall efficiency by reducing the number of claims made when processing jobs.

This change aims to streamline the synchronization process and improve performance in job handling.
When the LLM correctly determines a session has no extractable memories,
it returns empty <primitives></primitives> tags. DSPy's XMLAdapter fails
to parse the empty string as list[MemoryCandidate]. Fix with two prongs:
better signature prompt guiding the model to return [], and a code-level
safety net that catches the specific AdapterParseError and returns an
empty list gracefully.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Providers like minimax require PascalCase (MiniMax-M2.5) while opencode_go
uses lowercase. Add normalize_model_name() to provider_caps and apply it
at config load and fallback spec parse time so users don't hit silent 404s
from casing mismatches.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
LLMs sometimes set primitive to "pitfall", "insight", etc. instead of
"learning" with kind set. Add a model_validator that auto-corrects this
so downstream code doesn't reject valid candidates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add end-to-end tracing: DSPy pipelines, OAI Agents SDK, and manual spans
for sync/maintain cycles. Includes session-field scrubbing allowlist,
OTel context propagation to async event loop, and OperationResult for
structured span attributes and service_run details.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add /api/jobs/retry-all and /api/jobs/skip-all to handle all dead_letter
queue items at once, avoiding the need to retry/skip one at a time.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Updated the max_window_tokens configuration in default.toml from 150000 to 100000 to optimize performance. Adjusted the summarization pipeline logic to account for a new prompt headroom, ensuring trace tokens fit within the adjusted limits. This change aims to enhance the efficiency of the summarization process.
- Add vulture to lint extras and [tool.vulture] (src/, min_confidence 100)
- Register pre-push pre-commit hook
- Prefix unused handler params in auth and serve signal shutdown

Made-with: Cursor
@kargarisaac kargarisaac merged commit dfd3106 into main Mar 29, 2026
1 check passed
@kargarisaac kargarisaac deleted the docs/api-keys-and-providers branch March 29, 2026 03:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant