Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
f7fe344
feat: Add KV store API for automation state persistence
openhands-agent Apr 24, 2026
878bb38
fix: Resolve CI failures for KV store API
openhands-agent Apr 24, 2026
e46dbdc
fix: Fix test secrets and request body parsing
openhands-agent Apr 24, 2026
e72f0d4
Add KV store design document
openhands-agent Apr 24, 2026
68f5da8
feat: Add enable_kv_store support to preset endpoints
openhands-agent Apr 25, 2026
05879ab
test: Add KV store E2E test script with blocking execution
openhands-agent Apr 25, 2026
75c6747
feat(tests): add quick/thorough modes to KV store E2E tests
openhands-agent Apr 25, 2026
5a03bbb
docs: trim test plan to remove content now covered by E2E script
openhands-agent Apr 25, 2026
aede560
debug: Add logging for KV secret configuration
openhands-agent Apr 25, 2026
dcf2323
fix: Remove duplicate code from test_kv_e2e.py
Apr 25, 2026
b55b0dc
fix: Return proper HTTP status codes for KV SET operations
Apr 25, 2026
0a6fa05
fix: Update tests for proper HTTP status codes in KV SET
Apr 25, 2026
bf5e9c6
fix: Format code to pass ruff checks
Apr 25, 2026
a9d8ec0
fix: Properly detect insert vs update in KV SET
Apr 25, 2026
3b11400
fix: Fix pre-commit issues
Apr 25, 2026
2f81408
fix: Improve cleanup error message for 403
Apr 25, 2026
6403140
fix: Update E2E test expectations to match actual API behavior
Apr 25, 2026
513cd6d
refactor: Extract Pydantic schemas to kv_schemas.py
openhands-agent Apr 25, 2026
7330a9d
refactor: Extract path helpers to kv_helpers.py
openhands-agent Apr 25, 2026
866038e
fix: Reduce chatty KV store logging
openhands-agent Apr 25, 2026
fec580d
test: Add comprehensive tests for path helper functions
openhands-agent Apr 25, 2026
90d2151
test: Add concurrency tests for atomic KV operations
openhands-agent Apr 25, 2026
03c8992
docs: Document token expiration rationale
openhands-agent Apr 25, 2026
6803e71
fix: Fix concurrency tests deadlock by using session factory
openhands-agent Apr 25, 2026
61b4b3b
docs: Add comprehensive documentation for test fixture patterns
openhands-agent Apr 25, 2026
0be0a2a
feat: Add configurable size limit for KV store values
openhands-agent Apr 25, 2026
b17542d
perf: Switch KV storage from TEXT+JWE to BYTEA+AES-GCM
openhands-agent Apr 25, 2026
c56f6f8
docs: Explain why JSONB is not used for KV storage
openhands-agent Apr 25, 2026
33d592a
docs: Add TOAST performance guidance to kv_max_value_size config
openhands-agent Apr 25, 2026
238e216
perf: Add PostgreSQL storage optimizations for KV table
openhands-agent Apr 25, 2026
e927ef8
feat: Add strict JSON validation for KV values
openhands-agent Apr 25, 2026
1cdf33b
refactor: DRY up KV router with helper functions
openhands-agent Apr 25, 2026
f0ba0d1
feat: Add robust validation for KV store keys and values
openhands-agent Apr 25, 2026
7e63d49
fix: Address pre-commit CI issues (ruff formatting and pyright types)
openhands-agent Apr 25, 2026
fdc50ff
refactor(kv-store): implement single-document backend for deadlock pr…
openhands-agent Apr 25, 2026
5af8932
docs: update design doc for single-document KV storage
openhands-agent Apr 25, 2026
ecdf0e9
fix: address lint and type errors
openhands-agent Apr 25, 2026
ddff2eb
feat: Add deadlock prevention with lock timeout and pool exhaustion p…
openhands-agent Apr 25, 2026
7d7b6d8
Add batch operations with optimistic concurrency control
openhands-agent Apr 25, 2026
a3b65c4
Add if_version to individual endpoints (PUT, PATCH, DELETE)
openhands-agent Apr 25, 2026
54d7377
refactor: Migrate KV router to use centralized config pattern
openhands-agent Apr 26, 2026
f2827a1
docs: Update AGENTS.md with centralized configuration pattern
openhands-agent Apr 26, 2026
429b9d6
fix: Use clear_config_cache() in tests instead of deprecated get_sett…
openhands-agent Apr 26, 2026
8a10f93
feat(kv): add concurrency controls and observability
openhands-agent Apr 25, 2026
c6f07f7
refactor: Move KV config to dedicated KVSettings section
openhands-agent Apr 26, 2026
46e7ee1
style: Fix import ordering in test_kv_concurrency.py
openhands-agent Apr 26, 2026
0d42ffa
fix: Resolve pyright errors in test_kv_concurrency.py and app.py
openhands-agent Apr 26, 2026
89a449e
style: Fix import ordering in test_kv_concurrency.py
openhands-agent Apr 26, 2026
c1dfbc5
fix: Update test_kv_router to use get_token_claims and KVTokenClaims
openhands-agent Apr 26, 2026
4a60013
Merge branch 'main' into feature/kv-store-api
openhands-agent May 19, 2026
4fc3f05
Address review feedback: remove per-automation KV toggle and use SDK …
openhands-agent May 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,28 @@ Three repos work together:

After pushing to the automation repo, update both files in the deploy repo.

## Configuration

Configuration is centralized in `config.py` using a composed `AppConfig` with typed sections:

```python
from automation.config import get_config

config = get_config()
config.service.db_host # ServiceSettings (AUTOMATION_ prefix)
config.storage.file_store # StorageSettings (no prefix, SDK conventions)
config.http.auth_cache_ttl # HttpSettings (AUTOMATION_ prefix)
config.sandbox.max_run_duration # SandboxSettings (AUTOMATION_ prefix)
config.kv.kv_secret # KVSettings (AUTOMATION_ prefix)
config.log.log_level # LogSettings (no prefix)
```

**Key principles:**
- Use `get_config().<section>` instead of deprecated `get_settings()`
- All environment variables documented in config class docstrings
- Protocol constants (WORK_DIR, TARBALL_PATH) in `constants.py` - these cannot be changed without breaking compatibility
- Shared logging context via `log_extra()` from `automation.utils`

## Build & Test Commands

```bash
Expand Down
Loading
Loading