Skip to content

Raise the minimum supported app version to 1.3.11 (ORB-197) - #493

Merged
thomasluizon merged 4 commits into
mainfrom
feature/ticket-203-minversion-floor
Aug 23, 2026
Merged

Raise the minimum supported app version to 1.3.11 (ORB-197)#493
thomasluizon merged 4 commits into
mainfrom
feature/ticket-203-minversion-floor

Conversation

@thomasluizon

@thomasluizon thomasluizon commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Implements ORB-197 and closes #203.

Summary

  • Set the canonical MinSupportedVersion seed to 1.3.11.
  • Add an EF migration that raises the existing AppConfigs row and restores 0.0.0 in Down.
  • Add the production read, guarded update, rollback, cache propagation, and monitoring procedure beside the existing fleet safety rule.
  • Align the existing middleware test cases with the six concrete version examples in the ticket without changing middleware behavior or the response contract.

Fleet decision

The Play Console evidence recorded on ORB-197 on 2026-08-10 shows 70 daily users. Version 1.3.11 is the lowest live version unambiguously uploaded after the header and upgrade prompt change. Clients at or above it pass, while older observed builds omit X-App-Version and remain fail open, so the raise returns HTTP 426 to zero users in the observed fleet.

The known pre-gate tail is 10 of 70 users. No version floor reaches clients that omit the header, so this change does not by itself make later DTO deletions safe for that tail.

Validation

  • dotnet build Orbit.slnx: 0 errors
  • Focused MinimumVersionMiddlewareTests: 15 passed
  • dotnet test: 5,938 passed across all four test projects
  • Dash check: passed for every changed file

Manual steps

  • Before deploying the API migration, open the Orbit web project in Vercel, then open Settings and Environment Variables and read APP_VERSION for every deployed environment. If it is unset, web remains fail open. If it is set below 1.3.11, unset it or raise it before deployment. A read showing APP_VERSION absent or at least 1.3.11 proves this precondition.
  • After deployment, query the production AppConfigs row whose Key is MinSupportedVersion and verify its Value reads 1.3.11. Allow up to 30 minutes for each warm process cache, since instances enforce the new value independently.
  • Monitor Android and web HTTP 426 traffic and client reports for 24 hours. If a production client is broken, update the row to 0.0.0, read that value back, and allow the same cache window before diagnosing.

@thomasluizon

Copy link
Copy Markdown
Owner Author

Implementation approach:

  1. Add a new EF migration that updates only the existing MinSupportedVersion row from 0.0.0 to 1.3.11. Its Down path restores 0.0.0, and raw SQL will use guarded update semantics instead of introducing a config write API.
  2. Update the model seed in src/Orbit.Infrastructure/Persistence/OrbitDbContext.cs to 1.3.11 so newly created databases converge on the active floor.
  3. Add the minimum version operations runbook beside the fleet first guard in AGENTS.md. It will name the AppConfigs row, read and update SQL, Play fleet and web APP_VERSION preconditions, independent 30 minute process caches, verification, monitoring, and rollback.
  4. Extend the existing middleware unit tests only where the six specified behaviors are not already covered. The middleware algorithm and response contract remain unchanged.

This shape keeps the raise reviewable through the existing migration precedent while retaining deploy free SQL rollback. I am not adding a general config setter or admin surface because this ticket needs one guarded operational key, and those alternatives expand the product and authorization surface without helping rollback.

pullfrog[bot]
pullfrog Bot previously approved these changes Aug 23, 2026

@pullfrog pullfrog 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.

✅ No new issues found.

Reviewed changes at b71eb46; this review covers the current scaffold state only.

  • No implementation diff: The sole commit changes zero files, so the planned MinSupportedVersion migration and rollout behavior are not present to review yet.

Pullfrog  | View workflow run | Using GPT Sol𝕏

@pullfrog pullfrog 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.

✅ No new issues found.

Reviewed changes since the prior Pullfrog review at b71eb46; this run covered the complete implementation and its client rollout path.

  • Raised the version floor: Updated the canonical seed and model snapshot, then added the EF migration that sets MinSupportedVersion to 1.3.11.
  • Documented rollout controls: Added production readback, Play and Vercel preconditions, cache propagation, monitoring, and rollback guidance.
  • Retargeted middleware examples: Aligned existing boundary, malformed-header, and prerelease cases with the ticket examples without changing runtime behavior.

Pullfrog  | View workflow run | Using GPT Sol𝕏

@sonarqubecloud

Copy link
Copy Markdown

@thomasluizon

Copy link
Copy Markdown
Owner Author

@pullfrog review

@pullfrog

pullfrog Bot commented Aug 23, 2026

Copy link
Copy Markdown
  • Check out PR 493 and read the complete authoritative diff
  • Trace changed runtime paths, tests, migration behavior, and cross-repo contract impact
  • Validate any high-severity findings and submit exactly one PR review

Pullfrog  | View workflow run | via Pullfrog | Using GPT Sol𝕏

@thomasluizon
thomasluizon merged commit 3962918 into main Aug 23, 2026
22 checks passed
@thomasluizon
thomasluizon deleted the feature/ticket-203-minversion-floor branch August 23, 2026 23:24
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.

1 participant