Skip to content

[codex] 持久化 Group Chat workspace diff 执行审计#1981

Merged
EKKOLearnAI merged 1 commit into
EKKOLearnAI:mainfrom
hanzckernel:codex/group-chat-workspace-diff-exec
Jul 8, 2026
Merged

[codex] 持久化 Group Chat workspace diff 执行审计#1981
EKKOLearnAI merged 1 commit into
EKKOLearnAI:mainfrom
hanzckernel:codex/group-chat-workspace-diff-exec

Conversation

@hanzckernel

Copy link
Copy Markdown
Collaborator

改动说明

这是替代 #1953 的 stacked split 第 2 段,建立在 parent PR 之上,只保留 workspace diff 执行、审计持久化和 lifecycle stale-fence。

  • 为 group-agent Bridge run 预分配并校验 run_id,避免 run id mismatch 和 orphan diff card。
  • 持久化 durable workspace_diff tool message,用于审计 agent 在房间 workspace 中产生的文件变更。
  • 在后续 context projection 中排除审计消息,避免 diff audit 污染 agent context。
  • 为 context/status、stream start/delta/end、reasoning、approval 和 token refresh 路径加 session freshness guard。
  • clear/delete/workspace-switch 在等待 interrupt 前先 fence 当前 room-agent session,拒绝旧 session side-channel 写回。
  • room-wide interrupt pending 时暂停 mention queue drain,避免 queued mention 在旧 workspace/session 下启动新的 Bridge run。
  • interrupt unsynced/409 时不提前突变 room state,并保留 queued mentions。

Stack

Diff hygiene

  • baoyu infographic、分析稿、HTML/PNG 渲染文件没有进入源码 diff。
  • 源码 diff 中仅保留 repo harness 需要的 chat-chain fragments;没有把说明图或临时分析文档提交到 PR。

验证结果

  • npm test -- tests/server/group-chat-workspace.test.ts tests/server/group-chat-workspace-diff.test.ts tests/server/group-chat-workspace-diff-context.test.ts tests/server/group-chat-agent-workspace.test.ts tests/server/group-chat-member-sync.test.ts tests/server/group-chat-agent-routing-baseline.test.ts tests/server/group-chat-approval.test.ts tests/server/group-chat-streaming.test.ts tests/server/group-chat-history-window.test.ts tests/client/group-chat-workspace-diff.test.ts:通过,10 files / 89 tests passed。
  • npm run test:通过,292 files passed;2179 passed / 2 skipped。
  • npm run build:通过。
  • npm run harness:check:通过,Harness check passed。
  • git diff --check:通过。
  • Independent Codex blocker review after mention-queue fence fix:NO BLOCKERS。

@EKKOLearnAI

EKKOLearnAI commented Jul 8, 2026

Copy link
Copy Markdown
Owner
const started = await bridge.chat(
  session_id,
  bridgeInput as AgentBridgeMessage,
  bridgeHistory,
  fullInstructions,
  profile,
  {
    ...(bridgeStorageInput !== undefined ? { storage_message: bridgeStorageInput } : {}),
    ...(resolvedModel ? { model: resolvedModel } : {}),
    ...(resolvedProvider ? { provider: resolvedProvider } : {}),
    ...(workspace ? { workspace } : {}),
    // Local patch (reasoning-effort): per-session reasoning effort override.
    ...(data.reasoning_effort ? { reasoning_effort: data.reasoning_effort } : {}),
  },
)
state.runId = started.run_id
try {
  startWorkspaceRunCheckpoint({
    sessionId: session_id,
    runId: started.run_id,
    workspace,
  })
} catch (err) {
  bridgeLogger.warn({ err, sessionId: session_id, runId: started.run_id }, '[workspace-diff] failed to start run checkpoint')
}

不要自己去动刀bridge上的 run_id ,最近gpt很傻很傻,然后上个pr我改了些东西,这个pr有点脏,你在cherry picker 一下

@hanzckernel hanzckernel force-pushed the codex/group-chat-workspace-diff-exec branch from c097df8 to 9b5d244 Compare July 8, 2026 21:07
@hanzckernel hanzckernel changed the base branch from codex/group-chat-room-workspace-binding to main July 8, 2026 21:07
@EKKOLearnAI EKKOLearnAI merged commit 90b7a3c into EKKOLearnAI:main Jul 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants