Skip to content

feat: unify build metadata and update deviceDisplayName for Tauri builds#1268

Open
hazre wants to merge 3 commits into
devfrom
hazre/feat/unify-build-metadata
Open

feat: unify build metadata and update deviceDisplayName for Tauri builds#1268
hazre wants to merge 3 commits into
devfrom
hazre/feat/unify-build-metadata

Conversation

@hazre

@hazre hazre commented Jul 24, 2026

Copy link
Copy Markdown
Member

Description

  • Added 2 build time environment variables SABLE_PRODUCT_NAME and SABLE_BUILD_FLAVOR which basically replace all hard coded and duplicated references to "sable" and nightly/dev checks.
  • Sable client can be renamed now in config.json with productName.
  • Updated deviceDisplayName for Devices Tab in settings to handle Tauri desktop and mobile builds better. New format is
    Sable [FormFactor] [Variant] on [Browser] for [OS] and Sable [FormFactor] [Variant] on [OS].
  • Combined cloudflare-web-deploy.yml and cloudflare-web-dev.yml into a single cloudflare-web.yml workflow using GitHub environments.

Some changes are required on the Github repo, which is to migrate (probably should keep old ones until this is merged) these secrets below to environments now:

https://github.com/SableClient/Sable/settings/environments

TF_HTTP_ADDRESS
TF_HTTP_LOCK_ADDRESS
TF_HTTP_UNLOCK_ADDRESS
VITE_SENTRY_DSN
SENTRY_AUTH_TOKEN
SENTRY_ORG
SENTRY_PROJECT

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • 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:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

AI disclosure:

  • 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).

@hazre
hazre requested a review from 7w1 as a code owner July 24, 2026 02:43
@hazre
hazre force-pushed the hazre/feat/unify-build-metadata branch from f390f99 to 73b0764 Compare July 24, 2026 02:43
@hazre
hazre force-pushed the hazre/feat/unify-build-metadata branch from 73b0764 to 09df675 Compare July 24, 2026 02:49
@hazre
hazre force-pushed the hazre/feat/unify-build-metadata branch from 09df675 to 41f48c8 Compare July 24, 2026 03:16
@hazre
hazre force-pushed the hazre/feat/desktop-update-pill branch from b4ee6a6 to 5e30622 Compare July 24, 2026 03:16
@hazre
hazre force-pushed the hazre/feat/unify-build-metadata branch from 7018d2f to 81ee042 Compare July 24, 2026 03:54
@hazre

hazre commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

@7w1 this is good to go, just requires adding the environment secrets, that's why ci is failing.

@7w1
7w1 force-pushed the hazre/feat/desktop-update-pill branch from 5e30622 to 1c0950f Compare July 25, 2026 01:08
Base automatically changed from hazre/feat/desktop-update-pill to dev July 25, 2026 01:18
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).
charm-cloudhub-social Bot pushed a commit to CloudHub-Social/Charm-1.0 that referenced this pull request Jul 25, 2026
…ck for updates, move updater to AppShell (SableClient#1235)

<!-- VISUALJJ_STACK_V1 START -->
Stack of PRs (2 of 3):
- SableClient#1268
- ▶ SableClient#1235 [(2 commits)](1235/files) ◀
- SableClient#1202
<!-- VISUALJJ_STACK_V1 END -->

### Description

- Adds a pill button on tauri desktop app that uses custom titlebar, I
made `SyncConnectionStatus.tsx` component more generic, so it can be
reused and so im using the same styling as SyncStatus pill.
- Adds auto-update polling (every 5 minutes), previously only updates
were checked at startup.
- Updates are now auto downloaded in the background (in-memory), to be
more instant.
- Added a manual check for updates button in Settings > About > Check
for Updates
- Moved DesktopUpdater, WebUpdater and GlobalBannerRenderer all into
`Appshell.tsx` so 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.body` is 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:
- Custom Titlebar: Check for update on startup or via polling > show
pill update downloading > show pill update available > click on pill >
show update banner
- Native: Check for update on startup or via polling > show update
banner
- Manual check: Click on check button > show no update available with
timestamp of last checked OR show update banner if update available

### Screenshots

https://github.com/user-attachments/assets/98e2f3d1-3df3-436e-abd4-306df6781a89

*Old video, pill has been updated to look like below*

<img width="1280" height="486" alt="Cap 2026-07-23 at 09 26 32"
src="https://github.com/user-attachments/assets/0db45cd6-e61a-4507-96b5-7caa362a1d36"
/>

#### Type of change

- [x] 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:

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings

### AI disclosure:

- [ ] Partially AI assisted (clarify which code was AI assisted and
briefly explain what it does).
- [x] Fully AI generated (explain what all the generated code does in
moderate detail).
@hazre
hazre force-pushed the hazre/feat/unify-build-metadata branch from 81ee042 to 23a15d5 Compare July 25, 2026 08:11
@hazre
hazre force-pushed the hazre/feat/unify-build-metadata branch from 23a15d5 to 827cbdb Compare July 25, 2026 10:34
@hazre

hazre commented Jul 25, 2026

Copy link
Copy Markdown
Member Author

I will kms if I have to do another merge conflict on this

@github-actions

github-actions Bot commented Jul 25, 2026

Copy link
Copy Markdown
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" -> "04b90141f43a5f9853d1439da6a28c8df9af40cc0da639b4cf19c3712cefaed2" # 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: unify build metadata and update deviceDisplayName for Tauri builds"
!~          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 #11

hazre added 3 commits July 25, 2026 13:37
Signed-off-by: hazre <mail@haz.re>

fix: resolve rebase merge conflicts

Signed-off-by: hazre <mail@haz.re>
@hazre
hazre force-pushed the hazre/feat/unify-build-metadata branch from 827cbdb to 6fd7dd3 Compare July 25, 2026 11:37
@hazre
hazre deployed to production July 25, 2026 11:38 — with GitHub Actions Active
@github-actions

Copy link
Copy Markdown
Contributor

Deploying with  Cloudflare Workers  Cloudflare Workers

Status Preview URL Commit Alias Updated (UTC)
✅ Deployment successful! https://pr-1268-sable.raspy-dream-bb1d.workers.dev 6fd7dd3 pr-1268 Sat, 25 Jul 2026 11:39:51 GMT

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