- 27 Jan, 2026 2 commits
- 26 Jan, 2026 9 commits
-
-
Johnny authored
-
Johnny authored
-
Brent Bilis authored
Co-authored-by:Local Admin <root@localhost>
-
Johnny authored
-
Johnny authored
-
Johnny authored
-
Salman Chishti authored
Signed-off-by:Salman Muin Kayser Chishti <13schishti@gmail.com>
-
itzmk21 authored
-
Salman Chishti authored
Signed-off-by:Salman Muin Kayser Chishti <13schishti@gmail.com>
-
- 23 Jan, 2026 4 commits
-
-
XIN_____ authored
-
Pádraic Slattery authored
-
Johnny authored
-
Johnny authored
-
- 22 Jan, 2026 7 commits
-
-
Steven authored
-
Steven authored
-
Steven authored
-
Steven authored
-
Steven authored
-
Steven authored
- Removed the owner field from InstanceProfile as it is no longer needed. - Added an initialized field to InstanceProfile to indicate if the instance has completed first-time setup. - Updated GetInstanceProfile method to set initialized based on the existence of an admin user. - Modified tests to reflect changes in InstanceProfile and ensure correct behavior regarding instance initialization. - Adjusted frontend logic to redirect users based on the initialized status instead of the owner field.
-
Steven authored
-
- 21 Jan, 2026 2 commits
- 20 Jan, 2026 9 commits
-
-
Steven authored
-
Johnny authored
-
Johnny authored
-
Johnny authored
- Updated the isSuperUser function to only check for ADMIN role. - Added SQL migration scripts for MySQL, PostgreSQL, and SQLite to change user roles from HOST to ADMIN. - Created a new SQLite migration to alter the user table structure and ensure data integrity during the migration process.
-
Johnny authored
-
Johnny authored
-
Johnny authored
-
Steven authored
-
Steven authored
-
- 19 Jan, 2026 2 commits
- 17 Jan, 2026 2 commits
-
-
Johnny authored
Allow API users to set custom create_time, update_time, and display_time when creating memos and comments. This enables importing historical data with accurate timestamps. Changes: - Update proto definitions: change create_time and update_time from OUTPUT_ONLY to OPTIONAL to allow setting on creation - Modify CreateMemo service to handle custom timestamps from request - Update database drivers (SQLite, MySQL, PostgreSQL) to support inserting custom timestamps when provided - Add comprehensive test coverage for custom timestamp functionality - Maintain backward compatibility: auto-generated timestamps still work when custom values are not provided - Fix golangci-lint issues in plugin/filter (godot and revive) Fixes #5483
-
Johnny authored
Add support for CEL exists() comprehension with startsWith, endsWith, and contains predicates to enable powerful tag filtering patterns. Features: - tags.exists(t, t.startsWith("prefix")) - Match tags by prefix - tags.exists(t, t.endsWith("suffix")) - Match tags by suffix - tags.exists(t, t.contains("substring")) - Match tags by substring - Negation: !tags.exists(...) to exclude matching tags - Works with all operators (AND, OR, NOT) and other filters Implementation: - Added ListComprehensionCondition IR type for comprehension expressions - Parser detects exists() macro and extracts predicates - Renderer generates optimized SQL for SQLite, MySQL, PostgreSQL - Proper NULL/empty array handling across all database dialects - Helper functions reduce code duplication Design decisions: - Only exists() supported (all() rejected at parse time with clear error) - Only simple predicates (matches() excluded to avoid regex complexity) - Fail-fast validation with helpful error messages Tests: - Comprehensive test suite covering all predicates and edge cases - Tests for NULL/empty arrays, combined filters, negation - Real-world use case test for Issue #5480 (archive workflow) - All tests pass on SQLite, MySQL, PostgreSQL Closes #5480
-
- 14 Jan, 2026 3 commits
-
-
zz4zz authored
-
Johnny authored
- Suppress revive redundant-test-main-exit warning with //nolint - Fix data race in cache.Clear() by using Delete() instead of map replacement - Both changes maintain correct behavior while fixing CI failures
-
Johnny authored
Fix all data races detected by -race flag in parallel store tests. Problems fixed: 1. TestMain not propagating exit code - Was: m.Run(); return - Now: os.Exit(m.Run()) 2. Data races on global DSN variables - mysqlBaseDSN and postgresBaseDSN written in sync.Once - Read outside Once without synchronization - Race detector: write/read without happens-before relationship 3. Data races on container pointers - mysqlContainer, postgresContainer, testDockerNetwork - Same pattern: write in Once, read in cleanup Solution: Use atomic operations - atomic.Value for DSN strings (Store/Load) - atomic.Pointer for container pointers (Store/Load) - Provides proper memory synchronization - Race-free reads and writes Why sync.Once alone wasn't enough: - sync.Once guarantees function runs once - Does NOT provide memory barrier for variables written inside - Reads outside Once have no synchronization with writes - Race detector correctly flags this as violation Technical details: - atomic.Value.Store() provides release semantics - atomic.Value.Load() provides acquire semantics - Guarantees happens-before relationship per Go memory model - All 159 parallel tests can safely access globals Impact: - Tests now pass with -race flag - No performance degradation (atomic ops are fast) - Maintains parallel execution benefits (8-10x speedup) - Proper Go memory model compliance Related: Issues #2, #3 from race analysis
-