KamoCRM

Retire Sent to AI, and store the status by name

Refactorkamo-shared-library
Ya
25 Agosti 2026, 17:40 UTC
Mwandishi
Kamo
Ahadi ya
856b6ef

Removing SENT_TO_AI is not a one-line enum edit. It sat at ordinal 3, and system_bug.status was an ORDINAL column: dropping it shifts AWAITING_INFO onto 3, CANNOT_REPRODUCE onto 4, and so on for the whole tail — every existing row starts reading as a different status than the one it is in, with nothing thrown and nothing logged. The class of trap the schema already documents is the opposite one (a frozen CHECK constraint firing when an enum GROWS); no constraint catches this one. So the status is stored by NAME now, in STATUS_NAME and STATUS_APPLIED_NAME. The enum is free to grow, shrink and reorder, which is what one this young is going to keep doing. The dispatch audit gets it doubly: those rows are never rewritten, so an ordinal that changed meaning underneath one would leave the record saying something the operator never did. WONT_FIX is now "Won't Fix / Denied". It is the terminal state for an enhancement nobody is going to build as well as a bug nobody is going to fix, and telling somebody their idea "won't fix" answers a question they did not ask. SystemBugStatusStorageTest fails the build if either field goes back to ORDINAL, if a status name outgrows its column, or if SENT_TO_AI reappears — the first of those is a one-word diff that reads as a tidy-up.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila kitu kinaingia kwenye tovuti yako mwenyewe. Anza kwenye mpango wa bure na usome ukurasa huu tena katika mwezi mmoja.

Kuwa Huru MileleMtazamo wa bei