Skip to content

feat: release mobileGF2logger v2.1.2 - #28

Merged
1window2 merged 1 commit into
mainfrom
agent/v2.1.2-security-hardening
Aug 8, 2026
Merged

feat: release mobileGF2logger v2.1.2#28
1window2 merged 1 commit into
mainfrom
agent/v2.1.2-security-hardening

Conversation

@1window2

@1window2 1window2 commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Summary

This is the clean, one-commit replacement for PR #27 after resetting main to the exact requested base 21f4cb3~ (e913715).

  • precisely center and reduce the launcher emblem by 10%, with brighter matte silver and gold-orange artwork
  • harden continuation parsing, packet-table rendering, roster/activity ingestion, CSV import, retained activity, and SQLite reconciliation
  • neutralize spreadsheet formulas in every spreadsheet-facing packet and CSV projection
  • preserve weekly-table membership and Gunsmoke inference across missing packets, annotated periods, and timezone transitions
  • migrate maintenance state and retention indexes as schema v11 while preserving v10 backup restoration
  • include every previously resolved PR feat: release mobileGF2logger 2.1.1 #26 and PR fix: harden v2.1.2 data boundaries #27 review correction
  • set v2.1.2 release metadata and changelog date to 2026-08-09

Validation

  • Protocol JVM tests: 39/39
  • App JVM tests: 185/185
  • Physical Android instrumentation tests: 32/32 on SM-N976N / Android 12
  • Android lint: 0 errors (34 advisory warnings)
  • Release APK: v2/v3 verified, one signer, pinned certificate SHA-256 verified
  • APK SHA-256: 0AF2014DDCBCAC7BCD1E68E06A87637E63E7E80E61B9472B20EC7F63CABB38B0
  • Physical install/cold launch: successful; process alive; no AndroidRuntime fatal
  • Fresh GF2 21917/21935 packet pipeline and standard/Gunsmoke weekly navigation previously verified on this code tree
  • Final Codex review on the same code tree at 19f182c: no major issues

Merge method

Squash and merge only after all required checks pass.

Copilot AI lite review requested due to automatic review settings August 8, 2026 15:07

This comment was marked as outdated.

@1window2
1window2 merged commit 236c521 into main Aug 8, 2026
5 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@1window2
1window2 deleted the agent/v2.1.2-security-hardening branch August 8, 2026 15:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants