文件
mynode/readme/cla/consent_records/himanshumishra1309_155083001.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

1516 行
96 KiB
JSON

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

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

{
"issue": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"repository_url": "https://api.github.com/repos/laurent22/joplin",
"labels_url": "https://api.github.com/repos/laurent22/joplin/issues/14739/labels{/name}",
"comments_url": "https://api.github.com/repos/laurent22/joplin/issues/14739/comments",
"events_url": "https://api.github.com/repos/laurent22/joplin/issues/14739/events",
"html_url": "https://github.com/laurent22/joplin/pull/14739",
"id": 4076433956,
"node_id": "PR_kwDOBLftOs7KobAn",
"number": 14739,
"title": "Desktop: Replace smalltalk with React Dialog to add password visibility in encryption setup",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/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": 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": 28,
"created_at": "2026-03-14T18:31:20Z",
"updated_at": "2026-04-02T17:09:30Z",
"closed_at": "2026-04-02T15:43:52Z",
"assignee": null,
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
"draft": false,
"pull_request": {
"url": "https://api.github.com/repos/laurent22/joplin/pulls/14739",
"html_url": "https://github.com/laurent22/joplin/pull/14739",
"diff_url": "https://github.com/laurent22/joplin/pull/14739.diff",
"patch_url": "https://github.com/laurent22/joplin/pull/14739.patch",
"merged_at": "2026-04-02T15:43:52Z"
},
"body": "### Description\r\nCurrently, when a user clicks \"Enable encryption\", the app asks for their password but masks the input entirely. Since this password is going to be used to encrypt their entire database, making a typo here can cause a lot of stress. \r\n\r\nThis PR adds a \"show password\" (eye icon) toggle to that prompt so users can easily view and verify their password while typing.\r\n\r\n### Technical details & Implementation\r\nInitially, I looked into just adding an HTML button to the existing prompt, but I noticed we were using the `dialogs.prompt()` method there, which relies under the hood on the legacy `smalltalk` library. Because `smalltalk` generates its DOM outside of our React tree, we can't cleanly inject custom components or buttons into it.\r\n\r\nTo solve this and give the user the right to view their password, I completely replaced the legacy `smalltalk` prompt with our native, already-built React `<Dialog>` and `<PasswordInput>` components. \r\n\r\n**Here is exactly how I refactored the flow:**\r\n* **State Management:** I introduced two new state variables (`enableEncryptionPromptVisible` and `enableEncryptionPassword`). \r\n* **The Flow:** Instead of halting javascript execution with an `await dialogs.prompt(...)` call, clicking the \"Enable encryption\" button now just sets `enableEncryptionPromptVisible` to `true`. This opens our custom React Dialog.\r\n* **The Logic:** When the user clicks \"OK\" in the new dialog, it passes the typed password directly to the exact same `toggleAndSetupEncryption(...)` function as before. \r\n\r\n### Why is this better?\r\n1. **Safety:** Absolutely no logical or encryption-related code was touched, only the frontend UI triggering it. \r\n2. **Consistency:** Using the pre-built `<PasswordInput>` gives us the show/hide eye toggle for free, and using `<Dialog>` ensures this popup natively respects Joplin's existing CSS system (like the `dialog-root` and `dialog-content` wrappers for dark/light themes). \r\n\r\n### Testing\r\n- [x] Clicked \"Enable encryption\" and verified the customized React modal opens.\r\n- [x] Typed a password and clicked the eye icon to verify it toggles text visibility properly.\r\n- [x] Verified that hitting \"Cancel\" cleanly closes the modal by resetting the state, without triggering encryption.\r\n- [x] Verified that confirming with a valid password successfully triggers the encryption background setup.\r\n\r\n\r\n### Before:\r\n<img width=\"429\" height=\"248\" alt=\"Screenshot From 2026-03-14 22-17-16 (Edited)\" src=\"https://github.com/user-attachments/assets/09122e54-0db3-4e51-8090-ceecfb688e97\" />\r\n\r\n\r\n### After:\r\n<img width=\"765\" height=\"308\" alt=\"image\" src=\"https://github.com/user-attachments/assets/5aeabee9-5274-41ba-8fb3-2d2c7ccae5b9\" />\r\n\r\n### After all alterations(both light and dark mode):\r\n<img width=\"767\" height=\"387\" alt=\"Screenshot From 2026-03-23 21-00-44\" src=\"https://github.com/user-attachments/assets/c86e756c-36fc-4d90-9283-f02ffc5f6008\" />\r\n<img width=\"767\" height=\"387\" alt=\"Screenshot From 2026-03-23 21-01-09\" src=\"https://github.com/user-attachments/assets/5d8d2895-d788-4392-a15a-890fb1724fc7\" />\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/14739/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/14739/timeline",
"performed_via_github_app": null,
"state_reason": null
},
"comments": [
{
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4061048232",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4061048232",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4061048232,
"node_id": "IC_kwDOBLftOs7yDq2o",
"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-14T18:31:33Z",
"updated_at": "2026-04-02T17:09:30Z",
"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/4061048232/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/4061050144",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4061050144",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4061050144,
"node_id": "IC_kwDOBLftOs7yDrUg",
"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-14T18:32:32Z",
"updated_at": "2026-03-23T15:33:05Z",
"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\nReplaces the direct master-password prompt in EncryptionConfigScreen with an internal enable-encryption dialog implemented via component state and a Promise-like resolver; integrates password handling, validation and error paths, preserves existing master-password fallback, and updates styles and a password-input type alias.\n\n## Changes\n\n|Cohort / File(s)|Summary|\n|---|---|\n|**Encryption Enablement Dialog** <br> `packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx`|Adds component state (`enableEncryptionPromptVisible`, `enableEncryptionPassword`, `promptPromiseRef`), `renderEnableEncryptionDialog`, and a two-stage enable flow that awaits the in-component dialog instead of calling `dialogs.prompt`; integrates password validation and error handling while keeping the master-password fallback.|\n|**Dialog Styling Inclusion** <br> `packages/app-desktop/main.scss`|Extends existing master-password selectors to include `.enable-encryption-dialog` so the new dialog reuses the same `.dialog-root`, `.dialog-content` and `.current-password-wrapper` styles.|\n|**PasswordInput Types** <br> `packages/app-desktop/gui/PasswordInput/types.ts`|Replaces the custom `ChangeEvent` interface with a type alias to React's `ChangeEvent<HTMLInputElement>`, updating exported event typing used by `ChangeEventHandler`.|\n|**Manifest / Package metadata** <br> `manifest_file`, `package.json`|Minor metadata/manifest updates (lines changed: +78/-5); no public API changes reported.|\n\n## Possibly related PRs\n\n- laurent22/joplin#14664 — Modifies the enable-encryption flow in EncryptionConfigScreen.tsx, addressing dialog/pending-enable handling and dialog reuse; strong code-level relation.\n\n## Suggested reviewers\n\n- mrjo118\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: replacing smalltalk with React Dialog and adding password visibility to the encryption setup prompt. |\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 PR description contains all three required sections: problem/user-impact clearly articulated with rationale, comprehensive solution explanation with implementation details, and test plan with specific verification steps covering multiple scenarios. Screenshots demonstrating light and dark theme implementations are included. |\n| Description check | ✅ Passed | The PR description clearly explains the purpose (add password visibility toggle), the technical implementation (replace smalltalk with React Dialog), and testing performed. |\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=14739)! 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/4061050144/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/4061057039",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4061057039",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4061057039,
"node_id": "IC_kwDOBLftOs7yDtAP",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-14T18:36:07Z",
"updated_at": "2026-03-14T18:36:07Z",
"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/4061057039/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/4061193240",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4061193240",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4061193240,
"node_id": "IC_kwDOBLftOs7yEOQY",
"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-03-14T19:21:47Z",
"updated_at": "2026-03-14T19:21:47Z",
"body": "> Currently, when a user clicks \"Enable encryption\", the app asks for their password but masks the input entirely. Since this password is going to be used to encrypt their entire database, making a typo here can cause a lot of stress\r\n\r\nThis is not the case anymore, as a recent change means that the manage master password dialog will open instead when clicking enable encryption if the password is not yet set. So now the current smalltalk dialog will only open when needing to match against an **existing password**. A show password button here would still be nice, but the change is no longer a necessity",
"author_association": "COLLABORATOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4061193240/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/4061241664",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4061241664",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4061241664,
"node_id": "IC_kwDOBLftOs7yEaFA",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-14T19:46:50Z",
"updated_at": "2026-03-14T19:46:50Z",
"body": "> This is not the case anymore, as a recent change means that the manage master password dialog will open instead when clicking enable encryption if the password is not yet set. So now the current smalltalk dialog will only open when needing to match against an **existing password**. A show password button here would still be nice, but the change is no longer a necessity\r\n\r\nThanks for the context! By the way, this change is specifically for the scenario where a user has already set a password, disabled encryption, and then tries to re-enable it. During that re-enabling step, the smalltalk prompt still pops up, and they currently can't see the password they are typing to confirm.\r\n\r\nAside from the eye icon, I thought replacing it would be a good change for UI consistency (using a native React <Dialog>) and reducing reliance on the 3rd-party smalltalk dependency.\r\n\r\nWhat are your thoughts on this? Is it still a worthwhile improvement to keep?",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4061241664/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/4061242134",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4061242134",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4061242134,
"node_id": "IC_kwDOBLftOs7yEaMW",
"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-03-14T19:47:03Z",
"updated_at": "2026-03-14T19:48:22Z",
"body": "@himanshumishra1309 I had a quick look through your code change and in light of https://github.com/laurent22/joplin/pull/14664 being merged, I think your change is over-engineered and potentially incorrect. You have effectively removed some of the logic from https://github.com/laurent22/joplin/pull/14664 which was just added, and changed the conditions to show your dialog instead, which it's unclear whether it supports create new master password functionality as well.\r\n\r\nIf you want to continue with this code change, I would suggest that you do not change any of the conditions for which the existing smalltalk dialog opens, but only replace this dialog with a React Dialog that includes a show password button.",
"author_association": "COLLABORATOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4061242134/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/4061278909",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4061278909",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4061278909,
"node_id": "IC_kwDOBLftOs7yEjK9",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-14T20:04:51Z",
"updated_at": "2026-03-14T20:04:51Z",
"body": "> @himanshumishra1309 I had a quick look through your code change and in light of #14664 being merged, I think your change is over-engineered and potentially incorrect. You have effectively removed some of the logic from #14664 which was just added, and changed the conditions to show your dialog instead, which it's unclear whether it supports create new master password functionality as well.\r\n> \r\n> If you want to continue with this code change, I would suggest that you do not change any of the conditions for which the existing smalltalk dialog opens, but only replace this dialog with a React Dialog that includes a show password button.\r\n\r\nSure, I'll work on this",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4061278909/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/4061345885",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4061345885",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4061345885,
"node_id": "IC_kwDOBLftOs7yEzhd",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-14T20:40:31Z",
"updated_at": "2026-03-14T20:40:31Z",
"body": "> @himanshumishra1309 I had a quick look through your code change and in light of #14664 being merged, I think your change is over-engineered and potentially incorrect. You have effectively removed some of the logic from #14664 which was just added, and changed the conditions to show your dialog instead, which it's unclear whether it supports create new master password functionality as well.\r\n> \r\n> If you want to continue with this code change, I would suggest that you do not change any of the conditions for which the existing smalltalk dialog opens, but only replace this dialog with a React Dialog that includes a show password button.\r\n\r\nI have made the changes accordingly and kept the existing conditions intact, please let me know if there is any other sort of improvement required from my side. Thank you very much for your guidance.",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4061345885/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/4064884167",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4064884167",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4064884167,
"node_id": "IC_kwDOBLftOs7ySTXH",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-16T03:53:11Z",
"updated_at": "2026-03-16T03:53:11Z",
"body": "Hi @mrjo118, just following up on this PR.\r\n\r\nBased on your suggestion, I reverted the earlier changes and updated the implementation so that the existing conditions and flow remain exactly the same. The only thing changed now is replacing the smalltalk dialog with a React Dialog that includes the show/hide password toggle.\r\n\r\nI just wanted to ask if this approach looks good to you, or if you would like me to make any further changes.\r\n\r\nHappy to update the PR if something else is expected from my side. Thanks again for the guidance!",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4064884167/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
},
{
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4070928640",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4070928640",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4070928640,
"node_id": "IC_kwDOBLftOs7ypXEA",
"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-03-16T22:06:20Z",
"updated_at": "2026-03-16T22:14:13Z",
"body": "@himanshumishra1309 The change looks ok now, but there is one thing that feels off. The width of the new dialog is not consistent with the width of the React Dialog when you click manage master password:\r\n\r\n<img width=\"1920\" height=\"419\" alt=\"Capture1\" src=\"https://github.com/user-attachments/assets/774b897b-3d80-4016-b024-fefd9b84e5c8\" />\r\n\r\n<img width=\"1920\" height=\"387\" alt=\"Capture2\" src=\"https://github.com/user-attachments/assets/0f3d7106-7736-4dfc-a93f-801bf5a1f58f\" />\r\n\r\nIt would be good if you can make the width match and the grey background shading as well. See in main.scss it has this css for the manage master password dialog:\r\n```\r\n.master-password-dialog .dialog-root {\r\n\tmin-width: 500px;\r\n\tmax-width: 600px;\r\n}\r\n\r\n.master-password-dialog .dialog-content {\r\n\tbackground-color: var(--joplin-background-color3);\r\n\tpadding: 1em;\r\n\tpadding-bottom: 1px;\r\n}\r\n\r\n.master-password-dialog .current-password-wrapper {\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\talign-items: center;\r\n}\r\n```\r\n\r\nChange it to:\r\n```\r\n.master-password-dialog .dialog-root, .enable-encryption-dialog .dialog-root {\r\n\tmin-width: 500px;\r\n\tmax-width: 600px;\r\n}\r\n\r\n.master-password-dialog .dialog-content, .enable-encryption-dialog .dialog-content {\r\n\tbackground-color: var(--joplin-background-color3);\r\n\tpadding: 1em;\r\n\tpadding-bottom: 1px;\r\n}\r\n\r\n.master-password-dialog .current-password-wrapper, .enable-encryption-dialog .current-password-wrapper {\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\talign-items: center;\r\n}\r\n```\r\n\r\nAnd add the enable-encryption-dialog class to your dialog, to make the styling consistent. Then it will look like this:\r\n\r\n<img width=\"1920\" height=\"425\" alt=\"Capture3\" src=\"https://github.com/user-attachments/assets/fe4c2a92-3b73-494a-a143-faa9cfa5df87\" />",
"author_association": "COLLABORATOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4070928640/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/4071228479",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4071228479",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4071228479,
"node_id": "IC_kwDOBLftOs7yqgQ_",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-16T23:10:24Z",
"updated_at": "2026-03-16T23:10:24Z",
"body": "> @himanshumishra1309 The change looks ok now, but there is one thing that feels off. The width of the new dialog is not consistent with the width of the React Dialog when you click manage master password:\r\n> \r\n> <img alt=\"Capture1\" width=\"1920\" height=\"419\" src=\"https://private-user-images.githubusercontent.com/6963004/564434893-774b897b-3d80-4016-b024-fefd9b84e5c8.PNG?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzM3MDIwODEsIm5iZiI6MTc3MzcwMTc4MSwicGF0aCI6Ii82OTYzMDA0LzU2NDQzNDg5My03NzRiODk3Yi0zZDgwLTQwMTYtYjAyNC1mZWZkOWI4NGU1YzguUE5HP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMTZUMjI1NjIxWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NGYwYWUzZjA3M2Q5ZjExMGYzMzg3ZjkyZmNiMDAyZDFhNzlhMzY3ZTZkMzQ0MDdmOGQ4ODlmYmFiODgwZWI0ZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.RhsCg1W7bMXRrqbnA9iQgD-_T_lfJObRZMgetlK2j1o\"> <img alt=\"Capture2\" width=\"1920\" height=\"387\" src=\"https://private-user-images.githubusercontent.com/6963004/564434964-0f3d7106-7736-4dfc-a93f-801bf5a1f58f.PNG?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzM3MDIwODEsIm5iZiI6MTc3MzcwMTc4MSwicGF0aCI6Ii82OTYzMDA0LzU2NDQzNDk2NC0wZjNkNzEwNi03NzM2LTRkZmMtYTkzZi04MDFiZjVhMWY1OGYuUE5HP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMTZUMjI1NjIxWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTg5OTdmMTU1MTQ1N2EwMWM5MGQ2NDU1YzE4YWI0YjhmZThlYzljNzBhOTMxYzA4ZjIzMDdjYjg4Mzc5YjdiMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.00WC68eJCv2fGKTe0uS64qyy7hQD12RH-Xi6PiZR0WQ\">\r\n> It would be good if you can make the width match and the grey background shading as well. See in main.scss it has this css for the manage master password dialog:\r\n> \r\n> ```\r\n> .master-password-dialog .dialog-root {\r\n> \tmin-width: 500px;\r\n> \tmax-width: 600px;\r\n> }\r\n> \r\n> .master-password-dialog .dialog-content {\r\n> \tbackground-color: var(--joplin-background-color3);\r\n> \tpadding: 1em;\r\n> \tpadding-bottom: 1px;\r\n> }\r\n> \r\n> .master-password-dialog .current-password-wrapper {\r\n> \tdisplay: flex;\r\n> \tflex-direction: row;\r\n> \talign-items: center;\r\n> }\r\n> ```\r\n> \r\n> Change it to:\r\n> \r\n> ```\r\n> .master-password-dialog .dialog-root, .enable-encryption-dialog .dialog-root {\r\n> \tmin-width: 500px;\r\n> \tmax-width: 600px;\r\n> }\r\n> \r\n> .master-password-dialog .dialog-content, .enable-encryption-dialog .dialog-content {\r\n> \tbackground-color: var(--joplin-background-color3);\r\n> \tpadding: 1em;\r\n> \tpadding-bottom: 1px;\r\n> }\r\n> \r\n> .master-password-dialog .current-password-wrapper, .enable-encryption-dialog .current-password-wrapper {\r\n> \tdisplay: flex;\r\n> \tflex-direction: row;\r\n> \talign-items: center;\r\n> }\r\n> ```\r\n> \r\n> And add the enable-encryption-dialog class to your dialog, to make the styling consistent. Then it will look like this:\r\n> \r\n> <img alt=\"Capture3\" width=\"1920\" height=\"425\" src=\"https://private-user-images.githubusercontent.com/6963004/564438453-fe4c2a92-3b73-494a-a143-faa9cfa5df87.PNG?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzM3MDIwODEsIm5iZiI6MTc3MzcwMTc4MSwicGF0aCI6Ii82OTYzMDA0LzU2NDQzODQ1My1mZTRjMmE5Mi0zYjczLTQ5NGEtYTE0My1mYWE5Y2ZhNWRmODcuUE5HP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDMxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAzMTZUMjI1NjIxWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MmY1ODg1ODJmZjdhYTAxNDlhNzM5Yjg4MDFjMTJiM2FkODEyODMxNDZjZDBjMzEzMDk1ZmYxZmY5NDZhOWI2YiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.Uwxzmoro7T3pefPZhogxVsIwJWRBPj7NZmQ2p4ocAjw\">\r\n\r\nThank you for the guidance! I've pushed the fix, and the dialog now perfectly matches the width and background styling of the 'Manage master password' UI. Please let me know if anything else needs adjusting. I'll be happy to work on it.",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4071228479/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/4071233353",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4071233353",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4071233353,
"node_id": "IC_kwDOBLftOs7yqhdJ",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-16T23:11:44Z",
"updated_at": "2026-03-16T23:11:44Z",
"body": "Also, thinking about consistency, right now, if a user clicks 'Disable encryption' or enters an incorrect password, they get the standard, system-style alert/confirm dialog boxes. Since we are updating this UI, would you like me to replace those alerts with this same custom React `<Dialog>` component, or should we leave those simple alerts as they are?",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4071233353/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/4071259095",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4071259095",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4071259095,
"node_id": "IC_kwDOBLftOs7yqnvX",
"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-03-16T23:18:17Z",
"updated_at": "2026-03-16T23:18:17Z",
"body": "> Also, thinking about consistency, right now, if a user clicks 'Disable encryption' or enters an incorrect password, they get the standard, system-style alert/confirm dialog boxes. Since we are updating this UI, would you like me to replace those alerts with this same custom React `<Dialog>` component, or should we leave those simple alerts as they are?\r\n\r\nI noticed many inconsistencies with dialogs on this screen to be honest. Lets not go down that rabbit hole and stick to changing this one dialog",
"author_association": "COLLABORATOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4071259095/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
},
{
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4081271551",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4081271551",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4081271551,
"node_id": "IC_kwDOBLftOs7zQ0L_",
"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-18T10:09:23Z",
"updated_at": "2026-03-18T10:09:23Z",
"body": "Please address the rabbit's comment",
"author_association": "OWNER",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4081271551/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/4083850039",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4083850039",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4083850039,
"node_id": "IC_kwDOBLftOs7zaps3",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-18T16:23:32Z",
"updated_at": "2026-03-18T16:23:32Z",
"body": "> Please address the rabbit's comment\r\n\r\nAll fixed! Just pushed the changes requested by the rabbit. Please let me know if there is anything else required from my side!",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4083850039/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/4084555945",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4084555945",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4084555945,
"node_id": "IC_kwDOBLftOs7zdWCp",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-18T18:02:39Z",
"updated_at": "2026-03-18T18:02:39Z",
"body": "> Please address the rabbit's comment\r\n\r\nHi! I pushed the fixes requested by the bot (updated both the PasswordInput and the EncryptionConfigScreen.tsx).\r\n\r\nI noticed the CI checks failed twice: once with an Android NDK download timeout, and just now on the macOS arm64 runner during the Yarn link phase (YN0009: root@workspace:. couldn't be built successfully). Since my changes were strictly related to React component typings, I believe these might be environment/cache flakes on the runners, so I didn't want to keep spamming empty commits.\r\n\r\nLet me know if you are able to review the code changes in the meantime!",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4084555945/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/4089498378",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4089498378",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4089498378,
"node_id": "IC_kwDOBLftOs7zwMsK",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-19T11:32:33Z",
"updated_at": "2026-03-19T11:32:33Z",
"body": "All tests have officially passed! Let me know if you need anything else from my end.",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4089498378/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/4105835690",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4105835690",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4105835690,
"node_id": "IC_kwDOBLftOs70uhSq",
"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-03-22T08:53:35Z",
"updated_at": "2026-03-22T08:53:35Z",
"body": "Still has lint errors unfortunately:\r\n\r\n/home/runner/work/joplin/joplin/packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx\r\nError: 284:2 error Mixed spaces and tabs no-mixed-spaces-and-tabs\r\n\r\n/home/runner/work/joplin/joplin/packages/app-desktop/gui/PasswordInput/types.ts\r\nError: 2:1 error Expected indentation of 1 tab but found 4 spaces @typescript-eslint/indent\r\nError: 5:62 error Newline required at end of file but not found eol-last\r\n\r\n✖ 3 problems (3 errors, 0 warnings)\r\n 2 errors and 0 warnings potentially fixable with the `--fix` option.\r\n\r\nError: Process completed with exit code 1.",
"author_association": "COLLABORATOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4105835690/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/4105846725",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4105846725",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4105846725,
"node_id": "IC_kwDOBLftOs70uj_F",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-22T09:02:52Z",
"updated_at": "2026-03-22T09:02:52Z",
"body": "> Still has lint errors unfortunately:\r\n> \r\n> /home/runner/work/joplin/joplin/packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx Error: 284:2 error Mixed spaces and tabs no-mixed-spaces-and-tabs\r\n> \r\n> /home/runner/work/joplin/joplin/packages/app-desktop/gui/PasswordInput/types.ts Error: 2:1 error Expected indentation of 1 tab but found 4 spaces @typescript-eslint/indent Error: 5:62 error Newline required at end of file but not found eol-last\r\n> \r\n> ✖ 3 problems (3 errors, 0 warnings) 2 errors and 0 warnings potentially fixable with the `--fix` option.\r\n> \r\n> Error: Process completed with exit code 1.\r\n\r\nThanks for pointing that out, I've fixed the lint issues and pushed the changes. Please let me know if anything else needs adjustment.",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4105846725/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/4106118980",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4106118980",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4106118980,
"node_id": "IC_kwDOBLftOs70vmdE",
"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-03-22T11:55:15Z",
"updated_at": "2026-03-22T11:55:15Z",
"body": "CI still failed. Please come back 30-60 mins after you push a change to check whether it passed. In this case it looks like an intermittent CI failure, so either update the branch (if it is behind) or push an empty commit to rerun the CI",
"author_association": "COLLABORATOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4106118980/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/4106128508",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4106128508",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4106128508,
"node_id": "IC_kwDOBLftOs70vox8",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-22T11:57:41Z",
"updated_at": "2026-03-22T11:57:41Z",
"body": "> CI still failed. Please come back 30-60 mins after you push a change to check whether it passed. In this case it looks like an intermittent CI failure, so either update the branch (if it is behind) or push an empty commit to rerun the CI\r\n\r\nGot it, thanks for the clarification!\r\nI wasn’t sure if pushing an empty commit was preferred, so I held off earlier. I’ll go ahead and rerun the CI now.",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4106128508/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/4106191070",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4106191070",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4106191070,
"node_id": "IC_kwDOBLftOs70v4De",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-22T12:36:57Z",
"updated_at": "2026-03-22T12:36:57Z",
"body": "All review comments have been addressed and CI is passing. Let me know if anything else is needed!",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4106191070/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/4110201000",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4110201000",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4110201000,
"node_id": "IC_kwDOBLftOs70_LCo",
"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-23T12:18:26Z",
"updated_at": "2026-03-23T12:18:26Z",
"body": "Hello, the top post needs to be updated with the latest screenshot, ideally in both dark and light theme",
"author_association": "OWNER",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4110201000/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/4111552846",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4111552846",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4111552846,
"node_id": "IC_kwDOBLftOs71EVFO",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-23T15:33:58Z",
"updated_at": "2026-03-23T15:33:58Z",
"body": "> Hello, the top post needs to be updated with the latest screenshot, ideally in both dark and light theme\r\n\r\nI have updated the first post, let me know if anything else is required.",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4111552846/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/4142126504",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4142126504",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4142126504,
"node_id": "IC_kwDOBLftOs7249Wo",
"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-27T12:04:03Z",
"updated_at": "2026-03-27T12:04:03Z",
"body": "Still some CodeRabbit's comments. Please confirm you'd like to complete this PR",
"author_association": "OWNER",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4142126504/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/4142157337",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4142157337",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4142157337,
"node_id": "IC_kwDOBLftOs725E4Z",
"user": {
"login": "himanshumishra1309",
"id": 155083001,
"node_id": "U_kgDOCT5g-Q",
"avatar_url": "https://avatars.githubusercontent.com/u/155083001?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/himanshumishra1309",
"html_url": "https://github.com/himanshumishra1309",
"followers_url": "https://api.github.com/users/himanshumishra1309/followers",
"following_url": "https://api.github.com/users/himanshumishra1309/following{/other_user}",
"gists_url": "https://api.github.com/users/himanshumishra1309/gists{/gist_id}",
"starred_url": "https://api.github.com/users/himanshumishra1309/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/himanshumishra1309/subscriptions",
"organizations_url": "https://api.github.com/users/himanshumishra1309/orgs",
"repos_url": "https://api.github.com/users/himanshumishra1309/repos",
"events_url": "https://api.github.com/users/himanshumishra1309/events{/privacy}",
"received_events_url": "https://api.github.com/users/himanshumishra1309/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"created_at": "2026-03-27T12:10:16Z",
"updated_at": "2026-03-27T12:10:16Z",
"body": "> Still some CodeRabbit's comments. Please confirm you'd like to complete this PR\r\n\r\nYes, I’ve reviewed the remaining CodeRabbit comments and confirmed that all relevant points have been addressed in the latest changes.\r\n\r\nThe current implementation is complete from my side and ready to be merged. Please let me know if anything else is required.",
"author_association": "CONTRIBUTOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4142157337/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/4178640062",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4178640062",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4178640062,
"node_id": "IC_kwDOBLftOs75EPy-",
"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-02T15:20:10Z",
"updated_at": "2026-04-02T15:20:10Z",
"body": "@mrjo118, does this change make sense to you? Was there an issue for it? Or was that related to other similar recent changes on the E2EE dialog boxes?",
"author_association": "OWNER",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4178640062/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/4178673797",
"html_url": "https://github.com/laurent22/joplin/pull/14739#issuecomment-4178673797",
"issue_url": "https://api.github.com/repos/laurent22/joplin/issues/14739",
"id": 4178673797,
"node_id": "IC_kwDOBLftOs75EYCF",
"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-02T15:25:34Z",
"updated_at": "2026-04-02T15:27:06Z",
"body": "> @mrjo118, does this change make sense to you? Was there an issue for it? Or was that related to other similar recent changes on the E2EE dialog boxes?\r\n\r\nYes, the change does make sense, as it allows the password to be shown / hidden on the relevant dialog, which gives a better user experience even if there is no consequence of entering an incorrect password in this context",
"author_association": "COLLABORATOR",
"reactions": {
"url": "https://api.github.com/repos/laurent22/joplin/issues/comments/4178673797/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
}
]
}