Skip to content

fix: correct the audio-to-text spec and the api reference term - #903

Merged
RiskeyL merged 3 commits into
mainfrom
fix/cleanup-c
Jul 29, 2026
Merged

fix: correct the audio-to-text spec and the api reference term#903
RiskeyL merged 3 commits into
mainfrom
fix/cleanup-c

Conversation

@RiskeyL

@RiskeyL RiskeyL commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Audio-to-text error list. Dropped app_unavailable, provider_quota_exceeded and model_currently_not_support from the 400 responses: no raise site reaches them on the path the endpoint takes. AppModelConfigBrokenError is raised only in message_based_app_generator, and QuotaExceededError / ModelCurrentlyNotSupportError only in the easy-UI model-config converter and llm/quota. provider_not_support_speech_to_text stays, because audio_service.py:149 raises it when the tenant has no default speech-to-text model. The endpoint description also claimed the app's configured model; _invoke_speech_to_text calls get_default_model_instance, so it is the workspace default.

SSE examples. The 10 space-joined multi-event examples now separate events with blank lines, matching the wire format the response descriptions already document. Rendering was checked on the published /completion-messages page, where the one pre-existing \n\n example displays as real line breaks.

web app term standardized in the guides and the spec descriptions. The operation title Get App WebApp Settings is deliberately unchanged, because Mintlify derives the published slug /api-reference/applications/get-app-webapp-settings from it and 18 files link there; the getChatWebAppSettings operationId and WebAppSettingsResponse schema are likewise untouched.

Separate from the main cleanup PR because the consolidated spec and these guides do not exist on release/1.15.0.

Backport: add backport-to-release/1.16.0-rc1, backport-to-release/1.16.0 and backport-to-release/1.16.1.

Closes DC-101. Advances DC-131 — the stale format list and 15 MB cap in the in-product API template, and the same unreachable codes in dify's own controller docstring, still need upstream issues.

RiskeyL added 2 commits July 28, 2026 18:05
Drop app_unavailable, provider_quota_exceeded and model_currently_not_support
from the /audio-to-text 400 list: no raise site reaches them on the path the
endpoint takes. provider_not_support_speech_to_text stays, since audio_service
raises it when the tenant has no default speech-to-text model. The endpoint
uses the workspace default model, not the app's configured one, so correct
that claim too.

Separate the events in the 10 space-joined SSE examples with blank lines,
matching the wire format the response descriptions already document.

Also render triggered_from's plugin source as Integration Trigger.
Same rule as the rest of the docs: web app / Web 应用 / Web アプリ in
prose, capitalized where a sentence starts. The operation title
Get App WebApp Settings is left alone, because Mintlify derives the
published slug /api-reference/applications/get-app-webapp-settings from
it and 18 files link there, as are the getChatWebAppSettings operationId
and the WebAppSettingsResponse schema.
Copilot AI review requested due to automatic review settings July 29, 2026 02:24
@dosubot dosubot Bot added size:M This PR changes 30-99 lines, ignoring generated files. documentation Improvements or additions to documentation labels Jul 29, 2026
@RiskeyL RiskeyL changed the title Fix/cleanup c fix: correct the audio-to-text spec and the api reference term Jul 29, 2026
@mintlify

mintlify Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
dify-core-product 🟢 Ready View Preview Jul 29, 2026, 2:25 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Service API reference and related guides to reflect the actual /audio-to-text behavior, correct SSE (Server-Sent Events) example formatting, and standardize the “web app” terminology across English/Chinese/Japanese documentation.

Changes:

  • Correct /audio-to-text description to use the workspace default speech-to-text model and remove unreachable 400 error codes from the spec.
  • Fix SSE multi-event examples to use blank-line separators (\n\n) to match the SSE wire format.
  • Standardize “web app” wording across guides and OpenAPI descriptions while keeping operation titles/IDs stable to avoid breaking existing links/slugs.

Reviewed changes

