fix(config): validate provider send paths before management writes - #4523
fix(config): validate provider send paths before management writes#4523luvs01 wants to merge 1 commit into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
⏳ DRAFT
What to do
Review readiness checklist
2/4 boxes ticked. This pull request was already a draft. Its draft status will be preserved after every issue above is resolved. |
리뷰 · 우선순위 71 / 80이 PR은 지금 고치는 방식은 새 규칙을 만들지 않고 이미 있는 검사기를 공유하는 쪽입니다. 테스트가 이 PR의 핵심입니다. 지금 라인 - 메인테이너의 판단이 필요한 지점
너의 추천 이 댓글은 grok-bot이 작성했습니다 |
|
Author follow-up on the Cross-platform CI failure for this head. The failing shard is Windows 5/6, and all nine failures come from The failure reproduces on a Windows host at current I opened a separate fix for that so it is not mixed into this PR. Once it lands, this head should be re-run before any readiness claim. This PR is also beyond the latest-dev tolerance, so it stays Draft until a coordinated rebase. |
47537ac to
3dc6d47
Compare
|
Rebased onto latest Hygiene gate needs a maintainer decision, not an author change. The reason it has to be called from that file is the point of the change: Could a maintainer review the auth-surface touch and apply Superseding my earlier CI note. The comment above about the Windows shard and the latest-dev tolerance is resolved. This head is rebased onto Local verification on the published head |
3dc6d47 to
c8f7030
Compare
Current author follow-up
Published head
c8f7030ff114b98753ecd7d4a206a590b54c65d8is based on the fixeddevsnapshot43f4450a538d729f353144c029aa97de1c4f2483. This supersedes older head/behind/CI status statements below; older verification remains historical evidence. Required conflicts were resolved without dropping upstream contracts. No repeated tip chasing was performed.bun run typecheck: passed.bun run structure:check: passed.bun run privacy:scan: passed.git diff --check: passed.bun test tests/server/management-provider-validation.test.ts: passed (137 pass; 0 fail; 1095 expect() calls).Exact-head hosted verification is not yet complete; no older-head matrix is substituted.
Maintainer sponsorship, where required, remains a separate hold. Existing resolved review findings were not reopened.
Summary
Provider registration and replacement could accept a malformed
responsesPathorchatCompletionsPatheven though loading the same configuration from disk rejected it. Export the existing shared relative-path validator with an unknown-input check and call it at the management write boundary before DNS validation, state adoption or persistence.Editor PATCH operations that revalidate the resulting provider also check its retained paths; existing pacing-only and other validation bypasses are unchanged. This does not add a new PATCH field or change the existing path rules. All mapped structure owners link to the contract, and the eight provider-reference translations describe the write-time validation.
Verification
tests/server/management-provider-validation.test.ts: 137 pass, 0 fail, 1095 assertions.bun run typecheck,bun run structure:check,bun run privacy:scan, andgit diff --check: passed.Checklist
Review readiness evidence
Rebased onto
devat15fbd49f3and pushed; the branch was 0 commits behind at push time. Published head is3dc6d474d.Local verification on that head:
bun run typecheck,bun run structure:check,bun run privacy:scanandgit diff --checkall pass.bun test tests/server/management-provider-validation.test.tsreports 137 pass / 0 fail.Hosted cross-platform CI has not been dispatched on this head. On current
devthewindowsshard fails independently of this pull request:tests/clients/desktop-app-restart-posix.test.tsfails 9 of 17 on Windows becauseisUnderRootbuilds its boundary frompath.sepalone and because thedarwin/linuxcurrentUid()helpers callprocess.getuid(), which does not exist on Windows. That is adevregression, not a defect of this change, and it is fixed separately in #4564. The first box is ticked on the local run recorded above, which is what its wording asks for.Review readiness checklist