文件
mynode/readme/cla/consent_records/18ToNyStArK18_188708345.json
chen 301194963b
一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
feat: Initial clean release of CHM
2026-11-04 11:29:39 +08:00

499 行
35 KiB
JSON

此文件含有不可见的 Unicode 字符

此文件含有人类无法区分的不可见的 Unicode 字符,但可以由计算机进行不同的处理。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

{
"issue": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/14937",
"repository_url": "https://api.github.com/repos/laurent22/joplin",
"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/14937/labels{/name}",
"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/14937/comments",
"events_url": "https://api.github.com/repos/laurent22/joplin/issues/14937/events",
"html_url": "https://github.com/laurent22/joplin/pull/14937",
"id": 4161781836,
"node_id": "PR_kwDOBLftOs7OUQaX",
"number": 14937,
"title": "fix: show correct notebook context menu options when server is offline",
"user": {
"login": "18ToNyStArK18",
"id": 188708345,
"node_id": "U_kgDOCz91-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/188708345?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/18ToNyStArK18",
"html_url": "https://github.com/18ToNyStArK18",
"followers_url": "https://api.github.com/users/18ToNyStArK18/followers",
"following_url": "https://api.github.com/users/18ToNyStArK18/following{/other_user}",
"gists_url": "https://api.github.com/users/18ToNyStArK18/gists{/gist_id}",
"starred_url": "https://api.github.com/users/18ToNyStArK18/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/18ToNyStArK18/subscriptions",
"organizations_url": "https://api.github.com/users/18ToNyStArK18/orgs",
"repos_url": "https://api.github.com/users/18ToNyStArK18/repos",
"events_url": "https://api.github.com/users/18ToNyStArK18/events{/privacy}",
"received_events_url": "https://api.github.com/users/18ToNyStArK18/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"labels": [
{
"id": 519700741,
"node_id": "MDU6TGFiZWw1MTk3MDA3NDE=",
"url": "https://api.github.com/repos/laurent22/joplin/labels/bug",
"name": "bug",
"color": "cf353b",
"default": true,
"description": "It's a bug"
},
{
"id": 1079605111,
"node_id": "MDU6TGFiZWwxMDc5NjA1MTEx",
"url": "https://api.github.com/repos/laurent22/joplin/labels/mobile",
"name": "mobile",
"color": "ffc274",
"default": false,
"description": "All mobile platforms"
},
{
"id": 1080341216,
"node_id": "MDU6TGFiZWwxMDgwMzQxMjE2",
"url": "https://api.github.com/repos/laurent22/joplin/labels/desktop",
"name": "desktop",
"color": "ffc274",
"default": false,
"description": "All desktop platforms"
},
{
"id": 9511910273,
"node_id": "LA_kwDOBLftOs8AAAACNvQ7gQ",
"url": "https://api.github.com/repos/laurent22/joplin/labels/Sharing",
"name": "Sharing",
"color": "91ca55",
"default": false,
"description": ""
}
],
"state": "closed",
"locked": false,
"assignees": [],
"milestone": null,
"comments": 5,
"created_at": "2026-03-28T21:54:28Z",
"updated_at": "2026-04-02T06:22:04Z",
"closed_at": "2026-03-31T14:45:24Z",
"assignee": null,
"author_association": "NONE",
"active_lock_reason": null,
"draft": false,
"pull_request": {
"url": "https://api.github.com/repos/laurent22/joplin/pulls/14937",
"html_url": "https://github.com/laurent22/joplin/pull/14937",
"diff_url": "https://github.com/laurent22/joplin/pull/14937.diff",
"patch_url": "https://github.com/laurent22/joplin/pull/14937.patch",
"merged_at": null
},
"body": "## Problem\r\nWhen a user owns a shared notebook and the Joplin Server is unreachable,the right-click context menu incorrectly shows \"Leave notebook...\" even though the current user is the owner. Owners should never see this option.\r\n\r\nThis is because the shareService redux starts completely empty on boot and as the server is offline it cannot populate state.shareService.shares and this causes `isSharedFolderOwner()` to return false. Because of this the menu behave as if the current user is a guest rather than the owner.\r\n\r\nThe cache is stored but not dispatched to the Redux store\r\n\r\n## Solution\r\n\r\nAdded a new reducer action `SHARE_STATE_SET` that seeds `state.shareService` with the cached shares immediately after the Redux store is initialized, before any sync attempt. This is done in both the desktop (`app.ts`) and mobile (`buildStartupTasks.ts`) boot paths.\r\n\r\nThis is a low risk change — it only affects the initial state of the share service and does not touch any sync or sharing logic.\r\n\r\n## Test Plan\r\n\r\n1. Configure Joplin Desktop to sync with Joplin Server\r\n2. Share a notebook with another user and sync\r\n3. Quit Joplin Desktop and stop the server\r\n4. Reopen Joplin Desktop and right-click the shared notebook\r\n5. Confirm \"Leave notebook...\" is gone and \"Share notebook...\" is visible\r\n\r\n\r\n##Demo\r\nhttps://github.com/user-attachments/assets/a18c292b-6844-4d82-917f-4b9c2d793bac\r\n\r\nFixes #12994\r\n",
"closed_by": {
"login": "laurent22",
"id": 1285584,
"node_id": "MDQ6VXNlcjEyODU1ODQ=",
"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/laurent22",
"html_url": "https://github.com/laurent22",
"followers_url": "https://api.github.com/users/laurent22/followers",
"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
"organizations_url": "https://api.github.com/users/laurent22/orgs",
"repos_url": "https://api.github.com/users/laurent22/repos",
"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
"received_events_url": "https://api.github.com/users/laurent22/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/14937/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
},
"timeline_url": "https://api.github.com/repos/laurent22/joplin/issues/14937/timeline",
"performed_via_github_app": null,
"state_reason": null
},
"comments": [
{
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4148884146",
"html_url": "https://github.com/laurent22/joplin/pull/14937#issuecomment-4148884146",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14937",
"id": 4148884146,
"node_id": "IC_kwDOBLftOs73SvKy",
"user": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-28T21:54:40Z",
"updated_at": "2026-03-31T15:46:59Z",
"body": "****CLA Assistant Lite bot**** All contributors have signed the CLA ✍️ ✅",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4148884146/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
},
"performed_via_github_app": {
"id": 15368,
"client_id": "Iv1.05c79e9ad1f6bdfa",
"slug": "github-actions",
"node_id": "MDM6QXBwMTUzNjg=",
"owner": {
"login": "github",
"id": 9919,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
"avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github",
"html_url": "https://github.com/github",
"followers_url": "https://api.github.com/users/github/followers",
"following_url": "https://api.github.com/users/github/following{/other_user}",
"gists_url": "https://api.github.com/users/github/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github/subscriptions",
"organizations_url": "https://api.github.com/users/github/orgs",
"repos_url": "https://api.github.com/users/github/repos",
"events_url": "https://api.github.com/users/github/events{/privacy}",
"received_events_url": "https://api.github.com/users/github/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"name": "GitHub Actions",
"description": "Automate your workflow from idea to production",
"external_url": "https://help.github.com/en/actions",
"html_url": "https://github.com/apps/github-actions",
"created_at": "2018-07-30T09:30:17Z",
"updated_at": "2026-05-05T14:51:38Z",
"permissions": {
"actions": "write",
"administration": "read",
"artifact_metadata": "write",
"attestations": "write",
"checks": "write",
"code_quality": "write",
"contents": "write",
"copilot_requests": "write",
"deployments": "write",
"discussions": "write",
"issues": "write",
"merge_queues": "write",
"metadata": "read",
"models": "read",
"packages": "write",
"pages": "write",
"pull_requests": "write",
"repository_hooks": "write",
"repository_projects": "write",
"security_events": "write",
"statuses": "write",
"vulnerability_alerts": "read"
},
"events": [
"branch_protection_rule",
"check_run",
"check_suite",
"create",
"delete",
"deployment",
"deployment_status",
"discussion",
"discussion_comment",
"fork",
"gollum",
"issues",
"issue_comment",
"label",
"merge_group",
"milestone",
"page_build",
"public",
"pull_request",
"pull_request_review",
"pull_request_review_comment",
"push",
"registry_package",
"release",
"repository",
"repository_dispatch",
"status",
"watch",
"workflow_dispatch",
"workflow_run"
]
}
},
{
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4148884431",
"html_url": "https://github.com/laurent22/joplin/pull/14937#issuecomment-4148884431",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14937",
"id": 4148884431,
"node_id": "IC_kwDOBLftOs73SvPP",
"user": {
"login": "coderabbitai[bot]",
"id": 136622811,
"node_id": "BOT_kgDOCCSy2w",
"avatar_url": "https://avatars.githubusercontent.com/in/347564?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/coderabbitai%5Bbot%5D",
"html_url": "https://github.com/apps/coderabbitai",
"followers_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/coderabbitai%5Bbot%5D/received_events",
"type": "Bot",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-28T21:54:54Z",
"updated_at": "2026-03-29T06:32:03Z",
"body": "<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\nNo actionable comments were generated in the recent review. 🎉\n\n<details>\n<summary>ℹ️ Recent review info</summary>\n\n<details>\n<summary>⚙️ Run configuration</summary>\n\n**Configuration used**: Path: .coderabbit.yaml\n\n**Review profile**: CHILL\n\n**Plan**: Pro\n\n**Run ID**: `3bcb7daa-620e-4d71-9411-2583e0badf17`\n\n</details>\n\n<details>\n<summary>📥 Commits</summary>\n\nReviewing files that changed from the base of the PR and between 780fb4b11bcd7f9d945c4ce7b29cacbe8a71c0f6 and 971d44375d112f0352e02581a73847c498752fa0.\n\n</details>\n\n<details>\n<summary>📒 Files selected for processing (3)</summary>\n\n* `packages/app-desktop/app.ts`\n* `packages/app-mobile/utils/buildStartupTasks.ts`\n* `packages/lib/services/share/reducer.ts`\n\n</details>\n\n<details>\n<summary>✅ Files skipped from review due to trivial changes (3)</summary>\n\n* packages/app-desktop/app.ts\n* packages/lib/services/share/reducer.ts\n* packages/app-mobile/utils/buildStartupTasks.ts\n\n</details>\n\n</details>\n\n---\n\n\n<!-- walkthrough_start -->\n\n<details>\n<summary>📝 Walkthrough</summary>\n\n## Walkthrough\n\nThe PR introduces a new Redux action type `SHARE_STATE_SET` to the share service reducer and modifies the startup sequences in both desktop and mobile applications to conditionally dispatch this action early with cached share state, ensuring share-related state is populated into Redux before CommandService initialization.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**Share Reducer** <br> `packages/lib/services/share/reducer.ts`|Introduced new `SHARE_STATE_SET` action type that replaces entire share-service state slices (`shares`, `shareUsers`, `shareInvitations`) from dispatched action payload with sensible defaults.|\n|**Application Startup** <br> `packages/app-desktop/app.ts`, `packages/app-mobile/utils/buildStartupTasks.ts`|Added conditional dispatch of `SHARE_STATE_SET` action during startup task execution using `BaseItem.syncShareCache` data, ensuring cached share state is populated in Redux before CommandService and KeymapService initialization.|\n\n</details>\n\n<!-- walkthrough_end -->\n\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 6</summary>\n\n<details>\n<summary>✅ Passed checks (6 passed)</summary>\n\n| Check name | Status | Explanation |\n| :-----------------------------------: | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Title check | ✅ Passed | The title accurately describes the primary fix: showing correct notebook context menu options when the server is offline by ensuring share state is properly initialized. |\n| Description check | ✅ Passed | The description clearly explains the problem, root cause, solution, and test plan, all directly related to the changeset. |\n| Linked Issues check | ✅ Passed | The PR successfully implements the requirements from issue `#12994`: it ensures the share owner sees 'Share notebook...' instead of 'Leave notebook...' when the server is offline by seeding share state from cache. |\n| Out of Scope Changes check | ✅ Passed | All changes are directly scoped to seeding share service state from cache during startup; no unrelated modifications to sync or sharing logic are present. |\n| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |\n| Pr Description Must Follow Guidelines | ✅ Passed | The pull request description includes all three required sections: problem statement, solution explanation, and detailed test plan with five actionable verification steps. |\n\n</details>\n\n<sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing Touches</summary>\n\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} --> Create PR with unit tests\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n\n<!-- tips_start -->\n\n---\n\nThanks for using [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=laurent22/joplin&utm_content=14937)! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.\n\n<details>\n<summary>❤️ Share</summary>\n\n- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)\n- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)\n- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)\n- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)\n\n</details>\n\n<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>\n\n<!-- tips_end -->\n\n<!-- internal state start -->\n\n\n<!-- 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 -->\n\n<!-- internal state end -->",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4148884431/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
},
"performed_via_github_app": {
"id": 347564,
"client_id": "Iv1.6aaafe4fe882736b",
"slug": "coderabbitai",
"node_id": "A_kwHOB96YWc4ABU2s",
"owner": {
"login": "coderabbitai",
"id": 132028505,
"node_id": "O_kgDOB96YWQ",
"avatar_url": "https://avatars.githubusercontent.com/u/132028505?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/coderabbitai",
"html_url": "https://github.com/coderabbitai",
"followers_url": "https://api.github.com/users/coderabbitai/followers",
"following_url": "https://api.github.com/users/coderabbitai/following{/other_user}",
"gists_url": "https://api.github.com/users/coderabbitai/gists{/gist_id}",
"starred_url": "https://api.github.com/users/coderabbitai/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/coderabbitai/subscriptions",
"organizations_url": "https://api.github.com/users/coderabbitai/orgs",
"repos_url": "https://api.github.com/users/coderabbitai/repos",
"events_url": "https://api.github.com/users/coderabbitai/events{/privacy}",
"received_events_url": "https://api.github.com/users/coderabbitai/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"name": "coderabbitai",
"description": "# Transforming Code Reviews with AI\r\n\r\n## Features\r\n\r\n**Automated Reviews**: Continuous reviews of the pull requests including incremental commits. \r\n\r\n**Summarization**: Generates high-level summary and a technical walkthrough of the PR changes. \r\n\r\n**Line-by-line review**: Provides line-by-line suggestions committable with one click.\r\n\r\n**Codebase verification**: Verifies the impact on the overall codebase and identifies missing changes.\r\n\r\n**Insights into your code**: Ask any questions on your codebase within the pull request \r\n\r\n**Chat about your code** : Chat with the bot around your code. The more you chat, the smarter it gets.\r\n\r\n**Issue Validation**: Validates the PR against the linked issues and identifies other related issues \r\n\r\n\r\n\r\n",
"external_url": "https://coderabbit.ai?utm_source=cr_app&utm_medium=github",
"html_url": "https://github.com/apps/coderabbitai",
"created_at": "2023-06-14T15:47:27Z",
"updated_at": "2026-03-14T07:58:44Z",
"permissions": {
"actions": "read",
"checks": "write",
"contents": "write",
"discussions": "read",
"issues": "write",
"members": "read",
"metadata": "read",
"pull_requests": "write",
"statuses": "write"
},
"events": [
"issues",
"issue_comment",
"label",
"organization",
"pull_request",
"pull_request_review",
"pull_request_review_comment",
"pull_request_review_thread",
"release",
"repository"
]
}
},
{
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4149456960",
"html_url": "https://github.com/laurent22/joplin/pull/14937#issuecomment-4149456960",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14937",
"id": 4149456960,
"node_id": "IC_kwDOBLftOs73U7BA",
"user": {
"login": "18ToNyStArK18",
"id": 188708345,
"node_id": "U_kgDOCz91-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/188708345?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/18ToNyStArK18",
"html_url": "https://github.com/18ToNyStArK18",
"followers_url": "https://api.github.com/users/18ToNyStArK18/followers",
"following_url": "https://api.github.com/users/18ToNyStArK18/following{/other_user}",
"gists_url": "https://api.github.com/users/18ToNyStArK18/gists{/gist_id}",
"starred_url": "https://api.github.com/users/18ToNyStArK18/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/18ToNyStArK18/subscriptions",
"organizations_url": "https://api.github.com/users/18ToNyStArK18/orgs",
"repos_url": "https://api.github.com/users/18ToNyStArK18/repos",
"events_url": "https://api.github.com/users/18ToNyStArK18/events{/privacy}",
"received_events_url": "https://api.github.com/users/18ToNyStArK18/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-29T05:15:25Z",
"updated_at": "2026-03-29T05:15:25Z",
"body": "I have read the CLA Document and I hereby sign the CLA",
"author_association": "NONE",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4149456960/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
},
"performed_via_github_app": null
},
{
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4163193520",
"html_url": "https://github.com/laurent22/joplin/pull/14937#issuecomment-4163193520",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14937",
"id": 4163193520,
"node_id": "IC_kwDOBLftOs74JUqw",
"user": {
"login": "laurent22",
"id": 1285584,
"node_id": "MDQ6VXNlcjEyODU1ODQ=",
"avatar_url": "https://avatars.githubusercontent.com/u/1285584?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/laurent22",
"html_url": "https://github.com/laurent22",
"followers_url": "https://api.github.com/users/laurent22/followers",
"following_url": "https://api.github.com/users/laurent22/following{/other_user}",
"gists_url": "https://api.github.com/users/laurent22/gists{/gist_id}",
"starred_url": "https://api.github.com/users/laurent22/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/laurent22/subscriptions",
"organizations_url": "https://api.github.com/users/laurent22/orgs",
"repos_url": "https://api.github.com/users/laurent22/repos",
"events_url": "https://api.github.com/users/laurent22/events{/privacy}",
"received_events_url": "https://api.github.com/users/laurent22/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-31T14:45:23Z",
"updated_at": "2026-03-31T14:45:23Z",
"body": "Thank you for your PR but I believe this has now been fixed as part of another PR",
"author_association": "OWNER",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4163193520/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
},
"performed_via_github_app": null
},
{
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4174958288",
"html_url": "https://github.com/laurent22/joplin/pull/14937#issuecomment-4174958288",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14937",
"id": 4174958288,
"node_id": "IC_kwDOBLftOs742M7Q",
"user": {
"login": "18ToNyStArK18",
"id": 188708345,
"node_id": "U_kgDOCz91-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/188708345?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/18ToNyStArK18",
"html_url": "https://github.com/18ToNyStArK18",
"followers_url": "https://api.github.com/users/18ToNyStArK18/followers",
"following_url": "https://api.github.com/users/18ToNyStArK18/following{/other_user}",
"gists_url": "https://api.github.com/users/18ToNyStArK18/gists{/gist_id}",
"starred_url": "https://api.github.com/users/18ToNyStArK18/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/18ToNyStArK18/subscriptions",
"organizations_url": "https://api.github.com/users/18ToNyStArK18/orgs",
"repos_url": "https://api.github.com/users/18ToNyStArK18/repos",
"events_url": "https://api.github.com/users/18ToNyStArK18/events{/privacy}",
"received_events_url": "https://api.github.com/users/18ToNyStArK18/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-04-02T06:22:04Z",
"updated_at": "2026-04-02T06:22:04Z",
"body": "> Thank you for your PR but I believe this has now been fixed as part of another PR\r\n\r\nThanks of the response @laurent22 But when i forked the repo I found the bug, In Included that in the demo video please look into it \r\nThanks",
"author_association": "NONE",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4174958288/reactions",
"total_count": 0,
"+1": 0,
"-1": 0,
"laugh": 0,
"hooray": 0,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
},
"performed_via_github_app": null
}
]
}