Commit Graph

69499 Commits

Author SHA1 Message Date
joel.poyet 15161b6ddf ci: gate storybook build workflow on fork
Add the same repo guard applied to sibling upstream workflows in
bd6241ad9d. On the private fork this job failed at checkout because
permissions: {} leaves GITHUB_TOKEN without contents:read, so
actions/checkout 404s on the private repo.
2026-06-28 09:58:07 +02:00
joel.poyet ade1dff201 feat(desktop): wire up HealthChat auto-update + public installer hosting
The Electron auto-updater (Squirrel.Mac / Squirrel.Windows) was already
implemented but switched off for HealthChat because the variant config
omitted update_base_url, and CI published only installers (no update feed),
to a private GitHub Release that can't serve end users or the updater.

- config.json: set update_base_url to https://healthchat.ch/packages/desktop/update/
  so electron-main starts the updater.
- build-healthchat-desktop.yaml: pass base-url to the macOS job so releases.json
  is generated; extend the release job to stage the update feed + public
  installers and mirror them to healthchat.ch over FTPS (lftp, no-delete to
  preserve prior nupkgs; password via LFTP_PASSWORD).
- Document the feed/install layout, FTP secrets, and the two caveats (first
  install is manual; Windows auto-update needs the Setup.exe path, not .msi)
  in the healthchat README and the releasing-healthchat skill.

Requires repo secrets FTP_SERVER / FTP_USERNAME / FTP_PASSWORD.
2026-06-28 09:54:08 +02:00
joel.poyet bd6241ad9d ci: gate element-hq-only workflows on fork
Skip upstream deploy/publish/release, org automation, translations and
PR previews via a repo guard; allow PRs to release/* base branches.
2026-06-28 09:44:07 +02:00
joel.poyet cf917c1ed5 chore(release): HealthChat 1.1.2
Remove the Linux desktop build from the release pipeline. It could never
succeed in this fork: the upstream Linux reusable pulls a build-env Docker
image keyed by the building commit's SHA from the upstream element-hq
registry, where the fork's SHA does not exist, so every tagged build failed
with `manifest unknown`. Desktop releases now ship macOS and Windows only.

- Drop the linux job + its release artifacts from build-healthchat-desktop.yaml
- Bump apps/desktop/package.json to 1.1.2
- Update releasing-healthchat skill + desktop README docs
healthchat-v1.1.2
2026-06-28 09:09:27 +02:00
joel.poyet e83c70701a chore(release): HealthChat 1.1.1 healthchat-v1.1.1 2026-06-26 17:45:22 +02:00
joel.poyet 68b96e57f1 docs: refine CLAUDE.md command and architecture notes 2026-06-26 17:44:46 +02:00
joel.poyet b8cf40ff5a ci(desktop): enforce app version matches release tag 2026-06-26 16:41:28 +02:00
joel.poyet d53b20e2a8 fix(ci): grant contents:read so desktop builds can clone the internal fork
The reusable build jobs ran with permissions: {} (fine for upstream's public
repo, which checks out with no token). This fork is internal, so checkout failed
with 'Repository not found'. Grant contents:read on the linux/macos/windows
caller jobs and the reusable build jobs, mirroring the prepare job.
2026-06-26 15:29:22 +02:00
joel.poyet 15d870fc1f fix(ci): read pnpm version from devEngines in healthchat desktop webapp job
pnpm/action-setup@v4 errored 'No pnpm version specified' because this repo
declares pnpm via devEngines.packageManager, not the top-level packageManager
field. Bump to v6.0.8 (as the shared desktop reusables use), which reads it.
2026-06-26 15:16:16 +02:00
joel.poyet 0ecf6b8531 docs(changelog): add HealthChat 1.1.0 release notes healthchat-v1.1.0 2026-06-26 15:13:17 +02:00
joel.poyet f6925dbd77 feat(desktop): build signed Windows + macOS apps in healthchat pipeline
Extend the HealthChat desktop pipeline beyond Linux to produce fully branded,
signed Windows (.exe/.msi) and macOS (.dmg/.zip) installers, published to the
GitHub Release on the healthchat-v* tag alongside the web build.

- Add HealthChat desktop icons (icon.png/ico + Apple Icon Composer bundle),
  derived from apps/web/res/vector-icons/1024.png
- Point the reusable build workflows at this fork (new repository/ref inputs)
  so the Electron shell, icons and healthchat:// handler are fork-branded
- Relax hardcoded Element*/element-desktop* filename asserts to be
  product-name-agnostic
