feat: release mobileGF2logger v2.1.2 - #28
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 777045e4e2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| internal fun latestRetainedFile(directory: File): File? = directory.listFiles() | ||
| .orEmpty() | ||
| .filter { it.isFile && it.extension.equals("csv", ignoreCase = true) } | ||
| .maxWithOrNull(compareBy<File>(File::lastModified).thenBy(File::getName)) |
There was a problem hiding this comment.
Compare parsed capture times before filename ties
When an imported roster and a live-captured roster have the same CSV logTime, this comparator may never apply the promised filename tie-break: imported files have their mtime normalized to the whole-second parsed timestamp, while GuildMembersCsvWriter leaves live files with millisecond-resolution filesystem mtimes. In that case reconciliation orders the files by capture time and filename, but export can select the live file solely because its subsecond mtime is larger, so the exported “latest” roster can differ from the latest structured snapshot. Derive the ordering timestamp from the CSV capture time, or normalize live-file mtimes to the same precision.
Useful? React with 👍 / 👎.
Summary
This is the clean, one-commit replacement for PR #27 after resetting
mainto the exact requested base21f4cb3~(e913715).Validation
0AF2014DDCBCAC7BCD1E68E06A87637E63E7E80E61B9472B20EC7F63CABB38B019f182c: no major issuesMerge method
Squash and merge only after all required checks pass.