2025-09-26 - 2026-09-26

Overview

3 Active Pull Requests
108 Active Issues
Excluding merges, 1 author has pushed 355 commits to main and 474 commits to all branches. On main, 145 files have changed and there have been 60551 additions and 30250 deletions.

48 Releases published by 1 user

Published deploy-2026.09.26-272 2026-09-26 17:18:13 -04:00

Published deploy-2026.09.25-268 2026-09-25 16:42:16 -04:00

Published deploy-2026.09.25-264 2026-09-25 15:50:42 -04:00

Published deploy-2026.09.24-258 2026-09-24 19:32:07 -04:00

Published deploy-2026.09.24-254 2026-09-24 19:24:08 -04:00

Published deploy-2026.09.12-242 2026-09-12 01:24:35 -04:00

Published deploy-2026.09.12-238 2026-09-12 01:02:14 -04:00

Published deploy-2026.09.12-234 2026-09-11 22:29:11 -04:00

Published deploy-2026.09.12-230 2026-09-11 22:22:36 -04:00

Published deploy-2026.09.12-226 2026-09-11 22:00:44 -04:00

Published deploy-2026.09.12-222 2026-09-11 21:48:02 -04:00

Published deploy-2026.09.11-218 2026-09-11 15:23:06 -04:00

Published deploy-2026.09.11-214 2026-09-11 14:52:35 -04:00

Published deploy-2026.09.11-210 2026-09-11 14:15:24 -04:00

Published deploy-2026.09.11-206 2026-09-11 13:53:01 -04:00

Published deploy-2026.09.11-202 2026-09-11 13:21:03 -04:00

Published deploy-2026.09.11-198 2026-09-11 12:46:55 -04:00

Published deploy-2026.09.11-194 2026-09-11 12:28:43 -04:00

Published deploy-2026.09.11-190 2026-09-11 11:57:45 -04:00

Published deploy-2026.09.11-186 2026-09-11 11:32:27 -04:00

Published deploy-2026.09.09-182 2026-09-08 21:36:32 -04:00

Published deploy-2026.09.09-178 2026-09-08 21:22:10 -04:00

Published deploy-2026.09.08-172 2026-09-08 15:42:40 -04:00

Published deploy-2026.09.01-163 2026-08-31 21:15:30 -04:00

Published deploy-2026.08.08-155 2026-08-07 23:27:01 -04:00

Published deploy-2026.08.08-151 2026-08-07 23:13:10 -04:00

Published deploy-2026.08.08-147 2026-08-07 23:04:21 -04:00

Published deploy-2026.08.08-143 2026-08-07 22:57:03 -04:00

Published deploy-2026.08.08-139 2026-08-07 22:48:36 -04:00

Published deploy-2026.07.15-130 2026-07-15 19:24:53 -04:00

Published deploy-2026.07.15-122 2026-07-15 16:59:24 -04:00

Published deploy-2026.07.11-107 2026-07-10 20:28:33 -04:00

Published deploy-2026.06.30-96 2026-06-30 19:11:58 -04:00

Published deploy-2026.06.30-92 2026-06-30 15:11:46 -04:00

Published deploy-2026.06.30-88 2026-06-30 14:33:04 -04:00

Published deploy-2026.06.30-84 2026-06-30 13:01:57 -04:00

Published deploy-2026.06.30-80 2026-06-30 12:33:22 -04:00

Published deploy-2026.06.30-76 2026-06-30 12:06:28 -04:00

Published deploy-2026.06.30-72 2026-06-30 10:31:46 -04:00

Published deploy-2026.06.30-68 2026-06-30 09:41:13 -04:00

Published deploy-2026.04.29-49 2026-04-29 17:47:55 -04:00

Published deploy-2026.04.29-41 2026-04-29 17:36:28 -04:00

Published deploy-2026.04.18-35 2026-04-18 14:10:18 -04:00

Published deploy-2026.04.16-31 2026-04-16 08:56:19 -04:00

Published deploy-2026.04.16-27 2026-04-16 08:47:58 -04:00

Published deploy-2026.04.16-23 2026-04-16 08:37:29 -04:00

Published deploy-2026.04.16-11 2026-04-16 08:09:25 -04:00

Published deploy-2026.04.14-9 2026-04-14 16:32:21 -04:00

3 Pull requests merged by 1 user

Merged #26 Bearer API extension: list/read/comment/close + key scopes 2026-07-15 19:19:25 -04:00

Merged #25 Ship CSRF-drift + markdown fixes to production 2026-07-15 16:54:01 -04:00

Merged #24 Fix bugs across data layer, API, frontend, ops (multi-agent review) 2026-07-10 20:26:15 -04:00

108 Issues closed from 1 user

Closed #113 MCP: ticket links (dependencies/duplicates) and similar-ticket search 2026-09-26 17:18:48 -04:00

Closed #112 Ticket pages are giving a 500, maybe due to the mcp server deployment? 2026-09-25 15:54:02 -04:00

Closed #111 Remote MCP server with OAuth (Authelia) so Claude Code can use Tinker Tickets as the signed-in user 2026-09-24 19:27:00 -04:00

Closed #78 Failed Matrix webhook posts are logged but never retried — confirm this best-effort design is intentional 2026-09-12 01:21:15 -04:00

Closed #70 Bearer read-scope API keys bypass ticket visibility entirely — confirm this is an intentional, documented decision 2026-09-12 01:21:14 -04:00

Closed #93 Watch/unwatch actions are never logged to audit_log 2026-09-12 01:21:14 -04:00

Closed #95 LDAP bind credentials transmitted in plaintext (no TLS) 2026-09-12 01:02:18 -04:00

Closed #110 chartStatus should be reworked to be just currently open, pending, in progress tickets as a breakdown as over time closed will take up 99% of it. 2026-09-11 22:26:48 -04:00

Closed #49 User Activity report: "Tickets Assigned" column filters by ticket creation date, not assignment date 2026-09-11 22:20:13 -04:00

Closed #98 Attachment 'thumbnails' are the full-size original image — no actual resized thumbnail is ever generated 2026-09-11 22:20:13 -04:00

Closed #33 Bulk operations aren't actually atomic despite the docblock claiming so 2026-09-11 21:58:59 -04:00

Closed #36 Bulk-action buttons have no double-submit guard 2026-09-11 21:58:59 -04:00

Closed #34 Bulk operations: TOCTOU race on ticket status used for workflow validation 2026-09-11 21:50:57 -04:00

Closed #35 create_ticket_api.php: dedup/escalation race can duplicate notifications or drop a real escalation 2026-09-11 21:50:57 -04:00

Closed #37 Required-comment status-change flow isn't transactional (client and server) 2026-09-11 21:50:57 -04:00

Closed #109 No toolbar button inserts table syntax, despite README describing table rendering as a feature 2026-09-11 15:20:23 -04:00

Closed #43 base.js: unused lt.markdown module has no URL-protocol allowlist on links — latent stored-XSS trap 2026-09-11 15:20:22 -04:00

Closed #44 ESLint: ~20 empty catch blocks and ~6 loose equality comparisons in assets/js/ 2026-09-11 15:20:22 -04:00

Closed #45 README.md Project Structure tree is stale (missing error views, config/requirements.php, migration 001) 2026-09-11 15:20:22 -04:00

Closed #108 No debounce on the live markdown preview — full parser re-runs on every keystroke 2026-09-11 14:49:57 -04:00

Closed #62 Workflow Designer allows duplicate transition rows that silently override each other non-deterministically 2026-09-11 14:49:56 -04:00

Closed #88 Recurring ticket: a creation failure after claiming a schedule silently and permanently loses that occurrence 2026-09-11 14:49:56 -04:00

Closed #58 Advanced Search silently drops filters it doesn't represent, on submit 2026-09-11 14:49:55 -04:00

Closed #87 Comment edits never appear on the ticket's own Activity Timeline — missing ticket_id in audit log details 2026-09-11 14:12:02 -04:00

Closed #83 Every Bearer API request unnecessarily starts a new PHP session 2026-09-11 14:12:01 -04:00

Closed #80 RATE_LIMIT_DEFAULT/RATE_LIMIT_API config keys are dead — editing them in .env has zero effect 2026-09-11 14:12:00 -04:00

Closed #81 Bearer API endpoints are rate-limited purely by shared IP, not by API key — one key can starve another 2026-09-11 14:12:00 -04:00

