personal memory agent
0
fork

Configure Feed

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

Accept stream query parameter in ingest_segments endpoint

The segments list endpoint derived stream from remote name via
stream_name(remote=...), which calls _strip_hostname and strips
qualifiers like '.tmux' — colliding both observers into one stream.

Now accepts an optional ?stream= query parameter, matching the
pattern already used by ingest_upload. Falls back to deriving
from remote name when not provided.

Prerequisite for standalone solstone-tmux observer extraction.

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

+7 -2
+7 -2
apps/remote/routes.py
··· 687 687 # Get day directory for file verification 688 688 day_dir = day_path(day) 689 689 690 - # Derive stream from remote name for file path resolution 690 + # Determine stream: trust client-provided query param if valid, 691 + # otherwise derive from remote name (same logic as ingest_upload). 692 + client_stream = request.args.get("stream", "").strip() 691 693 remote_name = remote.get("name", "unknown") 692 - stream = stream_name(remote=remote_name) 694 + if client_stream and re.match(r"^[a-z0-9][a-z0-9._-]*$", client_stream): 695 + stream = client_stream 696 + else: 697 + stream = stream_name(remote=remote_name) 693 698 694 699 # Build response grouped by segment, deduplicating by sha256 695 700 # Later records overwrite earlier ones (most recent upload wins)