Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
311 commits
Select commit Hold shift + click to select a range
f3ca62b
fix: default badge unread counts to off
Mar 8, 2026
ba7b253
Merge pull request #250 from dozro/feat/cute-events
7w1 Mar 8, 2026
41c7794
fix: properly apply blockquotes so that custom html also gets forwarded
dozro Mar 8, 2026
d80d1f2
changesets
7w1 Mar 8, 2026
3d6cfd7
Merge pull request #256 from 7w1/changesets
7w1 Mar 8, 2026
c36a51a
Release packages
knope-bot[bot] Mar 8, 2026
35c0d45
added changeset for https://github.com/7w1/sable/pull/257
dozro Mar 8, 2026
0b5aa0e
Merge pull request #245 from 7w1/knope/release
7w1 Mar 8, 2026
3c2e298
merge upstream
7w1 Mar 8, 2026
a6619e1
merge
7w1 Mar 8, 2026
eb60876
merge up
melogale Mar 8, 2026
9329470
changeset
7w1 Mar 8, 2026
e6e892c
lint and docs
7w1 Mar 8, 2026
e435624
Merge pull request #258 from 7w1/merge-upstream
7w1 Mar 8, 2026
5edd426
basic message history
nushea Mar 8, 2026
a7e8223
fix scroll when clicking message links
7w1 Mar 8, 2026
ee90d65
Merge pull request #257 from dozro/fix/message-forwarding-custom-html
7w1 Mar 8, 2026
6cb66b9
Merge pull request #261 from 7w1/fix/scroll-patches
7w1 Mar 8, 2026
47bed67
Add MSC4144 per-message-profile rendering
trash-pandy Mar 8, 2026
4b9d903
Add changeset documentation
trash-pandy Mar 8, 2026
afd75d1
Merge pull request #255 from CloudHub-Social/fix/notification-defaults
7w1 Mar 8, 2026
90a8f91
aesthetically fine message history
nushea Mar 8, 2026
e5f28d2
fix crash when invalid location sent
7w1 Mar 8, 2026
428cf76
Merge pull request #263 from 7w1/location-patch
7w1 Mar 8, 2026
de8c20a
fix scroll clamping to bottom of timeline
7w1 Mar 8, 2026
8219fab
unused import
7w1 Mar 8, 2026
098caad
changeset
7w1 Mar 8, 2026
fbaa36e
swap to patch so i have excuse to update sooner
7w1 Mar 8, 2026
952f028
Merge pull request #264 from 7w1/scroll
7w1 Mar 8, 2026
dfe7827
Merge pull request #262 from trash-pandy/sable/feat/pmp
7w1 Mar 8, 2026
290f6ea
Release packages
knope-bot[bot] Mar 8, 2026
c4c367c
Merge pull request #259 from 7w1/knope/release
7w1 Mar 8, 2026
8509fb0
show room profile in cosmetics
Rosy-iso Mar 8, 2026
8eef74e
enhance UnsupportedContent and BrokenContent to display message body …
dozro Mar 9, 2026
273f3e2
Merge branch 'dev' into fix/broken-message-fallback
dozro Mar 9, 2026
7b7c60a
made message history conditional
nushea Mar 9, 2026
d0e5d7c
Merge remote-tracking branch 'upstream/dev' into sable-edit-history
nushea Mar 9, 2026
1874524
added changeset for https://github.com/7w1/sable/pull/267
dozro Mar 9, 2026
c5dca61
fix: prevent duplicate forwards by managing forwarding state in Messa…
dozro Mar 9, 2026
c63727e
added version history formatting
nushea Mar 9, 2026
26cd844
Merge pull request #267 from dozro/fix/broken-message-fallback
7w1 Mar 9, 2026
e315726
Merge pull request #254 from CloudHub-Social/feat/notification-settin…
7w1 Mar 9, 2026
f723749
Merge pull request #247 from CloudHub-Social/feat/notification-highlight
7w1 Mar 9, 2026
53f6fc8
update changeset
7w1 Mar 9, 2026
99314b4
plz work thanks
7w1 Mar 9, 2026
d41f147
Merge pull request #227 from melogale/dev
7w1 Mar 9, 2026
d16e431
added borders on hover
nushea Mar 9, 2026
a94f154
added md
nushea Mar 9, 2026
e933a45
fixed md
nushea Mar 9, 2026
bc6cadd
Add own control buttons for element-call (#2744)
ajbura Mar 9, 2026
b09709d
added encrypted room support
nushea Mar 9, 2026
d679e68
Fix recent emoji does not persist (#2722)
ajbura Mar 9, 2026
2eb5a9a
Fix crash with bad location uri (#2746)
ajbura Mar 9, 2026
4449e7c
Show call support error and disable join button (#2748)
ajbura Mar 9, 2026
a3480f9
add room specific avatar interface
Rosy-iso Mar 9, 2026
dd65e22
Revert "avatars!"
7w1 Mar 9, 2026
786a7c0
Merge pull request #273 from 7w1/revert-227-dev
7w1 Mar 9, 2026
bb67d54
Add restrictions on generative AI usage in contributions
dozro Mar 9, 2026
f45deeb
fixed formatting
dozro Mar 9, 2026
2e156f5
Delete .github/CODEOWNERS
7w1 Mar 9, 2026
4f408ab
Merge pull request #8 from SableClient/7w1-patch-1
7w1 Mar 9, 2026
b99fe05
chore: remove accidentally committed build files and adjusted .gitignore
TastelessVoid Mar 9, 2026
f7d97fd
fix: bypass service worker for media authentication on Android
TastelessVoid Mar 9, 2026
152bca3
Merge branch 'dev' into patch-1
7w1 Mar 9, 2026
27600e2
chore: add changeset for notification banner fix
Mar 8, 2026
7805915
fix: remove NotificationBanner from ClientNonUIFeatures
Mar 8, 2026
652c487
chore: fix changeset formatting (prettier)
Mar 9, 2026
937aff6
Merge branch 'dev' into fix/forwarding-button-duplicate-forwards
7w1 Mar 9, 2026
65be06e
changesets
7w1 Mar 9, 2026
bff06ce
changesets
7w1 Mar 9, 2026
46ec98a
Merge branch 'dev' into changeset-updates
7w1 Mar 9, 2026
780d5c6
Merge pull request #104 from SableClient/changeset-updates
7w1 Mar 9, 2026
91f90e9
feat: Add UnifiedPush for Fairphones or phones that have been "de-goo…
TastelessVoid Mar 9, 2026
198d7f0
Merge branch 'dev' into fix/notification-banner
Just-Insane Mar 9, 2026
454dce2
Merge pull request #1 from dozro/patch-1
7w1 Mar 9, 2026
779a91f
chore: update all repo references to SableClient/Sable
Mar 9, 2026
ba87ff7
chore: add changeset and fix prettier formatting
Mar 9, 2026
1a74822
feat: Add build.gradle.kts to specify a higher kotlin version and upd…
TastelessVoid Mar 9, 2026
cfb410d
Merge pull request #106 from Just-Insane/chore/update-repo-references
Just-Insane Mar 9, 2026
4595eea
fix: Commit the gen folder as the nested .gitignore should keep the r…
TastelessVoid Mar 9, 2026
3bdad5d
add functionality to add a sticker you see in a message to the user's…
dozro Mar 9, 2026
d81cda6
Add changeset to manage message forwarding state
dozro Mar 9, 2026
25c9897
fix: Adjusted .gitignore and tracked files
TastelessVoid Mar 9, 2026
e4fb834
added Changeset
dozro Mar 9, 2026
2b64842
Merge pull request #5 from dozro/fix/forwarding-button-duplicate-forw…
7w1 Mar 9, 2026
a9595ba
fix of issue where the mimetype was swapped with the body
dozro Mar 9, 2026
e97467d
Merge branch 'feat/steal-sticker-alt' of https://github.com/dozro/Sab…
dozro Mar 9, 2026
6f56e4f
fix spelling mistake lol
dozro Mar 9, 2026
4315b05
Merge pull request #98 from Just-Insane/fix/notification-banner
7w1 Mar 9, 2026
d9155bc
Comment out pull_request.title in knope.toml
7w1 Mar 9, 2026
f529e9e
Merge pull request #110 from SableClient/7w1-patch-2
7w1 Mar 9, 2026
4ce1bd4
feat: in-app bug report and feature request modal
Mar 8, 2026
214e331
feat(bug-report): match form fields to GitHub issue templates
Mar 8, 2026
8bbcba4
chore: update changeset and commit /bugreport rename
Mar 8, 2026
8e78ddd
fix: remove stray conflict marker in useCommands.ts
Mar 8, 2026
2786964
chore: fix changeset formatting (prettier)
Mar 9, 2026
8524f18
fix: update GITHUB_REPO constant to SableClient/Sable
Mar 9, 2026
6f8bc35
ci(knope): ditch knope bot in favor of our own ci workflows
hazre Mar 9, 2026
c201b93
ci: add direct upload cloudflare previews
hazre Mar 9, 2026
d9f0e1c
ci: fix double quality checks
hazre Mar 9, 2026
0381c0a
ci: use setup action in docker publish workflow
hazre Mar 9, 2026
8b874ec
ci: make dependabot handle everything
hazre Mar 9, 2026
9157d04
chore: harden npm dependencies to avoid supply chain attacks
hazre Mar 9, 2026
15e14b9
style: fix formatting
hazre Mar 10, 2026
d85a9cc
ci: make require changeset workflow smarter
hazre Mar 10, 2026
c5c7546
ci: make preview build comments more pretty
hazre Mar 10, 2026
296249d
chore: enable semantic check on PR title (#2447)
kfiven Mar 10, 2026
37e0c2a
chore(deps): continue action if login fails (#2758)
kfiven Mar 10, 2026
dfcac58
ci: fix default branch name
hazre Mar 10, 2026
43b72a1
Merge pull request #112 from SableClient/chore/ci-knope-release-pipeline
7w1 Mar 10, 2026
d87d720
fix: notification delivery bugs (push sound, OS notifications, in-app…
Mar 8, 2026
6eeb0d6
chore: add changeset for notification delivery fixes
Mar 8, 2026
98f1535
fix(notifications): treat DMs as loud regardless of mention/push-rule…
Mar 9, 2026
7041c7e
fix(notifications): revert DM badge highlight — only highlight on act…
Mar 9, 2026
0d4d449
fix(notifications): use orphan parent space for deep-link navigation
Mar 9, 2026
35af55e
fix(notifications): suppress OS notification when app is focused; wra…
Mar 9, 2026
094359a
chore: fix changeset formatting (prettier)
Mar 9, 2026
4895d75
fix(notifications): always fire OS notification on desktop (Discord-s…
Mar 9, 2026
f655498
chore: fix formatting (prettier)
Mar 9, 2026
44c36ac
Remove package argument from release command
7w1 Mar 10, 2026
dfc70f7
Merge pull request #113 from SableClient/7w1-patch-1
7w1 Mar 10, 2026
3080dd7
Remove package argument from prepare-release step
7w1 Mar 10, 2026
c3ff0ad
Merge pull request #114 from SableClient/7w1-patch-1
7w1 Mar 10, 2026
3147fe0
Merge pull request #100 from Just-Insane/feat/in-app-bug-report
Just-Insane Mar 10, 2026
f2d71e5
Merge pull request #99 from Just-Insane/fix/notification-delivery-bugs
Just-Insane Mar 10, 2026
0e6165e
Change base branch for PR creation from main to dev
7w1 Mar 10, 2026
10c06ea
Merge pull request #116 from SableClient/7w1-patch-1
7w1 Mar 10, 2026
6465471
update changesets
7w1 Mar 10, 2026
62931d8
feat: improve sliding sync to match Element Web approach
Mar 9, 2026
4a22e86
fix(timeline): always reinit on TimelineRefresh to fix sliding sync hang
Mar 9, 2026
6d00376
chore: fix formatting (prettier)
Mar 9, 2026
1229bc0
fix(lint): fix import order and suppress intentional await-in-loop
Mar 9, 2026
8f8502a
feat(sliding-sync): register ExtensionPresence for live presence updates
Mar 9, 2026
6271bb7
fix(lint): fix ESLint errors in ExtensionPresence and add changeset
Mar 9, 2026
eb54e6e
Merge pull request #118 from SableClient/changesets
7w1 Mar 10, 2026
26a1b96
Merge branch 'dev' into feat/sliding-sync
Just-Insane Mar 10, 2026
2df0e42
Merge pull request #101 from Just-Insane/feat/sliding-sync
Just-Insane Mar 10, 2026
d1e002a
feat(sliding-sync): tie presence extension into sendPresence setting
Mar 9, 2026
9372822
fix(presence): make sendPresence toggle work for classic sync too
Mar 9, 2026
e66e333
chore: add changeset for feat/presence-toggle
Mar 10, 2026
5b1521d
Merge branch 'dev' into feat/presence-toggle
Just-Insane Mar 10, 2026
08abe08
Merge pull request #108 from Just-Insane/feat/presence-toggle
Just-Insane Mar 10, 2026
f79d124
updated styling to better fit with the message aspect
nushea Mar 10, 2026
0cbfbab
chore: add semantic commits to renovate configuration (#2760)
kfiven Mar 10, 2026
eae1955
ci: prevent pushing sha images to the registry in docker workflow
hazre Mar 10, 2026
6fd65e4
Merge pull request #121 from SableClient/ci/remove-sha-docker-tags
7w1 Mar 10, 2026
83d20e0
Merge pull request #111 from nushea/sable-edit-history
7w1 Mar 10, 2026
4e51a36
style fixes
7w1 Mar 10, 2026
0ebebf6
Merge pull request #125 from SableClient/style-fixes
7w1 Mar 10, 2026
e3222e1
prepare release
7w1 Mar 10, 2026
d9a8dae
Merge pull request #126 from SableClient/prepare-release
7w1 Mar 10, 2026
644a73c
Merge branch 'SableClient:dev' into feat/ui-for-commands
Rosy-iso Mar 10, 2026
8140306
make name color editor accept a title and description
Rosy-iso Mar 10, 2026
0d15669
fix: call ui imorovements (#2749)
ajbura Mar 10, 2026
ff7dcef
implement /color's setting
Rosy-iso Mar 10, 2026
409d458
chore(deps): update folds to 2.6.2 (#2762)
ajbura Mar 10, 2026
fced866
make /color's setting also work for /scolor
Rosy-iso Mar 10, 2026
76f734a
ci: simplify knope workflows and add PR reference in changelog
hazre Mar 10, 2026
8c4ddec
feat(tauri): Implement media caching and notification enhancements
TastelessVoid Mar 10, 2026
90f6365
ci: clean up changeset comment on internal label or changeset added
hazre Mar 10, 2026
eba8a03
ci: add path filters to cloudflare worker preview workflow
hazre Mar 10, 2026
9a67295
Merge pull request #137 from SableClient/chore/ci-simplify-knope
7w1 Mar 10, 2026
4d1213b
Merge pull request #140 from SableClient/fix/ci-changeset-comment-and…
7w1 Mar 10, 2026
bbf8cf5
added menu options for replies
nushea Mar 10, 2026
48824e3
Merge pull request #107 from dozro/feat/steal-sticker-alt
7w1 Mar 10, 2026
4163cd7
Merge remote-tracking branch 'newupstream/dev' into sable-edit-history
nushea Mar 10, 2026
f55e292
add title field to PronounEditorProps
Rosy-iso Mar 10, 2026
b66f53a
fix empty body broken image display
7w1 Mar 10, 2026
42aa90f
Merge pull request #143 from SableClient/fix/broken-image-empty-body
7w1 Mar 10, 2026
bf25798
change msgtype to m.emote to be more standard compliant
dozro Mar 10, 2026
399915d
add changeset for https://github.com/SableClient/Sable/pull/145
dozro Mar 10, 2026
7a700ab
option to hide username/password fields
7w1 Mar 10, 2026
9db31f7
Merge pull request #146 from SableClient/feat/hide-fields-config
7w1 Mar 10, 2026
7ff95cb
implement setting for /pronoun and /spronoun
Rosy-iso Mar 10, 2026
8053c45
clarify notification settings
7w1 Mar 10, 2026
e124ac1
default settings adjustment
7w1 Mar 10, 2026
d0c6375
update readme
7w1 Mar 10, 2026
2858e2d
Merge pull request #148 from SableClient/fix/clarify-notif-settings
7w1 Mar 10, 2026
3c4d93f
Merge pull request #149 from SableClient/update-readme
7w1 Mar 10, 2026
a4f14ba
added phosphor icons dependency
dozro Mar 10, 2026
31c2115
fix: knope changesets
hazre Mar 10, 2026
3e3b557
chore: add .gitkeep to changesets
hazre Mar 10, 2026
57cf8a2
Merge pull request #150 from SableClient/fix/knope-changesets
7w1 Mar 10, 2026
bef4904
add posibility for silent reply
dozro Mar 10, 2026
61a65f4
add interface for /font and /sfont
Rosy-iso Mar 10, 2026
4839466
Document change.
Rosy-iso Mar 10, 2026
36c31e8
Merge branch 'dev' into feat/ui-for-commands
Rosy-iso Mar 10, 2026
45762a7
added title and label for a11y
dozro Mar 10, 2026
1647586
added changeset
dozro Mar 10, 2026
e0b173c
removed dep
dozro Mar 10, 2026
eccea72
moved the bell icon to the right
dozro Mar 10, 2026
103bdb8
Merge pull request #145 from dozro/fix/headpat-message-event-type-fix
7w1 Mar 10, 2026
c51e895
fix: underline links from being applied everywhere
hazre Mar 10, 2026
d254177
chore: bump knope-dev/action in the github-actions group (#144)
dependabot[bot] Mar 10, 2026
998c60e
Merge branch 'dev' into feat/ui-for-commands
Rosy-iso Mar 10, 2026
95092b8
Merge pull request #157 from SableClient/fix/scope-underline-links
7w1 Mar 10, 2026
349a28f
replace old motto(?) with new one
Rosy-iso Mar 10, 2026
306d460
fix: override vulnerable transitive dependencies
hazre Mar 10, 2026
f989bc0
feat(tauri): Addressed review, updated package
TastelessVoid Mar 10, 2026
2b5ddbf
feat(tauri): Fixed dynamical import warning, removed local crate due …
TastelessVoid Mar 10, 2026
59992e8
add title and aria-label to a few elements in RoomInput.tsx
dozro Mar 10, 2026
ac3d34d
add title and aria-label attributes to buttons in SchedulePickerDialo…
dozro Mar 10, 2026
cd27244
add max-width to custom emotes to prevent overly wide emotes
Sugaryyyy Mar 10, 2026
485834b
added changeset
dozro Mar 10, 2026
c51efba
Merge branch 'SableClient:dev' into feat/ui-for-commands
Rosy-iso Mar 10, 2026
9562aa8
made delete button conditional on ability to delete
nushea Mar 10, 2026
eb73715
store the cosmetic permissions on some consts for later use
Rosy-iso Mar 10, 2026
6d43384
swap the pronouns and font admin toggles for consistency
Rosy-iso Mar 10, 2026
42ffcf7
disable room color setting if missing perms
Rosy-iso Mar 10, 2026
7ea3b10
disable room pronouns setting if missing perms
Rosy-iso Mar 10, 2026
febe392
disable room font setting if missing perms
Rosy-iso Mar 10, 2026
4ce4dec
format code
Rosy-iso Mar 10, 2026
29e5273
made change md right
nushea Mar 10, 2026
c2c820c
fix(tauri): Fixed avatars in the notification not showing
TastelessVoid Mar 11, 2026
cce7ed6
Merge pull request #160 from SableClient/fix/vulnerable-deps
7w1 Mar 11, 2026
bdd9934
Merge pull request #159 from Rosy-iso/chore/new-motto
7w1 Mar 11, 2026
b76ad3c
chore(release): 4.11.0 [skip ci]
kfiven Mar 11, 2026
2e0980d
Merge pull request #163 from dozro/a11y/message-composing
7w1 Mar 11, 2026
d1e0e73
fix changesets
7w1 Mar 11, 2026
25389e2
Merge pull request #173 from SableClient/changeset-fixes
7w1 Mar 11, 2026
44e7bf0
Merge branch 'dev' into feat/silent-replies
7w1 Mar 11, 2026
31047eb
Merge pull request #153 from dozro/feat/silent-replies
7w1 Mar 11, 2026
ed3f17e
update changesets, again
7w1 Mar 11, 2026
d9e8f11
update changeset
7w1 Mar 11, 2026
7183679
Merge branch 'dev' into sable-edit-history
7w1 Mar 11, 2026
42855a3
Merge pull request #174 from SableClient/changestststs
7w1 Mar 11, 2026
b7f6d8a
Merge pull request #170 from nushea/sable-edit-history
7w1 Mar 11, 2026
8c89f19
update changeset
7w1 Mar 11, 2026
9bc8145
Merge pull request #129 from Rosy-iso/feat/ui-for-commands
7w1 Mar 11, 2026
919fe83
chore(deps): Update slate deps to 0.123.0 (#2764)
kfiven Mar 11, 2026
6a05ff5
chore(release): v4.11.1 [skip ci] (#2765)
kfiven Mar 11, 2026
8e31412
chore: migrate package manager from npm to pnpm
hazre Mar 11, 2026
8f9095a
fix: type and fmt issues
hazre Mar 11, 2026
fcfe06f
fix: resolve peer dependency and matrix-sdk-crypto-wasm issues
hazre Mar 11, 2026
7cdcd41
docs: add pnpm install quide
hazre Mar 11, 2026
5a2852d
ci: add dev branch preview deployment to cloudflare workflow
hazre Mar 11, 2026
a24dd7c
Merge pull request #181 from SableClient/ci/cloudflare-dev-branch-pre…
7w1 Mar 11, 2026
3691027
Merge branch 'dev' into chore/migrate-to-pnpm
7w1 Mar 11, 2026
e037a40
ci: pin actions
hazre Mar 11, 2026
2d771b4
Merge pull request #177 from SableClient/chore/migrate-to-pnpm
7w1 Mar 11, 2026
8f394a1
merge upstream and remove duplicate voice room button
7w1 Mar 11, 2026
49af037
Create aaa_syncupstream.md
7w1 Mar 11, 2026
4619911
Delete .github/workflows/pr-title.yml
7w1 Mar 11, 2026
e228de5
Merge pull request #184 from SableClient/upstream-sync
7w1 Mar 11, 2026
bee0356
Add changeset to fix emoji width issue
7w1 Mar 11, 2026
20c5c29
Merge pull request #164 from Sugaryyyy/dev
7w1 Mar 11, 2026
b71320e
feat: add dynamic device display name
hazre Mar 11, 2026
a27595b
Merge pull request #187 from SableClient/feat/dynamic-device-display-…
7w1 Mar 11, 2026
0b01a12
Merge branch 'dev' into feat/tauri-integration
TastelessVoid Mar 11, 2026
febd471
chore(tauri): Merge dev into feat/tauri-integration and resolved conf…
TastelessVoid Mar 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
File renamed without changes.
5 changes: 5 additions & 0 deletions .changeset/a11y_message_composing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: patch
---

Added a few accessibility tags to the elements involved in message composing.
5 changes: 5 additions & 0 deletions .changeset/aaa_syncupstream.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: minor
---

Merge in upstream call things and remove the duplicate new voice room button.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: minor
---

Add button to save a sticker you see in the message timeline to your personal account sticker pack.
5 changes: 5 additions & 0 deletions .changeset/add_hide_user_pass_fields.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: minor
---

Added config option `hideUsernamePasswordFields` for hosts to hide username and password fields from login page.
5 changes: 5 additions & 0 deletions .changeset/add_silent_reply_functionality.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: minor
---

Add silent replies when clicking the bell icon during composing a reply.
5 changes: 5 additions & 0 deletions .changeset/clarify_notification_settings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: patch
---

Clarify notification settings and functionality once and for all.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: minor
---

# Device names are now dynamic, showing your browser and OS (e.g., "Sable on Firefox for Windows") instead of just "Sable Web".
5 changes: 5 additions & 0 deletions .changeset/fix_broken_messages_images.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: patch
---

Fix images without an empty body display as "Broken Message"
5 changes: 5 additions & 0 deletions .changeset/fix_emoji_width.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: patch
---

Prevent overly wide emotes from taking up the entire screen width.
5 changes: 5 additions & 0 deletions .changeset/fix_msgtype_of_headpat_event.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: patch
---

Change to more standard compliant msgtype `m.emote` for `/headpat` event.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: minor
---

Implement an interface to allow room/space profile customization without needing to call the relating commands directly.
5 changes: 5 additions & 0 deletions .changeset/improved_message_history_ui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: minor
---

Added hover menu inside Message Version Pop-out.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: patch
---

"Underline Links" setting no longer affects the entire app, only links in chat, bios, and room descriptions.
1 change: 0 additions & 1 deletion .github/CODEOWNERS

This file was deleted.

2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ body:
attributes:
value: |
## First of all
1. Please search for [existing issues](https://github.com/7w1/sable/issues?q=is%3Aissue) about this problem first.
1. Please search for [existing issues](https://github.com/SableClient/Sable/issues?q=is%3Aissue) about this problem first.
2. Make sure Sable is up to date.
3. Make sure it's an issue with Sable and not something else you are using.
4. Remember to be friendly.
Expand Down
9 changes: 6 additions & 3 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,27 @@ inputs:
install-command:
description: Command used to install dependencies.
required: false
default: npm ci
default: pnpm install --frozen-lockfile --ignore-scripts
build:
description: Whether to build the app after installing dependencies.
required: false
default: 'false'
build-command:
description: Command used when build is enabled.
required: false
default: npm run build
default: pnpm run build

runs:
using: composite
steps:
- name: Setup pnpm
uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4.3.0

- name: Setup node
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version-file: '.node-version'
cache: 'npm'
cache: 'pnpm'

- name: Install dependencies
shell: bash
Expand Down
37 changes: 29 additions & 8 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@ updates:
default-days: 7
directory: /
schedule:
interval: weekly
day: 'tuesday'
time: '01:00'
timezone: 'Asia/Kolkata'
interval: daily
open-pull-requests-limit: 5
labels:
- internal
commit-message:
prefix: chore
groups:
github-actions:
patterns:
Expand All @@ -22,12 +23,32 @@ updates:
default-days: 7
directory: /
schedule:
interval: weekly
day: 'tuesday'
time: '01:00'
timezone: 'Asia/Kolkata'
interval: daily
open-pull-requests-limit: 5
labels:
- internal
commit-message:
prefix: chore
groups:
docker:
patterns:
- '*'

- package-ecosystem: npm
cooldown:
default-days: 1
directory: /
schedule:
interval: daily
open-pull-requests-limit: 10
labels:
- internal
commit-message:
prefix: chore
groups:
# Group all non-major updates together to reduce noise
npm-minor-patch:
update-types:
- minor
- patch
# Major updates are ungrouped so they get individual review
14 changes: 0 additions & 14 deletions .github/renovate.json

This file was deleted.

161 changes: 161 additions & 0 deletions .github/workflows/cloudflare-web-preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
name: Cloudflare Worker Preview Deploy

on:
pull_request:
paths:
- 'src/**'
- 'index.html'
- 'package.json'
- 'package-lock.json'
- 'vite.config.ts'
- 'tsconfig.json'
- '.github/workflows/cloudflare-web-preview.yml'
- '.github/actions/setup/**'
push:
branches:
- dev
paths:
- 'src/**'
- 'index.html'
- 'package.json'
- 'package-lock.json'
- 'vite.config.ts'
- 'tsconfig.json'
- '.github/workflows/cloudflare-web-preview.yml'
- '.github/actions/setup/**'

concurrency:
group: cloudflare-worker-preview-${{ github.event.pull_request.number || github.ref_name }}
cancel-in-progress: true

jobs:
deploy:
if: github.event.pull_request.head.repo.full_name == github.repository || github.event_name == 'push'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false

- name: Prepare preview metadata
id: metadata
shell: bash
run: |
preview_message="$(git log -1 --pretty=%s)"
preview_message="$(printf '%s' "$preview_message" | head -c 100)"

{
echo 'preview_message<<EOF'
echo "$preview_message"
echo EOF
} >> "$GITHUB_OUTPUT"

- name: Setup app and build
uses: ./.github/actions/setup
with:
build: 'true'

- name: Set deploy alias
id: alias
shell: bash
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
echo "alias=pr-${{ github.event.pull_request.number }}" >> "$GITHUB_OUTPUT"
else
branch="${{ github.ref_name }}"
alias="$(echo "$branch" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/-\+/-/g' | sed 's/^-\|-$//g')"
echo "alias=${alias}" >> "$GITHUB_OUTPUT"
fi

- name: Upload Worker preview
id: deploy
uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 # v3.14.1
env:
PREVIEW_MESSAGE: ${{ steps.metadata.outputs.preview_message }}
with:
apiToken: ${{ secrets.TF_CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.TF_VAR_ACCOUNT_ID }}
command: >
versions upload
-c dist/wrangler.json
--preview-alias ${{ steps.alias.outputs.alias }}
--message "$PREVIEW_MESSAGE"

- name: Resolve preview URL
id: preview
env:
DEPLOYMENT_URL: ${{ steps.deploy.outputs.deployment-url }}
COMMAND_OUTPUT: ${{ steps.deploy.outputs.command-output }}
ALIAS: ${{ steps.alias.outputs.alias }}
shell: bash
run: |
alias_url_pattern="^https?://${ALIAS}-[^[:space:]]+$"
preview_url=""

if printf '%s\n' "$DEPLOYMENT_URL" | grep -Eq "$alias_url_pattern"; then
preview_url="$DEPLOYMENT_URL"
else
preview_url="$(printf '%s\n' "$COMMAND_OUTPUT" | grep -Eo "https?://${ALIAS}-[^[:space:]\"'<>)]+" | head -n 1 || true)"
fi

if ! printf '%s\n' "$preview_url" | grep -Eq "$alias_url_pattern"; then
echo "Failed to resolve aliased Worker preview URL." >&2
exit 1
fi

echo "preview_url=${preview_url}" >> "$GITHUB_OUTPUT"

- name: Publish summary and PR comment
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
env:
MARKER: '<!-- cloudflare-worker-preview -->'
PREVIEW_URL: ${{ steps.preview.outputs.preview_url }}
PREVIEW_ALIAS: ${{ steps.alias.outputs.alias }}
SHORT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const marker = process.env.MARKER;
const previewUrl = process.env.PREVIEW_URL;
const previewAlias = process.env.PREVIEW_ALIAS;
const shortSha = process.env.SHORT_SHA?.slice(0, 7);
const now = new Date().toUTCString().replace(':00 GMT', ' UTC');

if (!previewUrl) {
core.setFailed("Missing preview URL from Cloudflare deploy step.");
return;
}

const tableRow = "| ✅ Deployment successful! | <a href='" + previewUrl + "'>" + previewUrl + "</a> | " + shortSha + " | `" + previewAlias + "` | " + now + " |";
const comment = [
marker,
`## Deploying with &nbsp;<a href="https://workers.dev"><img alt="Cloudflare Workers" src="https://workers.cloudflare.com/logo.svg" width="16"></a> &nbsp;Cloudflare Workers`,
``,
`| Status | Preview URL | Commit | Alias | Updated (UTC) |`,
`| - | - | - | - | - |`,
tableRow,
].join("\n");

await core.summary.addRaw(comment.replace(marker + "\n", "")).write();

if (context.eventName !== 'pull_request') return;

const { owner, repo } = context.repo;
const issue_number = context.issue.number;
const comments = await github.paginate(github.rest.issues.listComments, {
owner, repo, issue_number,
});
const existing = comments.find(
(c) => c.user.type === "Bot" && c.body.includes(marker),
);
if (existing) {
await github.rest.issues.deleteComment({
owner, repo, comment_id: existing.id,
});
}

await github.rest.issues.createComment({ owner, repo, issue_number, body: comment });
12 changes: 5 additions & 7 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,19 +66,17 @@ jobs:
id: vars
run: echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT

- name: Set up Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
- name: Setup app
uses: ./.github/actions/setup
with:
node-version: '24'
cache: 'npm'
install-command: pnpm install --frozen-lockfile --ignore-scripts

- name: Build site
env:
VITE_BUILD_HASH: ${{ steps.vars.outputs.short_sha }}
VITE_IS_RELEASE_TAG: ${{ steps.release_tag.outputs.is_release }}
run: |
npm ci --ignore-scripts
NODE_OPTIONS=--max_old_space_size=4096 npm run build
NODE_OPTIONS=--max_old_space_size=4096 pnpm run build

- name: Set up QEMU
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
Expand All @@ -105,4 +103,4 @@ jobs:
with:
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
subject-digest: ${{ steps.push.outputs.digest }}
push-to-registry: true
push-to-registry: false
Loading
Loading