mirror of
https://github.com/langgenius/dify.git
synced 2026-10-04 13:47:55 +08:00
S5b (local E2E 2026-09-22, F2): analyze_goal's "a sensible default value per field" led the LLM to prefill render_api_url=https://api.yourcompany.com/... and Authorization: Bearer YOUR_API_KEY for a goal that named neither -- caught only because "yourcompany" happened to match an existing placeholder-URL regex; a plausible invented host would slip through and recreate ESQ1-302's launch failure one step upstream, in the requirements form itself. Adds services/dify_builder/agent/user_supplied.py (pure, no I/O): url_hosts, is_user_supplied_url, CREDENTIAL_PLACEHOLDER_RE, is_user_supplied_secret, trusted_text_for -- shared primitives for telling a literal the user actually wrote from one an LLM invented, used by this task and consumed by later tasks in the same plan. build.analyze_goal now tells the model never to invent such a field's default, and _scrub_invented_defaults deterministically blanks any top-level field whose value contains a URL host, or a credential-shaped or credential-keyed literal, not present in the goal text -- decided on hosts and literal text, never on LLM prose. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>