---
read_when:
    - پیکربندی به‌روزرسانی‌های قابل‌مشاهدهٔ پیشرفت برای نوبت‌های طولانی گفتگو
    - انتخاب میان حالت‌های استریم جزئی، بلوکی و پیشرفت کار
    - توضیح نحوه به‌روزرسانی یک پیام کانال توسط OpenClaw در حین انجام کار
    - عیب‌یابی پیش‌نویس‌های پیشرفت، پیام‌های مستقل پیشرفت یا راهکار جایگزین نهایی‌سازی
summary: 'پیش‌نویس‌های پیشرفت: یک پیام قابل‌مشاهدهٔ در حال انجام که هنگام اجرای عامل به‌روزرسانی می‌شود'
title: پیش‌نویس‌های پیشرفت
x-i18n:
    generated_at: "2026-07-16T16:05:45Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 4ef66dd4d7a31c753f5faa0b88b83ec3760beecf3118cf8aae84f5e57652e809
    source_path: concepts/progress-drafts.md
    workflow: 16
---

پیش‌نویس‌های پیشرفت، هنگام کار عامل، یک پیام کانال را به خط وضعیت زنده تبدیل می‌کنند، نه به انبوهی از پاسخ‌های موقت «هنوز در حال کار». با تنظیم
`channels.<channel>.streaming.mode: "progress"`، OpenClaw پس از شروع کار واقعی پیام را
یک‌بار ایجاد می‌کند، هم‌زمان با خواندن، برنامه‌ریزی، فراخوانی
ابزارها یا انتظار برای تأیید توسط عامل آن را ویرایش می‌کند و سپس آن را به پاسخ نهایی تبدیل می‌کند.

```text
در حال کار...
📖 از docs/concepts/progress-drafts.md
🔎 جست‌وجوی وب: برای "discord edit message"
🛠️ Bash: اجرای آزمون‌ها
```

