- 29 Oct, 2025 2 commits
-
-
Steven authored
- Remove extra blank line in memo_service.go (goimports) - Remove invalid fields from CreateMemoRequest call (validateOnly, requestId) - Clean up unnecessary comments
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
Steven authored
BREAKING CHANGE: Removed DeleteMemoTag and RenameMemoTag API endpoints for better API consistency. Tags should now be managed by updating memo content directly via UpdateMemo endpoint. Backend changes: - Remove RenameMemoTag and DeleteMemoTag RPC methods from proto - Remove backend implementations in memo_service.go - Regenerate protocol buffers (Go, TypeScript, OpenAPI) Frontend changes: - Remove RenameTagDialog component - Simplify TagsSection to remove rename/delete functionality - Improve tag styling with active state highlighting - Add smooth transitions and better hover interactions - Polish TagTree component for consistency - Tags now only support click-to-filter (no inline editing) Style improvements: - Active tags highlighted with primary color and font-medium - Consistent hover states across flat and tree views - Better spacing and visual hierarchy - Improved empty state styling
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
- 28 Oct, 2025 4 commits
-
-
Steven authored
- Add MemoSkeleton component for smooth initial page load experience - Integrate skeleton loader into PagedMemoList during initial fetch - Parallelize user settings and shortcuts API calls (~50% faster session init) - Batch-fetch memo creators in parallel to eliminate individual loading spinners - Pass showCreator prop to Explore page for proper skeleton rendering
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
Steven authored
- Add language and theme selector submenus to UserMenu component for quick access - Refactor shared utilities: extract THEME_OPTIONS constant and getLocaleDisplayName() function - Update LocaleSelect and ThemeSelect to use shared utilities, eliminating code duplication - Make UserMenu reactive with MobX observer for real-time setting updates - Fix language switching reactivity by immediately updating workspaceStore.state.locale - Add scrollable menu support for language selector (max-h-[90vh]) - Apply same instant locale update to PreferencesSection for consistency
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
Steven authored
Add custom code block renderer with language display and copy functionality. Links now open in new windows, and clicking image links no longer triggers both link navigation and image preview. - Add CodeBlock component with copy-to-clipboard button and language label - Configure all markdown links to open in new windows with target="_blank" - Fix image link behavior to prevent duplicate actions when clicked
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
Steven authored
Remove disruptive error toasts when reverse geocoding or geolocation fails. Instead, silently fall back to using coordinates as the location placeholder. This improves UX for users in regions where OpenStreetMap is restricted (e.g., China) or when CSP blocks external API calls. Fixes #5198, #5197
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
- 27 Oct, 2025 7 commits
-
-
Steven authored
Fixed issue #5194 where changing the layout (List/Masonry) or sort direction didn't update the UI until page refresh. The root cause was that ViewState fields weren't marked as MobX observables, so the UI didn't react to changes even though values were being persisted to localStorage. Solution: Added constructor to ViewState that marks orderByTimeAsc and layout fields as observable, following the same pattern used in other stores like MemoFilterState. Fixes #5194
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
Steven authored
Changed Cache-Control max-age from 7 days to 1 hour with immutable directive. This prevents users from experiencing blank pages or JS errors when accessing frequently redeployed instances (e.g., demo environments) where old cached assets may reference files that no longer exist after redeployment. Since Vite generates content-hashed filenames, the immutable directive prevents unnecessary revalidation while the shorter cache duration ensures fresh assets are served within an hour of redeployment.
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
Steven authored
-
boojack authored
Signed-off-by:boojack <stevenlgtm@gmail.com>
-
Steven authored
- Add comprehensive inline documentation for auth services - Document session-based and token-based authentication flows - Clarify authentication priority and validation logic - Add detailed comments for JWT token structure and claims - Fix reactions seed data to use memo UIDs instead of numeric IDs
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
Claude authored
-
Claude authored
- Removed the wikilink extension from markdown services in test and API service. - Deleted the DefaultLink and WikiLink components, simplifying link handling. - Updated ConditionalComponent to remove wikilink checks. - Adjusted MemoContent to exclude wikilink handling in markdown rendering. - Refined markdown styles for compact rendering, enhancing readability. - Added a Markdown Styling Guide to document the new compact styling approach.
-
- 26 Oct, 2025 3 commits
-
-
Claude authored
-
Claude authored
-
Claude authored
- Removed the `nodes` field from the `Memo` interface in `memo_service.ts`. - Updated the `createBaseMemo` function and the `Memo` message functions to reflect the removal of `nodes`. - Cleaned up the serialization and deserialization logic accordingly. chore: remove code-inspector-plugin from Vite configuration - Deleted the `codeInspectorPlugin` from the Vite configuration in `vite.config.mts`. - Simplified the plugins array to include only `react` and `tailwindcss`.
-
- 24 Oct, 2025 4 commits
-
-
Steven authored
Fixes the root cause of non-reactive filtering. The MemoFilterState class was not marking its fields as observable in MobX, so changes to the filters array were not being tracked. Added makeObservable configuration to mark: - filters and shortcut as observable - addFilter, removeFilter, removeFiltersByFactor, clearAllFilters, setShortcut as actions This ensures that when tags are clicked and filters are added/removed, MobX observer components will re-render and fetch new data. Related to #5189
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
Steven authored
Fixes filtering functionality that was broken due to improper use of useMemo with MobX observables. The issue occurred because useMemo's dependency array uses reference equality, but MobX observable arrays are mutated in place (reference doesn't change when items are added/removed). Changes: - Remove useMemo from filter computation in Home, UserProfile, and Archived pages - Calculate filters directly in render since components are already MobX observers - Fix typo: memoFitler -> memoFilter in Archived.tsx This ensures filters are recalculated whenever memoFilterStore.filters changes, making tag clicks and other filter interactions work correctly. Fixes #5189
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
Steven authored
Fixes a regression introduced in v0.25.2 where PostgreSQL IN clause placeholders were not properly incremented, causing all parameters to use the same placeholder index (e.g., $1, $1, $1 instead of $1, $2, $3). This bug affected: - ListReactions (ContentIDList) - caused "failed to list reactions" errors - ListAttachments (MemoIDList) - ListMemos (IDList and UIDList) The fix combines placeholder generation and argument appending into a single loop to ensure proper incrementing. Fixes #5188
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
Steven authored
-
- 23 Oct, 2025 10 commits
-
-
Claude authored
-
boojack authored
Updated README to include sponsorship details and enhance clarity on features and benefits. Signed-off-by:boojack <stevenlgtm@gmail.com>
-
Florian Dewald authored
feat: generate thumbnails for images stored in S3 and generate thumbnails with a maximum size (#5179)
-
Claude authored
- Add hover-based visibility for reaction selector in memo cards - Show reaction selector only on card hover or when popover is open - Add onOpenChange callback to ReactionSelector for state management - Reorder action buttons for better visual hierarchy - Simplify conditional rendering of comment link
-
Claude authored
-
Claude authored
-
Claude authored
-
Claude authored
-
Steven authored
-
Steven authored
Refactored all stores to follow consistent patterns and best practices while keeping MobX: New Infrastructure: - Created base-store.ts with StandardState base class and factory functions - Added store-utils.ts with RequestDeduplicator, StoreError, and OptimisticUpdate helpers - Added config.ts for MobX configuration and strict mode - Created comprehensive README.md with architecture guide and examples Server State Stores (API data): - attachment.ts: Added request deduplication, error handling, computed properties, delete/clear methods - workspace.ts: Added Theme type validation, computed memoization, improved initialization - memo.ts: Enhanced with optimistic updates, request deduplication, structured errors - user.ts: Fixed temporal coupling, added computed memoization, request deduplication Client State Stores (UI state): - view.ts: Added helper methods (toggleSortOrder, setLayout, resetToDefaults), input validation - memoFilter.ts: Added utility methods (hasFilter, clearAllFilters, removeFiltersByFactor) Improvements: - Request deduplication prevents duplicate API calls (all server stores) - Computed property memoization improves performance - Structured error handling with error codes - Optimistic updates for better UX (memo updates) - Comprehensive JSDoc documentation - Type-safe APIs with proper exports - Clear separation between server and client state All stores now follow consistent patterns for better maintainability and easier onboarding.
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By:Claude <noreply@anthropic.com>
-
- 22 Oct, 2025 10 commits
-
-
dependabot[bot] authored
Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Steven authored
-
Steven authored
-
Steven authored
- Update GetUser to accept both numeric IDs and username strings (users/{id} or users/{username}) - Implement CEL filter parsing for username-based lookups - Update proto documentation to reflect dual lookup capability - Simplify frontend user store to use GetUser instead of ListUsers filter - Update ListUsers filter documentation to show current capabilities -
Steven authored
-
Steven authored
- Replace fixed width (max-w-56) with responsive viewport-based width - Use 90vw on mobile and max-w-md on desktop for better adaptability - Add vertical scrolling with max-h-64 overflow-y-auto - Increase grid columns to 8 on medium+ screens for better space utilization - Ensures all reactions are accessible regardless of quantity Fixes #5117 Co-authored-by:GitHub Copilot <noreply@github.com>
-
dependabot[bot] authored
Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
dependabot[bot] authored
Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Simon authored
-
Steven authored
-