* docs: update integration test commands for Vitest 4.0
Vitest 4.0 no longer supports custom CLI flags like --integrationTestsOnly.
Updated documentation to use the new VITEST_MODE=integration environment
variable syntax instead.
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
* fix: load .env file in vitest config for integration tests
Vitest 4.0 doesn't automatically load .env files into process.env.
This caused integration tests to fail with ECONNREFUSED errors because
DATABASE_URL was not available.
Added loadEnv from Vite to load .env file at the start of vitest config.
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
* chore: remove unnecessary comment
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
* fix: only load .env vars if not already set
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
The AES256 encryption used for 2FA requires exactly 32 bytes.
The previous command `openssl rand -base64 32` generates a 44-character
base64 string (32 bytes encoded in base64), which is too long.
Changed to `openssl rand -base64 24` which generates exactly 32
characters (24 bytes encoded in base64 = 32 characters).
This was causing 2FA setup failures with "Something went wrong" errors
and RangeError: Invalid key length in self-hosted Docker installations.
Fixes#22365
Co-authored-by: simiondolha <simiondolha@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
2026-01-13 11:46:39 -03:00
Eunjae LeeGitHubeunjae@cal.com <hey@eunjae.dev>Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* docs: add moduleLoader pattern documentation to knowledge-base
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
* docs: rewrite DI section to use moduleLoader pattern as primary approach
- Replace manual module loading examples with moduleLoader pattern
- Add Mistake 4 about manual module loading being not type-safe
- Update Core Concepts to explain moduleLoader components
- Show both depsMap (multiple deps) and dep (single dep) usage
- Emphasize build-time type safety throughout
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
* docs: extract DI pattern to separate file
- Move DI documentation from knowledge-base.md to di-pattern.md
- Add brief reference in knowledge-base.md pointing to the new file
- Keeps knowledge-base.md focused on quick notes while DI gets its own detailed guide
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-01-12 15:26:47 +00:00
Eunjae LeeGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* docs: add DTO location and naming conventions to knowledge base
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
* docs: clarify DTO location rules for new features vs refactored code
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
* docs: simplify DTO location - all DTOs go in packages/lib/dto/
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>