<Note>
  وقتی `channels.discord.streaming` تنظیم نشده باشد، مقدار پیش‌فرض Discord از قبل
  `streaming.mode: "progress"` است، بنابراین پیش‌نویس‌های پیشرفت
  بدون هیچ پیکربندی‌ای در آنجا نمایش داده می‌شوند. مقدار پیش‌فرض همه کانال‌های دیگر `partial`
  یا `off` است؛ برای جدول کامل مقادیر پیش‌فرض هر کانال،
  [استریم و قطعه‌بندی](/fa/concepts/streaming#channel-mapping) را ببینید.
</Note>

## شروع سریع

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
      },
    },
  },
}
```

مقادیر پیش‌فرض از اینجا به بعد: تأخیر شروع 5 ثانیه‌ای، خطوط فشرده پیشرفت هنگام
انجام کار مفید و جلوگیری از نمایش پیام‌های مستقل قدیمی‌تر پیشرفت
برای آن نوبت. پیش‌نویس خطوط خام ابزار از
یک برچسب خودکار یک‌کلمه‌ای استفاده می‌کند؛ تیتر وضعیت این عنوان تکراری را حذف می‌کند،
مگر اینکه آن را صریحاً پیکربندی کنید.

این صفحه تجربه پیش‌نویس پیشرفت و گزینه‌های پیکربندی آن را پوشش می‌دهد. برای
ماتریس کامل حالت‌های استریم، نکات زمان اجرای هر کانال و مهاجرت کلیدهای
قدیمی، [استریم و قطعه‌بندی](/fa/concepts/streaming) را ببینید.

## آنچه کاربران می‌بینند

| بخش            | هدف                                                                           |
| --------------- | --------------------------------------------------------------------------------- |
| تیتر وضعیت | در Discord و Telegram، مقدمه مدل؛ Discord یک متن پرکننده کمکی اضافه می‌کند.       |
| برچسب           | خط شروع/وضعیت اختیاری مانند `Working`.                                   |
| خطوط پیشرفت  | به‌روزرسانی‌های فشرده اجرا با همان آیکون‌های ابزار و قالب‌بند جزئیات `/verbose`. |

برای پیشرفت خام ابزار، برچسب پس از شروع کار معنادار توسط عامل
و ادامه فعالیت در طول تأخیر اولیه ظاهر می‌شود.
این برچسب در بالای فهرست چرخشی خطوط پیشرفت قرار می‌گیرد، بنابراین پس از
نمایش تعداد کافی خط کار مشخص، با پیمایش از دید خارج می‌شود. تیتر وضعیت فقط وضعیت
عامل را به زبان ساده نشان می‌دهد، مگر اینکه برچسبی صریحاً پیکربندی شده باشد. پاسخ‌هایی که
فقط متن ساده‌اند هرگز پیش‌نویس پیشرفت نشان نمی‌دهند؛ خط فقط برای به‌روزرسانی‌های واقعی کار ظاهر می‌شود،
برای مثال `🛠️ Bash: run tests`، `🔎 Web Search: for "discord edit message"`
یا `✍️ Write: to /tmp/file`.

وقتی کانال بتواند این کار را با اطمینان انجام دهد، پاسخ نهایی در همان محل جایگزین پیش‌نویس
می‌شود؛ در غیر این صورت OpenClaw پاسخ نهایی را از مسیر تحویل عادی ارسال می‌کند و
پیش‌نویس را پاک می‌کند یا به‌روزرسانی آن را متوقف می‌کند (به [نهایی‌سازی](#finalization) مراجعه کنید).

## انتخاب حالت

`channels.<channel>.streaming.mode` رفتار قابل‌مشاهده هنگام پیشرفت را کنترل می‌کند:

| حالت       | مناسب برای                         | آنچه در گفت‌وگو ظاهر می‌شود                              |
| ---------- | -------------------------------- | ------------------------------------------------- |
| `off`      | کانال‌های ساکت                   | فقط پاسخ نهایی.                            |
| `partial`  | مشاهده ظاهر شدن متن پاسخ      | یک پیش‌نویس که با تازه‌ترین متن پاسخ ویرایش می‌شود.     |
| `block`    | قطعه‌های بزرگ‌تر پیش‌نمایش پاسخ     | یک پیش‌نمایش که در قطعه‌های بزرگ‌تر به‌روزرسانی یا به آن افزوده می‌شود. |
| `progress` | نوبت‌های ابزارمحور یا طولانی | یک پیش‌نویس وضعیت، سپس پاسخ نهایی.          |

وقتی «چه اتفاقی در حال رخ دادن است» برای کاربران مهم‌تر از مشاهده استریم
توکن‌به‌توکن متن پاسخ است، `progress` را انتخاب کنید؛ وقتی خود متن پاسخ
نشانه پیشرفت است، `partial` را انتخاب کنید؛ برای قطعه‌های بزرگ‌تر پیش‌نمایش از `block` استفاده کنید. در Discord و
Telegram، `streaming.mode: "block"` همچنان استریم پیش‌نمایش است، نه تحویل عادی
پاسخ بلوکی — برای آن از `streaming.block.enabled` استفاده کنید.

## پیکربندی برچسب‌ها

برچسب‌های پیشرفت زیر `channels.<channel>.streaming.progress` قرار دارند. برچسب پیش‌فرض
خط خام ابزار `"auto"` است که از برچسب ساده داخلی `Working`
استفاده می‌کند. تیتر وضعیت این برچسب ضمنی را پنهان می‌کند؛ اگر می‌خواهید برچسبی بالای آن نیز باشد،
`label: "auto"` را صریحاً تنظیم کنید:

```text
در حال کار
```

از یک برچسب ثابت استفاده کنید:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          label: "در حال بررسی",
        },
      },
    },
  },
}
```

از مجموعه برچسب‌های خودتان استفاده کنید (هنگام `label: "auto"` همچنان به‌صورت تصادفی/بر اساس بذر انتخاب می‌شود):

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          label: "auto",
          labels: ["در حال بررسی", "در حال خواندن", "در حال آزمودن", "در حال اتمام"],
        },
      },
    },
  },
}
```

برچسب را پنهان کنید و فقط خطوط پیشرفت را نشان دهید:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          label: false,
        },
      },
    },
  },
}
```

## کنترل خطوط پیشرفت

خطوط پیشرفت از رویدادهای واقعی اجرا می‌آیند: شروع ابزار، به‌روزرسانی آیتم، برنامه‌های
کار، تأییدها، خروجی فرمان، خلاصه وصله‌ها و فعالیت‌های مشابه عامل.
این خطوط به‌طور پیش‌فرض فعال‌اند (`progress.toolProgress`، پیش‌فرض `true`).

