{
	"issue": {
		"url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
		"repository_url": "https://api.github.com/repos/laurent22/joplin",
		"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/15055/labels{/name}",
		"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/15055/comments",
		"events_url": "https://api.github.com/repos/laurent22/joplin/issues/15055/events",
		"html_url": "https://github.com/laurent22/joplin/pull/15055",
		"id": 4229344951,
		"node_id": "PR_kwDOBLftOs7RAhl1",
		"number": 15055,
		"title": "CLI, Desktop: shim-init-node: add support for PQC TLS",
		"user": {
			"login": "newAM",
			"id": 7845120,
			"node_id": "MDQ6VXNlcjc4NDUxMjA=",
			"avatar_url": "https://avatars.githubusercontent.com/u/7845120?v=4",
			"gravatar_id": "",
			"url": "https://api.github.com/users/newAM",
			"html_url": "https://github.com/newAM",
			"followers_url": "https://api.github.com/users/newAM/followers",
			"following_url": "https://api.github.com/users/newAM/following{/other_user}",
			"gists_url": "https://api.github.com/users/newAM/gists{/gist_id}",
			"starred_url": "https://api.github.com/users/newAM/starred{/owner}{/repo}",
			"subscriptions_url": "https://api.github.com/users/newAM/subscriptions",
			"organizations_url": "https://api.github.com/users/newAM/orgs",
			"repos_url": "https://api.github.com/users/newAM/repos",
			"events_url": "https://api.github.com/users/newAM/events{/privacy}",
			"received_events_url": "https://api.github.com/users/newAM/received_events",
			"type": "User",
			"user_view_type": "public",
			"site_admin": false
		},
		"labels": [
			{
				"id": 519700743,
				"node_id": "MDU6TGFiZWw1MTk3MDA3NDM=",
				"url": "https://api.github.com/repos/laurent22/joplin/labels/enhancement",
				"name": "enhancement",
				"color": "5ebeff",
				"default": true,
				"description": "Feature requests and code enhancements"
			},
			{
				"id": 926488748,
				"node_id": "MDU6TGFiZWw5MjY0ODg3NDg=",
				"url": "https://api.github.com/repos/laurent22/joplin/labels/security",
				"name": "security",
				"color": "cf353b",
				"default": false,
				"description": ""
			},
			{
				"id": 10683073245,
				"node_id": "LA_kwDOBLftOs8AAAACfMLC3Q",
				"url": "https://api.github.com/repos/laurent22/joplin/labels/v3.7",
				"name": "v3.7",
				"color": "53EAB7",
				"default": false,
				"description": ""
			}
		],
		"state": "closed",
		"locked": false,
		"assignees": [],
		"milestone": null,
		"comments": 10,
		"created_at": "2026-04-09T04:08:16Z",
		"updated_at": "2026-04-30T15:04:10Z",
		"closed_at": "2026-04-30T14:50:49Z",
		"assignee": null,
		"author_association": "CONTRIBUTOR",
		"active_lock_reason": null,
		"draft": false,
		"pull_request": {
			"url": "https://api.github.com/repos/laurent22/joplin/pulls/15055",
			"html_url": "https://github.com/laurent22/joplin/pull/15055",
			"diff_url": "https://github.com/laurent22/joplin/pull/15055.diff",
			"patch_url": "https://github.com/laurent22/joplin/pull/15055.patch",
			"merged_at": "2026-04-30T14:50:49Z"
		},
		"body": "This is a new feature, adding post-quantum resistant TLS key exchange to Joplin.\r\n\r\nReference this forum post for details: https://discourse.joplinapp.org/t/postquantum-safe/49540/1\r\n\r\nI tested `joplin-desktop` on Linux (NixOS) with a webdav sync target behind nginx, using the nginx option `ssl_ecdh_curve X25519MLKEM768;` to enforce post-quantum key exchange.\r\n\r\nI also did a wireshark capture and validated that X25519MLKEM768 is sent on the wire in a TLS ClientHello.",
		"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/15055/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/15055/timeline",
		"performed_via_github_app": null,
		"state_reason": null
	},
	"comments": [
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4211389760",
			"html_url": "https://github.com/laurent22/joplin/pull/15055#issuecomment-4211389760",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
			"id": 4211389760,
			"node_id": "IC_kwDOBLftOs77BLVA",
			"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-04-09T04:08:27Z",
			"updated_at": "2026-04-30T15:04:10Z",
			"body": "All contributors have signed the CLA  ✍️ ✅<br/><sub>Posted by the ****CLA Assistant Lite bot****.</sub>",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4211389760/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/4211390412",
			"html_url": "https://github.com/laurent22/joplin/pull/15055#issuecomment-4211390412",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
			"id": 4211390412,
			"node_id": "IC_kwDOBLftOs77BLfM",
			"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-04-09T04:08:41Z",
			"updated_at": "2026-04-10T23:44:04Z",
			"body": "<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- This is an auto-generated comment: review paused by coderabbit.ai -->\n\n> [!NOTE]\n> ## Reviews paused\n> \n> It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the `reviews.auto_review.auto_pause_after_reviewed_commits` setting.\n> \n> Use the following commands to manage reviews:\n> - `@coderabbitai resume` to resume automatic reviews.\n> - `@coderabbitai review` to trigger a single review.\n> \n> Use the checkboxes below for quick actions:\n> - [ ] <!-- {\"checkboxId\": \"7f6cc2e2-2e4e-497a-8c31-c9e4573e93d1\"} --> ▶️ Resume reviews\n> - [ ] <!-- {\"checkboxId\": \"e9bb8d72-00e8-4f67-9cb2-caf3b22574fe\"} --> 🔍 Trigger review\n\n<!-- end of auto-generated comment: review paused by coderabbit.ai -->\n<!-- walkthrough_start -->\n\n<details>\n<summary>📝 Walkthrough</summary>\n\n## Walkthrough\n\nUpdated HTTP agent configuration in the Node shim to use `shim.httpAgent(url)` instead of `null` when proxying is inactive. Added runtime detection for TLS ECDH curve support (`X25519MLKEM768:X25519:P-256:P-384`), threading the detected curve into both direct HTTP agents and proxy agent options.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**TLS configuration and HTTP agent setup** <br> `packages/lib/shim-init-node.ts`|Added runtime TLS ECDH curve feature detection with fallback to `'auto'`. Modified `shim.fetch` and `shim.fetchBlob` to use `shim.httpAgent(url)` instead of `null` for the agent option when proxying is inactive. Threaded detected ECDH curve value into both direct HTTP/HTTPS agent options and proxy agent (`hpagent`) configuration.|\n\n</details>\n\n<!-- walkthrough_end -->\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n---\n\n<!-- pre_merge_checks_override_start -->\n> [!IMPORTANT]\n> ## Pre-merge checks failed\n> \n> Please resolve all errors before merging. Addressing warnings is optional.\n<!-- pre_merge_checks_override_end -->\n\n### ❌ Failed checks (1 error, 1 warning)\n\n|               Check name              | Status     | Explanation                                                                                                                                                                                 | Resolution                                                                                                                                                       |\n| :-----------------------------------: | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Pr Description Must Follow Guidelines | ❌ Error    | PR description relies on external forum discussion rather than being self-contained, lacks explicit problem/solution/test sections, and includes no new unit tests for the PQC TLS feature. | Update PR description with clear Problem, Solution, and Test Plan sections; add unit tests to shim-init-node.test.ts; verify testing on all supported platforms. |\n|           Docstring Coverage          | ⚠️ Warning | Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.                                                                                                        | Write docstrings for the functions missing them to satisfy the coverage threshold.                                                                               |\n\n<details>\n<summary>✅ Passed checks (2 passed)</summary>\n\n|     Check name    | Status   | Explanation                                                                                                                                                                                                                      |\n| :---------------: | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n|    Title check    | ✅ Passed | The title accurately describes the main change: adding support for post-quantum cryptography TLS to the shim-init-node module, which aligns with the changeset's implementation of PQC key exchange detection and configuration. |\n| Description check | ✅ Passed | The description is directly related to the changeset, providing context about the new PQC TLS feature, referencing relevant discussion, and documenting testing performed on the implementation.                                 |\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=15055)! 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<!-- [encoded data, 4732 characters] -->\n\n<!-- internal state end -->",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4211390412/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/4211403448",
			"html_url": "https://github.com/laurent22/joplin/pull/15055#issuecomment-4211403448",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
			"id": 4211403448,
			"node_id": "IC_kwDOBLftOs77BOq4",
			"user": {
				"login": "newAM",
				"id": 7845120,
				"node_id": "MDQ6VXNlcjc4NDUxMjA=",
				"avatar_url": "https://avatars.githubusercontent.com/u/7845120?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/newAM",
				"html_url": "https://github.com/newAM",
				"followers_url": "https://api.github.com/users/newAM/followers",
				"following_url": "https://api.github.com/users/newAM/following{/other_user}",
				"gists_url": "https://api.github.com/users/newAM/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/newAM/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/newAM/subscriptions",
				"organizations_url": "https://api.github.com/users/newAM/orgs",
				"repos_url": "https://api.github.com/users/newAM/repos",
				"events_url": "https://api.github.com/users/newAM/events{/privacy}",
				"received_events_url": "https://api.github.com/users/newAM/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-04-09T04:13:03Z",
			"updated_at": "2026-04-09T04:13:03Z",
			"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/4211403448/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/4211471618",
			"html_url": "https://github.com/laurent22/joplin/pull/15055#issuecomment-4211471618",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
			"id": 4211471618,
			"node_id": "IC_kwDOBLftOs77BfUC",
			"user": {
				"login": "newAM",
				"id": 7845120,
				"node_id": "MDQ6VXNlcjc4NDUxMjA=",
				"avatar_url": "https://avatars.githubusercontent.com/u/7845120?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/newAM",
				"html_url": "https://github.com/newAM",
				"followers_url": "https://api.github.com/users/newAM/followers",
				"following_url": "https://api.github.com/users/newAM/following{/other_user}",
				"gists_url": "https://api.github.com/users/newAM/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/newAM/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/newAM/subscriptions",
				"organizations_url": "https://api.github.com/users/newAM/orgs",
				"repos_url": "https://api.github.com/users/newAM/repos",
				"events_url": "https://api.github.com/users/newAM/events{/privacy}",
				"received_events_url": "https://api.github.com/users/newAM/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-04-09T04:34:13Z",
			"updated_at": "2026-04-09T04:36:22Z",
			"body": "Took a stab at auto-detection based on the bot feedback.  As far as I can determine there's no way to tell what node uses for curves when it is set to \"auto\".  On my system \"auto\" is `'X25519:P-256:P-384'`",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4211471618/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/4223622682",
			"html_url": "https://github.com/laurent22/joplin/pull/15055#issuecomment-4223622682",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
			"id": 4223622682,
			"node_id": "IC_kwDOBLftOs77v14a",
			"user": {
				"login": "mrjo118",
				"id": 6963004,
				"node_id": "MDQ6VXNlcjY5NjMwMDQ=",
				"avatar_url": "https://avatars.githubusercontent.com/u/6963004?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/mrjo118",
				"html_url": "https://github.com/mrjo118",
				"followers_url": "https://api.github.com/users/mrjo118/followers",
				"following_url": "https://api.github.com/users/mrjo118/following{/other_user}",
				"gists_url": "https://api.github.com/users/mrjo118/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/mrjo118/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/mrjo118/subscriptions",
				"organizations_url": "https://api.github.com/users/mrjo118/orgs",
				"repos_url": "https://api.github.com/users/mrjo118/repos",
				"events_url": "https://api.github.com/users/mrjo118/events{/privacy}",
				"received_events_url": "https://api.github.com/users/mrjo118/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-04-10T12:05:42Z",
			"updated_at": "2026-04-10T12:05:42Z",
			"body": "@newAM Thank you for your submission. Please could you elaborate on the testing which you have done for this code change in the PR description?\r\n\r\nIn particular, I'm wondering whether testing has actually been done on one of the mobile apps (eg. Android), or if you've assumed it would work because it worked on the Linux app",
			"author_association": "COLLABORATOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4223622682/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/4224995152",
			"html_url": "https://github.com/laurent22/joplin/pull/15055#issuecomment-4224995152",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
			"id": 4224995152,
			"node_id": "IC_kwDOBLftOs771E9Q",
			"user": {
				"login": "newAM",
				"id": 7845120,
				"node_id": "MDQ6VXNlcjc4NDUxMjA=",
				"avatar_url": "https://avatars.githubusercontent.com/u/7845120?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/newAM",
				"html_url": "https://github.com/newAM",
				"followers_url": "https://api.github.com/users/newAM/followers",
				"following_url": "https://api.github.com/users/newAM/following{/other_user}",
				"gists_url": "https://api.github.com/users/newAM/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/newAM/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/newAM/subscriptions",
				"organizations_url": "https://api.github.com/users/newAM/orgs",
				"repos_url": "https://api.github.com/users/newAM/repos",
				"events_url": "https://api.github.com/users/newAM/events{/privacy}",
				"received_events_url": "https://api.github.com/users/newAM/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-04-10T15:52:10Z",
			"updated_at": "2026-04-10T15:52:10Z",
			"body": "Done!  I did not test Android, only the joplin-desktop electron application on Linux.",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4224995152/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/4225144730",
			"html_url": "https://github.com/laurent22/joplin/pull/15055#issuecomment-4225144730",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
			"id": 4225144730,
			"node_id": "IC_kwDOBLftOs771pea",
			"user": {
				"login": "mrjo118",
				"id": 6963004,
				"node_id": "MDQ6VXNlcjY5NjMwMDQ=",
				"avatar_url": "https://avatars.githubusercontent.com/u/6963004?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/mrjo118",
				"html_url": "https://github.com/mrjo118",
				"followers_url": "https://api.github.com/users/mrjo118/followers",
				"following_url": "https://api.github.com/users/mrjo118/following{/other_user}",
				"gists_url": "https://api.github.com/users/mrjo118/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/mrjo118/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/mrjo118/subscriptions",
				"organizations_url": "https://api.github.com/users/mrjo118/orgs",
				"repos_url": "https://api.github.com/users/mrjo118/repos",
				"events_url": "https://api.github.com/users/mrjo118/events{/privacy}",
				"received_events_url": "https://api.github.com/users/mrjo118/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-04-10T16:13:29Z",
			"updated_at": "2026-04-10T16:14:08Z",
			"body": "> Done! I did not test Android, only the joplin-desktop electron application on Linux.\r\n\r\nIf you don't want to go through all the process of building the mobile app, I can build an apk with your change for you (using the Joplin dev signing certificate). Would you be willing to test if the PQC TLS works on Android on a spare device / Android emulator if I provide the apk for you?\r\n\r\nIt doesn't matter so much if it doesn't actually work on Android, but I think it would be good to update the platforms which the fix addresses in the PR title accordingly if not, otherwise it is going to go in the changelog for all platforms and could be misleading.",
			"author_association": "COLLABORATOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4225144730/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/4227292592",
			"html_url": "https://github.com/laurent22/joplin/pull/15055#issuecomment-4227292592",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
			"id": 4227292592,
			"node_id": "IC_kwDOBLftOs77912w",
			"user": {
				"login": "newAM",
				"id": 7845120,
				"node_id": "MDQ6VXNlcjc4NDUxMjA=",
				"avatar_url": "https://avatars.githubusercontent.com/u/7845120?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/newAM",
				"html_url": "https://github.com/newAM",
				"followers_url": "https://api.github.com/users/newAM/followers",
				"following_url": "https://api.github.com/users/newAM/following{/other_user}",
				"gists_url": "https://api.github.com/users/newAM/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/newAM/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/newAM/subscriptions",
				"organizations_url": "https://api.github.com/users/newAM/orgs",
				"repos_url": "https://api.github.com/users/newAM/repos",
				"events_url": "https://api.github.com/users/newAM/events{/privacy}",
				"received_events_url": "https://api.github.com/users/newAM/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-04-10T23:19:10Z",
			"updated_at": "2026-04-10T23:19:10Z",
			"body": "Took some wrangling, but I built it on Android, I could not get it working.  The Android app was sending `x25519`, `secp256r1`, `secp384r1`.\r\n\r\nI tried some changes to get this working for Android, but the APIs and call stack to the underlying system TLS libraries requires a lot of background knowledge that I do not yet have.\r\n\r\nI updated the PR title to correctly reflect the platforms this works on.  Mobile is going to take more scrutiny.",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4227292592/reactions",
				"total_count": 1,
				"+1": 0,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 1,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": null
		},
		{
			"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4242945589",
			"html_url": "https://github.com/laurent22/joplin/pull/15055#issuecomment-4242945589",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
			"id": 4242945589,
			"node_id": "IC_kwDOBLftOs785jY1",
			"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-04-14T09:48:31Z",
			"updated_at": "2026-04-14T09:48:31Z",
			"body": "Please let me know when you feel this is ready to merge. I guess we could add the change as part of 3.7 pre-release to get additional feedback",
			"author_association": "OWNER",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4242945589/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/4248162207",
			"html_url": "https://github.com/laurent22/joplin/pull/15055#issuecomment-4248162207",
			"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/15055",
			"id": 4248162207,
			"node_id": "IC_kwDOBLftOs79Nc-f",
			"user": {
				"login": "newAM",
				"id": 7845120,
				"node_id": "MDQ6VXNlcjc4NDUxMjA=",
				"avatar_url": "https://avatars.githubusercontent.com/u/7845120?v=4",
				"gravatar_id": "",
				"url": "https://api.github.com/users/newAM",
				"html_url": "https://github.com/newAM",
				"followers_url": "https://api.github.com/users/newAM/followers",
				"following_url": "https://api.github.com/users/newAM/following{/other_user}",
				"gists_url": "https://api.github.com/users/newAM/gists{/gist_id}",
				"starred_url": "https://api.github.com/users/newAM/starred{/owner}{/repo}",
				"subscriptions_url": "https://api.github.com/users/newAM/subscriptions",
				"organizations_url": "https://api.github.com/users/newAM/orgs",
				"repos_url": "https://api.github.com/users/newAM/repos",
				"events_url": "https://api.github.com/users/newAM/events{/privacy}",
				"received_events_url": "https://api.github.com/users/newAM/received_events",
				"type": "User",
				"user_view_type": "public",
				"site_admin": false
			},
			"created_at": "2026-04-15T00:04:41Z",
			"updated_at": "2026-04-15T00:04:41Z",
			"body": "> Please let me know when you feel this is ready to merge. I guess we could add the change as part of 3.7 pre-release to get additional feedback\r\n\r\nI think it is good to go, everything works as expected when viewed from wireshark.\r\nI'm not that experienced with typescript, but the code changes are small, and I addressed your feedback (hopefully in the right way).",
			"author_association": "CONTRIBUTOR",
			"reactions": {
				"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4248162207/reactions",
				"total_count": 1,
				"+1": 1,
				"-1": 0,
				"laugh": 0,
				"hooray": 0,
				"confused": 0,
				"heart": 0,
				"rocket": 0,
				"eyes": 0
			},
			"performed_via_github_app": null
		}
	]
}