Closed #82 X-RateLimit-* response headers are misleading for Bearer/API-key clients 2026-09-11 14:12:00 -04:00

Closed #77 Matrix webhook calls are synchronous with no connect-timeout — worst case ~30s added to a single comment's response time 2026-09-11 14:11:59 -04:00

Closed #86 CSRF resync updates the token but never auto-retries the failed request — every stale-token case surfaces a user-visible error first 2026-09-11 13:48:33 -04:00

Closed #57 Notification bell uses raw fetch() instead of lt.api, breaking CSRF token resync 2026-09-11 13:48:32 -04:00

Closed #73 Watchers are never pruned when a ticket's visibility is tightened 2026-09-11 13:48:32 -04:00

Closed #48 api/notifications.php: in-app notifications don't re-check current ticket visibility 2026-09-11 13:48:31 -04:00

Closed #50 Custom field values have no server-side validation against field_type or select options 2026-09-11 13:48:31 -04:00

Closed #47 Custom Fields feature is entirely disconnected from ticket creation/editing/viewing 2026-09-11 13:17:43 -04:00

Closed #68 hwmonDaemon 'reopen closed duplicate' path bypasses Workflow Designer validation entirely via raw SQL 2026-09-11 12:44:17 -04:00

Closed #74 Bulk-operation audit_log entries use a different shape than every other status-change path, breaking the timeline and in-app notifications 2026-09-11 12:44:17 -04:00

Closed #67 Bulk operations never fire Matrix/watcher notifications for status changes 2026-09-11 12:44:16 -04:00

Closed #56 Stale sessions never re-sync privileges from Authelia (revoked admin keeps access up to 5h) 2026-09-11 12:24:00 -04:00

Closed #105 App has no styled 500/fatal-error page — ErrorHandler is wired into essentially nothing 2026-09-11 12:24:00 -04:00

Closed #38 ErrorHandler.php documented as global but only wired into 1 of 33 API endpoints 2026-09-11 12:23:59 -04:00

Closed #39 13 of 33 API endpoints never disable display_errors — potential stack-trace leak 2026-09-11 12:23:59 -04:00

Closed #85 12 of ~16 hand-rolled CSRF checks omit csrf_token from their rejection response, breaking client-side resync app-wide 2026-09-11 11:54:45 -04:00

Closed #94 TRUSTED_PROXIES ships empty/disabled by default — full admin-impersonation risk if not explicitly configured 2026-09-11 11:54:45 -04:00

Closed #103 index.php and create_ticket_api.php use their own raw mysqli connections instead of Database::getConnection() — missing charset/timezone sync on most page traffic 2026-09-11 11:54:45 -04:00

Closed #104 DB connection failure leaks raw mysqli error text to any unauthenticated visitor 2026-09-11 11:54:45 -04:00

Closed #72 sendAssignmentNotification() has the same missing-visibility-check gap as #46 2026-09-11 11:27:08 -04:00

Closed #69 @mention notifications leak confidential/internal ticket content to users with no access — worse than #46 2026-09-11 11:27:07 -04:00

Closed #71 notifyWatchers() only half-redacts for non-public tickets — title and shared notify-list still leak 2026-09-11 11:27:07 -04:00

Closed #46 Confidential/internal ticket titles leak to Matrix on create/status-change (NotificationHelper missing visibility check) 2026-09-11 11:27:06 -04:00

Closed #32 ticket_watchers: ticket_id type mismatch (int vs varchar) and missing FK to tickets 2026-09-08 21:33:43 -04:00

Closed #27 create_ticket_api.php: no rate limiting on external Bearer-key endpoint 2026-09-08 21:33:42 -04:00

Closed #28 TicketModel: visibility-filter group matching disagrees with single-ticket access check 2026-09-08 21:33:42 -04:00

Closed #30 migrate.php: transaction wrapping around DDL is illusory, failed migration can wedge the runner 2026-09-08 21:33:42 -04:00

Closed #64 SLA priority-alert banner doesn't update when priority changes without a page reload 2026-09-08 21:18:23 -04:00

Closed #99 download_attachment.php has no HTTP Range/partial-content support 2026-09-08 21:18:23 -04:00

Closed #100 Attachment listing is completely unpaginated 2026-09-08 21:18:23 -04:00

Closed #76 Two different 'clear filters' controls clear disjoint sets — no single click fully resets the dashboard 2026-09-08 21:18:22 -04:00

Closed #101 Dashboard stats/chart minor cleanup: missing empty-state message, dead duplicate click-handler, dead computed field 2026-09-08 20:46:44 -04:00

Closed #102 Dashboard 'Quick Assign' is completely non-functional — wrong callback contract 2026-09-08 20:46:44 -04:00

Closed #106 Requirements checker never verifies memory_limit/max_execution_time are set to sane values 2026-09-08 20:46:44 -04:00

Closed #107 Markdown toolbar buttons clear the textarea's native undo/redo history 2026-09-08 20:46:44 -04:00

Closed #92 README Dev Note #24's StatsModel invalidation caller list is missing an 8th caller (documentation gap, behavior is correct) 2026-09-08 20:46:43 -04:00

Closed #96 Concurrent first-time logins for a brand-new user can throw an uncaught exception 2026-09-08 20:46:43 -04:00

Closed #97 Image attachments retain EXIF metadata (including GPS location) — served back verbatim to any user with ticket access 2026-09-08 20:46:43 -04:00

Closed #89 Re-enabling a paused recurring schedule fires immediately instead of resuming from 'now' 2026-09-08 20:46:42 -04:00

Closed #90 RecurringTicketModel::updateAfterRun() is dead code lacking the double-fire race guard of the method that replaced it 2026-09-08 20:46:42 -04:00

Closed #91 StatsModel: narrow dogpile cache-overwrite race can extend stale stats up to another full TTL after invalidation 2026-09-08 20:46:42 -04:00

Closed #79 dashboard.js: dead code — write-only localStorage key and unused sortTable() function 2026-09-08 20:46:41 -04:00

Closed #84 In-app notification title formatter assumes every ticket update is a status change — breaks for title/priority/description/category/type/visibility edits 2026-09-08 20:46:41 -04:00

Closed #65 Kanban drag-and-drop has no touch-event fallback — unusable on mobile despite README's "Touch-friendly controls" claim 2026-09-08 20:46:40 -04:00

Closed #66 cleanup_audit_log.php: unbounded single-statement DELETE risks lock contention on a large backlog 2026-09-08 20:46:40 -04:00

Closed #75 'Clear All Filters' button silently does nothing to any active date-range filter 2026-09-08 20:46:40 -04:00

Closed #60 Attachment thumbnail decision uses filename extension instead of server-verified MIME type 2026-09-08 20:46:39 -04:00

Closed #61 Advanced Search priority range and date range have no min≤max validation 2026-09-08 20:46:39 -04:00

Closed #63 .env.example is missing 5 environment variables that config.php reads and README documents 2026-09-08 20:46:39 -04:00

Closed #54 helpers/OutputHelper.php is dead code despite being documented as part of the security architecture 2026-09-08 20:46:38 -04:00

Closed #55 No per-ticket or per-user attachment count/storage quota 2026-09-08 20:46:38 -04:00

Closed #59 Notification bell polling ignores tab visibility and has no backoff 2026-09-08 20:46:38 -04:00

Closed #52 User Activity report: "Last Activity" column ignores the selected date-range filter 2026-09-08 20:46:37 -04:00

Closed #53 CreateTicketView.php uses raw browser confirm() instead of the project's showConfirmModal() convention 2026-09-08 20:46:37 -04:00

Closed #41 Collation inconsistency: saved_filters and ticket_attachments use utf8mb4_unicode_ci instead of the documented utf8mb4_general_ci convention 2026-09-08 20:46:36 -04:00

Closed #42 api/get_users.php: unrestricted user enumeration, no pagination or admin gate 2026-09-08 20:46:36 -04:00

Closed #51 Ticket dependency duplicate-check misses the semantic inverse relationship 2026-09-08 20:46:36 -04:00

Closed #29 Dashboard chart click-to-filter discards other active filters 2026-09-08 20:46:35 -04:00

Closed #31 Avatar color hash has drifted between PHP (crc32) and JS (custom hash) — same user shows different colors 2026-09-08 20:46:35 -04:00

Closed #40 Inconsistent FK ON DELETE behavior: bulk_operations.performed_by and ticket_templates.created_by default to RESTRICT 2026-09-08 20:46:35 -04:00

