mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
policy.resolve() / TelemetryDecision was a read-only projection used only by
`hermes telemetry status` for display. The actual behavior gates already read
telemetry.* straight from config: the emitter (whether to write) and the plugin
loader (whether to auto-load) each call .get("local", True) on the loaded config,
never through policy.
Make config the single chokepoint the status command reads too: it now resolves
local/allow_aggregate/consent_state inline from the loaded config, the same way
the other gates do. policy.py keeps only what config can't express on its own —
the consent constants, ensure_install_id(), and may_upload_aggregate(config) as a
pure function (the gate a future uploader must consult). resolve() and the
TelemetryDecision dataclass are removed; policy.py drops 107 -> 70 lines.
No behavior change: status renders identically, and the default-on local plane is
still defaulted in DEFAULT_CONFIG plus a fail-safe .get(..., True) at each gate.
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_cli_telemetry.py | ||
| test_emitter.py | ||
| test_export_redaction.py | ||
| test_exporter_bulk.py | ||
| test_governance.py | ||
| test_insights_integration.py | ||
| test_otlp_exporter.py | ||
| test_plugin_autoload.py | ||
| test_plugin_hooks.py | ||
| test_policy_consent.py | ||
| test_rollup.py | ||
| test_schema_migration.py | ||