Loading module
Resolving locale, route permissions, and workspace projection.
Resolving locale, route permissions, and workspace projection.
მიმდინარე არეალი: სტუმარი
კატეგორია: 10_normative | ვერსია: v1.0.0
მფლობელი: DOCUMENT_CUSTODIAN | გადახედვის ციკლი: 90 დღე
დამტკიცების უფლებამოსილება: GOVERNANCE_ADMIN
დოკუმენტაციის პორტალი მხოლოდ წაკითხვადია. რედაქტირება და ცვლილების endpoint-ები გამორთულია.
Kvary პლატფორმა თავდაპირველად ქართულ ენაზეა შექმნილი. სადაც ქართული ვერსია არსებობს, პლატფორმის UI-ის, დოკუმენტაციისა და იურიდიული განმარტების ავტორიტეტული ენა არის ქართული.
სხვა ენებზე თარგმანები მოცემულია მოხერხებულობისთვის. კონკრეტული ჩანაწერი ან flow შეიძლება სხვა ენაზე იყოს წარმოშობილი და ჰქონდეს საკუთარი source/legal locale, თუმცა სადაც ქართული ვერსია ხელმისაწვდომია, პლატფორმის დონის ფორმულირებასა და განმარტებაში უპირატესობა ქართულ ვერსიას ენიჭება.
მეტამონაცემები არასრულია: Document ID, Version, Status, Owner Role, Last Review Date, Next Review Date, Change Log
This note documents the Sprint 05 boundary cleanup for the auction detail flow in apps/web.
The goal of this layer is not to make bidder mutations look durable. The goal is to make the current truth model explicit in code:
canonicalRead remains the visible source for auction detail/list readsUI-FIRST and compatibility-backedTop-level entry:
Controller / view-model layer:
apps/web/src/portal/components/auctionDetail/useAuctionDetailController.tsxapps/web/src/portal/components/auctionDetail/useAuctionSessionOverlays.tsapps/web/src/portal/components/auctionDetail/useAuctionBidderIdentity.tsapps/web/src/portal/components/auctionDetail/compatibilityActionAdapter.tsPresentation modules from Sprint 04:
apps/web/src/portal/components/auctionDetail/AuctionReadPresentation.tsxapps/web/src/portal/components/auctionDetail/AuctionDeliveryOptionsPanel.tsxapps/web/src/portal/components/auctionDetail/AuctionBidActionCluster.tsxapps/web/src/portal/components/auctionDetail/AuctionBuyNowAction.tsxapps/web/src/portal/components/auctionDetail/AuctionFulfillmentPanel.tsxapps/web/src/portal/components/auctionDetail/AuctionCompatibilityNotice.tsxRelated cross-sprint boundaries:
apps/web/src/ui/auctions/canonicalRead/portalReadBoundary.tsapps/web/src/ui/auctions/compatibility/sessionAuctionMutationPort.tsapps/web/src/ui/auctions/futureDurable/auctionMutationPort.tsapps/web/src/ui/auctions/session/bidOverlay.tsapps/web/src/ui/auctions/session/fulfillmentOverlay.tsapps/web/src/ui/auctions/session/transportSelectionOverlay.tsAuctionDetailClient.tsxStatus: MIXED, but intentionally thin after Sprint 05.
Owns:
It is now a shell/orchestrator entry point, not the place where eligibility, overlay merge, or compatibility write logic is implemented.
useAuctionDetailController.tsxStatus: UI-FIRST controller/view-model layer.
Owns:
It is intentionally the place where current truth is concentrated:
detailuseAuctionSessionOverlays.tsStatus: UI-FIRST.
Owns:
This is the explicit session/local merge layer for the detail controller.
useAuctionBidderIdentity.tsStatus: MIXED.
Owns:
useCurrentUser()getMyStakeholderContext()This hook keeps session/account/stakeholder identity shaping out of the visual detail component.
compatibilityActionAdapter.tsStatus: UI-FIRST.
Owns:
It currently maps to:
This is intentionally named as compatibility, not service, gateway, or API mutation.
AuctionDetailClientSprint 05 extracted these responsibilities from the top-level component:
This means new engineers and future AI agents no longer need to read a single giant client component to find:
Inside useAuctionDetailController.tsx:
Inside AuctionDetailClient.tsx:
This centralization is intentional for now. Splitting further before a real durable mutation path exists would risk scattering the same UI-first truth across too many modules.
Status: REAL / MIXED depending on upstream source, unchanged by this sprint.
Status: UI-FIRST.
These still flow through the compatibility adapter to the session-backed mutation port.
Status: UI-FIRST.
These remain explicit and isolated under ui/auctions/session/*.
Status: SHELL.
The durable seam still exists under:
Sprint 05 did not implement it. The controller boundary now makes the eventual swap point much clearer.
When a real bidder mutation backend is implemented later, the intended change point is:
AuctionDetailClient.tsx unchanged or nearly unchangeduseAuctionSessionOverlays.ts if durable optimistic/revalidation behavior replaces session overlaysThat is the main value of this sprint: the swap point is now explicit instead of buried inside a very large UI component.