{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":38982,"defaultBranch":"main","name":"Thonny-AI-Code-Completion-Group-1-","ownerLogin":"wangt65","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2025-11-21T11:28:38.000Z","ownerAvatar":"https://github.coventry.ac.uk/avatars/u/6635","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1765033196.0","currentOid":""},"activityList":{"items":[{"before":"a7590fb095442f093be112c447fa65618150c0ed","after":"eec2f18564fb932301012abed0c871ff265e5c6f","ref":"refs/heads/main","pushedAt":"2025-12-15T08:29:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"wangt65","name":"Ting Wang (wangt65)","path":"/wangt65","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6635?s=80"},"commit":{"message":"Merge remote-tracking branch 'origin/main'","shortMessageHtmlLink":"Merge remote-tracking branch 'origin/main'"}},{"before":"f1f28c28fdb5147184d4f9b7ca2df68700e31263","after":"a7590fb095442f093be112c447fa65618150c0ed","ref":"refs/heads/main","pushedAt":"2025-12-13T17:00:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"Submit and push all previous updates together. Added AI assistant settings, allowing users to enter and save the API key and other information. Improved the AI completion feature.","shortMessageHtmlLink":"Submit and push all previous updates together. Added AI assistant set…"}},{"before":"fc04e212dd582a380e36b53476e2dd17f5ae766b","after":"f1f28c28fdb5147184d4f9b7ca2df68700e31263","ref":"refs/heads/main","pushedAt":"2025-12-07T10:45:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"删了一个注释","shortMessageHtmlLink":"删了一个注释"}},{"before":"09f19be6ace59a2ec2db7c26b000da721d196e76","after":"fc04e212dd582a380e36b53476e2dd17f5ae766b","ref":"refs/heads/main","pushedAt":"2025-12-07T10:30:38.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"lim133","name":"Manshu Li (lim133)","path":"/lim133","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6617?s=80"},"commit":{"message":"Merge remote-tracking branch 'origin/main'","shortMessageHtmlLink":"Merge remote-tracking branch 'origin/main'"}},{"before":"823e613662be6116446fe6c0e767701fe006845c","after":"09f19be6ace59a2ec2db7c26b000da721d196e76","ref":"refs/heads/main","pushedAt":"2025-12-07T10:21:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"修改了settings.py,api配置修改应该可以保存","shortMessageHtmlLink":"修改了settings.py,api配置修改应该可以保存"}},{"before":"27b884bef332faac7196214b2e37e314fe443568","after":"823e613662be6116446fe6c0e767701fe006845c","ref":"refs/heads/main","pushedAt":"2025-12-07T08:41:02.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"修改了settings.py,对话框改变并尝试调用ai_config.py","shortMessageHtmlLink":"修改了settings.py,对话框改变并尝试调用ai_config.py"}},{"before":"df6fcfe06f96655ee4aa983fe2ccfa9ce1e2905a","after":"27b884bef332faac7196214b2e37e314fe443568","ref":"refs/heads/main","pushedAt":"2025-12-07T08:36:10.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"luy86","name":"Yanxi Lu (luy86)","path":"/luy86","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6636?s=80"},"commit":{"message":"修复一些已知问题\n\n修复了:\n1.ai_client.py - AI 客户端模块\n实现了 AIClient 类\n支持模拟模式(API Key 未配置时)\n支持真实 API 调用(使用 requests 库)\n自动从设置加载配置\n包含错误处理和日志记录\n2. settings.py - 设置界面模块\n实现了配置保存功能\n使用 Thonny 的 secret 存储保存 API Key(更安全)\n自动加载已保存的配置值\n添加了输入验证\n改进了用户提示\n3. 配置集成\nai_client.py 自动从 settings.py 加载配置\n支持模拟模式和真实 API 模式切换","shortMessageHtmlLink":"修复一些已知问题"}},{"before":"146722689a7d68aa49c31cb254578617b6e0a836","after":"df6fcfe06f96655ee4aa983fe2ccfa9ce1e2905a","ref":"refs/heads/main","pushedAt":"2025-12-07T01:55:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"qiaoj3","name":"Jin Qiao (qiaoj3)","path":"/qiaoj3","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6609?s=80"},"commit":{"message":"Update ai_client.py","shortMessageHtmlLink":"Update ai_client.py"}},{"before":"55c2c92f7a359b7e8c1126ec02d7504d11e72999","after":"146722689a7d68aa49c31cb254578617b6e0a836","ref":"refs/heads/main","pushedAt":"2025-12-07T01:47:18.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"qiaoj3","name":"Jin Qiao (qiaoj3)","path":"/qiaoj3","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6609?s=80"},"commit":{"message":"Merge branch 'main' of https://github.coventry.ac.uk/wangt65/Thonny-AI-Code-Completion-Group-1-","shortMessageHtmlLink":"Merge branch 'main' of https://github.coventry.ac.uk/wangt65/Thonny-A…"}},{"before":"54854af8fb6371642fdedba6f614d44a1cc17110","after":"55c2c92f7a359b7e8c1126ec02d7504d11e72999","ref":"refs/heads/main","pushedAt":"2025-12-06T21:36:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"feat:\n- 修改main.py和settings.py,尝试加入基础设置对话框,包含占位符字段(API密钥、端点、模型)\n- 尝试将设置菜单注册到Thonny的Tools菜单中\n- 尝试创建菜单结构:工具 → AI补全助手插件 → 设置...","shortMessageHtmlLink":"feat:"}},{"before":"e9ad2210a1e0427500a2173821aad6ca979fab35","after":"54854af8fb6371642fdedba6f614d44a1cc17110","ref":"refs/heads/main","pushedAt":"2025-12-06T20:30:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"Delete a wrong python file","shortMessageHtmlLink":"Delete a wrong python file"}},{"before":"da40d83b434059de6da2fdf83fa6d72caafac39e","after":"e9ad2210a1e0427500a2173821aad6ca979fab35","ref":"refs/heads/main","pushedAt":"2025-12-06T20:22:31.000Z","pushType":"push","commitsCount":13,"pusher":{"login":"lim133","name":"Manshu Li (lim133)","path":"/lim133","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6617?s=80"},"commit":{"message":"only test:Add a shortcut key for the confirmation interface of ai-completion","shortMessageHtmlLink":"only test:Add a shortcut key for the confirmation interface of ai-com…"}},{"before":"f1e8d7d7cdab2c761620f5e11f2d41bdd4649d58","after":"da40d83b434059de6da2fdf83fa6d72caafac39e","ref":"refs/heads/main","pushedAt":"2025-12-06T20:11:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"创建设置模块 (settings.py),更新插件入口 (__init__.py),把ai_client.py放回来了","shortMessageHtmlLink":"创建设置模块 (settings.py),更新插件入口 (__init__.py),把ai_client.py放回来了"}},{"before":"13aa0e0f83bd75661253a489197d189028208dcc","after":"f1e8d7d7cdab2c761620f5e11f2d41bdd4649d58","ref":"refs/heads/main","pushedAt":"2025-12-06T19:35:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luy86","name":"Yanxi Lu (luy86)","path":"/luy86","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6636?s=80"},"commit":{"message":"Update ui_utils.py","shortMessageHtmlLink":"Update ui_utils.py"}},{"before":"e60add20fb9b31eed244e67b9793615d115384cb","after":"13aa0e0f83bd75661253a489197d189028208dcc","ref":"refs/heads/main","pushedAt":"2025-12-06T19:34:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luy86","name":"Yanxi Lu (luy86)","path":"/luy86","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6636?s=80"},"commit":{"message":"Update __main__.py","shortMessageHtmlLink":"Update __main__.py"}},{"before":"ad1039b5a6a31b3d2621ebb2816cd606bb761635","after":"e60add20fb9b31eed244e67b9793615d115384cb","ref":"refs/heads/main","pushedAt":"2025-12-06T18:12:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"Update requirements.txt\n\nNew dependencies","shortMessageHtmlLink":"Update requirements.txt"}},{"before":"02580dace402d1895d97d087361b3464f17a6232","after":"ad1039b5a6a31b3d2621ebb2816cd606bb761635","ref":"refs/heads/main","pushedAt":"2025-12-06T17:56:15.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"- 删除冗余的config.py,复用Thonny ConfigurationManager\n- 修复ai_client.py语法错误,适配直接运行/插件模式Merge branch 'feature/settings-api-config'\nmerge: 合并AI插件配置体系重构代码# Please enter a commit message to explain why this merge is necessary,","shortMessageHtmlLink":"- 删除冗余的config.py,复用Thonny ConfigurationManager"}},{"before":"78d6213d948ad7e66af43bca0a7d9d08c027e1c6","after":"02580dace402d1895d97d087361b3464f17a6232","ref":"refs/heads/main","pushedAt":"2025-12-06T17:39:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luy86","name":"Yanxi Lu (luy86)","path":"/luy86","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6636?s=80"},"commit":{"message":"Fix file path handling and improve error handling\n\n- Fix file opening on Windows: Correctly distinguish between local and remote\n file URIs in _cmd_open_file() to prevent \"Unknown command: read_file\" errors\n\n- Improve path URI conversion: Enhance local_path_to_uri() and remote_path_to_uri()\n to better handle Windows paths, removing AssertionError when opening files\n\n- Enhance language server logging: Intelligently detect log levels in\n _listen_stderr() to prevent INFO/WARN messages from being incorrectly\n logged as ERROR\n\n- Remove debug statements: Clean up debug print statements in ui_utils.py\n\n- Improve AI completion error handling: Add comprehensive error handling in\n trigger_ai_completion() with better exception catching and user-friendly\n error messages\n\n- Add test script: Create test_ai_completion.py for testing the AI completion\n functionality","shortMessageHtmlLink":"Fix file path handling and improve error handling"}},{"before":"807c04b661952b545ff6b6855cc7de4c3e0376ad","after":"f5d76b21d781d76a1575996157af225b650fa3be","ref":"refs/heads/feature/settings-api-config","pushedAt":"2025-12-06T17:02:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"feat: 新增AI配置功能,支持API Key/endpoint/model自定义\n- 新增config.py管理配置加载/保存\n- 补全UI生成方法\n- 新增测试用例,覆盖配置加载/AI调用/空代码场景","shortMessageHtmlLink":"feat: 新增AI配置功能,支持API Key/endpoint/model自定义"}},{"before":null,"after":"807c04b661952b545ff6b6855cc7de4c3e0376ad","ref":"refs/heads/feature/settings-api-config","pushedAt":"2025-12-06T14:59:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"feat: 新增AI配置功能,支持API Key/endpoint/model自定义\n- 新增config.py管理配置加载/保存\n- 补全UI生成方法,适配Python 3.10语法\n- 新增测试用例,覆盖配置加载/AI调用/空代码场景","shortMessageHtmlLink":"feat: 新增AI配置功能,支持API Key/endpoint/model自定义"}},{"before":"40c0e8792d3458b8cf575d114ba6466d1b9d00f0","after":"78d6213d948ad7e66af43bca0a7d9d08c027e1c6","ref":"refs/heads/main","pushedAt":"2025-12-06T13:08:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"qiaoj3","name":"Jin Qiao (qiaoj3)","path":"/qiaoj3","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6609?s=80"},"commit":{"message":"Create ai_client.py","shortMessageHtmlLink":"Create ai_client.py"}},{"before":"6122ea15195304d3c47f9e4bf5b1de478eae49b0","after":"40c0e8792d3458b8cf575d114ba6466d1b9d00f0","ref":"refs/heads/main","pushedAt":"2025-12-06T06:49:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"qiaoj3","name":"Jin Qiao (qiaoj3)","path":"/qiaoj3","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6609?s=80"},"commit":{"message":"Update .gitignore","shortMessageHtmlLink":"Update .gitignore"}},{"before":"a0d3fd44a01db822660ec6f1225890e10176cc2a","after":"6122ea15195304d3c47f9e4bf5b1de478eae49b0","ref":"refs/heads/main","pushedAt":"2025-12-05T20:36:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wangt65","name":"Ting Wang (wangt65)","path":"/wangt65","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6635?s=80"},"commit":{"message":"develop1 Ting Wang's work\n\nInitialize the plugin structure as a Thonny plugin under the \"thonnycontrib\" namespace so that it can be installed and removed independently of Thonny itself.\n•\tRegister a new menu item (e.g., “Tools → AI Completion Assistant Plugin → Trigger Completion”).\nRegister a default keyboard shortcut that calls the plugin command.","shortMessageHtmlLink":"develop1 Ting Wang's work"}},{"before":"432bc1d5f980b30b35db83a3a809d4b76279a6bb","after":"a0d3fd44a01db822660ec6f1225890e10176cc2a","ref":"refs/heads/main","pushedAt":"2025-12-05T15:22:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luy86","name":"Yanxi Lu (luy86)","path":"/luy86","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6636?s=80"},"commit":{"message":"Fix false trigger of search dialog when switching IME with Shift key\n\nAdded validation in _redirect_ctrlf to prevent the search dialog from opening when switching Chinese IME with Shift. The handler now verifies:\nControl key is actually pressed\nShift key is not pressed (to distinguish from Ctrl+Shift+F)\nKeysym is 'f'\nEvent char is not a printable character (to filter out IME input events)\nThis prevents IME switching from being mistaken for Ctrl+F.","shortMessageHtmlLink":"Fix false trigger of search dialog when switching IME with Shift key"}},{"before":"8a7c205424cd28877cf4463b2bb9a4bd72bf572b","after":"432bc1d5f980b30b35db83a3a809d4b76279a6bb","ref":"refs/heads/main","pushedAt":"2025-12-05T15:13:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luy86","name":"Yanxi Lu (luy86)","path":"/luy86","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6636?s=80"},"commit":{"message":"Add missing dependencies: grpcio, protobuf, and ruff\n\nAdds missing dependencies to fix startup errors:\ngrpcio>=1.66.2 and protobuf>=5.29.5 - Required by Codeium plugin\nruff>=0.1.0 - Required by Ruff language server\nFixes ModuleNotFoundError when loading these plugins.","shortMessageHtmlLink":"Add missing dependencies: grpcio, protobuf, and ruff"}},{"before":"6dbeaed3d1ca281d4d6c0057e3017e1dd7854e03","after":"8a7c205424cd28877cf4463b2bb9a4bd72bf572b","ref":"refs/heads/main","pushedAt":"2025-12-02T09:31:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luy86","name":"Yanxi Lu (luy86)","path":"/luy86","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6636?s=80"},"commit":{"message":"Update README.rst","shortMessageHtmlLink":"Update README.rst"}},{"before":"963e4dced112f5b0bd05bcd789d74fe667d0e03c","after":"6dbeaed3d1ca281d4d6c0057e3017e1dd7854e03","ref":"refs/heads/main","pushedAt":"2025-12-02T08:59:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"luy86","name":"Yanxi Lu (luy86)","path":"/luy86","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6636?s=80"},"commit":{"message":"Update Lu Yanxi's Introduction","shortMessageHtmlLink":"Update Lu Yanxi's Introduction"}},{"before":"84f7ed2febd23fd64e2cf237d4a2288c6ab04b4f","after":"963e4dced112f5b0bd05bcd789d74fe667d0e03c","ref":"refs/heads/main","pushedAt":"2025-12-02T08:55:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"xus29","name":"Siyuan Xu (xus29)","path":"/xus29","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6620?s=80"},"commit":{"message":"Update Xu Siyuan's Introduction","shortMessageHtmlLink":"Update Xu Siyuan's Introduction"}},{"before":"b881345e06a0e38a483e33eb866aee07c3388cec","after":"84f7ed2febd23fd64e2cf237d4a2288c6ab04b4f","ref":"refs/heads/main","pushedAt":"2025-12-02T08:46:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"qiaoj3","name":"Jin Qiao (qiaoj3)","path":"/qiaoj3","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6609?s=80"},"commit":{"message":"Update Introduction.md","shortMessageHtmlLink":"Update Introduction.md"}},{"before":"394e5ef60eb4702048123b1168c2ba028e8efb59","after":"b881345e06a0e38a483e33eb866aee07c3388cec","ref":"refs/heads/main","pushedAt":"2025-12-02T08:45:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"qiaoj3","name":"Jin Qiao (qiaoj3)","path":"/qiaoj3","primaryAvatarUrl":"https://github.coventry.ac.uk/avatars/u/6609?s=80"},"commit":{"message":"Update Introduction.md","shortMessageHtmlLink":"Update Introduction.md"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks4AB4m0AA","startCursor":null,"endCursor":null}},"title":"Activity · wangt65/Thonny-AI-Code-Completion-Group-1-"}