"We settled the Sample case. Want to close it?"
It's the kind of question that has more than one right answer. In a CA Workers' Comp practice, "close the case" can mean:
- Closed — resolved by C&R, the firm is done
- Stipulation — resolved by Stip with Request for Award, file remains open for future medical
- Dismissed — voluntarily dismissed without settlement
- Hold — temporarily inactive, pending some event
- Declined — firm declined representation
- Archived — long-term compliance retention, off active rotation
The previous version of the assistant offered three: Closed, Stipulation, or "just add a note." Pick Closed when the case was actually Archived, and the case stays in the active rotation when it shouldn't. Pick Stipulation when it's actually a C&R, and the future-medical handling is wrong.
Why the limited list
It turned out the assistant had a hard-coded list of status IDs baked into the code. The list was the standard MerusCase setup from one firm — and it was the same list everywhere, in seven different files. Splash screen open-case counts, search filters, status labels in case dashboards, mail processing instructions for handling closed cases, hearing-prep checks — all hard-coded to the same firm's IDs.
Every firm in MerusCase configures their own status set. Most use the standard names but some add custom ones (Referred Out, Archived-2023, Reactivation Pending). And every firm has their own numeric IDs. A firm whose "Closed" was ID 9417 instead of 9416 would have seen the assistant silently miss every closed case.
The fix
The assistant now reads the firm's actual status definitions from MerusCase the first time it needs them in a session, and uses those everywhere. The numeric IDs come from your Merus configuration. The human-readable names (Closed, Stipulation, etc.) come from your Merus configuration. When you say "settle this case," the options offered are the ones your firm actually uses.
For the question "we settled the Sample case," the new flow is:
"We settled the Sample case. Want to close it?"
Sample case — currently Open. Available statuses for this firm:
Closed (resolved — C&R or final award)
Stipulation (Stip with Request for Award)
Declined
Deceased
Hold (temporarily inactive)
Dismissed
Archived (long-term compliance retention)
Which status? Or just add a settlement note?
The list is your firm's actual list. If your admin added a custom status named "Referred Out," it shows up. If your firm doesn't use "Deceased" as a status, it doesn't appear.
The status slug
MerusCase tags each status with a slug — a stable role identifier that's normalized across firms. There are three: open, closed, archived. The assistant uses these slugs for logic: counting open cases (everything tagged open, regardless of whether your firm calls it "Open" or "Active"), filtering closed cases, finding the archive option.
The numeric ID and the human-readable label remain firm-specific. The slug is the contract.
What changes day-to-day
Three things:
- Splash and dashboard counts are correct. If your firm has Open + Pending + Intake all tagged with the
openslug, the open-case count includes all three. Previously it counted only Open. - Status labels in search results are correct. If you search for "case ABC" and it's marked Hold on your firm, the result shows "Hold" — not "Status 9420."
- Closed-vs-Archived is now distinct. When the user says "close the case," the assistant doesn't assume "Closed" — it asks. The model now distinguishes a case that's resolved (Closed/Stipulation) from one that's archived (off active rotation, long-term retention).
Why this is the kind of fix that matters
For the attorney, the impact is small but real: better-fit status options when settling, accurate counts on the splash screen. For the firm, the impact is bigger: the assistant works correctly on YOUR Merus configuration, not the one it was developed against. A new firm installing aaicase no longer has to share IDs with the dev firm to get the right behavior.
This is the same shape of fix as removing baked-in firm names from the shipped package (v4.5.122): both are about decoupling the software from one specific firm’s state. The assistant should know about your firm by reading from your Merus instance, not by being pre-loaded with it.