What-If Studio as 3rd form sub-tab; sandbox stacked to fit form column
Header KPIs show reliably (relax gate + wrap header row); swap output columns, **************** on left
Cap concurrent uploads (queue, max 3)
Multi-file upload fired every selected file at once, and the burst of concurrent server-side resizes OOM'd the image service. Queue the uploads and run at most ...
Outputs panel 2-col (Eligibility left, short menus right); drop KPIs/meters now in header
Bump memory to 2Gi (headroom for concurrent ffmpeg)
With the resize semaphore in place, give the pod room for the JVM plus up to 2 concurrent ffmpeg image decodes so multi-file wallpaper uploads no longer OOMKill...
Mortgage KPI + LTV/DTI/Complete summary in page header (all tabs, residential-mortgage only)
Bound concurrent ffmpeg to prevent OOM under upload bursts
A multi-file upload fires all files at once; each ffmpeg decode allocates the full uncompressed frame, so N concurrent large images blew past the pod's memory l...
Split fields into Mortgage Details / Property Address sub-tabs; drop card title
What-If overrides beside live comparison table; remove dead LeadScenarioWorkspace
Fields show as labels in view mode, inputs in edit mode; flagged state dropdown
Rebuild to pick up shared-lib mortgage fields (LeadClaimMortgage +6)
Downscale-only (never upscale small images)
**************** scaled small images UP to fill the box (800x600 -> 1440x1080). Compute a concrete downscale factor capped at 1.0 from the probed dimensions ins...
Harden ffmpeg resize (probe safety, dim caps, bomb guard)
Adversarial-review follow-ups on the ffmpeg rewrite: - probeDimensions redirects ffprobe output to a file and calls waitFor() FIRST (destroyForcibly on timeou...
Fail the upload if resize fails (no full-size fallback)
Reverts the store-original fallback: if ConversionService cannot resize the image, return 422 instead of storing the full-size original (a huge image would then...
Resize backgrounds via ffmpeg subprocess (crash-isolated)
ImageIO + webp-imageio could native-crash the JVM (SIGSEGV in libwebp-imageio, UpsampleBgraLinePair_SSE2) on certain WebP inputs, taking the whole ConversionSer...
Mortgage Details tab wiring + Contact Info rename; remove inline mortgage block
Preview org photos in "Organization" mode; 24MB uploads
- Stage now previews the org's theme photos (config.json backgroundImageCount -> img/bg, like OrgSlideshowLayer) when Source = Organization; the filmstrip (...
Fall back to the original image when resize fails
ConversionService can native-crash (libwebp-imageio SIGSEGV) or be unavailable, which made every member wallpaper upload fail ("Failed to process image" -> 500)...
Coerce deriveRelevance purpose to LoanPurpose | null
scenarioFromLeadFields' loanPurpose is LoanPurpose | null | undefined, but Relevance.purpose is LoanPurpose | null — the possible undefined failed the prod type...
Stage preview scrolls in-flow + half height
Per feedback: the preview header no longer sticks/floats over the form as you scroll (removed the sticky pin, plus its now-unused prop + media query) and its he...
Background watermark on available/history/credits, centered on content card
Adds <BackgroundWatermark> to the shared LeadsCreditLayout content card (behind the table/list, above it via z-index) so /leads/available, /leads/history, and /...
Stop duplicating the memberId query in the GET proxy
The GET list proxy hand-appended ?memberId= to the apiPath, but forwardToApi already re-appends the browser's query string — producing ?memberId=X?memberId=X, w...
Add 6 persisted mortgage fields (debts, taxes, insurance, HOA, current payment, borrower age)
Center calendar watermark to container; move selector under logos
- BackgroundWatermark: make ThemeLogo a direct flex child of the container-filling box so sizePercent (e.g. /calendar 60%) is relative to the positioned con...
Rebuild to pick up shared-lib Organization.bgWatermark
No source change. Triggers CI to re-clone kamo-shared-library main (now carrying the bg_watermark org column added in bc45b97) so the org GET/PUT serialize and ...
Org Background Watermark setting (None/Full/Simple)
Adds a "Background Watermark" radio field to Settings > Essential > behavior-labeling > Branding that controls which logo (or none) renders as the faint backgro...
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.
