Commit Graph

73 Commits

Author SHA1 Message Date
Riskey d95f83ca4d feat: retire the auto-translation pipeline (#854) (#859)
* feat: retire the auto-translation pipeline

* fix: drop the Dify-API translator and align the navigation guideline

* fix: remove unused pipeline-era config and the translation A/B test framework

* fix: retire remaining pipeline references in glossary, env-vars skill, termbase tool

(cherry picked from commit 267089b359)
2026-07-13 12:55:33 +08:00
Riskey a1e7a7dcb3 feat: finish API reference Phase 1: code audit and readability overhaul (#857) (#858)
* feat: retire the merge pipeline and delete the legacy source specs

openapi_service.json is now the spec of record per language, edited directly. The build/relink modes, resolutions.json, and overrides/ that consolidated the five per-app-type specs are recoverable from git history when Phase 2 rebuilds the spec from the upstream-generated source.

* fix: make parity_check exit nonzero on failures

* docs: document the direct-edit spec workflow in skills and translation guides

* fix: correct the Service API reference against the code-verified audit

Applies the confirmed findings of a full per-operation audit against dify 3c8e0e2113 / graphon 0.6.0: 9 factual errors (availability lines, phantom fields, wrong enum values, inert parameters, wrong error messages), ~33 omitted-error and example-accuracy gaps, the rate_limit_error recharacterization, provider-identifier format documentation, and New Agent availability on the endpoints its Chat Features support (verified end-to-end in code).

* docs: document New Agent's full endpoint surface in the API guides

* translate: propagate the Service API audit fixes to zh and ja

* docs: rewrite Upload File as the readability pilot

Worked example of the API readability standard: contract-first description, facts on the fields (category size limits with env-var link, blacklist rule), real error triggers (415 corrected to its actual cause), template user sentence, source links on sourceable values, and a hand-written multipart cURL sample. Applied to en/zh/ja.

* docs: update spec-conventions for the live link scheme and code samples

* docs: apply the readability standard across the Service API reference

Rewrites all 82 operations to the agreed standard in en/zh/ja: contract-first descriptions, facts on the fields, trigger-led error bullets, template sentences (user, pagination, provider identifiers), source links on sourceable values, guide links instead of inline concept re-explanations, cURL samples where the playground autogen fails (multipart, SSE), a paragraph ceiling everywhere, and restructured streaming narratives (events-by-app-type map; details stay in the event tables). Also folds in two fact corrections surfaced during review: the legacy securitySchemes text and the stale Cloudflare-timeout claim in response_mode, now using the hedged edge-proxy wording.

* docs: codify the readability standard and audit method in the API skill

* fix: apply the audit-verified corrections deferred from the readability pass

Small factual items evidenced in the audit findings that the readability pass could not touch under its fact-freeze: real wire messages (audio 413, type_mismatch number, dynamic run-by-id 404, werkzeug 500/403 strings, annotation 404 punctuation), schema precision (format: uuid, minimum: 1, six missing Get Available Models response fields), and behavioral completeness (document download/zip/delete 404 message variants, tag_ids silent-ignore note, request-scoped batch-metadata lock wording, reasoning_chunk message_id: null, form default key absent not null). Applied to en/zh/ja; parity 0.

* fix: make spec checkers target openapi_service.json explicitly

After the legacy specs were deleted, the openapi_*.json globs in parity_check and lint_specs would silently pass (match nothing, report 0 issues, exit 0) if the spec of record went missing, and would pick up unintended future openapi_*.json files. Both now name openapi_service.json per language and exit 1 when it is absent.

* fix: address Copilot review on pipeline tooling and example titles

Normalizes example summary separators to the dominant "Request Example - Mode" form (the convention doc had drifted, and 4 em-dash outliers existed per language); lint_specs no longer re-reads the spec it already loaded; all spec reads use explicit UTF-8; coverage_matrix and swagger_diff target openapi_service.json explicitly; README and docstring usage resolve DOCS from the git root so the commands work from any directory.

* fix: use context managers for all pipeline file reads

Copilot flagged unclosed handles in the three checkers; applied consistently across all five pipeline scripts (merge_specs and coverage_matrix had the same pattern unflagged).

* fix: report missing spec ops as coverage failures instead of crashing

* fix: print the full relative path in the parity missing-file message

(cherry picked from commit 6aa0ae4661)
2026-07-11 22:03:42 +08:00
RiskeyL 31cf2ff1ab fix: document both New Agent reply events in the streaming contract
The New Agent guide said replies stream as agent_message; the Send Chat Message SSE reference and the streaming guide said message. Verified against dify feat/agent-v2 (agent_app/app_runner.py and its unit tests): both fire — the reply streams incrementally as agent_message deltas, then the turn closes with a single message event carrying the complete answer, then message_end, with agent_thought alongside throughout. Document the full sequence on all three surfaces and tell clients to treat the closing message as the final answer rather than appending it. en/zh/ja; merged specs regenerated via the API pipeline (build + wire, coverage clean).
2026-07-09 18:17:29 +08:00
Riskey 32e1b169da feat: consolidate and restructure the API reference (Phase 1) (#846)
* docs: correct HITL API integration flow and sync translations

- Fix the claim that the resume endpoint differs per app type (same
  endpoint; only the entry endpoint differs)
- Tie workflow_run_id guidance to the human_input_required event
  (chatflow message chunks don't carry it)
- Require the same user when resuming the event stream (mismatch
  returns 404); add include_state_snapshot and continue_on_pause
  guidance
- Note at the capture step that a null form_token means Email delivery
- Soften the upload-time validation claim to file size limits
- Split long paragraphs; align zh endpoint name with the reference page

* fix: correct API references against verified backend behavior

Audit of the Service API specs against dify hotfix/1.15.0-fix.1, with
every change code-verified and the serious items adversarially
confirmed. Applies to en/zh/ja.

- Add curl samples for GET endpoints with required query params
  (Mintlify omits query params from generated snippets)
- Document 401 once in every spec's auth scheme description
- Correct wrong facts: workflow run detail returns inputs as a JSON
  string; DELETE /conversations requires a JSON body; audio-to-text
  accepts audio/{mp3,m4a,wav,amr,mpga} by MIME type; workflow log
  created_by_account filters by email; triggered_from values are
  app-run/webhook/schedule/plugin; stop endpoints' user semantics
  differ per app type
- Remove unreachable docs: phantom text_replace SSE event, annotation
  403, file preview endpoint in the workflow spec, invented
  score_threshold bounds
- Make upload user optional (DEFAULT-USER fallback), fix upload
  response example, add missing invalid_param error
- Declare text_to_speech.autoPlay in parameters responses (prose
  values, no response-field enums)

* fix: complete API reference audit for knowledge and completion specs

* feat: add API spec consolidation pipeline

Phase-1 of the API docs consolidation: tooling that merges the five per-app-type Service API specs into one openapi_service.json per language, with every divergence resolved explicitly in resolutions.json and rendering-preserving namespacing for mode-scoped schema families. Includes the audit lint and parity checks (lint taught the new language-prefixed href scheme), hand-merged mode-aware SSE documentation for POST /chat-messages in en/zh/ja, and the New Agent (Beta) virtual nav group with code-verified mode notes.

* feat: consolidate API reference into one spec per language

Emit {en,zh,ja}/api-reference/openapi_service.json (82 ops, 130 components) from the audit-fixed per-app-type specs; wire docs.json to them with explicit per-app-type endpoint lists, x-mint.href URLs (/{lang}/api-reference/{tag}/{summary} with shared English slugs for in-place language switching), 265 redirects covering the legacy en and CJK URLs, per-app-type overview pages including New Agent (Beta), and rewritten legacy API links in 21 MDX bodies. The old five specs per language stay as pipeline input; they are no longer rendered.

* fix: remove dead conversation_completed error from chat specs

ConversationCompletedError is never raised anywhere at the verified 1.15.0 ref (7a4252b3de): controllers catch it, but no service code raises it, so the documented 400 conversation_completed can never fire. Remove the bullet and example from the chat and chatflow /chat-messages docs in en/zh/ja. Found and adversarially confirmed during the New Agent (PR #836) verification; filed on the upstream bug list.

* feat: add membership matrix and restructure nav config

* feat: rename resource tags and update all references

* feat: stamp per-operation availability lines

* feat: wire three-group API navigation

* feat: add app-type page coverage lint

* docs: rewrite chatflow overview as app-type API guide

* docs: polish chatflow overview zh and ja wording

* docs: rewrite workflow overview as app-type API guide

* docs: align workflow overview details across languages

* docs: expand new agent overview into app-type API guide

* docs: use task-oriented heading on new agent overview

* docs: rewrite chatbot and agent overview as app-type API guide

* docs: rewrite text generator overview as app-type API guide

* docs: match end user link text to merged spec summary

* docs: rewrite knowledge overview as app-type API guide

* docs: move knowledge api guide into api reference

* docs: localize ui labels on knowledge overview

* docs: refresh pipeline readme for restructure modes

* docs: name app-type pages in the guides sidebar

* feat: rename zh completion messages tag to match resource framing

* docs: prototype endpoints-first layout on chatflow overview

* docs: correct detail accuracy on chatflow overview

* docs: move human input flow guide into api reference

Move the shared HITL API integration walkthrough from its six per-product
copies into {en,zh,ja}/api-reference/guides/human-input-flow as the first
task guide in the API docs. Guides gains an App Types subgroup (expanded
by default) with the flow guide after it; six redirects cover the old
paths; the Human Input node docs and the chatflow overview link to the
new home.

* fix: update spec links to the moved human input guide

* fix: let spec lint accept mdx guide pages under api-reference

* docs: align chatflow zh and ja overviews to endpoints-first layout

* docs: polish chatflow zh and ja mode terms and hitl wording

* docs: align workflow overviews to endpoints-first layout

* docs: document form expiry path in human input flow guide

* docs: align new agent overviews to endpoints-first layout

* docs: align chatbot and agent overviews to endpoints-first layout

* docs: align text generator overviews to endpoints-first layout

* docs: align knowledge overviews to endpoints-first layout

* docs: correct built-in metadata examples and agent heading

* docs: flatten app-type pages directly under guides

* docs: make guide pages self-contained and trim reference detail

* docs: add get started guide and retire developing-with-apis

* docs: update new agent api behavior for latest main

New Agent behavior re-verified against dify origin/main (f3ba2846):
agent_thought events now stream through the Service API carrying the
model's reasoning steps and tool calls; a new agent_not_published 400
fires on Send Chat Message and Get App Parameters; the files claim is
softened to contents-not-processed (raw references now reach the prompt;
runtime confirmation pending). Streaming-only, message_end metadata, and
the endpoint surface are unchanged.

* docs: audit fixes for get started and human input flow guides

* docs: fix em dash spacing and ja sentence length in get started

* docs: move message_end note to the send endpoint line

* docs: update writing guides and API skill for app-type naming

- Glossary and zh/ja translation guides: Workflow and Chatflow app types stay English (Workflow 应用 / Chatflow アプリ); lowercase workflow localizes to 工作流 / ワークフロー.
- formatting-guide: API reference links use the language prefix with English slugs.
- dify-docs-api-reference skill: Spec Structure documents source specs merged into openapi_service.json by the pipeline.

* feat: add operation sidebar titles and simplify API redirects

- merge_specs stamps x-mint.metadata.sidebarTitle per operation so translated summaries show in the sidebar.
- Redirects reduced to a catch-all to the English API home plus three knowledge-base exceptions.
- memberships, strings, and SSE overrides carry app-type labels (Workflow/Chatflow English, New Agent, API Overviews group).

* docs: correct app-type naming and translations across API specs

- English mode enum labels Chatflow and Workflow apps.
- zh/ja app references use Workflow/Chatflow; New Agent is 新 Agent / 新しい Agent.
- ja knowledge tag データセット becomes ナレッジベース; zh 模型提供商 becomes 模型供应商.
- Regenerate merged openapi_service.json with per-operation sidebar titles.

* docs: add streaming, errors, and end-user identity API guides

- Consume Streaming Responses: response modes, SSE parsing, event dispatch, and reconnect.
- Handle Errors and Rate Limits: the error envelope, status classes, and retry guidance.
- End User Identity: what the user field scopes and why it stays consistent.
- English source with zh and ja translations.

* docs: reconcile API guides and apply app-type naming

- Reader-test fixes and content audit on get-started and the app-type overview pages.
- zh/ja reconciled to the English source.
- Workflow/Chatflow and New Agent naming applied in prose.

* feat: wire API nav and redirects for consolidated guides

- Rename the guides group to API Overviews and register the new guide pages.
- Redirects: catch-all to the English API home plus three product-embedded knowledge-base links to the Knowledge guide.

* fix: normalize zh model-provider term to 模型供应商

Aligns the POSITION_PROVIDER_* descriptions with the canonical glossary term.

* docs: use Info callouts for guide forward-link notes

Wrap the authentication, base URL, and `user` field forward-reference in each app-type guide (agent, chat, chatflow, completion, workflow; en/zh/ja) in an `<Info>` callout.

* refactor: remove one-time analyze mode and verification compose

- Drop the `analyze` mode (design-time spec-overlap analysis) and its helpers; the merge is stable and nothing invokes it.
- Delete `compose.swagger.yml`, the throwaway local code-vs-spec verification stack (flagged in review for inline credentials).
- README: drop the analyze entry and correct the redirect description.

* fix: correct Chatflow naming and reasoning wording in SSE overrides

- Use "Chatflow" (English) for the app type in the `/chat-messages` SSE tables instead of 对话流/チャットフロー, and fix the legacy zh chatflow "对话流工作流" description. Standalone table cells were missed by the earlier app-type rename.
- Describe `reasoning_chunk` as "reasoning content" in en/ja (matching the `reasoning` field and the zh wording) instead of "chain-of-thought".

* docs: refine API guide wording and simplify the human-input example

* docs: standardize Workflow and Chatflow app-type capitalization

Capitalize Chatflow and Workflow when they name an app type; keep "workflow" lowercase for the general engine, graph, or run sense.

* fix: use 供应商 for model provider in the zh Knowledge spec

* fix: rename the Knowledge API nav group to "Knowledge APIs"

* fix: un-deprecate Update Document by Text in the Knowledge spec

* translate: un-deprecate Update Document by Text in zh/ja specs

Mirror the en fix (6802d5eb) into the zh and ja Knowledge specs, source and merged: drop the deprecated flag and the leading Deprecated notice from the update-by-text operation. It is the canonical text-update route; only Update Document by File stays deprecated.
2026-07-09 16:40:54 +08:00
Riskey 2f88f0f7d2 docs: sync Cloud documentation for Dify 1.15.0 (#835)
* docs: add Human Input file inputs and Service API to Cloud docs

Port the Phase 2 Human Input docs (file inputs and the Service API integration flow) to the Cloud docs, mirroring the self-host pages.

- human-input.mdx (en/zh/ja): add the Single File / File List field type and the file-handling notes; the upload-limit callout states Cloud's fixed limits (documents 15 MB, images 10 MB, audio 50 MB, video 100 MB, up to 10 files) instead of self-host env vars.
- hitl-api-integration-flow.mdx (en/zh/ja): new; identical to self-host since the Service API is the same.
- docs.json: nest the integration-flow under the Human Input group in all three navs.
- zh/ja reuse the self-host translations; only the callout and the /self-host/ links changed.

* docs: rewrite Cloud model providers around AI Credits

* docs: rewrite Cloud subscription management for 1.15.0

* docs: update Cloud code node limits and XLSX image extraction note

* docs: rewrite Cloud team members management for 1.15.0

* docs: apply the 1.15.0 Integrations redesign to Cloud docs

* docs: fix workflow API reference for run-level logs and streaming

* docs: sync self-host use-dify pages and fix translation debt

* docs: align shared tutorials and quick start with 1.15.0

* docs: refine difyctl install examples and workspace reference

* docs: rewrite hotkeys page to match current shortcuts

* fix: correct broken anchor links for badged headings and tabs

* fix: correct env link and Human Input resume identifier

* feat: handle heading badges in link-checker slugs

* fix: repoint publish-mcp cross-links to the merged MCP section

* docs: rename plugin dev CLI to Dify Plugin CLI

* docs: refine CLI reference readability and expand --agent

* feat: stop format checkers flagging indented list-item content

* fix: correct zh/ja custom-endpoint spacing and a list blank line

* docs: clarify Cloud model provider install and AI Credits coverage
2026-07-02 19:51:55 +08:00
Riskey d403e19e7a refactor: optimize dify-docs skills and fix CJK anchor checking (#833)
* refactor: optimize dify-docs skills for agent execution

Restructure the API-reference and release-sync skills into a workflow plus on-demand references, and tighten the rest, so agents execute them more accurately.

- api-reference: SKILL.md is now a 5-step workflow; formatting rules consolidated into one spec-conventions.md (was triplicated across SKILL, audit-checklist, common-mistakes); common-mistakes.md removed
- release-sync: detection tables and report template moved to references/; duplicate "Common Mistakes" table dropped; scope-pinning rule promoted to a callout
- env-vars: fix the stale "3-section" doc-structure claim; dedup the source-of-truth rule
- format-check-en/cjk: collapse the rule catalogs that restated the script; fix SKIP_TEXTS -> SKIP_ING_HEADINGS; reconcile output format with the script
- cli-docs: add a workflow spine; surface the origin/main verification rule
- feature-research, guides: minor dedup and a softened git-pull line

* fix: handle CJK heading anchors in the internal link checker

The slugify in tools/check-links.py stripped non-ASCII punctuation, so full-width colons in zh/ja headings were dropped from the computed anchor while Mintlify keeps them, producing false "broken anchor" reports. Keep non-ASCII characters and strip only ASCII punctuation.

- document the CJK anchor behavior in formatting-zh.md and formatting-ja.md
- fix the real broken anchors the corrected checker surfaced (ja user-input, zh cli error-handling)

* docs: clarify slugify behavior and CJK anchor wording per review
2026-06-30 19:53:45 +08:00
RiskeyL f5e73aa5b2 feat: add a global contributing footer via custom JS
Replace the per-page "Contributing Section" (previously baked into every plugin-dev page by tools/contributing_in_page.py) with a single custom JS file that Mintlify auto-includes on every page. It derives the GitHub edit URL from the current path at runtime, localizes the labels (en/zh/ja), and injects an "Edit this page | Report an issue" bar above the site footer, so the feature now covers all pages with no per-page markup.

- add contributing-footer.js
- remove the 117 baked-in Contributing Sections under en/zh/ja/develop-plugin
- retire tools/contributing_in_page.py

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 11:44:09 +08:00
RiskeyL fac1f14766 docs: standardize zh/ja terminology and separate Cloud/CE docs
Terminology (en/zh/ja, glossary, termbase, docs.json):
- self-hosted deployment term: zh 自托管 → 自部署; ja consolidates on セルフホスト
- product and edition names stay English in all languages: Dify Cloud, Dify Enterprise, Dify Premium, Community Edition
- "SaaS version" / "Dify SaaS" → Dify Cloud (generic SaaS unchanged)
- docs.json product switcher: Cloud label → English; self-host stays localized

Cloud/CE audience separation and accuracy:
- drop redundant "for self-hosted" / "for Cloud" conditionals within the split trees
- authorize-data-source: correct the OAuth default-client claim (no edition gating in code); self-host keeps only the custom client, Cloud reframes both
- authorize-data-source: move the Custom OAuth process inside the Custom tab (en/zh/ja); align zh to the Tabs layout
- remove the self-hosted-only workflow-collaboration page from the Cloud tree
- docs.json: restore the ja Plugin Development "Getting Started" group dropped as a stray "None"

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 21:31:25 +08:00
Riskey 51b9f55bb5 docs: align self-host documentation with 1.15.0 Integrations navigation redesign (#820)
* fix: trim broken bold markers repo-wide (zh/ja/en)

Remove stray spaces inside `**` delimiters that caused bold to render
literally in CJK text (e.g. `**工作流 **` → `**工作流**`). 88 files
across cloud/, learn/, and quick-start; self-host files with the same
fix are included in the nav-optimize commit.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: update self-host docs for Integrations navigation redesign

Align self-host documentation with the 1.15.0 navigation optimization:

- Regroup docs.json: new Integrations section (Model Provider, Tools,
  Custom Endpoint); Workspace shrunk to admin-only pages
- Reframe plugins.mdx as Integrations Overview with hub type list,
  permissions, and EE callout
- Merge standalone MCP page into tools.mdx MCP Tool tab; delete
  build/mcp.mdx (en/zh/ja)
- Rename all Settings > Model Provider nav paths to Integrations >
  Model Provider; Default Model Settings to Default Models; API
  Extension to Custom Endpoint; Logs & Annotations split into
  separate Logs and Annotations
- Update trigger overview and webhook-trigger: Plugin Trigger to
  Integration Trigger; enable/disable moved to Monitoring > Triggers
- Soften concept-level "plugin" references to "integration" across
  workspace, knowledge, and build pages
- Update glossary and writing guides for new terminology
- Fix broken bold markers in self-host zh/ja files (same repo-wide
  fix as prior commit, for files that also had content changes)

Excludes the plugin-trigger.mdx en rewrite (pending review).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: add Start Node page, complete trigger rewrites, and apply review fixes

- Add Start Node overview page (en/zh/ja, cloud + self-host) explaining
  the User Input vs. Trigger choice; nest under a new Start group in
  docs.json with root page support
- Trim Key Concepts to link to the new Start Node page instead of
  inlining the details
- Complete Integration Trigger page rewrite (en/zh/ja) with localized
  UI strings, trigger integration naming, and subscription flow
- Remove "## Introduction" headings from trigger, schedule-trigger,
  webhook-trigger, and user-input pages (en/zh/ja)
- Apply review fixes: user-centric opening for tools.mdx, reframe
  auto-update sentence in plugins.mdx, bold Client ID/Secret, remove
  tautological sentence, fix "reusable/reuse" redundancy
- Complete remaining API Extension to Custom Endpoint renames in
  api-extension, cloudflare-worker, and moderation pages
- Update termbase_i18n.md to match glossary (Integration Trigger,
  Integrations, Custom Endpoint, Default Models, Logs/Annotations split)
- Add redirects for deleted self-host build/mcp pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: remove duplicate model providers from Integrations parenthetical

The workspace diagram listed Model Providers as its own line and also
inside the Integrations parenthetical. Remove it from the parenthetical
to avoid ambiguity.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-22 16:21:36 +08:00
RiskeyL 1665ede33d chore: align skills, guides, and tooling with restructured paths
Skill scopes, env-var reference paths, release-sync doc-area mappings,
writing-guide examples, README and AGENTS.md paths, the backport
example, and translate-script examples now use the post-restructure
paths (product-prefixed use-dify, self-host deploy segment).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 18:55:03 +08:00
RiskeyL e5e1d4da67 docs: adopt upstream main PRs into audience-products structure
Bring in changes merged to main since the branch point: API reference and plugin development updates, the plugin sidebar reorganization with a new choose-plugin-type page, backport tooling, workflow node content updates, and refreshed skill, glossary, and translation config files. Content updates are applied to both Cloud and Self-Host copies and to zh and ja.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 14:24:15 +08:00
Riskey 66523cf52b docs: 1.14 release follow-up fixes (#766)
* docs: 1.14 fixes for HITL events and Creator Center env vars (#764)

* docs: reorganize chatflow API tags and surface workflow_run_id

* refactor: update internal tooling for dify-graphon repo split

* fix: surface workflow_run_id in HITL stream events

* chore: tighten env-vars skill source-of-truth rule

* docs: document Creator Center env vars

* fix: use language-prefixed paths for non-api-reference links

* fix: drop redundant workflow_run_id from workflow HITL events

* fix: drop format uuid from chatflow HITL workflow_run_id

* docs: small fixes for self-host, workspace, and CJK disclaimers (#765)

* docs: shorten docker-compose section headings

* docs: update Team plan limit and remove Dataset Operator role

* fix: correct Japanese translation errors in workspace docs

* style: align AI translation disclaimers with CJK spacing rules

* style: add missing space between disclaimer link and particle in ja docs

* fix: point zh general-specifications disclaimer to en source

* fix: drop format uuid from chatflow workflow paused event
2026-04-29 21:47:53 +08:00
Riskey dd89e17178 docs: 1.14 release documentation (#763)
* docs: sync App Toolkit with dify#35442 follow-up settings (#757)

* docs: sync App Toolkit page with follow-up settings PR and UI labels

* fix: correct CJK format linter false positives

* chore: broaden post-writing audit scope to whole documents

* docs: address Copilot review on PR #754

Restore the Tab titles rule in formatting-zh.md, which had been trimmed
to a stub. Drop the First-Mention Rule entry from the terminology-check
skill's Output Format so the report sections match the Checks to
Perform sections (the corresponding check was removed earlier).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs: document workflow collaboration feature (#758)

* docs: add workflow collaboration user guide

* docs: tighten style and formatting guides

* docs: avoid "please" in zh refer-to phrases

* fix: add CJK-Latin spacing in translation notice templates

* docs: add env var coordination to dify-docs-guides skill

* docs: document collaboration environment variables

* style: trim collaboration env var descriptions for consistency

* docs: add zoom menu tip for hiding comments and cursors

* docs: sync collaboration UI labels after upstream localization

* docs: rewrite orchestration logic for cross-workflow node copy-paste (#759)

* docs: rewrite orchestration logic and extend workflow-chatflow overview

* translate: update zh and ja for orchestration logic and overview

* docs: refine orchestration logic node reuse section

* docs: clarify MAX_TREE_DEPTH env var description

* fix: align zh title and body references with the glossary UI label

* fix: align EN node reuse text with zh/ja translations (User Input exception)

Agent-Logs-Url: https://github.com/langgenius/dify-docs/sessions/00e54676-8a43-4b6f-99f8-fef2495b054f

Co-authored-by: RiskeyL <36894937+RiskeyL@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

* docs: note HTTPS requirement for cross-workflow node paste (#761)

* docs: HITL Service API polish and 1.14 release follow-ups (#760)

* feat: add env var ignore-list consumed by the verifier

* docs: add 1.14 env vars and correct drifted defaults

* fix: correct knowledge pipeline datasource-plugins response in api references

* chore: record 1.14 env var traces in deep-dive

* docs: update HITL Service API documentation

* docs: clarify /api-reference/ link convention in formatting guide

* docs: update marketplace publish flow

* fix: drop duplicate workflow_run_id from HITL event data schemas

The three HITL event schemas (StreamEventHumanInputRequired,
StreamEventHumanInputFormFilled, StreamEventHumanInputFormTimeout)
declared `workflow_run_id` inside `data.properties`, but
`HumanInputRequiredResponse` in `api/core/app/entities/task_entities.py`
defines `workflow_run_id` only as a top-level field on the response
(alongside `event` and `task_id`); its inner `Data` class doesn't carry
one. The OpenAPI spec already provides top-level `workflow_run_id` via
the `$ref: StreamEventBase` in the `allOf` composition, so the inline
duplicate was a phantom field that doesn't exist in the actual payload.

Remove the inline `workflow_run_id` from `data.properties` in all three
HITL event schemas across all six spec files. This relies on
`StreamEventBase` to provide `workflow_run_id` at the top level via
composition, matching how every other event schema in this spec handles
it (e.g., `StreamEventWorkflowStarted`).

Reported by Copilot on PR #756.

* fix: address Copilot's review comments

* feat: skip api-reference paths in internal link checker

The /api-reference/... URL convention (no language prefix, derived
from OpenAPI tag/summary) generates pages that Mintlify auto-builds
rather than from filesystem MDX files, so the existing filesystem
resolution logic flags every such link as broken.

Skip both filesystem-existence and anchor validation for any URL
containing /api-reference/, mirroring the existing
anchor_check_skipped behaviour. The convention is documented in
writing-guides/formatting-guide.md.

Caveat: typos in tag or summary slugs will now pass silently. A
follow-up could parse the OpenAPI specs to validate against the
real tag/summary kebab pairs if hand-written api-reference links
become common enough to warrant it.

* fix: correct CORS anchor in ja environments page

Inline link [CORS設定](#cors 設定) used a literal space, but the
heading "CORS 設定" slugifies to "cors-設定" (whitespace replaced
with hyphen). Update the anchor to #cors-設定.

* fix: align datasource-plugins is_published and 200 description with node framing

* fix: clarify chatflow stream workflow events task_id origin

* docs: address HITL Service API reader-test feedback

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-04-29 11:57:59 +08:00
Riskey 8c5ca8f6d1 feat: add anchor validation to internal link checker (#748)
* feat: add anchor validation to internal link checker

* fix: correct stale anchor links in en/zh/ja docs

* refactor: address Copilot feedback on link checker
2026-04-16 21:17:24 +08:00
Riskey b94ec219e8 docs: rewrite variable aggregator node page (#745)
* docs: rewrite the variable aggregator node page

* translate: update variable aggregator page for zh and ja

* fix: address review feedback on variable aggregator page

Remove trailing whitespace in en page and restore translation
disclaimers on zh and ja pages for consistency with other translated
node pages.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: require translation disclaimer on all zh/ja pages

Add a Translation Disclaimer section to both zh and ja formatting
guides. Every translated page must include the disclaimer regardless
of review status, since the English source is always canonical and
readers benefit from a consistent pointer on every page.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: clarify variable aggregator usage in trigger pages

Simplify the guidance on using a Variable Aggregator to converge
plugin and webhook trigger branches. Align zh and ja translations
with the glossary term (变量聚合器 / 変数集約器).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 11:58:07 +08:00
Riskey 7cea249f73 docs: rewrite external knowledge base documentation (#737)
* docs: rewrite external knowledge base overview page

* docs: rewrite external knowledge API specification

* style: add adjustable parameter guidance pattern

* fix: standardize "similarity score" terminology across docs and glossary

* fix: address Copilot's PR review feedback on external knowledge base docs

* translate: sync zh/ja external knowledge base pages with English rewrite

* style: add standard phrase translation convention for zh docs

* fix: address Copilot's PR review feedback on external knowledge base docs

* docs: strengthen codebase verification rule for rewrites

* docs: elevate cross-reference anchor rule in translation guides

* style: add vague cross-references pattern to style guide

* fix: remove filler content from external knowledge base pages

* fix: correct anchor examples in translation formatting guides

* fix: translate code block examples and remove invalid operators in zh/ja API spec

* docs: add translation quality rules for EN→ZH/JA

* docs: move LlamaCloud setup to tip and remove Connection Example section

* translate: sync zh/ja with LlamaCloud restructure and apply new quality rules
2026-04-15 10:26:52 +08:00
Riskey b6f87ac5d4 docs: rewrite Output node page with zh/ja translations and glossary updates (#742)
* docs: rewrite Output node page and add API mode glossary terms

* translate: sync zh/ja Output node pages with rewritten English source

* style: add link spacing rule for ja and expand anchor rule to cover Tab titles

* fix: remove trailing whitespace in en and replace em dashes in zh
2026-04-10 16:37:39 +08:00
Riskey 83fc9593fa docs: document datasource_info_list schemas and improve Run Pipeline API (#741)
* docs: document datasource_info_list per-type schemas for Run Pipeline API

* docs: improve Run Pipeline parameter descriptions and SSE event documentation

* translate: sync zh/ja pipeline API specs with English schema updates

* fix: address Copilot's PR review feedback on pipeline API docs

* style: add punctuation spacing and API cross-link rules to translation guides
2026-04-10 15:49:43 +08:00
Riskey 729606605a fix: handle non-ASCII URLs and false positives in external link checker (#740) 2026-04-10 13:14:42 +08:00
Riskey fac0601fd6 chore: remove orphaned files, obsolete scripts, and unused images (#731) 2026-04-04 00:27:02 +08:00
Riskey 0cdcccc248 docs: add app type introduction pages and sync zh/ja translations (#728)
* draft

* refactor: reorganize sidebar hierarchy, add icons to top-level categories, and remove per-page icon frontmatter from 57 MDX files

* docs: add app type introduction pages with zh/ja translations and sidebar restructuring

* style: fix CJK-Latin spacing in translation notices and address PR review feedback
2026-04-03 23:49:22 +08:00
Riskey 5a10d47966 fix: report actual error from GET fallback in link checker (#730)
* fix: report actual error from GET fallback in link checker

* fix: skip 403 responses in GET fallback path
2026-04-03 23:44:42 +08:00
Riskey 7839e094ff fix: fix broken links and add link-checking workflow (#729)
* fix: fix all broken links

* feat: add link-checking GitHub workflow

* fix: convert relative links to absolute paths in knowledge-pipeline pages

* fix: address Copilot review comments on link checker and ja docs

* feat: split link checks into per-PR internal and weekly external workflows
2026-04-03 19:07:51 +08:00
Riskey 5c1c3a4cc9 docs: sync documentation for Dify v1.13.0–v1.13.3 changes (#722)
* feat: optimize the docs-release-sync skill

* docs: add doc_form validation to knowledge API spec

* docs: update AI Credits/Default Model Settings terminology
2026-03-30 22:16:46 +08:00
Riskey 99ba370087 feat: add shared writing guides, skills, and docs infrastructure (#720) 2026-03-30 16:16:24 +08:00
Chenhe Gu 61b37d88fc Fix stale PR translation revert issue (#630)
* Fix stale PR translation revert issue

When PR A is created before PR B but PR B merges first, the translation
workflow for PR A was reverting all of PR B's changes. This happened because
the translation workflow used PR A's working directory state (which is a
snapshot from before PR B existed) rather than applying only PR A's changes.

Root cause:
- setup_translation_branch() for new branches did:
  checkout -b branch → reset --soft origin/main → reset
  This kept PR's working directory which could be stale

- For incremental branches, merge_docs_json_for_incremental_update() took
  the English section from PR HEAD, which was also stale for old PRs

Fix:
- For NEW branches: Create branch directly from origin/main (not from PR's
  working directory). This ensures we start with the latest state including
  all changes from PRs merged after this PR was created.

- For EXISTING branches: Merge main's docs.json structure with our
  translations (instead of taking EN section from stale PR)

- For BOTH: Selectively checkout only the files that the PR actually changed
  from PR's head, rather than bringing in the entire working directory.
  This prevents overwriting files from other PRs.

Example issue (PR #593):
- PR #593 only added one file
- Translation PR #611 tried to delete 11 files and revert massive docs.json changes
- This was because it used PR #593's stale state from before other PRs merged

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix: Use PR's docs.json for finding file positions in navigation

The initial fix had a side effect: since we start from main's docs.json,
and PR's new files aren't in main's English section yet, sync_docs_json_incremental()
couldn't find where to place new files in the translation navigation.

Fix: Add `reference_sha` parameter to sync_docs_json_incremental() that loads
PR's docs.json for finding file positions, while still modifying main's
translation sections. This ensures:
1. Main's docs.json structure is preserved (no reverts)
2. New files are found in PR's docs.json
3. Translations are added at the correct positions

This also removes the unused _apply_pr_english_section_to_main() method.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Fix EN section not updated when using reference_sha

When the translation branch starts from main, the PR's docs.json
structural changes (new file entries in EN section) were not being
incorporated. This caused the translation PR to have mismatched
navigation entries.

The fix now also updates the EN section of the working directory's
docs.json when processing added files found in the reference
docs.json (from the PR).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Also remove deleted files from EN section in stale PR scenario

When processing deleted files, the sync now also removes them from the
EN section of docs.json. This is needed when the translation branch
starts from main, which may still have the deleted file entries.

Verified with comprehensive local testing covering 10 scenarios:
- Basic stale PR, multiple files, modifications, deletions
- Nested groups, new dropdowns, mixed operations
- Backward compatibility, incremental syncs, structure changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 22:46:11 -08:00
Chenhe Gu 61466c3f45 support configuring ignored files in auto sync (#629)
* Add ignore_files config to exclude specific files from translation

Adds ability to specify source language files that should not be translated:
- New `ignore_files` array in config.json
- Validation ensures paths start with source dir, have valid extension, no traversal
- Filtering applied in PRAnalyzer.categorize_files() and SyncPlanGenerator.generate_sync_plan()

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* update config

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:45:28 -08:00
Chenhe Gu f5aacb1377 improved local auto-sync script (#592)
* move files & renames

* rename files and doc entries

* sync develop plugin files

* update group label translations

* some cleanups

* update configs

* update links

* add remote debug doc

* delete redundant slashes and unnecessary notes

* update ja and zh links

* add script to translate locally

* update

* update

---------

Co-authored-by: Riskey <riskey47@dify.ai>
2025-12-12 10:47:46 +08:00
Riskey 60ef6820ff Revert "Auto translate works (#597)" (#609)
This reverts commit 809fc7f5eb.

Co-authored-by: Riskey <riskey47@dify.ai>
2025-12-11 16:06:51 +08:00
Alter-xyz 809fc7f5eb Auto translate works (#597)
* feat: init translation prompts from Dify workflow

Add translation prompt templates used by Dify workflow:
- 1.md: New document translation
- 2.md: Update existing translation
- 3.md: Update with diff/checklist

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: add URL localization rule to prompt 1, fix lang codes in prompt 3

- prompt 1.md: Add Rule 3 URL Localization (was missing, causing /en/ URLs to not be mapped)
- prompt 3.md: Fix language code comments (cn/jp → zh/ja to match actual folder structure)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: add README for translation prompts

Document prompt file mapping to Dify workflow nodes and testing workflow.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: move prompts to tools/translate/, add testing docs

- Move prompt templates to tools/translate/prompt/ (closer to translation code)
- Add prompt testing workflow to translate-test-dify/README.md
- Document prompt-to-workflow mapping and URL localization rule

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-11 15:34:46 +08:00
Chenhe Gu f1f025b75d consolidate plugin dev docs into main structure (#581)
* move files & renames

* rename files and doc entries

* sync develop plugin files

* update group label translations

* some cleanups

* update configs

* update links

* add remote debug doc

* delete redundant slashes and unnecessary notes

* update ja and zh links

---------

Co-authored-by: Riskey <riskey47@dify.ai>
2025-12-04 16:28:47 +08:00
Chenhe Gu 767397a9de changed language codes: cn -> zh, jp -> ja. with other supporting structural changes (#565)
* fix redirect language code prefixes

* rename: cn -> zh, jp -> ja

* remove hardcoded ja / zh references

* remove hardcoded 'english' references

* renamed variable names and dict keys to language agnostic names

* fix: add missing language helper methods to PRAnalyzer

- Add get_language_directory() method
- Initialize source_language and target_languages from config
- Fixes AttributeError when generating mixed PR errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* test: kitchen sink workflow validation v2

This PR validates the translation workflow after config-driven refactoring:

Changes:
- Add new test file: test-workflow-validation.mdx
- Modify existing file: introduction.mdx
- Update docs.json navigation

Tests:
- New file translation (add workflow)
- Existing file translation (update workflow)
- Navigation sync across languages
- Config-driven language codes (zh/ja instead of cn/jp)
- Source language abstraction (no hardcoded "English")

Expected workflow behavior:
1. Detect changes in en/ directory
2. Translate new file to zh and ja
3. Update modified file translations
4. Sync docs.json for all language sections
5. Commit translated files automatically

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: update workflow paths to use zh/ja instead of cn/jp

Aligns workflow trigger paths with the zh/ja language directory rename.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Revert "fix: update workflow paths to use zh/ja instead of cn/jp"

This reverts commit 9587b7cc5d.

* Revert "test: kitchen sink workflow validation v2"

This reverts commit 4abdd69fd2.

* fix: update workflow paths in doc analyze workflow to use zh/ja instead of cn/jp

* Refactor/language codes (#240)

* test: kitchen sink workflow validation v2

This PR validates the translation workflow after config-driven refactoring:

Changes:
- Add new test file: test-workflow-validation.mdx
- Modify existing file: introduction.mdx
- Update docs.json navigation

Tests:
- New file translation (add workflow)
- Existing file translation (update workflow)
- Navigation sync across languages
- Config-driven language codes (zh/ja instead of cn/jp)
- Source language abstraction (no hardcoded "English")

Expected workflow behavior:
1. Detect changes in en/ directory
2. Translate new file to zh and ja
3. Update modified file translations
4. Sync docs.json for all language sections
5. Commit translated files automatically

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: update workflow paths to use zh/ja instead of cn/jp

Aligns workflow trigger paths with the zh/ja language directory rename.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Revert "fix: update workflow paths to use zh/ja instead of cn/jp"

This reverts commit 9587b7cc5d.

* Revert "test: kitchen sink workflow validation v2"

This reverts commit 4abdd69fd2.

* fix: update workflow paths in doc analyze workflow to use zh/ja instead of cn/jp

---------

Co-authored-by: Claude <noreply@anthropic.com>

* fix: update workflow files to use 'source' instead of 'english'

After refactoring the PR analyzer to use 'source' for source language
PRs (instead of hardcoded 'english'), the workflow files need to match.

Changes:
- sync_docs_analyze.yml: pr_type == 'source' (was 'english')
- sync_docs_update.yml: PR_TYPE != 'source' check
- Updated all comments from "English" to "source language"
- Updated all pr_type values in JSON from "english" to "source"

This ensures the workflows trigger correctly with the refactored
config-driven language system.

Related: language code refactoring (cn/jp → zh/ja)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix/workflow source language references (#245)

* test: kitchen sink workflow validation v2

This PR validates the translation workflow after config-driven refactoring:

Changes:
- Add new test file: test-workflow-validation.mdx
- Modify existing file: introduction.mdx
- Update docs.json navigation

Tests:
- New file translation (add workflow)
- Existing file translation (update workflow)
- Navigation sync across languages
- Config-driven language codes (zh/ja instead of cn/jp)
- Source language abstraction (no hardcoded "English")

Expected workflow behavior:
1. Detect changes in en/ directory
2. Translate new file to zh and ja
3. Update modified file translations
4. Sync docs.json for all language sections
5. Commit translated files automatically

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: update workflow paths to use zh/ja instead of cn/jp

Aligns workflow trigger paths with the zh/ja language directory rename.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Revert "fix: update workflow paths to use zh/ja instead of cn/jp"

This reverts commit 9587b7cc5d.

* Revert "test: kitchen sink workflow validation v2"

This reverts commit 4abdd69fd2.

* fix: update workflow paths in doc analyze workflow to use zh/ja instead of cn/jp

* fix: update workflow files to use 'source' instead of 'english'

After refactoring the PR analyzer to use 'source' for source language
PRs (instead of hardcoded 'english'), the workflow files need to match.

Changes:
- sync_docs_analyze.yml: pr_type == 'source' (was 'english')
- sync_docs_update.yml: PR_TYPE != 'source' check
- Updated all comments from "English" to "source language"
- Updated all pr_type values in JSON from "english" to "source"

This ensures the workflows trigger correctly with the refactored
config-driven language system.

Related: language code refactoring (cn/jp → zh/ja)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>

* fix

* fix docs.json language codes

* rename previous version docs: cn -> zh, jp -> ja

* rm duplicate redirect entires

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-28 04:00:02 -08:00
Alter-xyz 4339f79a55 feat: add translation A/B testing framework (#564)
Add tools for comparing translation quality between different models
(e.g., Sonnet vs Opus) or prompt variations. Useful for evaluating
translation improvements before deploying changes.

- run_test.py: Test runner with Dify API streaming
- compare.py: Generate similarity reports between variants
- Example spec and documentation included

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-28 16:02:13 +08:00
Chenhe Gu 08e9e11c90 Replace main with revamp (#547) 2025-11-26 04:46:31 -08:00
Chenhe Gu d9fb3dc2b1 remove general docs from footer addition (#498) 2025-10-28 15:34:56 -07:00
Alter-xyz e66cc64d89 feat: github build-in issues template redirect 2025-07-16 16:40:40 +08:00
AllenWriter 0f218b29df Fix: modify the page's automatic contribution feature 2025-06-03 11:06:43 +08:00
AllenWriter ec34e552c8 Docs: fix error url 2025-05-29 11:21:19 +08:00
AllenWriter d29f5f9b8a Merge branch 'main' into docs/fix-plugin-docs 2025-05-23 11:18:25 +08:00
Alter-xyz a4948c974b Update README.md 2025-05-23 11:16:37 +08:00
AllenWriter 06d73584d1 Fix: remove suffix .zh 2025-05-23 11:12:35 +08:00
Alter-xyz 8f158f547a chore: tools readme 2025-05-22 18:26:24 +08:00
Alter-xyz 3b0690f9b2 updates
and test action script
2025-05-19 21:58:24 +08:00
Alter-xyz 573a8a4df1 fix: typo 2025-05-19 16:08:23 +08:00
AllenWriter e629382c63 Feat: update docs url 2025-05-19 14:58:56 +08:00
AllenWriter bbc257d662 Feat: update docs url 2025-05-19 14:52:31 +08:00
Alter-xyz 829a76c67f enable update reference 2025-05-19 10:57:11 +08:00
Alter-xyz 8fb0738a8f chore: format matching 2025-05-19 10:37:03 +08:00
Alter-xyz 6cb4c072da feat: update references switch
default off
2025-05-18 17:51:05 +08:00
Alter-xyz 3dca175795 fix: suffix 2025-05-18 16:54:31 +08:00