revert(过度矫正): 撤回"目录合不合法"的两道门槛 —— 错在投递,不在值
用户否掉了我上一步的方向:「?拒收那个目录干啥?明明是你的网关投递逻辑造成的错误」。 他是对的。/home 是**合法目录**,平台不该替用户裁定"哪个目录算工作目录": 网关地址受理处的 400、建议接口的过滤、桥侧的同类闸(revert 141003d)全部撤回。 判据随之删除 —— 判据不该给错误的实现护航(那会让错的东西看起来有保障)。 保留的是**真修复**(ad1f3f1,已在线): - 会话解析按 (path, 别名):错投的根因是解析只看别名、path 被当提示; - 唯一索引 (path, 别名);无 path 时"唯一才认,否则报歧义"; - 毒数据清理(/home 污染值 0|0|0)。 核心回归判据 TestFindNamedSessionForRequiresPath 保留。 仍未修(用户指的那一处):SSE 投递只按 name 广播 —— 同名不同 path 的客户端谁接到谁处理。 下一 commit:投递也带会话身份,只投给声明了该会话的客户端。
This commit is contained in:
@ -82,32 +82,3 @@ func TestFindNamedSessionForRequiresPath(t *testing.T) {
|
||||
t.Fatalf("没参与过这条线索的名字不该命中,实际 %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// IsPlausibleWorkspace:地址受理与"目录建议"共用的一条规则。
|
||||
//
|
||||
// 它存在的意义是**堵住源头**:一个 `/home` 这样的值进了地址,会话的 workspace 就错了,
|
||||
// 桥会把 worker 起在那里(实测 cwd=/home),那个 worker 发的信继续带 /home,
|
||||
// 建议接口再把它学成第一条候选 —— 自我强化。所以这里两侧都钉:
|
||||
// 实测污染过的形状必须是 false,真实工作目录必须是 true。
|
||||
func TestIsPlausibleWorkspace(t *testing.T) {
|
||||
cases := []struct {
|
||||
in string
|
||||
want bool
|
||||
why string
|
||||
}{
|
||||
{"/home", false, "一切的家目录(实测污染值)"},
|
||||
{"/root", false, "进程家目录(实测污染值)"},
|
||||
{"/root/.pi/mail-sessions/8f056b73", false, "会话存储目录(实测污染值)"},
|
||||
{"/home/program/agentmail/../llmsproxy", true, "含 .. 但归一化后是具体目录"},
|
||||
{"rel/path", false, "相对路径不是地址里的 path"},
|
||||
{"", false, "空"},
|
||||
{"/home/program/agentmail", true, "真实工作目录"},
|
||||
{"/home/newqqagent", true, "homeagent 的真实工作目录"},
|
||||
{"/tmp/remotebot-ws", true, "尚未创建的注册目录也要放行(不做存在性检查)"},
|
||||
}
|
||||
for _, c := range cases {
|
||||
if got := IsPlausibleWorkspace(c.in); got != c.want {
|
||||
t.Errorf("IsPlausibleWorkspace(%q) = %v, want %v(%s)", c.in, got, c.want, c.why)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user