ابزارها همچنین می‌توانند هنگام ادامه اجرای یک فراخوانی واحد، پیشرفت نوع‌دار منتشر کنند. به این
ترتیب، واکشی یا جست‌وجوی کند پیش از بازگرداندن نتیجه نهایی ابزار،
پیش‌نویس قابل‌مشاهده را به‌روزرسانی می‌کند. به‌روزرسانی پیشرفت یک نتیجه جزئی ابزار با
محتوای خالی مدل و فراداده صریح کانال عمومی است:

```json
{
  "content": [],
  "progress": {
    "text": "در حال واکشی محتوای صفحه...",
    "visibility": "channel",
    "privacy": "public",
    "id": "web_fetch:fetching"
  }
}
```

OpenClaw فقط `progress.text` را در رابط کاربری پیشرفت کانال نمایش می‌دهد. نتیجه عادی
ابزار بعداً به‌صورت `content`/`details` می‌رسد و تنها بخشی است
که به مدل بازگردانده می‌شود.

هنگام افزودن پیشرفت به یک ابزار، پیامی کوتاه و عمومی منتشر کنید و آن را
تا زمانی که عملیات به‌اندازه کافی در انتظار نمانده تا مفید باشد، به تأخیر بیندازید. `web_fetch`
دقیقاً همین کار را با تأخیر 5 ثانیه‌ای انجام می‌دهد:

```typescript
const clearProgressTimer = scheduleToolProgress(
  onUpdate,
  { text: "در حال واکشی محتوای صفحه...", id: "web_fetch:fetching" },
  5_000,
  { signal },
);

try {
  return await runToolWork();
} finally {
  clearProgressTimer();
}
```

فراخوانی‌های سریع هیچ خط پیشرفتی نشان نمی‌دهند؛ فراخوانی‌های طولانی در مدت انتظار یک خط نشان می‌دهند؛
فراخوانی‌های لغوشده پیش از ظاهر شدن پیشرفت منقضی، زمان‌سنج را پاک می‌کنند. متن پیشرفت
یک کانال جانبی عمومی رابط کاربری است، بنابراین هرگز نباید شامل اسرار، آرگومان‌های خام،
محتوای واکشی‌شده، خروجی فرمان یا متن صفحه باشد.

### حالت جزئیات

OpenClaw برای پیش‌نویس‌های پیشرفت و `/verbose` از یک قالب‌بند یکسان استفاده می‌کند:

```json5
{
  agents: {
    defaults: {
      toolProgressDetail: "explain", // توضیحی | خام
    },
  },
}
```

`"explain"` پیش‌فرض است و با برچسب‌های مختصر، پیش‌نویس‌ها را پایدار نگه می‌دارد.
`"raw"` در صورت موجود بودن، فرمان زیربنایی را اضافه می‌کند که هنگام
اشکال‌زدایی مفید است، اما گفت‌وگو را شلوغ‌تر می‌کند. برای مثال، یک فراخوانی `node --check /tmp/app.js`
در هر حالت به‌شکل متفاوتی نمایش داده می‌شود:

| حالت      | خط پیشرفت                                                   |
| --------- | --------------------------------------------------------------- |
| `explain` | `🛠️ check js syntax for /tmp/app.js`                            |
| `raw`     | `🛠️ check js syntax for /tmp/app.js · node --check /tmp/app.js` |

### متن فرمان/اجرا

