Skip to content

v0.1.3 — release integrity and correctness fixes

Choose a tag to compare

@rameerez rameerez released this 17 Sep 00:14
· 50 commits to main since this release

Correctness fixes from an integration review against a real host, plus the dependency bump that makes signing work without turning staff into messagers.

Fixed

  • Opening a case and its first message is atomic. A rejected upload no longer leaves a case with nothing in it; the validation error renders with the draft preserved.
  • Reopening a historical case keeps both conversations when a newer case already exists, instead of collapsing them. New submissions still reuse the open case.
  • Assignment authorizes its actor, and assignment, hand-off, release and the reply policy all check current state under the row lock — so two agents racing on the same case cannot both win.
  • Delayed message registration reads both clocks to decide whose turn it is, and can no longer reopen a case that was closed after the message was sent.
  • Reading a console transcript marks the desk's read horizon through the last message actually displayed.
  • Topics resolve within their own ticket's desk, and wizard routing and response promises honour non-default desks.
  • The requester upload form is multipart, and its send budget is shared with chats rather than being a second, separate limit.

Requires chats >= 0.3.2

Authors there need no messaging capabilities of their own, so a staff member signs a desk's reply without being given acts_as_messager. The dependency is ~> 0.3, >= 0.3.2.

Upgrading

No migration, no configuration change. If you are on 0.1.1, upgrade regardless: that package was built from the wrong tree and raises on every requester screen.

Verified

Tests 661 runs, 3004 assertions, 0 failures
Databases SQLite, PostgreSQL
Rails 7.2, 8.0, 8.1
Lint / security rubocop clean, brakeman 0 warnings

What's Changed

  • Fix ticket integrity on support_desk 0.1.2; prepare 0.1.3 by @rameerez in #2

New Contributors

Full Changelog: v0.1.2...v0.1.3