Every change in this repository lands with its tests in the same pull request, under a hard 100% line-coverage gate and every check main requires. That is an unusual bar for a project this size, and it means a merged pull request here is evidence about the person who wrote it, not only about the project.
So this is not a thank-you wall. Each entry links to the change itself, so a reader who does not know us can check the claim. If your name is here, the link is yours to use — a CV, a profile README, anywhere the question "what have you actually shipped" comes up.
Nothing here is counted. Not merged pull requests, not changed lines, not closed issues. A count sees how often somebody showed up and misses everything that matters about it: the care taken, the bug nobody else found, the answer written out for a stranger. So the rungs below are judgements rather than totals, and where one is not obvious the reason is written beside the name — CONTRIBUTING.md says what each rung means.
Everyone whose work is in main is here, maintainers included. Bots and coding agents are not — dependabot, Copilot and claude all appear in the repository's commit history and none of them is a person, so listing them beside people would blur the only thing this page is for. git shortlog -sn shows the whole history including theirs. Accounts the organisation has blocked are not listed either.
Within each rung, people are in the order they first landed a change.
Every entry ends with a link to all of that person's merged pull requests, so it is never out of date. Where someone has landed more than two changes, the links above it are a sample.
The people who carry the project: the releases, the review, and the decisions nobody else can make. Their work is most of the history and is not itemised here; the links are a sample.
Organisation member. Wrote most of what is here.
Organisation member. The agent model record, and the distribution inventory.
- Ran ten models across every agent surface, 300 for 300
- Found two cloud marketplaces the inventory did not know about
Organisation member. The wire-compatible engines, and the first localized READMEs.
- Caught Trino handing back every bigint past 2^53 rounded
- Added the Simplified Chinese and Japanese READMEs
The first person outside the core team to send anything at all, on 2025-12-25, when there was no contributing guide, no labeled issue and no reason to believe anyone would answer. Being first is a different act from being second.
The light theme rests on the shared token layer he built, and the export path escapes every field because of the pass he did over it. Both were the kind of change that moves the floor under everything else rather than fixing one thing.
- Fixed the auth flow, middleware redirects and hooks cleanup
- Enforced the ESLint and TypeScript checks in CI, and fixed the component bugs they found
- Built a light theme through a shared token layer, and fixed four silent query-execution defects
- Escaped every field an export writes, and stopped a plan outliving its run
- All merged pull requests
Came the same day as the first, hours behind it, into the same empty repository. Two people decided this was worth their evening before there was anything here to promise them it would be.
Brought a fifth identity provider into the OIDC layer, and the branch he added is still what runs — src/lib/oidc.ts handles Zitadel's RP-initiated logout because of him. He arrived with the doc and the test in the same change, months before this repository wrote that down as a rule.
- Added Zitadel OIDC integration support
- Covered
OIDC_ROLE_CLAIMin the Zitadel logout URL test - All merged pull requests
Built out the admin section: the routes, the interactive UI around them, and the tests that hold it. He did it in one careful pass rather than leaving it half-finished for someone else.
First into the agent layer, which nobody outside the core team had opened, and he has stayed in it since: its drive ownership, its PostgreSQL grounding and the history of finished runs are all partly his. He started in the part nobody volunteers for, a run behaving correctly when something goes wrong.
- Enforced single-drive ownership in the agent, and refused post-close appends
- Aggregated the PostgreSQL grounding column read per table
- Kept the engine's own and extension-owned objects out of PostgreSQL agent grounding
- Added a History list of finished agent conversations, reopened from each run's own ledger
- All merged pull requests
Went wherever the work was: the login page, the admin fleet view, a license notice nobody had stated, and the provider docs whose citations had quietly rotted. Each one arrived finished, with the reasoning written down.
- Closed the login hero's overflow at 1280x800
- Stated elkjs's EPL-2.0 license alongside the MIT license
- Summed the fleet's own byte figure instead of re-parsing display strings
- Replaced the stale line-number citations in
oracle.mdwith named citations - Did the same for
mongodb.md - All merged pull requests
- Capped chart series and pie slices at the palette size instead of repeating colours
- Stopped two concurrent first requests building and initializing two storage providers
- All merged pull requests
- Normalized all text files to LF on checkout
- Matched the
.gitattributesrules as whole lines in the drift guard - All merged pull requests
- Re-anchored
mysql.md's thirteen code citations to declaration names, and put the file under the guard - Documented the bundled Node.js version, artefacts and origin in
SECURITY.md, and guarded it against drift - All merged pull requests
- Added the undocumented
DatabaseConnectionandQueryResultfields todocs/API_DOCS.md, and guarded four type blocks - All merged pull requests
- Replaced the
.ts:Ncitations inAGENT.md,FEATURES.md,ADDING_A_PROVIDER.mdandSECURITY.mdwith names - Told an absent MSSQL or Oracle overview size apart from a measured zero
- All merged pull requests
- Added the Spanish README, and registered it with the localized README drift guard
- Added the
libredb-studio-binAUR package - All merged pull requests
- Named
createDatabaseProvider()in seven provider docs, and stopped the guard passing on nothing - Made the create-table form emit each engine's own DDL rather than PostgreSQL's
- All merged pull requests
- Dropped five docs' references to a
getPlaceholder()the base class no longer has - Stopped four docs crediting
SQLBaseProviderwith placeholders that live invalues.ts - All merged pull requests
- Linked
measuredNullableAggregate()tomeasured-aggregate.tsfrom the MSSQL and Oracle docs - All merged pull requests
- Added the Helm and subchart-build steps a fresh clone needs before
bun run test - All merged pull requests
- Resolved two static
process.env[...]bracket shapes so the env docs guard sees them - Counted MySQL indexes per table, not by name alone, in Monitoring Overview
- All merged pull requests
- Made MySQL and PostgreSQL omit an unmeasured database size instead of reporting zero bytes
- All merged pull requests
- Emitted SQL Server and Oracle migration DDL in their own grammar, not PostgreSQL's
- Made a build mountable under a URL subpath through
BASE_PATH, cookies and probes included - All merged pull requests
- Added the npm package's description, engine keywords, homepage and issue tracker URL
- All merged pull requests
- Added a Create Table action to the empty schema explorer, gated by the engine's capability
- All merged pull requests
- Required a confirmation before a connection is deleted, on desktop and mobile alike
- All merged pull requests
- Gave six icon-only controls accessible names, including session termination and column removal
- Made the launcher print a reachable startup link for wildcard and IPv6 binds
- All merged pull requests
- Added a Trino session schema field, sent as
X-Trino-Schemaso bare names resolve - Added a
site.webmanifestand a 180x180 Apple touch icon so Studio installs to a home screen - All merged pull requests
- Sent
field_multi_value_leniencyso Elasticsearch selects multi-valued fields instead of erroring - All merged pull requests
- Gave each connection an optional query timeout, and dropped its cached provider on a change
- All merged pull requests
- Documented how to rebase a fork branch onto
upstream/mainwith--force-with-lease - All merged pull requests
- Added CSV and JSON export to the Data Profiler, masking what the screen masks
- All merged pull requests
- Added an optional TOTP second factor to local login, and refused a replayed code
- All merged pull requests
- Bound
Cmd/Ctrl+Shift+Xto a new query tab, working while the editor holds focus - Moved the four keyboard shortcuts into one registry that also generates the docs line
- All merged pull requests
- Repointed two agent comments from a git-ignored design file to a reachable citation
- All merged pull requests
- Pointed the social preview at
libredb.organd dropped the engine list from the meta description - Made inline edits on a default
Query Ntab target theFROMclause table - All merged pull requests
- Added CSV and JSON export to the pivot table through the shared escaping helpers
- All merged pull requests
- Added a results-grid wrap toggle that re-measures virtualized rows as they grow
- Built the object reads with
jsonbon every engine, so a RisingWave table shows its columns - All merged pull requests
- Stopped the editor overwriting live keystrokes with its own stale text and moving the caret
- All merged pull requests
- Gave a closed query tab an Undo toast that restores it in place
- Made sidebar connections reorderable by drag, persisting the order in
connection_order - All merged pull requests
- Added
autoCompletehints so password managers fill the login email and password - Stopped a long column type squeezing out the column name, with the full type on hover
- All merged pull requests
- Fixed a
font-mediumrtypo that left 35 labels at the wrong weight, and guarded it - Bounded the MongoDB connect by the request's query timeout
- All merged pull requests
- Separated an OIDC misconfiguration from an unreachable issuer, on screen and in the audit log
- All merged pull requests
- Added
README_hi.md, linked it from every other README and the drift guard - Reported an Oracle column's declared type rather than
DATA_TYPEalone - All merged pull requests
- Corrected the Keycloak role mapping: realm roles reach the ID token only when mapped
- All merged pull requests
- Closed the Code Generator on an unhandled Escape, and recorded the new global listener
- All merged pull requests
- Pointed the Fly guide's README link at the Environment Variables heading that exists
- All merged pull requests
- Retried the agent ledger's transient Windows chunk probe, keeping each stream's writes ordered
- Guarded the destinations of HTTP database connections
- All merged pull requests
- Wrote the DigitalOcean Droplet env file under
umask 077and installed it atomically - All merged pull requests
- Documented how
TRUST_PROXY_HEADERSandTRUSTED_PROXY_HOPSdecide the rate-limit bucket key - Added a one-command Keycloak OIDC demo stack
- All merged pull requests
- Gave the schema explorer's icon-only table actions button a table-specific accessible name
- All merged pull requests
- Resolved seed connection credentials from HashiCorp Vault, so a rotated secret needs no restart
- Bounded MongoDB server selection above the failover window, so a closed port fails in half a minute
- All merged pull requests
- Added Elasticsearch API key authentication, preferred over Basic auth when both halves are set
- Grouped sidebar connections in collapsible sections the user defines
- All merged pull requests
- Printed the schema beside each table on the admin Operations page, so same-named tables are told apart
- All merged pull requests
- Refused a committed
.onlybefore the test run, instead of letting the skipped tests pass green - Stopped the launcher binding the machine name or container id that arrives as
HOSTNAME - All merged pull requests
- Read the SQLite object kinds from the provider in the agent guard, instead of scraping source text
- Made a failed Oracle connect close the pool it created
- All merged pull requests
- Made agent mode execute on MySQL and MariaDB, behind a privilege check and a read-only transaction
- Made agent mode execute on MongoDB, refusing any user that holds more than read privileges
- All merged pull requests
- Added the missing PostgreSQL Clients link to the Japanese, Spanish, Urdu and Hindi READMEs
- Proofread
README_zh.mdas a native speaker, and rewrote its stale transport-security note - All merged pull requests
- Stopped schema diff writing
DEFAULTbefore ClickHouseMATERIALIZED,ALIASandEPHEMERALcolumns - Held Trino
nextUrilinks to the connection's own origin, so its credentials are never sent elsewhere - All merged pull requests
- Mounted the
postgres:18data volume at/var/lib/postgresql, ending a restart loop - Moved Next.js to the release that fixes a critical security vulnerability
- All merged pull requests
- Showed an empty-string default in the ER diagram's column tooltip instead of hiding it
- Read SQLite, libSQL and DuckDB column defaults as values rather than quoted catalog text
- All merged pull requests
- Expanded the Chinese README with the install channels, the feature set and the agent
- All merged pull requests
- Added Copy Cell and Copy Row as JSON to the results grid context menu, keeping masked values masked
- All merged pull requests
- Refused Redis commands such as
SELECTandAUTHthat would move the connection every request shares - Read SQL Server
DATETIMEandSMALLDATETIMEas the engine's own text, and exported them so they replay - All merged pull requests
- Made the admin Overview's Recent Activity state what it covers, with a path to the Audit tab
- Sized each result grid column from its header instead of one fixed width
- All merged pull requests
- Added the capabilities, error-handling and usage sections
duckdb.mdwas missing - All merged pull requests
- Added a resumable walk of an engine's own key space, and the sidebar key browser that drives it
- Guarded the sidebar's deferred catalog against a deferred walk
- All merged pull requests
- Covered a long-form IPv6 Trino host against a short
nextUriin the transport tests - All merged pull requests
- Made the Urdu README read more naturally, and kept the link to its renamed install heading working
- All merged pull requests
- Started the read-only MCP server at
/api/mcp, which the maintainers then rebuilt on the official SDK - All merged pull requests
- Reported a PostgreSQL
statement_timeoutas a timeout instead of a user cancel - All merged pull requests
- Replaced line-number citations in source comments with the declaration names they meant
- Stopped a short result page showing a
limitedbadge when nothing was cut - All merged pull requests
- Reset TLS, SSH, environment and Advanced fields when a new connection's dialog closes
- All merged pull requests
- Derived the provider docs' named citations inside the guard test instead of trusting a hand-kept list
- All merged pull requests
- Moved the query safety dialog onto the Radix alert dialog, for focus trapping and keyboard use
- All merged pull requests
- Added the Portuguese README, linked it from the others and registered it with the drift guard
- All merged pull requests
- Added the Russian README, linked it from the others and registered it with the drift guard
- All merged pull requests
- Kept the confirmation dialogs' Cancel button on the studio theme's colour when the OS is dark
- Counted ER diagram relations by kind, so a view is not called a table
- All merged pull requests
- Dropped the
tcp:prefix from a pasted ADO.NETServer, so an Azure connection string connects - All merged pull requests
- Bounded the schema context sent to the AI, and handled a context overflow error
- Left fields the SQL engine cannot project out of generated Elasticsearch and OpenSearch queries
- All merged pull requests
- Recorded the Scoop Extras listing in the channel inventory and the install docs
- Parsed Redis
INFOinto metrics shown on the Operations tab, instead of a line count - All merged pull requests
- Fixed the in-page links in
mssql.mdandredis.mdthat missed their headings - All merged pull requests
- Made the Vault Kubernetes auth mount configurable through
VAULT_K8S_AUTH_PATH - Added
extraVolumes,extraVolumeMountsandextraObjectsto the Helm chart - All merged pull requests
- Corrected the
vacuumActionprovider count, and dropped a stalereindexreference - All merged pull requests
- Documented the
*_PATH,*_DIRand*_FILEenv classification rule inCONTRIBUTING.md - Trimmed whitespace from
VAULT_K8S_TOKEN_PATHandVAULT_K8S_AUTH_PATH - All merged pull requests
- Corrected the X5 backlog entry's rendering notes after the modal extraction
- All merged pull requests
- Hid engine-owned schemas on wire-compatible engines
- Accepted ScyllaDB's view type as a materialized view source
- All merged pull requests
- Fixed the Db2 doc's statement terminator row, and filled the gaps it had against the code
- Cleared the previous run's error when a new run starts
- All merged pull requests
- Corrected the non-SQL query formats intro in
DATABASE_PROVIDERS.md, and added LibreDB to it - Removed stale engine counts from the login page test comments
- All merged pull requests
- Replaced a stale type-id count in a schema statistics comment with the rule behind it
- All merged pull requests
- Retried MongoDB
listDatabaseswithoutauthorizedDatabaseson FerretDB, which refuses the field - Refused every unicode escape in a quoted Cypher name
- All merged pull requests
- Read PostgreSQL
interval,pointand a JSON null as the engine's own text - Read table rows from
pg_classwherepg_stat_user_tablesis empty, so CockroachDB shows its tables - All merged pull requests
- Resolved the Couchbase bucket from the connection string's path
- Kept connection names visible beside the read-only badge
- All merged pull requests
- Named the refusal and the address when ClickHouse, Druid, libSQL or Couchbase cannot be reached
- Measured the MySQL EXPLAIN grammar against a table when
SELECT 1is refused - All merged pull requests
- Hid routines and relations an extension put in a user schema
- Offered Terminate in Monitoring only where the server accepts a kill
- All merged pull requests
- Kept column types as written in the ER diagram, and told relation kinds apart
- All merged pull requests
- Withheld per-row maintenance controls on a read-only connection
- Turned on RisingWave's implicit flush, so an edit is read back
- All merged pull requests
- Added the Korean README, and registered it with the localized README drift guard
- All merged pull requests
- Left foreign keys out of generated test data, and kept unique values distinct
- Wrote a BC date in an Oracle INSERT export with its sign
- All merged pull requests
- Dropped two stale provider counts from
postgres.md - Brought the Spanish README's transport security paragraph and Db2 LUW row up to date
- All merged pull requests
- Dropped two engine counts that no longer held from Druid comments
- Reworded a MongoDB comment that claimed the only per-object read
- All merged pull requests
- Made Test Connection refuse a missing Couchbase bucket and warn about a missing Trino catalog
- All merged pull requests
- Added the Google BigQuery provider over the REST API, with no Google SDK
- Made SQL completion read the clause and the scope it is in
- All merged pull requests
- Stopped SQL Server table stats multiplying row counts by indexes and allocation units
- All merged pull requests
- Replaced stale provider counts in
mongodb.mdwith wording that needs no number - All merged pull requests
- Added a live PostgreSQL check of the agent's read-only profile to the functional smoke test
- Added Db2 LUW to the Rancher inline editing list
- All merged pull requests
- Let one PostgreSQL connection browse every database the role can connect to
- All merged pull requests
- Listed passkey sign-in among the routes that need no session in
SECURITY.md - All merged pull requests
- Corrected the image tags table in
DOCKERHUB.mdto match the publishing workflow - All merged pull requests
- Documented the query language values and three missing
ProviderLabelsfields - All merged pull requests
- Corrected the README drift guard's comments on the files and invariants it checks
- All merged pull requests
- Refused a Kafka classic group with a member the client cannot decode, instead of showing it partial
- All merged pull requests
Take an issue labelled good first issue — each one states what "done" looks like as a command you can run yourself, so you never have to ask whether you are finished. CONTRIBUTING.md has the setup and the gates.
Reports count too. If you opened an issue that led to a fix, say so on the pull request that fixed it and we will list the report beside the change.