Visitar URL original
Git : Code : RT: Request Tracker
View Bazaar branches
Get this repository:
git clone https://git.launchpad.net/rt

See all merge proposals.

Import details

Import Status: Reviewed

This repository is an import of the Git repository at https://github.com/bestpractical/rt.git.

The next import is scheduled to run .

Last successful import was .

Import started on juju-98ee42-prod-launchpad-codeimport-19 and finished taking 1 minute — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-19 and finished taking 50 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-18 and finished taking 1 minute — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-9 and finished taking 1 minute — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-9 and finished taking 1 minute — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-14 and finished taking 1 hour — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-9 and finished taking 20 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-19 and finished taking 5 minutes
Import started on juju-98ee42-prod-launchpad-codeimport-9 and finished taking 1 minute — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-9 and finished taking 1 minute — see the log

Branches

Name Last Modified Last Commit
6.0/fix-assets-double-prefix 2026-11-13 22:28:01 UTC
Bind the asset link prefixer on document to avoid double prefixing

Author: sunnavy
Author Date: 2026-11-13 22:04:22 UTC

Bind the asset link prefixer on document to avoid double prefixing

htmx fires the initial body htmx:load from a timeout, so a lazily loaded
Assets widget could be bound by both that event and its own, prefixing
"asset:" twice and failing to add the links.

6.0/passkey 2026-11-13 21:30:55 UTC
Document WebAuthn passkey authentication

Author: sunnavy
Author Date: 2026-05-07 18:47:47 UTC

Document WebAuthn passkey authentication

6.0-trunk 2026-11-13 07:24:21 UTC
Merge branch '6.0/tomselect-onblur-clear-refreshtimeout' into 6.0-trunk

Author: sunnavy
Author Date: 2026-11-13 07:24:21 UTC

Merge branch '6.0/tomselect-onblur-clear-refreshtimeout' into 6.0-trunk

stable 2026-11-13 07:24:21 UTC
Merge branch '6.0/tomselect-onblur-clear-refreshtimeout' into 6.0-trunk

Author: sunnavy
Author Date: 2026-11-13 07:24:21 UTC

Merge branch '6.0/tomselect-onblur-clear-refreshtimeout' into 6.0-trunk

6.0/doc-rt-capabilities 2026-11-12 18:20:37 UTC
Add a general overview of RT features and common uses

Author: Jim Brandt
Author Date: 2026-07-22 20:45:06 UTC

Add a general overview of RT features and common uses

maint 2026-11-10 21:39:20 UTC
Merge branch '5.0/remove-system-umask' into 5.0-trunk

Author: sunnavy
Author Date: 2026-11-10 21:39:20 UTC

Merge branch '5.0/remove-system-umask' into 5.0-trunk

5.0-trunk 2026-11-10 21:39:20 UTC
Merge branch '5.0/remove-system-umask' into 5.0-trunk

Author: sunnavy
Author Date: 2026-11-10 21:39:20 UTC

Merge branch '5.0/remove-system-umask' into 5.0-trunk

6.0/github-actions-test-parallel-all 2026-11-10 18:38:42 UTC
Limit fcgid processes in apache test servers

Author: sunnavy
Author Date: 2026-11-10 18:29:54 UTC

Limit fcgid processes in apache test servers

mod_fcgid starts another RT process whenever a request arrives while
the existing ones are busy, up to 100 per test server by default.
Browser tests send htmx requests in bursts, so with tests running in
parallel this can exhaust memory and CPU on small machines like GitHub
Actions runners.

Use a single process, as the proxy_fcgi test servers already do.

6.0/links-double-row-format 2026-11-10 16:37:26 UTC
Test correct Links layout with multi-row Formats

Author: Jim Brandt
Author Date: 2026-11-10 16:35:45 UTC

Test correct Links layout with multi-row Formats

5.0/validate-txn-references 2026-11-09 20:12:38 UTC
Validate OldReference/NewReference in transactions

Author: sunnavy
Author Date: 2026-11-09 19:45:25 UTC

Validate OldReference/NewReference in transactions

Transactions for custom field values, database configs and attribute
content reference those records by id. When a referenced row is gone,
custom field transactions die in OldValue/NewValue with "Can't call
method 'new' on an undefined value", which breaks the whole ticket
history page.

6.0/docs-concepts 2026-11-06 22:02:27 UTC
Add docs for concepts, ticket create, and reply/comment

Author: Jim Brandt
Author Date: 2026-07-21 21:01:55 UTC

Add docs for concepts, ticket create, and reply/comment

6.0/fix-chart-axes 2026-11-06 21:33:01 UTC
Move beginAtZero from ticks to the y scale

Author: sunnavy
Author Date: 2026-11-06 20:18:56 UTC

Move beginAtZero from ticks to the y scale

Chart.js v3+ reads beginAtZero only at the scale level and ignores it
under ticks, so line charts could start their y-axis above zero.

master 2026-10-29 21:36:06 UTC
Merge branch '6.0-trunk'

Author: sunnavy
Author Date: 2026-10-29 21:36:06 UTC

Merge branch '6.0-trunk'

