PRJ-03 · build log

Autobroker: the build log

Twelve entries from the requests document kept in that repository. Each names the commit, so none of it depends on anyone remembering.

This is the record of what went wrong in a system running in production and what was done about it. It exists because of a day in August when a meeting's worth of agreed work was built, merged, and then removed by a revert aimed at something else, and three days later nobody could answer from memory what had happened. A repository can answer. Client figures, staff and customers are not here, by a filter written down before the first row was chosen.

Source: docs/AAG_REQUESTS.md in the autobroker-crm repository

LOG-01Dated entries

The dashboard resolved percentage commissions against the gross amount owed while every other screen used the base after costs, so one number read two ways on adjacent screens. The rule now lives in the database and the dollars come down with the row.

62de441, migration 20260821160000

Deleting a deal fed its applicant to the nightly personal-data purge, so a Social Security number and a licence scan were destroyed as routine maintenance.

a6bdb6c

The money check had been exiting with an error code, printing nothing, and verifying nothing. A check that cannot fail is not a check.

62de441

A failed read of the company profile rendered as an empty form, and pressing Save wrote the emptiness over the company's own name and address.

7cc3c63

Cancel on the customer panel did not cancel. The discarded text came back, and the next Save pushed it onto every deal that customer has.

7cc3c63

Autosave dropped the last edit when the page was left. The debounce is a timer owned by an effect, and React clears it on unmount.

e9255a7

Fourteen different ways to print a dollar in one product. One amount printed as 612.5 on one screen and 613 on the next.

b9b5a4e

The buyer's page rounded Total, Paid and Balance independently, so the three visibly failed to add up in front of a car buyer. Demonstrated on a scratch deal of our own before the fix, and deleted afterwards.

32ef950

A team member could read what other people earned on the same car. Two separate paths carried it, and both are now filtered in the database rather than in the interface.

migration 20260821180000

Every authentication email sent the recipient to a local development address, because the project's site URL and redirect list were still on their defaults.

configuration, recorded in the repository

Deleting a deal now removes its uploaded files first and refuses if that fails, so a licence scan is never stranded with no row pointing at it. The log recording who read a Social Security number is kept on purpose.

fa39c56, migration 20260819020000

The CRM would not open on a phone. The service worker treated navigation payloads as immutable static assets and replayed a dead build's JavaScript.

2b3380e, d9033c4

Nine of these twelve were found by looking rather than by being reported. That is the argument for the habit, not for the software.