Clearer default custom-domain DNS instructions and configurable DNS target
Maintainer thường phản hồi trong vòng 1 ngày
@superdav42 đang làm issue này rồi.
Từ ngày 2/11/2026.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Start in inc/managers/class-domain-manager.php, at default_domain_mapping_instructions(), get_domain_mapping_instructions() and the domain_mapping_instructions setting near line 800. Before editing, read the failing PHP 8.2 to 8.5 CI logs from the linked PR #2071, since that attempt did not pass. Done means the default text covers apex CNAME/A fallback, www, conflicting records and Cloudflare, %DNS_TARGET% works, and stored custom instructions and the filter are unchanged.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What
Improve UM's default custom-domain DNS instructions and let network admins set a recommended DNS target, so end customers can map domains correctly without support.
Why
Domain_Manager::default_domain_mapping_instructions() (inc/managers/class-domain-manager.php) only says "create a new CNAME record pointing to %NETWORK_DOMAIN%". Customers struggle because:
- many DNS providers do not allow a CNAME on the apex; the text gives no A-record fallback even though
%NETWORK_IP%exists; - it does not mention the
wwwrecord (UM'sauto_create_www_subdomaincreates it, so it needs DNS too); - hosts often want customers to point at a dedicated hosting hostname, not the network's main domain; there is no setting for that;
- Cloudflare users get no guidance (proxy on/off, SSL/TLS Full (strict)).
Real case (2026-10-31): a customer on a hosted UM network pointed www.<their-domain> at an unrelated domain of theirs and needed operator help; the host had to hand-write instructions per network.
How
Files to Modify
- EDIT:
inc/managers/class-domain-manager.php—default_domain_mapping_instructions()(rewrite the default text: apex CNAME if the provider supports it, otherwise A to%NETWORK_IP%;wwwCNAME; remove conflicting records; Cloudflare note; first HTTPS visit can take a minute while SSL is issued);get_domain_mapping_instructions()(add a%DNS_TARGET%placeholder); settings registration near thedomain_mapping_instructionsfield (~line 800) — add an optionaldomain_mapping_dns_targetsetting (defaults to the network domain) and document the new placeholder in the fielddesc. - Keep the
wu_get_domain_mapping_instructionsfilter signature backward compatible.
Hazards
- Stored custom instructions must render unchanged; only the default changes.
%NETWORK_IP%comes fromDomain_Mapping\Helper::get_network_public_ip(); behind proxies/NAT it can be wrong, so phrase the A record as a fallback and letdomain_mapping_dns_targettake priority.- All new strings translatable (
ultimate-multisitetext domain).
Verification
- PHPUnit for
Domain_Managerif present; otherwise focused test ofget_domain_mapping_instructions()with: empty setting (new default), custom setting (unchanged),domain_mapping_dns_targetset (%DNS_TARGET%replaced). - Manual: Network Admin → Settings → Domain Mapping shows the new field; the add-domain modal shows the new default.
Files Scope
- inc/managers/class-domain-manager.php
Acceptance Criteria
- Default instructions cover apex CNAME/A fallback,
www, conflicting records, and Cloudflare. - Network admins can set a recommended DNS target used by
%DNS_TARGET%and the default text. - Existing custom instructions and the filter keep working.
aidevops.sh v3.39.49 plugin for OpenCode
CI Repair Feedback (from PR #2071)
The previous worker's PR #2071 had terminal failed CI checks. A head-bound
finalizer is routing this issue for redispatch. The next worker should address these failures.
Terminal failed checks
- PHP 8.5: failure — check URL — primary failing-check evidence
- PHP 8.4: failure — check URL — primary failing-check evidence
- PHP 8.3: failure — check URL — primary failing-check evidence
- PHP 8.2: failure — check URL — primary failing-check evidence
Worker guidance
- Recover the previous PR branch/commits and continue that work; do not restart from scratch.
- Read every terminal check URL above and preserve the accumulated evidence.
- Rebase the recovered work onto current
origin/main, then fix the code rather than weakening CI. - Run every listed local check and create the replacement PR from the recovered branch.
Routed by deterministic merge pass (pulse-merge.sh).
In-place repair fallback
- Reason: the bounded PR-branch repair session exhausted its retry budget
- Retry: re-run the deterministic merge pass after restoring access to branch
feature/auto-20261031-195544-gh2067; keep PR #2071 open until that retry is impossible.
In-place repair attempt outcomes
- Attempt 1: stage=
worktree_create; result=launch_failed; failure_reason=worktree_helper_failed; next_action=inspect_worktree_helper_log_and_retry - Attempt 2: stage=
worktree_create; result=launch_failed; failure_reason=worktree_helper_failed; next_action=inspect_worktree_helper_log_and_retry
- Ngôn ngữ chính
- PHP
- Star
- 218
- Fork
- 88
- Merge trung bình
- 1 ngày 4 giờ
- Pull request đã merge (30 ngày)
- 96
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Ultimate-Multisite/ultimate-multisite
-
fix(products): plan editor pins Customer Role to resolved default, overriding global Default RoleCó thể đã có người làm @superdav42 đã nhận hôm nay. Đang mởbug origin:interactive status:available
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 25/100
Ultimate-Multisite/ultimate-multisite#2081 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug origin:interactive status:available
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
Ultimate-Multisite/ultimate-multisite#2080 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Track interactive PR #2066Có thể đã có người làm @superdav42 đã nhận 5 ngày trước. Đang mởorigin:interactive status:blocked
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 1/100
Ultimate-Multisite/ultimate-multisite#2079 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
fix: send payment_received receipt after manual payment confirmation and email verificationCó thể đã có người làm @superdav42 đã nhận 8 ngày trước. Đang mởbug origin:interactive status:in-review tier:standard
Ultimate-Multisite/ultimate-multisite#2055 · 12 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
perf: lazy-load the top My Sites toolbar and defer initial site-list hydrationCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mởenhancement origin:worker priority:medium source:conflict-feedback status:in-review tier:standard
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
Ultimate-Multisite/ultimate-multisite#2015 · 199 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Ultimate-Multisite/ultimate-multisite
Issue tương tự
-
Author mapping step: "create new user" and "assign to existing user" fields have no spacing between themCó thể đã có người làm @umeshnevase đã nhận hôm nay. Đang mở
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 78/100
WordPress/wordpress-importer#275 ·
-
security/openvpn-legacy: read-only user can stop a running VPNCó thể đã có người làm @besendorf đã nhận hôm nay. Đang mởincomplete
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
opnsense/plugins#5887 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
jira-created
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
-
No Code Attached Yet
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
joomla/joomla-cms#48786 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Icinga/icingaweb2-module-director#3188 ·
Maintainer thường phản hồi trong vòng 4 ngày