Closed #18 comment markdown not saving post reload sometimes 2026-08-31 21:08:42 -04:00

Closed #20 when closing a ticket and it asks for a comment, if you just close the modal then it still closes the ticket without a comment on the screen until you refresh where it then shows it still open. 2026-08-31 21:05:44 -04:00

Closed #21 When changing the status of a ticket from the bulk edit dashboard it doesn't take the workflow designer into account such as requiring a comment etc.. 2026-08-31 21:05:44 -04:00

Closed #22 When selecting the bars in the charts on the dashboard it should filter the page to that statistic 2026-08-31 21:05:44 -04:00

Closed #23 the on hover of a ticket id while on the dashboard in light mode shows in dark mode. 2026-08-31 21:05:44 -04:00

Closed #19 status change dropdown in lightmode shows as darkmode 2026-08-31 21:05:43 -04:00

Closed #16 Comment edit icon should only show for the owner of said comment 2026-04-07 00:42:53 -04:00

Closed #15 Comment delete icon should only show for admins 2026-04-07 00:42:45 -04:00

Closed #17 Swap all discord notifications to matrix webhook notifications 2026-04-07 00:42:38 -04:00

Closed #14 links are still showing in discord webhooks as localhost. 2026-02-10 12:32:17 -05:00

Closed #13 No option to assign to a user when creating a new ticket 2026-02-05 10:24:28 -05:00

Closed #12 discord links use localhost 2026-02-05 10:24:27 -05:00

Closed #11 Cannot scroll in ticket overview's 2026-01-30 19:11:03 -05:00

Closed #7 markdown comments do not support tables natively in codeblocks or out of them. 2026-01-25 11:55:42 -05:00

Closed #10 Links should be clickable no matter if markdown is enabled or not. 2026-01-24 17:05:38 -05:00

Closed #9 mobile ui is visible on desktop, also mobile ui sucks really bad 2026-01-24 17:05:37 -05:00

Closed #8 able to edit and delete comments 2026-01-24 17:05:36 -05:00

Closed #6 preview markdown does not work 2026-01-13 15:19:44 -05:00

Closed #5 unable to close a ticket 2026-01-08 12:55:20 -05:00

Closed #4 In Progress, status overflow due to min width possibly 2026-01-07 20:09:39 -05:00

Closed #3 Variable css on ticket search results below search bar 2026-01-07 20:09:34 -05:00

106 Issues created by 0 users

Opened #5 unable to close a ticket 2026-01-07 20:09:51 -05:00

Opened #6 preview markdown does not work 2026-01-11 16:45:33 -05:00

Opened #7 markdown comments do not support tables natively in codeblocks or out of them. 2026-01-24 13:43:39 -05:00

Opened #8 able to edit and delete comments 2026-01-24 14:47:16 -05:00

Opened #9 mobile ui is visible on desktop, also mobile ui sucks really bad 2026-01-24 14:47:34 -05:00

Opened #10 Links should be clickable no matter if markdown is enabled or not. 2026-01-24 16:09:17 -05:00

Opened #11 Cannot scroll in ticket overview's 2026-01-30 14:43:55 -05:00

Opened #12 discord links use localhost 2026-01-31 18:06:43 -05:00

Opened #13 No option to assign to a user when creating a new ticket 2026-02-03 14:27:03 -05:00

Opened #14 links are still showing in discord webhooks as localhost. 2026-02-09 17:08:35 -05:00

Opened #15 Comment delete icon should only show for admins 2026-02-18 21:59:38 -05:00

Opened #16 Comment edit icon should only show for the owner of said comment 2026-02-18 21:59:50 -05:00

Opened #17 Swap all discord notifications to matrix webhook notifications 2026-02-19 20:49:09 -05:00

Opened #18 comment markdown not saving post reload sometimes 2026-05-04 20:50:56 -04:00

Opened #19 status change dropdown in lightmode shows as darkmode 2026-05-08 10:08:54 -04:00

Opened #20 when closing a ticket and it asks for a comment, if you just close the modal then it still closes the ticket without a comment on the screen until you refresh where it then shows it still open. 2026-05-08 10:32:24 -04:00

