All config file writes now use the write-temp + fsync + os.replace pattern (KTD-4) so a crash mid-write leaves the original file intact. - Add src/agentkit/server/utils/atomic_write.py with write_text_atomic - settings.py: _write_yaml_config and _write_env_var use atomic write - skill_service.py: import_skill uses atomic write - skill_service.py: update_skill_config uses atomic write + fcntl.flock around the read-modify-write cycle to serialize concurrent updates - Add 11 unit tests covering happy path, crash safety, concurrency, errors |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| context.py | ||
| department_service.py | ||
| filtering.py | ||
| kb_service.py | ||
| llm_config_service.py | ||
| quota_service.py | ||
| skill_service.py | ||
| usage_service.py | ||
| user_service.py | ||