personal memory agent
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix: populate config["stream"] from SOL_STREAM for muse hooks

dream.py passes the stream name as SOL_STREAM env var but not as a
top-level request key. prepare_config() merges request fields into the
agent config, but hooks reading config.get("stream") got None — causing
segment_path() to resolve the wrong directory (missing the stream layer).

This broke speaker_attribution's stub write: the hook found no .npz at
the wrong path and silently skipped writing speaker_labels.json, even
though the segment had embeddings at the correct stream-qualified path.

Fix: read SOL_STREAM in prepare_config() and set config["stream"] if
not already present. Same pattern used by _load_transcript() and output
path resolution.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+7
+7
think/agents.py
··· 486 486 # Merge request values (request overrides agent defaults) 487 487 config.update({k: v for k, v in request.items() if v is not None}) 488 488 489 + # Populate stream from env if not already in config (dream passes it as 490 + # SOL_STREAM env var but not as a top-level request key — hooks need it) 491 + if "stream" not in config: 492 + sol_stream = os.environ.get("SOL_STREAM") 493 + if sol_stream: 494 + config["stream"] = sol_stream 495 + 489 496 # Track additional state 490 497 config["span_mode"] = bool(span) 491 498 config["source_counts"] = {}