This website requires JavaScript.
ff55d9d486
docs: plan desktop features and diagnose the Spotify sync bugs
main
devsyncwrld
2026-08-31 14:02:21 -03:00
e58021408c
docs: record the Electron window.prompt soundboard bug
devsyncwrld
2026-08-31 14:00:41 -03:00
2afe3453f0
docs: record four approved features not yet started
devsyncwrld
2026-08-31 13:57:01 -03:00
e89966435a
fix(soundboard): read MANAGE_SPACE from the space bitfield
devsyncwrld
2026-08-31 13:54:00 -03:00
f5451e1b14
feat: soundboard, account menu, and call timer
devsyncwrld
2026-08-31 13:45:18 -03:00
ef5545465d
docs: mark GIF favourites, audit log and statistics delivered
devsyncwrld
2026-08-31 13:30:26 -03:00
1830051732
feat(stats): voice-time and message leaderboards per space
devsyncwrld
2026-08-31 13:29:59 -03:00
bbb190cbda
feat(audit): append-only audit log for spaces
devsyncwrld
2026-08-31 13:22:52 -03:00
fb662bfe12
feat(gif): favourites and category shortcuts
devsyncwrld
2026-08-31 13:12:50 -03:00
0fc6abeb6e
docs: mark Spotify delivered, drop resolved items
devsyncwrld
2026-08-31 13:04:35 -03:00
75316b0882
feat(spotify): show the current track as an activity
devsyncwrld
2026-08-31 12:37:08 -03:00
c022f2795f
docs: record the i18n foundation and translation queue
devsyncwrld
2026-08-31 12:25:03 -03:00
688a1335cb
feat(i18n): language foundation with en and pt-BR
devsyncwrld
2026-08-31 12:24:50 -03:00
89e13441c8
docs: record the pt-BR language rule and new system ideas
devsyncwrld
2026-08-31 12:18:33 -03:00
63afd2fc89
fix(profile): hoist the activity hook above the early return
devsyncwrld
2026-08-31 12:12:23 -03:00
d80de49768
chore(caddy): serve the Gitea site alongside the app
devsyncwrld
2026-08-31 12:07:29 -03:00
b92a0d837e
docs: update roadmap after mic test and activity work
devsyncwrld
2026-08-31 12:05:18 -03:00
d7da0ff203
feat(activity): show the current activity on the profile card
devsyncwrld
2026-08-31 12:05:01 -03:00
bfe62d7078
feat(voice): mic test with loopback in voice settings
devsyncwrld
2026-08-31 11:59:51 -03:00
37407a5ecd
feat(voice): open the profile card from voice participants
devsyncwrld
2026-08-31 11:49:57 -03:00
cad3867027
docs: add fork roadmap
devsyncwrld
2026-08-31 11:45:02 -03:00
20526e1bc8
feat(gif): outlined GIF glyph, and GIF picker for the profile banner
devsyncwrld
2026-08-31 11:44:40 -03:00
c70b0095a9
feat(voice): jump to the call from the voice panel
devsyncwrld
2026-08-31 11:40:45 -03:00
08db5374cb
build: compile better-sqlite3 from source (no Node 20 prebuilt)
devsyncwrld
2026-08-31 11:09:14 -03:00
6c7cbee808
docs(pr-template): clarify the CLA checkbox is not the signature (#42 )
upstream-base
TheZwiss
2026-08-25 16:36:24 +02:00
8456b8f976
fix(web): stop the profile card re-anchoring to its own avatar (#39 )
cnrd
2026-08-25 15:51:04 +02:00
747f1b9c5c
ci(cla): store CLA signatures on a dedicated branch (#40 )
TheZwiss
2026-08-25 15:46:11 +02:00
89467d6f93
fix(server): upgrade better-sqlite3 to 12.x for Node 24 compatibility (#41 )
TheZwiss
2026-08-25 15:41:43 +02:00
8e13aaa057
Merge pull request #27 from TheZwiss/docs/security-design-record
TheZwiss
2026-07-13 11:40:37 +02:00
aa5052ba8a
docs(security): add scanning/hardening design spec + Plan A implementation plan
Jannis Braun
2026-07-13 11:36:23 +02:00
97989fbfb4
Merge pull request #18 from TheZwiss/security/container-hardening
TheZwiss
2026-07-13 11:33:54 +02:00
bf836e208b
Merge main into security/container-hardening (bring up to date for merge)
Jannis Braun
2026-07-13 11:27:02 +02:00
53a36cd11a
Merge pull request #17 from TheZwiss/security/scanning-pipeline
TheZwiss
2026-07-13 11:26:27 +02:00
d2d6ce9756
Merge main into security/scanning-pipeline (bring up to date for merge)
Jannis Braun
2026-07-13 11:20:45 +02:00
7d1895308d
fix(docker): make SARIF upload non-blocking; correct seed-admin/build-stage/restore ownership docs
Jannis Braun
2026-07-13 01:21:20 +02:00
0b3aa42a09
docs(docker): add maintainer release-gate pull-test note (per review)
Jannis Braun
2026-07-13 01:13:19 +02:00
6d81b63d86
docs(docker): document non-root runtime, data-volume migration, and image scan
Jannis Braun
2026-07-13 01:09:26 +02:00
c4929a8b1b
ci(docker): scan the amd64 image before publish; attach SBOM + provenance
Jannis Braun
2026-07-13 01:06:58 +02:00
0ec7ddba81
docs(docker): correct stale runtime-deps comment (no build toolchain anymore)
Jannis Braun
2026-07-13 01:04:13 +02:00
3100965c30
fix(docker): run container as non-root (gosu) and drop build toolchain from runtime
Jannis Braun
2026-07-13 00:58:07 +02:00
9d2eeb0963
docs(security): build native arm64 for local Docker verification (host is Apple Silicon; arm64 = Pi target)
Jannis Braun
2026-07-13 00:54:42 +02:00
fd8659a964
docs(security): lighter targeted arm64 native-module check (avoid QEMU Vite build timeout)
Jannis Braun
2026-07-13 00:53:26 +02:00
7457146846
docs(security): fold Plan B review findings (proc/1 uid check, arm64 verify, cheap idempotent chown, provenance floor, doc corrections)
Jannis Braun
2026-07-13 00:52:13 +02:00
321428ba1f
docs(security): Plan B implementation plan (container hardening + image scan)
Jannis Braun
2026-07-13 00:42:02 +02:00
cf4172e81a
fix(security): bump trivy-action v0.28.0 -> v0.36.0
Jannis Braun
2026-07-12 23:54:47 +02:00
e2d09c0d52
fix(security): point OSV-Scanner at runnable subpath action; doc accuracy fixes
Jannis Braun
2026-07-12 23:48:09 +02:00
cb524675cc
docs(security): document the scanning pipeline + maintainer checklist
Jannis Braun
2026-07-12 23:38:03 +02:00
4758ca46fa
ci(security): SHA-pin all actions and add harden-runner (audit)
Jannis Braun
2026-07-12 23:32:48 +02:00
21d783e257
ci(security): add OpenSSF Scorecard workflow
Jannis Braun
2026-07-12 23:29:11 +02:00
3f75ff6e36
ci(security): add CodeQL SAST workflow (javascript-typescript)
Jannis Braun
2026-07-12 23:27:35 +02:00
74ae929ab4
ci(security): add report-only security scan workflow (gitleaks, OSV, Trivy)
Jannis Braun
2026-07-12 23:25:26 +02:00
807afba45a
ci(security): add Dependabot config (npm + actions + docker)
Jannis Braun
2026-07-12 23:23:27 +02:00
1e6c7c6042
Enhance Windows dev support (#13 )
BadAtCaptchas and Jannis Braun
2026-07-12 07:10:43 -04:00
43cab41e60
fix(spaces): clearer 403 for non-members on invite endpoint (#14 )
TheZwiss and BadAtCaptchas
2026-07-12 12:51:37 +02:00
d76e06a023
refactor(federation): consolidate inbound S2S-auth preamble into one helper (#11 )
TheZwiss
2026-07-10 03:08:09 +02:00
c79bf91398
refactor(server): dedupe federation rate limiters and response signing (#10 )
TheZwiss
2026-07-10 02:23:14 +02:00
94fe73522d
refactor(server): split federation routes into cohesive modules (#9 )
TheZwiss
2026-07-10 02:08:03 +02:00
180228f2d1
ci: bump actions to Node 24 runtimes to clear deprecation warning (#8 )
TheZwiss
2026-07-10 01:02:47 +02:00
c7d88481ad
test: give federation integration suites a realistic per-test timeout (#7 )
TheZwiss
2026-07-10 00:51:18 +02:00
9b6d1b18eb
Fix federated attachment downloads allowing SSRF via redirects (#1 )
BadAtCaptchas and Jannis Braun
2026-07-09 18:27:05 -04:00
628e4dec3e
ci: run typecheck, build & tests on PRs and main (#6 )
TheZwiss
2026-07-10 00:15:41 +02:00
0727d5a3b3
Add landing page and Pages deploy workflow
TheZwiss
2026-07-08 00:45:31 +02:00
3513a3dde9
docs: tighten public copy, add comparison, templates, and social preview
TheZwiss
2026-07-07 23:39:33 +02:00
95b545d8b2
chore(deploy): allow a gitignored local override for deploy targets
Jannis Braun
2026-07-07 19:44:26 +02:00
85e1975fa5
fix(permissions): deny space permissions to non-members (invite-bypass)
Jannis Braun
2026-07-07 19:44:16 +02:00
26bb0be7af
@BadAtCaptchas has signed the CLA in TheZwiss/backspace#1
github-actions[bot]
2026-07-07 14:36:01 +00:00
e27e52f267
Creating file for storing CLA Signatures
github-actions[bot]
2026-07-07 14:35:11 +00:00
531b496618
feat(deploy): three deployment modes + prebuilt multi-arch image for robust self-hosting
Jannis Braun
2026-07-06 13:36:29 +02:00
e7f41b5609
fix(desktop): don't let uiohook-napi rebuild abort the whole workspace install
Jannis Braun
2026-07-06 01:52:06 +02:00
24accc3647
docs(env): make the JWT_SECRET requirement explicit in .env.example
Jannis Braun
2026-07-06 01:20:08 +02:00
028005d487
fix(compose): fail fast on missing JWT_SECRET instead of a silent restart loop
Jannis Braun
2026-07-06 01:12:14 +02:00
9d3f72be75
chore: pin Node 20 (LTS) and pnpm 10.34.3
Jannis Braun
2026-07-06 01:04:59 +02:00
ef020601eb
ci(release): build arm64 .deb with host-native fpm (USE_SYSTEM_FPM)
v1.0.0
Jannis Braun
2026-07-03 13:54:56 +02:00
9c293b9731
ci(release): fix native uiohook-napi build on Windows + Linux
Jannis Braun
2026-07-03 13:47:29 +02:00
90fe262676
docs(desktop): document unsigned-build auto-update status and CI release pipeline
Jannis Braun
2026-07-03 13:28:37 +02:00
45cee93e7d
docs(readme): add desktop download section with per-platform install notes
Jannis Braun
2026-07-03 13:28:37 +02:00
70a648d209
ci(release): build Linux arm64 on native arm runner; pin unsigned mac builds
Jannis Braun
2026-07-03 13:17:13 +02:00
28b6fb677b
Merge federation orphaned-account detach + sync-filtering + re-attach + DM reconciliation
Jannis Braun
2026-07-03 13:11:23 +02:00
acde64a642
docs(federation/dm): re-attach 1-on-1 federatedId reconciliation + drift sweep
Jannis Braun
2026-07-03 12:46:12 +02:00
21c8731f3a
feat(web): refetch DM list after re-attach so reconciled conversation replaces the split (reattach-dm-reconcile spec §3.4)
Jannis Braun
2026-07-03 12:44:00 +02:00
011a9be92a
feat(federation): startup sweep reconciles drifted 1-on-1 DM federatedIds — heals pre-fix re-attaches (reattach-dm-reconcile spec §3.3)
Jannis Braun
2026-07-03 12:36:17 +02:00
0bb4ef8cad
feat(federation): re-attach reconciles the account's 1-on-1 DM federatedIds inline (reattach-dm-reconcile spec §3.2)
Jannis Braun
2026-07-03 12:34:18 +02:00
1da44c8d6b
feat(federation): reconcileDmChannelFederatedId — re-key/merge 1-on-1 DM channels on identity change (reattach-dm-reconcile spec §3.1)
Jannis Braun
2026-07-03 12:28:21 +02:00
d3af4f2170
fix(federation): close re-attach final-review findings — client/server domain normalization, merge attachment repoint, empty-domain guard, test hardening
Jannis Braun
2026-07-03 02:43:45 +02:00
521aff6e52
docs(federation/auth/api/db/client): detached-account re-attach flow; reset-cleanup panel mentions re-attach
Jannis Braun
2026-07-03 02:28:35 +02:00
344a429e98
feat(web): automatic re-attach on connect + AccountPanel fallback action (re-attach spec §3.4)
Jannis Braun
2026-07-03 02:19:51 +02:00
d45366c4ff
feat(federation): owner-initiated detached-account re-attach — proof-gated re-bind with stub merge (re-attach spec §3.2, §3.3)
Jannis Braun
2026-07-03 02:06:00 +02:00
7bff6c1a1b
feat(federation): outbound attach-proof verification + home-profile fetch helpers (re-attach spec §3.1)
Jannis Braun
2026-07-03 01:54:50 +02:00
093d5f3f26
docs(federation): document S2S verify-attach-proof endpoint (re-attach spec §3.1)
Jannis Braun
2026-07-03 01:49:27 +02:00
af94f12389
feat(federation): S2S verify-attach-proof endpoint — single-use, peer-domain-bound, signed response (re-attach spec §3.1)
Jannis Braun
2026-07-03 01:49:20 +02:00
1c962ded12
feat(auth): attach-proof mint endpoint for detached-account re-attach (re-attach spec §3.1)
Jannis Braun
2026-07-03 01:41:08 +02:00
669d80d7c7
feat(federation): federation_attach_proofs table (re-attach spec §3.1)
Jannis Braun
2026-07-03 01:36:30 +02:00
70a68ebe1e
docs(federation): sync relevance scoping, self-homed guard, deleted-snapshot flag, dead-incarnation sweep
Jannis Braun
2026-07-03 01:13:33 +02:00
a0238eabc2
feat(federation): startup sweep removes dead-incarnation channels and self-homed stubs (dead-incarnation spec §3.4)
Jannis Braun
2026-07-03 01:05:26 +02:00
3591773a4c
feat(federation): deleted flag on wire profile snapshots — tombstone markers never leave the instance (dead-incarnation spec §3.3)
Jannis Braun
2026-07-03 00:59:37 +02:00
5ffc7c565e
feat(federation): sync endpoint scopes friend events to the requesting peer, pagination-safe (dead-incarnation spec §3.2)
Jannis Braun
2026-07-03 00:50:31 +02:00
bd40058613
feat(federation): sync endpoint scopes DM channels to the requesting peer (dead-incarnation spec §3.2)
Jannis Braun
2026-07-03 00:42:02 +02:00
99c8361b75
feat(federation): receiver guard — never create replicated stubs homed at our own domain (dead-incarnation spec §3.1)
Jannis Braun
2026-07-03 00:37:27 +02:00
54ab660204
feat(federation): near-instant reset detection — probe epoch at the auth-failure transition + on worker startup
Jannis Braun
2026-07-02 20:10:35 +02:00
13d050c1bb
fix(federation): close detached-account gaps from final review — presence/hydrate guards, ack re-detect clear, self-delete password (detach spec §4.3/§4.4/§4.6)
Jannis Braun
2026-07-02 19:34:32 +02:00