Skip to content

Make Apps status and version sources explicit - #553

Merged
redreceipt merged 8 commits into
mainfrom
fix/apps-status-clarity
Sep 26, 2026
Merged

redreceipt merged 8 commits into
mainfrom
fix/apps-status-clarity

Conversation

@redreceipt

@redreceipt redreceipt commented Sep 26, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Restore apollos_demo as the Church slug. Separate a sampled device build and last-seen time from the public US Apple lookup and its checked time.
  • Show the source version alongside its comparison, with explicit “Behind top seen”, “Top seen”, “Behind source”, “At source”, “Ahead of source”, or “Unverified” status. Remove the ambiguous blanket “Outdated/Current”, unused table metrics, and their BigQuery aggregation so status stays visible.
  • The public lookup may lag App Store Connect; this PR does not claim to verify the published release or add credentials. Other stores are not checked.

Validation

  • 215 unit tests; Ruff check/format and focused mypy pass.

Proof

  • Local /apps request traversed query construction with a disposable BigQuery client fixture and real public US Apple lookup. A later malformed v999 Preview event did not replace its valid runtime 106; the invalid-only app is Unverified with its comparison hidden, the SQL no longer requests unused user/event totals, and the status column is labelled. Unmatched iOS lookups also show when they were checked. Screenshot attached below.

Apps page shows the Apple lookup check time for both matched and unavailable iOS apps

@redreceipt
redreceipt marked this pull request as ready for review September 26, 2026 00:52
Copilot AI lite review requested due to automatic review settings September 26, 2026 00:52
@redreceipt
redreceipt temporarily deployed to bug-board-fix-apps-stat-0ddf0v September 26, 2026 00:53 Inactive

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Validate malformed runtime values and clarify the template’s platform-specific version-selection description.

Review effort: Lite
Findings: None

What changed in this PR

Updates the Apps dashboard to distinguish observed builds, public Apple lookup versions, and freshness status.

Changes:

  • Adds explicit version-source and timestamp fields.
  • Replaces ambiguous status labels with detailed comparisons.
  • Updates documentation, templates, and tests.
File Summary
tests/​test_app_versions.py Covers updated statuses and rendering behavior.
templates/​app_versions.html Displays distinct build, lookup, freshness, and status data; one description needs clarification for TV and Roku selection.
README.md Documents version-source semantics and lookup limitations.
app_versions.py Computes source comparisons and timestamps; malformed runtime values should be marked Unverified rather than compared lexically.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@redreceipt
redreceipt marked this pull request as draft September 26, 2026 01:00
@redreceipt
redreceipt temporarily deployed to bug-board-fix-apps-stat-0ddf0v September 26, 2026 01:01 Inactive
@redreceipt
redreceipt marked this pull request as ready for review September 26, 2026 01:02
Copilot AI review requested due to automatic review settings September 26, 2026 01:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Malformed mobile runtime values can replace valid selections, and the unused aggregation should be removed.

Review effort: Lite
Findings: 1 Medium severity

Open (1)

Comment thread app_versions.py
@redreceipt
redreceipt marked this pull request as draft September 26, 2026 01:09
@redreceipt
redreceipt temporarily deployed to bug-board-fix-apps-stat-0ddf0v September 26, 2026 01:09 Inactive
@redreceipt
redreceipt marked this pull request as ready for review September 26, 2026 01:10
Copilot AI review requested due to automatic review settings September 26, 2026 01:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Resolve the status-label and unverified-comparison display issues.

Review effort: Lite
Findings: None

Resolved since last review (1)
Previously missed (1)

In code that hasn't changed since last review

Medium severity Roku status labels don't match the documented vocabulary

app_versions.py:551

The new Roku mapping can still render At source and Ahead of source, while the PR describes the status vocabulary as Behind top seen, Top seen, Behind source, or Unverified. Please either map the non-behind outcomes to the documented statuses or update the user-facing contract and tests to include these additional labels.

@redreceipt
redreceipt marked this pull request as draft September 26, 2026 01:15
@redreceipt
redreceipt temporarily deployed to bug-board-fix-apps-stat-0ddf0v September 26, 2026 01:16 Inactive
@redreceipt
redreceipt temporarily deployed to bug-board-fix-apps-stat-0ddf0v September 26, 2026 01:16 Inactive
@redreceipt
redreceipt marked this pull request as ready for review September 26, 2026 01:17
Copilot AI review requested due to automatic review settings September 26, 2026 01:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Two moderate issues remain regarding lookup timestamps and the missing status-column header.

Review effort: Lite
Findings: None

Previously missed (1)

In code that hasn't changed since last review

Medium severity Add missing Status table header

templates/​app_versions.html:167

The row now renders a separate status cell after the source-freshness cell, but the header row still ends at Source freshness. This leaves the status column unlabeled and shifts the Expo Runtime/Source freshness headings onto the wrong data columns for screen readers and visual table association. Add a Status header after this one.

@redreceipt
redreceipt marked this pull request as draft September 26, 2026 01:22
@redreceipt
redreceipt temporarily deployed to bug-board-fix-apps-stat-0ddf0v September 26, 2026 01:23 Inactive
@redreceipt
redreceipt marked this pull request as ready for review September 26, 2026 01:23
Copilot AI review requested due to automatic review settings September 26, 2026 01:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Unavailable Apple lookup cases do not display when the lookup was checked.

Review effort: Lite
Findings: None

Previously missed (1)

In code that hasn't changed since last review

Medium severity Record store check time for unavailable iOS lookup results

app_versions.py:616

The checked timestamp is only attached when Apple returns a version. For an iOS bundle with no US result—or when the lookup fails—the table renders Not available without indicating when that lookup was performed, so the new source/checked-time distinction is lost exactly for the unavailable cases. Set store_checked_display for every eligible iOS row whenever the lookup attempt completes (including no-match/error), while keeping the version source as unavailable.

@redreceipt
redreceipt marked this pull request as draft September 26, 2026 01:30
@redreceipt
redreceipt temporarily deployed to bug-board-fix-apps-stat-0ddf0v September 26, 2026 01:31 Inactive
@redreceipt
redreceipt marked this pull request as ready for review September 26, 2026 01:32
Copilot AI review requested due to automatic review settings September 26, 2026 01:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Add assertions covering Roku “At source” and “Ahead of source” outcomes.

Review effort: Lite
Findings: None

@redreceipt
redreceipt marked this pull request as draft September 26, 2026 01:37
@redreceipt
redreceipt temporarily deployed to bug-board-fix-apps-stat-0ddf0v September 26, 2026 01:37 Inactive
@redreceipt
redreceipt marked this pull request as ready for review September 26, 2026 01:38
Copilot AI review requested due to automatic review settings September 26, 2026 01:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟢 Approved

No unresolved blocking issues were identified.

Review effort: Lite
Findings: None

@redreceipt
redreceipt merged commit cc0e2b4 into main Sep 26, 2026
7 checks passed
@redreceipt
redreceipt deleted the fix/apps-status-clarity branch September 26, 2026 01:48

This branch was previously deployed

1 inactive deployment
bug-board-fix-apps-stat-0ddf0v — 1d082f25 Deployed Sep 26, 2026 by redreceipt
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