Files
hsiegeln 31d3702eaf fix: deserialize config envelope and prepare agent for env-scoped config
The server wraps GET /api/v1/config/{applicationId} in an envelope
({config, globalSensitiveKeys, mergedSensitiveKeys}). The agent was
deserializing the body straight into ApplicationConfig, so version fell
back to 0 and the agent logged "No server config, using defaults" even
though the server had returned a populated config.

- ServerConnection.fetchApplicationConfig: unwrap envelope; fall back
  to bare ApplicationConfig for older servers; populate sensitiveKeys
  from mergedSensitiveKeys when the inner config doesn't carry them.
- ApplicationConfig: add @JsonIgnoreProperties(ignoreUnknown=true) so
  future server-added fields (environment) don't break older agents,
  and add the environment field itself.
- CameleerAgentConfig: stop silently defaulting environmentId to
  "default"; log a WARN when cameleer.agent.environment is unset and
  expose isEnvironmentExplicit() so it's visible in diagnostics.
- StartupReport: surface environment (with "(unconfigured)" suffix
  when defaulted) in the startup log and AGENT_STARTED event details.
- deploy/perf-app.yaml: align on "development" like the other
  non-native sample apps.
- PROTOCOL.md: document the real config endpoint path and envelope
  shape (was still describing the unimplemented /agents/{id}/config).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-16 22:02:56 +02:00
..