Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
0654cb9
feat: Add comprehensive Sentry integration with debug logger and bug …
Mar 13, 2026
8b8b56c
fix: expose Sentry globally for console testing and debugging
Mar 13, 2026
ac7e31b
feat: add comprehensive Sentry diagnostics and improved test feedback
Mar 13, 2026
5662994
fix: improve Sentry session replay masking and debug log attachments
Mar 13, 2026
40124d3
feat: enable 100% Sentry sampling for preview environments
Mar 13, 2026
bede520
docs: add Sentry environment configuration for deployments
Mar 13, 2026
75c84a3
fix: add @sentry/react dep, fix lint and formatting issues
Mar 14, 2026
245c548
fix: wire instrument.ts, fix Checkbox props, add changeset
Mar 14, 2026
7128dd1
feat: complete Sentry instrumentation - metrics, traces, profiling, u…
Mar 14, 2026
9da982d
feat: improve crash page and bug report to prefer Sentry over GitHub
Mar 14, 2026
84e5a3e
chore: remove test buttons from Sentry dev tools settings
Mar 14, 2026
1956ef5
Merge upstream/dev: add threadRootId to sendMessage in Sentry span
Mar 14, 2026
c11bd79
fix: inject VITE_SENTRY_DSN into preview deployment builds
Mar 14, 2026
cbe5de4
fix: auto-deploy to production on dev branch pushes
Mar 14, 2026
5c688aa
chore: remove Show Config/Diagnostics from Sentry dev tools
Mar 14, 2026
4579749
feat: add VITE_SENTRY_SAMPLE_RATE env var for production sampling con…
Mar 14, 2026
113449d
fix: use profileSessionSampleRate and add Document-Policy header for …
Mar 14, 2026
8de9795
update sentry instrumentation
Mar 14, 2026
ab7f09a
Add width limit to notification banners
Vespe-r Mar 13, 2026
3b19822
Add changeset
Vespe-r Mar 14, 2026
6345445
fix(timeline): don't force scroll-to-bottom on sync gap when scrolled up
Mar 14, 2026
a737ef7
fix(timeline): stable callback ref pattern for room event listener hooks
Mar 14, 2026
ad448ec
style: fix prettier indentation in Sentry.startSpan callback
Mar 14, 2026
5f63152
fix: resolve merge conflict, lint errors and formatting issues
Mar 14, 2026
abadff6
fix(lint): remove useless fragment in SentrySettings
Just-Insane Mar 15, 2026
7f06fea
Merge pull request #9 from Just-Insane/fix/timeline-refresh-scroll
Just-Insane Mar 15, 2026
be4c428
Merge remote-tracking branch 'upstream/dev' into dev
Just-Insane Mar 15, 2026
54ed721
Add Sentry environment variables to workflow
Just-Insane Mar 15, 2026
9fb8872
fix: prevent event listener accumulation during sync retries
Just-Insane Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/feat-sentry-integration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'default': minor
---

Add Sentry integration for error tracking and bug reporting
5 changes: 5 additions & 0 deletions .changeset/fix-timeline-refresh-scroll.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: patch
---

Fix event listener accumulation during sync retries: stable callback refs across RoomTimeline hooks, correct CallEmbed .bind(this) leak, and stable refs in useCallSignaling to prevent MaxListeners warnings
5 changes: 5 additions & 0 deletions .changeset/limit-notification-width.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
default: patch
---

Add width limit to notification banners
7 changes: 7 additions & 0 deletions .github/actions/prepare-tofu/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@ runs:
VITE_IS_RELEASE_TAG: ${{ inputs.is_release_tag }}
with:
build: 'true'
env:
VITE_SENTRY_DSN: ${{ env.VITE_SENTRY_DSN }}
VITE_SENTRY_ENVIRONMENT: ${{ env.VITE_SENTRY_ENVIRONMENT }}
VITE_APP_VERSION: ${{ env.VITE_APP_VERSION }}
SENTRY_AUTH_TOKEN: ${{ env.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ env.SENTRY_ORG }}
SENTRY_PROJECT: ${{ env.SENTRY_PROJECT }}

- name: Setup OpenTofu
uses: opentofu/setup-opentofu@9d84900f3238fab8cd84ce47d658d25dd008be2f # v1.0.8
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/cloudflare-web-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@ env:
TF_HTTP_LOCK_METHOD: 'POST'
TF_HTTP_UNLOCK_METHOD: 'DELETE'
TF_HTTP_RETRY_WAIT_MIN: '5'
VITE_SENTRY_DSN: ${{ secrets.VITE_SENTRY_DSN }}
VITE_SENTRY_ENVIRONMENT: production
VITE_SENTRY_SAMPLE_RATE: ${{ vars.VITE_SENTRY_SAMPLE_RATE || '0.1' }}
VITE_APP_VERSION: ${{ github.ref_name }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}

concurrency:
group: cloudflare-infra
Expand Down Expand Up @@ -82,6 +89,14 @@ jobs:
uses: ./.github/actions/prepare-tofu
with:
is_release_tag: ${{ startsWith(github.ref, 'refs/tags/v') || (github.event_name == 'workflow_dispatch' && inputs.git_tag != '') }}
env:
VITE_SENTRY_DSN: ${{ secrets.VITE_SENTRY_DSN }}
VITE_SENTRY_ENVIRONMENT: production
VITE_SENTRY_SAMPLE_RATE: ${{ vars.VITE_SENTRY_SAMPLE_RATE || '0.1' }}
VITE_APP_VERSION: ${{ github.ref_name }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}

- name: Plan infrastructure
run: tofu plan -input=false -no-color
Expand Down
12 changes: 11 additions & 1 deletion .github/workflows/cloudflare-web-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,9 @@ jobs:
uses: ./.github/actions/setup
with:
build: 'true'

env:
VITE_SENTRY_DSN: ${{ secrets.VITE_SENTRY_DSN }}
VITE_SENTRY_ENVIRONMENT: preview
- name: Set deploy alias
id: alias
shell: bash
Expand All @@ -85,6 +87,14 @@ jobs:
--preview-alias ${{ steps.alias.outputs.alias }}
--message "$PREVIEW_MESSAGE"
- name: Deploy to production (dev branch only)
if: github.event_name == 'push' && github.ref_name == 'dev'
uses: cloudflare/wrangler-action@da0e0dfe58b7a431659754fdf3f186c529afbe65 # v3.14.1
with:
apiToken: ${{ secrets.TF_CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.TF_VAR_ACCOUNT_ID }}
command: versions deploy -c dist/wrangler.json --yes

- name: Resolve preview URL
id: preview
env:
Expand Down
3 changes: 3 additions & 0 deletions Caddyfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
:8080 {
root * /app

# Required for Sentry browser profiling
header Document-Policy "js-profiling"

# Enable on-the-fly compression for things not pre-compressed
encode zstd gzip

Expand Down
Loading
Loading