Zulip 服务器和 Web 应用程序。开源团队聊天可帮助团队保持高效和专注。
Go to file
Evy Kassirer 20cd33fcab channel_settings: Apply folder filter regardless of left tab.
The empty-right branch of change_state previously set the folder
filter dropdown only when left_side_tab === "all". This came from the
old structure where the folder filter set was buried inside the
section === "all" branch, but it caused a preexisting bug: clicking
"View channels" from a folder popover as a guest passed
left_side_tab = "subscribed" (since guests can't use the "All" tab),
which skipped the folder-filter setup — so guests saw all their
subscribed channels rather than the folder they clicked.

Drop the left_side_tab guard. The folder filter is just a dropdown
value; applying it whenever folder_id is supplied makes the filter
work across all left tabs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 14:05:37 +05:30
.claude docs: Don't require dual-theme screenshots for theme-invariant changes. 2026-05-26 13:00:58 +05:30
.github Revert "ci: Drop upgrade tests for 6.0 and 7.0." 2026-05-26 17:41:33 +08:00
.vscode vscode: Recommend remote development extension. 2021-11-03 16:03:46 -07:00
analytics requirements: Upgrade Python requirements. 2026-04-17 15:04:02 -07:00
api_docs api: Increment API feature level to 505. 2026-05-25 20:21:51 +05:30
confirmation ruff: Fix RUF059 Unpacked variable is never used. 2025-09-30 16:47:54 -07:00
corporate billing: Add UniqueConstraint for plan offers and never-started plans. 2026-05-27 23:13:24 +08:00
docs docs: Rework schema migrations guide around the online-deploy model. 2026-05-28 15:59:32 +08:00
locale makemessages: Remove line numbers from .po files. 2026-04-27 13:52:29 -07:00
patches dependencies: Upgrade JavaScript dependencies. 2026-05-13 14:20:32 -07:00
pgroonga zproject: Remove mostly-unused SCHEMA in database config. 2025-12-16 13:03:27 -08:00
puppet hooks: Make deploy notifications best-effort. 2026-05-26 18:22:16 +08:00
scripts restore-backup: Preserve symlinked uploads and config directories. 2026-05-28 00:51:17 +08:00
starlight_help push_notifications: Skip legacy notifications when E2EE is required. 2026-05-25 13:25:05 +05:30
static static: Shrink empty space at top of email template. 2026-05-15 10:26:21 -04:00
templates corporate: Remove designer job posting. 2026-05-27 21:55:15 +05:30
tools event_types: Rename EventX classes to XEvent. 2026-05-26 16:35:37 -07:00
web channel_settings: Apply folder filter regardless of left tab. 2026-05-28 14:05:37 +05:30
zerver ms_teams_importer: Fix buggy parallel download setup. 2026-05-27 13:27:33 +05:30
zilencer requirements: Remove dateutil. 2026-05-10 00:21:37 -07:00
zproject dev_settings: Enable landing announcement banner. 2026-05-19 15:48:25 -05:00
.codecov.yml codecov: Change threshold to use percentage syntax. 2019-07-20 14:37:04 -07:00
.codespellignore types: Add declarations for openapi-examples-validator. 2025-09-04 17:02:06 -07:00
.devcontainer.json provision: Add native support for GitHub Codespaces. 2026-04-26 22:28:01 -07:00
.editorconfig check-openapi: Convert to TypeScript. 2025-09-04 17:02:06 -07:00
.gitattributes gitattributes: Diff SVGs as code. 2025-05-22 15:59:55 -07:00
.gitignore gitignore: Add dev_saml.cert. 2026-02-04 14:42:15 -08:00
.gitlint lint: Update line-length for commit message to 72 in gitlint. 2023-05-01 10:35:52 -07:00
.mailmap mailmap: Use standard name capitalization. 2026-04-25 23:04:34 -07:00
.npmignore Add proxy notes to new README.dev.md troubleshooting section. 2016-03-29 21:54:05 -07:00
.prettierignore marked: Rename to *.cjs. 2024-11-13 09:18:56 -08:00
.readthedocs.yaml install-uv: Upgrade uv from 0.11.7 to 0.11.14. 2026-05-12 16:21:37 -07:00
.sonarcloud.properties tools: Configure Zulip to be scannable by SonarCloud. 2020-06-24 12:41:17 -07:00
CODE_OF_CONDUCT.md contributor docs: Update policy to ban AI-generated messages on CZO. 2026-02-09 20:47:39 -08:00
CONTRIBUTING.md contributor docs: Update policy to ban AI-generated messages on CZO. 2026-02-09 20:47:39 -08:00
Dockerfile-postgresql release-checklist: Prescribe docker build --pull. 2025-09-30 16:35:21 -07:00
eslint.config.js eslint: Enable eslint-plugin-promise. 2025-12-30 09:29:21 -08:00
LICENSE license: Move copyright notice from LICENSE to NOTICE. 2021-02-05 09:28:12 -08:00
manage.py manage: Delete custom PYTHONSTARTUP. 2025-06-12 09:28:00 -07:00
NOTICE docs: Bump copyright year. 2021-02-05 09:28:15 -08:00
package.json dependencies: Add re2js. 2026-05-19 21:50:56 -07:00
pnpm-lock.yaml dependencies: Add re2js. 2026-05-19 21:50:56 -07:00
pnpm-workspace.yaml dependencies: Upgrade JavaScript dependencies. 2026-05-13 14:20:32 -07:00
prettier.config.js prettier: Type-check Prettier configuration. 2025-09-10 09:44:44 -07:00
pyproject.toml requirements: Upgrade Python requirements. 2026-05-12 16:38:09 -07:00
README.md docs: Replace Twitter (X) references with Bluesky. 2026-04-27 08:15:11 -07:00
SECURITY.md contributor docs: Expand documentation on reporting security issues. 2025-12-17 13:16:28 -08:00
stylelint.config.js stylelint: Type-check Stylelint configuration. 2025-09-10 09:44:44 -07:00
tsconfig.json custom_profile_fields_ui: Avoid needless unchecked type assertion. 2025-12-25 19:08:21 -08:00
uv.lock requirements: Upgrade Python requirements. 2026-05-12 16:38:09 -07:00
Vagrantfile Vagrantfile: Share the .git folder (for git worktree support). 2026-04-23 09:18:20 -07:00
version.py api: Increment API feature level to 505. 2026-05-25 20:21:51 +05:30

Zulip overview

Zulip is an open-source organized team chat app with unique topic-based threading that combines the best of email and chat to make remote work productive and delightful. Fortune 500 companies, leading open source projects, and thousands of other organizations use Zulip every day. Zulip is the only modern team chat app that is designed for both live and asynchronous conversations.

Zulip is built by a distributed community of developers from all around the world, with 99+ people who have each contributed 100+ commits. With over 1,500 contributors merging over 500 commits a month, Zulip is the largest and fastest growing open source team chat project.

Come find us on the development community chat!

GitHub Actions build status coverage status Mypy coverage Ruff code style: prettier GitHub release docs Zulip chat Bluesky GitHub Sponsors

Getting started

  • Contributing code. Check out our guide for new contributors to get started. We have invested in making Zulips code highly readable, thoughtfully tested, and easy to modify. Beyond that, we have written an extraordinary 185K words of documentation for Zulip contributors.

  • Contributing non-code. Report an issue, translate Zulip into your language, or give us feedback. We'd love to hear from you, whether you've been using Zulip for years, or are just trying it out for the first time.

  • Checking Zulip out. The best way to see Zulip in action is to drop by the Zulip development community (no account required). We also recommend reading about Zulip's unique approach to organizing conversations.

  • Running a Zulip server. Self-host Zulip directly on Ubuntu or Debian Linux, in Docker, or with prebuilt images for Digital Ocean and Render. Learn more about self-hosting Zulip.

  • Using Zulip without setting up a server. Learn about Zulip Cloud hosting options. Zulip sponsors free Zulip Cloud Standard for hundreds of worthy organizations, including fellow open-source projects.

  • Participating in outreach programs like Google Summer of Code.

  • Supporting Zulip. Learn about all the ways you can support Zulip, including contributing financially, and helping others discover it.

You may also be interested in reading our blog, and following us on LinkedIn, Mastodon, and X.

Zulip is distributed under the Apache 2.0 license.