Opened #21 When changing the status of a ticket from the bulk edit dashboard it doesn't take the workflow designer into account such as requiring a comment etc.. 2026-05-08 10:43:55 -04:00

Opened #22 When selecting the bars in the charts on the dashboard it should filter the page to that statistic 2026-05-08 10:54:30 -04:00

Opened #23 the on hover of a ticket id while on the dashboard in light mode shows in dark mode. 2026-06-07 17:37:16 -04:00

Opened #27 create_ticket_api.php: no rate limiting on external Bearer-key endpoint 2026-08-31 21:29:38 -04:00

Opened #28 TicketModel: visibility-filter group matching disagrees with single-ticket access check 2026-08-31 21:29:39 -04:00

Opened #29 Dashboard chart click-to-filter discards other active filters 2026-08-31 21:29:39 -04:00

Opened #30 migrate.php: transaction wrapping around DDL is illusory, failed migration can wedge the runner 2026-08-31 21:29:40 -04:00

Opened #31 Avatar color hash has drifted between PHP (crc32) and JS (custom hash) — same user shows different colors 2026-08-31 21:29:41 -04:00

Opened #32 ticket_watchers: ticket_id type mismatch (int vs varchar) and missing FK to tickets 2026-08-31 21:29:41 -04:00

Opened #33 Bulk operations aren't actually atomic despite the docblock claiming so 2026-08-31 21:29:42 -04:00

Opened #34 Bulk operations: TOCTOU race on ticket status used for workflow validation 2026-08-31 21:29:43 -04:00

Opened #35 create_ticket_api.php: dedup/escalation race can duplicate notifications or drop a real escalation 2026-08-31 21:29:43 -04:00

Opened #36 Bulk-action buttons have no double-submit guard 2026-08-31 21:29:43 -04:00

Opened #37 Required-comment status-change flow isn't transactional (client and server) 2026-08-31 21:29:44 -04:00

Opened #38 ErrorHandler.php documented as global but only wired into 1 of 33 API endpoints 2026-08-31 21:29:45 -04:00

Opened #39 13 of 33 API endpoints never disable display_errors — potential stack-trace leak 2026-08-31 21:29:45 -04:00

Opened #40 Inconsistent FK ON DELETE behavior: bulk_operations.performed_by and ticket_templates.created_by default to RESTRICT 2026-08-31 21:29:46 -04:00

Opened #41 Collation inconsistency: saved_filters and ticket_attachments use utf8mb4_unicode_ci instead of the documented utf8mb4_general_ci convention 2026-08-31 21:29:46 -04:00

Opened #42 api/get_users.php: unrestricted user enumeration, no pagination or admin gate 2026-08-31 21:29:47 -04:00

Opened #43 base.js: unused lt.markdown module has no URL-protocol allowlist on links — latent stored-XSS trap 2026-08-31 21:29:47 -04:00

Opened #44 ESLint: ~20 empty catch blocks and ~6 loose equality comparisons in assets/js/ 2026-08-31 21:29:48 -04:00

Opened #45 README.md Project Structure tree is stale (missing error views, config/requirements.php, migration 001) 2026-08-31 21:29:48 -04:00

Opened #46 Confidential/internal ticket titles leak to Matrix on create/status-change (NotificationHelper missing visibility check) 2026-08-31 21:36:16 -04:00

Opened #47 Custom Fields feature is entirely disconnected from ticket creation/editing/viewing 2026-08-31 21:36:16 -04:00

Opened #48 api/notifications.php: in-app notifications don't re-check current ticket visibility 2026-08-31 21:36:17 -04:00

Opened #49 User Activity report: "Tickets Assigned" column filters by ticket creation date, not assignment date 2026-08-31 21:36:17 -04:00

Opened #50 Custom field values have no server-side validation against field_type or select options 2026-08-31 21:36:18 -04:00

Opened #51 Ticket dependency duplicate-check misses the semantic inverse relationship 2026-08-31 21:36:19 -04:00

Opened #52 User Activity report: "Last Activity" column ignores the selected date-range filter 2026-08-31 21:36:19 -04:00

Opened #53 CreateTicketView.php uses raw browser confirm() instead of the project's showConfirmModal() convention 2026-08-31 21:36:20 -04:00

Opened #54 helpers/OutputHelper.php is dead code despite being documented as part of the security architecture 2026-08-31 21:36:21 -04:00

