feat(composition): bind request routing to current route authority - #438
seonghobae wants to merge 8 commits into
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthrough요청 라우팅 리졸버를 추가했습니다. 리졸버는 요청 형식, 선언된 경로, 허용 메서드 및 현재 라우트 가용성을 확인합니다. 관련 오류와 라우팅 함수를 패키지 공개 API로 노출하고, 동작을 테스트합니다. Changes요청 라우팅
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Feature Merge Risk: ⚪ Minimal · up to This change adds an internal helper that maps a canonical request to the currently available route ID. It returns distinct errors for invalid requests, unknown paths, disallowed methods, and unavailable routes. An unavailable specific route does not fall back to a broader route, and overlapping route templates are already rejected when a configuration is admitted. No concrete merge-blocking risk was found. The change adds no HTTP host or owner execution. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks 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 |
|
@coderabbitai review Please focus on declared concrete-before-template precedence versus availability filtering, method authority, canonical decoded-path assumptions, stale/current snapshot use, and any trust-boundary case where request routing could widen to a broader owner route. Do not infer hosted GREEN from source shape. |
|
✅ Action performedReview finished.
|
|
CodeRabbit's only pre-merge warning is a scope mismatch, not a production-docstring finding: its 20% figure counts test fixtures/test functions in the four changed files. Orgmetra's executable contract is production-only and |
|
Descendant transport slice opened: Draft #439 exact #438 remains request selection/current durable availability authority. #439 only binds ASGI raw request-target evidence before calling Canonical acceptance should now use one unchanged #439 candidate so the transport regressions and this PR's preselection/currentness tests execute together; predecessor GREEN does not transfer. |
Scope
Request-routing owner, ordinary-forward on #437 exact
a09d6fb928e0272673b82ef7353ed83213aa994d. Current source head is6cd7a9081696c29fd3ce43a9f776fccfbf9ecaab, open · Draft · mergeable, 8 commits / 5 files. This PR consumes durable composition authority and returns only a stable compositionroute_id; it does not copy owner schema or introduce cross-service SQL. Declaration-first concrete-before-template selection prevents an unavailable concrete path from widening into a broader template.#437 remains the durable currentness owner and separates expected
ServingEvidenceExpiredErrorfromActivationAuthorizationErrorintegrity/security failure. This PR consumes that typed authority; it does not infer state from error strings or hold a deployment lock across owner I/O.Descendant authority — current
Current ordinary-forward descendants are #439
dbee7dcd6ce641e23fe93dcc59b643c066eed526→ #4400050f14701ea92fd85a2691a280d29c46a97b63b→ #4429bbb792ef43fca8b08684f4f55a8bfe65e1120da→ #443728f07a8c86f92bbf33586f2a8007da9f31f5e06→ #444e1af671deeeec682dffdf809cb8579dcc4d439da→ current response-completion leaf #4467954f5bf606584ddb5bbcd29e1b64e49041b9409.#439 binds raw ASGI request-target evidence; #440 owns method/error/current-
Allow/GET-HEAD semantics; #442 owns typed currentness projection; #443 owns bounded receive/body lifecycle; #444 owns the core response-event/send primitive; #446 owns complete non-streaming response prevalidation, no-content/framing/transfer-coding authority and caller-header detachment. No descendant moves routing-selection truth out of #438.Fresh #443 RED
6b61a5c...→ repair728f07a...aligns receive with #444 send: non-callable/non-awaitable shape fails closed locally, while invocation/await exceptions and cancellation remain caller/server lifecycle authority. #444 adopted that owner repair via ordinary-forward merged #445; later #444/#446 response repairs remain transport/HTTP-only.No #438-or-later transport/HTTP lifecycle repair changes SQL. PostgreSQL lineage remains 0018→0025.
Verification boundary
Canonical acceptance must use one unchanged exact #446
7954f5bf606584ddb5bbcd29e1b64e49041b9409tree so this routing contract, raw transport, HTTP/currentness, receive/send and complete-response lifecycle execute together. #447 exact47ac3556dfef7d5d27af2af8ae2ba5038b837e7cis the current Draft implementation of #260 Foundation service discovery/runtime compatibility; it remains blocked from canonical GREEN by normal #64/#305 metadata integration and protected-base execution/review evidence. #261 separately owns installed wheel/sdist acceptance, and #311 exactdbc2fcf70ba6a6883381e8526cd62c6e19ce159cowns the complete inherited 0018→0025 PostgreSQL inventory. Predecessor/bot evidence and mergeability do not transfer.Proposed architecture #433 is source-current at exact
ff50182c25ccf45928b1413f947c992f62be2ded; ADR 0432 remains Proposed, so source currentness is not architecture admission.Keep Draft until parent stack, canonical same-tree package/install/PostgreSQL execution and review prerequisites clear. No self-approval, administrator bypass, gate weakening, synthetic status, feature-local workflow, mutable sibling source, cross-service SQL, force-push/destructive rebase, predecessor-GREEN transfer or premature Ready/merge/release is authorized.
Refs #432 #433 #435 #437 #439 #440 #442 #443 #444 #445 #446 #447 #260 #261 #311 #100.