{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":126178683,"defaultBranch":"main","name":"halo","ownerLogin":"halo-dev","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-03-21T12:56:52.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/48195280?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717732231.0","currentOid":""},"activityList":{"items":[{"before":"ccbe18567f731b00a25e2dff09b1615567f129ff","after":"b692db1f57359a28b2b12cf89287e3887648e6fd","ref":"refs/heads/main","pushedAt":"2024-06-07T10:34:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ruibaby","name":"Ryan Wang","path":"/ruibaby","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21301288?s=80&v=4"},"commit":{"message":"Move post events into api modules (#6052)\n\nSigned-off-by: JohnNiang ","shortMessageHtmlLink":"Move post events into api modules (#6052)"}},{"before":"0bd8611144b1ef698c7b30f7bf0f2252645bd18a","after":"7b2c8e45ffbf8759ac7459d355cc76c89bda8da5","ref":"refs/heads/release-2.16","pushedAt":"2024-06-07T03:46:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"[release-2.16] Fix the problem that theme assets could not be found after the first initialization (#6050)\n\nThis is an automated cherry-pick of #6049\n\n/assign JohnNiang\n\n```release-note\n修复首次初始化后无法正常访问主题资源的问题\n```","shortMessageHtmlLink":"[release-2.16] Fix the problem that theme assets could not be found a…"}},{"before":"f2a0c502e3330cb79fa33dd12f0d0b79f3e17d1b","after":"ccbe18567f731b00a25e2dff09b1615567f129ff","ref":"refs/heads/main","pushedAt":"2024-06-07T03:32:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"Fix the problem that theme assets could not be found after the first initialization (#6049)\n\n#### What type of PR is this?\r\n\r\n/kind bug\r\n/area core\r\n/milestone 2.17.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\nWhen initialized for the first time, the folder `${halo.work-dir}/themes` does not exist, resulting in the `themes` path being ignored when invoking `themeRootResource.createRelative(themeName + \"/templates/assets/\");`. It works very well after restarting.\r\n\r\nThis PR fixes the problem by resolving theme resource directly rather than delegating to PathResourceResolver.\r\n\r\n#### Which issue(s) this PR fixes:\r\n\r\nFixes #6048 \r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\n修复首次初始化后无法正常访问主题资源的问题\r\n```","shortMessageHtmlLink":"Fix the problem that theme assets could not be found after the first …"}},{"before":"e446054813b9e5712d229f2f18448a53b9b62492","after":"f2a0c502e3330cb79fa33dd12f0d0b79f3e17d1b","ref":"refs/heads/main","pushedAt":"2024-06-06T06:43:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"fix: content offset caused by empty slot (#6040)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind improvement\r\n\r\n#### Which issue(s) this PR fixes:\r\n\r\nFixes #5877 \r\n\r\n```release-note\r\n修复Tag Icon为空时,后台文章的Tag内容不居中\r\n```","shortMessageHtmlLink":"fix: content offset caused by empty slot (#6040)"}},{"before":"3836b22090291f099bab1929d7b34c7f3e9358fd","after":"0bd8611144b1ef698c7b30f7bf0f2252645bd18a","ref":"refs/heads/release-2.16","pushedAt":"2024-06-06T06:28:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"[release-2.16] Fix concurrent issue during bundle file concurrent generation testing (#6045)\n\nThis is an automated cherry-pick of #6043\n\n/assign JohnNiang\n\n```release-note\nNone\n```","shortMessageHtmlLink":"[release-2.16] Fix concurrent issue during bundle file concurrent gen…"}},{"before":"2841ff8282f2decc4e4231cddf85c1bf2d2e94fe","after":"e446054813b9e5712d229f2f18448a53b9b62492","ref":"refs/heads/main","pushedAt":"2024-06-06T03:42:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"Fix concurrent issue during bundle file concurrent generation testing (#6043)\n\n#### What type of PR is this?\r\n\r\n/kind failing-test\r\n/area core\r\n/milestone 2.17.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\nI wrongly invoked `Arraylist#add`(probes) method in multi threads. So the unit test was unstable and might encounter the problem as follows:\r\n\r\n```java\r\nExpected :1\r\nActual :0\r\n\r\n\r\norg.opentest4j.AssertionFailedError: expected: <1> but was: <0>\r\n\tat org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)\r\n\tat org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)\r\n\tat org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)\r\n\tat org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:166)\r\n\tat org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:161)\r\n\tat org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:632)\r\n\tat run.halo.app.core.extension.service.impl.PluginServiceImplTest$BundleCacheTest.concurrentComputeBundleFileIfAbsent(PluginServiceImplTest.java:460)\r\n```\r\n\r\nSee https://github.com/halo-dev/halo/actions/runs/9382059472/job/25832681545 for more.\r\n\r\nThis PR moves the invocation outside thread tasks.\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"Fix concurrent issue during bundle file concurrent generation testing ("}},{"before":"ba96118b4ea5a39b928e4d68d8a9c3dec0f1b570","after":"3836b22090291f099bab1929d7b34c7f3e9358fd","ref":"refs/heads/release-2.16","pushedAt":"2024-06-05T02:49:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"[release-2.16] fix: missing default values for system settings (#6036)\n\nThis is an automated cherry-pick of #6035\n\n/assign JohnNiang\n\n```release-note\n修复系统设置未保存导致无法正常注册的问题\n```","shortMessageHtmlLink":"[release-2.16] fix: missing default values for system settings (#6036)"}},{"before":"a188f719cbf4276f46f364e9d362bac46fd6321c","after":"2841ff8282f2decc4e4231cddf85c1bf2d2e94fe","ref":"refs/heads/main","pushedAt":"2024-06-05T02:31:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"fix: missing default values for system settings (#6035)\n\n#### What type of PR is this?\r\n\r\n/kind bug\r\n/area core\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n补充缺失的系统设置默认值。\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\n修复系统设置未保存导致无法正常注册的问题\r\n```","shortMessageHtmlLink":"fix: missing default values for system settings (#6035)"}},{"before":"1821829f99412c114c80195239a5ae302fd6af5b","after":"a188f719cbf4276f46f364e9d362bac46fd6321c","ref":"refs/heads/main","pushedAt":"2024-06-03T15:05:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"Upgrade to Gradle 8.8 (#6033)\n\n#### What type of PR is this?\r\n\r\n/kind cleanup\r\n/area core\r\n\r\n#### What this PR does / why we need it:\r\n\r\nThis PR upgrades Gradle to 8.8. See https://github.com/gradle/gradle/releases/tag/v8.8.0 for more.\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\n升级 Gradle 至 8.8\r\n```","shortMessageHtmlLink":"Upgrade to Gradle 8.8 (#6033)"}},{"before":"ba96118b4ea5a39b928e4d68d8a9c3dec0f1b570","after":"1821829f99412c114c80195239a5ae302fd6af5b","ref":"refs/heads/main","pushedAt":"2024-06-03T09:53:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"Prepare for developing 2.17.0 (#6032)\n\n#### What type of PR is this?\r\n\r\n/kind cleanup\r\n/area core\r\n\r\n#### What this PR does / why we need it:\r\n\r\nThis is a regular update after a release.\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"Prepare for developing 2.17.0 (#6032)"}},{"before":null,"after":"ba96118b4ea5a39b928e4d68d8a9c3dec0f1b570","ref":"refs/heads/release-2.16","pushedAt":"2024-06-03T09:31:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"JohnNiang","name":"John Niang","path":"/JohnNiang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/16865714?s=80&v=4"},"commit":{"message":"Fix the problem that bundle files can be generated arbitrarily (#6028)\n\n#### What type of PR is this?\r\n\r\n/kind bug\r\n/area core\r\n/area plugin\r\n/milestone 2.16.0\r\n\r\n#### What this PR does / why we need it:\r\n\r\nBefore the PR, any user can generate bundle files by providing random query param `v` while requesting bundle files.\r\n\r\nThis PR refactors the whole bundle file generation method.\r\n\r\n1. Do nothing if users provide arbitrary bundle file version\r\n2. Better lock for writing bundle files if not exist\r\n\r\n#### Special notes for your reviewer:\r\n\r\n1. Request `http://localhost:8090/apis/api.console.halo.run/v1alpha1/plugins/-/bundle.js?v=xyz` \r\n2. Check if the file `xyz.js` in folder `$TMPDIR/halo-plugin-bundle**`\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"Fix the problem that bundle files can be generated arbitrarily (#6028)"}},{"before":"a26b73e2586d1eb7e7452bbc593454d0c50c6139","after":"ba96118b4ea5a39b928e4d68d8a9c3dec0f1b570","ref":"refs/heads/main","pushedAt":"2024-06-03T02:42:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"Fix the problem that bundle files can be generated arbitrarily (#6028)\n\n#### What type of PR is this?\r\n\r\n/kind bug\r\n/area core\r\n/area plugin\r\n/milestone 2.16.0\r\n\r\n#### What this PR does / why we need it:\r\n\r\nBefore the PR, any user can generate bundle files by providing random query param `v` while requesting bundle files.\r\n\r\nThis PR refactors the whole bundle file generation method.\r\n\r\n1. Do nothing if users provide arbitrary bundle file version\r\n2. Better lock for writing bundle files if not exist\r\n\r\n#### Special notes for your reviewer:\r\n\r\n1. Request `http://localhost:8090/apis/api.console.halo.run/v1alpha1/plugins/-/bundle.js?v=xyz` \r\n2. Check if the file `xyz.js` in folder `$TMPDIR/halo-plugin-bundle**`\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"Fix the problem that bundle files can be generated arbitrarily (#6028)"}},{"before":"296d8c58335fbc2d38d3537875eab898fdc22014","after":"a26b73e2586d1eb7e7452bbc593454d0c50c6139","ref":"refs/heads/main","pushedAt":"2024-05-30T08:31:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"chore: remove unnecessary env (#6022)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind cleanup\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n移除 UI 项目中不必要的环境变量配置。\r\n\r\n1. VITE_API_URL:当前 Console 不会考虑独立部署,并且在开发环境是后端 Proxy 的 Console 请求,所以此变量没有任何意义。\r\n2. VITE_BASE_URL:无意义,当前不考虑修改。\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"chore: remove unnecessary env (#6022)"}},{"before":"9f6a44128867410b07c1129304d205aeb507a2bf","after":"296d8c58335fbc2d38d3537875eab898fdc22014","ref":"refs/heads/main","pushedAt":"2024-05-30T08:29:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"fix: dropdown component auto-destruction issue (#6021)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind bug\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n修复 Dropdown 组件自动销毁的问题,这可能导致部分插件在 Dropdown 中的组件无法正常渲染。\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone \r\n```","shortMessageHtmlLink":"fix: dropdown component auto-destruction issue (#6021)"}},{"before":"e881ee9a89eaac34ca9aad1f5573b1081c03161d","after":"9f6a44128867410b07c1129304d205aeb507a2bf","ref":"refs/heads/main","pushedAt":"2024-05-30T07:49:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"refactor: use index mechanism to query extension point definitions (#6011)\n\n#### What type of PR is this?\r\n/kind improvement\r\n/area core\r\n/kind milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n使用索引机制来查询扩展点定义\r\n\r\n#### Does this PR introduce a user-facing change?\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"refactor: use index mechanism to query extension point definitions (#…"}},{"before":"4c6abdcaa131a37468aef250761394241a87978f","after":"e881ee9a89eaac34ca9aad1f5573b1081c03161d","ref":"refs/heads/main","pushedAt":"2024-05-30T07:05:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"Refactor cache control for static resources (#6015)\n\n#### What type of PR is this?\r\n\r\n/kind improvement\r\n/area core\r\n\r\n#### What this PR does / why we need it:\r\n\r\nThis PR unifies cache control for static resources.\r\n\r\nExample configuration of cache control:\r\n\r\n```yaml\r\nspring:\r\n web:\r\n resources:\r\n cache:\r\n cachecontrol:\r\n no-cache: true\r\n no-store: true\r\n use-last-modified: false\r\n```\r\n\r\n#### Which issue(s) this PR fixes:\r\n\r\nFixes https://github.com/halo-dev/halo/issues/6003\r\n\r\n#### Special notes for your reviewer:\r\n\r\n1. Run with `default` and `dev` profiles respectively.\r\n2. See the difference of the `Cache-Control` header in HTTP response\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\n优化 HTTP 缓存控制\r\n```","shortMessageHtmlLink":"Refactor cache control for static resources (#6015)"}},{"before":"bf75a36df7339e98440ef5d5d55792633d7ea690","after":"4c6abdcaa131a37468aef250761394241a87978f","ref":"refs/heads/main","pushedAt":"2024-05-30T07:01:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"feat: enable asynchronous resolving for UI extension points (#6018)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind feature\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n优化 UI 部分的扩展点获取实现,让部分扩展点支持异步获取,之前的实现与文档不符。\r\n\r\n比如:\r\n\r\n```ts\r\nimport { definePlugin } from \"@halo-dev/console-shared\";\r\nimport axios from \"axios\";\r\n\r\nexport default definePlugin({\r\n components: {},\r\n routes: [],\r\n extensionPoints: {\r\n \"attachment:selector:create\": async () => {\r\n const { data } = await axios.get(\r\n \"/apis/v1alpha1/fake.halo.run/attachments/selectors\"\r\n );\r\n\r\n return data;\r\n },\r\n },\r\n});\r\n```\r\n\r\n#### Which issue(s) this PR fixes:\r\n\r\nFixes https://github.com/halo-dev/halo/issues/6008\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\n优化 UI 部分的扩展点获取实现,让部分扩展点支持异步获取。\r\n```","shortMessageHtmlLink":"feat: enable asynchronous resolving for UI extension points (#6018)"}},{"before":"6d3ba969ab9d8bcb2002c50052688ebd40e0890f","after":"bf75a36df7339e98440ef5d5d55792633d7ea690","ref":"refs/heads/main","pushedAt":"2024-05-30T06:55:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"chore: revert @uppy/xhr-upload version to 3.6.0 (#6019)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind bug\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n回退 `@uppy/xhr-upload` 的版本至 3.6.0,因为最新版本的 `@uppy/xhr-upload` 添加了重试机制和修改了错误异常的结构,并且当前重试参数并没有体现在文档和 API 中,所以暂时先回退至 3.6.0 以解决 https://github.com/halo-dev/halo/issues/6014\r\n\r\nhttps://github.com/transloadit/uppy/blame/31cc47f3fb7513c82b887b429aa5f2a36eb4d593/packages/%40uppy/utils/src/fetcher.ts#L26\r\n\r\n#### Which issue(s) this PR fixes:\r\n\r\nFixes https://github.com/halo-dev/halo/issues/6014\r\n\r\n#### Special notes for your reviewer:\r\n\r\n需要测试:\r\n\r\n1. 附件上传功能\r\n2. 上传已安装的插件或者主题,观察是否有提示升级。\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"chore: revert @uppy/xhr-upload version to 3.6.0 (#6019)"}},{"before":"f87e78904ceaa9b14baa3dbe2a6804fec3e5691b","after":"6d3ba969ab9d8bcb2002c50052688ebd40e0890f","ref":"refs/heads/main","pushedAt":"2024-05-30T05:31:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"refactor: refine i18n prompts for themes (#6020)\n\n#### What type of PR is this?\r\n/kind improvement\r\n/area core\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n优化主题安装时的中文提示\r\n\r\n\"image\"\r\n\r\n#### Does this PR introduce a user-facing change?\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"refactor: refine i18n prompts for themes (#6020)"}},{"before":"08ff7e6e0016950ce9ce65a27ef0b475994903c1","after":"f87e78904ceaa9b14baa3dbe2a6804fec3e5691b","ref":"refs/heads/main","pushedAt":"2024-05-29T08:53:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"feat: add version for themes and plugins when copying overview information (#6012)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind feature\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n在概览页面复制信息时,为主题和插件添加版本号。\r\n\r\n示例:\r\n\r\n```\r\n- 外部访问地址: \r\n- 启动时间: 2024-05-29 15:51\r\n- 版本: 2.16.0-SNAPSHOT\r\n- 构建时间: 2024-05-29 15:51\r\n- Git Commit: 6204472\r\n- Java: OpenJDK Runtime Environment / 17.0.11+0\r\n- 数据库: PostgreSQL / 15.2 (Debian 15.2-1.pgdg110+1)\r\n- 操作系统: Mac OS X / 14.5\r\n- 已激活主题: [Earth 1.8.0](https://github.com/halo-dev/theme-earth.git)\r\n- 已启动插件:\r\n - [静态网页服务 1.0.0-alpha.2](https://github.com/ruibaby/plugin-static-pages)\r\n - [评论组件 2.10.0-SNAPSHOT](https://github.com/halo-dev/plugin-comment-widget)\r\n - [OAuth2 认证 1.1.1](https://github.com/halo-sigs/plugin-oauth2)\r\n - [增强备份(Backup IMproved) 1.0.0-SNAPSHOT](https://www.halo.run/store/apps/app-dHakX)\r\n - [图库管理 1.3.0](https://github.com/halo-sigs/plugin-photos)\r\n - [Markdown / HTML 内容块 1.2.0](https://github.com/halo-dev/plugin-hybrid-edit-block)\r\n - AI 助手 1.0.0-alpha.2\r\n - [对象存储(Amazon S3 协议) 1.9.1](https://github.com/halo-dev/plugin-s3)\r\n - [链接管理 1.3.3](https://github.com/halo-sigs/plugin-links)\r\n - [Docsme 1.0.0-alpha.5](https://github.com/f2ccloud/plugin-docsme)\r\n - [ByteMD 1.4.0](https://github.com/ruibaby/plugin-bytemd)\r\n - [StackEdit 1.1.1](https://github.com/halo-sigs/plugin-stackedit)\r\n - [应用市场 1.3.0](https://www.halo.run/store/apps/app-VYJbF)\r\n```\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\n在概览页面复制信息时,为主题和插件添加版本号。\r\n```","shortMessageHtmlLink":"feat: add version for themes and plugins when copying overview inform…"}},{"before":"608f2bbca33a855bdb2d3cb274fc33f68b7f73c9","after":"08ff7e6e0016950ce9ce65a27ef0b475994903c1","ref":"refs/heads/main","pushedAt":"2024-05-29T06:35:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"Fix the problem where extension point might not be obtained when the plugin was started (#6006)\n\n#### What type of PR is this?\r\n\r\n/kind bug\r\n/area plugin\r\n/area core\r\n\r\n#### What this PR does / why we need it:\r\n\r\nThis PR refactors SpringComponentsFinder to prevent unexpected cleanup, which might lead to not be able to obtain plugin extension when the plugin was started.\r\n\r\nThe real reason is that entries is initialized by AttachmentReconciler during initialization of some plugins.\r\n\r\nPlease note the problem cannot be reproduced stably.\r\n\r\nRefs:\r\n\r\n- https://github.com/pf4j/pf4j/blob/e3125f2998197d6f866abd1eb77a922103c1cace/pf4j/src/main/java/org/pf4j/AbstractExtensionFinder.java#L229-L249\r\n- https://github.com/pf4j/pf4j/blob/e3125f2998197d6f866abd1eb77a922103c1cace/pf4j/src/main/java/org/pf4j/AbstractExtensionFinder.java#L312-L316\r\n\r\n#### Which issue(s) this PR fixes:\r\n\r\nFixes https://github.com/halo-dev/halo/issues/5999\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\n修复插件启动成功但仍然可能无法获取扩展点导致页面无法访问的问题\r\n```","shortMessageHtmlLink":"Fix the problem where extension point might not be obtained when the …"}},{"before":"dad6610cce417b72f1df630aeef69e2ca3319d6f","after":"608f2bbca33a855bdb2d3cb274fc33f68b7f73c9","ref":"refs/heads/main","pushedAt":"2024-05-29T03:13:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"Fix the problem the PAT could not be created or restored while logging in with remember-me (#6007)\n\n#### What type of PR is this?\r\n\r\n/kind bug\r\n/area core\r\n/milestone 2.16.0\r\n\r\n#### What this PR does / why we need it:\r\n\r\nPAT could not be created or restored while logging in with remember-me due to lack of RememberMeAuthenticationToken check.\r\n\r\n#### Which issue(s) this PR fixes:\r\n\r\nFixes https://github.com/halo-dev/halo/issues/6000\r\n\r\n#### Special notes for your reviewer:\r\n\r\n1. Log in with remember-me\r\n2. Create a PAT or restore a PAT\r\n3. See the result\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"Fix the problem the PAT could not be created or restored while loggin…"}},{"before":"afabffc54640fbe35c43985214e232714c4b48f0","after":"dad6610cce417b72f1df630aeef69e2ca3319d6f","ref":"refs/heads/main","pushedAt":"2024-05-28T09:13:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"Add support for serializing or deserializing HaloUser and 2FA (#6005)\n\n#### What type of PR is this?\r\n\r\n/kind improvement\r\n/area core\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\nThis PR adds support for serializing HaloUser and 2FA.\r\n\r\n1. Refactor delegate of HaloUser using `org.springframework.security.core.userdetails.User`.\r\n2. Add `HaloSecurityJackson2Module` to enable serialization/deserialization of Halo security module.\r\n\r\nBelow is code snippet of integration:\r\n\r\n```java\r\n this.objectMapper = Jackson2ObjectMapperBuilder.json()\r\n .modules(SecurityJackson2Modules.getModules(this.getClass().getClassLoader()))\r\n .modules(modules -> modules.add(new HaloSecurityJackson2Module()))\r\n .indentOutput(true)\r\n .build();\r\n```\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"Add support for serializing or deserializing HaloUser and 2FA (#6005)"}},{"before":"22ce60b0e9485a5309b213055711c269650f4471","after":"afabffc54640fbe35c43985214e232714c4b48f0","ref":"refs/heads/main","pushedAt":"2024-05-27T08:56:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"refactor: typing component template refs for VModal (#5994)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind improvement\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n为 VModal 组件的引用添加类型。\r\n\r\nSee https://vuejs.org/guide/typescript/composition-api.html#typing-component-template-refs\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"refactor: typing component template refs for VModal (#5994)"}},{"before":"94826d44c06d8360e81ca6ae740a6ec3e64d4cf0","after":"22ce60b0e9485a5309b213055711c269650f4471","ref":"refs/heads/main","pushedAt":"2024-05-27T08:34:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"chore: bump uppy version (#5997)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind improvement\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n更新上传库 Uppy 的包依赖。\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\n更新上传库 Uppy 的包依赖。\r\n```","shortMessageHtmlLink":"chore: bump uppy version (#5997)"}},{"before":"19fb1c2311f9400e2d0b456305e6455c59a85878","after":"94826d44c06d8360e81ca6ae740a6ec3e64d4cf0","ref":"refs/heads/main","pushedAt":"2024-05-27T08:30:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"refactor: improve ui/ux of attachment group and policy selector (#5996)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind improvement\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n优化附件分组、存储策略选择组件的 UI。\r\n\r\n\"image\"\r\n\"image\"\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\n优化附件分组、存储策略选择组件的 UI。\r\n```","shortMessageHtmlLink":"refactor: improve ui/ux of attachment group and policy selector (#5996)"}},{"before":"54e088741edad08c415491699c545ae1e0e821af","after":"19fb1c2311f9400e2d0b456305e6455c59a85878","ref":"refs/heads/main","pushedAt":"2024-05-27T08:28:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"feat: record the plugin query conditions in the route query parameters (#5995)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind feature\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n在插件数据管理列表页面路由中记录查询条件,可以保证在刷新页面或者切换路由返回时保留之前的查询状态。\r\n\r\n\"image\"\r\n\r\n#### Special notes for your reviewer:\r\n\r\n需要测试:\r\n\r\n1. 插件管理列表的所有筛选项是否可以正常工作。\r\n2. 尝试设置部分筛选,然后刷新页面,观察筛选条件是否正常保留。\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nConsole 端的插件管理列表支持在地址栏记录筛选条件。\r\n```","shortMessageHtmlLink":"feat: record the plugin query conditions in the route query parameters ("}},{"before":"6124ab98319ffccd466cf7dc0f1a410f226ec83f","after":"54e088741edad08c415491699c545ae1e0e821af","ref":"refs/heads/main","pushedAt":"2024-05-27T08:26:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"refactor: logic of publishing post (#5987)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind improvement\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n重构文章的发布逻辑,以下是主要改动:\r\n\r\n1. 如果文章未发布,点击文章设置的发布按钮时,会先保存文章。\r\n2. 在文章列表的操作菜单中添加发布 / 取消发布的选项。\r\n3. 重构文章设置中,发布 / 取消发布按钮的显示条件。\r\n4. 优化文章设置对话框的显示条件,减少不必要的渲染开销和请求。\r\n\r\n#### Special notes for your reviewer:\r\n\r\n需要测试:\r\n\r\n1. 文章正常新建和发布的逻辑。\r\n2. 文章设置未来时间的发布逻辑。\r\n3. 取消定时发布和已发布文章的逻辑。\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\n优化 Console 文章管理中的文章发布逻辑。\r\n```","shortMessageHtmlLink":"refactor: logic of publishing post (#5987)"}},{"before":"d675c4a8b11f16f2a5e70d69944a582359e71fb9","after":"6124ab98319ffccd466cf7dc0f1a410f226ec83f","ref":"refs/heads/main","pushedAt":"2024-05-27T08:24:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"feat: add retry feature for update last read time of comment (#5985)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind improvement\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n为更新评论的最后读取时间添加重试机制。Ref https://github.com/halo-dev/halo/pull/5903#issuecomment-2106855779\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone \r\n```","shortMessageHtmlLink":"feat: add retry feature for update last read time of comment (#5985)"}},{"before":"5df51bb71595f98c23b107bf484d7dff92c8c46b","after":"d675c4a8b11f16f2a5e70d69944a582359e71fb9","ref":"refs/heads/main","pushedAt":"2024-05-27T08:22:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"f2c-ci-robot[bot]","name":null,"path":"/apps/f2c-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/179827?s=80&v=4"},"commit":{"message":"fix: update initial values when form data changes (#5993)\n\n#### What type of PR is this?\r\n\r\n/area ui\r\n/kind bug\r\n/milestone 2.16.x\r\n\r\n#### What this PR does / why we need it:\r\n\r\n修复部分表单数据更新时,引用的初始值对象被跟着更新的问题。\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nNone\r\n```","shortMessageHtmlLink":"fix: update initial values when form data changes (#5993)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXxrIyQA","startCursor":null,"endCursor":null}},"title":"Activity · halo-dev/halo"}