Tyrrrz
7ff2347df1
Clean up
2026-02-27 14:32:27 +02:00
Tyrrrz
3391e755fc
Fix markdown not parsing for Persist Token tooltip
2026-02-27 14:19:03 +02:00
Tyrrrz
f0e9d3be1b
Reorganize files
2026-02-27 14:14:43 +02:00
Copilot
eef0fc742d
Encrypt Discord token at rest in settings file (machine-bound) ( #1491 )
...
* Initial plan
* Add token encryption when saving/loading settings
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Apply suggestion from @Tyrrrz
* Apply suggestion from @Tyrrrz
* Bind token encryption key to machine identity
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Switch to AES-GCM, hex encoding, and GetBytes/Fill improvements
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Address all review feedback: salt injection, code style, localization formatting
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Address latest review: ThisAssembly.Project, EnvironmentExtensions, inline Lazy, renames, localization wording
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Address latest review: layout comment, cipherSource, else block, MachineName fallback, csproj ordering
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Apply suggestion from @Tyrrrz
* Rename GetMachineId→TryGetMachineId, refactor Write to use single array with FillBytes
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Rename cipherSource→cipher in Read(), tokenBytes→tokenData in Write(), update layout comments
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Add cipherSource variable in Write(), update layout comment with size annotation
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Fix CSharpier formatting: inline multiline string assignments and reformat exception filter
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Quote EncryptionSalt argument to handle single quotes in secret value
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Revert double-quote fix on EncryptionSalt argument
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Apply suggestion from @Tyrrrz
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-02-27 14:01:25 +02:00
Tyrrrz
2e47c73388
Use range operator for substring extraction in StringSegment.ToString()
2026-02-27 11:30:09 +02:00
Tyrrrz
2d49146c74
Rename transformFallback parameter to fallbackTransform for clarity
2026-02-27 10:24:39 +02:00
Copilot
c59374598a
Migrate to Centralized NuGet Package Management (CPM) ( #1489 )
...
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-02-26 21:29:46 +02:00
Tyrrrz
01d0203445
Clean up
2026-02-26 21:24:20 +02:00
Copilot
c4bfb3424e
Add option to reverse message order in exports ( #1487 )
...
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-02-26 21:14:57 +02:00
Copilot
522caba420
Fix standard emoji not rendering as Discord-style images ( #1488 )
...
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-02-26 17:20:04 +02:00
Copilot
ad1170b42e
Fix duplicate threads causing a crash when exporting in parallel ( #1486 )
...
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-02-26 17:19:07 +02:00
Copilot
d2c0e2169b
Increase media asset URL hash length to eliminate collision risk with --reuse-media ( #1485 )
...
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-02-26 16:35:18 +02:00
Tyrrrz
e6562de1f5
Reformat XAML
2026-02-24 21:07:48 +02:00
Tyrrrz
5f8054e2f0
Fix alingment issues when dealing with inlines
2026-02-24 21:05:03 +02:00
Copilot
12d98e9ab0
Add localization ( #1482 )
...
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-02-24 20:49:32 +02:00
Copilot
18086aa209
Fix second dialog not appearing when dialogs are shown sequentially ( #1481 )
...
* Initial plan
* Add Task.Yield() to DialogManager to fix sequential dialog display
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
2026-02-23 07:32:56 +02:00
Copilot
dd7196b6a5
Resolve thread mentions on demand ( #1480 )
...
* Initial plan
* Fix unresolved thread mentions in HTML export (#1261 )
- Add TryGetChannelAsync to DiscordClient for on-demand channel/thread lookup
- Add PopulateChannelAsync to ExportContext with negative caching
- Update HtmlMarkdownVisitor to resolve thread mentions on demand
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Refactor GetChannelAsync to use TryGetChannelAsync for parent resolution
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Add test for thread mention resolution in HTML export
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Apply PopulateChannelAsync to PlainTextMarkdownVisitor; add JSON thread mention test
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
2026-02-21 23:21:47 +02:00
Copilot
72f9e981de
Replace YouTube iframe embeds with clickable thumbnails ( #1474 )
...
* Initial plan
* Replace YouTube iframe with clickable thumbnail
- Changed YouTube embed URL from embed format to watch format
- Added ThumbnailUrl property to YouTubeVideoEmbedProjection using YouTube's standard thumbnail URL
- Updated MessageGroupTemplate to render thumbnail image with link instead of iframe
- Updated CSS to style thumbnail appropriately
- Updated test to check for anchor link and thumbnail image instead of iframe
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Address code review feedback
- Use hqdefault.jpg instead of maxresdefault.jpg (guaranteed to exist for all videos)
- Extract thumbnail URL logic to GetThumbnailUrl method for better testability
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Simplify YouTube embed test to focus on data not structure
- Remove checks for HTML structure (class names, nested elements)
- Focus on verifying YouTube URL with correct video ID exists
- Follow same pattern as other embed tests (Spotify, Twitch)
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Fix data-canonical-url and improve test specificity
- Use canonical (non-proxy) URL for data-canonical-url attribute
- Extract thumbnailUrl to local variable to avoid duplicate calls
- Update test to check for img with video ID in src, avoiding false positives
- Test now verifies the actual thumbnail data rather than any link
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Inline thumbnail URL logic directly into attributes
- Remove GetThumbnailUrl method from YouTubeVideoEmbedProjection
- Remove local variables from template
- Put coalescing logic directly in src and data-canonical-url attributes
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
2.46.1
2026-02-12 19:04:17 +02:00
Copilot
81e286751f
Add file:// protocol to absolute asset paths in HTML exports ( #1475 )
...
* Initial plan
* Add file:// protocol prefix to absolute paths in HTML exports
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Improve absolute path detection for cross-platform compatibility
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Remove unused System.IO import
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
* Use Path.IsPathFullyQualified for absolute path detection (fixes #1473 )
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
2026-02-12 13:19:12 +02:00
dependabot[bot]
225230a20f
Bump the actions group with 2 updates ( #1467 )
...
Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout ) and [actions/setup-dotnet](https://github.com/actions/setup-dotnet ).
Updates `actions/checkout` from 6.0.1 to 6.0.2
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](8e8c483db8...de0fac2e45 )
Updates `actions/setup-dotnet` from 5.0.1 to 5.1.0
- [Release notes](https://github.com/actions/setup-dotnet/releases )
- [Commits](2016bd2012...baa11fbfe1 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: 6.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: actions
- dependency-name: actions/setup-dotnet
dependency-version: 5.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 17:28:59 +02:00
dependabot[bot]
dea412ff25
Bump the nuget group with 9 updates ( #1468 )
...
Bumps AsyncKeyedLock from 7.1.8 to 8.0.1
Bumps Avalonia from 11.3.10 to 11.3.11
Bumps Avalonia.Desktop from 11.3.10 to 11.3.11
Bumps Avalonia.Diagnostics from 11.3.10 to 11.3.11
Bumps DialogHost.Avalonia from 0.10.3 to 0.10.4
Bumps Microsoft.Extensions.Configuration from 10.0.1 to 10.0.2
Bumps Microsoft.Extensions.Configuration.EnvironmentVariables from 10.0.1 to 10.0.2
Bumps Microsoft.Extensions.Configuration.UserSecrets from 10.0.1 to 10.0.2
Bumps Microsoft.Extensions.DependencyInjection from 10.0.1 to 10.0.2
---
updated-dependencies:
- dependency-name: AsyncKeyedLock
dependency-version: 8.0.1
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: nuget
- dependency-name: Avalonia
dependency-version: 11.3.11
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Avalonia.Desktop
dependency-version: 11.3.11
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Avalonia.Diagnostics
dependency-version: 11.3.11
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: DialogHost.Avalonia
dependency-version: 0.10.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Microsoft.Extensions.Configuration
dependency-version: 10.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Microsoft.Extensions.Configuration.EnvironmentVariables
dependency-version: 10.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Microsoft.Extensions.Configuration.UserSecrets
dependency-version: 10.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
- dependency-name: Microsoft.Extensions.DependencyInjection
dependency-version: 10.0.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 17:28:47 +02:00
Tyrrrz
95953f8cf0
Refactor
2026-01-01 23:56:12 +02:00
Tyrrrz
6191855e33
Fix invalid issue link in comment
2026-01-01 23:53:57 +02:00
Copilot
33a975b907
Fix case-insensitive lookup for data package index file ( #1460 )
...
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-01-01 21:19:59 +02:00
Tyrrrz
3d353bc1e6
Format
2026-01-01 20:40:37 +02:00
dependabot[bot]
f555ab3f00
Bump the actions group with 5 updates ( #1457 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 20:37:11 +02:00
dependabot[bot]
a14a17db83
Bump the nuget group with 11 updates ( #1458 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 20:36:41 +02:00
Tyrrrz
1f63d4fa26
Line breaks
2025-12-31 18:57:08 +02:00
Copilot
d3d078735a
Preserve original URLs for proxied embed assets ( #1456 )
...
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2025-12-31 18:54:04 +02:00
Tyrrrz
58dd40bf3e
Refactor last commit
2025-12-29 20:11:05 +02:00
Copilot
7c79e0639b
Fix filename sanitization for NTFS filesystems on non-Windows systems ( #1455 )
...
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2025-12-29 19:52:59 +02:00
Tyrrrz
a74ba4da0c
Update license year
2025-12-06 19:20:21 +02:00
Tyrrrz
8bbb8fa5ee
Clean up
2025-12-03 23:37:23 +02:00
CarcaBot
a91337ccac
Fixed token retrieval through console ( #1402 )
2025-12-02 16:43:00 +02:00
Tyrrrz
303f5667bf
Remove unused package
2025-12-01 20:51:03 +02:00
dependabot[bot]
934cb526e9
Bump the nuget group with 17 updates ( #1445 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 20:47:52 +02:00
dependabot[bot]
c33b742dce
Bump the actions group with 2 updates ( #1446 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 20:47:02 +02:00
Tyrrrz
f0a74fbc6e
Simplify
2025-11-30 19:24:37 +02:00
Tyrrrz
768e124370
Remove unnecessary extension
2025-11-30 19:23:01 +02:00
Tyrrrz
8dc7eb2937
Use markdown alerts
2025-11-24 17:58:06 +02:00
Tyrrrz
8fff0f4445
Prettify project files
2025-11-18 19:07:17 +02:00
Tyrrrz
0fc8124aa0
Cleanup the trim/aot analyzer hack
2025-11-18 00:55:23 +02:00
Tyrrrz
64ed6acf34
Don't use type aliases
2025-11-18 00:36:47 +02:00
Tyrrrz
e958600073
Disable trim warnings in CLI as a workaround for C# 14 extension block issue
2025-11-16 23:28:18 +02:00
Tyrrrz
714d2e6806
Update sln
2025-11-16 20:55:00 +02:00
Tyrrrz
fbbac2afaa
Make use of C# 14 features
2025-11-16 20:29:39 +02:00
Tyrrrz
380dd6d511
Update to .NET 10
2025-11-11 19:46:22 +02:00
dependabot[bot]
607ec7442f
Bump the actions group with 2 updates ( #1440 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-01 13:05:14 +02:00
dependabot[bot]
e6f675bcaa
Bump the nuget group with 14 updates ( #1441 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-01 13:05:05 +02:00
Tyrrrz
42ebb9928e
Fix CD workflow
2025-10-04 04:46:01 +03:00