What's new
Recent user-visible changes to the Owner and Tenant Portals. Internal changes — tests, infrastructure, and tooling — are not listed. This page is generated automatically from shipped work.
September 11, 2026
- repair disabled expense button theme token #5871
September 10, 2026
- hide fully-reversed journal entry pairs in GL account detail report #5875
- add maintenance tickets as a 4th global-search entity type #5886
- Add Archived chip/sub-view to Maintenance List view #5856
- warn inline when the deposit-holding checkbox disagrees with the org's GL deposit default #5858
- allow operating accounts for the deposit cash flow #5857
- bind maintenance List/Kanban toggle clicks unconditionally at setup #5850
September 9, 2026
- add a List view alongside Kanban for maintenance tickets, with a status multi-filter #5842
- capitalize repair spend from 1700 into 1500 via capitalization projects #5807
- add mass update (assignee/due date/priority/status) and bulk delete to Tasks list #5833
- move Void and Retry/Create invoice into a row-actions-menu on the deposit ledger #5825
- add deposit-collection Zoho invoice opt-out and a retry/force-create action for failed or skipped invoices #5822
- rewrite Tenant Guide security deposit section for the live Security Deposits page #5797
September 8, 2026
- GL report tables get a scroll floor + visible scroll-hint at narrow widths #5785
- fix Tenant Billing tab save 400ing on every attempt #5769
- fix GL report toolbar wrap by moving .field-row-toolbar into style.css, not admin.css #5765
- per-org configurable rent-ledger reminder/overdue notices for tenants #5769
- give the GL report filter-row toolbar its own line #5765
September 7, 2026
- widen the deferrals-banner window past loadProfitLoss's new property-filter bulk #5716
- replace journal entry owner/property <select> with search-as-you-type combobox #5738
- label GL drill-down balance as current, not the report's period #5741
- exclude pending deposit charges from stated deposit amount display #5736
- Security Deposits pending/settled tracking + Make payment button #5713
- restore Make payment button on the Rent & Invoices ledger #5706
- restore late-fee dispute action in the unified rent ledger #5687
- add per-line owner/property/description to the journal entry form #5697
- fix Copy application link always falling back to the rentals page #5694
- fix journal entry entity name showing raw UUID on cold deep-link load #5674
- remove duplicate payment-receipts card from tenant Documents page #5664
- unify Rent & Invoices ledger with per-row Invoice PDF and deep links #5661
September 6, 2026
- skip the redundant possible-duplicate-property re-check on the Save immediately following Duplicate-as-new-scenario #5641
- Deep-link deposit-lifecycle tenant notifications to the deposit card #5626
- Saved/Owned list Cap Rate/CoC/Cash Flow now recompute live on current-rent basis #5602
- wire property-level listing description into load and save #5578
- fix Charge Types search box matching every row instead of filtering #5576
- generalize GL-incomplete banner copy beyond 'rent ledger' #5562
- exclude down-payment toggle from purchase-method-lock CSS rule #5514
September 5, 2026
- keep down-payment $/% toggle usable in locked (Own/Sell/Sold) phase #5514
- extend Own-phase sensitivity grid to sell/sold phases #5451
- wire document-scan usage into the Owner Portal Usage and Charges page #2430
- mount docAiCard key points in document detail, add AI scan status row and upload Property-wide checkbox #5438
- add Settings > Money nav entry for Unposted GL Entries #5452
- fold HOA fees into multi-year projections, Compare, Dashboard and exports #5425
- fix GET /api/units/:id/documents to include property-wide documents #5434
- sync sqft above/below-grade split from Rent Roll in Own phase #5401
- loans report reads the schedule row current as of today, not the last one #5397
September 4, 2026
- make incoming-lease pill/button ignore the 60-day rent horizon for display only #2955
- Own-phase Sensitivity varies rent x expenses, not purchase price #5366
- add the missing search box to the Property Documents filter row #4256
- scroll the lease record shared message into view on error #5357
- match Origination modal field order to Refinance (Lender/Loan ID/Product before Amount/Rate/Term/Amortization/Balloon) #3797
- sync Maintenance New Request lease dropdown with the switcher #5328
- fix mislabeled duplicate-property confirm button during an edit #5300
- fix Maintenance Hours holiday checklist wiping after Save #5316
- landlord signature-region preview assumes 1 signer, not 3 #5308
September 3, 2026
- open the repair-detail modal from a copied ?saved=&view=repair&repairId= permalink #2720
- server-paged lists gate the search toolbar on searchLabel, not searchFields #5286
- Reset on the Loans and Collections Aging reports now clears the search box too #5277
- add Rental Listings nav entries (property page card + Management dropdown) #5269
- sync garage fields from Rent Roll and un-hide Physical characteristics/add Rentals link in Own phase #4442
- void-status manual invoice frees deposit ledger row for re-invoicing #5220
- hide empty Units and Rent inputs card shells on Own-phase Building tab #4442
- tenant maintenance ticket view shows 'Property' for property-wide location #5209
- thread leaseId into all three tenant deposit routes #5211
- repair the red required check --'s assertion pinned an argument list #5135
- style the prospect delete-failure message as a visible error, not muted gray text #5194
September 2, 2026
- auto-create and pair a tenant's Zoho Payments customer at autopay enrollment #5160
- show a loading skeleton on tenant dashboard inspection cards #5135
- fix + New inspection defaulting to Prospective Tenant type #5131
- restore reparented Rent Roll more-menu to its home DOM position on outside-click close, not just toggle-button close #5072
- expose tenant payment instructions editing regardless of provider #5079
- fix impersonation notice rendering as a narrow sidebar block #5074
- rg next surfaces settled-red closing PRs as repair, not omission #5053
- wire the tenant portal to read a PM-started move-out inspection #4727
- add includeSold opt-in to /api/units so sold properties keep real units for comps #5022
- merge Vendor documents + Linked documents into one widget card #4277
- confirm before sending a portal invite, add Resend invite for pending rows #5004
- fix remaining blank Actual Rent / Monthly Rent call sites #4959
September 1, 2026
- add collapsed move-in discount section to lease activation modal #4989
- permanent, repeatable Add-from-templates entry point on owned Tasks tab #4977
- fix lease record Add tenant / New tenant form layout #4958
- move "Late fees charged" link from Tenant Defaults into Reports #4947
- fix Return deposit wizard silently dropping existing ledger deductions #4908
- restore display text on the compare picker and asset item picker comboboxes #4893
- Tier 2 walkthrough recap — read API + Owner Portal panel #4685
- enqueue Tier 2 video-analysis job on move-out inspection submit #4685
- Gemini Files API client for Tier 2 video damage analysis #4685
- fix deposit ledger running balance double-crediting on holdback release/convert #4836
- let a PM start/fill/submit a move-in inspection from the Owner Portal #4821
August 31, 2026
- render a real applicant back-reference on the prospect detail page #4706
- allow a PM to submit a move-in inspection with a PM signature #4792
- pre-author action-btn pagination markup for Late Fee Overrides + Deposit Interest Rate History #4811
- let a super-admin tell a working platform key from a merely-present one #4799
- let a tenant READ a PM-started move-out inspection, without ever creating one #4727
- resolve real names for "Saved by" instead of raw email #4764
- replace email-sweep with in-app carrying-cost date tasks #4641
- add applicant edit/add/remove to Application Detail page #4703
- two-portal move-inspection media capture (upload + in-browser recording) #4686
- drop duplicate insurance-renewal/property-tax-due date columns #4710
- add Property Renewals & Expenses tab #4654
- wire Workflow Rules evaluator into application submit + status-change, retire hardcoded owner alert #4644
August 30, 2026
- add Comps to the property page More menu #4634
- hide the settings/syndication cards above the Edit Listing form #4573
- add Contact button/modal to public listings page, gate Powered-by badge, fix footer help link #4623
- add DELETE /api/prospects/:id with a delete button on the prospect detail page #4570
- show approval-emailed status on the Applications list #4591
- listings table row-level Unpublish, reviving the listing-level unpublish endpoints #4575
- add Accepting applications only filter to public listings page #4572
- always-visible back-to-listings button on the Edit Listing card #4573
- switch maintenance board ownership facets to OR when both active #4539
- fix URL/content desync on CapEx & RUL, CapEx Accrual History, and Repair Duration & Aging property links #4246
August 29, 2026
- time-based Workflow Rules -- clocks, hourly sweep, and the 4-step builder #4309
- style public listings URL as a link+copy box, fix .catch() gap in property select #4480
- re-mint the scoped JWT per use in integration suites instead of holding one 60-second token #4482
- fix CapEx Accrual History and Duration & Aging stat strips wrapping 3+1 #4441
- Loan tab mobile fixes — Record refinance button no longer overflows viewport #4443
- collapse Leases/Tenants/Prospective tenants/Intake Codes tables to mobile cards #4439
- Drop raw repair UUID from Punch list badge, fix Assets tab count flash #4452
- fix silent task-creation failure on internal repair assignment #2373
- fix real href gap on Sold Properties list page (missed by) #4246
- add missing /rent/ path segment to Rental Listings quick-link URL #4408
- auto-create draft listing on buy transition + accepting-applications toggle + backfill #4389
- applicant-to-prospect linking on 'unavailable' denial #4374
August 28, 2026
- fire workflow event rules from ticket write paths #4306
- add Rentals > Comps sub-tab with phase-aware rent/sale comp sourcing #4327
- fix undefined CSS custom properties in Maintenance Hours UI #4315
- Maintenance SLA business-hours count mode + holiday exclusions #4315
- move Closing Task checklist off Purchase Info onto its own Tasks tab #4328
- surface isUtility as a visible Utility badge on Closing Task templates #4319
- fix dead sort buttons and add Owned Properties phase filter + pagination #4314
- reorganize property-detail nav into primary tabs + More menu, add header inline-edit for address/name, move manager/owner/entity card to Building tab #4320
- show Search Watch matches as themselves, not as unknown-sender emails #4301
- rent roll shows future-started active leases as upcoming, not vacant #4285
August 27, 2026
- reorganize repair item modal into 4 tabs, add read-only linked Vendor Bills #4277
- stop the Map view mislabeling closed/owned properties by pipeline status #4276
- exclude closed/owned properties from the Dashboard pipeline status view #4272
- reject $0/mo as a rent-bump amount on both client and server #4265
- link Property and Tenant(s) cells in the Units table to their records #4253
- rent-roll-portfolio report a signed future lease as signed, not vacant #4261
- add delete button with confirmation to lease record Documents card #4251
- fix Property filter dropdown reading data.analyses off a bare-array response #4055
- add worker-playbook reminder to gate "saved to project files" on a confirmed submit #4194
- add Add tenant button to the lease record Tenants section #4211
- fix seeded W-9 org signature box height (17pt -> 26pt) to clear computeSignatureSlotLayout's 23.05pt floor #2815
- fix 404 on paper/renewal lease routes by using the real ownerRouter mount prefix #4183
- rent invoice lead time (org default + per-lease override) #4177
- surface commitBlockedByOccupancyConflict in tenant-portal upload drawers #4126
August 26, 2026
- call out the tenant portal login form's Property Manager Code field #4146
- add confirm-classification banner to bank account detail card #4154
- rename Legal Entity/Owner to Operating Entity/Property Owner, fix backwards holds-title copy, make Operating Entity editable on Overview #4141
- reflow the remote commit message to match git's %s before comparing subjects #4117
- fix owner-created maintenance requests 404ing on a tenant with a real portal account #3437
- fix blank Monthly Rent / Security Deposit / Pet Deposit on lease record #4109
- build Owner Portal frontend for the Loans report #3804
- Owner Portal screen to review and correct the Return Grid -> Zoho Books GL account mapping #3699
- update contrastPairs expected sense-on-tint count for .ct-global-notice #3507
- Title Case the deposit ledger CSV export preamble title #4028
August 25, 2026
- disable the dead trust-per-owner bank account option until ships an owner picker #3689
- fix DOM-race that could discard a saved insurer vendor id #4009
- make down-payment $ mode toggle idempotent #3975
- add create-tenant flow to lease record's Add-tenant form #3979
- add Give notice UI to the lease record page #3957
- detect Zoho Books OAuth scope errors distinctly and stop them aborting a multi-org sweep #3702
- make analysis-to-owned conversion a 1:1 canonical copy #3835
- mirror the owned-phase financing fields into the analysis phase #3832
- paidCash becomes a real boolean in the analysis phase #3833
- analysis phase gains loanTermYears + amortizationYears #3830
- bind the shared deposit-detail mapper into every toApiLease eval sandbox #3625
- store the down payment in dollars, not as a percent #3831
- populate the Loans report Down Payment (plus lender/product/balloon) from the acquisition record #3789
- backend for the Loans report — list/export API, 6 of 8 approved enhancements #3789
- audit every report and KPI widget for the wrong-field class #3764
- serialize the live-DB integration job so parallel PRs stop wedging each other #3707
August 24, 2026
- property/asset opening balances (preview + confirm posting) #3460
- accounting periods screen (Settings > Money) #3538
- Property Owners setup screen + property-record Owner dropdown #3490
- GL cash-basis report (Owner Portal, toggle on the P&L screen) #3463
- lease create/update write path dual-writes the leases cents columns #3475
- GL trial balance, P&L and balance sheet (Owner Portal reports) #3462
August 23, 2026
- Owner Portal can create a maintenance request on a tenant's behalf #3434
- dashboard overdue-rent widget now reads the rent ledger, matching Collections Aging #3423
- add currently-held deposits summary to the deposit GL report #3419
- deposits queue report showed deposit amounts 100x too large #3417
- add Zoho Books reconciliation screen (Owner Portal) #3371
- add a working Discard draft action to the lease record page #3393
- rewire Collections Aging onto the rent ledger + add the org Rent GL report #3210
- move Export to CSV out of the Owned nav menu onto the Owned properties list toolbar #3383
- Zoho Books push path for rent ledger (backend) #3211
- retry the application-detail permalink load once auth lands #3347
- add Rent ledger card to the lease record #3228
- link Showings attended rows back to the originating showing #3182
- ledger-anchored late fee accrual and reversal #3208
- rent ledger payments, credits, write-offs and reversals #3207
- anchor a late fee to a rent-ledger charge, not just an invoice #3208
- generate one idempotent rent charge per lease per period #3206
- add Excel + PDF export to the Collections Aging report #3260
August 22, 2026
- replace native window.confirm() with showGenericConfirmModal on the unlink-showing action #3182
- applicant detail gains a Showings attended list #3182
- Move Closing Task templates out of Organization Settings into its own Settings menu option #3264
- property page gains a Prospective tenants mirror view #3185
- add missing Excel/PDF export buttons for CapEx & RUL, Excel buttons for CapEx Accruals, Leases Expiring, Deposits Queue #3129
- keep Rent Roll first in the Reports menu, move Dashboards to the bottom #3129
- break dashboard-buried reports out to Reports menu, regroup into 3 sections #3129
- applicant auto-match on prospect email blur #3180
- add Department Group assignment to Property Managers + new Maintenance field, move both to Overview #3160
- Vendor Spend report with a Group-by Vendor|Category toggle #3172
- showing-assignment and prospect follow-up task sync #3181
- CSV property export shows department group name when the only PM is a group #3162
- Global Prospective Tenants directory, detail page, and Add-prospect flow #3184
- add PM/Maintenance group fields on properties, move to Overview tab #3160
- add Department Groups CRUD API and Settings screen #3159
- Event header + relational prospect table for rental/sale showings #3179
- Collections Aging report — overdue tenant balances bucketed by age #3173
- Lease Renewal Outcomes report (derived, no new tables) #3174
- End-Lease endpoint accepts either body casing, so terminate works and expire keeps the chosen move-out date #3164
- Reorganize Properties menu, move Owned create paths, add CSV export #3142
- Closing Task property tab (master-task cards, grouped checklist, one-off add) #3092
- Accepted Offer Closing Task picker modal #3091
- Closing Task templates Settings page (CRUD + seed list) #3090
August 21, 2026
- add portfolio-wide Move Inspections report page #2986
- fix running-balance label overlapping its value on deposit ledger statement PDF #3059
- reword deposit-deadline comment to stop a stray 'try' substring from shadowing the real try block #3080
- eagerly create deposit-return-deadline PM task from End-Lease and notice-wizard, not just the nightly sweep #3080
- capture return reference and returned-from account on deposit returns #3067
- fix null actor email in deposit ledger holdback release/convert #3057
- cut deposit wizard/letter read path over to the ledger #2928
- remove dead lease-drawer notice code (_ldNotice*) #2943
- replace Add Owned Property modal with a 4-step wizard (Basics/Units/Tenants/Review) #3012
- add custom holdbacks -- create, release, convert to deduction #2923
- extend POST /api/analyses/own to accept unitRows and tenants for the Property Create Wizard #3011
- redesign rent-roll row action area to support starting an incoming lease mid-turnover #2955
- link a completed repair to a deposit deduction #2925
- owner-side move-out inspection UI (lease card + fill-out modal) + auto-start on move-out date #2902
- add reusable script to remove an orphaned document-templates blob #2880
- resolve intake co-tenants from the table, not the current page #2968
- extend deposit-deadline sweep to flag overdue pending holdbacks #2924
- add Document Type and Uploaded By columns to repair Vendor Documents table #2792
- print-anytime per-lease deposit ledger PDF #2926
- Portfolio-wide deposit ledger GL report page (Owner Portal > Reports) #2927
- add Ledger tab to the Deposit popup with entry list, running balance, and manual add-entry form #2922
August 20, 2026
- clone seeded app-default templates into the org's own copy on edit #2886
- collapse send-notice picker to template/upload, add template picker, drop Unverified wording #2936
- Vendor W-9 default template admin screen (app-level default box editor) #2845
- move Intake Submissions from the Settings menu to the Tasks menu #2890
- make Primary tenant and Emergency contact fully data-driven #2901
- remove admin gating from every item in the Tasks menu #2898
- remove remit-to/maintenance-email/emergency-phone from the new-owner letter #2877
- seed vendor W-9 default template on org creation/approval + backfill existing orgs #2846
- submission detail convert-to-tenant + lease #2743
- mobile stacked-card layout for the Zoho Books lease-pairing list #2831
- gate box editor Signer dropdown + signature preview by document type #2815
- combined bill view/edit modal with payment history; disable Mark paid once paid in full #2688
- punch list tracked-detail, mobile card layout, and per-asset condition overrides #2776
- carry repair status/due-date/vendor into the punch-list response #2776
- intake form builder (backend + frontend) with per-property intake link generation #2744
- keep Visit Type on entry-notice modal dismiss, show unresolved-notice banner #2727
- give showings/visits a shareable ?saved=<id>&showing=<id> URL #2692
- add Priority select control to tasks, matching repairs #2706
August 19, 2026
- repair the project-instructions history chain and make a new break fail loudly #2642
- bound the Playwright system-deps install step so a stalled apt mirror can't eat the whole job timeout #2724
- add real Priority control to repair items, fix priority/timeframe conflation in the Repairs sub-tab #2705
- add org-wide Repairs sub-tab under Tasks #2719
- shared, URL-routable repair-detail modal (?view=repair&repairId=) #2720
- Owner Portal message templates read 'Default', not 'Using Return Grid default' #2525
- write and read ?ticketId= for the maintenance detail permalink #2691
- fetch and render a vendor's repair orders in the New Bill Linked repair picker #2678
- track vendor bill payments as a ledger, fix partial-payment status bug #2558
August 18, 2026
- add dollar down-payment input toggle #2491
- Move Bill approvals card out of the 3-card .defaults-grid #2013
- remove disclaimer banners from generated notice PDFs #2516
August 17, 2026
- show assignment confirmation and linked-task reference on repair items #2373
- hide the Assumption badge on Purchase Info and Loan deal-terms fields once a property is locked (Own/Sell/Sold) #2486
- vendor bills — list/detail/create/edit/mark-paid, document scanner autofill, discrepancy review #1972
- add Repairs tab to vendor profile #1971
- wire the vendor directory into the repair assignee picker #2265
- repair-item photos transfer as references, never byte copies #2223
- repair asset replacement lifecycle #2465
- Serve the Owner Portal shell at /login #2374
- add bordered Properties list action #2324
- confirm internal repair task assignment #2373
- add vendor repair documents #1940
- harden against literal backslash-n in commit messages before Fixes trailers #2367
- Extract shared property asset field handling #2320
- add checks:read permission and fail loudly on check-suites read errors #2346
- reuse lease-record role label on tenant profile Leases tab #2281
- preserve independent maintenance action completion #2247
- create a repair from a tenant maintenance request #2163
- schedule a repair — internal assignment, found/completed photos, table-driven list #1940
- Label non-signing occupants on lease records #2178
- Render photo errors beside their widgets #2228
- style the message templates table/button, fix stuck-in-editor navigation #2227
August 16, 2026
- move Upcoming Maintenance out of the Own dashboard into the Reports menu #2156
- Add maintenance user service tags #1942
- sync the in-visit repairs log into real repair items on save #1939
- create a real repair item when an inspection condition is flagged #1939
- Use friendly Asset Edit-item validation errors #2205
- lift bundle builder out of hidden Documents view #1793
- adopt the showing's existing visit instead of creating a rival #1938
- fold Inventory nav into Management dropdown, promote Manage locations to a top-of-page button #2184
- Owner Portal nav regroup -- Management + Vendors menus, Reports regrouped #1981
- correct upcoming maintenance Undo flow #2087
- restore tenants directory search #2108
- paginate property maintenance overrides #2116
August 15, 2026
- use saved Building Systems cost in CapEx forecast #2063
- redesign notice fan-out modal #1892
- surface integration cleanup delete failures #1931
- Translate Asset Replace validation errors #1899
- collapse e-sign action bar to one send control #1647
- honor fan-out notice hidden state #1884
- Remove template-level default settings #1742
- disable unavailable fanout notice source modes #1883
- honor owner CapEx lifespan overrides #1848
- Remove cash receipt banner from Deposit card #1690
- attach portal invitees to lease tenants #1814
- resolve Visit type dropdown from the analysis's real lifecycle phase #1697
- one-tap mark-done for maintenance reminders #1636
- show signer roster and bundle components in send-lease review step #1703
August 14, 2026
- age appliance replacement cost forward from owner-paid price #1672
- legally-set inspections (elevator, backflow preventer, sprinkler) -- owner-entered interval, prefilled, unconfirmed until confirmed #1635
- Add Upcoming Maintenance report (Own dashboard) #1636
- Fix deposit modal not pre-filling existing deposit data #1759
- remove View Lease anchor underline #1719
- replace e-sign native dialogs #1582
- bound Documents > Issued to a page size instead of loading every row #1680
- three-layer maintenance interval system (platform -> organization -> property) #1633
- Add destructive styling to Delete buttons in saved analyses tables #1723
- Style View Lease as an action button #1685
- Scope repair targets to their property #1583
- Include signer-marked guarantors in e-sign envelopes #1650
- surface jurisdiction/entry-notice-hours lookup in ad-hoc inspection modal #1683
- Prefer catalog override labels in repair sync messages #1666
- Change View Lease link to proper button #1685
- allow ad-hoc inspection Visits, gated by a notice acknowledgment #1593
- add explicit View lease link to tenant Leases tab #1677
- Change garage type field to dropdown with custom value support #1668
August 13, 2026
- add date-range default, search, and paging to Late fees charged ledger #1559
- make IRR selling cost an analysis assumption #1437
- refresh lease deposit summary after drawer save #1621
- Make tenant names clickable links in leases list table #1664
- expand maintenance board search #1620
- add settings list search #1577
- keep lease drawer in sync with saved deposit #1585
- Add Edit lease inline form on the lease record page #1561
- add lease list paging controls, refs #1572
- format lease deposit timestamps, refs #1573
- link Tenant Directory names to tenant records, refs #1569
- Fix Property Rentals tab flashing false 0 units / 0% occupancy while loading #1575
- add Inspections Portfolio search and filters, refs #1567
- classify transient Zoho failures (401/429/Access Denied) separately from scope errors #1542
- Refresh repair-items visit ID scope comment #1548
- add lease activation invoice choices #1424
- rebuild Zoho Books Pairing as one lease-driven list with search, filters and paging #1553
- Extract repair creation form into standalone popup with appliance linkage #1550
August 12, 2026
- convert e-sign block to delegated-action pattern #1522
- move send-for-signature block off lease drawer onto lease record #1426
- Replace window.confirm with showGenericConfirmModal for lease activation #1528
- Create a lease as a draft on the record page, not the drawer #1505
- expose ruleNoticeThenRemit so Florida notice button is reachable without stored deductions #826
- add ZohoBooks.contacts.READ to connect scope, surface scope errors properly #1504
- display rent control warning after rent bump #903
- create activation invoices (security deposit + prorated rent) at lease commit #1424
- applyRenewal() — three routes to finish a lease renewal #1429
- add the punch-list UI surface (view + convert-to-repair-item) #1306
- format date-only deposit fields without timezone conversion #1498
- flag scheduled future rent changes on Monthly Rent card #1475
- activate lease confirmation and copy on the live record #1412
- fix Tenants sub-tab badge count mismatch #1495
- manual lease activation now commits through commitLease() #1421
- rename tenant-portal documentTypeLabel to fix [object Object] badge #1493
- wire lease drawer edit-mode trigger for existing leases #826
- Show Unverified/AI-researched badge on owner-facing jurisdiction rule hints #1405
- add regression coverage locking the mid-turnover rent invariant #1454
- surface visit-linked documents on Building Systems cards #1304
- fix serve-a-notice fan-out tenant eligibility #1439
- Remove dead edit-mode lease drawer code left by #1374
- Renewals form on the lease record — new end date or M2M, new rent, same lease #1428
- Property Rentals > Leases sub-tab is still a stub #1415
- Market rent is editable inline but missing from Edit details form #1425
- Market-rent freshness pill must say Unverified, not Set by you #1416
- A future-dated rent change is applied immediately #1431
- multiple scenarios per property + comparison view #1309
- market-rent badge says Unverified, not Set by you #1416
- link visit documents to every asset they describe #1304
August 11, 2026
- reset Calculator form when the new-analysis chooser opens #1410
- Owner Portal pairing screen for Zoho Books customers to leases #1406
- Auto find-or-create Zoho Books customer on lease activation #1407
- Add active-date filter to lease resolution, refuse to guess on ambiguous match #1404
- Move Zoho customer-to-lease mapping onto the lease with one resolver #1401
- Make unmatched/failed Zoho invoice events retryable #1402
- rename Showings to Visits in owner guide #1397
- Add visible Unverified badge for AI-researched jurisdictional rules #1055
- one tenant-role default rule in both add-tenant paths #1344
- add printable rent roll report #1342
- fix ReferenceError in GET /api/leases/:id/deposit (leaseId -> lease.id) #1361
- add property tenant popup #1337
- fire Tenant Defaults fetches on deep-link mount, wire up Deposits section #1163
- surface the Unverified starting point badge in the fan-out Serve-a-notice modal #1118
- move lease lifecycle to record page #1336
- surface the four notice types as Unverified starting points, all 51 jurisdictions #1118
- Fall back to lease end date for under-notice rows #1350
- render notice days without rule metadata #1348
- keep saved= in the URL when routing into a saved property #1355
- backfill units rows from saved unitRows/numUnits for existing analyses #1283
- unify org and property units tables #1333
- rename Rent Roll tab to Rentals with Units/Leases/Tenants sub-tabs and counts #1332
- add lease type to new lease drawer #1320
- Surface applicant portal access expiry #1257
- Explain external payment provider restriction #1278
- author jurisdiction-invariant body prose for the four notice types #1118
August 10, 2026
- wait for Owner Settings nav hydration #1210
- gate Rent Roll mutations by lifecycle phase #1261
- audit every lease consumer against draft status before any draft lease is seeded #1285
- add 'generated' notice source mode for Return-Grid-rendered notices #1275
- tenant deposit objection recording (Fla. Stat. 83.49(3)) #1200
- metric-neutrality regression harness over real saved analyses #1280
- add priority ordering to the Legal Rules review queue (Part 3) #1162
- Warn when a non-internal org resolves to unverified jurisdiction rules #1061
- gate activate() against the Rent Roll phase/public-view bypass #1248
- nav redesign -- Settings gear menu grouped into 4 sections, More-menu overflow for Reports/Inspections/Leases/Units/Tenants, collapsing search at 1080px, hide wordmark at 1180px #1165
- fall back when legal-rule filter RPC is unavailable #1160
- add pagination to owner portal lists #1236
- Admin Legal Rules readability -- detail popup, wrapping citation, sign-off state #1158
- preserve Zoho save messages through refresh failures #1232
- require explicit confirm before issuing a notice with no box layout #1211
- warn fan-out notice layout fallbacks #1216
- enforce pet deposit restrictions, cash receipt requirement, and deposit interest rate source rules #1204
- warn when a notice template has no box layout, at upload and at serve #1170
- validate notice-to-vacate termination date against jurisdiction rule #1044
- split Florida deposit notice and remittance flow #826
- finalize inspection entry notice review metadata #1062
- disable fan-out notice types with no template on file #1155
- label rules with no statutory deadline #1161
- add timeout and retry to late-fee and deposit-interest settings loads #1163
- source Legal Rules filter dropdowns from the whole table, not page 1 #1160
- surface proof of service on the Issued documents list #1110
- run both manual and Zoho late-fee scans for mixed-mode orgs #1020
- verify late fees, notices, liable-party joins work against Zoho mirror rows #983
- notice type picker lists every served type, never silently hides unavailable ones #1115
- un-hardcode the six manual-only invoice/payment sites for Zoho Books #980
- run portal provisioning inside commitLease() for all 3 commit routes #1132
August 9, 2026
- allow uploading an already-filled PDF as an alternative to the box-template notice send #1108
- wire notice PDF issuance to the box-overlay renderer #1112
- Add portfolio Inspections roll-up with trailing-12-month completed count #957
- add first-month rent proration, computed and stored at lease commit #1050
- schedule an open inspection obligation into a showing Visit #956
- Admin Legal Rules pagination, filters, backlog count, and sign-off workflow #1039
- wire signature as the only commit point for leases #1047
- add expired-with-tenant-in-place action flag and drawer resolutions #1054
- add explicit give notice lease action #1048
- add frontend consumers for document-to-repair-item linking and ticket-detail linked repair items #989
- catch uncaught runtime JS errors in Playwright page loads #1022
August 8, 2026
- make Settings > Documents tabs deep-linkable and restored on reload #962
- gate tenant portal-account actions on real account state #788
- tenant detail sub-tab shell, deep-linkable tabs, and real action buttons #787
- Shared tenant financials endpoint + Financials tab #789
- shared communications view component (thread list + messages) #795
- backup code recovery flow parity for Owner and Admin portals #785
- deposit interest actual-rate input for NY/PA/NJ #816
- restructure System Defaults into Property and Tenant tabs #908
- Tenant-to-property link now lands on Rent Roll, not Overview #940
- Make repair item rows keyboard and screen-reader accessible #866
- Tenant chip in Rent Roll opens tenant record, not communications #869
- provision restricted guarantor portal users #791
- Load Documents panel on tab activation #878
- delete the two dead Rent Roll org feature flags #872
- cover resolved deposit deadline branches #708
- Navigation restructure — top-level nav for units/leases + global jump-to search #862
- Add leases list and lease detail page, keep drawer as quick-edit #861
- register MFA SMS send site in message template registry #781
- Rent Roll now loads on tab activation, not just click #867
- Owner Portal MFA frontend — challenge UI + enrollment UI #781
- merge/diff UI for candidate-matches-existing-analysis #805
- anchor Florida remit-by date to the actual notice-send date, not the deadline #825
- reroute Search Watch through Deal Inbox candidates, delete its direct-create email path #802
August 7, 2026
- add a portfolio-wide queue of pending and overdue security deposits #706
- record and surface balance owed when deductions exceed the deposit #705
- surface receipt-required-for-deposit rule on the deposit card #707
- link inspection deltas and receipt documents into deposit deductions #704
- mark deposit collected when a security-deposit invoice line is paid #734
- Redesign Custom Domains page, remove HSTS preload toggle #767
- enforce per-jurisdiction deposit deduction guardrails (Wisconsin) #701
- multi-source Listing Links (Option A) across Analyze/Own/Sold #765
- remap 84 undefined Owner Portal *-btn classes onto the working btn-export convention #766
- Florida notice-then-remit deposit deadline (3-stage, not flat 30-day) #761
- native Zoho item-mapping settings + forced re-mapping gate #732
- native multi-line invoice creation with charge types #730
- rename Message Templates list columns, add Last Edited, add standard pagination #715
- resolve org/platform template overrides in applicant compose drafts #713
- escalate overdue deposit reminders with weekly digest #698
- applicant tenant portal access -- limited views, 90-day expiry, org setting #680
- unhide deposit return button independent of pre-existing deadline #696
- auto-send FCRA adverse-action letters on denial, warn when no report on file #682
- nightly deposit deadline sweep for leases whose tenancy has ended #695
- delist reconciliation -- resolve open applications before unpublishing a listing #681
- add custom dates to document send picker #718
- convert approved application to tenant record(s) and pre-fill new lease #678
- status-change compose modal + applicant email templates #677
- applicant-facing application message thread #676
- applications list defaults to open, adds days-open/next-action columns #674
- staff-only internal notes panel on rental applications #675
- extract shared portal-user provisioner; fix applicant-to-tenant promotion bug #679
- add a11y fixtures for the quick-links branding/listings-settings calls #668
- Add owner portal quick links #664
- flatten eviction/lease-violation cure-days into notice merge fields with disclaimer #644
- gate Turnstile at step 1 only + add application email templates #652
- move Applications nav item from Settings into Tasks #654
- remove/document remaining Zoho Mail references #642
- document Zoho late-fee provider gap as known limitation #441
August 6, 2026
- mandatory reply-to, quick-save label, scalable tenant-request routing #662
- wire broadcastTenantsOpenBtn into unlock()'s admin-only reveal list #656
- wire organizationSettingsOpenBtn into unlock()'s admin-only reveal list #651
- gate notice template selection by lease jurisdiction #123
- reclaim storage for archived lease templates that were never used #233
- link lease e-sign sends to the template that produced them #558
- remove redundant landing-page new-analysis/saved-list buttons #628
- move timezone into Organization Settings, add reply-to and default jurisdiction state #582
- track Postmark inbound usage from reply.returngrid.app and in.returngrid.app #592
- add Property typeahead filter to the Tenants list #597
- add Postmark account-usage monitor (alert-only, no cap) #264
- scope late-fee override property picker to owned properties, add typeahead #590
August 5, 2026
- split Late Fees into its own org-default + per-property page #578
- per-org custom ingestion domains for Deal Inbox (Postmark-backed) #274
- extend's isSigner control to the existing-tenant picker and add a post-attach signer toggle #502
- preview signature-region stacking at 3 adults in the box editor #529
- Zoho Sign account sharing is not gated -- Tony ruled it's fine for any orgs #553
- resolve the tenant maintenance areas property via a units embed #548
- hard-delete orphaned tenants (DELETE /api/tenants/:id) #550
- give the market rent cell room to keep "Est." and "Use it" on one line #546
- left-align the Rent Roll estimate line and mark the value editable #546
- align Vacancy/Other-income field-row, collapse tax lookup detail block #549
- stop the Rent Roll's "Use it" wrapping mid-label #530
August 4, 2026
- axe-scan the invite panel, hint the portal-off state, prefill resend #200
- restrict Create Listing property picker to owned properties only #489
- landlord countersigns in the Owner Portal, so Zoho gets an already-signed lease #511
- special conditions typed per lease, stored on the lease, drawn into the PDF #500
- visual overlay editor for lease template boxes #498
- lease special-condition storage, queryable and renewal-safe #500
- allow discarding a never-signed draft lease (DELETE /api/leases/:id) #492
- give the no-template / no-provider e-sign refusals a message that names the remedy #484
- fix Create & attach, which created a tenant every press and attached none #495
- stop the login form flashing on refresh, and restore the active property sub-tab #481
- make a saved draft lease reachable from the rent roll #491
- read the bare lease POST response when saving a new lease #488
- don't open a maintenance ticket for a reply to a transactional email #453
- tell the signers why a signature request was withdrawn #464
- settle anchored e-sign placement on A4/Legal and page 2 against the live Zoho render #155
- Save was disabled in Own and Sell, so nothing there could ever be saved #465
- non-embedded live harness for the e-sign recall notification question #126
- move Deal Inbox from Settings into the Properties menu #461
- make the lease's late fee fields actually charge, as an override #439
- read Mailgun's SPF/DKIM verdicts from message-headers, not just form fields #400
- capture the provider message id on every outbound email chokepoint #354
- let an owner open an auth-failed email anyway, behind a warning #449
- Settings > Documents nav shell (Templates + Issued tabs) #117
- resolve lease merge fields through the per-type registry, warn on unfillable template fields at upload #119
August 3, 2026
- log late-fee waiver activity against the invoice's liable parties #442
- tell the owner which link failed, and give them a way through #430
- one current primary per lease, enforced in the database #360
- surface inbound replies and ticket provenance in the owner UI #426
- credit a provider payment to the payer the provider named #416
- remind before rent is due, chase it after, and only once each #407
- wire the reply-stream ingress so tenant replies reach routeInboundEmail #300
- name the two Deal Inbox hold reasons apart, and only offer Trust on the releasable one #271
- Deal Inbox owner settings + inbox card #271
- apply the reply status transition to in-app tenant replies #410
- an invoice is billed to the lease, not to one name #390
- send invoice notices to every liable party #389
- email the owner side when a tenant files or replies to a request #358
- a late fee belongs to the invoice, not to a person #388
- stop telling users an empty allowlist rejects their mail #376
- invoice reads resolve through liability, not the addressee #387
- an invoice binds a set of people, not one addressee #385
- carry the signer fact to the portal side #384
- add a `new` ticket status for the unread owner inbox #358
- any org member can manage inbound addresses #375
- let a co-signer pay a joint-and-several invoice #371
- store attachments on inbound tenant email replies #300
- per-org inbound address provisioning in Settings -> Deal Inbox #375
- wire the 18 tenant email templates to reply addressing #300
August 2, 2026
- seed a provisionable lease signer so the portal happy path is reachable #104
- joint-and-several rent invoicing #254
- notify the tenant when a PM replies to a ticket or changes its status #332
- make reply routing an explicit, required decision on every message #300
- per-org reply-to address for application-decision and marketing mail #300
- restrict Tenant Portal view for guarantors #110
- add Tenant Portal "Turn off autopay" button #329
- allow impersonated financial actions with consent+audit+notify; keep password/e-sign blocked #326
- adopt application-stage messages onto the renter's portal account #323
- Tenant Portal read-only message history #166
- fix the repair-form picker note, and add the seam that caught it #218
- link repair items to tracked systems, and fix the write order that made the loop a no-op #218
- message ledger retention janitor, body fidelity, CSV/PDF export #165
- owner-admin "log in as tenant" impersonation (silent, action-limited) #285
- let a Tenant Portal maintenance ticket name a shared area #236
- ask for a Property Manager Code when the host names no org #304
- drive Own-phase rent and current vacancy off the rent roll #216
- make the accent picker describe the portal that actually ships #125
August 1, 2026
- tenant login recovery — forgot-password + owner reset controls #284
- rename the past-Analyze input tab to "Assumptions" and drop Own's rent-basis toggle #215
- collapse the search-watch property-type fan-out and prune dead ZIPs #144
- Q5 resolved — prior-owner history collapses by default with figures in the summary (§5.4.5b); all questions now closed #210
- Q6b resolved — CapEx summary line in Underwriting Opex, detail in Metrics, one shared computation (§8.7.4) #210
- canonicalise lease-template jurisdiction codes and use them to pick the template #113
- add the Owner Portal "Invite tenant" UI and wire it to the invite endpoint #111