ges
a1c9e471e0
refactor: replace inline Locale.ROOT calls with StringNormalizer in TwitchUserLookupService
2026-04-24 16:19:39 +02:00
ges
d8f492db2d
test: add AccountServiceTest (6 tests) covering deleteAccount behaviour
2026-04-24 16:16:40 +02:00
ges
7b72cbafc9
refactor: inline private normalize() wrappers; use StringNormalizer.toLowerCaseRoot() directly
...
Remove boilerplate private normalize(String) wrappers from:
- ChannelDirectoryService
- ChannelSettingsService
- AccountService
- AuditLogService (keepsg normalizeFilter() which adds null-if-blank semantics)
Add StringNormalizer import to AuditLogService; remove now-unused Locale import.
2026-04-24 16:13:27 +02:00
ges
41ba1e242e
refactor: add VisualAsset.shallowCopy() to eliminate 9-field manual entity copy in previewTransform
2026-04-23 11:16:44 +02:00
ges
4b5cb6023c
refactor+test: extend StringNormalizer, migrate SystemAdministratorService, add SystemAdministratorServiceTest
...
- Add StringNormalizer.normalize() (trim + toLowerCase ROOT) for username normalization
- Migrate SystemAdministratorService private normalize() to use StringNormalizer.normalize()
- Remove now-unused Locale import from SystemAdministratorService
- Add StringNormalizerTest coverage for new normalize() method
- Add SystemAdministratorServiceTest with 10 unit tests covering all public methods
2026-04-23 11:14:02 +02:00
ges
6dabdd5662
refactor: remove hand-rolled ObjectMapper singleton in MarketplaceScriptSeedLoader; replace TODO comments with Javadoc
...
- Replace JsonSupport inner class (AtomicReference lazy singleton) with simple static final ObjectMapper field
- Replace TODO code-smell comments in TwitchEmoteService, SevenTvEmoteService, and MarketplaceScriptSeedLoader with descriptive Javadoc
- Use normalize() consistently in ChannelDirectoryService.topicFor()
2026-04-23 11:10:37 +02:00
ges
8c04b9c755
test: add StringNormalizerTest and AssetCleanupService unit tests
2026-04-21 16:36:48 +02:00
ges
2e6ead0382
refactor: extract ChannelAdminApiController and clean up ChannelDirectoryService
...
- Extract admin endpoint group (add/remove/list admins, suggestions) into dedicated ChannelAdminApiController
- ChannelApiController reduced from 665 to 520 lines; removes 3 dependency injections
- ChannelDirectoryService: extract resolveOrderForSort() helper from bulk-reorder comparator lambda
- Remove TODO comment from ChannelApiController (partially addressed by this split)
2026-04-21 16:32:00 +02:00
ges
3511936a29
refactor: move SchemaMigration responsibilities to Flyway migrations V13 and V14
...
- V13: create oauth2_authorized_client table and SPRING_SESSION_ATTRIBUTES upsert trigger
- V14: normalize oauth2_authorized_client timestamp columns (one-time data migration)
- SchemaMigration now only retains legacy backward-compat code for pre-Flyway databases
- Remove normalizeAuthorizedClientTimestamps() and ensureSessionAttributeUpsertTrigger() from SchemaMigration
- Add clear comment explaining SchemaMigration is legacy code only
2026-04-21 16:20:48 +02:00
ges
1a2e2344da
refactor+test: add MarketplaceService and SettingsService unit tests; use StringNormalizer in AccountService
2026-04-21 16:15:25 +02:00
ges
b6ca67d96c
refactor: eliminate code duplication across AssetPatch, OAuthTokenCipher, upload guards, SecurityConfig, and normalize helpers
...
- Add AssetPatch.forOrder() and simplify AssetPatch.fromVisibility() factory
- Replace null-chain AssetPatch constructors in ChannelDirectoryService with forOrder()
- Extract OAuthTokenCipher.buildFromKeys() to deduplicate two fromEnvironment() overloads
- Replace inline upload-size guards in createAsset/createScriptAttachment with enforceUploadLimit()
- Make script attachment content endpoint public for all channels (not just hard-coded 'gasolinebased')
- Extract StringNormalizer.toLowerCaseRoot() utility and use it in ChannelDirectoryService/ChannelSettingsService
2026-04-21 16:12:31 +02:00
ges
f62d01c30a
refactor: standardize logger field name to LOG across all production classes
2026-04-21 16:05:20 +02:00
ges
c9c5dc6eab
fix: update test to use MarketplaceService.listScripts after method was moved
2026-04-21 16:03:07 +02:00
ges
009c8f21fb
Extract ChannelSettingsService for canvas and script-overlay settings; add ChannelSettingsServiceTest
2026-04-21 15:47:25 +02:00
ges
0dd1a7418d
Extract AllowedDomainNormalizer utility; remove @Autowired, dead constants, and inline VISUAL_ASSET_TYPES duplication
2026-04-21 15:28:54 +02:00
ges
b741fb176a
Add tests for VersionService, GithubReleaseService, AuditLogService, AuthorizationService, MarketplaceScriptSeedLoader; fix duplicate import in ChannelDirectoryService
2026-04-21 15:23:40 +02:00
ges
3bcd6d6747
Add volume limiter
2026-03-13 16:36:21 +01:00
ges
e7af8907b4
Add GitInfoService
2026-03-13 15:21:53 +01:00
ges
0975c039a0
Cleanup chanenls
2026-02-13 14:16:52 +01:00
ges
c4bed3f050
Add todos
2026-02-10 13:44:21 +01:00
ges
45fb1921da
Bump version
0.0.3
2026-02-09 17:15:45 +01:00
ges
ed5007538b
Add instant updates to assset transformations
2026-02-09 17:15:29 +01:00
ges
0f088dc83b
Bump version
2026-02-09 16:40:35 +01:00
ges
fe6fb68b53
Reduce repaints of asset list
0.0.2
2026-02-09 16:33:25 +01:00
ges
1c6d115181
Fix ordering
2026-02-09 16:28:05 +01:00
ges
1c118aab0c
Update AGENTS.md file
2026-02-09 16:27:59 +01:00
ges
d6271b1758
Deferred emote sync
2026-01-30 08:51:55 +01:00
ges
f9613c7c2f
Add emote sync
2026-01-29 16:56:20 +01:00
ges
1d48b7d5e7
Major refactor
2026-01-27 23:15:29 +01:00
ges
39bb599219
Refactor models
2026-01-27 15:40:55 +01:00
ges
9cf25a4351
New CI
0.0.1
2026-01-26 18:20:46 +01:00
ges
ebdd9e9f18
Add missing transactions
2026-01-26 18:05:23 +01:00
ges
b57420d727
Add domain allow-list for script assets
2026-01-25 14:01:53 +01:00
ges
b115e16f11
Add text rendering and ttf support
2026-01-25 11:51:37 +01:00
ges
d22a2ca93c
Add APNG support
2026-01-25 11:38:08 +01:00
ges
92a5578e06
Add keepalive
2026-01-25 11:06:26 +01:00
ges
c96918340a
Separate audit log db
2026-01-23 18:14:09 +01:00
ges
e578007115
Remove docs chip in logout
2026-01-23 17:05:00 +01:00
ges
8c8cd0f42d
Add docs link
2026-01-23 17:03:47 +01:00
ges
6ee91c8b0c
Add social embed
2026-01-23 17:03:06 +01:00
ges
d78db75aeb
Use int values for canvas size
2026-01-23 16:33:51 +01:00
ges
f881d73dcc
Remove redundant badge
2026-01-23 16:30:30 +01:00
ges
2da8b6b81e
Pagination on audit log
2026-01-23 13:59:32 +01:00
ges
5ac181fdf2
Clean up zindex
2026-01-23 00:53:04 +01:00
ges
dee1f577e8
Add lichess marketplace script logo
2026-01-23 00:39:39 +01:00
ges
445c96110a
Fix command invocation
2026-01-23 00:34:31 +01:00
ges
6925e3f560
Update source
2026-01-23 00:26:51 +01:00
ges
c25f7d9bc9
Add lichess marketplace script
2026-01-23 00:04:35 +01:00
ges
a7368d2172
Remove useless headers
2026-01-22 23:07:51 +01:00
ges
33263b685c
Normalize settings on save
2026-01-22 22:44:21 +01:00