Upstream, not a fork
We don't just use open source — we maintain it.
Every public pull request our engineers have opened across the projects we build on — merged and in-flight. Evidence, not a claim: it's pulled straight from GitHub and can't be faked.
By the numbers
The record, straight from GitHub.
92
repositories
230
merged PRs
339
total PRs
9
engineers
431 open-source contributions in the last year
SepOctNovDecJanFebMarAprMayJunJulAug
MonWedFri
LessMore
Pull requests
Every pull request we've opened upstream.
- fix(auth): cascade sidebar rows when deleting a userfix(ui): stop probing AI assistant API when the module is disabledfix(ui): portal the combobox dropdown so a dialog's overflow stops clipping itfix(shared): warn on duplicate entity class names across modulesfeat(customers,sales): an address carries a phone and the tax id it was invoiced undervia #5771
Show 140 moreShow less
fix(scheduler): audit every manual schedule trigger and run it as the triggering userfix(search): stop indexing custom fields twice and rewriting unchanged tokensdocs: document the notification delivery surface (#5591)fix(currencies): fetch exchange rates for every currency, not just active onesfix(devices): pick a device owner by name, not by UUID (#5591)via #5634fix(sales): accept exchangeRate and the status entry ids on document updateperf(sales): index sales_notes and sales_document_addresses by document contextfix(audit_logs): stack the changed-fields diff instead of scrolling it off-screen on narrow viewportsfeat(query): cap list COUNT at OM_LIST_COUNT_CAP via rebuilt count queries (#4552 Phase 2)feat(sales): render channel names and filter by several channelsfix(data_sync): make Cancel stop a sync run during a batch, not after itdocs(sales): spec the line discount_amount contract (#5019)fix(auth): log ACL changes to the action logfix(scheduler): manual trigger and execution history 404 on every system-scoped schedulefix(queue): report jobs the queue abandons before the handler runsperf(query_index): stop rewriting search tokens that have not changedfix(query): keep plaintext base columns on exact ILIKE, not approximate tokensfix(auth): emit the declared logout and password lifecycle eventsfeat(telemetry): add root/links span options and trace data_sync batchesvia #5375feat(data_sync): generic, adapter-declared run parametersvia #5374fix(auth): return null from loadSidebarPreference when no row existsfix(sales): accept comments and internalNotes on document updatefeat(sales): resolve sales channel names on the documents listdocs(specs): SMTP transport for transactional emailfeat(data_sync): let adapters opt out of the shared cursor row per entity typefix(sales): let channel viewers read the channels listfix(ui,customers): terminate "load more" on a short page, not on a reported totalfix(progress,data_sync): keep long-running sync progress cards truthfulfeat: devices registry + end-to-end mobile push notifications (FCM/APNs/Expo via communication_channels)via #5366fix(sales): stop dropping address-snapshot keys the editor cannot showfix(repo): ignore a symlink named node_modules, not just a directoryfix(sales): honour bulkImport.skipNotifications in sales.payments.createdocs(specs): address-level contact details and tax identifiersfix(notifications,auth): fail closed when a request has no resolved tenantfix(openapi): let route-declared responses win over inferred defaultsperf(sales): index tag assignments by document_id and stop rewriting unchanged tag setsfeat(sales): filter the documents list by several sales channelsfix(events/worker): dispatch queued events through the DI event busfix(sales): show line-level discounts in the document items tablefix(sales): order document lines by line_number, not a random uuidfix(crud): terminate fetch-all pagination loops on short pages, fail closed at the page ceiling (#4552 Phase 1)fix(sales): render line description in the admin items tabledocs(github): add Full Stack House to the certified partner registryfix(api): return 503 on DB connection exhaustion instead of 401/500fix(sales): persist customFields supplied on order and quote createdocs(specs): capped list count — rebuild the CRUD list COUNT so a bound actually bindsdocs(specs): DataTable column aggregations (totals footer) specvia #4806fix(cache): reap orphaned tag members when a Redis value key has expiredvia #4797fix(auth): key the nav sidebar cache on the module surface and give it a TTLvia #4797fix(sales): reject order payment totals on create instead of discarding themvia #4796docs(specs): propose `mercato upgrade` — lock-guarded reconcile for existing deploymentsfeat(feature_toggles): let frontend toggle hooks declare a defaultValueperf(query_index): make the search_tokens availability probe cheap and single-sourcedvia #4790fix(data-sync): resume stalled backfills without letting two workers share a runvia #4793fix(query_index): list every indexed entity and stop reporting false out-of-syncperf(query_index): only probe search_tokens when the query actually searchesdocs(architecture): add configuration decision guidevia #4741fix(query_index): stop reindex batches from silently dropping recordsvia #4598fix(docs): index docs served at the site root so Cmd+K search worksvia #4560docs: correct fabricated and stale query layer documentationvia #4558fix(progress): make job state transitions race-safe for horizontal scalingvia #4539perf(sales): cache dictionary-entry value lookups on order createvia #4504docs(search): clarify three-store architecture, fix stale naming, add evolution specfix(sales): hide compose-message action on order/quote pages when messages module is disabledfix(core): handle "All organizations" scope across audited org-scoped endpointsfeat(telemetry): vendor-neutral OTLP observability (@open-mercato/telemetry)via #4475refactor(attachments): rename "Storage" nav group to "Media"feat: disable ACL features system-wide via module overridesvia #4462feat(auth): add demo autologin via env varsfeat(sales): allow disabling sales channels via feature togglefix(directory): fail loud on stale org selection instead of orphaning writesfeat(commands): first-class bulk-import side-effect suppressionfix(ai): route vendor-prefixed model ids to OpenAI-compatible gateways (OpenRouter)via #4029fix(data_sync): back adapter registry with globalThis to survive bundler duplicationvia #4025docs(create-app): close template-sync gap that let PR #3799 ship unsyncedfix(query_index): batch search token rebuild silently loses all tokens on large batchesfeat(catalog): allow disabling EU unit price presentation per tenantfeat(currencies): move currency management into Settingsfeat(ui): allow hiding backend footer status barvia #3767feat(i18n): allow forcing a locale via OM_FORCE_LOCALEfix(auth): validate password policy on reset page before submitfeat(app): route home through /start with dismissible start pagefix(catalog): order Products before Categories in sidebarfeat(data_sync): paginate run-detail error logsfeat(workflows): WAIT activity + WAIT_FOR_TIMER step (supersedes #1472)feat(workflows): implement WAIT activity typevia #2193feat(workflows): code-based workflow definitions with customize/reset (carry-forward of #1738, supersedes #1796)via #1959feat(workflows): code-based workflow definitions with customize/resetvia #1959docs(spec): telemetry package with pluggable OTEL backenddocs(spec): push notifications and devices modulesfix(ratelimit): disable rate limiting under OM_INTEGRATION_TESTfeat(ui): make AppShell and PortalShell logo configurablefeat(shared): accept { cause } option in CrudHttpError constructorvia #1694feat(workflows): UI-driven e2e tests + trigger cache invalidationfix(auth): hide UI and gate APIs when backing module is disabledvia #1641fix(ui): hide messages topbar icon when backing module is disabledfix(workflows): prevent column truncation on definitions listfix(auth): use forwarded headers for redirect URLs behind reverse proxiesvia #1521fix(cli): auto-copy .env.example when .env is missing in devfix(auth): honor redirect query param on login pagefix(workflows): use filterIds for org scoping in all GET handlersvia #1487fix(workflows): halt workflow on activity failure by defaultfeat(workflows): link workflow instance ID in list tablefix(search): hide navbar search when search module is disabledfix: gitignore test-results and playwright-report globallyfix(dev): splash stuck on "preparing" when warmup login returns 401feat(db): Support custom PostgreSQL schema via DATABASE_URL (Vibe Kanban)feat(auth): add header-based token refresh for mobile/API clientsfeat(cli): auto-detect Docker socket from active contextfix(queue): parse Redis URL before passing to BullMQfeat(ci): add GitHub Actions annotations for test and lint errorsfeat(i18n): make the served locale set extensible by downstream appsfeat(data_sync): adapter-declared applicability for the dashboard's start controlsfix(auth): resend-invite returns 400 behind a reverse proxyfeat(modules): module runtime start hook — runtime.ts (SPEC-072)fix(encryption): honour TENANT_DATA_ENCRYPTION=no across credentials, session keys and searchdocs(sales): propose an opt-in external amounts mode for sales documentsfeat(queue): coalesce repeated enqueues into one run per burstfeat(telemetry): report recorded errors instead of only writing them downfeat(sales): hide order-detail edits the viewer's features denyfeat(telemetry): add opt-in browser RUM with a same-origin OTLP proxydocs(specs): RFC — actor-aware command guard policy (structural vs workflow guards)docs(specs): background-work reliability series v5 — problems, requirements, staged decision, phase-1 specsdocs(specs): list views at scale — filter/search/count/pagination architecture at 1M+ rows (RFC)fix(sales,ui): format the document detail's dates instead of printing raw ISOfeat(sales): make the shipped-line freeze a per-scope setting, on by defaultfeat(shared/email): SMTP transport behind the sendEmail facadefeat(ui): native DataTable column footers via tfootfeat(ui): native inline row-expand in DataTable (rowDetail)feat(devices): per-tenant user device registry modulesecurity(auth): enforce nulled ACL feature overrides as a runtime deny-listfix(ui): remove stray 'ded' token breaking AdvancedFilterPanel buildfix(ui): remove stray 'ded' token breaking AdvancedFilterPanel type checktest(ratelimit): failing repro for per-route rate-limit leakage under OM_INTEGRATION_TESTdocs(spec): social_auth module — better-auth-backed multi-provider SSOfix(auth): honor redirect query param on login pagefix(auth): prevent repeated /api/auth/profile fetchesfix: Fix yarn lint and add lint step to CI (Vibe Kanban)feat(db): add DB_SCHEMA environment variable supportfeat(auth): add header-based token refresh for mobile/API clients - fix(core): ensure correct runtime value of `decimal` and `float` propertiesdocs: fix typo in transactions.mdfix(core): respect Collection property `orderBy` when dataloader is enabledfeat(entity-generator): pass through `orderBy` option to the outputfeat(seeder): pass params to `.definition()` function as argument
Show 12 moreShow less
feat(seeder): make `.each()` function receive `index: number` argumentfeat(seeder): make `Factory.em` protectedfix(entity-generator): skip bidirectional relation if target metadata doesn't existperf(schema): filter tables before fetching table detailsfeat(mssql): add support for smalldatetime typerefactor: group tables by schema to load information schemafix(core): allow `em.transactional` handler to be synchronousfix(mssql): account for quotes in table namesfeat(entity-generator): extend filtering options for EntityGeneratorRemoved items still appear in the reloaded collection (if prior to that they've been removed in a clean transaction)test: add test for entity removal in parallel forksfeat(mssql): add support for raw query fragments with TVPs - Refactor specs. Make it work with formtastic 3.1Fix double label for :as => booleanform-horizontal support for Bootstrap 3.xFix .input-group to be working in bootstrap 3.x.Remove css hacks in Timeish input
- feat(ci): trigger preview release on master pushdocs(filtering): add "How Filters Are Applied" sectionfeat(query-mikro-orm): Add count() method to enable totalCount in GraphQL connections (Vibe Kanban)feat(ci): add pkg.pr.new preview releasesfeat(query-mikro-orm): add MikroORM adapter package
- Allow to change localStoragePrefixAllow to change/turn off CachedResource for some actions, by specifing .cache optionAllow boundParams to be also integers, booleans.[fix] Extend resource with default actions even if it has some definedFix 'online' event handling on Cordova
- Fix order of setters in DataTable#ngOnChangesColumn resize sometimes gives weird behaviour on mouse resize/clickUse ChangeDetectionStrategy.OnPush in Pager componentIn DataTable component, set rows, options & selected inputs in ngOnChanges, instead of ngOnInitUse ChangeDetectionStrategy.OnPush in BodyCell component
- Export `PublicFieldProps` and `InjectedFieldProps` types (so devs can use them to define their own field components)[TypeScript] Fix useMutation requires payload argumentfix(RaThemeOptions): Make sidebar width options optionalfix(Datagrid): Let it work even when `selectedIds` is undefined
- fix: correct console.warn! to console.warn syntaxfeat(notifications): include task name in approval needed notificationfeat: implement automatic PR discovery and attachment for task attemptsfeat(git): add merge strategy setting to allow diverged branches (Vibe Kanban)feat(mcp): add get_workspace_transcript tool
Show 11 moreShow less
fix: Process queued messages when cleanup script is skippedfix(frontend): sort files alphabetically in diff viewfix: allow symlinks to files outside project in Copy Files settingfix: use ScriptContext to determine run_reason for chained scriptsfeat: add VIBE_KANBAN_PORT env var to avoid conflicts with child processesfeat: add TTL to FILE_STATS_CACHE to prevent memory leakfix(file_search): store debouncer and cleanup watchers on cache eviction[RFC/WIP] feat: improve commit messages with agent-based generationfeat(utils): add VIBE_KANBAN_ASSET_DIR env var overridefix(frontend): filter token_usage_info entries to fix VirtuosoMessageList renderingfeat: add functionality to attach existing pull requests to tasks - fix(jest): Fix usage example of `jest.MockedClass`[enzyme] Add `wrappingComponent` and other related props support to `mount` functionfix(types/next): Add req and res NextContext typedefs used in `next export`[enzyme] Add `wrappingComponent` and other related props support to `mount` function
- Temporarily disable searchkickIndex only some models, not #allAdd pagination `padding` option to #search.
- fix(graphcache): use vi.stubGlobal for navigator mock in testspatch(retry): Make options argument optionalfeat: support nested pagination arguments in relay paginationfix(react-urql): prevent suspense rendering with data=null after cache invalidationfix(graphcache): preserve entity data when creating new entities
- fix(useForm): make `values` and `defaultValues` work correctly with `createFormControl` and `useMemo`Allow components with `useController` hook be memoized🐞 fix #13627 keepDirtyValues: reconcile field array rows by id so dirty/touched/error state follows reordered rowsfix: ensure isValid updates after trigger() when accessed laterfix(createFormControl): don't unregister fields on reset
- Document platform support for Toast componentfix(accordion): prevent animation on initial renderdocs: document how `eslint-plugin-tailwindcss` can be configuredfix(menu): pass state object to trigger function
- Allow to set multiple icon classes (split by space)Allow to replace loading icon class in options.Add navigator.compass & deviceOrientation supportAllow to replace loading icon class in options
- feat: make @nestjs/websockets an optional peer dependencyfeat: add middleware option to AuthModulefeat: Add MikroORM request context support
- feat(sandbox): add URL params support for testingfix(vimeo): report correct muted state in auto-play event
- feat(graphiql): add inputValueDeprecation optionfix: separate raw and compiled resolver metadata from each other
- feat(instrumentation-pg): add skipConnectSpans optiondocs(instrumentation-pg): document span types created by instrumentation
- docs: Add SWC configuration example for JSX/TSXdocs(queues): warn that `defaultJobOptions` don't always work
- fix(JobActions): show actions for "waiting children" jobs just as for "waiting" onesfix(README): use proper path to bullMQAdapter file
- docs: Add more info about `enabledContentTapInteraction` propdocs: improve instructions about running the example app
- Add #dom_attributes option to ItemContainer.Fix item_spec after adding #dom_attributes
- Refactor *.coffee files. Add reconnect() method.Small bugfixes in .js code
- style: remove deprecation warningstyle: remove deprecation warning
- Allow to define custom serializer for given classDefine custom serializer for a class
- Prevent click's event (on a calendar) to propagate[fix] Prevent click's event (on a calendar) to propagate
- fix(plugin): respect debug option for all debug log messages
- fix(lucide-react-native): remove icons namespace export to enable tree-shaking
- docs(react-native): make it work on web platform too
- fix: export story types from `@storybook/react`
- fix: provide separate event emitter instance per each app instance
- feat: provide better error messages when input param is invalid
- docs: Stop suggest calling `stub_with` at compilation time
- docs(Ecto.Repo): Inform that measurements may, but don't have to, be present
- docs(configuration/output): Warn about module output being not usable in webpack4
- Remove hammerkit schema
- Correct info about export limitations
- docs: Add async/await example to README
- docs(README): Add a note that mixin.js is patched on Magento >= 2.3.6
- fix(buildFederatedSchema): Export `GraphQLSchemaModule` type
- docs(README): Improve example of `file` option so it's obvious that it is not relative to `context` option
- ts: Add typedef for `preventScroll` option
- feat: Add `interpolateColors` function
- docs(SwitchTransition): Add info when TransitionGroup should be used instead
- docs(README): Add info when babel-plugin-styled-components should be used instead
- docs: Add info about improper RegExp replace (that has no capturing group)
- Fix timeout, timeoutOnce, networkError, networkErrorOnce TS typedefs
- Add examples to README and a note highlighting that lastLocation != previous browser history state
- Make `appendToBody` work in Tooltip
- In SentEmailViewer , show text template in a `<pre>` html tag
- Add info about a breaking change in 0.19.2
- Add missing `var` to definition of `outOfViewMonth` local variable
- Fix dnd date merge when moving an event to a date cell
- Rails5 fix: convert params to Hash before using them
- Treat input as :string if attached `column.type` is empty
- Fix `e.detail.keyboardHeight` undefined error in keyboardAttach directive
- [bugfix] Rewrite `task.help` of a task being rewritten
- Add mysql support in `dump.php`
- Rename userinfo.* deprecated scopes (fix #106)
- Add #code and #symbol methods to Spotify::Error
- Rails4 support + some small fixes
- fix(LoadingBoundary): don't render nothing on SSRfix(DataProvider): don't create new context value on every renderfeat(radix-ui/tooltip): allow to customize delay duration
- feat: Export `StackNavigator`, `StackNavigatorProps` and `TypedStackNavigator` type defsfix(TabRouter): When calculating next route name, use `initialRouteName` if the current route doesn't exist anymorefeat: Export `StackNavigator`, `StackNavigatorProps` and `TypedStackNavigator` type defs
- fix(ci): a short check list is not a green one — guard the CI verdict at the run leveldocs(om-auto-fix-pr): drop the stale --max-iterations default from stabilize-ci
- feat(metro-config): add assetPrefix option for CDN support[router] Add useServerInsertedHTML() for streaming SSR flush-boundary HTML injection
- fix: do not use animated scroll on initial renderfeat: add `renderTabBarItem` prop to `TabBar`
- fix(datepicker): Convert `init-date` to Date when it's a StringAllow `init-date` to be set just as `min-date`
- feat(core,antd,mui): add cursor-based pagination support
- feat: allow overriding default English labels in admin bar
- fix(oauth2): add missing logger.error calls in state.ts
- fix: re-run rename_interface.sh on every boot via systemd oneshot
- feat(combobox): add imperative ref handle for programmatic close
- fix(helpers): handle any type in RequiredKeysOf
- feat(microservices): add local domain transporter
- Add `--tls` option
- Better subscription test helpers
- docs(README): when patching global context, patch TextDecoder and TextEncoder too
- Fix NilClass error when controller has no api version namespace
- fix(DayPickerSingleDateController): Add missing modifiers when loading more months in `VERTICAL_SCROLLABLE` orientation
- docs(developer-tooling): Add info about deprecated apollo-codegen lib
- feat: Add `mapRequestUrl` option to `Sentry.Integrations.Http`
- Allow configuring release version via a hook option or an env var
- Don't create translation record for default_locale on save (rebased)
- Use `status_tag` in AttributesTable#content_for to display booleans
- Add Ukrainian locale
- Extract soundcloud client_id and api js urls constants to a changeable variable
- v3 support
- [fix] Add missing head and footer hooks to rb.html layout
- [bugfix] Use CustomEvent instead of Event
- `its` gives wrong fileline & filenumber
- Fix 'wrong constant name' error (Rails 4.1.0beta1)
- Reject FB login process, when user closes the window before the process ends (non cordova device)
Public PRs to upstream open source only — our own org and personal repos excluded. via #N marks work a maintainer merged in their own follow-up PR because they couldn't merge our branch; the successor credits the original there.
Let them build.
Engineers who maintain the tools they ship on. Start with 30 minutes.
30 minGoogle Calendarno sales deck
Prefer to write? Send us a message →
