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.
October 26, 2026
- lease Tenants card name is a real link, so Cmd/Ctrl-click opens a new tab #10974
- ended lease shows a clear banner and the real end date, drops live-lease actions, no closed-window nag #10976
- documentStore is the one accessor for stored files #10946
- owner guide says Task List is below Favorites #10964
- Owner menu: Task List sits directly below Favorites #10964
- notice and renter insurance PDFs upload direct to storage #10961
- application documents use the shared file list and direct upload #10953
- signed renewal uploads direct to storage and shows errors in the wizard #10955
- staff can upload a document to an application #10949
- one document store behind the seven attachment tables (views keep old names), shared upsert helper #10915
- the deposit return wizard reloads the lease page behind it #10943
- owner-portal a11y fixtures cover closing-letter history, loans report and maintenance tab counts #10941
- Word, Excel and CSV on the vendor, bill and bank pickers, one shared list #10937
- one video limit for Files inbox and inspections; a video read stops at 720 s and says which step was slow #10930
October 25, 2026
- files-inbox video limit 250 MB, 800 s for the background file-reading function #10924
- closing tracker upload uses the shared type list and upload (HEIC converted) #10912
- default Gemini model to gemini-3.8-flash (2.5-flash is retired for new projects) #10920
- video and audio in the document manager #10914
- AI reads Word, Excel and CSV files #10913
- one type list and HEIC conversion on every property-document picker #10912
- retake the seven manual-seed Owner guide pictures for the regrouped menu #10905
- portal invite reminder is timed from the real invite send time #10906
- portal invite no longer 500s when the portal links already have a different primary #10907
October 24, 2026
- Owner guide screenshots retaken for the regrouped menu #10895
- portal invite rule summary names invites that could not be emailed; a failed send no longer blocks the retry #10881
- one org-controlled reminder for renters with an unused portal invite #10884
- Communication menu counts messages and requests that have no reply yet #10896
- Owner menu regrouped: Communication group, moved items, Tenant Directory removed, Tenants export #10890
- Invite to portal on the lease Tenants card is a checklist of the lease's tenants, with Invite and Resend on each row #10879
- the intake page's submit carries ?org= so the internal-org human check applies #10869
- seed the portal invite rule ON for new orgs #10891
- Mobile message screen can change status, team and coordinator #10887
- owner setting for how long a Tenant Portal invite is good for (default 7 days) #10886
- Workflow rule to invite renters with no portal access when charges post (seeded off for every org) #10881
- Switched off filter shows the orgs that are off; history download button stays visible #10882
- support view of default Workflow Rules across orgs, and a rollout for a changed default #10854
- an unchanged save of an Important Date or Task rule keeps its stored reset-clock value #10862
- 'Whoever sent the request' on an insurance request rule is badged Internal, not Tenant-visible #10859
- tenant box on Create maintenance request says to choose a tenant once the lease is set #10807
- deposit letter messages point the renter to the Security Deposits page, not Documents #10836
- re-shoot the Workflow Rules list and rule log screenshots #10818
- a Send notification to a renter is badged Tenant-visible, not Internal #10838
- every Workflow Rule is labelled Standard, Customized or Custom #10852
- the intake form received email runs through Workflow Rules #10792
- the important date rule preview counts only what the latest sweep pass produced #10839
- signature withdrawn and application received emails run through Workflow Rules #10792
- chat library safety check no longer waives a never-do step because "not" appears elsewhere in the sentence #10841
- deposit letters go to every renter with an email, and a renter with no portal account is invited #10831
- the rule editor labels Lease rules instead of 'Applies to: undefined' #10835
- a taken-back deduction is not counted next to its replacement in the ledger itemization #10829
- the Important Date rule preview counts days in the org's time zone #10832
- move the apply-deposit table rule above the compare-run block #10785
- the apply-deposit dialog tables fit the dialog instead of scrolling sideways #10785
- a waived overage records who waived it and when on the lease itemization #10825
- seed the renter's rules ahead of the others so a "Stop here" rule cannot swallow them #10788
- the renter's autopay results are Workflow Rules (two more Lease triggers) #10791
October 23, 2026
- Workflow Rules list keeps Open and Duplicate in reach at laptop widths #10806
- the renter's security deposit notices are Workflow Rules (Lease rules) #10790
- renter repair visit notices (booked, moved, cancelled) are Workflow Rules #10789
- renter emails for a new request and a status change go through Workflow Rules #10788
- charge the tenant or write off the part of the deductions over the deposit #10784
- inventory of every renter email and which ones bypass Workflow Rules #10780
- finishing the deposit wizard posts only deductions not already on the ledger; relabel the wizard's paid-in figure #10720
- one-off, deposit and move-in charge emails go through the Rent charge created rule #10775
- the late fee and reversed-payment renter emails name the org in their closing line #10741
- History tab on Workflow Rules with a Triggered by link per row; built-in alert sends and failures in the history #10727
- late fee and reversed-payment rules send their own renter emails #10741
- undo a deposit applied to rent, reversing the deposit deduction and the rent ledger entry together #10770
- apply the held deposit to rent owed after move-out and post it to the rent ledger #10761
- count the rent-ledger tenant send wrapper in the send-site inventory #10743
- rent-ledger rules can email tenants, and a failed send says why #10743
- insurance documents filed under their own types are logged as insurance reads #9895
- a typed carrier that is not a vendor yet is refused too on a same-dates insurance attach #10093
- the Insurance card says when a typed change would not be saved, and logs an attach #10093
- attaching a file to the Property tax card without a bill date no longer fails #10092
- Create job from a task scopes Repairs to the property first, so the system prefill runs #10722
- the Return deposit wizard names the row the server rejected #10720
- Create job from a task opens the Repairs tab so the system prefill runs #10722
- single workflow rule GET returns lastRunAt so the time rule editor shows when it last ran #10746
- rent-ledger rule editor names the trigger and the template it really sends #10723
- leave the Repairs-tab ternary in loadSavedAnalysis as it was #10722
- tasks can link to a related record; the end-of-life task opens the system and starts a job #10722
- application rule emails get the Open the application link (pass appBaseUrl on the application path) #10694
- rent-ledger rule emails name the event instead of "Application <id>" #10731
- board walk keeps the largest totalCount and refuses an empty page after a promised one #10688
- adverse action letter and scheduled entry notice become org document templates #10718
- closing letter email passes no From address (the text body was going in as From, so every send was rejected) #10709
October 22, 2026
- carry an org's own rent reminder settings into the seeded rules #10607
- record a billing alert that reached nobody in the org's own message log #10609
- remove three unused message templates #10634
- a system past its expected life opens a task through a Workflow Rule #10711
- make entry notice, adverse action email and four inspection notices org-editable #10712
- closing documents email to the title officer uses an editable message template #10709
- send-at hour on Important Dates workflow rules, allow day-of (0 day) rules #10686
- the Category dropdown on the deposit Deductions step opens again #10706
- opening a Deposit ledger row brings the Ledger entry panel into view #10631
- remove the landlord signature line from the deposit letter defaults, add refresh script for seeded copies #10656
- format the org mailing address in the notice objection sentence #10656
- remove platform-admin escalation of undeliverable org notices #10609
- rule editor shows the real default email and push text per rule kind, from the same builder the sender uses. Fixes #10694
- application rule emails name the applicant and link the application; editor no longer shows maintenance wording. Fixes #10694
- org controls repair-visit reminder on/off, send hour, and short-notice cutoff #10673
- zero-refund deposit close-out and optional tenant email #10654
- tenant maintenance reminders become workflow rules #10672
- bank popups use the body font for words; only Amount keeps the figures font #10626
- autopay heads-up becomes a workflow rule #10671
- Record payment pre-selects the property's default bank account and no longer saves with none #10650
- closing a request with open jobs asks what to do with them #10662
- rent reminders and overdue notices become workflow rules #10607
- Closing section under the property More menu with Send letter and Manage sub-tabs #10666
- attaching an HOA statement to the HOA fee card offers the amount and interval it found #10627
- Review valuation with no suggestion no longer shows the "press Use" fine print #10640
- the drop summary says how many files are queued for AI to read #10644
- the new-application owner alert now fills in the interest note and the general marker #10454
- notice-then-remit remit-by reminders become workflow rules #10621
- 1098 and 1099 only tag a file when they read as tax forms, not as a street number #10642
- Insurance By agency names only the kinds of item an agency owes #10632
- unsigned-lease, renters-insurance and move-in inspection reminders become workflow rules #10604
- Loan tab search, section and page are written to the address bar again #10628
- Deposit tab Add entry menu lists Deposit charge once #10629
- Up / Down buttons to reorder the default closing documents #10615
- a double tap on Start no longer answers the first walk-through step #10612
- known-offenders list #10603
- purchase contract deadline reminders become workflow rules #10603
- deposit return reminders become workflow rules with an after-the-date clock #10602
October 21, 2026
- Insurance quotes comparison fits a laptop screen and Choose this quote is visible without scrolling sideways #10538
- Review valuation opens a plain "no suggestion" dialog when there is nothing to review #10531
- the bundle statement check opens on the property page, and the property's own check button is hidden for a bundled loan #10588
- default-rule seeders append after an org's existing rules instead of using fixed positions #10580
- files waiting in the AI read queue show Queued instead of No place picked #10578
- phone walk-through buttons answer at once and a new step opens at the top #10560
- rules that share a position run and list in one fixed order; application defaults are appended #10533
- unique id for the status list body, and a warning-pair colour for the Waiting pill #10520
- download a past closing letter again, and leave accountant logins out of the contact dropdown #10520
- closing documents status list under More, and the org logo on the letter #10520
- one main button that says what it does (File here, Accept, Save and accept, Save changes), progress while AI reads, and Ask AI to read for many files #10570
- Assistant chats list shows the tenant's message as a normal text link #10539
- AI filing waits out rate limits and says 'AI was busy' instead of 'could not read this file' #10542
- closing letter for the title company, with org default closing documents #10520
- the by-agency insurance table uses the body font, not the figures font #10535
- a quote document emailed to the Files inbox fills in the property quote on its own #10528
- a first payment the bank took as all interest, above the scheduled payment, adds nothing to the balance #10523
- insurance agency email attaches a needed-items PDF and tells blocked agencies to email the Files inbox or reply #10521
- Loan balance card on the property shows the books' Loan Payable balance, not the 30/360 estimate #10515
- Loan tab of a bundled loan's property shows the bundle, its members and links to the bundle's bank statement check #10513
- take the deed recording number off the Needs information checklist #10514
- make the intake-code stamp non-fatal so a stamp failure cannot lose the created task #10496
- create the No intake response task once per intake code so deleting or completing it does not bring it back #10496
- My Profile popup fits its phone and office number row, no sideways scrollbar #10487
- account page journal dates stay on one line #10486
- banner on the general application page pointing at the available rentals #10492
- chat offers the smoke alarm battery and furnace filter actions when the tenant's words name them #10479
- after the everyday step, a slow drip stays a normal maintenance request #10481
- equipment already on file counts as done in the walk-through; photos are a second count #10483
- an unenrolled accountant keeps the two-factor setup banner and is let in once setup is confirmed #10421
- general apply page says it is a general application; settings hint only when public listings is off #10445
- Rental Listings tab panels get role=tabpanel and aria-labelledby #10442
- the syndication feed advertises the org's live custom domain #10470
- accountants can read a property's Notes thread (reading only) #10446
- a dismissed RentCast suggestion stays dismissed, and the task goes back to its plain wording #10402
- Admin Unposted GL entries subtitle names Accounting > Ledger > Unposted entries #10468
- owner guide covers Units to walk, "?" help links on the walk-through and assistant screens, nightly stubs the changelog page #10415
October 20, 2026
- required interest note on general applications #10445
- move tab CSS next to the main-tab rules (nothing may follow the compare-run block) #10442
- Listings and Settings tabs on the Rental Listings page #10442
- a refused battery type names the rule, and both battery fields carry a hint #10443
- Source filter on applications and interest note in rule notifications #10454
- copy intake date of birth onto the tenant at convert #10452
- Tenant Portal sign-in layout, option A #10438
- intake letter and insurance agency links and page use the org's custom domain #10440
- Rental Listings settings and the syndication feed use the org's live custom domain #10440
- Admin override of the tenant chat limits per organization #10428
- lock every property tab add, edit and save control and the Files upload for a read only accountant #10163
- accountant guide says Files tab, not Documents tab #10145
- accountants can read the property Files tab (scope=property only) #10151
- an accountant who has not enrolled two-factor is sent to setup at sign-in #10421
- Open in org signs staff in as the org owner and lands on the Unposted entries queue #10175
- rent roll stat strip wraps at laptop widths; Refresh button drops to its own row #10412
- thermostat battery type in the walk-through (Full form, desktop and phone), quoted by the chat for the thermostat actions #10324
- agency missing-items email lists only item types that are missing; summary says 1 agency has #10409
- Create new lease on the intake convert panel creates a new lease even when a co-tenant already converted; rent entered there is saved #10387
- late-fee bulk refusal says 'no longer exists' for one row and no longer ends a row with '..' #10405
- match a hose bib or spigot on its own, and 'the faucet outside', for the outdoor faucet walk-through #10403
- walk a dripping outdoor faucet through when only the model calls it urgent #10379
- smoke alarm battery type in the walk-through, quoted by the chat for the battery action #10324
- Files inbox popup takes focus when it opens, so Escape closes it after a ?file= deep link #10201
- Create entry popup shows a message beside the receipt when its file cannot be opened #10253
- journal entry Posted by names a reclassification and links to it; other adjustments read Adjustment #10302
- lease header Deposit held card refreshes after any deposit-ledger change #10351
- Autopay leases report names the method plainly (Visa, Bank account) instead of the raw provider type #10358
- Applications list shows the contact person under a business name, and searches it #10360
- lease-from-document company match is labelled by business name #10383
- read model answers that end with a stray quote before the closing brace #10372
- lease Tenants card, popover and header show the contact person under a business name #10353
- intake conversion marks the new adult primary/co-tenant as a lease signer #10367
- company intake skips personal DOB, license and photo ID #10362
- electric oven or stove will not heat chat action #10326
- owner guide describes the first month's rent on a past start date and the First month rent card #10294
- company tenants in intake, lease-from-document, screening letters #10341
- lender holdback state gets its own name so the Loan tab search box no longer shows 'undefined' #10349
- deposit GL per-lease balance nets a released or converted holdback against its release row #10260
- Escape in the Itemized deductions popup keeps the Discard confirm open; no doubled period in the partial-save message #10343
- furnace kind, filter size and water heater fuel in the walk-through; chat quotes filter size #10324
- four information-only chat actions #10327
- company tenants sign as Business, by Contact; no date of birth for a company applicant; lease-from-document matches business name #10336
- everyday-fix chat actions, batch 2 (sink, fan, air conditioning, microwave, ice maker, faucet) #10326
- company tenants on mobile, communications, lease check and Tenant Portal owner screens #10304
- everyday-fix chat actions, batch 1 (dishwasher, washer, dryer, clogged toilet, blank thermostat) #10326
October 19, 2026
- warn before a deposit payment is marked received before tracking #10282
- drop the 'newest N of M' note while a search is active #10329
- refuse the whole late-fee batch when any selected row is already waived #10211
- keep the dix-table invalid-input rule ahead of the campaign-run style block; bump asset versions #10317
- Void batch in the Ledger entry panel; number boxes reject letters and name the bad row; clearer partial-save message #10317
- five approved emergency-routing chat actions #10325
- existing chat actions use more walk-through items #10323
- rental applications support a company applicant; lease documents use the business name #10307
- Valuation rules can send a notification or a push #10312
- keep the rent income picker styles ahead of the campaign-run block #10283
- record a deposit payment as paid from rent income #10283
- set the first month's rent on a past start date; lease page shows the ledger charge #10291
- RentCast value proposal, value history, Review on Tasks Due, and a Valuation workflow rule #10299
- tenants can be a company: optional business name shown wherever the tenant is named #10290
- Autopay leases report #10296
- heads-up before an autopay debit; skip the generic rent reminder for autopay leases #10295
- Building condition steps in the walk-through (envelope, site, access, safety) #10288
- batch tag on itemized deposit deductions: group in the ledger and void a batch together #10285
- Nothing in this building shortcut for a whole building #10287
- Loan page hides Estimated badge and note once a loan has a user or operator correction #10268
- Security deposit ledger (GL) is one row per lease, with a tie-out to the books #10260
- redraw the Finish library after a Manage brands change #10230
- list the itemized deductions entry tables as written unsortable exceptions #10275
- itemized deposit deductions popup (labor and materials tables, one deduction per row) #10275
- deposit statement PDF no longer fails on characters Helvetica cannot encode; show the error as a toast #10271
- refresh the phone walk-through when a queued photo finishes sending #10273
- return the saved serial number in the guide payload #10272
- inactive-brand label on the org-wide Finishes list and the property Finishes tab #10270
- Reclassifications list links the original and new entries and can take a reclass back #10256
- bulk approve and bulk waive of selected late fees #10211
- Security Deposits list shows the total held #10265
- Loans report leaves out Pending properties' loans instead of showing blank rows #10247
- Security deposit ledger (GL) leaves pet deposits out #10261
- opening balances no longer call a corrected loan an estimate #10258
- Approved late-fee status and Approve action; default view is Accrued + Disputed #10207
- Map report drop-downs show above the map #10251
- Leases Missing a Deposit links each row to the lease Deposit tab #10246
- label entries that use an inactive brand with (inactive) #10230
- Leases Missing a Deposit report #10235
- phone walk-through wizard with data plate prefill #10170
- Unposted entries fix form is a popup, deferralId links find entries on any page #10233
- preview and edit the insurance quote request email before it is sent #10220
- Favorites in the left menu collapse like the other groups #10228
- Manage brands -- make Finish brands inactive or rename them, never delete #10213
- preview and edit the agency missing-info email before it is sent #10215
- furnace switch, water heater switch and GFCI reset chat actions (wording approved 2026-10-19) #10172
- Files inbox file opens in a wide popup instead of the narrow right-hand panel #10201
- the rent job posts nothing for a property's as-of month or any month before it, and warns about earlier charges #10196
- owner guide says where the Assistant chats and AI Chat screens are #10197
- send the agency missing-info request to several chosen contacts with one shared link #10212
- Finish library brand list follows the finish type, none for Natural, org's own brands remembered #10204
- Late fees charged Status filter, waived fees hidden by default #10198
- matched receipt lines fill the Create entry rows, each with a suggested category #10184
- Unposted entries follow-ups - group fix across pages, log every clearing, side panel, fix path for every source #10185
- walk-through guide tables, controls catalog and routes #10168
- filter and tenant-guide fields on building systems and appliances #10171
- Create entry popup lists the matched mailbox receipt under Receipts and documents #10183
- Unposted entries queue - Change account fix, Resolved tab, per-org Admin monitor #10175
- a11y scan back to green: fixtures for new endpoints, Files tab replaces Documents, four-button phone nav, Files toolbar contrast in dark mode #10161
- lock the property record edit controls for a read only accountant #10163
- phone Add screen can search all properties, not just the first 50 #10152
- accountant mode loads reliably, entity limit applies to lists and journal, refusals explained #10162
- Request insurance quotes on a property being bought #10109
- owner guide section for accountants and a note to send your CPA #10145
- show who entered each journal entry, flag accountant adjusting entries #10144
- owner Users screen: add and manage accountants #10142
- accountants can read property documents #10151
- insurance agency responses run through Workflow Rules, with a default rule seeded for every org #10110
- the rental application consent line names the organization instead of 'the org' #10078
October 18, 2026
- map defaults to owned and selling #10124
- Map report Phase filter and multi-select analyzing status #10124
- property tab strip wraps instead of cutting a tab in half #10082
- attach review fits the file side panel #10126
- a file added for a visit says so in its history, its panel and on the visit #10052
- attach a file to the Insurance card, with a review #10093
- Assistant chats page (Maintenance) and AI Chat settings page (Settings) #10106
- attach a file to the Property tax card, with a review #10092
- Files inbox drop zone and skip message name HEIC #10079
- loans report shows principal and interest paid, drops loan product and down payment, shortens the refinance note #10101
- Tax forms list: set a missing Heat answer for many units at once #10097
- tenant door codes check the shelf status after the read, not in the tenant query #10077
- attach a file to the HOA fee or Management fee card, with a review #10090
- Files inbox panel links to the insurance, tax, HOA or management fee card #10088
- tenant portal copy writes an empty sensitive list, not null #10074
- remove the dead Documents tab upload, filters and rows #10072
- guide says Files, and where New Owner Intake went #10072
- Files replaces the Documents tab; New Owner Intake moves under More #10072
- tenant portal uploads reach the Files inbox #10060
- phone Add shows the nearest property distance in feet and miles #10065
- file panel messages also show right beside the button that was pressed #10059
- Tax package CSVs keep plain negative amounts as numbers #10051
- read the Workflow Rules 30-day run window page by page so Runs 30d and Last run stay right past 1,000 runs #10043
- leave a gap between Open Files and Mark signed on the lease Signing card #10041
- keep the original HEIC next to the JPEG copy and offer it for download #9933
- Tax package guide screenshots (Overview, Depreciation schedule, Income and expenses, Loans and other) #9954
- wire the Settings > Files Inbox Email entry so a click opens the inbox on its address #9849
- re-shoot owner-reserve-to-transfer now that the To transfer header no longer covers the row #9853
- edit a suggested split before accepting, and ask AI to look for several documents #9906
- a lease made from a signed document adds its tenants without a signer email; refusals show next to the button as a 400 #9747
- Income and expenses property cells count only the filing entity's lines, so they match their drill and No property is not negative #9804
- suggest a split when one long scan holds several documents; accepting makes one file per part and keeps the original #9798
- split the sale price preview uses the depreciation cut-off at the sale date #10006
- mark a lease signed with one click from the signed copy filed in Files #9923
- renters with two homes in a year can request both tax forms #10028
- polish the Tax package Depreciation and Loans tabs (filters, text columns, headings) #9954
- a filed document whose facts read came back incomplete offers Read again in its panel #9998
- stop the Tax package Overview KPI figure breaking inside the number #9954
- the daily portal-documents cleanup keeps tax form files #10024
- Tax forms page and Tenant Portal tax form card load again #10012
- Tax package picker lists a management entity that owns properties #9971
- Tax Forms workflow rules can Create a task #9986
- daily sweep deletes chat photos and videos from chats that never became a request (dry run first) #9920
- never tell a tenant to turn a valve on one uncertain photo read #9888
- Paid by on Record payment and Collections Aging Record payments #9943
- a repair report is never given the catch-all account reply #9965
- an email's files are never split by the plain sender rule #9961
- keep the Tax package Overview CSS out of the end-of-file block and off KPI type #9954
October 17, 2026
- accept HEIC photos in the Files inbox and the phone app, added as a JPEG #9933
- AI flags sensitive files (SSN, bank statement, screening report, ID); staff only until cleared #9800
- AI describes and tags photos so the inbox and Files tab search find them #9797
- Settings entry that opens the Files inbox on its email address #9849
- style the Tax package Overview (checklist, headings, buttons, KPI numbers) #9954
- tax form requests run through Workflow Rules, with a default rule seeded for every org #9945
- tenant chat reply box grows as the tenant types #9991
- tenant chat reply box gets its own full row on a phone #9991
- Chat library Pictures tab and image upload #9951
- show a signed lease filed in Files as the lease's signed copy, and let a person mark one #9918
- the Owner step list uses the Chat library's category list and usage counting instead of a copy #9968
- Basis tab button list includes the split helper #9878
- stop-sign words for eleven built-in chat actions; only the two Tony skipped stay exempt #9956
- check a file filed to a lease by hand, and show the lease check in the lease Files tab #9905
- Wisconsin Rent Certificate: Leases > Tax forms, prepare/sign/share, Tenant Portal download and request #9926
- the Chat library list stays within the page-size wiring check #9950
- Owner Portal switches, supply settings and usage numbers for the tenant chat's approved steps #9952
- the Depreciation schedule tab draws its rows (it read d.bands; the API sends schedule.bands) #9803
- files read out of a zip upload by extension, so PDFs and photos in a zip are no longer refused #9755
- set an entity's filing form (Schedule E or Form 8825) from the Tax package Overview #9824
- learned-rule filing reasons read '(same file name)' instead of '(same the file name)' #9957
- Tax package PDF workpaper #9805
- Tax package Loans and other tab #9805
- short videos in the tenant chat #9883
- add photos and files to the Files inbox from the staff phone app #9744
- Tax package Income and expenses tab (Schedule E and Form 8825 layouts) #9804
- example pictures for the tenant chat (illustrations, marked as such) #9901
- first batch of approved tenant actions in the chat #9897
- the Files inbox learns from a person's moves (identifier, file name, sender); rules are listed and removable #9799
- tenant chat asks for photos by purpose, reads appliance labels, links the maker's page #9885
- center and frame the Link a document picker #9893
- the bill line Tax class field shows for any Capital Project job #9812
- check a lease document AI filed to a lease against the lease record and flag differences #9754
- Tax package page with the depreciation schedule tab and CSV export #9803
- tenant chat shows example pictures, asks for photos, and looks at the tenant's photos #9881
- tenant chat offers no-water checks before the emergency flow #9876
- rule emails to staff link to the Owner Portal, not the tenant host #9872
- a journal entry for a bill penalty or interest links to its bill #9833
- link any document to the HOA fee, Management fee and Property tax cards; link, re-kind and unlink insurance documents #9865
- a saved bill with a duplicate note says it saved and shows the note #9836
- HOA fee, Management fee and Property tax cards link the document that filled them #9860
- the Tax bills table fits its card at desktop width #9834
- bill-line tax class for Capital Project jobs #9812
- per-asset tax depreciation records, engine, backfill and Basis-tab panel #9802
- HOA and management documents fill the HOA fee and Management fee cards, HOA statements become bill drafts #9756
- a tax bill AI files becomes a draft Government bill (with flags for conflicts and parcel mismatch) #9752
- Files inbox email address: sender matching, safe quarantine, email body kept as a file #9751
- the match note says "1 entry that matches this amount" #9842
- AI files each inbox file (place, type, title, date, confidence, reason), metering and duplicates #9750
- stack the label/value lists in the Pending properties panel on a phone #9788
- Record payment from the bill popup defaults to the next installment; subtitle states both amounts #9745
- report toolbar group wraps on a phone; fieldset filter rows lose the browser border #9776
- the property-documents janitor only judges property document paths #9789
- guide says the Files inbox has four tabs (Trash was added by) #9782
- Files inbox, Files tab and Documents tab accept Word, Excel and CSV files #9782
- left-align the journal line Description on the account page in the body font #9791
- the phone's Materials tab shows each store receipt's share for this job, with its items on tap #9814
- Files inbox trash: deleted files keep their copy, restore with filing intact, admin delete forever #9757
- a job's store receipt rows show only this job's part, with the receipt's items on click #9795
- tax class on each Capital Project job, grouped at Place in service #9801
- list bank withdrawals charged to the repair on the phone Materials tab #9784
- journal entry detail shows what posted it and links to the source record #9785
- Files inbox with drag and drop of files and folders #9749
- Reports: compact header and one-row filters on every report page #9776
- Edit job Costs tab lists bank withdrawal lines charged to the job #9781
- property tax bill fields: tax year, early-payment discount, paid from escrow, penalties and interest #9746
- one-time discounts go straight onto the ledger, dated their start date #9772
- show the section headings in the bank entry Property search list #9711
October 16, 2026
- show the not-owned insurance note on Pending properties #9761
- installments on a bill, oldest-first payments and one tax reminder per installment #9745
- loan cost write-off plan applies loan corrections #9763
- balloon loans write off to the balloon date from the funding month #9759
- lump-sum past improvements count in the suggested depreciation #9741
- revise insurance and tax for the new storage, add tax bill installments #9011
- loan cost write-off starts in the funding month #9740
- Feed pull takes a transfer's bank item the other account reconciled #9737
- Pending properties panel scrolls into view on a phone #9734
- bank account Register opens newest first #9729
- Reconcile screen: totals in one row, tick list first, later bank items below #9722
- vendor bill Property picker offers owned, pending, under contract, deal ended and sold properties #9713
- Bank register State filter (Open, Reconciled, Locked, Voided) #9723
- Back from a reconciliation goes to its account #9720
- Start popup statement date is a date picker, one month after the last completed reconciliation #9718
- a quiet bank feed sync still saves the bank's balance #9716
- open the insurance write-off schedule in a popup: skip write-off for Pending and Analyze properties, hold months until owned #9712
- bank entry Property picker offers owned, pending, under contract, deal ended and sold properties #9711
- Feed balance box on a bank account with an active feed; GL balance box smaller; sync keeps the reported balance #9702
- re-shoot the Metrics tab and Posting accounts screenshots #9697
- tag an owned property's headline figure Assumptions in the dashboard and the properties list #9667
- read a long statement PDF in overlapping pieces; take undated interest lines #9685
- the bank feed pull takes over a list tick of the same entry #9693
- a payment or return ticked through its bank feed line shows as money out #9691
- the Return deposit wizard, notice and remit no longer count money paid toward a non-refundable fee as refundable #9673
- say why Save is off when the amount is past the $5.00 limit #9659
- write the holdback over-limit amount as money ($5,000.00) #9658
- one Rent or security deposit tab; one tenant payment can clear both rent and the security deposit #9680
- Anyone at a domain works on Add vendor (sender check allows @domain) #9598
- the bank feed pull takes over match rows a set-aside reconciliation still holds #9661
- a transfer's other-account bank item no longer hides it from a reconciliation's tick list #9662
- cash P&L reconciliation names a backdated charge settled twice and fees taken from processor or undeposited balances #9657
- pass the chart of accounts tree option through renderPortfolioTable #9626
- the Start popup fills the statement date and balance from the chosen PDF #9632
October 15, 2026
- split one bank deposit into income lines by account and property #9630
- Report (PDF) for a completed reconciliation #9607
- Match a bank item popup lists only entries that match the amount by default #9621
- Any chart of accounts account can have a same-type parent, shown as a tree #9626
- record the Create vendor payee link as an inline text link #9614
- Offer to create a vendor from a free-form bank entry payee #9614
- the first loan cost write-off month counts one month when the as-of date is a month-end #8590
- the VENDOR heading cell no longer covers the first vendor row #9596
- Activate holds a financed property with no loan on record #9547
- record a lender holdback at closing, show it on the Loan tab, release it #9613
- Match a bank item popup leaves out the Opening balance and untouched voided pairs #9643
- refresh the bundle lender line once the month fills the payment boxes #9640
- a register entry a bank item created can be edited from the register pop-up #9636
- owner guide: the Start step's Statement PDF field #9604
- statement PDF field in the Start reconciliation popup #9604
- a completed reconciliation's tick list shows what it ticked #9627
- Allow a period in a chart of accounts code #9624
- Match a bank item popup lists exact-amount entries first #9620
- split one bank deposit across several tenants (rent or deposit received) #9616
- Last checked updates after Record this check; the check note formats its balance #9588
- Add vendor button on the receipts Vendors tab #9598
- the lender balance check sends the field the routes read (balance), and the posted panel says Saving #9609
- bundled loans take the lender's balance (optional) and the check is recorded on every property #9590
- read the statement PDF on a reconciliation, tick what matches, list what is missing #9565
- the register balance counts an entry put back by reversing its reversal #9587
- Loan payments list can show only payments with no lender balance check #9591
- the reverse lock also covers the rounding and bank fee entries of a completed reconciliation #9515
- the receipts Vendors table no longer hides its first row under its heading #9596
- Loan payments take the lender's balance (optional) and run the balance check in the same step #9585
- an unticked bank feed item stays off the reconciliation and keeps its Feed tab match #9563
- middle-click on a Leases list row opens the lease in a new tab #9529
- complete a reconciliation only at $0.00; finishing with a difference is opt-in #9564
- loan funding finds every line of one hand-made entry, so the second is not posted again #9579
- record a matching check against the lender's statement so the Loan statement item clears #9577
- retake the owner-bank-reconcile and owner-owned-properties guide screenshots #9543
- reconcile on one tick list #9562
- set aside, resume, and edit the statement info of an open reconciliation #9551
- card Reconcile tab is a status card; New entry on a card says Charge / Payment #9556
- History tab drift compares the balance as of each statement date #9571
- record the applied as-of-statement-date balance correction #9552
- the buy transition writes the origination row even when a loan statement was saved first #9547
- store and compare the reconciliation book balance as of the statement date #9559
- record the applied set-aside of the open Oct 8 Capital One reconciliation #9551
- Reconciliation history names the account; an open row shows Reopened, not a Completed time #9553
- keep nowrap on the Find & match amount only, so the title wraps again #9100
- first reconciliation seeds only opening balances dated on or before the statement date #9554
- Review and the booked block say the loan cost write-off waits until onboarding is finished #9517
- bank register: an adjustment posted by a completed reconciliation reads Reconciled and is locked #9515
- Pending properties page opens on Pending only #9541
- open Tenants list and property Leases/Tenants rows in a new tab #9539
- loan history notes show a short preview with a Show full notes popup #9533
- open a lease in a new tab from the Leases list #9529
- write off loan costs when the loan is dated after the opening entry #9530
- a reopened reconciliation no longer locks the account or reads as reconciled #9525
- the loan history note lists only the fields that changed #9521
- limit the detail-id exception to the four statement views #8657
- keep a statement's propertyId through the detail-id strip too #8657
- the Metrics tab and a page save carry the saved seller credit #9395
- loan funding account list names the other entity on accounts that book into a different entity than the property #9516
- the tax forecast reads Government bills, where a property tax bill is really saved #9513
- loan funding warns when the deposit account belongs to a different legal entity than the property #9497
- tax forecast is the latest tax bill at its full amount, not the payments on it #9510
- count property tax every month in realized operating cost, last year's tax bill as the forecast #9508
- Overview Monthly cash flow divides the yearly figure by 12, not by the window's month count #9505
- Review counts only the write-off months saving will post and names a month in a closed period #9496
- remove the typed Last year's tax amount from the Property tax card #9484
- Refinance history shows a loan with its corrections applied #9489
- a loan recorded after a cash purchase keeps the cash purchase's down payment and still shows its schedule #9488
- build the prepaid write-off schedule from the amount actually paid #9492
- name the receiving property on the funding Review and Where each line went tables #9486
October 14, 2026
- write the Loans list search to the address again #9470
- Loan funding guide section, See the entries list on the booked Funding block #9414
- an insurance premium on a vendor bill posts to Prepaid Insurance, matched by the bill date #9444
- show only the readable line of a loan funding note in the Events tables #9452
- realized operating cost counts prepaid insurance by its monthly write-off, not the whole premium when paid #9427
- correcting a loan's term or balloon date redoes the posted loan cost write-off months #9436
- Edit funding gets its bank account and other-property choices on a booked funding #9461
- refinance asks what to do with the old loan's unwritten loan costs #9408
- carried write-off stream for a refinance whose owner chose to spread the old loan's costs #9408
- seller credit field lowers cost basis and cash put in #9395
- keep the saved opening amounts when Edit acquisition details reposts #9416
- Edit funding and Remove funding for a booked loan funding (server and screens) #9434
- Loan tab schedule follows the loan on record, not the Purchase method #9432
- take insurance links out on delete, void and edit; link a payment later; check bill payments in the job #9444
- offer Reclassify in the register pop-up for an entry locked only by a closed period #9394
- seller credit spec v2: loan sized before or after the credit #9395
- activation saves the one-time opening amounts it posted #9416
- check the saved purchase details before Activate posts the opening entry #9437
- compact Loan tab: summary strip, one action row, terms beside funding and statement, one History card with tabs #9431
- phase 1 recorded: Prepaid Insurance account 1160, four insurance tables, term backfill #9383
- Reclassify button in the register pop-up of a locked deposit or withdrawal #9391
- Show a Reclassified tag on the bills list rows #9415
- Reclassify to another property, one line of a split entry, and a bill line in a closed period #9394
- leases inherited with a just-bought property get no move-in inspection #9378
- a bill payment's popup shows the category its bill was posted to, and a bill save that does not reach the books says so #9386
- activation sets the property's deposit account when the org has exactly one deposit holding account #9372
- a completed reconciliation no longer offers Complete or Save & finish later #9397
- Reclassify a locked deposit or withdrawal, and a Reclassifications list #9391
- the opening entry leaves out a loan that funded after the closing date on a property bought for cash #9388
- the Reconcile panes fit the screen instead of pushing the Return Grid transactions pane off the edge #9371
- a bill payment with no method shows Not set in the Edit pop-up and keeps it #9369
- change the amount or bank account of a bill payment from the register pop-up #9356
- Correct loan details review adds the loan amount change to the books only when an opening entry is posted #9363
- Loan tab sidebar cards get their own rows so Refinance history no longer covers Current loan status #9366
- the Activate review lists the expensed closing costs so it balances #9348
- the register pop-up says who changed a rent or deposit payment, when and why #9345
- count the loan number's last four digits in code, and say so when the number cannot be read #9326
- Needs information reads the loan record for Loan details and says which insurance or parcel part is missing #9365
- the schedule rebuilt after a payment correction continues from the posted balance #9349
- post the expensed closing costs in a just-bought property's opening entry so the bank line equals the closing wire #9348
- Pending properties panel says 'Loan from closing recorded' (not 'Statement recorded') for a Just bought property's closing loan #9361
- a bill payment can be edited from the register pop-up #9339
- Vendor Spend shows shares as rounded percents and a plain Avg bill note #9330
- a hand-made bank entry can be edited from the register pop-up, amount included #9347
- after payments, the loan date, first payment date, monthly payment, escrow, balloon date and interest rate can be corrected for the months to come #9349
- a Just bought property's origination loan counts as its loan when checking Pending properties for activation #9350
- a register entry opens in a large pop-up, and a rent or deposit payment can be edited there #9337
- Correct loan details review keeps the minus sign on a debit Loan Payable balance #9335
- Loan tab folded panel headings wrap so Record refinance and Show never overlap #9334
- rent ledger entry popup hides Period on entries that never have one #9340
- red main -- the Owner guide quoted a box label that no longer exists verbatim #9336
- Open rent entry and view lease open the lease by its lease id, not the rent entry id #9336
- the loan statement reader accepts a loan number printed with dashes #9326
- say on screen when a long first period makes the first payment smaller than its interest #9178
- tenant chat: a disabled choice (I understand before the box is ticked) looks disabled #9328
- closing-month rent per lease, and $0 allowed on the rent ledger #9291
- bundled loan statement upload shows the bundle note instead of 'confirm the payment' #9324
- Loan paid from picker shows the account's last four, not '...undefined' #9322
- a Just bought property is read as of its closing date #9269
October 13, 2026
- written reasons for the three new bundled-loan refinance tables that do not sort #9242
- write the closing cost inputs out literally so the element id check sees them #9242
- guided sell one property and refinance the rest on a bundled loan #9242
- choose the date a void posts on, and hide untouched voided pairs from the reconcile list #9312
- tag Just bought or Owned on the Create Property start-card picker rows #9270
- a reconciliation can use bank items posted after the statement date #9313
- a first reconciliation starts from the account's opening balance #9311
- a correction after payments keeps interest carried from a short first payment #9179
- a bundled payment posted from a statement files the statement under each property's Documents #9302
- reversing a journal entry gives its bank item back #9297
- Analyzing loan inputs get an interest method and the payment follows it #9180
- match a lender statement to the bundled loan, not one property #9243
- guides describe the after-hours emergency a tenant sees #9256
- help links on every remaining owner screen, and the Owner guide sections they point at #9277
- rent payment, deposit received and pay a bill for the rest of a bank item in Match to saved entries #9259
- repair charge and receipt files on the entry made for the rest of a bank item #9258
- menu favorites -- pin up to 10 left-menu entries into a Favorites group at the top #9249
- bundled loan bank link: reversing a month no longer unlinks a reconciled withdrawal, and unlinks only what was reversed #9244
- help links for the ledger, accounting setup, entities, credits and ledger-report screens; eight new Owner guide sections #9276
- a bank entry in a closed accounting period is now locked, so a memo edit saves alone and refreshes the journal description #9093
- activate the wizard's draft leases with the property #9268
- the charge notice tick box sits beside its sentence #9287
- just-bought loan does not ask for what is known #9252
- ask just bought or owned, closing money, credits, several tenants per lease #9252
- vendor form Categories is the shared multiselect dropdown #9240
- the day link filters Assistant Reviews to that day only #9051
- Create an entry for the rest of a bank item inside Match to saved entries #9236
- Void action on a credit transfer in the lease Credits history #9260
- a ?usageDay= link filters Assistant Reviews on load; totals line singular and plural #9051
- Seed Earnest Money Deposits account (1130) for new and existing orgs #9261
- guides cover the Leases list, vendor bills, the loan popup, receipt sorting and card matching #9234
- guides cover the tenant assistant, account help, website chat, on-call schedule and alerts #9234
- bank account on a deposit payment;: transfer leg cascade;: set match adjustments #9089
- Chat Usage view for staff #9051
- Property Manager Guide covers the bank feed actions (create from one item, several items at once, correct, take back) #9077
- Monthly loan payment list starts at the loan's first payment #9229
- move the greyed-out style off the end of style.css #9222
- edit a loan in a popup, Monthly P&I follows Interest counted as, Loan type list, penalty fields grey out for None #9222
- keep the new loan date when the same save changes lender, number or product #9225
- Pay bills and match: save button is off while the bills do not add up #9219
- loan view folds loan-number corrections #9214
- a bank item left only partly covered shows Part covered #9141
- emptying the loan number, product or points in Loan details removes it #9195
- a locked transfer's notice no longer promises a memo edit #9095
- charge notice acknowledgment is a real checkbox #9185
- Loans report shows the schedule estimate for every loan, labelled est. #9203
- I bought it carries the analysis prepayment penalty into the new loan #9204
- the Loans list and report use the books' balance only when the opening entry is posted #9134
- Refund a tenant split: save button is off while the split is wrong #9141
- Update by chat looks like a button, and the chat says status names, not codes #9197
- Refund a tenant finds the tenant of a lease that has ended #9104
- bank register balance carries in what was owed before the date window #9142
- amount, transfer and repair charge in the Edit popup #9094
- one place for the loan on an owned property (Loan details) #9181
- assistant reviews and public chats record the owner who acted #9187
- technician chat for job updates #9031
- leftover credit allocation no longer blocks editing a rent credit #9174
- a first payment smaller than a long first period's interest is allowed, the shortfall rolls into the balance #9166
- files on a bill payment, one popup with a tab per payment #9092
- the loan details editor can change the date the loan funded #9167
- the calculated loan payment follows the loan's own interest method (30/360, Actual/360, Actual/365) #9159
- a lender statement that matches another interest method is offered that method, in the statement review and on the loan panel #9087
- Match to saved entries: saved entries list below the bank items at every width; left-align text columns #9160
- a leftover allocation from a rent payment no longer blocks editing that payment #9158
- after a loan is corrected with payments posted, the schedule keeps the posted months and runs the same payment until paid off #9143
- rebase onto main; Property Manager guide is now 112 pages #9134
- Loans list and Loans report show the books' Loan Payable balance, not the schedule's estimate #9134
- checklist-change task and email link opens Settings > Maintenance defaults #9144
- post one adjusting entry for the difference between the lender's statement and the books' Loan Payable #9135
- correct a loan's amount and length after payments are posted; keep the original date and put the original entry back if the new one is refused #9119
- Create entry in More on rows that have a suggestion or combination: Refund a tenant can split one bank item between extra rent and extra deposit #9128
October 12, 2026
- Public Chats screen for staff #9045
- after-hours charge notice with saved acknowledgment #9005
- payKind=refund in a Create entry link opens Refund a tenant: Match to saved entries search and From / To dates sit on one line #9129
- add Term and Payment due day to the loan details card; make a loan amount change all or nothing #9085
- Loans tab on Loan payments, compact Loan details card, edit loan amount before first payment #9085
- a late empty-search answer no longer wipes the tenant or vendor list in the Create entry picker #9125
- send a checklist change to a person as a task #9035
- Match to saved entries tables become cards on a phone; Remove is an action button: say how many saved entries a match actually used and warn when ticked entries get no amount #9107
- show money-out amount as minus in the edit popup; plain amounts on the deposit return lines #9111
- say up front that a transfer is changed where it was made, and show where a rent or deposit item is changed inside the Bank item box #9095
- outside temperature for the tenant chat from the National Weather Service #9032
- short-lived start token for the public chat #9043
- show and edit the bank account on a rent payment #9082
- bank register running balance leaves out voided entries and their reversals #9102
- Find & match popup on a phone keeps the bank item's amount on one line #9100
- let the owner correct the loan details until the first payment is recorded #9078
- loans choose how interest is counted (30/360, Actual/360, Actual/365) #9079
- edit a created bank feed entry in a popup and repost it in place #9081
- public chat on the Tenant Portal sign-in page #9046
- match several bank items to several saved entries #9072
- create one entry from several bank items #9071
- public website assistant with sign-in handoff #9007
- signed-in owners can read the two on-call SMS timestamps on users #9002
- Find & match popup on a phone shows the entries as cards and the totals as one strip #9056
- deleting a bank-recorded deposit return from the register clears the lease's returned mark #9062
- account help in the tenant portal chat #9006
- bank feed on a phone shows rows as cards, hides filters behind a Filters button, and the popups open above the Bank item sheet #9041
- tenant chat limits per conversation, per tenant and per org, and a log alert when the key is missing #9030
- Refund a tenant choice on a money-out bank item (extra rent or extra deposit paid) #9013
- assistant conversation review, corrections and replay #9010
- tenant maintenance chat with AI understanding and code-owned emergency safety #9004
- Create Property checklist: columns shrink inside a narrow card so Go to field stays inside it #9021
- pass the two payment handlers to the bank feed payment routes lazily #8997
- Rent payment, Deposit received and Pay a bill from one bank item, plus bank rules that remember them #8997
- Mark Paid Pay from list offers credit cards for bills on properties we do not manage #9026
- Create entry Transfer: usable accounts first, not-offered accounts under one counted group #9014
- tenant assistant settings: emergency lines, greeting name and tagline, per-property business hours #9001
- scope document for the document and photo inbox with AI filing #9011
October 11, 2026
- Transfer from one bank item inside Create entry, with automatic match and a bank rule #8996
- a deleted or voided register entry gives its bank item back to For review #8991
- one place reads a card feed row's sign (bankFeedSign), used by create, transfers, rules, suggestions, receipts and loan matching #8991
- read a credit card feed row's sign as money flow when creating entries, pairing transfers and matching rules #8989
- read the loan schedule to the end of the month, not to day 31 #8986
- file the fitted statement under Documents when the confirm does not name it #8944
- move the phone-fit CSS into the Create Property inline style block #8886
- Create Property fits a 375px phone: pickers stay in their cells, tables keep their labels in their scroll box #8886
- receipts match and attach to credit card purchases (positive in the feed), not only bank charges #8980
- use lender, property line and amount to pick among loans that end the same, and let the owner pick #8976
- write off booked refinance loan costs on properties that were never onboarded #8954
- the delete-case confirm names the lease the case comes off #8931
- read the principal balance from the statement words when the model leaves it empty #8974
- add or fix the loan number on an owned property's current loan #8960
- delete an eviction case, confirm before starting one, list every case on the lease #8931
- Admin Receipt vendors screen: staff review vendors several orgs enabled and promote one to the built-in list #8927
- opening entry for a property bought now is dated the closing date when cash came from a tracked bank account #8965
- first-year depreciation counts the partial as-of month by days #8964
- an owner's corrections to a read become examples in that vendor's AI prompt #8925
- a loan statement whose payment was posted is also filed under the property's Documents #8944
- a posted loan payment read from a statement still offers Open the statement PDF #8958
- Treat mail like this as receipts guesses the vendor from the sender's name and stacks its fields #8956
- the Mailbox tab badge (Vendor not enabled) shows from the Receipts tab too #8933
- Receipts list hides Date too from 901 to 1000px while a receipt is open #8941
- read a loan statement that prints only the amount due (a real credit union statement) #8926
- read loan statements, prefill the loan payment, post by itself for a trusted lender #8926
- re-uploading an unchanged property row is not a row to fix #8939
- register the 8905 file as owner of the three lock functions #8905
- Reconciled and locked follow what a reconciliation cleared, not a date #8905
- Bank Feed accepts items dated in a reconciled month #8935
- Create Property bottom bar stays small on a phone #8946
- Fill in from your documents: loan costs note, keep earlier suggestions, no $0 escrow suggestion #8945
- vendor status filter reads Any status, Vendors table has its sort exception #8924
- read files from a sender nobody has enabled yet, parked as New vendor, confirm #8924
- owner-enabled vendor rules, New vendor confirm and 3-read trust #8924
- upload result reads '1 row needs fixes' #8936
- suggest the original loan term from the closing disclosure #8916
- ask for the original loan term so loan costs on a brought-in loan are booked #8897
- add the open-receipt panel shot to the Receipts by email guide #8903
- unknown-sender cap at 50 percent of the daily AI allowance, shared allowance, loan statements use the receipts trust rule #8918
- mortgage statement prompt handles the period end date, a single amount due, and two rates #8916
- Monthly escrow box in Create Property, suggested from the mortgage statement #8916
- Fill in from your documents in Create Property #8591
- carry a held receipt onto the entry right after a Reconciliation match or a loan payment confirm #8860
- owner guide screenshots for Create Property, Pending properties, upload and Activate #8817
- say Files could not be kept when none of a message's files could be stored #8877
- read the real Home Depot, Amazon and Menards mail #8829
- read the HTML part of a forwarded vendor email when the text part is only the forward line #8908
- keep Year-end depreciation rows a normal height on a phone #8899
- close a missing brace in style.css that swallowed every rule after it #8899
- drop the bank rules exception entry now that its headings sort #8873
- owner guide section Receipts by email (setup, vendors, photos, matching, needs a look) #8782
- drop the four exception entries that made sortable #8867
- owner guide: activating in full, closed periods, reversing, Needs information, More closing details #8669
- show the matched receipt on the Feed item and in the Create entry and Match popups #8864
- guide describes the payments list on a Zoho payout #8826
- Sort the bank rules list from its headings #8869
- Needs information list: show empty optional closing details after a property is Active #8846
- keep the Create Property start styles out of the run view CSS block #8816
- Fix Create Property start step and spreadsheet upload dialog layout #8816
- keep the sender's file names on receipts mail and match the receipts address case-insensitively #8794
- a Pending properties link with propertyId opens that property's panel on a fresh load #8862
- help anchors on Create Property and Pending properties open the new guide section #8592
- keep the Needs information styles out of the run view CSS block #8682
- receipt photos and scans by email, from allowed senders, read by the AI document reader; Read again #8785
- mailbox receipts show a tag and Detach on the bank entry; Detach puts the receipt back on Needs a look #8781
- saving a loan's paying account refuses a card, clearing or undeposited funds account #8865
- Project skill points to the every-table-sorts rule #8858
- matching and attaching job for receipts #8779
- A blank loan ID, balloon date or prepayment field in Create Property clears the saved value #8796
- Zoho payout drawer words use the body font; only money columns keep the figures font #8847
- Create Property: E. More closing details and a two-group checklist #8830
- the loan Paid from lists leave out cards, clearing and undeposited funds #8806
October 10, 2026
- Loan payments list no longer goes blank when a payment matches the bank #8694
- Needs information list for Active properties #8682
- register link with a bank entry id finds the row, widens the dates and pages to it #8819
- I bought it opens Create Property pre-filled from the analysis #8796
- Receipts page with the four lists, side panel, attach, detach, ignore, restore, vendor names and the 90-day rule #8780
- receipts classifier and readers, and the step that turns waiting mail into receipts #8778
- owner guide section Bringing in properties you already own #8592
- Zoho payout panel lists the payments the payout covers #8799
- Pending properties list shows units done out of total #8801
- receipts mailbox: receipts address, ingress routing, Banking > Receipts > Mailbox #8776
- a flooring inventory item links to a Finish library flooring entry #8755
- the Posting accounts category search box and filter use the body font #8813
- loan from a balance: resolved view carries the statement columns, schedule built from a balance #8609
- a Zoho bank account verification fee is booked to the processing fee account and its payout records itself #8798
- a Zoho verification fee is named as a fee with its amount, and a payout's panel comes into view on a phone #8797
- Pending properties: Source filter (upload, by hand, from Analyzing) #8788
- Pending properties: assign a Property Manager to many at once #8742
- Pending properties panel: edit in place, statement vs schedule note #8662
- Loan payments: match to the bank feed, bulk confirm exact matches #8694
- Record anyway lists only bank accounts a Zoho payout can land in #8728
- Posting accounts tables use the body font for their text columns #8644
- add the Banking and accounting setup chapter to the Property Manager guide #8765
- receipts inbox spec: Menards emails online orders only #8766
- receipts inbox spec: connecting a vendor, verification mail, rotate warning #8766
- receipts inbox spec records Tony's answers and the mail shapes seen in the Zoho mailbox #8766
- re-shoot the seven owner screenshots that drifted past budget after the menu redesign #8719
- Loan payments: review panel, confirm and post, skip a month #8693
- keep the receipts CSS out of the end of style.css #8756
- receipts and pictures on a bank entry, and vendor suggestions under Payee #8756
- save the five opening amounts on a Pending property #8752
- bank lists scroll with the page instead of inside a 70vh box #8762
- book refinance loan costs and costs expensed now to the ledger #8723
- Look back on Banking > Zoho payouts (read and record the last 7, 30 or 90 days) #8735
- monthly loan payment review list with proposed payments #8692
- upload a spreadsheet of properties, loans, improvements and units as Pending #8583
- accept the new page layout for the year-end depreciation section in the Property Manager guide #8732
- the Finish library can hold flooring #8739
- Create Property: units, tenants and a required Property Manager #8629
- owner guide section for Banking > Zoho payouts #8737
- repair the two checks the deposit change turned red #8716
- Zoho deposit payments behave like rent payments (link fee, payout match, fee on deposit ledger and Fees tab) #8716
- Zoho deposit payments behave like rent payments (database change) #8716
- year-end depreciation preview has its own address; owner guide section #8655
- refinance records loan costs and costs expensed now as two separate fields #8711
- choose the bank account a loan is paid from #8691
- repair the red checks on the late fee delete fix #8641
- deleting a rent-ledger charge also removes its fee and management-fee journals #8641
- record Zoho's processing fee on the payment and post it as a bank fee #8703
- show Zoho's processing fee on the payment, add a Fees tab with export #8715
- bill line and journal entry account selects are searchable with group headers and tags #8698
- Activate deposit-cash picker leaves out credit cards and the payment clearing account #8676
- bank account pickers show the account purpose, with headers when a list holds several purposes #8709
- keep Pending properties out of the remaining reports and reserve roll-ups #8706
- monthly loan cost write-off for onboarded properties #8590
- Activate carries the saved purchase figures into the property inputs #8630
- Pending properties stay out of the remaining owned-property surfaces and background jobs #8636
- Banking > Zoho payouts screen with Check again and Record anyway #8671
- properties with no onboarding record are treated as Active for land share changes and land splits #8653
- save the deposit bank account on the property at Activate and default new leases to it #8668
- payout check compares gross to gross and records payouts that include refunds #8672
- Category or account list marks categories vs chart of accounts and shows account type #8679
- Activate property amounts use the wizard's label-above-input cells #8673
- record the Zoho Payments clearing -> checking transfer when a payout is paid #8618
- Activate step asks which bank account holds the tenant deposits; a new account is added with an opening balance on the opening-entry date #8664
- reversing an Active property's opening entry returns it to Pending; a repost keeps it Active on the new entry #8665
- Activate property (preview, post one opening entry, turn Active) in the wizard and in bulk from the worksheet #8582
- Pending properties worksheet (list, counts as filters, search, sort, paging, side panel) #8581
- Back button uses the in-app history check, not the tab-wide history length #8587
- year-end depreciation screen (preview and post for every property) #8587
- financial statements keep propertyId in the address on load #8657
- Basis tab copy: panel note no longer says nothing posts; Depreciation taken card names years posted here #8585
- change the land share after posting with a previewed adjusting entry #8588
- yearly depreciation record, suggested amount, and posting (Dr 6200, Cr 1510) #8586
- Basis and depreciation tab on the property page #8585
- re-draw the 'Financial reports open on' card once the admin flag is set after a cold load #8566
- split land from building for properties that already posted a single-account opening entry #8589
- Pending properties stay out of the Owned list and the rent roll reports #8628
- Cash Flow does not call equal amounts a gap when the Profit & Loss is incomplete #8553
- opening entry v2 - one as-of entry per property #8579
- redesign the bank entry popups (entry, statement payment, transfer) #8616
- bank entry lines collapse Units, Repair and Replaces under Details #8626
- name what the cash P&L reconciliation leaves over; warnings list their records #8567
- Create Property wizard (Pending draft, menu items, Opening Balances skips Pending) #8580
- Settings takes over the left menu, with search #8612
- split land from building in the opening entry; keep posted single-account entries as they are #8578
- property onboarding record table and admin API (Pending or Active, as-of date, land share, depreciation taken, closing-cash source) #8575
- orgs can add their own bank entry categories #8607
- past capital improvements table, admin API, fixed-asset schedule rows #8576
- lease header Deposit held tile shows money received, matching the Deposit ledger #8558
- record Plaid's $0.30 per item per month price in the bank feeds spec #8548
- transfer pairs skip archived and other-entity accounts; refresh the other side of a pair #8561
- seed Land, Unamortized Loan Costs and Loan Cost Amortization accounts for new and existing orgs #8573
- bank rules: pre-fill Create entry with payee, category and repair for a merchant #8406
- cash views drill down to the cash behind an amount #8554
- Documents tab badge says Unsigned instead of a bare 1 #8571
- Cash Flow statement can be filtered to one property #8552
- Cash Flow shows owner money separately and proves operating equals cash net income #8553
- do not print the Accrual / Cash switch; the basis label stays #8551
- cash P&L reconciliation names receivables charged for owners #8555
- spec records the remaining decisions (Activate property, Active state, depreciation suggestion, escrow, loan costs, drafts, defaults) #8539
- cash P&L reconciliation names management fees held in trust and deposit interest owed #8545
October 9, 2026
- guide section for cash and accrual statements, Cash Flow and the default basis #8497
- Keep the function in its owner file #8536
- A managed property with no management fee rate is treated as 0 percent #8536
- spec for onboarding existing owned properties (cutover model, basis, current loan, past improvements) #8539
- Match popup offers an adjustment when entries add up to more than the bank item #8516
- Create transfer from two feed items #8522
- one upload button next to the signing buttons; Documents upload hides while it shows #8534
- Fee charge is recorded before the payment in a batch #8530
- Total Refundable Deposit Held counts money received only #8531
- Cash Flow counts money held at the payment processor as cash #8528
- keep the tenant Communications list inside its container #8526
- Create entry from a bank item, with optional Charge to a repair #8400
- organization default basis for Profit and Loss and Balance Sheet #8495
- exact cash Profit and Loss, oldest unpaid charge first #8494
- tenant Financials: planned deposit row, lease links, Lease picker, deposit figures #8489
- move the Find & Match popup out of the hidden reconcile main so the Feed tab can open it #8399
- start a reconciliation with a feed, pulling posted bank items in as statement lines #8405
- Match popup for feed items (one item to several entries, several items to one entry) #8399
- tenant Financials tab shows the security deposit and a Total owed that includes it #8489
- cash-basis Balance Sheet and an Accrual / Cash switch on Balance Sheet and P&L #8493
- Feed tab on a bank account: status tabs, search, filters, paging, bulk exclude, own URL #8398
- connection health: sign-in-again email and Reconnect, turn-off grace, connected accounts in Admin #8404
- a repair install can take out what it replaces; Mark done says what was installed #8413
- Cash Flow statement (operating, investing, financing and money held for others) #8496
- owner-signin shot now captures /login (the apex is the landing page since); re-shoot owner-signin and owner-property-maintenance-history #8462
- New lease wizard, and Activate now posts the move-in charges and emails what is owed #8456
- Activate a replacement lease behind a tenant who gave notice with an early move-out date #8468
- Email everyone liable on the lease when a security deposit charge is posted #8457
- Owner guide plan prices follow the plans table #8460
- Move Inspections report subtitle no longer shows an internal ticket reference #8455
- lease Documents tab shows Download to sign on paper and Signed on paper, no copy as buttons like the other two #8461
- Plan price in the plans table, synced to Zoho Billing, with a public plans endpoint #8450
- Activate the next tenant's lease while the current lease is on notice, when it starts after the move-out date #8443
- database sum rule so several bank items can match one book entry #8394
- purchase-line pickers -- Replaces names, item-line accounts, property repairs, books #8410
- lines all on another property read as that property, not "+ 1 more" #8376
- a repair's Materials list shows receipts logged on another repair that have a line for it #8375
- long-list filters are type-to-search boxes everywhere #8379
- the database refuses to delete a source record while journal entries still point at it #8351
- bank register and repair receipt lists name the other properties a purchase's lines are on; labels #8334
- line Property on the computer and phone purchase screens; lists show every property #8334
- purchase lines may name their own property (database and server) #8334
- one serial number per live piece of an inventory item, on every path #8359
- repair lists tell same-titled repairs apart; another repair's receipt line is Materials #8358
- a property's actual operating costs leave out shop and stock lines, matching its books #8344
October 8, 2026
- a Shop, no property line counts toward no repair's cost #8341
- Replace from stock lists the same spares on both screens and keeps the ledger whole #8335
- refuse to delete a vendor that still has bills (the cascade left their journal entries behind) #8351
- phone receipt job lines pick their repair, as on the computer #8333
- split a service line across units on bank and receipt lines #8267
- phone system links open the system screen; desktop supply picker finds the right items #8338
- receipt lines count toward the repair the way bill lines do #8329
- the stock movement log records the common area of a property use #8305
- phone receipt lines offer what the computer receipt offers #8326
- a zero-cost lot or use posts no journal entry #8251
- guide notes for editing an equipment piece and for skipped and cancelled stops in the campaigns list #8314
- Use stock on a property can go to a common area #8253
- the Inspection campaigns list reports skipped stops ('0 of 1 done, 1 skipped') #8309
- a split Mark done > Replace gets an Undo on its success notice in the Upcoming Maintenance report #8298
- the Inspection campaigns list leaves cancelled stops out of its 'X of N done' total #8282
- Finishes filled by a use drawn from several stock lots follow the whole use #8265
- Create item on an unmatched scanned receipt or bill line; bank popup preview names the account it was opened for #8269
- one set of words -- Supplies and Equipment in Inventory, Building systems on the property, no more Machines on screen #8194
- screens -- counted items ask added or replacing, Replace offers From stock or Bought for this job, serial optional at install #8194
- place in service capitalizes every cost on the project's jobs -- stock used, receipts, labor and bank withdrawal lines, not only bills #8258
- mobile lease status badge says 'Move-out notice', not 'Notice given' #8277
- campaign day sheet totals say '1 stop - 1 system', not '1 stops - 1 systems' #8279
- Inventory expensed-items note agrees with the count ('1 expensed item is not kept in stock') #8275
- the workflow rule log says who was actually emailed, not what the rule's settings say #8259
- expensed items are off the Inventory list under every filter, with a link under the list that opens just them #8224
- the coding grid's match error shows the server's message, never a bare error code #8246
- bank withdrawals, repair receipts and the reconcile coding grid list what was bought with the bill's line editor #8246
- the renter's notice is called 'move-out notice' everywhere in the UI #8230
- an installed machine's sheet reads Installed, not Unknown #8254
October 7, 2026
- installing a serial machine on a property names the machine on its use movement #8209
- item kinds on the item form (desktop and phone), one record-type list, expensed items out of every picker #8189
- a machine received into storage takes the location's property, not an old stock row's #8161
- closing a job opened from a Maintenance list job row returns to the list and clears ticketId #8210
- History tab shows Notice given and Notice cancelled rows #8211
- Cancel notice returns a lease under notice to Active #8211
- Review step courtesy preview shows a courtesy note when the stop also sends an entry notice #8219
- an empty crew day prints 'No stops' and no notice-not-confirmed footnote #8227
- equipment never rides a bill line, honest Receive note, repair completion and place in service link the installed machine #8188
- One workflow-rule email per person per event, naming every rule that matched #8202
- Workflow rule email and run log say which rule fired, what happened and who was notified #8202
- Property Manager guide covers Inspection campaigns (four steps, saved campaign, PDFs, phone run view) #8184
- checkout sends a compact lease reference so a fee of $10 or more is not cut off at Zoho's 50-character limit #8204
- reject unknown intervalActions keys on campaign create and patch #8187
- Inspection campaigns link in the Tasks menu, below Maintenance #8177
- equipment on the inventory ledger (serial machines, desktop and mobile UI);: warehouse machines need no property;: Inventory CSV download #8147
- Undo of a stop move, tap-to-reveal door codes with an audit log, and saved notes on No access and Tenant not ready #8146
- planner follow-ups: readable item labels, org-zone times, org-local mark-done date, day-sheet footer #8140
- planner screens get Undo move, tap-to-reveal door codes in the phone view, and saved notes #8146
- Inventory Receive offers only operating, credit card and reserve accounts, and preselects only the default operating account #8123
- phone run view names the units #8133
- phone run view -- today's next stop with Navigate, Done, No access, Tenant not ready #8115
- Property Manager guide covers Inventory (items, receive, move, use, return, adjust, count, reorder, labels, mobile) #8095
October 6, 2026
- saved campaign screen -- numbers strip, day tabs, stop actions, PDF downloads #8113
- day sheet, paper-notice packet and campaign summary PDFs #8114
- run a scheduled campaign -- finish stops through mark-done, cancel stop/day/campaign, move one stop, paper delivered, summary; stops list accepts stopId #8113
- Owner Portal screens for the mass inspection planner (list, four-step wizard, stop popup) #8110
- hourly sender for mass inspection campaign notices #8112
- integration teardown removes the auto-created listing row first #8111
- consumables and detectors on the new Inventory #8118
- retire the old per-property Supplies UI and supply routes #8057
- ask before discarding unsaved changes when closing the job popup #8089
- open a Maintenance request or job in a large popup over the list, with Previous/Next #8089
- orphan janitor treats inventory item photos as referenced #8077
- Property Manager guide covers the new Requests and Jobs filter header, Views, and Planned later #8067
- stock adjustments with reason codes; adjust reason recorded in Movements; Receive paid from bank, + New repair in Use #8085
- capital integration cleanups retry the property delete when the draft-listing trigger re-creates the listing #8090
- desktop catalog item picker on bills, Reorder view, label print buttons #8054
- Maintenance Jobs tab gets a Views menu and a Columns picker #8042
- Planned later chip on job lines inside a request (request detail and board sub-rows) #8080
- vendor bill and receipt Inventory lines can name a catalog item #8054
- inventory item catalog, stock-by-location split and movement ledger #8048
- inventory QR label PDFs and low-stock notification #8056
- inventory API (items, stock by location, ledger, receive/transfer/use/count/locations/lookup) #8049
- Planned later: hide far-off scheduled jobs until a lead window #8034
- restore the Capital page Edit view button toggle that the dead-id cleanup removed #8035
- Requests tab header matches Leases and Jobs: multi-select chips, More filters, Views menu #8035
- owner statement lines drop deposit account plumbing and show category labels, not raw codes #8029
- Delete a capital project, or a job on one, created by mistake #8037
- Maintenance Jobs tab gets the Leases-style multi-select filter header #8033
- drop the Zoho Desk database objects (stage 3 of) #8025
- fix the three red checks on the Finishes tab (theme tokens for the age badge, no hex, pager count 9) #8018
- remove the Zoho Desk integration code and Settings UI #8023
- Owner statements polish, Generate disabled for management entity #8007
- snooze the Lease renewal decision reminder on Important Dates #7980
- Owner record showed 0 properties: single-owner lookup read a head-only count from data #7898
- seed and verify scripts no longer write to the dropped invoice tables and Zoho columns #7964
- Zoho Books removal step 2b -- drop stored-invoice tables and ledger Zoho columns #7964
- re-shoot owner-message-tenant; remove the permanent Loading note on Tenant Portal Providers (left behind when the Zoho Books loader was removed in) #7921
- bank account header refreshes after a reserve transfer or top up #7984
- Operating Entity summary tiles share width evenly and wrap their sub-labels #7955
- stop reading the stored-invoice tables #7963
October 5, 2026
- Owner statements -- monthly, cash basis, frozen once sent, email + PDF #3465
- Property Manager guide -- Keep your reserve in a bank account #7902
- Done and Snooze on Important Dates rows (tasks and repair items); guide updated #7972
- admin audit rows for paint brand refreshes and charge types were silently lost #7975
- Zoho Books database removal, step 1; restore deposit payment reconcile #7964
- Linked record card opens repair items and visits #7934
- wide two-part Task popup with linked record card, status and Mark complete, searchable assignee chips #7934
- refresh guide PDF baselines and the ID 303 entry count after the Zoho Books removal #7962
- rent is ledger-first -- credit covers the oldest charge whatever its date, no applying payments to charges #7941
- move the owner payouts routes to routes/owners/ #3466
- Owner payouts -- record-only payouts that take untaken fees in the same pass #3466
- link popup showed a $0.00 share for an unlinked track-only property #7902
- Owner record page replaces the below-grid panel and narrow popup #7898
- Overdue rent summary counts tenants, not invoices #7946
- capital project record Funding, Documents and Accounting tabs #7849
- tenant Financials tab lists charges beside payments and past due counts only charges already due #7935
- project warranty files start attached to the new component at place-in-service #7932
- property reserve kept back in trust (v1) #7885
- Operating Entity record page (summary, properties, owners, bank accounts) replaces the edit popup #7899
- Maintenance triage and Applications landing rows open the record #7926
- the Own-phase draft-listing backfill skips an analysis deleted mid-statement instead of failing the caller #7890
- Tasks due rows open the task; Task List badge shows the task's real source #7923
- repair item Date completed only while status is Done #7922
- capital projects cleanups (dead routes, A8-A16, polish, Accrual History copy) #7850
- Overdue rent widget rows open the lease Rent tab, View all opens Collections Aging #7912
- important dates rows open the actual record; readable CapEx label; rule tasks never born overdue #7910
- reserve bank accounts -- Owner Portal screens #7871
- channel note names tenants in full instead of first name plus last initial #7883
- hide Message a tenant entry points for orgs on an outside helpdesk #7883
- Admin > Tools > Paint colors (brands, preview-first refresh, view-only catalog) #7881
- the auto request's system thread row no longer blocks closing it #7835
- Message a tenant: start a one-off thread by email, text or both #7883
- Finish library editor fills a color from a tint ticket photo #7893
- every capital project draws on the reserve; Funding source becomes a note #7863
- Read from photo -- the AI reads a tint ticket or can label into the finish popup #7869
- record-list headers follow their cells; self-owner checkbox says what it does #7877
- a zero-match Leases URL keeps the filter toolbar #7525
- Legal entity field on the bank account create/edit form #7876
- capital DB gaps -- re-tag backstop, no $0 promote, reopen on new job, plan drilldown #7848
- Messages/board List rows show the +N participant badge like the Kanban card #7708
- Units list building/shared rows get the dense-row tooltip too #7856
- tenant GET /payments drops the dead invoices and payments queries #7840
- Capital Projects holistic review fixes #7843
- tenant replies reach the Coordinator through the seeded assignee rule #7758
- Discounts deep-link scrolls use behavior instant so the ledger re-scroll is not skipped #7520
- bare leaseTab=discounts link re-scrolls to Discounts after the rent ledger renders #7520
- staff and tenant replies can carry attached files #7786
- inset the lease-card subtitle (First month proration) to match its grid #7826
- Change time sheet says Nobody will be told while Don't notify is ticked #7770
- saved views can show on Maintenance, Messages or Both #7802
- each org sends tenant texts from its own ClearlyIP sender; platform sender kept for sign-in codes #7799
- Dashboard capital cards move to the Own pane #7807
- Capital cost lines, template editor, and Save as template #7722
- staff emails deep-link to the ticket; mentions on message tickets open Messages; drop unused owner GET /messages #7797
- Capital page "Save this view" on the shared saved-views table #7710
October 4, 2026
- cancel-with-cost choice reads as body text, and a cancelled project shows no over-budget figure #7700
- warranty documents on a component (several per component) #7765
- pass the ClearlyIP sender to staff text replies and visit notices #7793
- capital project cancel polish (Work done, open-job check order, confirm tone) #7778
- Move job popup lists requests with no category, drops the empty-tenant half of the notice, Escape works after a backdrop click #7783
- the staff reply email to a tenant carries the whole reply and its attachments #7777
- staff mobile lock codes: Change codes on the System screen, code fields on Replace, replace label/date sent where the server reads them #7779
- finish the visit notice after the response is sent (waitUntil) #7738
- retire the capitalize/reverse popups and per-property routes #7766
- Messages is the Maintenance board in its messages scope #7730
- Move to another request on a job row (search popup, one-step move, tenant notices) #7767
- staff mobile Jobs list and Change time sheet, plus the Work strip and Messages tab #7732
- finish photos, paint-job prompt in the repair editor, server-paged Finishes list #7740
- tell tenants when a job with a visit window leaves or joins their request #7738
- Budget changes table on the capital project Overview #7725
- tag every tenant message with its channel; first text and merged inquiries keep replying by text #7744
- Scheduled visit stays hidden on a message ticket after the job list loads #7728
- Capital Projects P4 -- Plan by year, plan coverage, add ages, Needs a decision, Initial rehab check #7698
- staff reply goes to both text and email when the tenant used both #7746
- texts answer their request, and "This time doesn't work" replaces a call #7717
- Tenant Portal says 'Technician tomorrow' for a visit on the next org-local day #7729
- Capital Projects P6 -- abandoned-project expensing (5940) and one reserve draw per project #7700
- Messages opens the real ticket detail; tenant link follows the ticket category #7728
- Property tab gets a Properties | Units | Leases strip; property name on screens inside a property #7723
- tell every tenant on a request when a repair visit is booked, moved or cancelled, and send the evening-before reminder #7715
- Messages list shows primary tenant plus +N and searches any participant #7708
- nav-anchor count includes the Capital projects entry #7696
- Capital Projects P2 -- Capital page, project record, new-project popup, property Capital section #7696
- integration teardown removes the Own-phase draft listing before the analysis #7695
- participant chip row on the owner ticket detail, Add from the lease's linked tenants, +N on board cards, board search finds any participant #7690
- mobile Property Overview Open requests tile counts scheduled requests #7677
- Send renewal offer: name only a lease-linked portal user on the ticket #7681
- seeded rule - remind the sender 15 days after a renewal offer if no new lease is recorded #7653
- bind closeRenewalOfferForLease in the PATCH-lease eval sandboxes #7652
- Renew lease prefills from the renewal offer, writes final terms back, and resolves the offer ticket #7652
- lease renewal offer: Send renewal offer button, popup and one general ticket for all co-tenants #7651
- drop invoiceNoticeRecipients389 from the fixed-window known-offender list (no longer slices by window) #7644
- remove the Providers-page manual payments card and the owner /payments routes #7644
- Retry on an empty GL deferrals list says Nothing needed posting, not 'may need attention' #7670
- tell the tenant when a one-off charge is added (ledger-only charges) #7662
- Manual orgs post ledger charges only from the lease-page New invoice form #7654
- exempt the org's own (internal) owner from the per-owner trust refusal; reword the owner note and list outside owners that would be refused #7650
- seed 'Lease ending soon' task rule 60 days before a fixed-term lease expires #7649
- Keep billing the current rent when a fixed-term lease passes its end date (holdover) #7641
- Print statement shows the tenant text, never a job's internal notes #7633
- seed Termination Date and Notice Period Days for 5 day / 28 day notices #7645
- stop creating a stored deposit invoice at lease activation for manual-provider orgs #7640
- Create jobs from move-in/out inspection findings #7278
- Deposit repair link - typed tenant charge, statement text, once per job #7633
October 3, 2026
- Tenant page in the Lease page's shape (header cards, buttons, tabs, ledger money) #7624
- deleted records no longer leave GL deferrals behind; Retry and the sweep remove existing orphans #7508
- Owner Portal board shows unread replies per request for the signed-in user #7618
- Maintenance requests List keeps its sort in ?maintSort= #7619
- Chat tab unread count on the staff-mobile job screen #7590
- Add job card pickers show open-job counts, vendors by service type #7557
- Work done asks the tenant Was this fixed?; Stuck? pushes the Coordinator (part 3) #7538
- turnover dialog ready-by date and board-row progress bar (part 2) #7538
- Back button on the property-scoped ticket list in the staff phone app #7611
- Deposit ledger ordered by accounting date, running balance walked in that order #7519
- ticketActivityNotify332 expects the Work done tenant label #7535
- maintenance polish -- requests/Coordinator/job/Work done wording, maintenance vendors only, unsaved-change warning #7535
- mobile Open requests tile no longer counts disputes the Tickets list excludes #7602
- URL state for Listings, Applications and Prospects, and the Leases sort #7570
- owner guide sections for Lease Renewal Outcomes, Move Inspections and AI Damage Review #7554
- moveInspectionOwnerUi2902 bounds its return-block slice by the closing brace #7538
- note and photos on a maintenance completion, plus the phone Maintenance tab #7586
- maintenance board searches on the server, pages of 50, seeds number every request #7536
- lease header Term fact no longer clips Month-to-month #7519
- drop leasesListLinks1661 from the fixed-window known-offender list (its slice was converted) #7526
- dense one-line rows on the Leases, Tenants and Units lists #7526
- staff-mobile job screen, part 2 -- Job / Request / Chat tabs #7532
- integration suite proving tenant invisibility of internal/vendor rows and job columns #7537
- a status moved by booking or clearing a window fires job status rules #7575
- apply the compact lease-card title bar to the Rent, Maintenance, Notices & legal, Documents and History tabs #7545
- Deposit tab ledger table gets the Rent tab's record-list styling (was monospace, right-aligned report style) #7568
- reconcile summary adds the beginning balance, so later reconciliations can reach zero difference #7518
- running Balance in account activity follows display order for same-date lines #7512
- job editor shows its request and real Target; Add job is a repair titled by the subject #7533
- Deposit tab is one Deposit ledger card mirroring Rent; no Manage deposit #7547
- rename the lease Ledger tab to Rent #7546
- late-fee and deposit disputes are messages, not maintenance #7543
- link the lease on each Issued Documents row #7373
- sort Vendor and Category across the whole filtered set in the bill lists #7373
- sort the derived Tenants columns across the whole filtered set #7373
- templates without a field layout show and print no notes #7527
- Send notice only lists notes the selected template draws #7527
- fix request saves on Scheduled, mobile job-status overwrite, false task toast, swapped help text #7523
- let the tab code own leaseTab so a bare leaseTab=discounts link opens Ledger; clear unknown leaseTab values. Fixes #7520
- tenant replies work again -- thread clock-stamp trigger is SECURITY DEFINER #7511
- Open requests tile links to the property's Tickets list; Who to call shows office and mobile phones #7466
- scope resolver call-site count to GET /api/tenants (lease detail is a third caller,) #7471
- message-history detail scrolls to top; Opening Balances text columns drop mono font #7405
- users carry an office number alongside mobile; Users page and Profile edit it #7460
- disconnecting a payment provider keeps payment instructions; edits log prior text #7461
- Zoho Payments reconnect keeps widget API key and autopay settings #7455
- Property Manager guide describes the Requests/Jobs maintenance board #7307
- mobile Property screen -- property list landing, Overview/Units/Leases/Systems tabs, property notes #7451
- run-tag the integration values that sit under per-org UNIQUE indexes; document 1052 as serial #7478
- reconcile screen keeps credit-card wording on direct load or refresh #7462
- part 3 -- system/appliance Service history + vendor Jobs list #7243
- part 3 -- 'Techs can message tenants' org setting + 'You're doing job' banner #7244
- allow explicit $0 on charges, concessions, deposit setup and deductions, loan holidays and empty projects #7449
- Opening Balances: fold extra blocker notes, keep accounts table inside its card #7457
- post $0 journal entries for every source, not only supply lots #7446
- every GL deferral source has a retry; owner search covers tenant names; admin list says what each row is #7435
- a zero-cost supply lot posts a $0 journal entry; lease and supply-lot deferrals get a retry function #7437
- GL Deferrals shows what each entry is, links to the record, filters/searches/sorts, and Retry covers vendor bills #7433
- the GL deferral retry sweep also retries vendor bills and vendor payments #7435
- header sorts for Credits, vendor credits, Deposit Interest and Property Owners (whole-set, blanks last) #7402
October 2, 2026
- account page reconciled State, Source filter, CSV export and tenant-name search #7397
- Rent Ledger Send statement emails every liable tenant a debit/credit statement #7350
- Deposit GL Property/Lease and Late Fees Property/Tenant/Status sort across the whole filtered set #7389
- move the Recent strip block above the roll-up mirror #7243
- job appointment window -- staff set it, tenant sees and is told #7345
- sortable columns and vendor links for Tenants, Vendors and the three vendor-bill lists #7373
- deposit Record payment popup takes the same Method + Reference #7365
- lease-page Record payment takes Method + Reference, same rule/description as Collections Aging #7365
- Add as bill from a vendor's emailed attachment #7375
- tenant document-available email link is absolute and honours the org's custom domain #7317
- My work, Stuck? buttons and quick replies on staff mobile (part 2) #7244
- add 5170 Closing Costs Expense to the seeded chart and backfill existing orgs #7315
- sign credit-card reconciliation like its statement (liability account) #7419
- statement amounts drill to the account's journal lines for the report window #7370
- retire the credit-card statement-cycle engine; cards reconcile like bank accounts #7416
- Done-by users auto-watch the request while their job is open (part 1) #7244
- recompute the open credit-card cycle's opening balance from the GL before closing #7409
- To vendor from the request composer (part 2) #7242
- attach the deposit letter PDF to deposit-document emails #7376
- Turnover checklist redirect actually scrolls to the card (retry until laid out) #7324
- skip Playwright's apt install when the runner already has every package #7359
- Repair timing tables sortable on the shared renderer; Upcoming Maintenance links #7357
- two-way vendor email part 1 -- signed work-order Reply-To, vendor replies routed onto the job #7242
- Ledger reports: link record values, sort what the data can sort #7356
- request customers and paymentmethods scopes when connecting Zoho Payments #7381
- show autopay setup errors inside the autopay card #7364
- impersonated autopay consent is an inline checkbox, no confirm loop #7364
- Rows-per-page picker now takes effect on Tenants, Manual Payments, Property Owners, Issued Documents, Late Fees. Fixes #7358
- tenant sees one plain-language update line per job (part 2) #7241
- Opening Balances - split closing costs into Cost Basis and Expense, repost out-of-date entries, bank and credit card opening balances #7313
- turnover part 2 — checklist editor, + Turnover dialog, editable ready-by, Overdue badge #7240
- append the Required Disclosures packet only to a notice that prints the pointer to it #7321
- Add job / link repair refused with a 409 and hidden on non-maintenance requests #7301
- Tenants and Units list filters are multi-select, like the Leases list #7288
- staff mobile app signs in with org Zoho SSO #7311
- user-saved maintenance board views (personal by default, optional share with the org) #7291
- Send notice form shows and overrides every *_note field #7300
- Send notice form prefills Amount Due and Cure Deadline, Cure Deadline is a date picker #7296
- notice box render allows every blank-by-design *_note field empty (late rent notice could not be sent) #7294
- Team / Coordinator / Done by labels, Coordinator auto-default, Done-by default, Source + Request type rule conditions #7237
- board filter row (Property / Team / Coordinator / Done by / Source / Type) + saved views (part 3 of 3) #7236
- capital boundary -- capital/forecast off the maintenance side; no crossing once an item has costs #7239
- board tabs Requests / Jobs / My work / Done; Repairs list becomes the Jobs tab (part 2 of 3) #7236
- findings from one visit share one Inspection follow-up request #7238
- board shows each request's jobs as sub-rows; job-ref search (part 1 of 2) #7236
- Leases list ignores superseded responses and keeps results visible on refetch #7227
- every job gets a parent request in the database; property-level requests (part 1 of 2) #7264
- refetching a server-paged list no longer hides the toolbar, so back-to-back filter ticks land #7227
- request status rolls up from its jobs; panel shows why (part 2 of 2) #7235
- staff mobile Mine includes tickets I'm the tech on via a linked repair item #7230
- map message-less document-upload error codes to plain sentences #7189
- add scoping/review-only section to the worker playbook #6743
October 1, 2026
- fix vendor/maintenance-user pickers showing empty on a ?repairId= deep-link open #7191
- Bank Fee Charged/Paid in the Collections Aging batch drawer #7208
- Leases list filters are multi-select, Status defaults to non-terminated #7210
- re-render the work-order box once the saved vendor is selected on a deep-linked repair item #7128
- edit and delete supply items; notes in the repair supply picker #7178
- lock Zoho hosted checkout to the charged payment method #7206
- let the user pick which bank account a vendor bill payment pays from #7162
- vendor work-order send sets Reply-To to the unmonitored noreply@returngrid.app (item 3) #7161
- show previously signed-off totals after a repair cost reopen #7180
- treat a vendor-bill document as PDF when its storage path ends .pdf #7189
- Send Work Order -- vendor work-order draft/send routes, dialog, templates, tenant-code disclosure audit #7129
- PDF receipts on vendor bills get the receipt scan, budget gate and call log #7179
- quick-add a vendor from the repair item (pop-up, duplicate-name warning, selects the new vendor back into the picker) #7172
- charge individual repair cost lines to a deposit deduction (with) #7008
- record the real signer/reopener on repair cost sign-off #7168
- fix misleading '0 of 8 units' refusal when deleting a used materials receipt #7139
- Assignment tab - independent maintenance-user and vendor pickers, work-order status box #7128
- tighten detail-grid label spacing so a wrapped 2-line label doesn't crowd its value #7139
September 30, 2026
- repair item cost sign-off gate #7007
- vendor bill Property picker lists owned properties only and is type-to-search #7142
- give vendor bill row actions real spacing instead of touching buttons #7145
- reverse a rejected vendor bill line by line; count bill-keyed reversals in capitalization #7134
- compute a real Next invoice date on the rent ledger card #7141
- rejecting a vendor bill applies's inventory-lot rule #7138
- one property per vendor bill; GL context from the bill's property #7126
- Costs tab cards full-width and bordered, + Add vendor bill #7006
- materials receipt company-account payment restricted to operating accounts #7052
- reject an under-remainder inventory quantity on a materials-receipt partial split #7091
- only send a deposit-ledger patch field when it actually changed #7100
- hide the three Save-the-repair-item-first notes once the item exists #7080
- surface the inventory-lot-consumed delete refusal as 409, not 500 #7105
- style block-level .hint outside a field label in the Owner portal #7098
- System Defaults appliance-growth hint rendered at body size -- use field-note #7098
- mobile Log Hours surfaces the real not-a-maintenance-user message #7052
- fix deposit-ledger edit confirm's held projection, reason bug, and modal overflow #6443
- block the silent $-gap partial-split path on itemized material receipts #7005
- AI receipt-scan for vendor-bill document images #7066
- deleting a credit-card register row refreshes the Amount-owed headline #7060
- numeric-aware sort for the staff mobile property picker's Address mode #7033
- eviction-waiver payment confirm no longer says the wrong thing is undoable #7082
- show repair supply-use line and total costs to the cent #7080
- show the Tenant door-access code, not just Staff #7037
- exclude the current email from GET /api/users formerEmails #7064
- refuse editing a rent/deposit ledger entry that has already been reversed #7046
- widen repairFormModalTabs4277 window past the new inventory-pick widget #7003
- add "Used from inventory" pick widget for repair items (fractional FIFO draw) #7003
- apply credit-card statement-cycle fields on bank account create #7053
September 29, 2026
- merge Documents into Photos tab, split billing into a new Costs tab #7006
- re-enable the maintenance watch star after a successful toggle #7049
- treat 200 from vendor-category DELETE as success #7055
- add a Duplicate row action to Workflow Rules, clone as new-rule seed #7036
- preserve historical Saved-by logs, resolve renamed emails via lookup table #6991
- add Supplies section to Inventory page (no-bill add/restock, admin write-off) #7001
- collapse the event-rule trigger chip wall into two scoped dropdowns #7035
- Manage users -- collapse the Add user form behind a button, list first #6994
- add showing photo capture UI, fix raw times/attendance codes #6726
- show a real message when a non-maintenance user opens Log Hours #6725
- filter staff mobile Units list/detail to owned properties #6987
- add Rent Ledger domain to the workflow-rules builder UI #6972
- stop leaking the raw login email via the Saved-by cell's title attribute #6890
- credit card list + detail reconciliation tie-in to statement cycles #6949
- credit card statement payment modal + liability-aware transfer posting #6947
- credit card statement cycle table + cycle-close job + interest posting #6948
- fix maintenance-category toggle showing raw slugs instead of labels #6895
September 28, 2026
- staff mobile Units screen (list, detail, edit) incl. door access #6911
- Staff mobile v1 move-in/move-out inspections #6912
- staff mobile Leases screen (list, detail, edit) incl. move-in/move-out dates #6910
- Match time-rule copy to selected target #6915
- staff mobile Tenants screen (list, detail, edit) #6909
- fix workflow-rule dry-run preview never matching a tag condition #6925
- fix merge-field chip always targeting body, and swallowed save-error detail #6923
- fix [hidden]-inert CSS on new search-results panel and shared tabs strip #6908
- staff mobile nav shell rework -- 3-icon grouped nav (Work/Property/People) + search bar #6908
- delete the last actualCost write paths -- desktop and mobile now both record real cost through labor/materials entry UI #6868
September 27, 2026
- staff mobile labor-hours + materials-receipt entry for repair orders #6902
- surface HTTP status + retry on share-with-users teammate load failure #6905
- Enrich & create kicks an immediate sweep for a never-swept email #6900
- move maintenance-user categories + hourly rate from grid row into Edit User modal #6895
- Staff mobile properties list shows full address, systems list gets desktop row parity #6889
- staff mobile Building Systems full detail/edit parity #6881
September 26, 2026
- make internal labor entries editable in place instead of delete-only #6866
- internal maintenance labor hours with burdened rate and payroll-reclass GL posting #6866
- materials receipts -- log, post to GL, void #6864
- mobile Building Systems property picker gets phase filter, sort, search #6872
- add workflow rule tag conditions #6850
- add merged ticket status to workflow conditions #6849
- debit vs credit card is not the same GL treatment -- files #6859
- fix 5900 account collision, resolve payroll-posting mechanism -- only 1 question left #6859
- staff mobile ticket detail gets Owned by / Assigned to controls; status now saves immediately #6840
- staff mobile ticket detail gains linked repair items and the scheduled-visit card #6841
- give staff mobile ticket search a real accessible name #6836
- re-shoot tenant-messages now that's caveat fix is live #6762
- mobile a11y spec gains coverage for system/appliance detail and the add-item flow #6832
- repair general inquiry workflow assertion #6820
- staff mobile Building Systems get full detail fields and an add-system/appliance flow with per-type dynamic fields #6827
- add maintenance Kanban keyboard shortcuts #6798
September 25, 2026
- mobile maintenance ticket detail gets reply thread, internal notes, and @mentions #6820
- staff mobile maintenance tickets get an All tab, status/priority/search filters #6821
- duplicate detection badge + manual N-way merge for maintenance tickets #6816
- mobile repair order status dropdown adds 'blocked', deliberately leaves 'forecasted' as system-only #6805
- saved/canned replies library for maintenance tickets #6815
- mobile showings list shows a real summary instead of '[object Object]' #6803
- mobile replace flow now sends path+fate, matching what the server requires #6800
- default billing-address country to US on the Zoho autopay widget #6787
- tenant move-in inspection keeps its checklist after a photo upload, heals wiped drafts, and submit sends signatureName #6784
- handle Zoho Payments refund.succeeded/refund.failed webhooks #6782
- Staff mobile Appliance/Systems checks -- property picker, condition update, replace, end-of-life push #6727
- truncate long deposit statute citations with a show more toggle #6783
- bulk reassign/reprioritize/status-change on the maintenance List view #6742
- give the maintenance-reply mention dropdown its own positioned wrapper #6706
- Staff mobile Repair Orders (my queue, detail, cost entry, mark done) #6725
- use real users name columns for watcher rows #6741
- ticket watchers with seeded assignee/watcher notify rules #6741
- staff mobile maintenance tickets -- Mine/Groups list, detail, status update, assign-to-me, photo evidence #6724
- task-aware time rules -- backend sweep/validation/dry-run + builder UI #6718
- replace maintenance ticket's raw linked-task box with a Scheduled visit card #6717
- staff push notifications as a new Workflow Rules action type #6723
September 24, 2026
- repair item <-> maintenance ticket linking, rebuilt many-to-many #6711
- persist Zoho Payments rejections, owner reason token, live tenant notice links #6700
- @mention a staff user in an internal maintenance ticket note to email them #6706
- post ledger charge for ad-hoc Zoho Books invoices #6638
- full-width Tenant Portal Maintenance/Messages lists, create forms moved to modals #6693
- add per-rule custom email subject/body to workflow rule notifications #6692
- move Invoices off Tenant Portal Providers into its own Reports > Financial page #6690
- repair rebased catalog-link checks #6676
- fix Assign to tenant/owner toggle 400ing on a seasonal custom item #6696
- tenant record page opens the maintenance ticket popup via &maintTicketId= and its existing row button #6702
- fix wallClockToUtc's 112-candidate offset scan causing 14s+ maintenance board loads #6663
- fix Create Maintenance Request's Lease/Tenant combobox dropdown never appearing #6688
- fix Maintenance Interval category display bug and make Item/Category/Type/Action genuinely editable #6672
- make Create Maintenance Request's Lease and Tenant pickers type-to-filter #6681
- move the Credits kind tab bar out of creditsListCard so it survives switching to Vendor prepayments #6680
- fix workflow rule 'send notification -> specific user/team' silently notifying the wrong recipient #6679
- preserve capital-returned flag in Compare #6667
- apply-to-charges tops up an existing partial allocation instead of colliding on insert #6671
- fix Maintenance Intervals header alignment and let custom items be tenant-assigned #6664
- add temp per-step timing to /maintenance to localize 15-20s load #6663
- preserve manual payment tenant attribution fix #6637
- Collections Aging includes unpaid security deposits; split one receipt between deposit and rent #6637
- keep nested custom type dialogs interactive #6647
- read dashboard refinance cash-out from loan events #6650
- accept real System catalog categories #6646
- rebase onto main; drawer's '+ Add tenant' is a real button, not a text link #6630
September 23, 2026
- seed 1056 Undeposited Funds - Checks & Cash for every org, with a default deposit-target account #6631
- record a stack of rent payments from Collections Aging #6630
- include bank entries in property OpEx and reconciliation #6611
- vendor bill entry screen supports multi-line splits across categories/GL accounts #6625
- vendor bills support multi-line splits across categories/GL accounts #6613
- tenant portal now sees "Whole building" scoped lock codes #6598
- fix invisible custom-type modals, empty System item picker, and hidden category link on edit #6622
- add signed evidence download for notice-service records #6608
- make posting account overrides always changeable #6593
- custom Building System types get a required category picker, linked to Maintenance Intervals by catalog ID not by name #6601
- bill's own category now overrides vendor default GL account in posting #6612
- make workflow-rule dispatch failures visible instead of silently vanishing #6614
- add edit-in-place + audit for notice service records, plus Service history detail modal #6596
- repair posting accounts cold-load admin actions #6210
- fix vendor category Posts-to combobox rendering off-screen #6599
- restore tenant maintenance receipt delivery #6578
September 22, 2026
- add a live 'Use it' button to the Rent position card #6586
- custom maintenance items can be System-category and support seasonal (fixed calendar date) cadence #6563
- fix pinned reply-addressing template count for the new confirmation template #6578
- notify tenants when a maintenance ticket is opened #6578
- show the GL account's code and name in Vendor Categories, not its uuid #6571
- anchor first maintenance due date to the asset's recording date, not the report's run date #6570
- drop the unreachable `dynamic` flag left on the vendors category filter #6562
- fix Vendor Categories' "View vendors" link -- pass the category key, not its uuid id #6556
- attorney vendor category + eviction case attorney picker #6515
- "View vendors" lands on the Vendors list filtered to that category #6556
September 21, 2026
- add a real seeded sample body for Misc Notice #6539
- Owner Portal screen to manage vendor categories and GL accounts #6518
- fix stateFromAddress country-suffix bug and notice-modal radio alignment #6540
- restore utility-field grid in send-review Step 3, surface send errors inside the modal #6544
- warn before a partial payment may waive an eviction #6517
- show sent notices in the lease record's Notices card #6543
- scope the workflow-step assertion structurally, not by character count #6538
- pause automated tenant messaging while an eviction case is open #6516
- lease record legal case section — open, advance, close, header chip, possession-recovered auto-write #6513
- resolve Bank Fee Paid's cash leg to a postable account, and stop swallowing the failure #6529
- Tasks - Evictions worklist — portfolio list of open legal cases with per-case deep link #6514
September 20, 2026
- name the side in the locked move-media label #6504
- label the move-media list as an archive once the record locks #6504
- swap move-media heading and intro when serving a move-out #6499
- lock completed move-out media capture #6498
- keep locked move-in media viewable, lock only capture #6296
- disclose autopay payment fees #6487
- lock the move-media card after the window closes #6296
- apply configurable tenant payment fee to scheduled autopay charges #6482
- show counts in void-signature owner confirmation #6486
- tenant payment modal method toggle + fee line split #6480
September 19, 2026
- allow arbitrary payment fee input values #6479
- tenant payment fees backend model + Owner Portal settings panel #6479
- mark ledger rows detached when an org's Zoho Books integration is switched off #6472
- don't call Zoho Books when the org's integration is disabled #6470
- post a reversing rent-ledger entry from the UI, plus an honest label for a mis-keyed payment #6453
- hide Add Deposit's Zoho invoice checkbox/note for non-Zoho orgs #6467
- warn when a late fee is left larger than the charge it is attached to #6456
- Add Bank Fee Charged / Bank Fee Paid to rent payments and posting accounts #6426
- Waive action on late-fee rows in the rent ledger #6462
- fix New invoice modal's locked Lease field showing only 'Tenant' #6458
- edit a rent ledger record in place, with an audit trail the panel can show #6442
- rename _mi* helpers to _ni* to stop shadowing move-inspection's _mi* namespace #6424
- add New invoice action to Rent Ledger card, lease pre-locked #6424
- refuse to edit a synced charge that has money applied to it #6451
- show Zoho sync badges on rent ledger #6437
- add balance/rent/lease-end summary strip to Tenant Rent & Invoices page #6422
September 18, 2026
- tell "your filter excluded everything" apart from "no usage yet" on the Usage log #6349
- org-level Settings UI for building-systems/appliances catalog visibility #6410
- disable and relabel Mark done as Completed for same-day tenant task completion #6408
- one maintenance completion per task, per lease, per day (DB-enforced) #6400
- server-derived Undo on the asset register, plus Mark done/Undo in the record sheet footer #6371
- retain inactive catalog entries for local restore #6383
- stop a tenant recording the same maintenance completion twice #6380
- document cloud-browser file-input workaround #6381
- fix the wrong-runner trap behind three phantom door-code failures #6375
- show a tenant home task's completion date so Mark done stops looking like a no-op #6353
- move asset register inline styles into CSS #6374
- per-asset replacement cost override, and stop install cost doubling as the estimate #6357
- mark a maintenance reminder done from the asset register's Next due cell #6355
- report and losslessly repair drift in the shared base clone #6321
- auto-open a maintenance ticket after the overdue grace period #6315
- show tenant maintenance status and photos #6314
- surface move-inspection window and on/off on the lease record card #6301
- cover maintenance reminder ledger in org deletion #6313
- send tenant maintenance reminders (heads-up + configurable overdue nudges) #6313
September 17, 2026
- add Tenant Portal 'Your home tasks' section with photo + checkbox attestation #6312
- Renew lease is bordered unconditionally (Tony's ruling) #6253
- a closed move-in inspection window actually locks the tenant out #6296
- attach a one-off read-only document when sending for signature #6299
- Units list now honors the page-size picker end to end #6284
- maintenance intervals list keeps your page after a row action #6293
- Enable Zoho SSO checkbox is now the single source of truth #6288
- maintenance interval defaults get deactivate and custom-item support #6262
- Rental Listings quick link also prefers an org's active custom domain #6272
- Quick Links prefer an org's active custom domain over tenant.returngrid.app #6270
- move-in inspection window + per-lease enable/disable override #6263
- label every deposit GL entry type #6153
- fix the run-on context line in the Posting accounts picker #6041
- Send an addendum on an active lease #6253
- write surface for bank entry category -> GL account overrides #6219
September 16, 2026
- Posting accounts screen — show where reconciliation entries post, and repair a dead-ended row #6210
- Zoho Books reuses one OAuth token per sweep instead of one per call #6186
- fix deposit GL held-summary double-count and sync ledger TYPE labels #6153
- pairing report counts every lease, and only the ones that can still bill #6175
- show and set a lease's Zoho Books customer, including creating one #6175
- outbound Zoho Books push reads the lease's own customer pairing first #6175
- cash invested becomes cumulative, cash-on-cash shows Capital returned #6133
- persist a classified failure reason on rent-ledger Zoho pushes #6124
- make the rent-ledger Zoho push report a sweep that silently does nothing #6124
- show refinance cash-out in the dashboard, landing and Compare CoC #6189
- account for bank reconciliation row-action closer #6214
- remove a hand-added bank statement line, and warn on completing with lines unmatched #6214
- pick the in-force loan by DATE, and carry its rate into the KPIs #6132
- refuse a pre-existing worktree destination instead of rm -rf'ing the caller's files #6223
- explicit "historical payment" flag on the deposit record-payment flow #6154
- seed the rounding + adjustment accounts the bank rec posts to #6184
- bank-rec remainder "Bank fee" posts to the bank fees account #6184
- cash-on-cash at exit counts cash out of pocket, not the whole price #6187
- validate the reconciliation start modal before it closes, inline on the field #6197
- put the credit under "Money out" in the bank account register #6196
- store the real Zoho sync failure reason, not a generic slug #6124
- fix deposit ledger read path — stash starvation + charge/payment double-count #6152
- read the loan amount off the in-force loan event once a property is owned #6132
- reframe the single-shot reconcile as a historical/backfill record #6143
- disable Complete above the threshold, and stop the adjusting entry 500ing on a null legal entity #6052
- never leave a remainder journal entry behind when the match fails #6130
- make the Units-step footer total follow the rents you type #6135
- persist the Zoho Books customer id so an ad-hoc invoice mirrors back #6139
- let a Zoho Books org create a one-time invoice from the Owner Portal #4881
September 15, 2026
- bank reconciliation gets Find & Match and bulk coding #6051
- a refinance rewrites the down-payment field the KPI pipeline actually reads #6125
- the label taxonomy sweep can no longer die writing its own report #6103
- recording a refinance now flips a cash-purchased property to financed #6120
- watch Daily hygiene dispatch in the main-red alert registry #6114
- bank entries post to any of the org's own GL accounts, and allocate to a property and units #6104
- a book transaction whose source document was deleted is matchable again #6101
September 14, 2026
- New Entry modal records deposits and withdrawals, not only transfers #5900
- US-OH deposit interest was 100x too high, and balance-before broke ties at random #6088
- tenant portal /login no longer read as an org slug #6098
- register Delete and Void sent the journal-line id, so both 404'd #5900
- fix scopeToOrg(bare .from()) throwing before insert/update/upsert in bank reconciliation routes #6092
- store the real GL balance on a completed reconciliation #6079
- fix WCAG AA contrast failure on completed-task hover/focus state #5833
- report ledger changes since the prior reconciliation without a new audit table #6078
- bank reconciliation Phase 5 -- start-reconciliation modal discrepancy handling, history list, trust three-way, mobile layout #6053
September 13, 2026
- bank reconciliation Find & Match + bulk cash coding (phase 3 of) #6051
- Deposit Interest -- Annual Disbursement screen #6000
- add the deposit-interest settlement types and their GL posting #6000
- document GL posting-order vs allocation accounting-date attribution #5969
- bank reconciliation completion + reopen, phase 4 of #6052
- bank account register — list, filters, per-record URL, delete and void #5900
- bank entries gain deposit and withdrawal, routed by category #5900
- repair duplicate vendor payment GL ownership #5966
- vendor prepayments and credits, end to end #5966
- list 1055 before 1060 in the seeder so codes stay ascending #5896
- put the three changed GL functions in their registered owner files #5896
- payment processor clearing account, end to end #5896
- lock transactions in closed periods #5906
- remove dead default deposit-card ids #6038
- add a date-range filter to the Tenant Portal rent ledger #5661
- the statutory deposit cap reads the charge, not the payment #5957
September 12, 2026
- send unfilteredTotal from the four server-paged list endpoints #1680
- post deposit interest monthly as a tenant-visible liability #6000
- a deposit correction can change or clear the bank account #5950
- deposit held/refundable totals read the money that arrived, not the charge #5957
- renters see the deposit payments that moved their balance #5949
- a refunded deposit credit reduces deposit held #6001
- bank account entries -- transfers between an org's own accounts #5897
- allow ON DELETE SET NULL to unlink a deleted invoice from a rent ledger entry #5924
- disable Transfer/Refund when the lease lacks net credit #6010
- repair fixed-window regression assertions #6009
- gate a credit refund/transfer on the LEASE's net credit, not just the entry's #5999
- hide raw API error codes from Owner Portal #5998
- don't name the jurisdictional rules table in a comment inside the accrual sweep #5926
- segmented, backdated, auditable deposit interest accrual #5926
- fix GL drilldown URL and detail visibility #5876
- label unpaid deposits with charge date #5953
- consolidate lease display joins #5981
September 11, 2026
- parallelize sequential DB reads on the owner maintenance board #5958
- fix jsonb .contains() 500 on vendor category/serviceType filters #5952
- post an unapplied tenant overpayment to 2130 Tenant Credits Payable #5965
- one credit can now be applied to many charges with a per-target amount #5976
- an untargeted credit no longer reaches a future-dated charge #5972
- one allocation engine for rent and deposits, and overpayment posts as a credit #5956
- one deposit holding account per bank account, not two #5954
- let the PM say which bank account a deposit landed in #5910
- sortable GL account drilldown columns + drill-in to journal entry #5876
- repair disabled expense button theme token #5871
September 10, 2026
- one deposit posting path, payments as their own ledger row #5894
- keep _dmLedgerRowActionsHtml pure and reload its new deps in the ledger suites #5905
- allow deleting any transaction until its chain is bank reconciled #5905
- 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
- vendors.category -> vendors.categories (jsonb array) + fold in bill-level category #5874
- warn inline when the deposit-holding checkbox disagrees with the org's GL deposit default #5858
- reparent a clipped .row-actions-menu panel to document.body while open #5862
- allow operating accounts for the deposit cash flow #5857
- bind maintenance List/Kanban toggle clicks unconditionally at setup #5850
- surface the close/reopen reason on the accounting periods row #5808
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
- open-ended operating-expenses list replacing flat otherExpenses field #5812
- 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
- remove locked accounting-period status, require reason on close+reopen #5808
- Move Loan product to top of Financing section; move Lender/Loan ID into More financing details #5813
- 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
- stop navigating a tab to the AI review video download URL #5760
- 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
- move Refresh into .field-row-toolbar so it stops wrapping away from Export #5765
- per-org configurable rent-ledger reminder/overdue notices for tenants #5769
- give the GL report filter-row toolbar its own line #5765
- drop noopener from the AI Damage Review video-tab window.open #5760
September 7, 2026
- fix silently-blocked video tab in AI Damage Review download button #5760
- 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
- fix sendable-bundles defaultBundleId resolving null for an explicit ?purpose= outside the renewal window #5725
- add per-row drill-down from GL reports to Chart of Accounts #5718
- add on-demand download for move-out walkthrough video + transcript #5676
- add disclosure-triangle grouping to Balance Sheet and P&L reports #5717
- restore late-fee dispute action in the unified rent ledger #5687
- add per-line owner/property/description to the journal entry form #5697
- fix entityId dropped on cold load across trial balance/P&L/balance sheet #3462
- fix Chart of Accounts Type filter matching zero rows for every value #3453
- 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
- re-bind move-inspection-open click listener after skeleton swap #5675
- fix time-rule action cards never rendering after adding an action #5680
- add a discoverable entry point for creating a time-based workflow rule #5679
- fix _ldDownloadForPaper missing return causing renewal paper-download to hang #5678
- 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
- fix SHA gate MISSING due to unpaginated check-runs fetch #5595
- 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
- resolution detector no longer requires the literal word "closing" #5610
- 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
- fix lender/loan-product blank-after-conversion race in buy-modal prefill #5414
September 5, 2026
- keep down-payment $/% toggle usable in locked (Own/Sell/Sold) phase #5514
- carry lender + prepay penalty forward on buy-transition loan data #5414
- correct inaccurate Loan tab comment, accept Renewals as real first consumer #4377
- extend Own-phase sensitivity grid to sell/sold phases #5451
- fix scopeToOrg call-order regression on the damage decision PATCH #5417
- wire document-scan usage into the Owner Portal Usage and Charges page #2430
- add missing HOA fee line to ledger breakdown (Metrics tab + PDF/Excel export) #5403
- fix room tag and move-out video label in move-media upload list #5450
- mount docAiCard key points in document detail, add AI scan status row and upload Property-wide checkbox #5438
- fix Assumptions confirmation note to name only taxes/insurance, not management fee #5442
- add Settings > Money nav entry for Unposted GL Entries #5452
- auto-attach existing units to a newly created draft listing #5393
- fix AI damage review cold-load race on direct-URL navigation #5418
- fold HOA fees into multi-year projections, Compare, Dashboard and exports #5425
- announce it when a new bank account becomes its type's default #5394
- fix loan tab layout - explicit grid-row pairing, table min-width, mobile stacking #5373
- fix GET /api/units/:id/documents to include property-wide documents #5434
- wrap PATCH /api/inspection-damage-items/:id in try/catch to stop the hang #5417
- 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
- fix mainPanelUnitInfo missing closing div nesting 9 sibling tab panels #5387
- Own-phase Sensitivity varies rent x expenses, not purchase price #5366
- widen Loan tab grid collapse breakpoint to ~1000px, move amortization schedule to bottom of stack #5373
- add the missing search box to the Property Documents filter row #4256
- scroll the lease record shared message into view on error #5357
- make pre-push's board check constant-cost, and stop safe-push reporting success when killed #5353
- 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
- use the loan's own origination date, not acquisition close date, for the Original loan segment #5291
- fix Maintenance Hours holiday checklist wiping after Save #5316
- fix time-rule action/condition editor reading the wrong builder state #4309
- 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
- implement rule 6 -- KPI horizontal-scroll strip + collapsible Filters button #4465
- add missing Ticket type filter to workflow rule log, fix pinned-entry count undercount #4310
- tenant maintenance ticket view shows 'Property' for property-wide location #5209
- reconcile the Visit Type select's value against restrictFamily, not just its options #5131
- 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
- resolve asset ids to names in Panel A machine-history notes #5179
September 2, 2026
- auto-create and pair a tenant's Zoho Payments customer at autopay enrollment #5160
- Hide Assumptions tab taxes/insurance fields on Own+, sync Renewals saves back #5145
- fix refi merge writing loan term into amortization mirror field #5062
- GET /api/units default response path now honors beds/occupancy/q filters #5138
- add a lightweight includeOccupancy opt-in to GET /api/units #5125
- show a loading skeleton on tenant dashboard inspection cards #5135
- fix + New inspection defaulting to Prospective Tenant type #5131
- fix dead AI Damage Review button and misleading empty-file upload error #5129
- 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
- purge storage for soft-deleted move-inspection media, any kind #5034
- 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
- fix note/modification loan events silently dropped from the Loan tab timeline #4471
- merge Vendor documents + Linked documents into one widget card #4277
- finish 'Priority window'->'Target timeframe' rename in remaining screens #2704
- confirm before sending a portal invite, add Resend invite for pending rows #5004
- record the Zoho GL mappings connection failure reason for staff diagnosis #4994
- 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
- replace Renewals tab Edit buttons with dedicated Insurance/Tax popups #4919
- auto-post concession ledger entries for active discount schedules #4888
- fix Return deposit wizard silently dropping existing ledger deductions #4908
- multi-select units/areas/storage when adding an asset item #4845
- fix Continue button opening move-in inspections as move-out #4898
- Renewals Insurance/Tax Edit buttons scroll+expand Ops handoff section #4851
- restore display text on the compare picker and asset item picker comboboxes #4893
- filterable Default GL account combobox + hide rating/rate fields for non-service vendor categories #4848
- Tier 2 walkthrough recap — read API + Owner Portal panel #4685
- enqueue Tier 2 video-analysis job on move-out inspection submit #4685
- make the per-row Zoho Account picker type-to-filter instead of a long plain dropdown #4852
- Gemini Files API client for Tier 2 video damage analysis #4685
- Vision probe no longer reports a valid key as invalid #4842
- fix deposit ledger running balance double-crediting on holdback release/convert #4836
- show Bill approval on the read-only vendor info panel; explain no bill delete #4824
- 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
- retention/deletion sweep and pre-deletion warning for AI-review videos #4689
- 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
- add the missing 'unavailable' option to the denial-reason select #4374
- 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
- keep the vendor form's archived default GL account visible instead of silently clearing it #4753
- show Default GL account on the read-only vendor info panel #4745
- add missing Lender option to the Vendors list Category filter #4744
- replace email-sweep with in-app carrying-cost date tasks #4641
- add applicant edit/add/remove to Application Detail page #4703
- register move-inspection-videos in the org storage purge registry #4686
- two-portal move-inspection media capture (upload + in-browser recording) #4686
- drop duplicate insurance-renewal/property-tax-due date columns #4710
- constrain the groups grid track, or mobile rows overflow off-screen #4465
- Tier 1 AI damage review (Sonar photo comparison + per-item review UI) #4684
- add Property Renewals & Expenses tab #4654
- add parcel ID + taxing-authority vendor picker to buy-transition modal #4653
- wire Workflow Rules evaluator into application submit + status-change, retire hardcoded owner alert #4644
- move comp radius/lookback fields to Rentals > Comps (Own+), keep on Assumptions pre-Own #4659
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
- label select-kind workflow rule condition options/chips, not raw enum #4601
- listings table row-level Unpublish, reviving the listing-level unpublish endpoints #4575
- opt reports, exports and bulk mutations into the 60s Supabase bound #4568
- 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
- pin that mobile asset rows deliberately omit the jurisdiction-inspection badge #4469
- make .asset-modal-sheet input box-sizing: border-box unconditional #4468
- re-mint the scoped JWT per use in integration suites instead of holding one 60-second token #4482
- build event rule builder frontend (4-step wizard, deep link, dry-run) #4308
- 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
- rebuild Rentals > Units tab summary as compact stat-strip + add mobile card view #4382
- fix Repairs & Improvements card cell overlap on mobile #4366
- default Punch list to a non-empty filter and fix the (0) badge #4368
- 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
- fix Deal Inbox accepted candidate card never leaving the inbox #4352
- 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
- stop the sell-phase hint from force-appending the inspection sentence #3426
- 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
- promote Repairs to its own top-level nav page, rename Task List #4267
- 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
- make Reports Center rows real links so Cmd/Ctrl-click and right-click open in a new tab #4245
- clean up Financing tab locked-loan display #3798
- cooperative per-org Zoho Books rate gate, call log, and 429-aware backoff #4189
- 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
- wire the Analyze-phase Loan product dropdown to autofill term + amortization #4185
- 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
- add vendor form Default GL account control ( follow-up) #4041
- 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
- add inline "Create new lender" flow to all 4 lender selects #4006
- fix blank Monthly Rent / Security Deposit / Pet Deposit on lease record #4109
- canonical prepay-penalty union shape (type + percent/amount + expires + notes) #3885
- 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
- drop the dead vendor-bill dollar columns #3572
- Title Case the deposit ledger CSV export preamble title #4028
August 25, 2026
- replace Reports nav dropdown with a Reports Center landing page #3741
- 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
- restore cash-rollup-unflip call dropped by bank-account archive extraction #3540
- let GET /api/gl/accounts/:id/changes serve a deleted account's history instead of 404ing #3745
- auto-populate buy-modal financing from analyze phase, fix balloon help text, auto-set insurance renewal date #3970
- add create-tenant flow to lease record's Add-tenant form #3979
- treat unconfigured Zoho Books OAuth (missing refresh token / books org id) as a permanent per-org failure, not a sweep-aborting throw #3775
- add Give notice UI to the lease record page #3957
- allow archiving the last live bank account of a purpose #3678
- include the entry amount in the GL Zoho sync alert #3701
- merge duplicate account rows and unify zero-suppression on the cash-basis P&L #3779
- detect Zoho Books OAuth scope errors distinctly and stop them aborting a multi-org sweep #3702
- add GL bank-account integrity sweep #3884
- locate the bank-account create path semantically, not by file and path prefix #3930
- make analysis-to-owned conversion a 1:1 canonical copy #3835
- warn before claiming a skill-edit ticket, and stop parking them as Needs-Human #3843
- remove every read and write of the vendor-bill dollar columns #3572
- strip the assumption tint, not just the badge, once loan terms lock #3891
- fold corrections to the lender, loan product, balloon date and notes #3846
- move the create invariants of/ to their new SQL home #3679
- make bank account create atomic in one transaction #3679
- 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
- document all six board-status gate carve-outs, not three #3761
- loan field alignment spec #3826
- populate the cash-basis CSV's blank Window header field #3778
- populate the Loans report Down Payment (plus lender/product/balloon) from the acquisition record #3789
- unify the two bank-account create paths behind one helper #3806
- ask whether WE pushed a history entry, not whether the tab has any #3799
- backend for the Loans report — list/export API, 6 of 8 approved enhancements #3789
- reports Back buttons go back one history entry, not hardcoded home #3760
- audit every report and KPI widget for the wrong-field class #3764
- Title-Case the Accounting Periods nav label to match its siblings #3538
- serialize the live-DB integration job so parallel PRs stop wedging each other #3707
August 24, 2026
- warn before a charge type has no resolvable GL account #3584
- property/asset opening balances (preview + confirm posting) #3460
- accounting periods screen (Settings > Money) #3538
- bank account create / edit / archive / make-default #3526
- reject a loan amortization shorter than the note term, and say which is which #3646
- 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
- post vendor bills and vendor bill payments to the general ledger #3458
- accounting period API -- create, close, reopen, lock a month #3534
- GL bank accounts + three-way trust reconciliation #3459
- 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
- only show the Service/Utility types checklist matching the selected vendor Category #3442
- 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
- document that CDP DOM.setFileInputFiles hangs the tab, use in-page DataTransfer instead #3367
- 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
- move hand-closed COMPLETED rows with no closing commit to Closed - To Verify #3324
- label adjustment entries in GL exports #3285
- de-duplicate prospect interest unitIds before insert #3352
- retry the application-detail permalink load once auth lands #3347
- render the matching-prospect notify email from its registered template #3318
- 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
- add Collections Action Log (Panel A log + Panel B composer) #3227
- 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
- move Closing Task panel to Purchase Info, auto-collapse when done #3155
- move ctAddTaskForm inside the Closing Task panel #3153
- Reorganize Properties menu, move Owned create paths, add CSV export #3142
- standardize Excel (.xlsx) and PDF export across reports #3130
- closing task master-task lifecycle (create/delete/due-date-follow/auto-complete) #3093
- 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
- scan the full commit range for a closing trailer, not just the pinned tip #3077
- 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
- show a 'still processing' state instead of a misleading 'no link' error on a not-yet-swept Deal Inbox candidate #3053
- 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
- a zero-box document template is sendable, not refused #2960
- document how to verify a constraint without tripping the connector's failure breaker #2999
- link a completed repair to a deposit deduction #2925
- strip seed-authoring name marker on org template clone #2886
- owner-side move-out inspection UI (lease card + fill-out modal) + auto-start on move-out date #2902
- attribute expired-code intake submissions to their real org #2977
- add reusable script to remove an orphaned document-templates blob #2880
- add 'unmatched' to the intake submission status allowlist and counts #2971
- 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
- fix HTTP 500 on every valid public intake code (unusable .catch on a postgrest builder) #2933
- replace inspection-capture Additional Details chips with Room details rows #2861
- 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
- add live Preview tab to intake form builder #2896
- remove admin gating from every item in the Tasks menu #2898
- add fake-data Preview to the template box editor #2887
- remove remit-to/maintenance-email/emergency-phone from the new-owner letter #2877
- add a Cancel request action for a sent vendor W-9 request #2884
- seed vendor W-9 default template on org creation/approval + backfill existing orgs #2846
- submission detail convert-to-tenant + lease #2743
- Move add-item modal out of hidden Assets tab panel #2859
- app-level default document template row + per-org seeding mechanism #2843
- add explicit field to vendor Repairs tab status filter #2851
- mobile stacked-card layout for the Zoho Books lease-pairing list #2831
- gate box editor Signer dropdown + signature preview by document type #2815
- style vendor compliance Delete as .link-btn, not bordered .action-btn #2828
- fix inconsistent inspection field layout and dead-looking add-item button #2726
- combined bill view/edit modal with payment history; disable Mark paid once paid in full #2688
- public intake form pages at /i/:orgSlug/:code and /i/:code #2741
- fix Panel B (slot history) never surfacing a prior occupant #2284
- register row selection + minimal one-condition-for-all visit sheet #2331
- fix truncated vendor-document filenames and clarify delete wording #2293
- 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
- add desktop Punch list tab to the Asset Register #2765
- intake form builder (backend + frontend) with per-property intake link generation #2744
- allow replacing a template's PDF without losing drawn boxes #2751
- keep Visit Type on entry-notice modal dismiss, show unresolved-notice banner #2727
- give showings/visits a shareable ?saved=<id>&showing=<id> URL #2692
- append-only daily board Status history + option-edit wipe warning #2586
- add Priority select control to tasks, matching repairs #2706
August 19, 2026
- escalate instead of reverting a commit that touches the instructions ledger or skill-publish manifest #2681
- repair the project-instructions history chain and make a new break fail loudly #2642
- give vendor bills a unique, shareable permalink #2679
- warn before discarding/deleting a visit with recorded conditions or repairs #2728
- 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
- convert final 6 live confirm()/alert() call sites in vendor compliance and bills #2442
- Owner Portal message templates read 'Default', not 'Using Return Grid default' #2525
- write and read ?listingId= for the deal-inbox listing permalink #2693
- write and read ?ticketId= for the maintenance detail permalink #2691
- write ?taskId= into the URL when a task's edit view opens #2686
- fetch and render a vendor's repair orders in the New Bill Linked repair picker #2678
- add Signer Text Box and Signer Check Box generic template field kinds #2671
- add EIN-based duplicate vendor check (unblocked by) #2014
- GET /api/leases/:id now resolves the org's real renewal window too #2520
- "Renewal due" badge/tooltip now uses the org's real renewal window, not a hard-coded 90 days #2452
- track vendor bill payments as a ledger, fix partial-payment status bug #2558
- document the board move as part of claiming and republish skill #2472
August 18, 2026
- add dollar down-payment input toggle #2491
- move Mark complete's confirmation inline next to its own button #2210
- vendor compliance — W-9 tracking, insurance certificates, licenses #2431
- Move Bill approvals card out of the 3-card .defaults-grid #2013
- Add per-org bill-pay approval threshold with vendor override #2013
- Vendor lifecycle nav + portfolio-wide View Bills page #1973
- flag likely-duplicate vendor bills, non-blocking #2012
- warn on likely-duplicate vendor by name at create time #2014
- replace free-text insurer field with a vendor picker (category=insurance) #1974
- remove disclaimer banners from generated notice PDFs #2516
August 17, 2026
- keep inspection save confirmations visible #2210
- Visits tab UX fixes - alignment, pagination, clickable rows, hide Diligence-only fields on inspection #2495
- document the board move as part of claiming (part B of the fix) #2472
- 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
- explain template layout/file mismatches #2463
- label excluded CapEx cost rows #2467
- 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
- retire dead renewal queue endpoint #2453
- Serve the Owner Portal shell at /login #2374
- add visible mobile scroll affordance to Leases list #2317
- restore POST /api/analyses/:id/appliances (missing since) #2375
- add bordered Properties list action #2324
- confirm internal repair task assignment #2373
- add vendor repair documents #1940
- fix sigpipe-prone grep pipe this ticket introduced #2367
- harden against literal backslash-n in commit messages before Fixes trailers #2367
- fix inspection save confirmation on the correct panel-level Save button #2210
- render asset history panels #2284
- Extract shared property asset field handling #2320
- label Zoho Books pairing progress for screen readers #2338
- 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
- add Ready board status move #2273
- fix CapEx subgrid row tracks #2282
- render inspection save confirmation next to the panel's own Save button #2210
- Preserve inventory state in asset edits #2170
- fix Leases list table hard-clipping on mobile #2317
- create a repair from a tenant maintenance request #2163
- schedule a repair — internal assignment, found/completed photos, table-driven list #1940
- add safe inventory item removal #2192
- include template-specific fields in send review #2177
- Label non-signing occupants on lease records #2178
- Render photo errors beside their widgets #2228
- Expose CapEx forecast flag to accessibility tools #2217
- align inventory tab badge with live count #2199
- revert appliance location on slot-history move failure #2239
- revert asset location on slot-history move failure to stop silent data loss #2200
- 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
- Send only changed inspection conditions #2209
- stop treating a bare "#N:" subject as a closing signal #2196
- Clear inventory fields when editing location #2170
- 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
- the inspection condition-capture screen, and expose the visit pointer #1938
- Document reconciler marker as authenticity tell + pin comment-string invariant #2140
- Owner Portal nav regroup -- Management + Vendors menus, Reports regrouped #1981
- add org-wide Inventory screen, storage-location management, and inventory-as-add-item-destination #2119
- correct upcoming maintenance Undo flow #2087
- restore tenants directory search #2108
- add destination pickers for inventory actions #2121
- paginate property maintenance overrides #2116
- separate installed assets from inventory #2114
- document opt-in safe-push poll lifetime #1956
- explain missing Asset Register install year #2064
- document the fifth release reason rg.py already accepts #2041
- remove the financial review gate that manufactured stranded PRs #2059
August 15, 2026
- use saved Building Systems cost in CapEx forecast #2063
- redesign notice fan-out modal #1892
- kill full process groups when a11y fast child processes hang, not just direct children #1844
- Document measured Supabase MCP truncation result #1847
- 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
- replacing an asset -- from inventory or brand new, three fates for the old one #1640
- reconcile direct-push Fixes trailers #1768
- Remove cash receipt banner from Deposit card #1690
- attach portal invitees to lease tenants #1814
- main-red-alert workflow: add actions:read, retry board lookup, exit 0 on lookup failure #1810
- resolve Visit type dropdown from the analysis's real lifecycle phase #1697
- persist Step 2 per-document field edits across Back-then-Forward #1792
- persist Zoho signer action statuses #1760
- publish filing-discipline rule for larger-redesign tickets #1658
- one-tap mark-done for maintenance reminders #1636
- show signer roster and bundle components in send-lease review step #1703
- purge four retired gate labels from the ops skill, point every lane move at `rg lane` #1790
- Add asset slot history (Panel B) alongside machine history (Panel A) #1639
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
- Step 2 of the bundle send flow -- per-document field entry, grouped and defaulted #1702
- document sandbox backgrounding limit #1728
- Add Upcoming Maintenance report (Own dashboard) #1636
- Fix deposit modal not pre-filling existing deposit data #1759
- Build inventory screen backend + frontend (bulk stock, storage locations, asset status) #1637
- wait for appliance load before opening Add form #1715
- 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
- move template-details modal out of hidden Bundles tab panel #1662
- 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
- Document detached safe-push pattern #1655
- 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
- add editable template details #1662
- Add no-default warning to template list, document resolver behavior #1657
- 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
- give appliances a replacement-cost catalog so they forecast in CapEx reserve #1467
- refresh lease deposit summary after drawer save #1621
- Make tenant names clickable links in leases list table #1664
- expand maintenance board search #1620
- add paginated Projects board audit #1604
- add settings list search #1577
- keep Zoho retry available until workflow succeeds #1623
- for-parts inventory items read Unavailable, not Available #1626
- document landed-versus-live fix verification #1613
- 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
- Label linked task visits with context, refs #1570
- link Tenant Directory names to tenant records, refs #1569
- Add next-step guidance to two empty states missing it #1579
- 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
- document background+poll pattern for safe-push.sh under concurrency #1268
- 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
- accept Zoho's payload-carrying URL validation probe via a single-use registration token #1539
- convert e-sign block to delegated-action pattern #1522
- add actions:read permission to auto-revert-red-main workflow #1519
- move send-for-signature block off lease drawer onto lease record #1426
- auto-revert a commit that turns main red, with a two-strike rule #1519
- Replace window.confirm with showGenericConfirmModal for lease activation #1528
- Move Zoho Books Pairing to Reports #1508
- 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
- add id/name to Owning Entity field in Buy dialog #1491
- 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
- fix Rentals Current/All toggle event delegation root #1415
- prevent duplicate Buy-seed draft leases #1411
- Show Unverified/AI-researched badge on owner-facing jurisdiction rule hints #1405
- add regression coverage locking the mid-turnover rent invariant #1454
- distinguish unmapped Zoho customers #1466
- 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
- Reconcile repo skills/ copy with published return-grid-operations skill #1444
- 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
- turn visit punch-list items into CapEx lines / work orders #1306
- multiple scenarios per property + comparison view #1309
- disclose projection length's IRR sale-year effect and 6% selling cost assumption #1436
- 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
- Collapse HVAC types to heating/cooling with label-based descriptors #1394
- Add visible Unverified badge for AI-researched jurisdictional rules #1055
- enable asset reassignment across locations without losing history #1294
- build the everything-still-Assumed filter as a pre-purchase question list #1299
- one tenant-role default rule in both add-tenant paths #1344
- include appliances in the CapEx reserve forecast, not systems only #1293
- add printable rent roll report #1342
- fix ReferenceError in GET /api/leases/:id/deposit (leaseId -> lease.id) #1361
- show incoming signed leases during turnover #1339
- 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
- add units-side provenance entry/edit UI #1297
- render notice days without rule metadata #1348
- seed underwriting units on confirmed Buy #1252
- keep saved= in the URL when routing into a saved property #1355
- revive archived units on regrow instead of inserting empty replacements #1328
- revert the rg next hard skip to advisory-only, drop the "needs-human" phrase #1352
- 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
- record project-instructions edit removing 4ec0d9ea from rename exemption list #1345
- document safe-push background polling #1268
- 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
- auto-correct Needs-Human board drift #1126
- 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
- Collapse connected Zoho item mapping #1238
- add pagination to owner portal lists #1236
- filter operational units and leases by ownership phase #1234
- Admin Legal Rules readability -- detail popup, wrapping citation, sign-off state #1158
- preserve Zoho save messages through refresh failures #1232
- Default leases list to all leases #1233
- 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
- walk full ancestor chain in taxonomy sweep category 8 #1212
- 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
- surface unverified flag on 4 jurisdictional-rule surfaces #1040
- split Florida deposit notice and remittance flow #826
- finalize inspection entry notice review metadata #1062
- reject binding a Zoho Books org already linked to another Return Grid org #1176
- 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
- add insurer-facing completed inspection history export #958
- run portal provisioning inside commitLease() for all 3 commit routes #1132
- tie RED-before verification's no-git-stash rule explicitly to that context in every subagent brief #1032
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
- drive the template-type dropdown from documentTypeRegistry, not a hardcoded pair #1106
- 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
- document safe-push.sh as the mandatory main-push path #1091
- add explicit give notice lease action #1048
- add Zoho autopay method allow-lists #978
- Render jurisdictional disclosure rule values #1042
- condition checklist renders real units, retiring effectiveUnits() for Visits #930
- 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
- add pure inspection cadence engine (computeNextDueDate) #952
- gate tenant portal-account actions on real account state #788
- tenant detail sub-tab shell, deep-linkable tabs, and real action buttons #787
- upgrade nodemailer 6.10.1 -> 9.0.5, closing 8 bundled high-severity advisories #912
- 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
- Add axe coverage for populated units list #890
- Tenant-to-property link now lands on Rent Roll, not Overview #940
- GET /api/leases resolves propertyName and returns full leaseTenants array #936
- 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
- Add units list page with building/common-area rows and needs-me-first sort #860
- register MFA SMS send site in message template registry #781
- Add GET /api/leases list endpoint #857
- Add GET /api/units and GET /api/units/:id endpoints #856
- 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
- add multi-department Zoho Desk ticket routing #620
- stop over-attaching a room's untagged photos to every worsened inspection item #842
- move mapboxConfigured() check inside geocodeAddressString's try/catch #845
- 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
- document that .tabs button already covers zero-class tab buttons #786
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
- setup-time Zoho Books charge-type-to-Item mapping #731
- 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 editable merge-field review before sends #717
- add custom dates to document send picker #718
- convert approved application to tenant record(s) and pre-fill new lease #678
- Add agreement document types and date fields #659
- 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 orphaned to the documented rg subcommand list #660
- 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
- add Desk.basic.READ to Zoho Desk OAuth connect scope #614
- 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
- document explicit-null-clear as a permanent, accepted audit gap #562
- purge terminal Deal Inbox staging objects #609
- add Property typeahead filter to the Tenants list #597
- close the gap that let's subagent use git stash despite's rule #588
- fix + audit-sweep the Deferred-close Status drift bug, and document the correct order #594
- 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
- document git-stash worktree collision hazard and add advisory warning #567
- document the Postmark inbound auth forgery residual risk as accepted/deferred #447
- fast a11y subset now gates pre-push, closing the detection gap #514
- 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
- document the coding-subagent -> orchestrator handoff for skill-file edits #560
- 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
- send-flow bundle picker and PDF concatenation into one Zoho Sign envelope #545
- add Deal Inbox dismiss/restore round-trip #446
- hard-delete orphaned tenants (DELETE /api/tenants/:id) #550
- emit the checkout HEAD sha (and captured pull result) into the Part 24 reconcile's tick record #327
- 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
- box editor could not load any template PDF in production #524
- 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
- send leases by drawing into boxes, not by rewriting the content stream #499
- 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
- unlock basementTypes/basementSplitPct in the Own/Sell save allow-list #480
- 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
- record the answer -- Zoho notifies a recalled signer, with no reason #126
- non-embedded live harness for the e-sign recall notification question #126
- move Deal Inbox from Settings into the Properties menu #461
- stop sessions policing each other's names; one source of truth for the exempt list #457
- make the lease's late fee fields actually charge, as an override #439
- accept an aligned SPF pass on its own in the Deal Inbox auth gate #458
- read Mailgun's SPF/DKIM verdicts from message-headers, not just form fields #400
- drop the unmeasured cost superlative from the instructions block #450
- 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 owners which listing sources the Deal Inbox can read #431
- tell the owner which link failed, and give them a way through #430
- scan both Deal Inbox tabs, and put its notify field on theme tokens #412
- one current primary per lease, enforced in the database #360
- surface inbound replies and ticket provenance in the owner UI #426
- one-click enrich from the Deal Inbox, with D15 provenance #272
- credit a provider payment to the payer the provider named #416
- rg blocked -- the needs-tony queue as a command, and priority read from labels #418
- remind before rent is due, chase it after, and only once each #407
- make the needs-tony label an enforced gate in rg.py #414
- 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
- sender allowlist editor for Deal Inbox addresses #376
- 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
- document inbound reply addressing and its rotation hazard #300
- wire the 18 tenant email templates to reply addressing #300
- correlate inbound email replies into their ticket threads #300
August 2, 2026
- gate deploys on the accessibility workflow #286
- seed a provisionable lease signer so the portal happy path is reachable #104
- joint-and-several rent invoicing #254
- encode the STOP -> file needs-tony ticket escalation rule as a standing, synced rule #277
- notify the tenant when a PM replies to a ticket or changes its status #332
- ls-files-keyed suites now announce the files they cannot see #314
- 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
- stop the tick audit citing the frozen Task List in its own output #256
- 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
- surface the component CapEx forecast in Underwriting + Metrics (read-only) #248
- cut every outbound email over to Postmark, retire the Zoho send path #261
- read Zillow's annual tax amount from the rendered DOM #101
- ledger the MFA texts, then poll ClearlyIP for what happened to them #262
- drive Own-phase rent and current vacancy off the rent roll #216
- make the accent picker describe the portal that actually ships #125
- rewrite inbound-email Deal Inbox spec against all sixteen resolved decisions #160
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
- record the Loan tab as-built divergences in spec 11a #213
- promote the loan story into its own Own-phase tab, with a real history #213
- refresh inbound-email spec risk section - Decision 8 resolved, template drift is the residual risk #160
- 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
- hard-disable the retired Google Sheet task-list tooling #182
- add the Owner Portal "Invite tenant" UI and wire it to the invite endpoint #111