github-actions[bot]
|
ae7db23bdd
|
i18n - translations (#20959)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-27 14:33:57 +02:00 |
|
github-actions[bot]
|
086b79e5b9
|
i18n - translations (#20952)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-27 11:02:42 +02:00 |
|
github-actions[bot]
|
be8c25dfc2
|
i18n - translations (#20930)
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-26 17:46:04 +02:00 |
|
github-actions[bot]
|
a2673da164
|
i18n - translations (#20924)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-26 17:03:31 +02:00 |
|
github-actions[bot]
|
96d247e94d
|
i18n - translations (#20895)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-25 19:20:56 +02:00 |
|
github-actions[bot]
|
a3e41ec267
|
i18n - translations (#20892)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-25 17:54:07 +02:00 |
|
github-actions[bot]
|
d54caf10c1
|
i18n - translations (#20885)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-25 14:10:10 +02:00 |
|
github-actions[bot]
|
e6cc783a23
|
i18n - translations (#20853)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-22 15:56:56 +02:00 |
|
github-actions[bot]
|
99799073e9
|
i18n - translations (#20837)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-22 12:04:44 +02:00 |
|
github-actions[bot]
|
3128157988
|
i18n - translations (#20832)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-22 11:19:10 +02:00 |
|
github-actions[bot]
|
64241ed8ae
|
i18n - translations (#20822)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-21 19:26:28 +02:00 |
|
github-actions[bot]
|
d192d2d492
|
i18n - translations (#20804)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-21 13:50:56 +02:00 |
|
github-actions[bot]
|
7ca2efeb96
|
i18n - translations (#20796)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-21 11:42:46 +02:00 |
|
github-actions[bot]
|
7aef406696
|
i18n - translations (#20782)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-20 21:33:20 +02:00 |
|
github-actions[bot]
|
cbac2ba0bf
|
i18n - translations (#20725)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-19 15:15:56 +02:00 |
|
github-actions[bot]
|
5c8ddb0c12
|
i18n - translations (#20674)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-18 14:15:45 +02:00 |
|
github-actions[bot]
|
4054ede5bb
|
i18n - translations (#20582)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-14 14:52:45 +02:00 |
|
github-actions[bot]
|
59b993bdb3
|
i18n - translations (#20547)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-13 18:32:28 +02:00 |
|
Paul Rastoin
|
a159a68e2c
|
[twenty-server] no floating promises lint rule (#20499)
## Introduction
That's an audit + RFC
## Fire-and-forget (`void`) -- Intentional, correct
These are telemetry, metrics, and audit logging in hot paths or
non-critical contexts. `void` is the right choice.
| File | What was voided |
|---|---|
| `sign-in-up.service.ts` | `metricsService.incrementCounter` (sign-up
metric) + `auditService.insertWorkspaceEvent` (workspace created) |
| `use-graphql-error-handler.hook.ts` | 5x
`metricsService.incrementCounter` (GraphQL operation metrics) |
| `bullmq.driver.ts` | 2x `metricsService.incrementCounter` (job
completed/failed metrics) |
| `call-webhook.job.ts` | 2x `auditService.insertWorkspaceEvent` + 1x
`metricsService.incrementCounter` |
| `custom-domain-manager.service.ts` | `analytics.insertWorkspaceEvent`
(domain activation event) |
| `logic-function-executor.service.ts` |
`auditService.insertWorkspaceEvent` (function execution) |
| `workflow-runner.workspace-service.ts` |
`metricsService.incrementCounter` (throttle metric) |
| `cleaner.workspace-service.ts` | `metricsService.incrementCounter`
(deleted workspace metric) |
| `stream-agent-chat.job.ts` | Detached IIFE for streaming chunks
(intentional concurrent pipeline) |
| `workspace-auth-context.middleware.ts` |
`withWorkspaceAuthContext(...)` (AsyncLocalStorage, returns void anyway)
|
## Top-level script entry points (`void bootstrap()`)
These are module-level calls where the promise has no consumer. `void`
makes the lint rule happy and documents the intent.
| File | What changed |
|---|---|
| `main.ts` | `void bootstrap()` |
| `command.ts` | `void bootstrap()` |
| `queue-worker.ts` | `void bootstrap()` |
| `truncate-db.ts` | `void dropSchemasSequentially()` |
| `codegen/index.ts` | `void generateTests(forceArg)` |
## Now properly awaited -- Real bug fixes
These were floating promises that could silently fail, lose data, or
cause race conditions.
| File | What was fixed |
|---|---|
| `billing-sync-plans-data.command.ts` | `meters.map(async ...)` wrapped
in `Promise.all` -- was returning before upserts finished |
| `cache-storage.service.ts` | `setAdd` and `setPop` had `.then()`
chains that weren't returned/awaited |
| `create-audit-log-from-internal-event.ts` | 4x
`auditService.createObjectEvent` now awaited inside a job |
| `cleaner.workspace-service.ts` | 2x `emailService.send(...)` now
awaited -- emails could silently fail |
| `agent-async-executor.service.ts` | `calculateAndBillUsage` +
`billNativeWebSearchUsage` in `finally` block now awaited |
| `repair-tool-call.util.ts` | `calculateAndBillUsage` now awaited |
| `agent-title-generation.service.ts` | `calculateAndBillUsage` now
awaited |
| `chat-execution.service.ts` | `billNativeWebSearchUsage` now awaited |
| `ai-generate-text.controller.ts` | `calculateAndBillUsage` in
`finally` block now awaited |
| `agent-turn.resolver.ts` | `messageQueueService.add(...)` now awaited
|
| `command.ts` | `app.close()` now awaited (was exiting before graceful
shutdown) |
| `i18n.service.ts` | `loadTranslations()` in `onModuleInit` now awaited
|
| `workspace-query-hook.explorer.ts` | `explore()` in `onModuleInit` now
awaited |
| `message-queue.explorer.ts` | `handleProcessorGroupCollection` in
`onModuleInit` now awaited |
| `ai-billing.service.spec.ts` | Test now properly `await`s the async
call |
| `messaging-messages-import.service.spec.ts` | `expect(...)` now
properly `await`ed for async assertion |
| `archive.finalize()` (3 files) | Voided -- promise resolution already
handled by `pipeline()` / `on('end')` |
## Impersonation & security audit trail -- Upgraded from `void` to
`await`
These were previously fire-and-forget but are
security/compliance-critical events that must be reliably persisted.
| File | What was fixed |
|---|---|
| `impersonation.service.ts` | 4x `auditService.insertWorkspaceEvent`
now awaited (impersonation attempt, token generation
attempt/success/failure) |
| `auth.resolver.ts` | 5x `auditService.insertWorkspaceEvent` now
awaited (impersonation token exchange attempt/success/failure at server
and workspace levels) |
| `auth.service.ts` | 2x `analytics.insertWorkspaceEvent` now awaited
(impersonation attempted/issued) |
## Billing audit -- Upgraded from `void` to `await`
Payment events should be reliably persisted for financial/compliance
reporting.
| File | What was fixed |
|---|---|
| `billing-webhook-invoice.service.ts` |
`auditService.insertWorkspaceEvent(PAYMENT_RECEIVED_EVENT)` now awaited
inside Stripe webhook handler |
## Fire-and-forget with proper error handling -- Upgraded from bare
`void`
These remain non-blocking but now catch and log errors instead of
risking unhandled rejections.
| File | What was fixed |
|---|---|
| `logic-function-executor.service.ts` |
`applicationLogsService.writeLogs` now uses `.catch()` instead of bare
`void` -- user-facing logs should surface errors |
## Systemic infrastructure fixes
| File | What was fixed |
|---|---|
| `metrics.service.ts` | `incrementCounter`: Redis cache write
(`metricsCacheService.updateCounter`) now uses `.catch()` internally
instead of raw `await` -- prevents unhandled rejections across all `void
metricsService.incrementCounter(...)` call sites when Redis is unhealthy
|
| `audit.service.ts` | `preventIfDisabled`: made properly `async` with
`await` and consistent `Promise<{ success: boolean }>` return type.
Removed broken `catch` that returned an `AuditException` as a value
(wrong constructor args, unreachable dead code). Removed unused
`AuditException` import |
## Fixed in this session (beyond original PR)
| File | What changed |
|---|---|
| `telemetry.listener.ts` | Removed misleading `Promise.all` + `void`
combo; replaced with simple `for...of` + `void` |
| `message-queue.explorer.ts` | Changed from `void` to `await` so
startup crashes on registration failure |
|
2026-05-13 10:08:42 +00:00 |
|
github-actions[bot]
|
50a4fe5040
|
i18n - translations (#20428)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-10 20:24:31 +02:00 |
|
github-actions[bot]
|
3420d63b7a
|
i18n - translations (#20411)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-09 11:12:05 +02:00 |
|
github-actions[bot]
|
88988e5a55
|
i18n - translations (#20313)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-06 10:42:40 +02:00 |
|
github-actions[bot]
|
a3c026f1ce
|
i18n - translations (#20302)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-05 20:39:23 +02:00 |
|
Abdul Rahman
|
e0563377b5
|
Fix unclear metadata validation errors (#20234)
https://github.com/user-attachments/assets/8f8f1122-3de1-4a9b-8bb4-a3c8d31e47ae
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Charles Bochet <charles@twenty.com>
|
2026-05-05 18:18:05 +00:00 |
|
github-actions[bot]
|
31674253a1
|
i18n - translations (#20289)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-05 16:33:11 +02:00 |
|
github-actions[bot]
|
65ba36d475
|
i18n - translations (#20286)
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-05 15:31:52 +02:00 |
|
github-actions[bot]
|
dd3b6f2a2f
|
i18n - translations (#20278)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-05 14:11:21 +02:00 |
|
github-actions[bot]
|
9ddf9af4c4
|
i18n - translations (#20236)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-04 16:18:30 +02:00 |
|
github-actions[bot]
|
fc4cf7fe09
|
i18n - translations (#20226)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-05-04 11:34:51 +02:00 |
|
github-actions[bot]
|
636deffb93
|
i18n - translations (#20164)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-30 18:01:45 +02:00 |
|
github-actions[bot]
|
a6118b7dc3
|
i18n - translations (#20125)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-29 11:57:14 +02:00 |
|
github-actions[bot]
|
7ea1dfdd49
|
i18n - translations (#20115)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-28 16:48:25 +02:00 |
|
github-actions[bot]
|
39831338f7
|
i18n - translations (#19988)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-22 18:46:31 +02:00 |
|
github-actions[bot]
|
f30ef2432f
|
i18n - translations (#19987)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-22 17:55:26 +02:00 |
|
github-actions[bot]
|
755f1c92d1
|
i18n - translations (#19893)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-20 19:45:24 +02:00 |
|
github-actions[bot]
|
1c54e79d6c
|
i18n - translations (#19843)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-18 21:14:49 +02:00 |
|
github-actions[bot]
|
f94ee2d495
|
i18n - translations (#19795)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-17 14:15:46 +02:00 |
|
github-actions[bot]
|
cddc47b61f
|
i18n - translations (#19731)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-15 19:08:24 +02:00 |
|
github-actions[bot]
|
77e5b06a50
|
i18n - translations (#19707)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-14 19:00:22 +02:00 |
|
github-actions[bot]
|
59a222e0f0
|
i18n - translations (#19703)
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-14 18:38:55 +02:00 |
|
github-actions[bot]
|
9cf6f42313
|
i18n - translations (#19699)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-14 18:08:57 +02:00 |
|
github-actions[bot]
|
9f6855e7dd
|
i18n - translations (#19652)
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-13 16:54:50 +02:00 |
|
github-actions[bot]
|
c67602f2e8
|
i18n - translations (#19647)
Created by Github action
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-13 16:00:27 +02:00 |
|
github-actions[bot]
|
de401d96fe
|
i18n - translations (#19621)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-13 09:54:25 +02:00 |
|
github-actions[bot]
|
ec7d19a3af
|
i18n - translations (#19551)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-10 12:53:20 +02:00 |
|
github-actions[bot]
|
f8c35a95b5
|
i18n - translations (#19537)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-10 10:09:01 +02:00 |
|
github-actions[bot]
|
fb950cf312
|
i18n - translations (#19527)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-09 22:37:55 +02:00 |
|
github-actions[bot]
|
c54747379a
|
i18n - translations (#19520)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-09 18:43:56 +02:00 |
|
github-actions[bot]
|
dc6e76b6ab
|
i18n - translations (#19488)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-09 12:26:14 +02:00 |
|
github-actions[bot]
|
ac4819758d
|
i18n - translations (#19451)
Created by Github action
---------
Co-authored-by: github-actions <github-actions@twenty.com>
|
2026-04-08 15:03:32 +02:00 |
|