Skip to content

Add mandatory update gate with installer handoff and app shutdown#482

Merged
StuartFerguson merged 15 commits intomainfrom
copilot/automatic-application-updating
Apr 3, 2026
Merged

Add mandatory update gate with installer handoff and app shutdown#482
StuartFerguson merged 15 commits intomainfrom
copilot/automatic-application-updating

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 20, 2026

  • Inspect ApplicationUpdateLauncherService build errors
  • Run existing focused validation before changes
  • Resolve ambiguous Android/MAUI type references in ApplicationUpdateLauncherService
  • Re-run focused validation after the fix
  • Run code review and security scan, then address any findings
Original prompt

This section details on the original issue you should resolve

<issue_title>Automatic Application Updating for Andorid and Windows</issue_title>
<issue_description>I want a facility within my application that will check a configured endpoint for application updates (might be a version number in the POST) and a response to say update is required/not required.

This process must if told an application update is available must download the application (might be different flow for Android/Windows) and install the application on the device.

Is this something that is achievable without going through the Play Store/Windows store or a paid service. </issue_description>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
Copilot AI changed the title [WIP] Add automatic application updating for Android and Windows Add configuration-driven in-app update check and installer launch flow Mar 20, 2026
Copilot AI requested a review from StuartFerguson March 20, 2026 11:45
Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
Copilot AI changed the title Add configuration-driven in-app update check and installer launch flow Add mandatory update gate with installer handoff and app shutdown Mar 20, 2026
@StuartFerguson StuartFerguson marked this pull request as ready for review April 2, 2026 19:06
@codacy-production
Copy link
Copy Markdown

codacy-production Bot commented Apr 2, 2026

Not up to standards ⛔

🔴 Issues 2 medium

Alerts:
⚠ 2 issues (≤ 0 issues of at least medium severity)

Results:
2 new issues

Category Results
BestPractice 2 medium

View in Codacy

🟢 Metrics 47 complexity · 0 duplication

Metric Results
Complexity 47
Duplication 0

View in Codacy

TIP This summary will be updated as you push new changes. Give us feedback

Agent-Logs-Url: https://github.com/TransactionProcessing/TransactionMobile/sessions/954c0255-bcb4-49da-b52b-a870dc25f39e

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
Copilot AI and others added 2 commits April 3, 2026 10:31
Agent-Logs-Url: https://github.com/TransactionProcessing/TransactionMobile/sessions/90c3f8e9-c90d-4b1e-b1b9-3672e1b0a73e

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
Agent-Logs-Url: https://github.com/TransactionProcessing/TransactionMobile/sessions/1ec96201-2bab-450e-b455-015a385f709b

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
@StuartFerguson
Copy link
Copy Markdown
Member

@copilot can you look at resolving the codacy issues

Copilot AI and others added 2 commits April 3, 2026 12:20
Agent-Logs-Url: https://github.com/TransactionProcessing/TransactionMobile/sessions/c5f842a4-c058-4ae2-8b97-fcdb17ce7a74

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
Agent-Logs-Url: https://github.com/TransactionProcessing/TransactionMobile/sessions/c5f842a4-c058-4ae2-8b97-fcdb17ce7a74

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 3, 2026

@copilot can you look at resolving the codacy issues

Addressed the Codacy-style issues in the update flow in cdd6302. The follow-up tightens URI validation, disposes update-check HTTP objects correctly, and refines the Android installer intent handling by API level.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • f.feedz.io
    • Triggering command: /opt/hostedtoolcache/CodeQL/2.24.3/x64/codeql/csharp/tools/linux64/Semmle.Autobuild.CSharp /opt/hostedtoolcache/CodeQL/2.24.3/x64/codeql/csharp/tools/linux64/Semmle.Autobuild.CSharp (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@StuartFerguson
Copy link
Copy Markdown
Member

@copilot unit tests still have a failure and codacy as well :|

Copilot AI and others added 2 commits April 3, 2026 12:49
Agent-Logs-Url: https://github.com/TransactionProcessing/TransactionMobile/sessions/2e70d176-355f-44ac-9b7f-744249fd14f2

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
Agent-Logs-Url: https://github.com/TransactionProcessing/TransactionMobile/sessions/2e70d176-355f-44ac-9b7f-744249fd14f2

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 3, 2026

@copilot unit tests still have a failure and codacy as well :|

Addressed in 03dfa0f with a small follow-up in 502f07e. The update-related login tests now await the async relay command instead of verifying immediately after Execute, and I also refactored the update helpers to reduce the Codacy findings. Fresh checks are running on the branch now.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • app.codacy.com
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node /home/REDACTED/work/_temp/ghcca-node/node/bin/node --enable-source-maps /home/REDACTED/work/_temp/copilot-developer-action-main/dist/index.js (dns block)
  • f.feedz.io
    • Triggering command: /opt/hostedtoolcache/CodeQL/2.25.1/x64/codeql/csharp/tools/linux64/Semmle.Autobuild.CSharp /opt/hostedtoolcache/CodeQL/2.25.1/x64/codeql/csharp/tools/linux64/Semmle.Autobuild.CSharp (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@StuartFerguson
Copy link
Copy Markdown
Member

@copilot the LoginPageViewModel_LoginCommand_Execute_UpdateRequired_UpdateLauncherIsCalled_And_AppQuits test is still failing with

Message: 
System.NullReferenceException : Object reference not set to an instance of an object.

Stack Trace: 
LoginPageViewModel.GetUserToken() line 105
LoginPageViewModel.Logon() line 265
LoginPageViewModelTests.LoginPageViewModel_LoginCommand_Execute_UpdateRequired_UpdateLauncherIsCalled_And_AppQuits() line 182
--- End of stack trace from previous location ---

Copilot AI and others added 2 commits April 3, 2026 13:04
Agent-Logs-Url: https://github.com/TransactionProcessing/TransactionMobile/sessions/9a33b0c5-a0b5-435f-a74f-c3f21b493ed6

Co-authored-by: StuartFerguson <16325469+StuartFerguson@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 3, 2026

@copilot the LoginPageViewModel_LoginCommand_Execute_UpdateRequired_UpdateLauncherIsCalled_And_AppQuits test is still failing with

Message: 
...

Fixed in db278c2 with a small style follow-up in ae1ead5. The mandatory-update path was launching the installer and then falling through into the normal login flow, so GetUserToken() still ran. CheckForUpdates() now returns a continue/stop flag, and Logon() exits immediately after a required update is launched. I also re-ran the targeted test locally with --no-restore after the fix.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • f.feedz.io
    • Triggering command: /opt/hostedtoolcache/CodeQL/2.25.1/x64/codeql/csharp/tools/linux64/Semmle.Autobuild.CSharp /opt/hostedtoolcache/CodeQL/2.25.1/x64/codeql/csharp/tools/linux64/Semmle.Autobuild.CSharp (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@StuartFerguson StuartFerguson merged commit 9eff061 into main Apr 3, 2026
10 checks passed
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.

Automatic Application Updating for Andorid and Windows

2 participants