Copilot reviewed 24 out of 24 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
zh/api-reference/openapi_service.json Updates SSE examples, /audio-to-text description/error list, and “Web 应用” terminology in the CN spec.
zh/api-reference/guides/workflow.mdx Replaces “WebApp” wording with “Web 应用” in workflow guide references.
zh/api-reference/guides/human-input-flow.mdx Updates delivery method wording to “Web 应用”.
zh/api-reference/guides/end-user-identity.mdx Updates “WebApp” mentions to “Web 应用”.
zh/api-reference/guides/completion.mdx Updates “WebApp” mentions to “Web 应用”.
zh/api-reference/guides/chatflow.mdx Updates “WebApp” mentions to “Web 应用”.
zh/api-reference/guides/chat.mdx Updates “WebApp” mentions to “Web 应用”.
zh/api-reference/guides/agent.mdx Updates “WebApp” mentions to “Web 应用”.
ja/api-reference/openapi_service.json Updates SSE examples, /audio-to-text description/error list, and “Web アプリ” terminology in the JA spec.
ja/api-reference/guides/workflow.mdx Replaces “WebApp” wording with “Web アプリ” in workflow guide references.
ja/api-reference/guides/human-input-flow.mdx Updates delivery method wording to “Web アプリ”.
ja/api-reference/guides/end-user-identity.mdx Updates “WebApp” mentions to “Web アプリ”.
ja/api-reference/guides/completion.mdx Updates “WebApp” mentions to “Web アプリ”.
ja/api-reference/guides/chatflow.mdx Updates “WebApp” mentions to “Web アプリ”.
ja/api-reference/guides/chat.mdx Updates “WebApp” mentions to “Web アプリ”.
ja/api-reference/guides/agent.mdx Updates “WebApp” mentions to “Web アプリ”.
en/api-reference/openapi_service.json Updates SSE examples, /audio-to-text description/error list, and “web app” terminology in the EN spec.
en/api-reference/guides/workflow.mdx Replaces “WebApp” wording with “web app” in workflow guide references.
en/api-reference/guides/human-input-flow.mdx Updates delivery method wording to “web app”.
en/api-reference/guides/end-user-identity.mdx Updates “WebApp” mentions to “web app” in the EN guide (one heading capitalization nit noted).
en/api-reference/guides/completion.mdx Updates “WebApp” mentions to “web app”.
en/api-reference/guides/chatflow.mdx Updates “WebApp” mentions to “web app”.
en/api-reference/guides/chat.mdx Updates “WebApp” mentions to “web app”.
en/api-reference/guides/agent.mdx Updates “WebApp” mentions to “web app”.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread en/api-reference/guides/end-user-identity.mdx Outdated
@mintlify

mintlify Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
dify-core-product 🟡 Building Jul 29, 2026, 2:24 AM

💡 Tip: Enable Workflows to automatically generate PRs for you.

The heading is Title Case, so the term takes Web App there rather than the body-text lowercase. The anchor is unchanged, since both forms slug to api-users-and-web-app-users-stay-separate.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 24 out of 24 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (14)

en/api-reference/guides/end-user-identity.mdx:27

  • The terminology here diverges from the project glossary: writing-guides/glossary.md:28 defines the product term as “WebApp”, but this guide now uses “Web App” / “web app”. Please align with the glossary (or update the glossary and apply the new term consistently across the spec and all languages).
## API Users and Web App Users Stay Separate

Traffic through the API and Dify's hosted web app keep separate identities: conversations your API users create never appear in the web app, and web app conversations never appear through the API.

en/api-reference/openapi_service.json:214

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. SSE events are terminated by a blank line; appending \n\n makes the example self-contained and consistent with other examples in this spec.
                    "value": "data: {\"event\": \"agent_thought\", \"id\": \"agent_thought_id_1\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"position\": 1, \"thought\": \"Thinking about calling a tool...\", \"tool\": \"dalle3\", \"tool_input\": \"{\\\"dalle3\\\": {\\\"prompt\\\": \\\"a cute cat\\\"}}\", \"created_at\": 1705395332}\n\ndata: {\"event\": \"message_file\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"id\": \"file_id_1\", \"type\": \"image\", \"belongs_to\": \"assistant\", \"url\": \"https://example.com/cat.png\", \"created_at\": 1705395332}\n\ndata: {\"event\": \"agent_message\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"answer\": \"Here is the image: \", \"created_at\": 1705395333}\n\ndata: {\"event\": \"message_end\", \"task_id\":\"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"metadata\": {\"usage\": {\"total_tokens\": 50, \"latency\": 2.5}}}"

en/api-reference/openapi_service.json:218

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. Appending \n\n keeps the example aligned with SSE framing and with other examples in this file.
                    "value": "data: {\"event\": \"workflow_started\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395332, \"data\": {\"id\": \"wfr_abc123\", \"workflow_id\": \"wf_def456\", \"inputs\": {\"city\": \"San Francisco\"}, \"created_at\": 1705395332}}\n\ndata: {\"event\": \"node_started\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395332, \"data\": {\"id\": \"ne_001\", \"node_id\": \"node_llm_1\", \"node_type\": \"llm\", \"title\": \"LLM\", \"index\": 1, \"created_at\": 1705395332}}\n\ndata: {\"event\": \"reasoning_chunk\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395333, \"data\": {\"message_id\": \"msg123\", \"reasoning\": \"The user greeted me, so\", \"node_id\": \"node_llm_1\", \"is_final\": false}}\n\ndata: {\"event\": \"reasoning_chunk\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395333, \"data\": {\"message_id\": \"msg123\", \"reasoning\": \"\", \"node_id\": \"node_llm_1\", \"is_final\": true}}\n\ndata: {\"event\": \"message\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"answer\": \" I\", \"created_at\": 1705395333}\n\ndata: {\"event\": \"node_finished\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395334, \"data\": {\"id\": \"ne_001\", \"node_id\": \"node_llm_1\", \"node_type\": \"llm\", \"title\": \"LLM\", \"index\": 1, \"status\": \"succeeded\", \"elapsed_time\": 1.5, \"created_at\": 1705395332, \"finished_at\": 1705395334}}\n\ndata: {\"event\": \"message_end\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395334, \"metadata\": {\"usage\": {\"total_tokens\": 50, \"latency\": 2.5}}}\n\ndata: {\"event\": \"workflow_finished\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395335, \"data\": {\"id\": \"wfr_abc123\", \"workflow_id\": \"wf_def456\", \"status\": \"succeeded\", \"elapsed_time\": 2.5, \"total_tokens\": 50, \"total_steps\": 2, \"created_at\": 1705395332, \"finished_at\": 1705395335}}"

en/api-reference/openapi_service.json:222

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. Adding a trailing \n\n would better match SSE framing and keeps the example consistent with others in this spec.
                    "value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"message_id\": \"2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b\", \"conversation_id\": \"9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7\", \"created_at\": 1705407629, \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"draft\": \"Hello\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}}\n\ndata: {\"event\": \"human_input_required\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"message_id\": \"2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b\", \"conversation_id\": \"9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7\", \"created_at\": 1705407629, \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"form_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"form_token\": \"tok_abc123\", \"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"form_content\": \"Please review the draft.\", \"inputs\": [{\"type\": \"paragraph\", \"output_variable_name\": \"comment\", \"default\": null}], \"actions\": [{\"id\": \"approve\", \"title\": \"Approve\", \"button_style\": \"primary\"}], \"display_in_ui\": false, \"resolved_default_values\": {\"comment\": \"\"}, \"expiration_time\": 1705494029}}\n\ndata: {\"event\": \"workflow_paused\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"message_id\": \"2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b\", \"conversation_id\": \"9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7\", \"created_at\": 1705407629, \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"paused_nodes\": [\"approval_node\"], \"outputs\": {}, \"reasons\": [{\"TYPE\": \"human_input_required\", \"form_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"form_content\": \"Please review the draft.\", \"inputs\": [{\"type\": \"paragraph\", \"output_variable_name\": \"comment\", \"default\": null}], \"actions\": [{\"id\": \"approve\", \"title\": \"Approve\", \"button_style\": \"primary\"}], \"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"resolved_default_values\": {\"comment\": \"\"}, \"form_token\": \"tok_abc123\", \"expiration_time\": 1705494029}], \"status\": \"paused\", \"created_at\": 1705407629, \"elapsed_time\": 0.5, \"total_tokens\": 0, \"total_steps\": 1}}"

zh/api-reference/openapi_service.json:214

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. Appending \n\n would better match SSE event framing.
                    "value": "data: {\"event\": \"agent_thought\", \"id\": \"agent_thought_id_1\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"position\": 1, \"thought\": \"Thinking about calling a tool...\", \"tool\": \"dalle3\", \"tool_input\": \"{\\\"dalle3\\\": {\\\"prompt\\\": \\\"a cute cat\\\"}}\", \"created_at\": 1705395332}\n\ndata: {\"event\": \"message_file\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"id\": \"file_id_1\", \"type\": \"image\", \"belongs_to\": \"assistant\", \"url\": \"https://example.com/cat.png\", \"created_at\": 1705395332}\n\ndata: {\"event\": \"agent_message\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"answer\": \"Here is the image: \", \"created_at\": 1705395333}\n\ndata: {\"event\": \"message_end\", \"task_id\":\"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"metadata\": {\"usage\": {\"total_tokens\": 50, \"latency\": 2.5}}}"

zh/api-reference/openapi_service.json:218

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. Consider adding a trailing \n\n so the last event is properly terminated.
                    "value": "data: {\"event\": \"workflow_started\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395332, \"data\": {\"id\": \"wfr_abc123\", \"workflow_id\": \"wf_def456\", \"inputs\": {\"city\": \"San Francisco\"}, \"created_at\": 1705395332}}\n\ndata: {\"event\": \"node_started\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395332, \"data\": {\"id\": \"ne_001\", \"node_id\": \"node_llm_1\", \"node_type\": \"llm\", \"title\": \"LLM\", \"index\": 1, \"created_at\": 1705395332}}\n\ndata: {\"event\": \"reasoning_chunk\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395333, \"data\": {\"message_id\": \"msg123\", \"reasoning\": \"The user greeted me, so\", \"node_id\": \"node_llm_1\", \"is_final\": false}}\n\ndata: {\"event\": \"reasoning_chunk\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395333, \"data\": {\"message_id\": \"msg123\", \"reasoning\": \"\", \"node_id\": \"node_llm_1\", \"is_final\": true}}\n\ndata: {\"event\": \"message\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"answer\": \" I\", \"created_at\": 1705395333}\n\ndata: {\"event\": \"node_finished\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395334, \"data\": {\"id\": \"ne_001\", \"node_id\": \"node_llm_1\", \"node_type\": \"llm\", \"title\": \"LLM\", \"index\": 1, \"status\": \"succeeded\", \"elapsed_time\": 1.5, \"created_at\": 1705395332, \"finished_at\": 1705395334}}\n\ndata: {\"event\": \"message_end\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395334, \"metadata\": {\"usage\": {\"total_tokens\": 50, \"latency\": 2.5}}}\n\ndata: {\"event\": \"workflow_finished\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395335, \"data\": {\"id\": \"wfr_abc123\", \"workflow_id\": \"wf_def456\", \"status\": \"succeeded\", \"elapsed_time\": 2.5, \"total_tokens\": 50, \"total_steps\": 2, \"created_at\": 1705395332, \"finished_at\": 1705395335}}"

zh/api-reference/openapi_service.json:222

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. Adding \n\n at the end would match SSE event framing.
                    "value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"message_id\": \"2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b\", \"conversation_id\": \"9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7\", \"created_at\": 1705407629, \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"draft\": \"Hello\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}}\n\ndata: {\"event\": \"human_input_required\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"message_id\": \"2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b\", \"conversation_id\": \"9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7\", \"created_at\": 1705407629, \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"form_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"form_token\": \"tok_abc123\", \"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"form_content\": \"请审阅草稿。\", \"inputs\": [{\"type\": \"paragraph\", \"output_variable_name\": \"comment\", \"default\": null}], \"actions\": [{\"id\": \"approve\", \"title\": \"批准\", \"button_style\": \"primary\"}], \"display_in_ui\": false, \"resolved_default_values\": {\"comment\": \"\"}, \"expiration_time\": 1705494029}}\n\ndata: {\"event\": \"workflow_paused\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"message_id\": \"2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b\", \"conversation_id\": \"9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7\", \"created_at\": 1705407629, \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"paused_nodes\": [\"approval_node\"], \"outputs\": {}, \"reasons\": [{\"TYPE\": \"human_input_required\", \"form_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"form_content\": \"请审阅草稿。\", \"inputs\": [{\"type\": \"paragraph\", \"output_variable_name\": \"comment\", \"default\": null}], \"actions\": [{\"id\": \"approve\", \"title\": \"批准\", \"button_style\": \"primary\"}], \"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"resolved_default_values\": {\"comment\": \"\"}, \"form_token\": \"tok_abc123\", \"expiration_time\": 1705494029}], \"status\": \"paused\", \"created_at\": 1705407629, \"elapsed_time\": 0.5, \"total_tokens\": 0, \"total_steps\": 1}}"

ja/api-reference/openapi_service.json:214

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. Appending \n\n makes the framing consistent with SSE.
                    "value": "data: {\"event\": \"agent_thought\", \"id\": \"agent_thought_id_1\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"position\": 1, \"thought\": \"Thinking about calling a tool...\", \"tool\": \"dalle3\", \"tool_input\": \"{\\\"dalle3\\\": {\\\"prompt\\\": \\\"a cute cat\\\"}}\", \"created_at\": 1705395332}\n\ndata: {\"event\": \"message_file\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"id\": \"file_id_1\", \"type\": \"image\", \"belongs_to\": \"assistant\", \"url\": \"https://example.com/cat.png\", \"created_at\": 1705395332}\n\ndata: {\"event\": \"agent_message\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"answer\": \"Here is the image: \", \"created_at\": 1705395333}\n\ndata: {\"event\": \"message_end\", \"task_id\":\"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"metadata\": {\"usage\": {\"total_tokens\": 50, \"latency\": 2.5}}}"

ja/api-reference/openapi_service.json:218

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. Consider adding a trailing \n\n so the last event is properly terminated.
                    "value": "data: {\"event\": \"workflow_started\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395332, \"data\": {\"id\": \"wfr_abc123\", \"workflow_id\": \"wf_def456\", \"inputs\": {\"city\": \"San Francisco\"}, \"created_at\": 1705395332}}\n\ndata: {\"event\": \"node_started\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395332, \"data\": {\"id\": \"ne_001\", \"node_id\": \"node_llm_1\", \"node_type\": \"llm\", \"title\": \"LLM\", \"index\": 1, \"created_at\": 1705395332}}\n\ndata: {\"event\": \"reasoning_chunk\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395333, \"data\": {\"message_id\": \"msg123\", \"reasoning\": \"The user greeted me, so\", \"node_id\": \"node_llm_1\", \"is_final\": false}}\n\ndata: {\"event\": \"reasoning_chunk\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395333, \"data\": {\"message_id\": \"msg123\", \"reasoning\": \"\", \"node_id\": \"node_llm_1\", \"is_final\": true}}\n\ndata: {\"event\": \"message\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"answer\": \" I\", \"created_at\": 1705395333}\n\ndata: {\"event\": \"node_finished\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395334, \"data\": {\"id\": \"ne_001\", \"node_id\": \"node_llm_1\", \"node_type\": \"llm\", \"title\": \"LLM\", \"index\": 1, \"status\": \"succeeded\", \"elapsed_time\": 1.5, \"created_at\": 1705395332, \"finished_at\": 1705395334}}\n\ndata: {\"event\": \"message_end\", \"task_id\": \"task123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395334, \"metadata\": {\"usage\": {\"total_tokens\": 50, \"latency\": 2.5}}}\n\ndata: {\"event\": \"workflow_finished\", \"task_id\": \"task123\", \"workflow_run_id\": \"wfr_abc123\", \"message_id\": \"msg123\", \"conversation_id\": \"conv123\", \"created_at\": 1705395335, \"data\": {\"id\": \"wfr_abc123\", \"workflow_id\": \"wf_def456\", \"status\": \"succeeded\", \"elapsed_time\": 2.5, \"total_tokens\": 50, \"total_steps\": 2, \"created_at\": 1705395332, \"finished_at\": 1705395335}}"

ja/api-reference/openapi_service.json:222

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. Adding \n\n at the end would match SSE framing.
                    "value": "data: {\"event\": \"workflow_started\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"message_id\": \"2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b\", \"conversation_id\": \"9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7\", \"created_at\": 1705407629, \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"workflow_id\": \"7c3e33d4-2a8b-4e5f-9b1a-d3c6e8f12345\", \"inputs\": {\"draft\": \"Hello\"}, \"created_at\": 1705407629, \"reason\": \"initial\"}}\n\ndata: {\"event\": \"human_input_required\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"message_id\": \"2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b\", \"conversation_id\": \"9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7\", \"created_at\": 1705407629, \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"form_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"form_token\": \"tok_abc123\", \"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"form_content\": \"ドラフトを確認してください。\", \"inputs\": [{\"type\": \"paragraph\", \"output_variable_name\": \"comment\", \"default\": null}], \"actions\": [{\"id\": \"approve\", \"title\": \"承認\", \"button_style\": \"primary\"}], \"display_in_ui\": false, \"resolved_default_values\": {\"comment\": \"\"}, \"expiration_time\": 1705494029}}\n\ndata: {\"event\": \"workflow_paused\", \"task_id\": \"c3800678-a077-43df-a102-53f23ed20b88\", \"message_id\": \"2e4f6a8b-1c3d-5e7f-9a0b-2c4d6e8f0a1b\", \"conversation_id\": \"9d3a2f1b-6c7d-4e8f-a0b1-c2d3e4f5a6b7\", \"created_at\": 1705407629, \"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"data\": {\"workflow_run_id\": \"fb47b2e6-5e43-4f90-be01-d5c5a088d156\", \"paused_nodes\": [\"approval_node\"], \"outputs\": {}, \"reasons\": [{\"TYPE\": \"human_input_required\", \"form_id\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\", \"form_content\": \"ドラフトを確認してください。\", \"inputs\": [{\"type\": \"paragraph\", \"output_variable_name\": \"comment\", \"default\": null}], \"actions\": [{\"id\": \"approve\", \"title\": \"承認\", \"button_style\": \"primary\"}], \"node_id\": \"approval_node\", \"node_title\": \"Approval\", \"resolved_default_values\": {\"comment\": \"\"}, \"form_token\": \"tok_abc123\", \"expiration_time\": 1705494029}], \"status\": \"paused\", \"created_at\": 1705407629, \"elapsed_time\": 0.5, \"total_tokens\": 0, \"total_steps\": 1}}"

en/api-reference/openapi_service.json:210

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. SSE events are terminated by a blank line, and other examples in this spec include a trailing \n\n (e.g. around line 4422). Consider appending \n\n so the example matches the documented wire format.

This issue also appears in the following locations of the same file:

  • line 214
  • line 218
  • line 222
                    "value": "data: {\"event\": \"message\", \"task_id\": \"mock_task_id\", \"message_id\": \"5ad4cb98-f0c7-4085-b384-88c403be6290\", \"conversation_id\": \"45701982-8118-4bc5-8e9b-64562b4555f2\", \"answer\": \" I\", \"created_at\": 1679586595}\n\ndata: {\"event\": \"message_end\", \"task_id\": \"mock_task_id\", \"message_id\": \"5ad4cb98-f0c7-4085-b384-88c403be6290\", \"conversation_id\": \"45701982-8118-4bc5-8e9b-64562b4555f2\", \"created_at\": 1679586595, \"metadata\": {\"usage\": {\"total_tokens\": 10, \"latency\": 1.0}}}"

zh/api-reference/openapi_service.json:210

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. SSE events are terminated by a blank line; appending \n\n keeps the example consistent with the SSE framing used elsewhere in the spec.

This issue also appears in the following locations of the same file:

  • line 214
  • line 218
  • line 222
                    "value": "data: {\"event\": \"message\", \"task_id\": \"mock_task_id\", \"message_id\": \"5ad4cb98-f0c7-4085-b384-88c403be6290\", \"conversation_id\": \"45701982-8118-4bc5-8e9b-64562b4555f2\", \"answer\": \" I\", \"created_at\": 1679586595}\n\ndata: {\"event\": \"message_end\", \"task_id\": \"mock_task_id\", \"message_id\": \"5ad4cb98-f0c7-4085-b384-88c403be6290\", \"conversation_id\": \"45701982-8118-4bc5-8e9b-64562b4555f2\", \"created_at\": 1679586595, \"metadata\": {\"usage\": {\"total_tokens\": 10, \"latency\": 1.0}}}"

ja/api-reference/openapi_service.json:210

  • This SSE example doesn’t end with a blank line (\n\n) after the final event. Adding a trailing \n\n would better match SSE event framing.

This issue also appears in the following locations of the same file:

  • line 214
  • line 218
  • line 222
                    "value": "data: {\"event\": \"message\", \"task_id\": \"mock_task_id\", \"message_id\": \"5ad4cb98-f0c7-4085-b384-88c403be6290\", \"conversation_id\": \"45701982-8118-4bc5-8e9b-64562b4555f2\", \"answer\": \" I\", \"created_at\": 1679586595}\n\ndata: {\"event\": \"message_end\", \"task_id\": \"mock_task_id\", \"message_id\": \"5ad4cb98-f0c7-4085-b384-88c403be6290\", \"conversation_id\": \"45701982-8118-4bc5-8e9b-64562b4555f2\", \"created_at\": 1679586595, \"metadata\": {\"usage\": {\"total_tokens\": 10, \"latency\": 1.0}}}"

ja/api-reference/openapi_service.json:14546

  • In Japanese, “Web アプリタイトル” reads a bit unnatural as a noun compound. Consider using “Web アプリのタイトル” for clarity.
            "description": "Web アプリタイトル。"

@RiskeyL
RiskeyL merged commit 791f002 into main Jul 29, 2026
3 checks passed
@RiskeyL
RiskeyL deleted the fix/cleanup-c branch July 29, 2026 05:56
@RiskeyL

RiskeyL commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

💔 Some backports could not be created

Status Branch Result
release/1.16.0-rc1 Backport failed because of merge conflicts
release/1.16.0 Backport failed because of merge conflicts
release/1.16.1

Manual backport

To create the backport manually run:

backport --pr 903

Questions ?

Please refer to the Backport tool documentation and see the Github Action logs for details

RiskeyL added a commit that referenced this pull request Jul 29, 2026
…#905)

* fix: correct the audio-to-text errors and SSE example separators

Drop app_unavailable, provider_quota_exceeded and model_currently_not_support
from the /audio-to-text 400 list: no raise site reaches them on the path the
endpoint takes. provider_not_support_speech_to_text stays, since audio_service
raises it when the tenant has no default speech-to-text model. The endpoint
uses the workspace default model, not the app's configured one, so correct
that claim too.

Separate the events in the 10 space-joined SSE examples with blank lines,
matching the wire format the response descriptions already document.