Opened #55 No per-ticket or per-user attachment count/storage quota 2026-08-31 21:36:21 -04:00

Opened #56 Stale sessions never re-sync privileges from Authelia (revoked admin keeps access up to 5h) 2026-08-31 21:40:09 -04:00

Opened #57 Notification bell uses raw fetch() instead of lt.api, breaking CSRF token resync 2026-08-31 21:40:10 -04:00

Opened #58 Advanced Search silently drops filters it doesn't represent, on submit 2026-08-31 21:40:10 -04:00

Opened #59 Notification bell polling ignores tab visibility and has no backoff 2026-08-31 21:40:11 -04:00

Opened #60 Attachment thumbnail decision uses filename extension instead of server-verified MIME type 2026-08-31 21:40:12 -04:00

Opened #61 Advanced Search priority range and date range have no min≤max validation 2026-08-31 21:40:12 -04:00

Opened #62 Workflow Designer allows duplicate transition rows that silently override each other non-deterministically 2026-08-31 23:57:36 -04:00

Opened #63 .env.example is missing 5 environment variables that config.php reads and README documents 2026-08-31 23:57:36 -04:00

Opened #64 SLA priority-alert banner doesn't update when priority changes without a page reload 2026-08-31 23:57:37 -04:00

Opened #65 Kanban drag-and-drop has no touch-event fallback — unusable on mobile despite README's "Touch-friendly controls" claim 2026-08-31 23:57:37 -04:00

Opened #66 cleanup_audit_log.php: unbounded single-statement DELETE risks lock contention on a large backlog 2026-08-31 23:57:38 -04:00

Opened #67 Bulk operations never fire Matrix/watcher notifications for status changes 2026-09-01 00:07:07 -04:00

Opened #68 hwmonDaemon 'reopen closed duplicate' path bypasses Workflow Designer validation entirely via raw SQL 2026-09-01 00:07:08 -04:00

Opened #69 @mention notifications leak confidential/internal ticket content to users with no access — worse than #46 2026-09-01 00:07:08 -04:00

Opened #70 Bearer read-scope API keys bypass ticket visibility entirely — confirm this is an intentional, documented decision 2026-09-01 00:07:09 -04:00

Opened #71 notifyWatchers() only half-redacts for non-public tickets — title and shared notify-list still leak 2026-09-01 00:07:09 -04:00

Opened #72 sendAssignmentNotification() has the same missing-visibility-check gap as #46 2026-09-01 00:07:10 -04:00

Opened #73 Watchers are never pruned when a ticket's visibility is tightened 2026-09-01 00:07:10 -04:00

Opened #74 Bulk-operation audit_log entries use a different shape than every other status-change path, breaking the timeline and in-app notifications 2026-09-01 00:07:11 -04:00

Opened #75 'Clear All Filters' button silently does nothing to any active date-range filter 2026-09-01 00:07:11 -04:00

Opened #76 Two different 'clear filters' controls clear disjoint sets — no single click fully resets the dashboard 2026-09-01 00:07:12 -04:00

Opened #77 Matrix webhook calls are synchronous with no connect-timeout — worst case ~30s added to a single comment's response time 2026-09-01 00:07:12 -04:00

Opened #78 Failed Matrix webhook posts are logged but never retried — confirm this best-effort design is intentional 2026-09-01 00:07:13 -04:00

Opened #79 dashboard.js: dead code — write-only localStorage key and unused sortTable() function 2026-09-01 00:07:13 -04:00

Opened #80 RATE_LIMIT_DEFAULT/RATE_LIMIT_API config keys are dead — editing them in .env has zero effect 2026-09-01 00:07:14 -04:00

Opened #81 Bearer API endpoints are rate-limited purely by shared IP, not by API key — one key can starve another 2026-09-01 00:07:14 -04:00

Opened #82 X-RateLimit-* response headers are misleading for Bearer/API-key clients 2026-09-01 00:07:14 -04:00

Opened #83 Every Bearer API request unnecessarily starts a new PHP session 2026-09-01 00:07:15 -04:00

Opened #84 In-app notification title formatter assumes every ticket update is a status change — breaks for title/priority/description/category/type/visibility edits 2026-09-01 00:08:16 -04:00

Opened #85 12 of ~16 hand-rolled CSRF checks omit csrf_token from their rejection response, breaking client-side resync app-wide 2026-09-01 00:08:16 -04:00

Opened #86 CSRF resync updates the token but never auto-retries the failed request — every stale-token case surfaces a user-visible error first 2026-09-01 00:08:17 -04:00

Opened #87 Comment edits never appear on the ticket's own Activity Timeline — missing ticket_id in audit log details 2026-09-01 00:08:18 -04:00

Opened #88 Recurring ticket: a creation failure after claiming a schedule silently and permanently loses that occurrence 2026-09-01 00:08:18 -04:00

Opened #89 Re-enabling a paused recurring schedule fires immediately instead of resuming from 'now' 2026-09-01 00:08:19 -04:00

Opened #90 RecurringTicketModel::updateAfterRun() is dead code lacking the double-fire race guard of the method that replaced it 2026-09-01 00:08:19 -04:00

Opened #91 StatsModel: narrow dogpile cache-overwrite race can extend stale stats up to another full TTL after invalidation 2026-09-01 00:08:20 -04:00

Opened #92 README Dev Note #24's StatsModel invalidation caller list is missing an 8th caller (documentation gap, behavior is correct) 2026-09-01 00:08:20 -04:00

Opened #93 Watch/unwatch actions are never logged to audit_log 2026-09-01 00:08:21 -04:00

Opened #94 TRUSTED_PROXIES ships empty/disabled by default — full admin-impersonation risk if not explicitly configured 2026-09-01 00:13:36 -04:00

Opened #95 LDAP bind credentials transmitted in plaintext (no TLS) 2026-09-01 00:13:37 -04:00

Opened #96 Concurrent first-time logins for a brand-new user can throw an uncaught exception 2026-09-01 00:13:37 -04:00

Opened #97 Image attachments retain EXIF metadata (including GPS location) — served back verbatim to any user with ticket access 2026-09-01 00:13:38 -04:00

Opened #98 Attachment 'thumbnails' are the full-size original image — no actual resized thumbnail is ever generated 2026-09-01 00:13:38 -04:00

Opened #99 download_attachment.php has no HTTP Range/partial-content support 2026-09-01 00:13:38 -04:00

Opened #100 Attachment listing is completely unpaginated 2026-09-01 00:13:39 -04:00

Opened #101 Dashboard stats/chart minor cleanup: missing empty-state message, dead duplicate click-handler, dead computed field 2026-09-01 00:13:39 -04:00

Opened #102 Dashboard 'Quick Assign' is completely non-functional — wrong callback contract 2026-09-01 00:21:11 -04:00

Opened #103 index.php and create_ticket_api.php use their own raw mysqli connections instead of Database::getConnection() — missing charset/timezone sync on most page traffic 2026-09-01 00:21:11 -04:00

Opened #104 DB connection failure leaks raw mysqli error text to any unauthenticated visitor 2026-09-01 00:21:12 -04:00

Opened #105 App has no styled 500/fatal-error page — ErrorHandler is wired into essentially nothing 2026-09-01 00:21:13 -04:00

Opened #106 Requirements checker never verifies memory_limit/max_execution_time are set to sane values 2026-09-01 00:21:13 -04:00

Opened #107 Markdown toolbar buttons clear the textarea's native undo/redo history 2026-09-01 00:21:14 -04:00

Opened #108 No debounce on the live markdown preview — full parser re-runs on every keystroke 2026-09-01 00:21:14 -04:00

Opened #109 No toolbar button inserts table syntax, despite README describing table rendering as a feature 2026-09-01 00:21:15 -04:00

Opened #110 chartStatus should be reworked to be just currently open, pending, in progress tickets as a breakdown as over time closed will take up 99% of it. 2026-09-11 12:27:31 -04:00

Opened #111 Remote MCP server with OAuth (Authelia) so Claude Code can use Tinker Tickets as the signed-in user 2026-09-24 13:03:42 -04:00

Opened #112 Ticket pages are giving a 500, maybe due to the mcp server deployment? 2026-09-25 01:05:36 -04:00

Opened #113 MCP: ticket links (dependencies/duplicates) and similar-ticket search 2026-09-26 17:07:52 -04:00