4.0 KiB
4.0 KiB
RedmineUP Local Fork Changelog
The installed RedmineUP redmine_contacts and redmine_contacts_helpdesk
plugins are treated as locally maintained legacy code for this Redmine 3.4.4
environment. Before risky edits, archive the current plugin directories in
dist/ and record the purpose, touched behavior, and LAN test result here.
Current Checkpoint
- Baseline:
- Redmine
3.4.4 redmine_contacts4.1.2 PROredmine_contacts_helpdesk3.0.9 PRO
- Redmine
- Strategic direction:
- Treat helpdesk/customer data as first-class.
- Prefer local-fork plugin edits when they unlock safer search/indexing.
- Keep Redmine request paths independent from external worker/index failures.
- Implemented locally:
redmine_event_outboxplugin with issue/journal/contact events.- Optional helpdesk outbox hooks for
HelpdeskTicketandJournalMessage. - Read-only
helpdesk_search/*JSON endpoints in the local helpdesk fork. - Standalone contact CLI and read-only helpdesk export/search CLI.
- LAN deployment status:
- Helpdesk search routes were deployed and route-loaded successfully on the LAN Redmine copy.
- Short alias/usage routes were added to avoid noisy routing errors during manual browser testing.
- Full end-to-end helpdesk outbox validation is still pending.
- Next meaningful milestone:
- Build the external worker/indexer that consumes
event_outbox_events, enriches via read-only MySQL joins, and emits deterministic ticket/message documents for external indexing.
- Build the external worker/indexer that consumes
2026-04-24 - POP3 Get Mail Compatibility Fix
- Touched plugin:
redmine_contactsredmine_contacts_helpdesk
- Purpose:
- Fix Helpdesk POP3 retrieval on the LAN test host when Ruby 2.5 raises
FrozenError: can't modify frozen StringinsideNet::POP3. - Allow Helpdesk outbound mail to use Mailpit's unauthenticated SMTP listener.
- Fix Helpdesk POP3 retrieval on the LAN test host when Ruby 2.5 raises
- Behavior changed:
- Changed POP3 message retrieval from
msg.poptomsg.pop(String.new)so Ruby's POP3 code appends chunks into an explicit mutable destination string. - This does not change message handling semantics; it only avoids relying on Ruby's default empty string argument being mutable.
- Changed Helpdesk SMTP delivery option construction to omit
authentication,user_name, andpasswordwhen the project SMTP authentication setting is blank.
- Changed POP3 message retrieval from
- LAN test result:
- Deployed to
/usr/share/redmine/plugins/redmine_contacts. HelpdeskMailer.check_project(Project.find("fud-helpdesk").id)completed successfully and processed 1 message.- Deployed to
/usr/share/redmine/plugins/redmine_contacts_helpdesk. - Mailpit rejected
AUTH PLAINwith502 5.5.1 Command not implemented. After blanking SMTP auth settings and omitting auth options, a Helpdesk test mail for issue#39863was delivered to Mailpit.
- Deployed to
2026-04-21 - Helpdesk Search Foundation
- Archives created before plugin edits:
dist/redmine_contacts-4.1.2-local-before-helpdesk-search-20260421T215548Z.tar.gzdist/redmine_contacts_helpdesk-3.0.9-local-before-helpdesk-search-20260421T215548Z.tar.gz
- Touched plugins:
redmine_contacts_helpdeskredmine_event_outbox
- Purpose:
- Make helpdesk ticket and message identity available to external search and indexing workers.
- Avoid relying on Redmine issue author when helpdesk-created tickets use
Anonymous.
- Behavior changed:
- Added read-only
helpdesk_search/*JSON endpoints guarded by the existingview_helpdesk_ticketspermission. - Added optional outbox hooks for
HelpdeskTicketandJournalMessage.
- Added read-only
- Payload/content policy:
- Include ids, source, direction, message id, and non-body address metadata.
- Do not copy email bodies, private note text, attachments, or BCC addresses into event rows or the read API.
- LAN test result:
- Pending. Validate on the LAN Redmine copy by creating/updating a controlled
helpdesk ticket and journal message, checking
event_outbox_events, and calling the newhelpdesk_search/*endpoints with a user/API key that hasview_helpdesk_tickets.
- Pending. Validate on the LAN Redmine copy by creating/updating a controlled
helpdesk ticket and journal message, checking