Skip to content
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
and complete `agent_control.*` field set required for backend classification
and Controls-card rendering.

### Changed

- **Config file renamed** (HYBIM-918): The non-secret debug snapshot written to
`~/.galileo/` on logout/reset is now named `splunk-ao-config.json` (was
`galileo-python-config.json`). The old file can be deleted or ignored — it is
never read back and has no effect on authentication or config resolution.

## [0.1.1] - 2026-08-03

### Removed
Expand Down
11 changes: 10 additions & 1 deletion splunk-ao-migration-tool/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,16 @@ The `GalileoScorers` enum has been removed entirely. Migrate to `SplunkAOEvaluat
+ scorer = SplunkAOEvaluators.completeness
```

### 5.3 On-Disk Config File

On logout or reset, `splunk-ao-python` writes a non-secret debug snapshot to
`~/.galileo/splunk-ao-config.json`. The directory `~/.galileo/` is inherited
from `galileo-core` and unchanged.

This file is never read back and has no effect on authentication or config
resolution. If you have an existing `~/.galileo/galileo-python-config.json`
from `galileo-python`, it can be deleted at leisure or simply ignored.

---

## 6. HTTP Tracing Headers
Expand Down Expand Up @@ -422,7 +432,6 @@ The following are **unchanged** between galileo and splunk-ao and require no mig
- Optional extra names (`[langchain]`, `[openai]`, `[otel]`, `[all]`, etc.)
- `TracingMiddleware` class name
- `OPENAI_API_KEY` environment variable
- On-disk config file name: `galileo-python-config.json`
- Default console/API URLs (`https://app.galileo.ai/`, `https://api.galileo.ai/`)

---
Expand Down
2 changes: 1 addition & 1 deletion src/splunk_ao/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class SplunkAOConfig(GalileoConfig):
"""Configure authentication and endpoints for standalone and O11y deployments."""

# Config file for this project.
config_filename: str = "galileo-python-config.json"
config_filename: str = "splunk-ao-config.json"
console_url: Url = DEFAULT_CONSOLE_URL

_instance: ClassVar[Optional["SplunkAOConfig"]] = None
Expand Down
17 changes: 17 additions & 0 deletions tests/test_config.py
Comment thread
etserend marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -336,3 +336,20 @@ def test_reset_removes_all_bridgeable_galileo_vars() -> None:
f"reset() is expected to remove {galileo_key} "
f"(bridge owns all GALILEO_* keys; no SDK consumer sets them directly)"
)


def test_config_filename_default() -> None:
assert SplunkAOConfig.model_fields["config_filename"].default == "splunk-ao-config.json"


def test_config_file_path_resolves_to_splunk_ao_config(tmp_path) -> None:
"""Runtime config_file property resolves to splunk-ao-config.json under home_dir.

Complements test_config_filename_default by exercising the upstream
config_file property rather than just the declared field default.
model_construct skips network-calling validators while still applying
field defaults.
"""
config = SplunkAOConfig.model_construct(home_dir=tmp_path)

assert config.config_file == tmp_path / "splunk-ao-config.json"