Also render triggered_from's plugin source as Integration Trigger.

* docs: standardize the web app term in the api reference

Same rule as the rest of the docs: web app / Web 应用 / Web アプリ in
prose, capitalized where a sentence starts. The operation title
Get App WebApp Settings is left alone, because Mintlify derives the
published slug /api-reference/applications/get-app-webapp-settings from
it and 18 files link there, as are the getChatWebAppSettings operationId
and the WebAppSettingsResponse schema.

* fix: title-case the web app heading in the end-user identity guide

The heading is Title Case, so the term takes Web App there rather than the body-text lowercase. The anchor is unchanged, since both forms slug to api-users-and-web-app-users-stay-separate.

(cherry picked from commit 791f002)
RiskeyL added a commit that referenced this pull request Jul 29, 2026
…#907)

* fix: correct the audio-to-text errors and SSE example separators

Drop app_unavailable, provider_quota_exceeded and model_currently_not_support
from the /audio-to-text 400 list: no raise site reaches them on the path the
endpoint takes. provider_not_support_speech_to_text stays, since audio_service
raises it when the tenant has no default speech-to-text model. The endpoint
uses the workspace default model, not the app's configured one, so correct
that claim too.

Separate the events in the 10 space-joined SSE examples with blank lines,
matching the wire format the response descriptions already document.

Also render triggered_from's plugin source as Integration Trigger.

* docs: standardize the web app term in the api reference

Same rule as the rest of the docs: web app / Web 应用 / Web アプリ in
prose, capitalized where a sentence starts. The operation title
Get App WebApp Settings is left alone, because Mintlify derives the
published slug /api-reference/applications/get-app-webapp-settings from
it and 18 files link there, as are the getChatWebAppSettings operationId
and the WebAppSettingsResponse schema.

* fix: title-case the web app heading in the end-user identity guide

The heading is Title Case, so the term takes Web App there rather than the body-text lowercase. The anchor is unchanged, since both forms slug to api-users-and-web-app-users-stay-separate.

(cherry picked from commit 791f002)

# Conflicts:
#	en/api-reference/openapi_service.json
#	ja/api-reference/openapi_service.json
#	zh/api-reference/openapi_service.json
@RiskeyL

RiskeyL commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

💚 All backports created successfully

Status Branch Result
release/1.16.0

Questions ?

Please refer to the Backport tool documentation

RiskeyL added a commit that referenced this pull request Jul 29, 2026
…#908)

* fix: correct the audio-to-text errors and SSE example separators

Drop app_unavailable, provider_quota_exceeded and model_currently_not_support
from the /audio-to-text 400 list: no raise site reaches them on the path the
endpoint takes. provider_not_support_speech_to_text stays, since audio_service
raises it when the tenant has no default speech-to-text model. The endpoint
uses the workspace default model, not the app's configured one, so correct
that claim too.

Separate the events in the 10 space-joined SSE examples with blank lines,
matching the wire format the response descriptions already document.

Also render triggered_from's plugin source as Integration Trigger.

* docs: standardize the web app term in the api reference

Same rule as the rest of the docs: web app / Web 应用 / Web アプリ in
prose, capitalized where a sentence starts. The operation title
Get App WebApp Settings is left alone, because Mintlify derives the
published slug /api-reference/applications/get-app-webapp-settings from
it and 18 files link there, as are the getChatWebAppSettings operationId
and the WebAppSettingsResponse schema.

* fix: title-case the web app heading in the end-user identity guide

The heading is Title Case, so the term takes Web App there rather than the body-text lowercase. The anchor is unchanged, since both forms slug to api-users-and-web-app-users-stay-separate.

(cherry picked from commit 791f002)

# Conflicts:
#	en/api-reference/openapi_service.json
#	ja/api-reference/openapi_service.json
#	zh/api-reference/openapi_service.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-to-release/1.16.0-rc1 backport-to-release/1.16.0 backport-to-release/1.16.1 documentation Improvements or additions to documentation size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants