2c24ed4b6e
The embedded daemon-start worker usually runs with no secret scope, so _embedded_llm_api_key resolved empty and both the profile-env compare and the upstream manager merge overwrote the file's good key with emptiness. - _embedded_llm_api_key: explicit config, then secret scope, then on-disk profile env fallback; UnscopedSecretError treated as empty without touching os.environ (multiplex safety). - Add _may_rewrite_profile_env gate: refuse rewrite on keyless-build plus keyed-disk, and skip the daemon stop in that case. - Document key resolution order in plugins/memory/hindsight/README.md. - Add 5 tests pinning disk fallback, the gate's refuse branch, rotation, keyless providers, and file survival. (cherry picked from commit 48a4bcd536fa799b666a8d5eaae73c1816ca9e33)