All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Linear issue links in chat responses now render as a rich card-style UI showing the Linear logo, issue identifier, and title instead of plain hyperlinks. #1060
- Added
reasoningEffortconfiguration option for the Azure OpenAI provider. #1101 - Added
reasoningSummaryconfiguration option for the OpenAI and Azure OpenAI providers. #1102 - Added per-model
temperatureconfiguration option for all language model providers. #1103
- Links in Ask Sourcebot chat responses now open in a new tab with a subtle external link icon indicator. #1059
- Removed
/~from the root of most app URLs. #1076 - Deprecated
SOURCEBOT_CHAT_MODEL_TEMPERATUREenvironment variable in favor of per-modeltemperatureconfig. It no longer defaults to0.3; if unset and no per-model temperature is configured, temperature is not sent to the API. #1103
- Fixed "TypeError: pathRegexp is not a function" type error in the worker. #1093
- Added
GET /api/commitendpoint for retrieving details about a single commit, including parent commit SHAs #1077
- Replaced placeholder avatars with deterministic minidenticon-based avatars generated from email addresses #1072
- Changed
author_nameandauthor_emailfields toauthorNameandauthorEmailinGET /api/commitsresponse #1077 - Changed
oldPathandnewPathinGET /api/diffresponse from"/dev/null"tonullfor added/deleted files #1077 - Bumped
simple-gitto3.33.0. #1078
- Added
GET /api/diffendpoint for retrieving structured diffs between two git refs #1063
- Fixed
GET /api/mcphanging with zero bytes by returning405 Method Not Allowedper the MCP Streamable HTTP spec #1064 - Fixed tokens with trailing newlines breaking git clone URLs by adding
.trim()ingetTokenFromConfig()#1067
- Removed "general" settings page with options to change organization name and domain. #1065
- Changed the analytics and license settings pages to only be viewable by organization owners. #1065
- Added support for
.gitattributeslinguist-languageoverrides in the file viewer (#1048) - Added Basic language syntax highlighting in the file viewer (#1054)
- Fixed Ask GitHub landing page chat box placement to be centered on the page instead of at the bottom. #1046
- Fixed issue where local git connections (
file://) would fail when matching a file instead of a directory. #1049 - Fixed regex queries containing parentheses (e.g.
(test|render)<) being incorrectly split into multiple search terms instead of treated as a single regex pattern. #1050
- Fixed line numbers being selectable in Safari in the lightweight code highlighter. #1037
- Fixed GitLab sync deleting repos when the API returns a non-404 error (e.g. 500) during group/user/project fetch. #1039
- Fixed React hydration mismatch in
KeyboardShortcutHintcaused by platform detection running at module load time during SSR. #1041 - Fixed rendering performance for ask threads, especially when hovering or selecting citations. #1042
- Added optional copy button to the lightweight code highlighter (
isCopyButtonVisibleprop), shown on hover. #1037
- Fixed scroll position when selecting chat references that point to lines further down in a file. #1036
- Changed language detection to resolve file extensions with multiple language resolutions (e.g., .md) to the most common resolution. #1026
- Changed the
webUrlproperty of the/api/reposapi to return a URL rather than just a path. #1014 - Changed the ask search scope selector to allow submitting questions with no search scope selected. When no selection is made, the agent will be able to search over all repos the user has access to. #1014
- Renamed the
search_codetool togrepfor ask and mcp. #1014 - Improved auto-scroll behavior in the ask chat thread. #1031
- Added
glob,find_symbol_definitions, andfind_symbol_referencestools to the ask agent and MCP server. #1014 - Added
list_treetool to the ask agent. #1014 - Added input & output token breakdown in ask details card. #1014
- Added
pathparameter to the/api/commitsapi to allow filtering commits by paths. #1014 - Search contexts now support topic-based filtering with new
includeTopicsandexcludeTopicsfields, enabling repository filtering by GitHub/GitLab topics with glob pattern support and case-insensitive matching.#1028
- Fixed issue where ask responses would sometimes appear in the details panel while generating. #1014
- Fixed reference panel overflow issue in the ask UI. #1014
- Fixed homepage scrolling issue in the ask UI. #1014
- Fixed UI freeze when the
greptool returns a large number of results withgroupByRepo=true. #1032 - Fixed issue where the search scope selection persisted after a new thread is created. #1033
- Fixed inaccurate scroll position when selecting a chat reference in the ask UI. #1035
- Updated JumpCloud SSO documentation to clarify token endpoint authentication method requirement and AUTH_SECRET configuration. #1022
- The
ask_codebaseMCP tool is now hidden when no language model providers are configured. #1018
- Increased
SOURCEBOT_CHAT_MAX_STEP_COUNTdefault from 20 to 100 to allow agents to perform more autonomous steps. #1017 - [EE] Fix error with Jumpcloud SSO state param #1020
- Added read-only annotations to MCP tools for compatibility with Cursor Ask mode and other MCP clients that restrict tool usage based on behavior hints. #1013
- Added support for connecting to Redis over TLS via
REDIS_TLS_ENABLEDand related environment variables. #1011
filterByFilepathsin the MCPsearch_codetool now accepts regular expressions matched against the full file path, instead of treating values as escaped literals. #1008
- Connection sync job failures now log the actual error reason instead of a generic message. #1012
- Added AGENTS.md with Cursor Cloud development environment instructions. #1001
- Added support for configuring SMTP via individual environment variables (SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD) as an alternative to SMTP_CONNECTION_URL. #1002
- Added
DISABLE_API_KEY_CREATION_FOR_NON_OWNER_USERSandDISABLE_API_KEY_USAGE_FOR_NON_OWNER_USERSenvironment variables to restrict API key creation and usage to organization owners. #1007
- Deprecated
EXPERIMENT_DISABLE_API_KEY_CREATION_FOR_NON_ADMIN_USERSin favour ofDISABLE_API_KEY_CREATION_FOR_NON_OWNER_USERS. The old variable will continue to work as a fallback. #1007
- Made OSS license audit runnable locally #1021
- Added generated OpenAPI documentation for the public search, repo, and file browsing API surface. #996
- Added OSS license audit github action. #1003
- [EE] Fixed account-driven permission sync silently wiping all Bitbucket Server repository permissions when the OAuth token expires on instances with anonymous access enabled. #998
- [EE] Fixed Bitbucket Server repos being incorrectly treated as public in Sourcebot when the instance-level
feature.public.accessflag is disabled but per-repo public flags were not reset. #999 - [EE] Fixed account-driven permission sync jobs failing when OAuth tokens expire between user visits by moving token refresh into the backend sync flow. #1000
- [EE] Added JumpCloud as an identity provider for SSO authentication. #997
- Require explicit invocation of ask_codebase tool in MCP #995
- Gate MCP API behind authentication when Ask GitHub is enabled. #994
- [EE] Added multi-owner support with promote/demote actions. #988
- [EE] Added
PERMISSION_SYNC_REPO_DRIVEN_ENABLEDenvironment variable to enable/disable repo-driven permission syncing. #989 - [EE] Added
enforcePermissionsper-connection flag to control whether repository permissions are enforced for a given connection. Defaults to the value ofPERMISSION_SYNC_ENABLED. #991 - [EE] Added
repoDrivenPermissionSyncIntervalMsanduserDrivenPermissionSyncIntervalMsconfig settings, deprecating theexperiment_prefixed variants (still respected as fallbacks). #991 - [EE] Added
enforcePermissionsForPublicReposper-connection flag to restrict public repository visibility to users with a linked account for that connection's code host. #993
- [EE] Promoted
PERMISSION_SYNC_ENABLEDas the canonical env var for enabling permission syncing, deprecatingEXPERIMENT_EE_PERMISSION_SYNC_ENABLED(still respected as a fallback). #991
- [EE] Handle duplicate
resourcequery parameters in the OAuth authorization endpoint. #987
- [EE] Avoid advertising OAuth support on MCP endpoints if that entitlement is not actually configured. #985
- Fixed issue where users would not be redirected to the homepage when clicking "continue with guest". #984
- Increased pagination limit to 1000 for bitbucket data center requests. #981
- Added MCP and API key usage tracking to analytics dashboard and added audit retention system #950
- Added support a MCP streamable http transport hosted at
/api/mcp. #976 - [EE] Added support for Oauth 2.1 to the remote MCP server hosted at
/api/mcp. #977
- Upgraded Vercel AI SDK from v5 to v6. #969
- Added support for using bearer tokens with anthropic. #967
- Updated to Next.JS 16. #970
- Preserve regex and case sensitivity query parameters when loading more search results. #972
- Fixed page navigation failing after Next.js 16 upgrade by removing
router.refresh()calls immediately followingrouter.push(). #974 - Add filesystem-first GC scan to remove orphaned repo directories and index shards that have no corresponding database record. #973
- Bumped
tarto7.5.9. #953 - Bumped
@isaacs/brace-expansionto5.0.1. #952 - Bumped
qstransitive dependency to^6.14.2via yarn resolutions. #954 - Bumped
@aws-sdk/credential-providersto^3.1000.0. #955 - Bumped
rolluptransitive dependency to^4.59.0via yarn resolutions. #956 - Bumped
nextto15.5.10. #960 - Bumped
nodemailerto7.0.11. #959 - Bumped
globtransitive dependency to^10.5.0via scoped yarn resolutions. #962 - Bumped
@react-email/preview-serverto5.2.8. #961
- Validate
refandpathinputs in git API routes to reject values that could affect git command behavior. #965
- Added pagination and UTC time range filtering to the audit GET endpoint. #949
- Added AI Search Assist — describe what you're looking for in natural language and AI will generate a code search query for you. #951
- Fixed search query parser rejecting parenthesized regex alternation in filter values (e.g.
file:(test|spec),-file:(test|spec)). #946 - Fixed
content:filter ignoring the regex toggle. #947
- Added Bitbucket Cloud SSO & Permission syncing support. #924 #925
- Added Bitbucket Data Center SSO & Permission syncing support. #934 #938
- Added PostHog events for chat UI interactions (details card expand/collapse, copy answer, table of contents toggle). #922
- Added
wa_user_createdPostHog event fired on successful user sign-up. #933 - Added
wa_askgh_login_wall_promptedPostHog event fired when an unauthenticated user attempts to ask a question on Ask GitHub. #933 - Added login wall when anonymous users try to send messages on duplicated chats (askgh experiment). #939
- Added
GET /api/ee/userendpoint that returns the authenticated owner's user info (name, email, createdAt, updatedAt). #940 - Added
selectedReposCountto thewa_chat_message_sentPostHog event to track the number of selected repositories when users ask questions. #941 - Added ability to re-sync repo permissions from the "linked accounts" settings page. #945
- Hide version upgrade toast for askgithub deployment (
EXPERIMENT_ASK_GH_ENABLED). #931 - Hide security notice on login and signup pages when
EXPERIMENT_ASK_GH_ENABLEDis enabled. #943
- Fixed text inside angle brackets (e.g.,
<id>) being hidden in chat prompt display due to HTML parsing. #929 #932 - Fixed permission sync banner flashing on initial page load. #942
- Fixed issue where the permission sync banner would sometimes not appear until the page was refreshed. #942
- Skip redundant dev build when production release commits are pushed to main. #919
- Bumped zoekt version. #921
- Added GitHub workflow to automatically tag Linear issues with the release version when a new release is published. #917
- Added optional
gitUserfield to the Bitbucket connection config to support Bitbucket Cloud API tokens, which require an email address for the REST API but an Atlassian username for git clone. #918
- Skip calling
getCommitHashForRefNamefor empty repositories to avoid noisy debug log output. #914 - Fixed "Open in GitLab" links having a double slash when the GitLab host URL is configured with a trailing slash. #915
- Fixed
og:imageURL resolving tolocalhostinstead of the public domain when the app is deployed behind a reverse proxy. #908 - Fixed search bar not taking the full width on the search results and browse pages. #909
- Added max height to the chat input box so it scrolls instead of expanding unboundedly when a large blob of text is pasted. #913
- Changed the "Open in" button copy to distinguish between Bitbucket serve & cloud. #910
Alt+Enter(Option+Enter on Mac) now inserts a newline in the chat input instead of submitting. #912
- Fixed issue where chat threads created via the
/api/chat/blockingendpoint would not have any messages when called without authentication. #907
- Added
chatIdto all chat related posthog events. #907
- Fixed Bitbucket Server and Cloud repo identifiers to include the project key, preventing collisions across projects. Note: Bitbucket Cloud users with
exclude.repospatterns must update them fromworkspace/repotoworkspace/PROJECT_KEY/repoformat. #904
- Added optional
visibilityparameter to/api/chat/blockingendpoint and MCPask_codebasetool to allow controlling chat session visibility in shared environments. #903 - Added
defaultBranch,isFork, andisArchivedfields to the/api/reposendpoint response and MCPlist_repostool. #905
- Replaced
backend_repo_index_job_completedPostHog event withbackend_repo_first_indexed, which fires only on the first successful index of a repo. #900
- Fixed startup env override parsing to ignore STDERR output, preventing Node warnings from breaking eval processing. #902
- Added chat duplication to create copies of existing chats. #888
- Added Open Graph metadata and image generation for shared chat links. #888
- [EE] Added chat sharing with specific users, allowing chat owners to invite org members to view private chats. #888
- Changed chat permissions model from read-only flag to ownership-based access control. #888
- Improved anonymous chat experience: anonymous users can now create chats and claim them upon signing in. #888
- Fixed issue where local repos with URL-encoded spaces in remote URLs would fail to load tree preview and index correctly. #899
- Added PostHog events for repo index job success/failure and code host type to connection sync events. #878
- Added
install_idto PostHog event properties. #880
- Changed the me-control to render the user's avatar in the top-bar. #874
- Moved the "current version" indicator into the "what's new" dropdown. #874
- Updated
posthog-nodeto ^5.24.15 andposthog-jsto ^1.345.5. #881
- Fixed issue where "Open in Bitbucket" and commit links for Bitbucket Server repos had an extra
/browsein the URL. #877 - Fixed slow repo indexing scheduling query by adding database indexes. #883
- Removed the Discord and GitHub buttons from the top corner. #874
- Changed the settings dropdown to display the commit SHA on which the deployment was built against. #868
- Fixed issue where anonymous access on a Sourcebot instance with a unlimited seat license and anonymous access enabled would result in a "not authenticated" message being displayed. #866
- Fixed issue where session links generated for a
ask_codebasemcp call would not be accessible to unauthed users. #873
- Added support to set "Require approval for new members" via config with (
REQUIRE_APPROVAL_NEW_MEMBERS). #858
- Improved stability for connection and repo indexing workers. #860
- Fixed issue where certain file and folder names would cause type errors. #862
- Fixed token refresh error "Provider config not found or invalid for: x" when a sso is configured using deprecated env vars. #841
- Fixed issue where temporary shard files created on index failure were not being cleaned up. #805
- [EE] Fixed issue where internal GitLab projects were not visible in Sourcebot when permission syncing is enabled. #857
- [EE] Added notification banner when an account's permissions are being synced for the first time. #852
- Fixed issue where the branch filter in the repos detail page would not return any results. #851
- Fixed issue where 5xx http errors would not be retried. #855
- Changed the queuing behaviour for permission syncing to prioritize newly created accounts & repos. #856
- Changed auth behaviour to store OAuth tokens, refresh tokens, and id tokens encrypted at rest in the database. #853
- Changed refresh token behaviour to source provider tokens from the DB rather than storing them in the JWT token. #853
- Fixed issue where opening GitLab file links would result in a 404. #846
- Fixed issue where file references in copied chat answers were relative paths instead of full browse URLs. #847
- [EE] Fixed issue where account driven permission syncing would fail when attempting to authenticate with a GitHub App user token. #850
- [EE] Added
AUTH_EE_ALLOW_EMAIL_ACCOUNT_LINKINGenv var that, when enabled, will automatically link SSO accounts with the same email address. #849
- Fixed issue where external links would use internal service DNS names in k8s deployments, making them inaccessible. #844
- Added
listCommitstool to Ask agent. #843
- Added
maxAccountPermissionSyncJobConcurrencyandmaxRepoPermissionSyncJobConcurrencysettings to configure concurrency for permission sync jobs (default: 8). #840
- Added
/api/chat/blockingendpoint that creates a blocking Ask thread, used by the MCP server. #814 - Added
/api/modelsendpoint to list configured language models. #814 - Added additional telemetry for api requests. #835
- Fixed issue where files with a comma would not render correctly in file tree. #831
- Changed
/api/sourceapi to support fetching source code for any revision, not just revisions that are indexed by zoekt. #829 - Adjusted prompts and tools for Ask agent. #814
- Fixed issue where searching for refs/heads/<default_branch> would return no matches. #809
- Fixed issue where source files would fail to load in the search preview panel and ask client. #812
- Fixed loadConfig import in resolveEnvOverrides #802
- Added ask sidebar to homepage. #721
- Added endpoint for searching commit history for a git repository. #625
- Added
pushedAtfield to the Repo table to track when a repository last was committed to across all branches. #790 - Added offset pagination to the
/api/reposendpoint. #795 - Added offset pagination to the
/api/commitsendpoint. #795
- Added commit graph generation to improve performance for commit traversal operations. #791
- Made the code search
lang:filter case insensitive. #795 - Changed the
/api/sourceendpoint from a POST request to a GET request. Repo, path, and ref are specified as query params. #795 - Changed the
/api/commitsendpoint from a POST request to a GET request. #795 - Renamed
webUrltoexternalWebUrlfor various apis. Moving forward,webUrlwill be used for URLs that point to Sourcebot, andexternalWebUrlwill be used for URLs that point to external code hosts. #795 - Renamed various fields on the
/api/sourceendpoint response body. #795
- Fixed issue where a file would fail to load when opening it from the /search view and it matched multiple branches. #797
- [EE] Fixed GitLab OAuth token refresh failures by including the required
redirect_uriparameter. #798
- Properly map all hotkeys in UI based on the platform #784
- Allow parenthesis in query and filter terms #788
- Fixed issue where Sourcebot would not index the new default branch when changed. #789
- Changed the UI to display the default branch name instead of HEAD where applicable. #789
- Added
isBranchFilteringEnabledflag tosearch_finishedPostHog event. #781
- Fixed reference guide key hint for PC #782
- Fixed an issue where the value for ALWAYS_INDEX_FILE_PATTERNS env var wasn't being parsed correctly #773
- Fixed "The data directory was initialized by PostgreSQL version 16, which is not compatible with this version 18.1" error when using the embedded database and upgrading to v14.10.13. #770
- Fixed hardcoded localhost URLs in org URL and invite links by using AUTH_URL as fallback. #764
- Fix autocomplete when repo includes default port #762
- Fixed "Repository not found for file: x" error when searching in orphaned shards. #761
- Added dialog when no authentication provider is configured. #744
- Fixed "Invalid line number XXX in 21-line document" error when a invalid highlight range is passed to the file viewer. #745
- Fixed visual nit where ask sb search scope selector would render long repository names poorly. #747
- Fixed visual nit where long search previews in ask sb would take up a lot of space. #747
- Fixed issue where the last search results was getting clipped for searches that exceed the viewport height. #749
- Fixed issue with filtering on generic git repo indexed from http/https #742
- Fixed auth error when trying to sync public gitlab.com project with no token #748
- Fixed "Ranges must be added sorted by
fromposition andstartSide" error when browsing certain files. #743
- [EE] Add Ask chat usage metrics to analytics dashboard #736
- Improved initial file tree load times, especially for larger repositories. #739
- Remove references to demo from docs. #734
- Add docs for GitHub App connection auth. #735
- Improved error messaging around oauth scope errors with user driven permission syncing. #639
- Fixed issue where 403 errors were being raised during a user driven permission sync against a self-hosted code host. #729
- Fixed "ambiguous argument 'HEAD^{commit}': unknown revision or path not in the working tree" error for blank repositories. #733
- Fixed issue where folders containing files with non-ASCII characters in their paths would appear duplicated in the file tree. #726
- Changed the default
/repospagination size to 20. #706 - Changed pull policy in docker compose file to always. #716
- Added Trigger Sync to /repos dropdown menu #710
- Add warning logs when local repo index fails to match pattern. #712
- Fixed issue with text direction issues with special characters in filter panel. #474
- Fixed auto-suggestion dropdown breaking queries with whitespace in repository names. Repository names containing spaces are now properly wrapped in quotes. #705
- Fixed repository images not loading when anonymous access is disabled. #703
- Enable browser assisted autofill for username and password.#696
- Bake Sourcebot version into code rather than relying on build arg. #680
- Fix issue with
/repospage pagination. #689 - Add better logs for gitlab config sync fails. #692
- Fixed issue where parenthesis in query params were not being encoded, resulting in a poor experience when embedding links in Markdown. #674
- Gitlab clone respects host protocol setting in environment variable. #676
- Fixed performance issues with
/repospage. #677
- Fixed review agent so that it works with GHES instances #611
- Updated next package version to fix CVE-2025-55184 and CVE-2025-55183. #673
- Added support for arbitrary user IDs required for OpenShift. #658
- Improved error messages in file source api. #665
- Fixed issue where the disable telemetry flag was not being respected for web server telemetry. #657
- Added
ALWAYS_INDEX_FILE_PATTERNSenvironment variable to allow specifying a comma seperated list of glob patterns matching file paths that should always be indexed, regardless of size or # of trigrams. #631 - Added button to explore menu to toggle cross-repository search. #647
- Added server side telemetry for search metrics. #652
- Fixed issue where single quotes could not be used in search queries. #629
- Fixed issue where files with special characters would fail to load. #636
- Fixed Ask performance issues. #632
- Fixed regression where creating a new Ask thread when unauthenticated would result in a 404. #641
- Updated react and next package versions to fix CVE 2025-55182. #654
- Changed the default behaviour for code nav to scope references & definitions search to the current repository. #647
- Added support for streaming code search results. #623
- Added buttons to toggle case sensitivity and regex patterns. #623
- Added counts to members, requets, and invites tabs in the members settings. #621
- [Sourcebot EE] Add support for Authentik as a identity provider. #627
- Changed the default search behaviour to match patterns as substrings and not regular expressions. Regular expressions can be used by toggling the regex button in search bar. #623
- Renamed
publicquery prefix tovisibility. Allowed values forvisibilityarepublic,private, andany. #623 - Changed
archivedquery prefix to accept valuesyes,no, andonly. #623 - Changed
langquery prefix to be case sensitive. #623
- Removed
casequery prefix. #623 - Removed
branchandbquery prefixes. Please userev:instead. #623 - Removed
regexquery prefix. #623
- Fixed spurious infinite loads with explore panel, file tree, and file search command. #617
- Wipe search context on init if entitlement no longer exists #618
- Fixed Bitbucket repository exclusions not supporting glob patterns. #620
- Fixed issue where the repo driven permission syncer was attempting to sync public repositories. #624
- Fixed issue where worker would not shutdown while a permission sync job (repo or user) was in progress. #624
- Bumped the default requested search result count from 5k to 10k after optimization pass. #615
- Fixed incorrect shutdown of PostHog SDK in the worker. #609
- Fixed race condition in job schedulers. #607
- Fixed connection sync jobs getting stuck in pending or in progress after restarting the worker. #612
- Fixed issue where connections would always sync on startup, regardless if they changed or not. #613
- Fixed performance bottleneck in search api. Result is a order of magnitutde improvement to average search time according to benchmarks. #615
- Added force resync buttons for connections and repositories. #610
- Added environment variable to configure default search result count. #616
- Added support for running Sourcebot as non-root user. #599
- [Experimental][Sourcebot EE] Added GitLab permission syncing. #585
- [Sourcebot EE] Added external identity provider config and support for multiple accounts. #595
- Added ability to configure environment variables from the config. #597
- [ask sb] Fixed issue where reasoning tokens would appear in
textcontent for openai compatible models. #582 - Fixed issue with GitHub app token tracking and refreshing. #583
- Fixed "The account is already associated with another user" errors with GitLab oauth provider. #584
- Fixed error when viewing a generic git connection in
/settings/connections. #588 - Fixed issue with an unbounded
Promise.allSettled(...)when retrieving details from the GitHub API about a large number of repositories (or orgs or users). #591 - Fixed resource exhaustion (EAGAIN errors) when syncing generic-git-host connections with thousands of repositories. #593
- Removed built-in secret manager. #592
- Changed internal representation of how repo permissions are represented in the database. #600
- Fixed commit and branch hyperlinks not rendering for Gerrit repos. #581
- Fixed visual bug when a repository does not have a image. #581
- Fixed issue where the Ask homepage was not scrollable. #581
- Implement dynamic tab titles for files and folders in browse tab. #560
- Added support for passing db connection url as seperate
DATABASE_HOST,DATABASE_USERNAME,DATABASE_PASSWORD,DATABASE_NAME, andDATABASE_ARGSenv vars. #545 - Added support for GitHub Apps for service auth. #570
- Added prometheus metrics for repo index manager. #571
- Added experimental environment variable to disable API key creation for non-admin users. #577
- [Experimental][Sourcebot EE] Added REST API to get users and delete a user. #578
- Fixed "dubious ownership" errors when cloning / fetching repos. #553
- Fixed issue with Ask Sourcebot tutorial re-appearing after restarting the browser. #563
- Fixed
repoIndexTimeoutMsnot being used for index job timeouts. #567
- Improved search performance for unbounded search queries. #555
- Improved homepage performance by removing client side polling. #563
- Changed navbar indexing indicator to only report progress for first time indexing jobs. #563
- Improved repo indexing job stability and robustness. #563
- Improved repositories table. #572
- Improved connections table. #579
- Manually pass auth token for ado server deployments. #543
- Fix support email. #529
- [Experimental][Sourcebot EE] Added permission syncing repository Access Control Lists (ACLs) between Sourcebot and GitHub. #508
- Improved repository query performance by adding db indices. #526
- Improved repository query performance by removing JOIN on
Connectiontable. #527 - Changed repo carousel and repo list links to redirect to the file browser. #528
- Changed file headers, files/directories in file tree, and reference list buttons into links. #532
- Added fallback to default the Node.JS AWS SDK's
fromNodeProviderChainwhen no credentials are provided for a bedrock config. #513 - Added support for Azure Devops support. #514
- Fixed "At least one project, user, or group must be specified" for GitLab configs with
allin web configurator. #512 - Fixed zoekt indexing failing with pipe in branch/tag names #506
- Removed deprecated connection creation/edit UI #515
- Fixed Bitbucket Cloud pagination not working beyond first page. #295
- Fixed search bar line wrapping. #501
- Fixed carousel perf issues. #507
- Added
exclude.userOwnedProjectssetting to GitLab configs. #498
- Fixed "couldn't find remote ref HEAD" errors when re-indexing certain repositories. #497
- Disable page scroll when using arrow keys on search suggestions box. #493
- Added support for specifying query params for openai compatible language models. #490
- Fix issue where zoekt was failing to index repositories due to
HEADpointing to a branch that does not exist. #488
- Remove setting
remote.origin.urlfor remote git repositories. #483 - Fix error when navigating to paths with percentage symbols. #485
- Updated NextJS to version 15. #477
- Add
sessionTokenas optional Bedrock configuration parameter. #478
- Added multi-branch indexing support for Gerrit. #433
- [ask sb] Added
reasoningEffortoption to OpenAI provider. #446 - [ask db] Added
headersoption to all providers. #449
- Removed prefix from structured log output. #443
- [ask sb] Fixed long generation times for first message in a chat thread. #447
- Bumped AI SDK and associated packages version. #444
- Fixed issue where
usersspecified in a GitHub config were not getting picked up when atokenis also specified. #428
- [ask sb] Added OpenAI Compatible Language Provider. #424
- Bumped AI SDK and associated packages version. #417
- [ask sb] Fixed "413 content too large" error when starting a new chat with many repos selected. #416
- [ask sb] PostHog telemetry for chat thread creation. #418
- Add search context to ask sourcebot context selector. #397
- Add ability to include/exclude connection in search context. #399
- Search context refactor to search scope and demo card UI changes. #405
- Add GitHub star toast. #409
- Added a onboarding modal when first visiting the homepage when
askmode is selected. #408 - [ask sb] Added
searchReposToolandlistAllReposTool. #400
- Fixed multiple writes race condition on config file watcher. #398
- Bumped AI SDK and associated packages version. #404
- Bumped form-data package version. #407
- Bumped next version. #406
- [ask sb] Improved search code tool with filter options. #400
- [ask sb] Removed search scope constraint. #400
- Update README with new features and videos. #410
- [ask sb] Add back search scope requirement and other UI changes. #411
- Introducing Ask Sourcebot - ask natural langauge about your codebase. Get back comprehensive Markdown responses with inline citations back to the code. Bring your own LLM api key. #392
- Fixed onboarding infinite loop when GCP IAP Auth is enabled. #381
- Relicense core to FSL-1.1-ALv2. #388
- Added
GITLAB_CLIENT_QUERY_TIMEOUT_SECONDSenv var to configure the GitLab client's query timeout. #390
- Fixed typos in UI, docs, code #369
- Add anonymous access option to core and deprecate the
enablePublicAccessconfig setting. #385
- Revamped onboarding experience. #376
- Fixed issue with external source code links being broken for paths with spaces. #364
- Makes base retry indexing configuration configurable and move from a default of
5sto60s. #377 - Fixed issue where files would sometimes never load in the code browser. #365
- Fixed issue where invites appeared to be created successfully, but were not actually being created in the database. #359
- Audit logging is now enabled by default. #358
- Added audit logging. #355
- Delete account join request when redeeming an invite. #352
- Fix issue where a repository would not be included in a search context if the context was created before the repository. #354
- Changed search api (and all apis that depend on it) to return raw source code instead of base64 encoded string. (356).
- Changed repository link in search to file tree + move external link to code host logo. #340
- Added a basic file search dialog when browsing a repository. #341
- Text highlighting clarity. #342
- Fixed repo list column header styling. #344
- Clean up successful and failed jobs in Redis queues. #343
- Fixed issue with files occasionally not loading after moving the cursor rapidly over the file browser. #346
- Added seperate page for signup. #311
- Fix repo images in authed instance case and add manifest json. #332
- Added encryption logic for license keys. #335
- Added hover tooltip for long repo names in filter panel. #338
- Added repo shard validation on startup. #339
- Added support for a file explorer when browsing files. #336
- Added copy button for filenames. #328
- Added development docker compose file. #328
- Added keyboard shortcuts for find all refs / go to def. #329
- Added GCP IAP JIT provisioning. #330
- Fixed issue with the symbol hover popover clipping at the top of the page. #326
- Fixed slow rendering issue with large reference/definition lists. #327
- Added structured logging support. #323
- Fixed issue where new oauth providers weren't being display in the login page. commit
- Fixed client side "mark decorations may not be empty" error when viewing certain files. #325
- Fixed issue where the symbol hover popover would not appear for large source files. #325
- Fixed issue with how entitlements are resolved for cloud. #319
Sourcebot V4 introduces authentication, performance improvements and code navigation. Checkout the migration guide for information on upgrading your instance to v4.
- [Breaking Change] Authentication is now required by default. Notes:
- When setting up your instance, email / password login will be the default authentication provider.
- The first user that logs into the instance is given the
ownerrole. (docs). - Subsequent users can request to join the instance. The
ownercan approve / deny requests to join the instance viaSettings>Members>Pending Requests. - If a user is approved to join the instance, they are given the
memberrole. - Additional login providers, including email links and SSO, can be configured with additional environment variables. (docs).
- Clicking on a search result now takes you to the
/browseview. Files can still be previewed by clicking the "Preview" button or holdingCmd/Ctrlwhen clicking on a search result. #315
- [Sourcebot EE] Added search-based code navigation, allowing you to jump between symbol definition and references when viewing source files. Read the documentation. #315
- Added collapsible filter panel. #315
- Added Sourcebot API key management for external clients. #311
- Improved scroll performance for large numbers of search results. #315
- Added support for indexing generic git hosts given a remote clone url or local path. #307
- Fixed issue with repos appearing in the carousel when they fail indexing for the first time. #305
- Align gitea clone_url with gitea host url #303
- Added better error handling to git operations
- Fixes bug with repos not being visible in the homepage carousel when re-indexing. #294
- Added special
*value forrev:to allow searching across all branches. #281 - Added the Sourcebot Model Context Protocol (MCP) server in packages/mcp to allow LLMs to interface with Sourcebot. Checkout the npm package here. #292
- Added
exclude.readOnlyandexclude.hiddenoptions to Gerrit connection config. #280
- Fixes regression introduced in v3.1.0 that causes auth errors with GitHub. #288
- Changed the filter panel to embed the filter selection state in the query params. #276
- [Sourcebot EE] Added search contexts, user-defined groupings of repositories that help focus searches on specific areas of a codebase. #273
- Added support for Bitbucket Cloud and Bitbucket Data Center connections. #275
- Fix issue with gerrit gitiles web urls not being correctly formatted
- Prevent database in container from being initialized and started if we're using an external database #267
- Add additional logging for repo and connection syncing, and display proper names instead of ids
- Change connection manager upsert timeout to 5 minutes
- Fix issue with repo display names being poorly formatted, especially for gerrit. (#259)
- Added config setting
resyncConnectionIntervalMsto control how often a connection should be re-synced. (#260)
- Fix issue with match highlighting not appearing when first clicking on a search result. (#255)
Sourcebot v3 is here and brings a number of structural changes to the tool's foundation, including a SQL database, parallelized indexing, authentication support, multitenancy, and more. Checkout the migration guide for information on upgrading your instance to v3.
- [Breaking Change] Changed the config schema such that connection objects are specified in the
connectionmap, instead of thereposarray. See migration guide. - Updated the tool's color-palette in dark mode.
- Added parallelized repo indexing and connection syncing via Redis & BullMQ. See the architecture overview.
- Added repo indexing progress indicators in the navbar.
- Added authentication support via OAuth or email/password. For instructions on enabling, see this doc.
- Added the following UI for managing your deployment when auth is enabled:
- connection management: create and manage your JSON configs via a integrated web-editor.
- secrets: import personal access tokens (PAT) into Sourcebot (AES-256 encrypted). Reference secrets in your connection config by name.
- team & invite management: invite users to your instance to give them access. Configure team roles & permissions.
- Added multi-tenancy support. See this doc.
- [Breaking Change] Removed
db.jsonin favour of a Postgres database for transactional workloads. See the architecture overview. - [Breaking Change] Removed local folder & arbitrary .git repo support. If your deployment depended on these features, please open a issue and let us know.
- [Breaking Chnage] Removed ability to specify a
tokenas a string literal from the schema. - [Breaking Change] Removed support for
DOMAIN_SUB_PATHconfiguration.
- Fixed bug where Sourcebot Cloud card was shown to self-hosted users
- Made syntax reference guide keyboard shortcut hints clickable. (#229)
- Remove
repo_syncedtelemetry event.
- Added
maxTrigramCountto the config to control the maximum allowable of trigrams per document.
- Fixed issue with version upgrade toast not appearing without a hard refresh. (#179)
- Added a syntax reference guide. The guide can be opened using the hotkey "Cmd + /" ("Ctrl + /" on Windows). (#169)
- Fixed issue where we crash on startup if the install / upgrade PostHog event fails to send. (#159)
- Fixed issue with broken file links. (#161)
- Added support for creating share links to snippets of code. (#149)
- Added support for indexing raw remote git repository. (#152)
- Added config option
settings.reindexIntervalandsettings.resyncIntervalto control how often the index should be re-indexed and re-synced. (#134) - Added
exclude.sizeto the GitHub config to allow excluding repositories by size. (#137)
- Fixed issue where config synchronization was failing entirely when a single api call fails. (#142)
- Fixed 'directory not found' error in certain scenarios when deleting a repository. (#136)
- Added config support for filtering GitLab & GitHub repositories by topic. (#121)
- Added additional language syntax support. (#125)
- Added additional language icon support. (#129)
- Made language suggestions case insensitive. (#124)
- Stale repositories are now automatically deleted from the index. This can be configured via
settings.autoDeleteStaleReposin the config. (#128)
- Added config option
settings.maxFileSizeto control the maximum file size zoekt will index. (#118)
- Fixed syntax highlighting for zoekt query language. (#115)
- Fixed issue with Gerrit repo fetching not paginating. (#114)
- Fixed visual issues with filter panel. (#105)
- Gerrit support. (#104)
- Added search history to the search bar. (#99)
- Added symbol suggestions as suggestion type. (#98)
- Fixed issue where incorrect repository icons were shown occasionally in the filter panel. (#95)
- Fixed homepage links not resolving correctly when DOMAIN_SUB_PATH is set. (#96)
- Added file suggestions as a suggestion type. (#88)
- Added icon and link support for self-hosted repositories. (#93)
- Changed how PostHog telemetry key is passed into the docker image. (#92)
- Added search suggestions to the search bar. (#85)
- Added
DOMAIN_SUB_PATHenvironment variable to allow overriding the default domain subpath. (#74) - Added option
allto the GitLab index schema, allowing for indexing all projects in a self-hosted GitLab instance. (#84)
- Bumped NodeJS version to v20. (#78)
- Added support for syntax highlighting in the search bar. (#66)
- Changed the
exclude.repoproperty to support glob patterns. (#70)
- Added additional telemetry events. (#63)
- Added support for indexing and searching repositories across multiple revisions (tag or branch). (#58)
- Local directory indexing support. (#56)
- Added filtering panel for filtering results by repository and by language. (#48)
- Fixed issue with GitLab sub-projects not being included recursively. (#54)
- Fixed slow rendering performance when rendering a large number of results. (#52)
- Fixed issue with either
star_countorfork_countnot being included in the GitLab api response. (#55)
- Fixed issue with GitLab projects that are not owned but still visible by the provided
tokennot being synchronized. (#51)
- Gitea support (#45)
- Added a toast notification when a new Sourcebot version is available (#44)
- Added support for specifying urls for the
--configPathoption in the backend.
- [Breaking Change] Added index schema v2. This new schema brings many quality of life features like clearer syntax, ability to specify individual
repos,projects,groups, andorgs, and the ability to easilyexcluderepositories. - Added a
SOURCEBOT_VERSIONbuild argument to the Docker image. (#41) - Added the
sourcebot_versionproperty to all PostHog events for versioned telemetry. (#41
- Fixed issue with unicode characters not being displayed correctly (#38)
- Fixed issue with filtering by gitlab groups (#36)
- Added
GITLAB_HOSTNAMEandGITHUB_HOSTNAMEenvironment variables to allow overriding the default hostnames for GitLab and GitHub.
- Initial release