{
	"issue": {
		"url": "https://api.github.com/repos/laurent22/joplin/issues/14677",
		"repository_url": "https://api.github.com/repos/laurent22/joplin",
		"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/14677/labels{/name}",
		"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/14677/comments",
		"events_url": "https://api.github.com/repos/laurent22/joplin/issues/14677/events",
		"html_url": "https://github.com/laurent22/joplin/pull/14677",
		"id": 4050975140,
		"node_id": "PR_kwDOBLftOs7JWK2Y",
		"number": 14677,
		"title": "Desktop: Fixes #11823: Fixed cancel behavior labels when switching config screens",
		"user": {
			"login": "Davideb18",
			"id": 100711919,
			"node_id": "U_kgDOBgC97w",
			"avatar_url": "https://avatars.githubusercontent.com/u/100711919?v=4",
			"gravatar_id": "",
			"url": "https://api.github.com/users/Davideb18",
			"html_url": "https://github.com/Davideb18",
			"followers_url": "https://api.github.com/users/Davideb18/followers",
			"following_url": "https://api.github.com/users/Davideb18/following{/other_user}",
			"gists_url": "https://api.github.com/users/Davideb18/gists{/gist_id}",
			"starred_url": "https://api.github.com/users/Davideb18/starred{/owner}{/repo}",
			"subscriptions_url": "https://api.github.com/users/Davideb18/subscriptions",
			"organizations_url": "https://api.github.com/users/Davideb18/orgs",
			"repos_url": "https://api.github.com/users/Davideb18/repos",
			"events_url": "https://api.github.com/users/Davideb18/events{/privacy}",
			"received_events_url": "https://api.github.com/users/Davideb18/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": 1080341216,
				"node_id": "MDU6TGFiZWwxMDgwMzQxMjE2",
				"url": "https://api.github.com/repos/laurent22/joplin/labels/desktop",
				"name": "desktop",
				"color": "ffc274",
				"default": false,
				"description": "All desktop platforms"
			}
		],
		"state": "closed",
		"locked": false,
		"assignees": [],
		"milestone": null,
		"comments": 4,
		"created_at": "2026-03-10T10:55:20Z",
		"updated_at": "2026-03-10T14:43:05Z",
		"closed_at": "2026-03-10T12:14:04Z",
		"assignee": null,
		"author_association": "CONTRIBUTOR",
		"active_lock_reason": null,
		"draft": false,
		"pull_request": {
			"url": "https://api.github.com/repos/laurent22/joplin/pulls/14677",
			"html_url": "https://github.com/laurent22/joplin/pull/14677",
			"diff_url": "https://github.com/laurent22/joplin/pull/14677.diff",
			"patch_url": "https://github.com/laurent22/joplin/pull/14677.patch",
			"merged_at": "2026-03-10T12:14:04Z"
		},
		"body": "### Problem\r\nWhen a user has unsaved changes in the Configuration screen and tries to switch to another screen (like \"Keyboard Shortcuts\"), a confirmation dialog appears. Previously, the buttons were \"OK\" and \"Cancel\", which was highly misleading as discussed in issue #11823.\r\n\r\n### Solution\r\nI replaced `shim.showConfirmationDialog` with `shim.showMessageBox` in `ConfigScreen.tsx`. This allows the use of custom button labels. The buttons are now explicitly labeled \"Save changes\" and \"Discard changes\", making the UI much clearer and resolving the confusion. \r\n\r\n### Test Plan\r\nManual verification steps:\r\n1. Open Joplin Desktop.\r\n2. Go to Settings/Configuration.\r\n3. Change any setting (e.g., toggle an option in Note History).\r\n4. Do not click \"Apply\" or \"OK\".\r\n5. Click on a different section (like \"Keyboard Shortcuts\") on the left menu.\r\n6. The dialog successfully appears with the new \"Save changes\" and \"Discard changes\" buttons.\r\n\r\nHere is the screenshot of the new UI:\r\n\r\nhttps://github.com/user-attachments/assets/f8a2c9e2-b5f8-4ec9-b7af-1d3949af9524\r\n\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/14677/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/14677/timeline",
		"performed_via_github_app": null,
		"state_reason": null
	},
	"comments": [
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4030519392",
			"html_url": "https://github.com/laurent22/joplin/pull/14677#issuecomment-4030519392",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14677",
			"id": 4030519392,
			"node_id": "IC_kwDOBLftOs7wPNhg",
			"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-10T10:55:50Z",
			"updated_at": "2026-03-10T10:59:40Z",
			"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**: `ca5d27dc-93f3-42b2-9616-d6071115682c`\n\n</details>\n\n<details>\n<summary>📥 Commits</summary>\n\nReviewing files that changed from the base of the PR and between 7214823c745a5d06027a107f3535fa52e971dedc and 71b16ff553db60b4b4e64f63b1127acae3778520.\n\n</details>\n\n<details>\n<summary>📒 Files selected for processing (1)</summary>\n\n* `packages/app-desktop/gui/ConfigScreen/ConfigScreen.tsx`\n\n</details>\n\n</details>\n\n---\n\n\n<!-- walkthrough_start -->\n\n<details>\n<summary>📝 Walkthrough</summary>\n\n## Walkthrough\n\nThis change replaces a simple confirmation dialog with an explicit message box offering \"Save changes\" and \"Discard changes\" options in ConfigScreen. Logic is added to check the user's selection (answer === 0) before proceeding with saving settings.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**Confirmation Dialog Enhancement** <br> `packages/app-desktop/gui/ConfigScreen/ConfigScreen.tsx`|Replaces basic confirmation dialogue with explicit message box offering two options. Adds handling of message box result with condition check for save action. Imports MessageBoxType from shim and configures it as Confirm type. Updates variable naming from `ok` to `answer` to reflect new dialogue result.|\n\n## Suggested labels\n\n`bug`, `desktop`\n\n</details>\n\n<!-- walkthrough_end -->\n\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 4</summary>\n\n<details>\n<summary>✅ Passed checks (4 passed)</summary>\n\n|               Check name              | Status   | Explanation                                                                                                                                                                           |\n| :-----------------------------------: | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n|              Title check              | ✅ Passed | The title accurately describes the main change: fixing button labels in the config screen confirmation dialog from misleading 'OK/Cancel' to explicit 'Save changes/Discard changes'. |\n|           Description check           | ✅ Passed | The description is well-related to the changeset, clearly explaining the problem, solution, and including a manual test plan with screenshot evidence.                                |\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 | PR description includes problem statement (issue `#11823`), solution explanation (dialog replacement), and test plan with 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- [ ] <!-- {\"checkboxId\": \"07f1e7d6-8a8e-4e23-9900-8731c2c87f58\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Post copyable unit tests in a comment\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n\n<!-- announcements_start -->\n\n> [!TIP]\n> Try [Coding Plans](https://www.coderabbit.ai/issue-planner). Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).\n> Share your feedback on [Discord](https://discord.com/invite/coderabbit).\n\n<!-- announcements_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=14677)! 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/4030519392/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/4030542555",
			"html_url": "https://github.com/laurent22/joplin/pull/14677#issuecomment-4030542555",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14677",
			"id": 4030542555,
			"node_id": "IC_kwDOBLftOs7wPTLb",
			"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-10T10:59:37Z",
			"updated_at": "2026-03-10T14:43:05Z",
			"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/4030542555/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/4030572338",
			"html_url": "https://github.com/laurent22/joplin/pull/14677#issuecomment-4030572338",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14677",
			"id": 4030572338,
			"node_id": "IC_kwDOBLftOs7wPacy",
			"user": {
				"login": "Davideb18",
				"id": 100711919,
				"node_id": "U_kgDOBgC97w",
				"avatar_url": "https://avatars.githubusercontent.com/u/100711919?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/Davideb18",
				"html_url": "https://github.com/Davideb18",
				"followers_url": "https://api.github.com/users/Davideb18/followers",
				"following_url": "https://api.github.com/users/Davideb18/following{/other_user}",
				"gists_url": "https://api.github.com/users/Davideb18/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/Davideb18/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/Davideb18/subscriptions",
				"organizations_url": "https://api.github.com/users/Davideb18/orgs",
				"repos_url": "https://api.github.com/users/Davideb18/repos",
				"events_url": "https://api.github.com/users/Davideb18/events{/privacy}",
				"received_events_url": "https://api.github.com/users/Davideb18/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-03-10T11:04:53Z",
			"updated_at": "2026-03-10T11:04:53Z",
			"body": "I have read the CLA Document and I hereby sign the CLA",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4030572338/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/4030950752",
			"html_url": "https://github.com/laurent22/joplin/pull/14677#issuecomment-4030950752",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14677",
			"id": 4030950752,
			"node_id": "IC_kwDOBLftOs7wQ21g",
			"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-10T12:14:10Z",
			"updated_at": "2026-03-10T12:14:10Z",
			"body": "Looks good, thank you!",
			"author_association": "OWNER",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4030950752/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
		}
	]
}