[BUG] Claude Tag: Persistent per-channel memory not inherited by trigger-spawned sessions

Open 💬 1 comment Opened Jul 1, 2026 by DoriRu

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When a scheduled trigger fires and spawns a fresh session (via the claude-code-remote MCP's create_trigger with create_new_session_on_fire: true), the new session does not inherit the per-channel memory partition that interactive sessions in the same channel receive. As a result, /tmp/claude/memory/ does not exist in trigger-spawned sessions, and routines that rely on per-channel state (dedup markers, cursors, etc.) have no persistent scratch space across fires.

Trigger-spawned sessions boot without CLAUDE_MEMORY_STORES set. Consequences observed in the fresh session:

/tmp/claude/memory/ does not exist at all.
/tmp/rclone-mount-config.json contains only the default /mnt/account-plugins mount — no memory mount is configured.
Startup logs do not include the resume_hydrate_fetch_ms step that appears in interactive session boot logs.

The MCP surface offers no way to attach a memory partition to a trigger either: create_trigger accepts name, prompt, cron_expression, run_once_at, environment_id, persistent_session_id, create_new_session_on_fire, and notifications; update_trigger accepts name, cron_expression, run_once_at, and enabled. Neither exposes a memory_stores, env_vars, or equivalent field. Environment-level configuration is also not diagnosable through the MCP — list_environments returns zero entries on this account.

What Should Happen?

Expected behaviorA trigger created from within a channel-scoped interactive session should spawn sessions that see the same team memory partition as the parent channel. Specifically, the spawned session's environment should include a CLAUDE_MEMORY_STORES entry pointing at the channel's memory mount, and /tmp/claude/memory/team/silo/channel/CXXXXX/ should be hydrated at boot just as it is for interactive sessions.

Error Messages/Logs

Steps to Reproduce

In a channel-scoped interactive session, confirm memory hydration works: env | grep CLAUDE_MEMORY_STORES returns a value like [{"path":"/v1/code/memory/cagt_xxx","mount":"silo","mode":"rw","promptIndex":"channel/CXXXXX/MEMORY.md","promptIndexMaxBytes":16384}], and ls /tmp/claude/memory/team/silo/channel/CXXXXX/ shows the hydrated directory.
From that same session, create a trigger that fires on a short interval into a fresh session:create_trigger(
  name="memory-probe",
  prompt="Report the output of: env | grep CLAUDE_MEMORY_STORES; ls -la /tmp/claude/memory 2>&1; cat /tmp/rclone-mount-config.json",
  cron_expression="/5 *",
  create_new_session_on_fire=true
)
Wait for the trigger to fire and open the spawned session.
Observe: CLAUDE_MEMORY_STORES is unset, /tmp/claude/memory does not exist, and /tmp/rclone-mount-config.json shows only the default /mnt/account-plugins mount.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.197

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