`streaming.progress.commandText` (پیش‌فرض `"raw"`) مستقل از حالت جزئیات
بالا، میزان جزئیات فرمان نمایش‌داده‌شده کنار خطوط پیشرفت exec/bash را کنترل می‌کند.
برای حفظ نمایش خط پیشرفت ابزار و در عین حال پنهان کردن کامل
متن فرمان، آن را روی `"status"` تنظیم کنید:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          commandText: "status",
        },
      },
    },
  },
}
```

### مسیر توضیحات

`streaming.progress.commentary` (پیش‌فرض `false`) روایت توضیحی/مقدمه‌ای مدل
پیش از ابزار (💬، برای مثال «بررسی می‌کنم... سپس
...») را میان خطوط ابزار در پیش‌نویس قرار می‌دهد. برای شکل پیکربندی
مشترک بین کانال‌ها، [استریم و قطعه‌بندی](/fa/concepts/streaming#commentary-progress-lane) را ببینید.

با فعال بودن مسیر توضیحات، مقدمه‌ها فقط به‌صورت همان خطوط درهم‌آمیخته
💬 نمایش داده می‌شوند؛ تیتر وضعیت زیر مزاحم نمی‌شود تا مسیر شکل
مستندشده خود را حفظ کند.

### تیتر وضعیت

در Discord و Telegram در حالت پیشرفت، هرگاه مقدمه نوع‌دار پیش از ابزار مدل
در دسترس باشد، به تیتر وضعیت پیش‌نویس تبدیل می‌شود. دیگر
کانال‌های حالت پیشرفت رفتار وضعیت موجود خود را حفظ می‌کنند. تیتر به‌طور
پیش‌فرض فعال است و برای نوبت‌های کوتاه، از دروازه عادی فعالیت عبور نمی‌کند؛
فعال‌سازی `streaming.progress.commentary` در عوض مقدمه‌ها را به مسیر درهم‌آمیخته
توضیحات می‌سپارد.

در Discord، وقتی یک مدل کمکی برای عامل تعیین شود — یک
[`utilityModel`](/fa/gateway/config-agents#utilitymodel) صریح، یا مقدار پیش‌فرض
مدل کوچک اعلام‌شده ارائه‌دهنده اصلی (OpenAI ← `gpt-5.6-luna`،
Anthropic ← `claude-haiku-4-5`) — اگر مدل هیچ مقدمه‌ای منتشر نکند یا حدود 20 ثانیه
ساکت مانده باشد، متن پرکننده کوتاهی به زبان ساده فراهم می‌کند
(تیتر Telegram در حال حاضر فقط از مقدمه استفاده می‌کند):

```text
در حال به‌روزرسانی مدل پیش‌فرض در پیکربندی شما و سپس راه‌اندازی مجدد Gateway برای
اعمال آن هستم. یک فراخوانی فهرست عامل ناموفق بود و دوباره تلاش می‌شود.
```

روایت کمکی به‌طور پیش‌فرض فعال است (`streaming.progress.narration`، پیش‌فرض
`true`) و هرگز به مدل اصلی بازنمی‌گردد: فقط با یک
`utilityModel` صریح یا مقدار پیش‌فرض اعلام‌شده ارائه‌دهنده برای ارائه‌دهنده
اصلی عامل اجرا می‌شود. برای غیرفعال کردن کامل مسیریابی کمکی، `utilityModel: ""` را تنظیم کنید. خطوط ابزار
در زیر آن همچنان انباشته می‌شوند و اگر هر دو منبع وضعیت متوقف شوند، بازمی‌گردند. ویرایش‌های
پیش‌نویس همچنان منتظر دروازه عادی فعالیت و یک تغییر واقعی
متن می‌مانند؛ این کار از چشمک زدن در نوبت‌های سریع جلوگیری می‌کند و تعداد ویرایش‌ها را در کانال‌های
شلوغ کاهش می‌دهد. برای غیرفعال کردن فقط متن پرکننده مدل کمکی، `narration: false` را تنظیم کنید؛ تیترهای
مقدمه مدل فعال باقی می‌مانند:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          narration: false,
        },
      },
    },
  },
}
```

ورودی روایت محدود و حذف‌اطلاعات‌شده است: مدل کمکی
متن درخواست ورودی را به‌همراه همان خلاصه‌های فشرده و حذف‌اطلاعات‌شده ابزار دریافت می‌کند که پیش‌نویس
نمایش می‌دهد — هرگز خروجی خام فرمان یا نتایج ابزار را دریافت نمی‌کند. با
`commandText: "status"`، ورودی روایت متن فرمان exec/bash را نیز حذف می‌کند،
تا با آنچه پیش‌نویس نشان می‌دهد مطابقت داشته باشد.

### محدودیت خطوط

تعداد خطوط قابل‌مشاهده را محدود کنید (پیش‌فرض 8):

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          maxLines: 4,
        },
      },
    },
  },
}
```

خطوط پیشرفت به‌طور خودکار فشرده می‌شوند تا هنگام
ویرایش پیش‌نویس، بازچینی حباب گفت‌وگو کاهش یابد و OpenClaw خطوط طولانی را کوتاه می‌کند تا ویرایش‌های مکرر
پیش‌نویس در هر به‌روزرسانی به‌شکل متفاوتی شکسته نشوند. بودجه پیش‌فرض هر خط 120
نویسه است؛ نثر در مرز واژه بریده می‌شود، در حالی که جزئیات طولانی مانند مسیرها یا
فرمان‌های خام با سه‌نقطه میانی کوتاه می‌شوند تا پسوند قابل‌مشاهده باقی بماند.

بودجه هر خط را تنظیم کنید:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          maxLineChars: 160,
        },
      },
    },
  },
}
```