6.0/unread-messages-subquery-order 2026-10-29 14:59:40 UTC
Drop the sort from the HasNoUnreadMessages subquery

Author: sunnavy
Author Date: 2026-10-29 14:59:40 UTC

Drop the sort from the HasNoUnreadMessages subquery

The subquery is cloned from the outer collection, so a sort set before
FromSQL ended up inside NOT IN (...), which Oracle rejects with
ORA-00907.

6.0/scroll-history-focus-transaction 2026-10-26 14:46:05 UTC
Ignore focusTransactionId once the scroll cursor has passed it

Author: sunnavy
Author Date: 2026-10-09 14:54:06 UTC

Ignore focusTransactionId once the scroll cursor has passed it

Commit f57b0413d5 fixes the same issue on the client side, it's good to fix
it on the server side too.

6.0/standardize-theme-design 2026-10-22 17:18:18 UTC
Perform some automatic cleanup on old styles during upgrade

Author: Jim Brandt
Author Date: 2026-10-22 12:28:58 UTC

Perform some automatic cleanup on old styles during upgrade

Try to detect overrides in UserCSS for styles that we know
are no longer used. Look for custom settings based on the
custom theme CSS templates we used in earlier RT and migrate
settings (mostly colors) to new settings. Keep any other custom
content as-is with some comments.

If the RT has custom CSS, the old version is saved in an
attribute for reference.

6.0/rights-inspector-spinner 2026-10-21 19:02:19 UTC
Show the Rights Inspector spinner while searching

Author: sunnavy
Author Date: 2026-10-21 18:44:44 UTC

Show the Rights Inspector spinner while searching

jQuery's old show() doesn't work with RT 6's spinner, so the spinner never
appeared.

Previously the spinner was centered in the inspector box, which could be
off-screen when the result list was long. This commit moves it beside the
search inputs.

6.0/attachments-display-path 2026-10-21 17:17:44 UTC
Stop taking DisplayPath as an attachments widget argument

Author: sunnavy
Author Date: 2026-10-21 16:59:37 UTC

Stop taking DisplayPath as an attachments widget argument

RT only has 2 static attachment display paths, for privileged and
unprivileged users, respectively. As the widget is directly accessible via
/Views/ now, this commit removes DisplayPath from the argument list to
prevent it from being set arbitrarily.

6.0/fix-session-leftovers 2026-10-19 21:34:18 UTC
Update leftover direct %session writes to use the session API

Author: sunnavy
Author Date: 2026-10-19 20:55:33 UTC

Update leftover direct %session writes to use the session API

Direct changes to %session no longer persist since RT 6.

6.0/web-deployment-updates 2026-10-16 19:56:34 UTC
WIP: Update documented configurations for RT web deployment

Author: Jim Brandt
Author Date: 2026-10-16 19:56:34 UTC

WIP: Update documented configurations for RT web deployment

6.0/add-new-link-clear-cloned-id 2026-10-16 17:36:01 UTC
Clear cloned id when adding new link row

Author: Brad Embree
Author Date: 2026-10-16 17:36:01 UTC

Clear cloned id when adding new link row

5.0/negative-role-search-any-member 2026-10-14 13:46:38 UTC
Fix negative role searches matching several users

Author: Craig Kaiser
Author Date: 2026-10-14 13:46:38 UTC

Fix negative role searches matching several users

When the value matches more than one user, exclude records having any
matching user, or unless SHALLOW a group containing one, as a member,
using a subquery. The single-user case is unchanged.

5.0/skip-unchanged-custom-field-values 2026-10-13 20:37:27 UTC
Skip unchanged custom fields in submitted forms

Author: Craig Kaiser
Author Date: 2026-10-13 20:26:38 UTC

Skip unchanged custom fields in submitted forms

Edit forms now include a digest of the custom field values they were
rendered with. On submit, a field whose values still match that digest
is skipped instead of being compared to the object's current values.

A form left open would otherwise submit its stale value, which differs
from the current one, and revert a change someone else had saved.

5.0/rest2-tickets-json-search-2 2026-10-09 12:22:00 UTC
Don't use Ticket and Article local LimitCustomField methods

Author: Jim Brandt
Author Date: 2026-10-09 12:22:00 UTC

Don't use Ticket and Article local LimitCustomField methods

These methods modify the search collection incorrectly. The
Tickets version drops earlier limits. Articles ignores the
CUSTOMFIELD argument.

6.0/usernameformat-user-avatar 2026-10-05 19:56:53 UTC
Add tests for avatar display in UsernameFormat

Author: Brad Embree
Author Date: 2026-10-05 19:33:36 UTC

Add tests for avatar display in UsernameFormat

6.0/txn-description-no-user-avatar 2026-09-30 14:08:55 UTC
Do not show user avatar in txn description

Author: Brad Embree
Author Date: 2026-09-29 20:48:07 UTC

Do not show user avatar in txn description

0f540ae899 restricted showing avatars in transaction history to only
create, correspond, and comment transactions. Transaction descriptions
such as "Stolen from X" and "Requestor X added" still showed X's avatar,
because the history JavaScript replaces those names with HTML from
/Helpers/UserInfo, which rendered ShowUser with its default avatar.

