Problem
Slack integration mounts derive their remoteRoot from the slug-suffixed path <channelId>__<slug> (e.g. C0B8ZL2L9GC__pear-pty-investigation), set in src/main/integration-mounts.ts (mountSpecsFor, spec.remotePath = mountPath). When a channel is renamed, the slug changes, so the suffixed mount root desyncs from the live channel and read-down breaks until the mount is re-provisioned — even though the channel ID (C0B8ZL2L9GC) is stable and fully sufficient to identify the conversation.
Operator ask (Khaliq): "We should have a more performant way to handle channel renames. We have the ID so it should be durable."
Why it matters
- A rename silently breaks the inbound read-down we just activated (mirror mounts), with no error — same class as the bare-vs-suffixed seam fixed for the events feed in cloud#2010, one layer up.
- The suffix is cosmetic; the ID is the durable key.
Proposed direction
- Key mounts + event routing on the bare channel ID; treat the human slug as a cosmetic alias.
- On a Slack
channel_rename event, auto-reconcile the slug (or make the mount root tolerant of slug drift) instead of requiring re-provision.
- Spans Pear mount-topology (
integration-mounts.ts remoteRoot derivation) and cloud routing (record-path / events-feed path emission — same area as cloud#2010).
Evidence
- Mount launch line:
remote=/slack/channels/C0B8ZL2L9GC__pear-pty-investigation/messages — slug embedded in the durable root.
- Related: bare-vs-suffixed channel-id handling (pear#155 / cloud#1995 / cloud#2010).
Problem
Slack integration mounts derive their
remoteRootfrom the slug-suffixed path<channelId>__<slug>(e.g.C0B8ZL2L9GC__pear-pty-investigation), set insrc/main/integration-mounts.ts(mountSpecsFor,spec.remotePath = mountPath). When a channel is renamed, the slug changes, so the suffixed mount root desyncs from the live channel and read-down breaks until the mount is re-provisioned — even though the channel ID (C0B8ZL2L9GC) is stable and fully sufficient to identify the conversation.Operator ask (Khaliq): "We should have a more performant way to handle channel renames. We have the ID so it should be durable."
Why it matters
Proposed direction
channel_renameevent, auto-reconcile the slug (or make the mount root tolerant of slug drift) instead of requiring re-provision.integration-mounts.tsremoteRoot derivation) and cloud routing (record-path / events-feed path emission — same area as cloud#2010).Evidence
remote=/slack/channels/C0B8ZL2L9GC__pear-pty-investigation/messages— slug embedded in the durable root.