### نمایش غنی (Slack)

Slack می‌تواند خطوط پیشرفت را به‌جای
متن ساده، به‌صورت فیلدهای ساختاریافته Block Kit نمایش دهد:

```json5
{
  channels: {
    slack: {
      streaming: {
        mode: "progress",
        progress: {
          render: "rich",
        },
      },
    },
  },
}
```

نمایش غنی همیشه همان بدنه متن ساده را در کنار فیلدهای Block Kit
ارسال می‌کند، بنابراین کلاینت‌هایی که نمی‌توانند ساختار غنی‌تر را نمایش دهند، همچنان متن فشرده
پیشرفت را نشان می‌دهند.

### پنهان کردن خطوط ابزار/کار

پیش‌نویس واحد پیشرفت را نگه دارید، اما خطوط ابزار و کار را پنهان کنید:

```json5
{
  channels: {
    discord: {
      streaming: {
        mode: "progress",
        progress: {
          toolProgress: false,
        },
      },
    },
  },
}
```

با `toolProgress: false`، OpenClaw همچنان پیام‌های قدیمی و مستقلِ پیشرفت ابزار را برای آن نوبت سرکوب می‌کند — کانال تا زمان پاسخ نهایی از نظر بصری آرام می‌ماند، به‌جز برچسب، اگر پیکربندی شده باشد.

## رفتار کانال

| کانال           | انتقال پیشرفت                           | یادداشت‌ها                                                                                                                                                     |
| --------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Discord         | یک پیام ارسال می‌شود و سپس ویرایش می‌شود.        | حالت پیش‌فرض `progress` است؛ پاسخ نهایی یک رسید فعالیت `-#` دارد و پیش‌نویس وضعیت پس از رسیدن پاسخ حذف می‌شود.                     |
| Matrix          | یک رویداد ارسال می‌شود و سپس ویرایش می‌شود.          | پیکربندی استریم در سطح حساب، پیش‌نویس‌های سطح حساب را کنترل می‌کند.                                                                                             |
| Microsoft Teams | استریم بومی Teams در گفت‌وگوهای شخصی. | `streaming.mode: "block"` در عوض به تحویل بلوکی Teams نگاشت می‌شود.                                                                                           |
| Slack           | استریم بومی یا پست پیش‌نویس قابل‌ویرایش.  | به یک مقصد رشته پاسخ نیاز دارد؛ پیام‌های مستقیم سطح‌بالا بدون آن همچنان پست‌های پیش‌نمایش پیش‌نویس و ویرایش‌ها را دریافت می‌کنند.                                                           |
| Telegram        | یک پیام ارسال می‌شود و سپس ویرایش می‌شود.        | اگر پیامی بین پیش‌نویس پیشرفت و پاسخ قرار گیرد، پیش‌نویس به‌جای جهش پیمایش در کلاینت، در پایین آن دوباره ارسال می‌شود (ابتدا ارسال پیام جدید، سپس حذف پیام قدیمی). |
| Mattermost      | پست پیش‌نویس قابل‌ویرایش.                   | حالت `block` میان متن تکمیل‌شده و پست‌های فعالیت ابزار جابه‌جا می‌شود؛ حالت‌های دیگر فعالیت ابزار را در همان پست پیش‌نویس‌مانند ادغام می‌کنند.                       |

کانال‌هایی که از ویرایش ایمن پشتیبانی نمی‌کنند، به نشانگرهای تایپ یا
تحویل فقط نهایی بازمی‌گردند. برای تفکیک کامل رفتار زمان اجرا در هر کانال،
[استریم و بخش‌بندی](/fa/concepts/streaming) را ببینید.

## نهایی‌سازی

وقتی پاسخ نهایی آماده است، OpenClaw تلاش می‌کند گفت‌وگو را مرتب نگه دارد:

- در حالت `progress` در Discord، پاسخ نهایی به‌صورت پیامی جدید ارسال می‌شود
  و یک رسید فعالیت کوچک `-#` به آن افزوده می‌شود (برای مثال
  `-# 🧠 2 thoughts · 🛠️ 5 tool calls · ⏱️ 12s`)؛ پس از تحویل پاسخ، پیش‌نویس وضعیت
  حذف می‌شود. در کانال‌های شلوغ، هیچ گزارش ابزار رهاشده‌ای
  بالای پاسخ باقی نمی‌ماند؛ در پاسخ‌های نهایی خطا، پیش‌نویس به‌عنوان سابقه قابل‌مشاهده
  نوبت ناموفق حفظ می‌شود.