That JavaScript is the helper's only caller in core, so drop the
avatar from the helper's HTML. This achieves the goal of commit
0f540ae899 to only show avatars for the specific transactions.

6.0/cpan-audit-poc 2026-09-29 17:41:36 UTC
Document auditdeps and fixauditdeps

Author: Brad Embree
Author Date: 2026-09-29 17:38:54 UTC

Document auditdeps and fixauditdeps

6.0/date-cf-edit-hint 2026-09-28 20:50:19 UTC
Show the current value in date CF hints on edit

Author: Brad Embree
Author Date: 2026-09-28 20:50:19 UTC

Show the current value in date CF hints on edit

Since 701adc6f48 moved the date hint into EditCustomField, the hint is
built from $Default. When editing an existing object, nothing passes
$Default, so the hint shows "Not set" while the input shows the stored
date. Only the Content method loads the stored value.

Fall back to the object's current value when $Default is empty.
Stored values are in UTC, so show DateTime values in the user's
timezone.

6.0/autocomplete-owner-unchanged 2026-09-28 14:06:24 UTC
Leave Owner autocomplete empty on ticket update unless a new owner is picked

Author: Craig Kaiser
Author Date: 2026-09-28 13:49:36 UTC

Leave Owner autocomplete empty on ticket update unless a new owner is picked

Make SelectOwnerAutocomplete honor DefaultValue and DefaultLabel the way
SelectOwnerDropdown does: when the caller asks for an "unchanged" default,
render an empty input with the current owner as placeholder text instead of
prefilling the owner's name.

A reply or comment form opened before someone took the ticket submitted the
old owner's name on update and reset the owner to Nobody.

6.0/saved-search-portlet-duplicate-system-saved-searches 2026-09-22 20:04:13 UTC
Stop listing system saved searches twice for SuperUsers

Author: Brad Embree
Author Date: 2026-09-22 19:51:40 UTC

Stop listing system saved searches twice for SuperUsers

The portlet appended RT::System to the return from ObjectsForLoading
when the current user was a SuperUser. ObjectsForLoading has included
RT::System since 5d3485c30b, so RT 6 showed the system saved searches
twice.

6.0/txn-chart-distinct-order-by 2026-09-22 18:24:44 UTC
Correct stale ACL comment in transaction charts

Author: Brad Embree
Author Date: 2026-09-22 18:07:58 UTC

Correct stale ACL comment in transaction charts

The comment predates commit 0118c94906, which added UseSQLForACLChecks
support for ticket transaction searches.

SQL now covers ShowTicket but AddRecord still checks other rights per
record and grouped report rows never reach AddRecord. That, not missing
UseSQLForACLChecks support, is why SetupGroupings collects visible ids
first.

6.0/validate-servicebusinesshours-on-update 2026-09-21 15:06:37 UTC
Compare ServiceBusinessHours day keys as strings

Author: Craig Kaiser
Author Date: 2026-09-21 15:06:37 UTC

Compare ServiceBusinessHours day keys as strings

Use eq rather than == when checking whether a day key is 7.

Day keys come from the System Configuration form and can be any text,
so a non-numeric key made Perl warn that the argument isn't numeric.

6.0/report-search-errors 2026-09-21 14:14:08 UTC
Send user messages with htmx component responses

Author: Craig Kaiser
Author Date: 2026-08-13 18:41:33 UTC

Send user messages with htmx component responses

Add them to the HX-Trigger header when a request skips Elements/Footer,
taking the text from the catalog in RT::System as the footer does.

Footer is what normally hands these messages to growl, so component
requests under /Views dropped them. Self service ticket lists load that
way, so a search the database stopped looked like one that matched
nothing.

5.0/login-page-redirect 2026-09-18 08:03:31 UTC
Redirect away from the login page after logging in

Author: Jim Brandt
Author Date: 2026-08-20 20:51:42 UTC

Redirect away from the login page after logging in

6.0/attachment-character-decoding 2026-09-16 22:41:10 UTC
Add re-indexing section to full text docs

Author: Brad Embree
Author Date: 2026-09-16 18:28:37 UTC

Add re-indexing section to full text docs

6.0/disable-dashboard-subscription 2026-09-11 15:26:49 UTC
Disable dashboard subscriptions on delete

Author: sunnavy
Author Date: 2026-09-09 22:29:22 UTC

Disable dashboard subscriptions on delete

Similar to dashboards, deleting a dashboard subscription should disable
it, ensuring record completeness. Admins can use shredder to fully remove
dashboard subscriptions.

6.0/validator-check-all-models-and-links 2026-09-10 18:53:42 UTC
Complete rt-validator link checks for all URI schemes

Author: sunnavy
Author Date: 2026-09-09 18:08:35 UTC

Complete rt-validator link checks for all URI schemes

Previously schemes other than ticket and article were missed.

6.0/add-all-full-text-indexing-pod 2026-08-25 17:02:39 UTC
Document --all in full text indexing POD

Author: Brad Embree
Author Date: 2026-08-25 17:02:39 UTC

Document --all in full text indexing POD

6.0/calendar-unique-color-legend-ids 2026-07-31 21:36:54 UTC
Ensure calendar color mode args are consistent

Author: Brad Embree
Author Date: 2026-07-31 21:21:30 UTC

Ensure calendar color mode args are consistent

A calendar has its title and contents rendered separately and they need
to ensure they have the same color mode arg.

6.0/center-groups-admin-inputs 2026-07-28 15:59:36 UTC
Test the enabled and disabled group filters on the group admin page

Author: sunnavy
Author Date: 2026-07-28 14:46:54 UTC

Test the enabled and disabled group filters on the group admin page

6.0/auth-token-expiration-visibility 2026-07-27 20:22:09 UTC
Hide auth token expiration fields until the checkbox is checked

Author: sunnavy
Author Date: 2026-07-27 20:22:09 UTC

Hide auth token expiration fields until the checkbox is checked

The dropdown and date picker were visible but merely disabled when
"Set Expiration Date" was unchecked, so the default "1 Month" option
made it look like an expiration was already selected. Wrap them in a
container that starts hidden and toggle it from the checkbox handler.

Also drop modal-dialog-centered and give the dialog a top margin, so the
modal grows downward from a fixed position instead of shifting when the
fields are toggled.

6.0/docker-test-github-build 2026-07-23 15:52:33 UTC
Test with image RT-6.0.3-trixie-20260723

Author: Jim Brandt
Author Date: 2026-07-23 15:52:33 UTC

Test with image RT-6.0.3-trixie-20260723

6.0/asset-widget-page-layout-visibility 2026-07-23 15:14:24 UTC
Test Assets widget visibility based on page layout

Author: sunnavy
Author Date: 2026-07-23 07:47:48 UTC

Test Assets widget visibility based on page layout

6.0/group-summary-quick-create-cc 2026-07-20 22:08:51 UTC
Prefill group as Cc on group summary quick ticket creation

Author: sunnavy
Author Date: 2026-07-20 21:03:11 UTC

Prefill group as Cc on group summary quick ticket creation

The group summary "Quick ticket creation" portlet passed the group via
a hidden AddGroupCc field, which only added the group as a Cc watcher
after the ticket was created (in Display.html) and never prefilled the
visible Cc field on the create form. So clicking Create landed on a
create form with an empty Cc field.

The ticket create Cc field now accepts groups directly via group:NAME
tokens, so prefill it with the group like the user summary portlet does
with Requestors. This makes the group visible in the Cc field and flows
it through the normal watcher processing, so the special AddGroupCc
handling in Create.html and Display.html is no longer needed.

5.0/rest2-tickets-json-search 2026-07-17 21:50:28 UTC
Honor a JSON query body on POST /tickets, like other REST2 collections

Author: sunnavy
Author Date: 2026-07-17 20:53:03 UTC

Honor a JSON query body on POST /tickets, like other REST2 collections

RT::REST2::Resource::Tickets searched only via TicketSQL in the "query"
parameter: it overrode limit_collection to call RT::Tickets->FromSQL,
and did not consume QueryByJSON. A JSON-array body posted to /tickets
was silently ignored, and with no query parameter FromSQL("") matched
nothing, so the same request shape that searches every other collection
returned count: 0 with no error.

This commit makes /tickets behave the same as /assets and /transactions.

6.0/retry-toast 2026-07-16 21:31:31 UTC
Test the widget retry toast

Author: sunnavy
Author Date: 2026-07-16 21:11:29 UTC

Test the widget retry toast

6.0/fail-on-aborted-transaction 2026-07-10 20:07:47 UTC
Fail cleanly when a scrip aborts the transaction with a database error

Author: sunnavy
Author Date: 2026-07-10 15:44:23 UTC

Fail cleanly when a scrip aborts the transaction with a database error

Custom scrips can contain code that causes deadlocks, potentially leading
to the failure of an entire database operation. However, when the automatic
rollback occurs, RT may have already returned a false success. For example,
if a scrip that runs on ticket create causes deadlocks, the system may
display a "ticket created" message, but it's a ghost ticket as it doesn't
actually exist in database.

6.0/preserve-menu-on-back-navigation 2026-07-08 00:43:43 UTC
Scope htmx history to .main-container so menu survives Back

Author: sunnavy
Author Date: 2026-07-08 00:35:11 UTC

Scope htmx history to .main-container so menu survives Back

Previously, htmx cached the entire HTML body for browser back-and-forth
navigation. On a history-cache miss (for example, after a historyCacheError
caused by exceeding the localStorage quota), it re-fetches the page.
However, for htmx requests, this re-fetch omits the top menu, effectively
wiping it.

Mark .main-container with hx-history-elt so htmx caches and restores only
the content area. This also reduces the localStorage quota pressure.

Since historyElt is limited to .main-container, it no longer contains
.ck-body-wrapper. The cleanup is redundant anyway, as fa61ab1431 fixed the
underlying CKEditor teardown.

6.0/priority-as-number-validation-2 2026-07-01 19:43:20 UTC
Reject invalid priority labels in SetPriority

Author: sunnavy
Author Date: 2026-07-01 14:06:36 UTC

Reject invalid priority labels in SetPriority

