Releases: getstoop/stoop
Release list
v0.2.0
Stoop 0.2.0 is still a beta: the API and schema may change between minor
versions. It upgrades in place from 0.1.0 and can be rolled back to 0.1.0
by putting the previous image tag back.
What's new. Message search. Pinned messages. Group DMs, and closing a
conversation to take it off your own list. Integrations: incoming
webhooks that post into a channel, outgoing webhooks signed with a
per-hook secret, bots, and personal and bot access tokens for the API.
People can delete their own accounts. Do not disturb is stored on the
account, and presence has a shape for each state. A live indicator shows
when your microphone, camera or screen is being captured, and a device
plugged in mid-call is offered without reconnecting. Seventeen new
themes with a filtered picker. GET /version reports the running build.
A long list of fixes to Markdown, emoji shortcodes, link previews and
realtime presence is in the list below.
For operators.
- Every variable in
.envnow reaches the server. The compose file
gainedenv_file: .env, so any setting in
docs/self-hosting.md → Configuration reference
can be set there. Fetch this release'sdocker-compose.ymlrather than
editing the tag in your old one, or add that line yourself. - Webhooks are on by default.
STOOP_WEBHOOKS=falseturns them off
without deleting anything. Outgoing webhooks refuse LAN targets until
an admin ticks Allow private targets under Server admin →
Integrations; cloud metadata and link-local addresses are never
reachable. New tunables:STOOP_WEBHOOK_RATE_LIMIT(60),
STOOP_WEBHOOK_DELIVERY_RETENTION(168h),STOOP_SEARCH_RATE_LIMIT(30). - People can delete their own accounts by default. Untick People can
delete their own accounts under Server admin → Accounts to leave that
to admins. - Backups: docs/self-hosting.md → Backups
now has a restore runbook, written from a drill.
Schema. Migrations 00029 to 00037 run at startup. All of them only
add; none is a contract migration, so the schema floor does not move and
0.1.0 still starts against a 0.2.0 database.
Pinned alongside this release: LiveKit v1.13.6 and Postgres 16, both
unchanged from 0.1.0.
Known issues: none known at release. What turns up goes in
GitHub issues; security
problems go through
private reporting.
The list below is every change merged since 0.1.0.
Changelog
Changes
- 1eadbce: Merge pull request #20 from getstoop/release-env-asset-name (@Jhut89)
- 87cced1: self hosting doc updates (@Jhut89)
- 09308d6: Merge pull request #21 from getstoop/sh_doc_updates (@Jhut89)
- 3a69cf0: Docs: message search proposal (STOOP-176) (@Jhut89)
- a1f887c: Message search: schema, query and SearchMessages RPC (STOOP-177) (@Jhut89)
- 789cc35: Search: no empty tsquery branch (@Jhut89)
- 3ba1822: Message search: header entry and results page (STOOP-178) (@Jhut89)
- 181e178: Search: rows fade in under the scope chips (@Jhut89)
- a858827: Merge pull request #22 from getstoop/docs/message-search (@Jhut89)
- 1ecc578: Merge pull request #23 from getstoop/search-server (@Jhut89)
- 3d7c2b6: Merge pull request #24 from getstoop/search-web (@Jhut89)
- c02f64c: Search: review follow-ups from #23 (@Jhut89)
- ef946a8: Merge pull request #25 from getstoop/search-review-fixes (@Jhut89)
- a9a5bf1: E2E: message search spec (STOOP-178) (@Jhut89)
- 7f7ff6d: Merge pull request #26 from getstoop/search-e2e (@Jhut89)
- 6fe1267: Desktop client proposal (STOOP-180) (@Jhut89)
- 341598f: Desktop proposal: note the design page (@Jhut89)
- 6e503f2: Web: one origin helper for every server URL (STOOP-181) (@Jhut89)
- 5d09cc4: Server: GET /version for clients that check before login (STOOP-185) (@Jhut89)
- d769313: Web: platform seam and the desktop badge (STOOP-182, STOOP-183) (@Jhut89)
- a0a2dfe: Web: PWA manifest and icons (STOOP-184) (@Jhut89)
- f1ce57b: Web: the stoop mark as drawn (STOOP-184) (@Jhut89)
- 4d35d12: Web: file links stay paths (@Jhut89)
- 80f89b1: Docs: the desktop contract (STOOP-186) (@Jhut89)
- 26c198b: Version test: assert Cache-Control (@Jhut89)
- 39ee832: Manifest: splash and chrome follow the Brownstone canvas (@Jhut89)
- 230afa3: Merge pull request #27 from getstoop/desktop-client-proposal (@Jhut89)
- 37aa1cf: Merge pull request #32 from getstoop/stoop-186-desktop-doc (@Jhut89)
- 4d63395: Merge pull request #30 from getstoop/stoop-182-platform-seam (@Jhut89)
- bb3e610: Merge pull request #28 from getstoop/stoop-181-origin-helper (@Jhut89)
- 3f72f66: Merge pull request #29 from getstoop/stoop-185-version-endpoint (@Jhut89)
- e9462e5: Merge pull request #31 from getstoop/stoop-184-pwa-manifest (@Jhut89)
- d26c8d2: Web: the title strip and theme-color follow the picked theme (STOOP-202) (@Jhut89)
- 3a5d134: Merge pull request #33 from getstoop/web-titlebar-theme (@Jhut89)
- 95d418a: Docs: the theme tokens the desktop shell reads are part of the contract (@Jhut89)
- fe73c9d: Web: thin scrollbars in the theme's colours (STOOP-209) (@Jhut89)
- ec55333: Merge pull request #34 from getstoop/docs/shell-theme-tokens (@Jhut89)
- d73d593: Merge pull request #35 from getstoop/feat/theme-scrollbars (@Jhut89)
- 07f1e41: Docs: propose a server switcher the shell draws itself (STOOP-210) (@Jhut89)
- f682966: Docs: the theme belongs to the viewer, not the server (@Jhut89)
- 9204399: Docs: finish the correction through the rest of the switcher proposal (@Jhut89)
- 28bf941: Docs: the switcher's decisions, taken (@Jhut89)
- 3ef9973: Merge pull request #36 from getstoop/docs/desktop-server-switcher (@Jhut89)
- 1511049: Dev: one live origin at :8091, and make dev says what it runs (@Jhut89)
- 15bc5c9: Merge pull request #37 from getstoop/dev/uniform-start (@Jhut89)
- 1c9fda8: Desktop: bridge 2 hands the shell's theme to the page, whole (@Jhut89)
- 45f16d5: Merge pull request #38 from getstoop/desktop-theme (@Jhut89)
- 0215601: Desktop: provider sign-in leaves for the system browser and comes back (@Jhut89)
- d20a683: Desktop: a failed provider sign-in comes back to the app too (@Jhut89)
- be7a87d: Desktop: the return page is a client route, not HTML from Go (@Jhut89)
- 79bb2fd: Desktop: the return page offers a way on, not just a way back (@Jhut89)
- fcfe47c: Merge pull request #39 from getstoop/desktop/provider-signin (@Jhut89)
- f115ef9: Desktop: connecting a provider leaves for the system browser too (@Jhut89)
- befad0b: Desktop: one start per attempt, and a person confirms a link (@Jhut89)
- 9187459: Merge pull request #40 from getstoop/desktop/link-provider (@Jhut89)
- 960f28c: Web: an invite link can open the app instead of the browser (@Jhut89)
- 4687e17: Web: the invite landing reaches for the app on its own (@Jhut89)
- 09e271e: Web: the invite landing is a handoff, not a login form (@Jhut89)
- 31fd326: Web: the invite handoff remembers nothing (@Jhut89)
- 186cbab: Web: the invite landing keeps its form where there is no handoff (@Jhut89)
- d9df4c3: E2E: arrive at an invite through the handoff (@Jhut89)
- 04ffb98: Web: an invite link asks before anything touches the invite (@Jhut89)
- b5fed7a: Desktop: the app lands where the server says, as the browser does (@Jhut89)
- bde162a: Merge pull request #41 from getstoop/desktop/invite-open-in-app (@Jhut89)
- ad177c6: Merge pull request #42 from getstoop/desktop/setup-landing (@Jhut89)
- 24b3dbf: Web: every shared link asks, not just invites (@Jhut89)
- ffc2798: Deploy: settings in .env reach the server (@Jhut89)
- cac321d: Merge p...
v0.1.0
Stoop 0.1.0 is the first release, and a beta: the core works and is in
daily use, and the API and schema may still change between minor
versions. What will not change from here on is the upgrade path. Every
release upgrades in place from the release before it, and can be rolled
back one release by putting the previous image tag back.
What's in it. Spaces with text and voice channels, direct messages,
replies, reactions, mentions, edits, Markdown, file attachments with
inline images and link previews, an activity feed with per-channel and
per-space mutes, eight themes, and voice and video rooms on LiveKit.
Sign in with a password or any OIDC provider. Reach it through a reverse
proxy you already run, Cloudflare Tunnel with Cloudflare TURN for voice,
or the built-in Tailscale node, which carries voice as well. One static
binary for linux/amd64, linux/arm64 and darwin/arm64, images for both
Linux architectures, and a compose bundle below that pins everything.
Install. Follow the quick start in
docs/self-hosting.md:
it downloads the four files attached to this release and runs
docker compose up -d. Upgrading later is fetching the next release's
compose file, then docker compose pull && docker compose up -d.
Pinned alongside this release: LiveKit v1.13.6 and Postgres 16 in
the compose file. The notes of a later release say when either moves.
Known issues: none known at release. What turns up goes in
GitHub issues; security
problems go through
private reporting.
The list below is every change merged since the repository went public.
Changelog
Changes
- 9940d1d: Merge pull request #19 from getstoop/release-clean-tree (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 94d6fd0: releasing.md: a snapshot does not catch a dirty tree (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 253b524: Merge pull request #18 from getstoop/release-0.1.0 (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- bfef6b9: Merge pull request #16 from getstoop/docs-only-check (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- b599a44: CONTRIBUTING: say that docs-only PRs get the short CI (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 9841a63: Merge pull request #17 from getstoop/ci-matrix-skip (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 1fbe0ad: CI: cross-compile skips its steps, not the job, so its checks still appear (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 4628e3d: Merge pull request #15 from getstoop/docs-pass (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 7982d47: Docs: read with a stranger's eyes; Postgres/LiveKit support window; docs-only CI path (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 6f0dc81: Merge pull request #14 from getstoop/release-plumbing (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 4958cda: Merge pull request #13 from getstoop/quota-race (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- e9fd164: Merge pull request #12 from getstoop/invite-race (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 5287ddb: Uploads: the quota holds under parallel uploads (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- c3fa38a: Registration: a spent invite undoes the account it admitted (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 4ff75b8: Merge pull request #11 from getstoop/e2e-scratch (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 6a55ac0: Merge pull request #10 from getstoop/puppeteer-25 (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 58b9156: make e2e runs on a throwaway instance instead of the dev database (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- f563951: e2e: puppeteer-core 25, click option clickCount → count (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- ed69807: Merge pull request #7 from getstoop/dependabot/npm_and_yarn/web/vitejs/plugin-react-5.2.0 (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- ee607c2: Merge pull request #8 from getstoop/dependabot/npm_and_yarn/web/typescript-7.0.2 (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 22a0a3e: Merge pull request #6 from getstoop/dependabot/npm_and_yarn/web/web-ae51b33a4e (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 5a71e9a: Merge pull request #2 from getstoop/dependabot/go_modules/go-656397456c (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- cf557c8: Merge pull request #5 from getstoop/dependabot-cadence (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 18c82ed: Merge pull request #4 from getstoop/rename-org (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- c48d30b: Dependabot: majors come alone, code updates monthly (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- fc19587: Merge pull request #1 from getstoop/dependabot/github_actions/actions-c7c1b20814 (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 35430d6: Rename the repository home: Jhut89 → getstoop (John Hutcheson 13235920+Jhut89@users.noreply.github.com)
- 80b7411: Stoop (John Hutcheson 13235920+Jhut89@users.noreply.github.com)