- اگر پیش‌نویس بتواند با ایمنی به پاسخ نهایی تبدیل شود (حالت‌های `partial`/`block`)،
  OpenClaw آن را در همان محل ویرایش می‌کند.
- اگر کانال از استریم بومی پیشرفت استفاده کند، OpenClaw هنگامی‌که
  انتقال بومی متن نهایی را بپذیرد، آن استریم را نهایی می‌کند.
- در غیر این صورت (رسانه، درخواست تأیید، مقصد پاسخ صریح، تعداد بیش‌ازحد
  بخش‌ها، یا شکست ویرایش/ارسال)، OpenClaw پاسخ نهایی را به‌جای بازنویسی
  پیش‌نویس، از مسیر عادی تحویل کانال ارسال می‌کند.

این بازگشت عمدی است: ارسال یک پاسخ نهایی جدید بهتر از ازدست‌رفتن متن،
قرار گرفتن پاسخ در رشته نادرست یا بازنویسی پیش‌نویس با محتوایی است که کانال
نمی‌تواند آن را با ایمنی نمایش دهد.

## عیب‌یابی

**فقط پاسخ نهایی را می‌بینم.**

بررسی کنید که `channels.<channel>.streaming.mode` برای حساب
یا کانالی که پیام را مدیریت کرده، روی `progress` باشد. برخی مسیرهای گروهی یا پاسخ به نقل‌قول،
وقتی کانال نتواند پیام درست را با ایمنی ویرایش کند،
پیش‌نمایش پیش‌نویس را برای یک نوبت غیرفعال می‌کنند.

**برچسب را می‌بینم، اما خطوط ابزار را نمی‌بینم.**

`streaming.progress.toolProgress` را بررسی کنید. اگر مقدار آن `false` باشد، OpenClaw
رفتار تک‌پیش‌نویسی را حفظ می‌کند، اما خطوط پیشرفت ابزار و وظیفه را پنهان می‌کند.

**به‌جای پیش‌نویس ویرایش‌شده، یک پیام نهایی جدید می‌بینم.**

این همان بازگشت ایمنی است که در [نهایی‌سازی](#finalization) توضیح داده شد. این وضعیت ممکن است
برای پاسخ‌های رسانه‌ای، پاسخ‌های طولانی، مقصدهای پاسخ صریح، پیش‌نویس‌های قدیمی Telegram،
نبود مقصد رشته در Slack، پیام‌های پیش‌نمایش حذف‌شده یا شکست
نهایی‌سازی استریم بومی رخ دهد.

**هنوز پیام‌های مستقل پیشرفت را می‌بینم.**

هرگاه پیش‌نویسی فعال باشد، حالت پیشرفت پیام‌های مستقل و پیش‌فرض پیشرفت ابزار را
سرکوب می‌کند. اگر پیام‌های مستقل همچنان ظاهر می‌شوند، تأیید کنید که نوبت واقعاً
از حالت `progress` استفاده می‌کند، نه `streaming.mode: "off"` یا مسیری از کانال
که نمی‌تواند برای آن پیام پیش‌نویس ایجاد کند.

**رفتار Teams با Discord یا Telegram متفاوت است.**

Microsoft Teams در گفت‌وگوهای شخصی به‌جای انتقال عمومی پیش‌نمایش مبتنی بر
ارسال و ویرایش، از استریم بومی استفاده می‌کند و `streaming.mode: "block"` را به تحویل
بلوکی Teams نگاشت می‌کند، زیرا مانند Discord و Telegram حالت بلوک پیش‌نمایش
پیش‌نویس ندارد.

## مرتبط

- [استریم و بخش‌بندی](/fa/concepts/streaming)
- [پیام‌ها](/fa/concepts/messages)
- [پیکربندی کانال](/fa/gateway/config-channels)
- [Discord](/fa/channels/discord)
- [Matrix](/fa/channels/matrix)
- [Microsoft Teams](/fa/channels/msteams)
- [Slack](/fa/channels/slack)
- [Telegram](/fa/channels/telegram)
- [Mattermost](/fa/channels/mattermost)