SetPriority converts its argument to a number before storing, so a value
that was neither a number nor a configured PriorityAsString label was
silently coerced to 0. The web forms use numeric inputs, but other callers
(the REST2 API, the CLI, scrips) could still zero out a priority with a bad
value. Return an error and leave the priority unchanged instead.

6.0/improve-clipContent-performance 2026-06-30 22:54:36 UTC
Clamp clipped search-result cells via CSS instead of inline height

Author: Brad Embree
Author Date: 2026-06-30 22:54:36 UTC

Clamp clipped search-result cells via CSS instead of inline height

Building on the read/write split, reduce the per-cell work clipContent()
does and simplify the markup it generates:

- Read line-height once for the table rather than calling
  getComputedStyle() for every cell.
- Apply the 5-line clamp in CSS (.clip { max-height: 5lh }) instead of
  measuring and setting an inline pixel height per cell, and make
  expand/collapse a class toggle (.unclipped) so the click handler does
  no layout reads.
- Emit one wrapper div and a single a.clip-toggle button per clipped
  cell, replacing the clip-container/clip wrappers and the separate
  unclip/reclip anchors. The button swaps its own label on toggle.

This trims the DOM built per clipped cell and removes the per-cell
getComputedStyle calls, further cutting the client-side cost of rendering
wide search results.

Note: the clamp uses the CSS lh unit (Chromium/Edge 109+, Firefox 120+).

6.0/priority-as-number-validation 2026-06-26 20:49:25 UTC
Update tests to verify number mode for priority text input

Author: Jim Brandt
Author Date: 2026-06-26 20:48:33 UTC

Update tests to verify number mode for priority text input

6.0/home-for-chrome 2026-06-23 09:33:49 UTC
Explicitly set HOME environment variable for Chromium used in dashboard mailer

Author: sunnavy
Author Date: 2026-06-23 07:17:24 UTC

Explicitly set HOME environment variable for Chromium used in dashboard mailer

Chromium relies on the $HOME environment variable to determine where to
store user data, cache, and configuration files. Pointing it to a temporary
directory ensures that Chromium can write these files regardless of how
it’s invoked: whether from a cron job, the web UI, or the command line.

This change resolves the following error that occurs when testing a
dashboard with charts on the subscription page in recent versions of
Chromium:

    No search session with given id found

6.0/quote-selection-in-post-body 2026-06-18 13:02:52 UTC
Test quote-selected text is sent in the request body instead of URL

Author: sunnavy
Author Date: 2026-06-18 09:36:33 UTC

Test quote-selected text is sent in the request body instead of URL

6.0/late-transaction-batch-cleanup 2026-06-17 22:35:27 UTC
Release tickets and transactions pinned by test helper subs

Author: sunnavy
Author Date: 2026-06-17 21:55:59 UTC

Release tickets and transactions pinned by test helper subs

Several tests define named helper subs that close over a ticket (in the
template-parsing test, its first transaction). Those subs persist in the
symbol table until the interpreter exits, so the captured objects are only
freed during global destruction.

This eliminates the warning of "Too late to safely run transaction-batch
scrips".

6.0/cache-user-privileged 2026-06-15 14:45:47 UTC
Cache RT::User's Privileged flag in the SearchBuilder record cache

Author: sunnavy
Author Date: 2026-06-15 14:42:56 UTC

Cache RT::User's Privileged flag in the SearchBuilder record cache

Privileged is derived from group membership, not stored as a column.
By caching the result in $self->{values}, it takes advantage of
DBIx::SearchBuilder's record cache, so repeated loads of the same user avoid
the HasMember lookup. This improves performance when a page makes repeated
ShowUser calls, which commonly occurs in ticket lists.

SetPrivileged calls _SetLastUpdated via _NewTransaction, which immediately
expires the cache, so no explicit cache expiration is needed in this commit.

6.0/rt-check-dashboard-subscriptions 2026-06-12 15:43:50 UTC
capture warn for checking dashboards

Author: Brad Embree
Author Date: 2026-06-01 14:08:08 UTC

capture warn for checking dashboards

6.0/createasset-portlet-layout 2026-06-05 15:56:17 UTC
Align Quick asset creation portlet layout with Quick ticket creation

Author: Craig Kaiser
Author Date: 2026-06-05 15:54:45 UTC

Align Quick asset creation portlet layout with Quick ticket creation

Wrap the label, catalog selector, and submit in the same row mt-2 /
col-auto structure already used by the sibling "Quick ticket creation"
(CreateTicket) portlet, and give the submit the standard btn btn-primary
class and a name, so the two portlets render consistently and the catalog
dropdown is compact and inline.

6.0/ticket-autocomplete-exact-match-first 2026-06-04 20:48:44 UTC
Surface exact ticket id match first in ticket autocomplete

Author: Craig Kaiser
Author Date: 2026-06-04 20:42:47 UTC

Surface exact ticket id match first in ticket autocomplete

Typing a known ticket number into a link field often failed to offer that
ticket: the autocomplete ran a single query capped at ten rows with no
exact-match priority, so when many tickets carried the number in their
Subject the one ticket the user actually wanted could fall outside the
window and never appear.

6.0/prefer-content-transaction-in-batch 2026-06-02 18:26:25 UTC
Add tests for $PreferContentTransactionInBatch

Author: Brad Embree
Author Date: 2026-06-02 18:26:25 UTC

Add tests for $PreferContentTransactionInBatch

6.0/web-reverse-proxy 2026-05-26 20:03:06 UTC
Test the $WebReverseProxy config

Author: sunnavy
Author Date: 2026-05-23 01:35:49 UTC

Test the $WebReverseProxy config

6.0/process-ocf-updates-preserve-object-arg 2026-05-20 03:04:38 UTC
Preserve Object arg in ProcessObjectCustomFieldUpdates

Author: Brad Embree
Author Date: 2026-05-20 03:04:38 UTC

Preserve Object arg in ProcessObjectCustomFieldUpdates

If ProcessObjectCustomFieldUpdates is passed ARGSRef changing CFs for multiple
objects the Object arg could be mutated depending on the last object loaded in
the loop thru the CFs.

Added logic to preserve the original Object arg passed in.

6.0/third-party-automate 2026-05-15 17:55:16 UTC
Create a tool to automatically check third-party CVEs

Author: Jim Brandt
Author Date: 2026-05-15 17:55:16 UTC

Create a tool to automatically check third-party CVEs

This uses the metadata for all third-party libraries in RT
to look up any CVEs and also report the latest version
available.

6.0/forward-attachments-in-headers 2026-04-17 20:24:53 UTC
Remove unnecessary content type check

Author: sunnavy
Author Date: 2025-12-11 19:26:50 UTC

Remove unnecessary content type check

The code above already confirms the content type is multipart, which
inherently can not start with "message/".

6.0/default-id-search-operator 2026-04-09 20:10:07 UTC
Update id operator to "=" in $AssetSearchFields and $TicketAutocompleteFields

Author: sunnavy
Author Date: 2026-04-09 19:40:44 UTC

Update id operator to "=" in $AssetSearchFields and $TicketAutocompleteFields

It's more intuitive to use "=" for id searches by default. This is also
consistent with $GroupSearchFields.

6.0/remove-asset-obsolete-pages 2026-04-08 21:17:48 UTC
Delete asset obsolete ModifyPeople and ModifyCFs pages

Author: sunnavy
Author Date: 2026-01-14 13:30:11 UTC

Delete asset obsolete ModifyPeople and ModifyCFs pages

The features are conveniently available via inline edit on display page.

6.0/account-for-dst-in-timezone-offset 2026-04-06 20:48:52 UTC
Account for DST in calculating timezone offset

Author: Brad Embree
Author Date: 2026-04-06 20:41:50 UTC

Account for DST in calculating timezone offset

The timezone offset could be incorrect during the DST transition. Added a
refinement step to account for DST transition.

6.0/core-selfservice-simple-search 2026-04-03 02:16:12 UTC
Add tests for self service simple search

Author: Brad Embree
Author Date: 2026-04-03 02:16:12 UTC

Add tests for self service simple search

6.0/htmx-login-redirect-fix 2026-04-02 14:34:22 UTC
Use HX-Current-URL for post-login redirect on HTMX requests

Author: Craig Kaiser
Author Date: 2026-04-02 14:34:17 UTC

Use HX-Current-URL for post-login redirect on HTMX requests

When a logged-out session triggers an HTMX request (e.g. a saved search
refresh), IntuitNextPage() was capturing the HTMX endpoint URL as the
post-login redirect target. Since HTMX endpoints don't render as
standalone pages, this resulted in an error after login. Now we use the
HX-Current-URL header, which reflects the actual page the user was
viewing, to determine the correct redirect destination.

6.0/outgoing-email-replace-embedded-youtube 2026-03-31 22:00:29 UTC
Transform embedded media for outgoing email

Author: Brad Embree
Author Date: 2026-03-31 22:00:29 UTC

Transform embedded media for outgoing email

Embedded youtube videos do not display in most email clients as they disallow
iframes. Convert embedded media into links, including a thumbnail for youtube
videos.

6.0/dump-initialdata-log-invalid-output 2026-03-25 19:26:34 UTC
Log dumped data that fails JSON serialization

Author: sunnavy
Author Date: 2025-11-10 20:42:34 UTC

Log dumped data that fails JSON serialization

This helps debug and locate problematic objects.

6.0/group-rights-ui-improvements 2026-03-24 15:10:09 UTC
Improve GroupRights UI for groups with many members

Author: Craig Kaiser
Author Date: 2026-03-13 21:25:48 UTC

Improve GroupRights UI for groups with many members

Show subgroup memberships in a collapsible <details> element below the
group heading, expanded by default, so large member lists don't dominate
the page.

6.0/rt-import-remote 2026-03-20 19:54:36 UTC
Fix wide character error when importing attachments with Unicode filenames

Author: Craig Kaiser
Author Date: 2026-03-20 19:54:33 UTC

Fix wide character error when importing attachments with Unicode filenames

JSON::decode_json returns decoded character strings, but MIME::Entity
expects byte strings for filenames. RT::Util::mime_recommended_filename
calls Encode::decode("UTF-8", ...) on the value, which fails with "Wide
character" if passed an already-decoded string.

Encode the filename to UTF-8 bytes before passing to MIME::Entity->attach,
consistent with how body content and Subject are already handled.

6.0/own-cf-rights 2026-03-10 18:49:50 UTC
Test SeeOwnCustomField and ModifyOwnCustomField rights

Author: sunnavy
Author Date: 2026-03-10 18:49:50 UTC

Test SeeOwnCustomField and ModifyOwnCustomField rights

6.0/css-inliner-ignore-pre-selector 2026-02-17 23:41:30 UTC
Skip inlining CSS for content with over 3k tags

Author: sunnavy
Author Date: 2026-01-29 19:25:10 UTC

Skip inlining CSS for content with over 3k tags

Email content with too many tags can cause performance issues during the
inlining process. Typically, emails are not expected to contain tags more
than 1k.

6.0/asset-page-layout-custom-roles 2026-02-06 21:17:27 UTC
Determine asset custom role visibility based on page layout

Author: sunnavy
Author Date: 2026-01-13 21:23:23 UTC

Determine asset custom role visibility based on page layout

6.0/replace-my-day-with-search 2026-02-06 18:43:03 UTC
Add docs for My Day saved search

Author: Brad Embree
Author Date: 2026-02-06 17:54:44 UTC

Add docs for My Day saved search

6.0/make-clicky-content-types 2026-01-30 18:12:52 UTC
Test @MakeClickyContentTypes config

Author: sunnavy
Author Date: 2025-12-26 20:49:16 UTC

Test @MakeClickyContentTypes config

6.0/chart-duration-time-units 2026-01-06 19:51:10 UTC
Add configurable time unit display for calculated duration values

Author: Craig Kaiser
Author Date: 2025-12-31 18:38:36 UTC

Add configurable time unit display for calculated duration values

Users can now select from seconds, minutes, hours, days, and weeks for
displaying calculated duration values on charts. Duration conversion uses
Time::Seconds methods. Y-axis ticks, labels, and tooltips show formatted
values with unit abbreviations. TimeUnit setting is saved with searches
and respected in dashboards.

5.0/optimize-ticket-display 2025-12-22 19:20:10 UTC
Skip processing when displaying ticket with no update args

Author: Jim Brandt
Author Date: 2022-07-29 14:23:07 UTC

Skip processing when displaying ticket with no update args

If a request to Ticket/Display.html doesn't have update args to process,
skip running all processing code for these display-only requests.

With no update args, this processing makes no updates and is effectively
a no-op on most RTs. However, on some systems these processing steps can
slow down page display.

6.0/claude-skill-rt-extensions 2025-12-18 14:10:07 UTC
Add a skill with tips for claude to write good RT tests

Author: Jim Brandt
Author Date: 2025-12-18 14:10:07 UTC

Add a skill with tips for claude to write good RT tests

6.0/remove-selenium-code 2025-12-13 13:36:04 UTC
Add Playwright as a dependency for running Playwright tests

Author: sunnavy
Author Date: 2025-12-13 13:17:28 UTC

Add Playwright as a dependency for running Playwright tests

6.0/add-myrequests-callback 2025-11-03 19:25:00 UTC
Add ModifyQuery callback to /SelfService/Elements/MyRequests

Author: Craig Kaiser
Author Date: 2025-11-03 19:25:00 UTC

Add ModifyQuery callback to /SelfService/Elements/MyRequests

6.0/kanban-craig 2025-10-29 02:54:54 UTC
Add Kanban style display mode

Author: Craig Kaiser
Author Date: 2025-10-28 03:04:05 UTC

Add Kanban style display mode

6.0/tom-select-prompt 2025-10-21 20:54:21 UTC
Example of a prompt before adding a custom field value

Author: Jim Brandt
Author Date: 2025-10-21 20:54:21 UTC

Example of a prompt before adding a custom field value

6.0/history-filter-all 2025-10-15 20:11:23 UTC
Treat all checked types as "no filter" when history filtering

Author: Jim Brandt
Author Date: 2025-10-15 20:11:23 UTC

Treat all checked types as "no filter" when history filtering

If all provided types in the history filter are checked, the
history should show all normal transactions, equal to the full
history before the history filter feature was added. Previously
the provided list was being applied, which filtered out the rare
transaction types that are not provided in the "short" filter
list.

6.0/claude-instructions 2025-10-02 20:51:16 UTC
Commit an initial version of a claude config for RT

Author: Jim Brandt
Author Date: 2025-10-02 20:51:16 UTC

Commit an initial version of a claude config for RT

6.0/object-txns-acl-in-sql 2025-09-16 00:40:31 UTC
Test ACL for single ticket/asset transactions

Author: sunnavy
Author Date: 2025-09-16 00:20:45 UTC

Test ACL for single ticket/asset transactions

5.0/selfservice-sorting-redirect-2 2025-08-22 00:48:32 UTC
Route sorting links back to Open.html page in SelfService

Author: Craig Kaiser
Author Date: 2025-08-21 13:59:37 UTC

Route sorting links back to Open.html page in SelfService

