Skip to content

Conversation

zh3036
Copy link
Contributor

@zh3036 zh3036 commented Jul 4, 2025

Summary

This PR fixes issues where memos weren't appearing in Logseq by:

  1. Adding comprehensive debug logging throughout the sync process
  2. Fixing the sync status storage migration from makeSandboxStorage() to logseq.settings
  3. Switching to V1 API only - removing unnecessary version detection
  4. Adding alphanumeric ID support for Memos V1 API

Problem Fixed

The main issue was that the HOST URL in settings included a port (:5230) which caused the API to return HTML instead of JSON. The debug logging helped identify this issue.

Changes

Debug Logging Added

  • API request/response logging to identify connection issues
  • Sync process flow tracking
  • Settings parsing logging
  • Block insertion logging
  • Error details with context

API Improvements

  • Removed me() API call for version detection
  • Always use V1 API (more modern and maintained)
  • Better error handling with detailed messages

Bug Fixes

  • Fixed "BUG: should not join with empty dir" error by migrating to settings-based storage
  • Fixed V1 API compatibility with alphanumeric IDs
  • Fixed typo 'fitler' to 'filter' in memoFilter method

Testing

All changes have been tested with:

  • Unit tests pass
  • E2E tests added with Playwright
  • Manual testing with actual Memos instance

Notes for Users

After updating, users need to ensure their HOST setting doesn't include a trailing slash or port:

  • ✅ Correct: https://memos.example.com
  • ❌ Wrong: https://memos.example.com/ or https://memos.example.com:5230

The debug logging will help diagnose any remaining issues by showing detailed information in the browser console.

zh3036 and others added 5 commits July 4, 2025 00:28
- Fix API endpoints from /api/v1/memo to /api/v1/memos
- Add response transformation from V1 format to expected format
- Update request parameters (pageSize/pageToken instead of limit/offset)
- Fix user endpoint to /api/v1/users/me
- Add proper HTTP headers for JSON responses
- Handle archived memo filtering client-side
- Transform memo IDs from resource names (e.g., memos/123 -> 123)

This fixes compatibility with current Memos V1 API and allows
the plugin to sync properly with Memos servers.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Implement hash-based conversion from alphanumeric to numeric IDs
- Add ID mapping for update operations
- Store nextPageToken for V1 API pagination support
- Add documentation for V1 API fixes

The V1 API uses alphanumeric IDs (e.g., "memos/cUsGvkRZ4bA2sknaFsBSZe")
which are now converted to stable numeric IDs for Logseq compatibility.
This allows the plugin to work with modern Memos instances while
maintaining backward compatibility with the existing numeric ID system.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replace logseq.Assets.makeSandboxStorage() with logseq.settings to store
sync status. This fixes the "BUG: should not join with empty dir" error
that occurs when Logseq tries to construct storage paths with empty base
directories.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add detailed logging throughout sync process for better debugging
- Remove API version detection, always use V1 API
- Add logging for API requests, responses, and sync flow
- Log sync status operations to track persistence
- Remove unused me() method and version detection logic

This helps diagnose issues when memos aren't appearing in Logseq
and simplifies the codebase by removing unnecessary API calls.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@EINDEX
Copy link
Owner

EINDEX commented Jul 13, 2025

Works well on the logseq MD version, merged.
Thanks @zh3036

@EINDEX EINDEX merged commit 336a1ca into EINDEX:main Jul 13, 2025
0 of 2 checks passed
Copy link

🎉 This PR is included in version 1.10.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants