fix(mattermost): preserve Codex progress preview (#93476) · openclaw/openclaw@46c12b6
goutamadwant
·
2026-06-16
·
via Recent Commits to openclaw:main
File tree
extensions/mattermost/src/mattermost
| Original file line number | Diff line number | Diff line change |
|---|
@@ -445,13 +445,14 @@ describe("mattermost inbound user posts", () => {
|
445 | 445 | expect(ctx?.Provider).toBe("mattermost"); |
446 | 446 | }); |
447 | 447 | |
448 | | -it("merges Mattermost progress preview updates by line identity", async () => { |
| 448 | +it("merges Mattermost progress preview updates and clears after message-tool delivery", async () => { |
449 | 449 | const socket = new FakeWebSocket(); |
450 | 450 | const abortController = new AbortController(); |
451 | 451 | mockState.abortController = abortController; |
452 | 452 | const draftStream = { |
453 | 453 | update: vi.fn(), |
454 | 454 | flush: vi.fn(async () => {}), |
| 455 | +clear: vi.fn(async () => {}), |
455 | 456 | stop: vi.fn(async () => {}), |
456 | 457 | }; |
457 | 458 | mockState.createMattermostDraftStream.mockReturnValue(draftStream); |
@@ -505,6 +506,7 @@ describe("mattermost inbound user posts", () => {
|
505 | 506 | status: "completed", |
506 | 507 | progressText: "done", |
507 | 508 | }); |
| 509 | +await params.replyOptions?.onObservedReplyDelivery?.(); |
508 | 510 | abortController.abort(); |
509 | 511 | }); |
510 | 512 | |
@@ -543,6 +545,9 @@ describe("mattermost inbound user posts", () => {
|
543 | 545 | socket.emitClose(1000); |
544 | 546 | await monitor; |
545 | 547 | |
| 548 | +const replyOptions = mockState.dispatchReplyFromConfig.mock.calls.at(0)?.[0].replyOptions; |
| 549 | +expect(replyOptions?.allowProgressCallbacksWhenSourceDeliverySuppressed).toBe(true); |
| 550 | +expect(draftStream.clear).toHaveBeenCalledTimes(1); |
546 | 551 | const updates = draftStream.update.mock.calls.map((call) => String(call[0])); |
547 | 552 | expect(updates.at(-1)).toContain("Read"); |
548 | 553 | expect(updates.at(-1)).toContain("Exec"); |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -1922,6 +1922,11 @@ export async function monitorMattermostProvider(opts: MonitorMattermostOpts = {}
|
1922 | 1922 | dispatcher, |
1923 | 1923 | replyOptions: { |
1924 | 1924 | ...replyOptions, |
| 1925 | +allowProgressCallbacksWhenSourceDeliverySuppressed: |
| 1926 | +draftToolProgressEnabled ? true : undefined, |
| 1927 | +onObservedReplyDelivery: draftToolProgressEnabled |
| 1928 | + ? () => draftStream.clear() |
| 1929 | + : undefined, |
1925 | 1930 | disableBlockStreaming: true, |
1926 | 1931 | ...(suppressDefaultToolProgressMessages |
1927 | 1932 | ? { suppressDefaultToolProgressMessages: true } |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。