Open.html was created when index.html was updated in 47c40241e3 to
support displaying a dashboard instead of open tickets. When the code
was moved, the BaseURL still pointed to index.html, so the sorting links
didn't work correctly.

Update BaseURL to stay on Open.html when processing sort links.

5.0/selfservice-sorting-redirect 2025-08-21 15:05:25 UTC
Route sorting links back to Open.html page in SelfService

Author: Craig Kaiser
Author Date: 2025-08-21 13:59:37 UTC

Route sorting links back to Open.html page in SelfService

Open.html was created when index.html was updated in 47c40241e3 to
support displaying a dashboard instead of open tickets. When the code
was moved, the BaseURL still pointed to index.html, so the sorting links
didn't work correctly.

Update BaseURL to stay on Open.html when processing sort links.

6.0/create-dashboard-from-saved-search 2025-08-19 16:17:51 UTC
Add tests for creating dashboard from saved search

Author: Brad Embree
Author Date: 2025-08-19 16:17:51 UTC

Add tests for creating dashboard from saved search

5.0/menu-search-autocomplete 2025-08-19 01:56:34 UTC
Test article menu searches

Author: sunnavy
Author Date: 2022-07-26 15:44:53 UTC

Test article menu searches

6.0/update-ckeditor-header-definitions 2025-08-15 18:21:06 UTC
Update CKEditor heading definitions

Author: Brad Embree
Author Date: 2025-08-15 18:21:06 UTC

Update CKEditor heading definitions

CKEditor does not use the <h1> tag by default. Its definition of Heading 1 is
the <h2> tag. This might confuse users so heading config options were added to
use the <h1> tag for Heading 1.

6.0/crypt-untrusted-keys 2025-08-08 18:07:19 UTC
Do not encrypted emails with untrusted smime keys

Author: sunnavy
Author Date: 2025-08-07 17:48:48 UTC

Do not encrypted emails with untrusted smime keys

When AcceptUntrustedCAs is disabled (by default), RT should not send emails
encrypted with untrusted smime keys, regardless of the interface.

Previously, RT allowed encryption with untrusted keys for non-WebUI actions
(e.g. Email), while the WebUI enforced additional checks by requiring key
selection upfront and thus didn't allow it.

6.0/dashboard-saved-search-rows 2025-07-31 13:38:34 UTC
Drop the obsolete $DefaultSummaryRows config

Author: sunnavy
Author Date: 2025-07-31 02:18:26 UTC

Drop the obsolete $DefaultSummaryRows config

As admins can customize Rows for saved searches individually,
$DefaultSummaryRows is not needed any more.

6.0/hide-inactive-links 2025-07-25 02:20:50 UTC
Support to hide inactive ticket links on ticket/asset display pages

Author: sunnavy
Author Date: 2025-07-25 01:22:22 UTC

Support to hide inactive ticket links on ticket/asset display pages

This makes UI cleaner especially when there are a lot of inactive tickets.

6.0/log-missing-content-obj 2025-07-09 20:25:53 UTC
Log SavedSearch calls for missing ContentObject records

Author: Jim Brandt
Author Date: 2025-07-09 18:41:16 UTC

Log SavedSearch calls for missing ContentObject records

SetContent calls ContentObj to determine if content already
exists, so missing records were not logged because it was
normal for this case. However, this also hid possible issues
in the DB if a ContentObject record was missing for a SavedSearch.

Update the public method to log any failure to find or return
content. Keep an internal method for SetContent.

6.0/ticket-field-labels 2025-06-09 20:03:28 UTC
Support to customize ticket field labels

Author: sunnavy
Author Date: 2025-06-03 19:36:14 UTC

Support to customize ticket field labels

This is initially for RTIR's field "Correspondents", which is actually
"Requestors". With this, users can have different field labels in different
queues.

5.0/disable-menu-items-after-clicked 2025-03-31 20:23:30 UTC
Disable menu items after one is clicked

Author: Brad Embree
Author Date: 2025-03-31 20:23:30 UTC

Disable menu items after one is clicked

A user could click a second menu item before the page reloads after clicking an
initial menu item which could cause confusing behavior.

Added some JavaScript to disable all menu items after one is clicked.

5.0/fix-shredder-attachment-plugin-validation-test 2025-03-18 16:58:27 UTC
Fix Shredder Attachments plugin validation test

Author: Ronaldo Richieri
Author Date: 2025-03-18 16:58:27 UTC

Fix Shredder Attachments plugin validation test

Some files could not be found while using the Attachments plugin in
the Shredder due to an incorrect validation regex which was not
considering valid characters such as dash (-) and other valid special
characters in filenames.

This commit updates the regex to ensure it correctly matches all valid
characters in a filename.

6.0/bootstrap-dark-mode-defaults 2025-03-05 20:07:02 UTC
Use more bootstrap defaults for dark mode coloring

Author: Jim Brandt
Author Date: 2025-03-05 20:07:02 UTC

Use more bootstrap defaults for dark mode coloring

Keep one override for link color because we make some UI
elements like titles into links and having some colored
and others not looks strange.

1 → 100 of 244 results

Other repositories

Name Last Modified
lp:rt 12 hours ago
1 → 1 of 1 result
You can't create new repositories for RT: Request Tracker.