|
|
74974864cd
|
fix: no revote, blind result after voting, admin 1.5 vote weight
|
2026-07-13 22:01:03 +08:00 |
|
|
|
116fe89ac8
|
feat: poll/voting system with live results and bar charts
|
2026-07-13 21:37:16 +08:00 |
|
|
|
eed4591059
|
security: timing-safe API key, SSRF webhook guard, API no-cache, Referrer-Policy
|
2026-07-13 19:49:44 +08:00 |
|
|
|
bc16833a57
|
feat: SVG image captcha with noise and color distortion
|
2026-07-13 18:33:31 +08:00 |
|
|
|
befd51dbd5
|
fix: prevent username/email enumeration via registration error messages
|
2026-07-13 18:29:32 +08:00 |
|
|
|
b24f8cd74d
|
fix: critical - external POST parameter count mismatch (11 vs 10)
|
2026-07-13 18:26:49 +08:00 |
|
|
|
8d9e154ce1
|
fix: restrict PUT /tickets to admin's own claims (enforce claim system)
|
2026-07-13 18:19:28 +08:00 |
|
|
|
2a18b4b1a8
|
perf: cache config.json reads by mtime, reduce sync I/O
|
2026-07-13 04:18:52 +08:00 |
|
|
|
4f4df7e479
|
fix: backend+frontend full audit - 15 bugs fixed across all files
|
2026-07-13 04:07:18 +08:00 |
|
|
|
532efb962f
|
fix: HIGH+MEDIUM bugs from full audit - listen error, JWT, upload, mailer, webhook
|
2026-07-13 03:49:02 +08:00 |
|
|
|
7c03fe7635
|
fix: external register verify token mismatch, add type validation
|
2026-07-13 03:36:53 +08:00 |
|
|
|
a51e841fc9
|
refactor: English subcommands, plugin login/track redesign, clean external API routes
|
2026-07-13 03:35:13 +08:00 |
|
|
|
2a5c25f41c
|
refactor: unified /report command with login/register/track, external auth endpoints
|
2026-07-13 03:25:39 +08:00 |
|
|
|
de5a46f392
|
feat: Paper plugin + external API POST endpoint
|
2026-07-13 01:28:33 +08:00 |
|
|
|
ea3cd67e02
|
feat: external API for Java server integration with dedicated key
|
2026-07-13 01:24:03 +08:00 |
|
|
|
8ae02dd115
|
fix: add appealing to active_count, limit check, export processing count
|
2026-07-12 23:28:52 +08:00 |
|
|
|
728a4c46f1
|
fix: keep top bar visible in admin mode too
|
2026-07-12 21:57:45 +08:00 |
|
|
|
6f66b854b3
|
fix: add logout text label in top bar
|
2026-07-12 21:57:22 +08:00 |
|
|
|
650a65e347
|
fix: hide top bar in admin mode, sidebar is the primary nav
|
2026-07-12 21:28:20 +08:00 |
|
|
|
83398d1fab
|
feat: quick nav buttons in top bar when logged in
|
2026-07-12 21:24:49 +08:00 |
|
|
|
a9d85b2d07
|
fix: top bar shows username+logout when logged in, not blank
|
2026-07-12 21:23:16 +08:00 |
|
|
|
531d2a6e26
|
fix: expose all page objects to window for inline onclick handlers
|
2026-07-12 21:16:05 +08:00 |
|
|
|
6fa1a65843
|
fix: admin cant view admin_complaint/result_appeal via URL, appeal close also closes parent
|
2026-07-12 21:02:21 +08:00 |
|
|
|
f87411b3b4
|
feat: auto-close resolved/rejected after 7 days, closed only owner can modify
|
2026-07-12 18:15:10 +08:00 |
|
|
|
33078855cb
|
feat: appealing status, auto-close parent on appeal resolved, closed=final
|
2026-07-12 17:42:42 +08:00 |
|
|
|
bcaeb78469
|
fix: unclaimed page show reason for result_appeal type
|
2026-07-12 17:35:47 +08:00 |
|
|
|
0fd004dd84
|
fix: result_appeal also uses appeal display logic in ticket detail
|
2026-07-12 17:35:23 +08:00 |
|
|
|
93382773e6
|
fix: add result_appeal badge CSS and export label
|
2026-07-12 17:34:58 +08:00 |
|
|
|
7bd23b6bcf
|
fix: result_appeal had wrong respContent label
|
2026-07-12 17:34:02 +08:00 |
|
|
|
10b6ff94ed
|
feat: admin complaint (owner only) + result appeal (one per ticket, owner only)
|
2026-07-12 15:19:09 +08:00 |
|
|
|
6657c05dec
|
fix: add escJs for JS string escaping in onclick attributes, apply to users/templates/notifications
|
2026-07-12 13:09:52 +08:00 |
|
|
|
da5aa09421
|
fix: escape single quotes in U.esc to prevent onclick attribute injection
|
2026-07-12 13:09:10 +08:00 |
|
|
|
ea7a3c42be
|
fix: escape notification name/url in edit modal to prevent HTML injection
|
2026-07-12 13:08:45 +08:00 |
|
|
|
34e821ff1d
|
fix: canClaim logic - must be unassigned AND pending, not OR
|
2026-07-12 13:07:31 +08:00 |
|
|
|
c69ad2c36e
|
fix: show appeal reason in ticket detail, correct description labels
|
2026-07-12 13:07:09 +08:00 |
|
|
|
4e66db0406
|
fix: dashboard uses Auth.isOwner for export endpoint, admin was getting 403
|
2026-07-12 13:06:36 +08:00 |
|
|
|
29356bd530
|
fix: prevent $ interpolation in renderTemplate replacement
|
2026-07-12 13:04:58 +08:00 |
|
|
|
de1bca9d8a
|
fix: client-side file size limit 20→50MB to match server
|
2026-07-12 13:03:46 +08:00 |
|
|
|
3ec9e80e0d
|
fix: remove fragile setTimeout in confirm, bind handlers directly
|
2026-07-12 13:03:02 +08:00 |
|
|
|
62eeb61a71
|
fix: remove redundant min-height:100vh causing extra scrollbars in flex layout
|
2026-07-12 13:01:43 +08:00 |
|
|
|
82c2671149
|
fix: loadFooter only for admin, only once per session
|
2026-07-12 04:21:26 +08:00 |
|
|
|
5dd0db76be
|
fix: add UNIQUE on email, check dup email in profile update, generic error messages in auth route
|
2026-07-12 04:20:56 +08:00 |
|
|
|
f2fec8e609
|
fix: loadFooter after login, escape user-info, error handling on render
|
2026-07-12 03:16:02 +08:00 |
|
|
|
58df6c5268
|
fix: flexbox body layout for proper sticky footer, no scrollbar on public pages
|
2026-07-12 02:44:32 +08:00 |
|
|
|
50f3cace51
|
fix: move install check to init once, route() sync for instant nav, hide top-bar in admin
|
2026-07-12 02:40:08 +08:00 |
|
|
|
7699bd0598
|
fix: keep top bar visible, raise sidebar z-index to 210 to prevent overlap
|
2026-07-12 02:20:54 +08:00 |
|
|
|
9241dd6a6f
|
fix: add appeal button, hide top bar when logged in so sidebar is clickable
|
2026-07-12 02:14:25 +08:00 |
|
|
|
aa9ee24118
|
fix: disable all static file caching to prevent stale assets
|
2026-07-12 02:08:18 +08:00 |
|
|
|
f09a554ea3
|
fix: make LoginPage.render async to unify async render contract
|
2026-07-12 02:04:10 +08:00 |
|
|
|
989a3ae4cf
|
feat: home page hash-based tab routing for shareable links
|
2026-07-12 01:53:59 +08:00 |
|