- Wire signed macOS + Windows jobs into build-healthchat-desktop.yaml, trigger
  it on healthchat-v* tags, and add a release job that uploads installers
- Map the org-level eSigner secrets to the CKA names the reusable expects
- Document signing setup (Apple env, eSigner mapping, ESIGNER_MODE=prod) in the
  desktop README and releasing-healthchat skill
2026-06-26 15:10:38 +02:00
joel.poyet eee3275f0c feat(desktop): use healthchat:// deep-link scheme instead of element://
Switch the friendly deep-link / legacy SSO callback scheme from element://
to healthchat:// and stop registering element:// entirely. The reverse-DNS
OIDC primary scheme (ch.healthchat.desktop://) is unchanged. Also rebrand the
round-tripped SSO id param element-desktop-ssoid -> healthchat-desktop-ssoid
on both the desktop and web sides.
2026-06-23 15:09:30 +02:00
joel.poyet 05705a8983 test: refresh snapshots after rebase onto v1.12.21
Two export-filename snapshots now reflect HealthChat branding (were
still "Element"), and the appearance-tab snapshot picks up the upstream
Radix/React auto-generated id format change from master.
2026-06-22 17:16:57 +02:00
joel.poyet f64923ea1a chore(theme): darken secondary text and icon colors for contrast 2026-06-22 17:10:57 +02:00
joel.poyet 3a6a93edfe refactor(profile): drop extended-profile editing, keep right-panel display
Extended-profile fields (io.element.profile.*) are no longer edited in the
client, so remove the edit form and the dead code that came with it, keeping
only the read-only right-panel display (UserExtendedProfileInfo).

- Remove ExtendedProfileSettings (edit form) + its Settings integration and CSS
- Remove ExtendedProfileView (never-rendered, dead) + its CSS
- Inline the EXT_PROFILE_KEY_* constants into UserExtendedProfileInfo so it no
  longer depends on the deleted settings component
- Drop now-unused set/deleteExtendedProfileProperty from UserProfilesStore
- Prune dead settings|extended_profile_settings|* i18n keys (and the unused
  user_info.extended_profile header/not_provided keys) across all locales
- Regenerate _components.pcss
- Revert UserProfileSettings/AccountUserSettingsTab tests (+snapshot) to master,
  since their adaptations existed only for the removed edit form
2026-06-22 17:08:58 +02:00
joel.poyet 098d5b0ca2 chore: regenerate _components.pcss with extended profile styles 2026-06-22 17:07:24 +02:00
joel.poyet d72b973d01 test: adapt unit tests to HealthChat fork customizations 2026-06-22 17:07:24 +02:00
joel.poyet 2685821bdc test: rebrand remaining Element references to HealthChat 2026-06-22 17:06:16 +02:00
joel.poyet 17a89cb12d fix(settings): default to first rendered tab when Account disabled 2026-06-22 17:06:16 +02:00
joel.poyet f0c6c17e4a docs: rewrite CLAUDE.md for pnpm/Nx monorepo 2026-06-22 17:06:16 +02:00
joel.poyet 5f09f58a82 ci: add HealthChat desktop build pipeline 2026-06-22 17:06:16 +02:00
joel.poyet 2fb8a2c92c test: rebrand hardcoded 'Element' test expectations to 'HealthChat'
Update brand-string assertions and snapshots that asserted the upstream
'Element' brand to the HealthChat brand:
- positionFailureMessage, Map, LocationShareMenu (geolocation messages)
- SupportedBrowser, init (incompatible-browser title + snapshot)
- ElectronPlatform (device display name 'HealthChat Desktop: <os>')
- RoomView (third-party invite waiting view)
- MatrixChat soft-logout snapshot

Leaves non-brand failures untouched (e.g. MatrixChat multi-tab lockout,
extended-profile mock gaps).
2026-06-22 17:06:16 +02:00
joel.poyet facf01beb2 feat: re-enable Security shortcut in the user menu
Restore openSecurity to isAuthenticated (master's behaviour) so the
Security quick-link reappears in the user menu, consistent with the
re-enabled Security settings tab.
2026-06-22 17:06:16 +02:00
joel.poyet 29beb42819 feat: re-enable Security settings tab
Restore the Security tab in UserSettingsDialog (re-add the LockIcon and
SecurityUserSettingsTab imports and uncomment the tab). Reverses part of
the earlier 'disable security setting' customisation.
2026-06-22 17:06:16 +02:00
joel.poyet d5b6aa742e revert: drop in-tree WidgetPermissionCustomisations (handled by plugin)
HealthChat's preapproveCapabilities customisation returned undefined for
non-HealthChat widgets, which short-circuits master's reworked
validateCapabilities flow (it falls back to the customisation whenever it
is defined). The api.healthchat.ch auto-approval is handled by the plugin,
so restore the empty upstream customisations object.
2026-06-22 17:06:16 +02:00
joel.poyet acdbc4b63d test: regenerate snapshots for HealthChat branding after rebase
Re-baselined against rebased code: HealthChat brand string, PNG
auth-header logo, hidden Security item in the user menu, restructured
settings dialog tabs.
2026-06-22 17:06:16 +02:00
joel.poyet 67663d394a fix: adapt to pnpm monorepo after rebase onto master
Post-rebase fixups for the v1.12.7 -> v1.12.20 jump (yarn single-package
-> pnpm monorepo):

- UserSettingsDialog: TranslationKey is now a global ambient type (drop
  the import); remove imports left unused by the disabled Account/Security
  tabs; cast the module tab icon to the tightened Tab icon type.
- SdkConfig: point the default branding auth_header_logo_url at the PNG
  logo (the SVG was removed by HealthChat branding), fixing a broken
  default asset reference.
- build-healthchat.yaml: build apps/web/Dockerfile (monorepo location).
2026-06-22 17:05:54 +02:00
joel.poyet 53ee5a7e07 chore(release): healthchat v1.0.1
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-22 17:05:54 +02:00
joel.poyet 1ed4511211 chore: optimize element call translations 2026-06-22 17:05:54 +02:00
joel.poyet 8be6bc6e08 chore(release): set up tag-driven HealthChat release pipeline
Convert build-healthchat workflow from branch-push to tag-push trigger
(healthchat-v*), add version/workspace-ref/release-notes resolution,
and create a GitHub Release on tag push. Pin healthchat-workspace to
v0.5.0-rc.4 via .healthchat-workspace-version, seed the changelog with
1.0.0, and document the runbook in the releasing-healthchat skill.
2026-06-22 17:05:54 +02:00
joel.poyet 7eaab2eb70 chore: update healthchat-workspace 2026-06-22 17:05:54 +02:00
joel.poyet 559f7e1977 chore: update branding logos and home page sizing 2026-06-22 17:05:54 +02:00
joel.poyet 54b9146731 chore: update healthchat-workspace 2026-06-22 17:05:54 +02:00
Joël Poyet 8aa782bd6e chore: upgrade healthchat-workspace 2026-06-22 17:05:54 +02:00
Joël Poyet 3c9edf5bc7 chore: update healtchat-workspace 2026-06-22 17:05:54 +02:00
Joël Poyet d14c1e8964 chore: update healtchat-workspace 2026-06-22 17:05:54 +02:00
Joël Poyet 8f5558a22b chore: release 2026-06-22 17:05:54 +02:00
Joël Poyet 25eeb3a843 chore: add claude settings 2026-06-22 17:05:54 +02:00
Joël Poyet ce840a9ca5 feat(settings): hide Account tab for HealthChat 2026-06-22 17:05:54 +02:00
Joël Poyet 57877ef14f fix(theme): use readable text color for hovered settings tabs 2026-06-22 17:05:54 +02:00
Joël Poyet 9a9007d554 feat(settings): prepend module tabs in UserSettingsDialog 2026-06-22 17:05:54 +02:00
joel.poyet f0907d75f7 fix(docker): copy modules to /modules for nginx serving 2026-06-22 17:05:54 +02:00
joel.poyet 1f0f919b26 ci: fix pipeline to include healthchat workspace plugin 2026-06-22 17:05:54 +02:00
joel.poyet fafbed8c93 test: update snapshots for HealthChat branding 2026-06-22 17:05:54 +02:00
joel.poyet 103c82ae6f feat(branding): style welcome page with HealthChat colors 2026-06-22 17:05:54 +02:00
joel.poyet a25eed5c69 fix(branding): correct manifest theme color and typo 2026-06-22 17:05:54 +02:00
joel.poyet a18b81ef23 feat(branding): configure HealthChat custom theme 2026-06-22 17:05:54 +02:00
joel.poyet ac85934b53 feat(branding): apply HealthChat color scheme and font 2026-06-22 17:05:54 +02:00
joel.poyet 3f63d4e66d refactor(branding): use PNG logo instead of SVG 2026-06-22 17:05:54 +02:00
joel.poyet 3819c6078e feat(branding): replace logos with HealthChat assets 2026-06-22 17:05:54 +02:00