feat: add desktop auto-update polling, pill status button, manual check for updates, move updater to AppShell#1235
Merged
Merged
Conversation
Member
Author
|
Oh forgot to mention MacOS Titlebar is untested as I dont have an apple machine. so I think it should be good? but I'm not sure, the offset was a guess. |
Contributor
yes i tested on my macbook |
hazre
force-pushed
the
hazre/feat/desktop-update-pill
branch
2 times, most recently
from
July 23, 2026 10:11
fc8a248 to
6f89caf
Compare
hazre
force-pushed
the
hazre/feat/desktop-update-pill
branch
from
July 23, 2026 10:21
6f89caf to
30296c3
Compare
11 tasks
hazre
force-pushed
the
hazre/feat/add-mise-support
branch
from
July 23, 2026 17:51
2d3b972 to
eb27198
Compare
hazre
force-pushed
the
hazre/feat/desktop-update-pill
branch
2 times, most recently
from
July 23, 2026 18:08
4c7c38e to
b4ee6a6
Compare
11 tasks
7w1
force-pushed
the
hazre/feat/add-mise-support
branch
from
July 24, 2026 02:53
eb27198 to
f6c5fec
Compare
hazre
force-pushed
the
hazre/feat/desktop-update-pill
branch
from
July 24, 2026 03:16
b4ee6a6 to
5e30622
Compare
7w1
approved these changes
Jul 24, 2026
7w1
force-pushed
the
hazre/feat/add-mise-support
branch
from
July 25, 2026 00:52
f6c5fec to
43a1e4c
Compare
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
- Add nfpm.yaml declarative config with contents, deps, per-packager overrides - Replace fpm CLI invocations in package.sh with nfpm pkg - Manage appimagetool and nfpm via mise file task tools - Remove manual appimagetool download + sha256 verification - Fix stale paths from scripts/cef/ move (ROOT, copy-libs reference, usage) - Add version extraction guard and appimagetool availability check Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
Signed-off-by: hazre <mail@haz.re>
…check Signed-off-by: hazre <mail@haz.re>
7w1
force-pushed
the
hazre/feat/desktop-update-pill
branch
from
July 25, 2026 01:08
5e30622 to
1c0950f
Compare
Contributor
Deploying with
|
| Status | Preview URL | Commit | Alias | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! | https://pr-1235-sable.raspy-dream-bb1d.workers.dev | 71983bd | pr-1235 |
Sat, 25 Jul 2026 01:11:39 GMT |
Contributor
|
OpenTofu plan for production Plan: 2 to add, 0 to change, 2 to destroy.OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
-/+ destroy and then create replacement
OpenTofu will perform the following actions:
# cloudflare_worker_version.site must be replaced
-/+ resource "cloudflare_worker_version" "site" {
!~ annotations = {
+ workers_message = (known after apply)
+ workers_tag = (known after apply)
!~ workers_triggered_by = "create_version_api" -> (known after apply)
} -> (known after apply)
!~ assets = { # forces replacement
!~ asset_manifest_sha256 = "0d77329279e54c9584f2ea13c8f6f8c63fb7314c36297bd93964d3fe18b6d3d3" -> "db524c05573f2866397931a48e29216f8a7554e59f4d50cb89deebf43b47e982" # forces replacement
!~ directory = "/home/runner/work/Sable/Sable/dist" -> "/github/workspace/dist"
# (1 unchanged attribute hidden)
}
+ compatibility_flags = (known after apply)
!~ created_on = "2026-07-17T20:34:47Z" -> (known after apply)
!~ id = "************************************" -> (known after apply)
+ limits = (known after apply)
+ main_script_base64 = (known after apply)
!~ number = 1528 -> (known after apply)
!~ source = "terraform" -> (known after apply)
+ startup_time_ms = (known after apply)
# (4 unchanged attributes hidden)
}
# cloudflare_workers_deployment.site must be replaced
-/+ resource "cloudflare_workers_deployment" "site" {
!~ annotations = { # forces replacement
!~ workers_message = "v1.20.0" -> "feat: add desktop auto-update polling, pill status button, manual check for updates, move updater to AppShell"
!~ workers_triggered_by = "deployment" -> (known after apply)
}
!~ author_email = "cloudflare@sl.sable.moe" -> (known after apply)
!~ created_on = "2026-07-17T20:34:47Z" -> (known after apply)
!~ id = "************************************" -> (known after apply)
!~ source = "terraform" -> (known after apply)
!~ versions = [ # forces replacement
!~ {
!~ version_id = "************************************" -> (known after apply)
# (1 unchanged attribute hidden)
},
]
# (3 unchanged attributes hidden)
}
Plan: 2 to add, 0 to change, 2 to destroy.
Warning: Attribute Deprecated
with cloudflare_workers_custom_domain.site,
on main.tf line 41, in resource "cloudflare_workers_custom_domain" "site":
41: environment = "production"
This attribute is deprecated.
(and one more similar warning elsewhere)📝 Plan generated in Cloudflare Infra #250 |
charm-cloudhub-social Bot
pushed a commit
to CloudHub-Social/Charm-1.0
that referenced
this pull request
Jul 25, 2026
<!-- VISUALJJ_STACK_V1 START --> Stack of PRs (1 of 3): - SableClient#1268 - SableClient#1235 - ▶ SableClient#1202 [(19 commits)](1202/files) ◀ <!-- VISUALJJ_STACK_V1 END --> ### Description Adds [mise](https://mise.jdx.dev/) tooling to the repo for easy installation of other tooling like node, pnpm, rust and etc. as well as a unified task runner for the project. I also converted some of the bash scripts to js and added relevant mise metadata, so it its well integrated with mise. Swapped fpm for [nfpm](https://github.com/goreleaser/nfpm) so there is less dependencies and we can use a config file for linux packaging. <img width="657" height="465" alt="image" src="https://github.com/user-attachments/assets/e13f2f45-584d-4112-9955-8ad5f4b2fae5" /> #### Type of change - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] This change requires a documentation update ### Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings ### AI disclosure: - [x] Partially AI assisted (clarify which code was AI assisted and briefly explain what it does). - [ ] Fully AI generated (explain what all the generated code does in moderate detail).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stack of PRs (2 of 3):
Description
SyncConnectionStatus.tsxcomponent more generic, so it can be reused and so im using the same styling as SyncStatus pill.Appshell.tsxso it runs and shows up on all pages, including auth. To avoid deadlocks if we break anything on some of the pages. previously if we broke auth for example, you could not push a update to auto updating apps to patch it. Now you can.update.bodyis now shown in the update Banner, it would be good for changelogs and such, depends if we populate it in the manifest.Current auto-update flow is now:
Screenshots
Cap.2026-07-23.at.07.57.07.mp4
Old video, pill has been updated to look like below
Type of change
Checklist:
AI disclosure: