Skip to content

[Feature]: [MiniApp] Mini App 无法获知「是哪段会话打开了它」,建议在 runtime context 或 client bridge 中暴露 sessionId #475

Open

Description

@avatasia

Product or interface

Desktop app

Use case and problem

我在写一个 Mini App(只读地查看一段会话的模型轨迹:消息流、思考过程、工具调用与结果、token 与耗时),希望在用户从某段对话里打开它时,直接展示那一段对话的轨迹。

但 Mini App 无法知道自己这一页对应哪段会话——它两端都不携带会话标识:

  • Node 侧传给 start(context) 的上下文里没有 sessionId
  • Client 侧暴露的 window.mcode 只有 miniapp.message.append 一个方法
  • 页面 URL 不带任何参数

后果是所有「关于当前会话」的 Mini App 都只能猜。要么按文件修改时间挑最近一段(在你打开空闲会话时,会展示成上一段对话的内容),要么去读内部运行时数据库的活跃 turn 租约(同时跑两段对话时,必须让用户手选)。两者都会把猜测当成事实呈现。

这不只是我一个人的需求:轨迹查看、token 看板、成本统计、会话质量复盘,凡是「关于当前会话」的插件都会撞上同一堵墙。

Desired behavior

希望 Mini App 能拿到一个明确的、只读的「当前会话」标识。两种形式任选其一,都可接受:

方案 A — Node 侧
在 start(context) 的入参里增加一个只读字段,例如 context.sessionId,没有可用会话时为 null。

方案 B — Client 侧
在 window.mcode.miniapp 下暴露只读 getter:
window.mcode.miniapp.currentSession // { sessionId, agentName } | null

验收标准:

  1. 在某段会话中打开 Mini App,插件读到的值等于该会话的 id(形如 mvs_...)。
  2. 从不由会话触发的地方打开(例如从设置面板),读到的是 null,而不是随便一个值——
    插件需要能区分「未绑定」和「绑定到空」。
  3. 该值只读,插件不能写入;赋值必须失败或被忽略。
  4. 不新增任何必须由插件方自行填写的必填参数,第三方 Mini App 保持向后兼容。

交互示例:
用户在会话 A 中从 @ 菜单打开「会话轨迹」→ 插件直接读到 sessionId=A → 立即展示 A 的轨迹,
无需询问、无需弹窗、不显示任何「正在猜测」的降级提示。
同一用户在会话 B 中再次打开 → 读到 sessionId=B → 展示 B。

Platform

Windows

Alternatives and additional context

No response

Activity

  1. MyPrototypeWhat commented on Oct 10, 2026

    @MyPrototypeWhat

    后续迭代会支持 miniapp 感知当前 session 的 agent 事件

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    desktopMiniMax Code desktop appenhancementNew feature or requestneeds-triageAwaiting maintainer assessment

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions