Skip to content

Proposal: clarify /btw vs /side semantics for detached side questions during active runs #9688

@gaixianggeng

Description

@gaixianggeng

Summary

I’d like to propose a non-interrupting "side question" workflow for cases where the main task is still running, but I want to ask something in the same chat that may be completely unrelated to the main task.

I’m opening this as a design/alignment issue first because there seems to be a product-semantic question here, not just an implementation question.

Current state

/btw

/btw <question> already exists and is documented as:

Ephemeral side question using session context (no tools, not persisted).

From the current implementation, /btw:

  • uses current session/conversation context
  • runs with enabled_toolsets=[]
  • uses skip_memory=True
  • uses persist_session=False
  • does not write the side exchange back into the main session history

So /btw is good for contextual follow-up questions, but not necessarily for a question that is unrelated to the current task.

Busy-session behavior

There is already an open issue about /btw not bypassing the active-session guard during active runs:

Prior /side attempt

There was also a previous closed PR proposing /side:

That PR’s behavior was roughly:

  • run during active tasks without interrupting them
  • no tools
  • no persistence into the main session
  • still use current session context

The design question

Should Hermes support a detached side-question command for unrelated questions during active runs?

The concrete use case is:

  • the main task is busy and should keep running
  • I want to ask a quick question in the same chat
  • the question may be unrelated to the main task
  • I do not want that side question to contaminate the main task’s context/history

Proposed semantics

I think there are two distinct concepts here:

  1. Contextual side question

    • uses current session history
    • good for "by the way, what does this part of the current task mean?"
    • this is close to what /btw already does
  2. Detached side question

    • does not inherit current session history by default
    • does not interrupt the active task
    • no tools
    • not persisted to the main session
    • returns asynchronously to the same chat
    • good for "while this is running, answer something unrelated"

Possible directions

Option A — keep /btw contextual, add /side as detached

  • /btw = contextual ephemeral side question
  • /side = detached ephemeral side question

Option B — extend /btw with an explicit detached mode

Example:

  • /btw <question> = contextual
  • /btw --detached <question> = detached

Option C — make /btw detached by default and add an explicit contextual variant

I think this is probably the most confusing option, but including it for completeness.

My preference

I’d currently lean toward Option A:

  • keep /btw as the contextual "by the way" command
  • add /side as the detached/non-interrupting command for unrelated questions

That seems to make the distinction the clearest:

  • /btw = related to current context
  • /side = parallel/unrelated side question

Why I’m asking before implementing

Because the main uncertainty here is semantic overlap:

I’d prefer to align on product behavior first, then implement whichever direction maintainers prefer.

If this direction sounds reasonable

I’m happy to prepare a PR after confirmation, including tests for:

  • command registration/help
  • active-session bypass behavior
  • running-agent bypass behavior
  • no persistence into the main session
  • detached-vs-contextual semantics

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havecomp/cliCLI entry point, hermes_cli/, setup wizardcomp/gatewayGateway runner, session dispatch, deliverytype/featureNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions