fix: PATCH memo update_mask query param + v0.28 alignment#12
Merged
Conversation
…date diff docs Drop deprecated server/routes/mcp.ts and routes/v1/ai.ts endpoints. Update DIFF-VS-GOLANG documentation to reflect current state.
…udio recording, add share image - Refactor voice recording to audio recording (VoiceRecorderPanel → AudioRecorderPanel) - Reorganize MemoEditor services (cache, error, memo, upload, validation, transcription) - Add MemoShareImageDialog and related components for memo sharing - Add MemoMentionMessage for inbox mentions - Update tsconfig.build.json for test configuration
… input, i18n Backend: - Add user avatar data-uri handler at /users/:username/avatar - Add AI action routes (POST /ai:transcribe) - Add user action routes (linkedIdentities, PAT, settings) - Add attachment action routes (batchDelete) - Align memo GET with relations/reactions, update create with attachments/relations - Fix attachment filter (filenameContains, mimeTypeIn) with in-memory fallback - Add commit field to instance profile Frontend: - Add SsoSignInForm component with OAuth2 flow - Add share image dialog and preview (MemoShareImageDialog, MemoShareImagePreview) - Add voice recorder hook (useVoiceRecorder) - Refactor MemoEditor with services/state layers - Update ActivityCalendar, Navigation, PagedMemoList components - Add Settings/AISection, LinkedIdentitySection, InfoChip - Update all 20+ locale files with new i18n keys Tests: - Add attachments.test.ts, errors-unimplemented.test.ts - Expand memos.test.ts, instance.test.ts, attachments-file-route.test.ts Version bump: 0.26.2 → 0.28.0 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Flatten credentials object: use direct ssoCredentials/passwordCredentials instead of nested case/value - Delete SsoSignInForm (now uses inline form on SignIn page) - Delete MemoAttachment and MemoResource (consolidated into golang's approach) - Add identity provider list fetch to InstanceSection settings - Update transcriptionService to use plain REST shape - Adjust dark theme primary/ring colors (oklch 0.65→0.42, 0.65→0.34) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Remove redundant `setting` wrapper from instance PATCH body. The golang
API expects top-level fields (generalSetting, memoRelatedSetting, etc.)
directly in the request body, not nested under a `setting` key.
Affected files:
- server/routes/v1/instance.ts: flatten request body parsing
- web/src/connect.ts: remove { setting: body } wrapping on PATCH
- tests/integration/instance.test.ts: update request body shape
- tests/integration/users-extras.test.ts: update request body shape
Also update DIFF-VS-GOLANG docs to reflect current state.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
grpc-gateway sends FieldMask as ?update_mask=... when the HTTP body is memo-only; third-party clients were getting 400. Also apply attachments when masked, sync Worker MEMOS_VERSION to 0.28.0, and simplify deploy docs. Co-authored-by: Cursor <cursoragent@cursor.com>
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
- Accept gRPC-Gateway flat JSON body + query updateMask for PATCH /users/:id - Support both snake_case and camelCase field aliases in update paths - Use mdast for markdown title extraction (first H1 block only) - Add integration tests for user patch update mask variants
Align test with golang behavior where unknown user update paths return INVALID_ARGUMENT (webhook paths are still ignored for compat).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/api/v1/memos/{id}for grpc-gateway clients: parseupdate_mask/updateMaskfrom the query string (comma-separated), not only from the JSON body. Matches golang proto (body: "memo"leaves FieldMask on the query). Also appliesattachmentswhen included in the mask.MEMOS_VERSIONinwrangler.jsoncto0.28.0(was stale0.26.2).Test plan
npm run test:integration(includes new case:?update_mask=content,visibility)GET /api/v1/instance/profilereportsversion: 0.28.0after deployMade with Cursor