மாற்று பதிவேடு
என்ன புதிது.
அது கப்பல்கள் போல், தளத்தில் ஒவ்வொரு மேம்பாடு.
· kamo-internal
Bold 'CRM Settings:' prefix, pipe separators, hover-only underline on tab links
Preface the CRM settings tab links with a bold 'CRM Settings:' label (new **************** key), separate links with ' | ' instead of a bare space, and switch the links from always-underlined to underline-on-hover.
· kamo-internal
Add CRM settings tab links above refresh, gated like settings menu
Render a right-aligned row of white, underlined, space-separated links to each /settings/features/crm tab above the Leads header refresh button. The links reuse the CRM topic + gating from settingsMenu.ts, so they only show when the org is a CRM org and the member holds MANAGE_CRM_SETTINGS, and the market-gated tabs (Vendors & Products, Manual/Automated Imports) stay hidden until an active market exists.
· kamo-shared-library
FindByStatus finder (freshness sweep enumerates ACCEPTED requirements)
· SecurityService
Staff vendor-doc upload endpoint satisfies third-party requirements
POST **************** (LOS write): staff upload an appraisal/title/HOI/flood doc to the loan-level image store, then satisfy the loan's THIRD_PARTY requirement with it → RECEIVED (staff then accept → clears). Gives vendor documents an actual home + satisfy path instead of forcing a condition waive.
· SecurityService
Cascade condition waive/delete to document requirements
waiveCondition and deleteCondition now best-effort call MLOSDocService's suppress-for-condition after a successful waive/delete, so a waived condition's requirements flip to WAIVED (delete → NOT_APPLICABLE) and the borrower portal stops demanding the document for an obligation the steward already removed.
· SecurityService
Notify borrower when they've submitted all documents (DOC_COMPLETE)
· EmailService
DOC_COMPLETE preview sample variables
· kamo-shared-library
DOC_COMPLETE canonical template (borrower has submitted every requested document)
· SecurityService
Daily outstanding-document reminder sweep (re-nudge borrowers, throttled)
· kamo-shared-library
FindBorrowerOutstandingForNudge (stale outstanding requirements for the reminder sweep)
· SecurityService
Notify borrower when a document is accepted (DOC_ACCEPTED, per-party routed)
· EmailService
DOC_ACCEPTED preview sample variables
· kamo-shared-library
DOC_ACCEPTED canonical template (borrower confirmation a submitted doc cleared)
· kamo-internal
Surface 'Needs review' (borrower-submitted docs awaiting staff) as a distinct, prioritized state
A borrower's uploaded document flips the requirement to RECEIVED (awaiting lender), but the Documents column only showed 'Awaiting borrower' or a neutral 'In review' — so a doc waiting on STAFF sat invisibly until someone opened the account tab. Surface awaitingLender as a prominent violet 'N to review' that takes precedence over the amber borrower-waiting label, since it is the state the loan officer can act on now.
· kamo-shared-library
Centralize §4.5 supersession-collapse (RequirementSupersession)
The freshness engine leaves a STALE_EXPIRED predecessor beside its fresh successor under one **************** Only the read path (ConditionClearabilityComputer) collapsed those dead heads out; the write/count paths used raw repo queries and disagreed. Extract the collapse to ONE pure shared helper (liveHeads / supersededUids / isSuperseded) so the clear-trigger, satisfy fan-out, and pipeline summary all agree with the read.
· SecurityService
Borrower notifications close the collection loop
DocNotificationService sends transactional emails (established EmailTemplateServiceClient path, recipient = account primary member, portal link from org root domain): - DOC_REQUEST once when a loan reaches APPLICATION_TAKEN (checklist minted). - DOC_REJECTED when staff return a document (both the loan-scoped and party-scoped reject paths), with the doc name + reason. Best-effort — never blocks the document action.
· EmailService
DOC_REQUEST/DOC_REJECTED preview sample variables
· kamo-shared-library
DOC_REQUEST + DOC_REJECTED canonical templates
Borrower document-collection emails (transactional, CAN-SPAM-exempt): a request nudge when the checklist is minted, and a return-for-reupload notice. Added to CANONICAL_KEYS + 4 resource files (doc-request/doc-rejected .json/.html), seeded on-demand per org.
· kamo-internal
Document-collection progress column
Per-loan doc progress (accepted/total + a colored bar, 'N from borrower' / in-review / complete) in the applications pipeline, fetched in one batch by loanFileUid. Makes the document system visible in the processor's daily working view.
· kamo-internal
Remember Quick Tips open/closed per USER across all pages
The help column's visibility was stored in a single global localStorage key, so it wasn't scoped to the user. Introduce useQuickTipsVisible, keyed by user id (not member id) so the open/closed choice is consistent for a user across every page and every org/member context, and never leaks between users on a shared browser. A custom event keeps mounted columns and other tabs in sync on toggle. SettingsView now uses it.
· SecurityService
Proactive checklist generation + pipeline doc summary
- Generate the scenario document checklist at APPLICATION_TAKEN (MortgagePipelineController transition hook) so it exists the moment a loan enters the pipeline — no waiting for a view. - Keep the checklist current: the loan document-requirements GET now always regenerates (idempotent) so newly-entered employment/gift/program facts add their requirements. - POST **************** pipeline-gated batch proxy for the per-loan collection-progress column.
· kamo-internal
Standardize Quick Tips help column + de-slop reference page
- Rename the help side-column title to "Quick Tips" everywhere (SettingsView reads **************** whose value is now "Quick Tips"). - Add a shared HelpContent component set **************** **************** — one accent colour, one list marker, no emoji, semantic colour reserved for meaning (e.g. permission states). - Rewrite the Essential Settings help content (behavior-labeling, security-roles, departments, job-titles) with those components: removed the 💡 emoji and the green/blue/red decorative bullets; permission states keep meaningful colour. All translation keys preserved.
· kamo-internal
Nested sub-options so deeper items (e.g. Settings sub-topics) are reachable
The sub-option menu only rendered one level, so a sub-option that itself has sub-options (Settings topics → sub-topics) was inaccessible. - NavToolButton now renders nested children as accordions in every placement (bar popover, collapsed rail fly-out, expanded rail inline). A parent with a destination navigates on row click while its chevron expands/collapses the children; chevron toggles use a span (not a nested <button>) to keep valid HTML. - Restore the full settings tree as data (settingsMenu.ts) — every topic and its sub-topics with routes + gates, ported from the retired SettingsStatusWindow, including the market-gated CRM sub-topics — and drive SettingsButton from it. - Add the two settings label keys the old window resolved by fallback (universe, loanProducts).
· kamo-internal
Member-configurable navigation — drag options between rail & top bar, expandable rail, per-member layout
Turn the two hardcoded navs (NavPri/NavTop) into a data-driven, per-member system. - Single nav registry (navRegistry) + pure resolver (resolveNavLayout) enforcing the invariants: every gated option lives in exactly one nav, gate-hidden options drop, newly-eligible options land at their default, nothing is ever lost/duplicated. - NavLayoutContext persists the layout per member via the existing ui-preferences store (cross-device, no backend change) and drives --nav-pri-width so an expanded rail reflows the shell with no magic numbers. - Always-on drag between NavPri and NavTop plus reorder within each nav screen-reader announcements. - NavPri gains expanded (icon + label + inline sub-lists) and collapsed (icons-only, fly-out sub-options) modes with hover-to-peek and a collapse toggle; adds active-route highlighting + aria-current; triggers are real <button>s. - The five tool buttons **************** become portable via one NavToolButton primitive — downward popover in the bar, right fly-out in the collapsed rail, inline list in the expanded rail — preserving their exact handlers. - Dedicated /settings/navigation page: move/reorder options, choose rail behavior, Reset to Standard with undo; linked from the Settings slide-out (top) and /settings. - ⌘K / Ctrl-K command palette to jump to any option. - Desktop/tablet only (gated on the md breakpoint); mobile keeps the static nav. - Deletes the superseded nav plumbing (NavPriItemWithPanel, NavPriLayout, NavPriPanel, NavInfo, NavPanelLink, NewDocumentButton).
· kamo-shared-library
**************** self-heal
Idempotent re-link of every borrower on a loan to its account-party, callable from the document surfaces so an upload can always resolve the borrower's vault party — even for loans created before the link hooks shipped.
· kamo-internal
Document vault tab — parties, requirements, satisfy/accept/reject
- AccountDocumentsTab: per-borrower-party view of the account's document vault and per-loan requirements. Upload once, satisfy every loan (satisfy-across); staff accept/reject received submissions; status + waiting-on at a glance. - memberDocsApi client + **************** catch-all proxy (JSON + multipart upload) to SecurityService. - Replaces the Documents tab 'coming soon' placeholder in AccountViewClient.
· SecurityService
Proxy the vault-backed requirement surface
- MlosDocClient: POST verbs (generate, satisfy, accept, reject, satisfy-across) + enriched loan/party reads over X-Internal-Auth. - MortgageAppController /{uid}/document-requirements: enriched loan requirements (self-heals — mints the baseline checklist on first view), generate, satisfy (loan-party gated), accept/reject (steward write only). - MemberDocumentController: account parties list, party requirements (across loans), satisfy, satisfy-across, accept/reject — the account/party vault surface for staff (LOS rights) and borrowers (party membership). - MemberDocumentService: listPartiesForAccount, resolveAccountUidForMember, isMemberOfAccount.
· kamo-shared-library
Account-borrower-party link service + vault finders
- **************** find-or-create the reusable account-party (document-vault shared-human key) for each loan Borrower; dedup ssn4+dob, else primary→account.primaryMember, else create; enrich existing on new facts. - Hooks: BorrowerSectionService (create/createPair/update) + AppMortgageService .stampOwnershipAndGet backfill (authoritative relink once the account exists). - **************** DocumentRequirementRepository .findByBorrowerUidIn + **************** (vault cross-loan reach). - **************** surfaced.
· kamo-internal
Transaction drill-in drawer in the pipeline
Clicking a multi-loan deal opens a right drawer showing the group status + each member loan (borrower, property, loan status), each clickable through to the loan; a single-loan deal opens its loan directly. Fetches GET **************** ****************
· SecurityService
Transaction detail endpoint GET ****************
Returns one deal group's rolled-up summary + each member loan's AppMortgageSummaryDTO (drill-in for the per-transaction pipeline). Operator view or a party to the deal (isMemberPartyToTransaction).

உங்கள் உலகம் காத்திருக்கிறது.
நிமிடங்களில் இலவசமாகத் தொடங்கவும். நீங்கள் தயாராக இருக்கும் போது பொருட்களை சேர்க்கவும் - எந்த மாற்றமும் இல்லை, புதிய உள்நுழைவுகள் இல்லை.
எப்பொழுதும் இலவசம் — கடன் அட்டை தேவையில்லை