OAuth2 client registrations CRUD (platform-admin gated, encrypted-at-rest, secrets never leaked) + platform-enc-key env
Steward WRITE composers — record verdict, publish pull-through policy, run pricing
The three write paths the consoles surfaced as coming-soon, live end-to-end: - StewardFeedbackComposer in the decision-trail drawer: CONFIRM/MODIFY/OVERRIDE s...
PlatformOAuthClientResolver (read+decrypt registry) + PlatformOAuthSeeder (idempotent boot seed from env) + ResolvedOAuthClient
PlatformOAuthClient registry entity + repo + PlatformSecretCipher + provider enum
Platform-level OAuth2 verified-app registrations **************** encrypted at rest via PlatformSecretCipher (AES-256-GCM, platform.enc-key). Standalone entity;...
Steward WRITE proxies — record feedback, publish pull-through policy, trigger pricing run
Write discipline, applied identically on all three POSTs: - downstream body built server-side from a WHITELIST of browser fields; - organizationId + actor membe...
FFA quick-toggle on /leads/available + live sync; hide available count
- /leads/available: manager-only icon button (Public/PublicOff) next to Inject Test Lead to toggle a vendor/product's free-for-all mode, with a lightweight co...
Live FFA toggle — quick endpoint + broadcast on product updates
- PATCH **************** (MANAGE_CREDITS): toggle a product's free-for-all flag from the Leads-Available shortcut; publishes vendor-product + availability. - ...
Meta OAuth Connect button + 24h window composer state + fix double-Tooltip
- SocialConnectionsManager: wire the Connect button (creates OAuth draft, hands off to MediaService Meta OAuth start), surface the OAuth redirect result, hide...
Warn when a social connection lacks vendorProduct/market (lead created but not pooled)
M4 Meta adapters + OAuth + 24h window + M2 hardening
- Meta adapters (Messenger/Instagram): fix invalid _caption send (caption now a follow-up message), bytes-upload via Graph Attachment Upload API, URI encode f...
SecurityService read-proxy for MLOS Governance
One controller/client pair fronting MLOSGovernanceService's five reads (both its steward-feedback and pull-through-policy modules share /api/governance). organi...
Governance console — steward-feedback flywheel + pull-through policy
Fifth and final MORTGAGE steward screen, read-path B. Signature Steward-Feedback Flywheel (AI decides → steward corrects → becomes truth → model recalibrates), ...
Steward section tone constants + section simplification
(Uncommitted MLOS steward work present on the shared dev mount, committed to keep the tree clean; compiles cleanly. Not part of the lead-alert change.)
Single-market orgs adopt the market's title/description in nav + pipeline header
When an org has exactly one configured commerce market, the Commerce nav item uses that market's TITLE and the /commerce pipeline header uses the market's TITLE...
Documents steward screen — condition clearance matrix + eClose drive-loop
Third MORTGAGE steward screen, read-path B. Signature Condition Clearance Matrix renders the doc-system 1-obligation/N-satisfier model: each locked LoanConditio...
SecurityService read-proxy for MLOS Documents (doc + doc-orchestration)
Two browser-facing read-proxy controller/client pairs fronting MLOSDocService (/api/docs) and MLOSDocOrchestrationService (/api/doc-orchestration) for the Docum...
M2 MediaService — Telegram adapter + creds resolver; inbound webhook edge + JetStream consumer; SocialMessageService (SOCIAL session/message, SOCIAL_VISITOR relay); internal member-add + social.agent STOMP relay; outbound send via adapter in afterCommit; social-secrets envFrom
Provision SOCIAL_MESSAGES JetStream stream (social.inbound.>, social.lead.>) R1 for social-media inbound pipeline
Pricing Review steward screen (rate ladder + LLPA waterfall), live
Third steward tab, on the shipped MLOSPricingService reads via the new SecurityService proxy (+ the new org-scoped runs read). Org run inventory with a run sele...
Pricing review read proxy (rate ladder + LLPA decomposition)
MlosPricingController @ /api/security/mlos/pricing + MlosPricingClient to MLOSPricingService (/api/pricing). Reuses MlosBaseController. runs inventory injects t...
Archive-not-delete markets, market-only pipeline, drag reorder
Settings › Engagement Types: - Archive markets (type "ARCHIVE" to confirm) instead of deleting; Active/Archived sub-tabs; restore from Archived. Market detail...
?status filter on markets list; remove redundant DELETE
GET /api/security/commerce-markets now takes an optional status=active|archived|all (default active) so the settings Archived tab can load archived markets. Dro...
Archived-market queries; drop redundant hard-delete
Add findArchivedByOrganizationId + findAllByOrganizationIdOrdered and the matching **************** service methods so Commerce settings can surface an Archived...
M1 foundation — provider SPI + normalized DTOs, 6 entities **************** repos, registry, MediaSessionType.SOCIAL, translation source-language column
Underwriting Review steward screen (agency AUS + non-QM), live
Second steward tab, on the shipped MLOSUnderwritingService reads via the new SecurityService proxy. Agency AUS runs inventory (DU/LP/GUS + decision) with a deta...
Underwriting review read proxy (agency AUS + non-QM internal rules)
MlosUnderwritingController @ /api/security/mlos/underwriting + MlosUnderwritingClient to MLOSUnderwritingService (/api/underwriting, X-Internal-Auth). Reuses Ml...
Wire Capital & Risk Command Center to the live read-path
Replace the fixture layer with the real end-to-end read-path: browser -> **************** route handler -> APIService -> SecurityService MlosCapitalMarketsContr...
Capital-markets steward read proxy for the Command Center
Add an MLOS-named, read-only proxy that lets the kamo-internal Capital & Risk Command Center reach MLOSCapitalMarketsService without exposing the internal netwo...
MLOS Capital & Risk Command Center steward console
Add the AI-native mortgage steward console under /commerce (MORTGAGE market tab), replacing the placeholder intents/commitments sub-tabs with MortgageStewardSec...
System Wide toggle + credit-balance editor + cascade filter; history member filter/links/pagination; inject icon+INJECT confirm
- /leads/credits: right-aligned 'System Wide:' Active/Suspended dropdown; Credit Balance uses the ∞-capable InfinityCell (lowering invalidates, ∞ leaves as-is...
System-wide toggle, lead-viewers, credit-balance edit, history pagination
- /credits/system-wide GET+PATCH (org credit-suspend), /credits/lead-viewers (VIEW_LEADS holders incl. grant-all) for the History member filter. - Credit-bala...
System-wide credit suspend, credit-balance invalidation, paginated history
- OrgLeadConfig (new ORG_LEAD_CONFIG table): org-wide 'System Wide' switch that suspends CREDIT-BASED lead auto-assignment (FFA unaffected); gated in acceptNe...
Split Lead Credits into Available/History/Manage Credits actions
Reorders the /leads top-right actions to: Add New Lead, Leads Available (→/leads/available, Bolt icon + live availability indicator, shown with Spend/Receive), ...
Inject Test Lead action on /leads/available (managers only)
Adds an 'Inject Test Lead' button beside Accept for each vendor/product, shown only to members with MANAGE_CREDITS. Opens a confirmation dialog, then POSTs to t...
Inject test lead + fix Manage-Credits list for grant-all admins
- New POST **************** (MANAGE_CREDITS): creates a synthetic 'Void > Test Lead' (John Doe / 555-555-5555 / noreply@<org base domain>) with requiresAssi...
Store original uploaded file key on LeadImport run
Adds SOURCE_FILE_KEY + SOURCE_FILE_CONTENT_TYPE columns so a run references the original file archived in MinIO (KamoInitializer adds the columns on next run).
Archive & download the original imported file
On Start Import the raw file is uploaded (best-effort) and its key passed to the import POST; Past Imports shows a Download button for runs with an archived fil...
Archive original file to MinIO + download endpoint
Injects MinIOStorageService; POST /source-file stores the raw upload in the private internal bucket; GET /{id}/source-file streams it back (org-checked); the ke...
Import Templates + Past Imports sub-tabs, auto-detect, re-import
- Sub-tab bar in LeadManualImportManager: Import Leads | Import Templates | Past Imports - LeadImportTemplateManager: template list/create/edit/delete + upload-...
Persist runs/records, template CRUD, header auto-detect & re-import
- LeadImportPersistenceService: header normalize+SHA3 fingerprint (ordered/unordered), mapping/row JSON round-trips, persist run + non-success records, templa...
Live availability indicator on the Lead Credits button
Mirror the NavPri Leads indicator on the /leads 'Lead Credits' action: a green/red status dot (green = a lead is acceptable now via FFA or credit, red = none) a...
Live NavPri lead alert — green/red dot, blink, fire popup, edge trim
- LeadAlertProvider (global, mounted at NavPri level): WS-driven /available-summary; drives all state - NavPri Leads icon: green dot (can accept) / red (cannot)...
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.