Seed Manage Compliance Requirements; announce member activation for the engine
MANAGE_COMPLIANCE_REQUIREMENTS (701) seeds from MANAGE_LEGAL_AND_COMPLIANCE; OVERRIDE_COMPLIANCE_GATE (702) deliberately unseeded (owner implicit). TeamMemberAc...
DocuSign Connect carries the org in its path and verifies that org's key first
The Connect address is public on the shared API host, which cannot tell orgs apart, so envelopes now send **************** (shared-lib VendorWebhookUrls). The l...
Record the Compliance Requirements tables (hand-applied 2026-11-07)
hr_compliance_requirement / _record / _record_event / _gate_override, hr_platform_library_item and **************** / library_edition - the exact IF NOT EXISTS ...
Svc_commission login (publish compliance.event.>), DocsService may hear compliance events
Compliance Requirements (2026-11-07): CommissionService announces commission.credited and **************** on core NATS; DocsService subscribes to compliance.ev...
Describe a settings change in your own words, and warn early when an SI is on pace to pass its budget (SIS11)
- POST **************** a Super Intelligence settings page sends its settings (what each is called, what values it takes, what it is now) and the person's wor...
SiSettingChange — the Super Intelligence setting change log (SIS11)
Declares si_setting_changes (kamoai-service **************** applied) so KamoInitializer can recreate it; kamoai-service reads and writes it JDBC only.
Compliance Requirements engine entities, Platform Library items, two rights (701-702)
hr_compliance_requirement / _record / _record_event (append-only) / _gate_override and hr_platform_library_item; LegalPackage gains library_item_uid + library_e...
Webhook Address panel on real data — who sets it up, and what signs updates
- Kamo-sent addresses (DocuSign, Mercury Network, First American, Plaid, Finicity): 'Nothing to set up here', with the address under Show the Address. - Lende...
Provider connections carry their webhook address, setup and signing field
From VendorWebhookUrls: webhookUrl (null when the vendor sends no updates), webhookSetup (LENDER_ENTERS / SENT_BY_KAMO) and webhookSigningFieldId, so the Partne...
Stock endpoints read and write the one stock count; market customers are scoped
- /{marketId}/inventory (settings) and /api/security/pos/inventory (pipeline Stock view) both go through StockService: org-scoped market list in one statement...
Order vendors for homeowners insurance, IRS transcripts, sanctions, fraud and SCRA
HOI: Matic, Covered (partner endpoints). TAX_TRANSCRIPT: Equifax IRS Tax Transcripts, Informative Research. SANCTIONS: LexisNexis Bridger Insight XG, ComplyAdva...
One stock count per product per place, shared by orders, the Stock view and settings
Retail had two stock systems: orders held and took from InventoryPool, while the market settings Inventory tab managed commerce_stock_levels, which no order eve...
Legal uploads use the Antivirus hold path instead of 'try again'
A requested-document upload that Antivirus holds (engines busy) no longer answers 503. A native PDF is its own rendition, so it is recorded at once, pinned by i...
VendorWebhookUrls, the public webhook address of every vendor that sends status updates
One base (https://api.kamouniverse.com) and the org in every path, matching each receiver: order vendors **************** Proof **************** DocuSign Connec...
Message-list rows carry antivirusRemoved / hasBlockedAttachment
The IMAP envelope fetch now names X-Kamo-Antivirus beside Message-ID (same HEADER.FIELDS fetch, no body read), and toEnvelope sets the removed count from remove...
Say which engine priced a quote, why a vendor quote locks at the vendor, and when AUS is simulated
- Live rate quote: a Priced by chip (the third-party engine, or Kamo's rate sheets), the engine's own plain reason when there is no rate (or the status's plai...
Visitor chat attachments carry scan{}; refusals name the file
The public chat widget's send answer and history rows now carry the same scan {status, family, outcome} the member frames do (verdict as the conversation's orga...
Webhook Address panel, and vendors' own field names
- A connected provider whose view carries a webhookUrl shows a Webhook Address box: the address with one-click Copy and a Copied confirmation, numbered setu...
Order vendors' webhook keys stored encrypted
Every catalogued webhookSecret is now a CONFIG_SECRET (encrypted, write-only). **************** cipher) gives a webhook verifier a detached copy with the keys d...
SI file reads answer a locked or still-checking file in plain words
Every downstream read (mail and SMS attachments, chat files, documents and versions, resumes, binders) goes through DownstreamErrors, so the mapping lives there...
Per-field saved secrets and provider notes in the connect form
- A second write-only secret (e.g. DocuSign's notification secret) says 'leave blank to keep the saved one' from the server's savedSecrets. - A provider can c...
Second write-only secrets; DocuSign Connect key stored encrypted
- CONFIG_SECRET catalog fields are encrypted into configJson on save, kept when left blank, never echoed: the list view and every change-log snapshot strip ...
A second write-only secret per connection (CONFIG_SECRET)
**************** keeps a second secret (e.g. a webhook signing key beside the API secret) ENCRYPTED in configJson. Adapters read it with **************** key, c...
Stamp a vendor on every credit pull so a reseller order saves
Connection.VENDOR is NOT NULL; a reseller key (Xactus, Credit Plus, MeridianLink, CBC Innovis, Factual Data) mapped to no ConnectionVendor, so the pull ran and ...
A reseller credit pull records a vendor instead of failing to save
Connection.VENDOR is NOT NULL, but CreditOrderService only stamped a vendor when the key was a direct bureau. Every reseller key (Xactus, Credit Plus, MeridianL...
Drop the duplicated dynamicRooms field (unblocks the build)
Two SIS commits each declared SiSectionDef.dynamicRooms with the same comment; tsc fails with "Duplicate identifier 'dynamicRooms'" (run 2314) and no kamo-inter...
Resource previews stream through the app instead of an unreachable MinIO link
KBService now hands out /api/kb/media/{id}/content as presignedUrl (it was a MinIO signature for the in-cluster host, which no browser can resolve). This adds t...
Resources upload to a real bucket and stream back through the app
The resource library has never stored a file. KbMediaService wrote to the constant bucket "kb" — two characters, below S3's three-character minimum — so minio-j...
Order vendors in the catalog — appraisal, title, flood, income, asset and identity
Twelve vendors the vendor-order service now has adapters for, each with its real credential form and sandbox/production addresses: - Appraisal: Mercury Network,...
Credit resellers on MISMO 2.4 with Test Connection; an eSign SPI with DocuSign and DocMagic eSign
Credit (mortgage/credit): - Every catalogued reseller (Xactus, Credit Plus, MeridianLink, CBC Innovis, Factual Data) now sends the MISMO 2.4 credit request th...
Closing documents from DocMagic and Docutech; real eClose vendor URLs and fields
CLOSING_DOCS offers DocMagic and Docutech. Proof and DocuSign Notary get their published hosts (Proof production/Fairfax, DocuSign's OAuth hosts) and real crede...
Relay every pricing engine's quote, not only Kamo's native one
The borrower pricing quote returned EXTERNAL_VENDOR_PENDING for any PRICING_PPE engine other than Kamo's own. MLOSPricingService now dispatches to the org's eng...
Catalog-driven Connected Services
The Partners tab's integrations are now driven by SecurityService's vendor catalog instead of a hardcoded category list and a free-text vendor key. - Categorie...
Align with the live SecurityService API — 'switching on' while scanning is off, member names on threat rows
API_LIVE.md: overview.protected=false means scanning is not enabled yet, so the Center shows a calm 'Antivirus is switching on' instead of 'catching up' (which ...
Type the Safety tips' articles as help article paths (unblocks the build)
HelpArticleLink takes a HelpArticlePath; the record widened every entry to string, which failed the type check and stopped every kamo-internal deploy since SIS9...
Credit resellers on the MISMO 2.4 login fields; DocuSign and DocMagic eSign in the catalog
- CREDIT: every reseller (Xactus, Credit Plus, MeridianLink, CBC Innovis, Factual Data) takes the MISMO 2.4 credit request with the account login on REQUEST, ...
Catalog-driven provider connections, primary vendor, Test Connection
- GET **************** every vendor category, its owning runtime and the vendors a lender can connect, with their forms. - Creating/updating a connection vali...
Catalog Desktop Underwriter, Loan Product Advisor, Optimal Blue and Polly
AUS: DU (Fannie Mae Desktop Underwriter) and LP (Freddie Mac Loan Product Advisor, alias LPA), keyed to the AusKind/AusSourceLabel the AUS engine already uses. ...
A subscription can only be ordered or priced from a catalog on offer to the org
createOrder and calculatePrice looked a plan up by id alone, so a member of one tenant could order, or read the pricing of, another tenant's plan. A plan is now...
Turn on scanning of SecurityService's uploads — kamowsantivirus is 2/2 Ready
Orders by market, walk-in sales, and a working Retail pipeline
- Orders tab: scoped to the market; customer with photo or Walk-In Sale, real statuses with counts, bulk Mark Paid / Cancel that only offer moves the server t...
Market-scoped orders, customers, carts, drafts and shipments; cart and draft conversion
- GET /pos/orders takes ?marketId=; GET /pos/orders/customers lists a Retail market's customers from its orders, with walk-in sales counted apart. - Carts, dr...
A lender picks the primary vendor per category
MortgageProviderConfig gains is_primary (BOOL DEFAULT FALSE; the column was added by hand on production first). resolvePrimary now serves the enabled primary ro...
Move a rental asset to another market; a blank rate is not a zero rate
The asset page could not change an asset's market (the server supports it now) and turned every blank rate into 0, so "not offered by the hour" and "free by the...
Unblock the i18n guard on the Record a Delivery dialog
check-i18n-keys resolved t("stillToCome", {count}) in ReceiveDialogBody against the lines namespace ("Still to Come", no placeholder) and failed every kamo-inte...
A vendor catalog the Partners tab and every adapter share
Adds **************** the single list of vendors Kamo has an explicit integration for per VendorCategory, each with its credential form (VendorField), default s...
Orders belong to a market; walk-in sales, partial refunds, real cart and draft conversion
- An order's engagement now carries the Retail market it was sold in (named, or the org's only one), and the purchasing account. A converted quote stamps its ...
Real work orders and subscriptions per market — dispatch, customer accounts, live subscriptions, cancel at period end
Service (work orders): - the grid reads its own market's jobs (plus older jobs with no market), shows the customer, the technician (member chip, never an id),...
Market-scoped work orders and subscriptions; dispatch and customer endpoints
- GET **************** lists one market's work orders (plus those with no market) - PUT /service-jobs/{uid}/customer files a job under an account or takes it ...
Market on the engagement, job numbers, dispatch, customer accounts, market-scoped lists
Service work orders: - createJob stores the chosen market on Engagement.market (it only picked the engagement type before) and the customer account on Engagem...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
