{"ref":"refs/heads/main","before":"413babe170207d982eb321844902bc78892d0f39","after":"3f49d1a675c4d9a1475fe2fbc2333d7330dbcb03","repository":{"id":758965894,"node_id":"R_kgDOLTzmhg","name":"FreeCAD","full_name":"ilf-S/FreeCAD","private":false,"owner":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","login":"ilf-S","id":1728511,"node_id":"MDQ6VXNlcjE3Mjg1MTE=","avatar_url":"https://avatars.githubusercontent.com/u/1728511?v=4","gravatar_id":"","url":"https://api.github.com/users/ilf-S","html_url":"https://github.com/ilf-S","followers_url":"https://api.github.com/users/ilf-S/followers","following_url":"https://api.github.com/users/ilf-S/following{/other_user}","gists_url":"https://api.github.com/users/ilf-S/gists{/gist_id}","starred_url":"https://api.github.com/users/ilf-S/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ilf-S/subscriptions","organizations_url":"https://api.github.com/users/ilf-S/orgs","repos_url":"https://api.github.com/users/ilf-S/repos","events_url":"https://api.github.com/users/ilf-S/events{/privacy}","received_events_url":"https://api.github.com/users/ilf-S/received_events","type":"User","user_view_type":"public","site_admin":false},"html_url":"https://github.com/ilf-S/FreeCAD","description":"This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler.","fork":true,"url":"https://api.github.com/repos/ilf-S/FreeCAD","forks_url":"https://api.github.com/repos/ilf-S/FreeCAD/forks","keys_url":"https://api.github.com/repos/ilf-S/FreeCAD/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ilf-S/FreeCAD/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ilf-S/FreeCAD/teams","hooks_url":"https://api.github.com/repos/ilf-S/FreeCAD/hooks","issue_events_url":"https://api.github.com/repos/ilf-S/FreeCAD/issues/events{/number}","events_url":"https://api.github.com/repos/ilf-S/FreeCAD/events","assignees_url":"https://api.github.com/repos/ilf-S/FreeCAD/assignees{/user}","branches_url":"https://api.github.com/repos/ilf-S/FreeCAD/branches{/branch}","tags_url":"https://api.github.com/repos/ilf-S/FreeCAD/tags","blobs_url":"https://api.github.com/repos/ilf-S/FreeCAD/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ilf-S/FreeCAD/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ilf-S/FreeCAD/git/refs{/sha}","trees_url":"https://api.github.com/repos/ilf-S/FreeCAD/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ilf-S/FreeCAD/statuses/{sha}","languages_url":"https://api.github.com/repos/ilf-S/FreeCAD/languages","stargazers_url":"https://api.github.com/repos/ilf-S/FreeCAD/stargazers","contributors_url":"https://api.github.com/repos/ilf-S/FreeCAD/contributors","subscribers_url":"https://api.github.com/repos/ilf-S/FreeCAD/subscribers","subscription_url":"https://api.github.com/repos/ilf-S/FreeCAD/subscription","commits_url":"https://api.github.com/repos/ilf-S/FreeCAD/commits{/sha}","git_commits_url":"https://api.github.com/repos/ilf-S/FreeCAD/git/commits{/sha}","comments_url":"https://api.github.com/repos/ilf-S/FreeCAD/comments{/number}","issue_comment_url":"https://api.github.com/repos/ilf-S/FreeCAD/issues/comments{/number}","contents_url":"https://api.github.com/repos/ilf-S/FreeCAD/contents/{+path}","compare_url":"https://api.github.com/repos/ilf-S/FreeCAD/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ilf-S/FreeCAD/merges","archive_url":"https://api.github.com/repos/ilf-S/FreeCAD/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ilf-S/FreeCAD/downloads","issues_url":"https://api.github.com/repos/ilf-S/FreeCAD/issues{/number}","pulls_url":"https://api.github.com/repos/ilf-S/FreeCAD/pulls{/number}","milestones_url":"https://api.github.com/repos/ilf-S/FreeCAD/milestones{/number}","notifications_url":"https://api.github.com/repos/ilf-S/FreeCAD/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ilf-S/FreeCAD/labels{/name}","releases_url":"https://api.github.com/repos/ilf-S/FreeCAD/releases{/id}","deployments_url":"https://api.github.com/repos/ilf-S/FreeCAD/deployments","created_at":1708184682,"updated_at":"2026-03-29T02:14:51Z","pushed_at":1774837513,"git_url":"git://github.com/ilf-S/FreeCAD.git","ssh_url":"git@github.com:ilf-S/FreeCAD.git","clone_url":"https://github.com/ilf-S/FreeCAD.git","svn_url":"https://github.com/ilf-S/FreeCAD","homepage":"https://www.freecad.org","size":2421031,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"lgpl-2.1","name":"GNU Lesser General Public License v2.1","spdx_id":"LGPL-2.1","url":"https://api.github.com/licenses/lgpl-2.1","node_id":"MDc6TGljZW5zZTEx"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"has_pull_requests":true,"pull_request_creation_policy":"all","topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"main","stargazers":0,"master_branch":"main"},"pusher":{"name":"github-actions[bot]","email":null},"forced":false,"sender":{"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":false,"deleted":false,"base_ref":null,"compare":"https://github.com/ilf-S/FreeCAD/compare/413babe17020...3f49d1a675c4","commits":[{"id":"ab5a2e5d8cb973233da1d6e8eaf5927b5439ba7e","tree_id":"b3b99f66e30f72ef63707c39174419e7957fe6b1","distinct":true,"message":"CAM: Engrave - Replace Part2DObject by Part::Feature with zero volume","timestamp":"2026-02-22T18:48:33+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/ab5a2e5d8cb973233da1d6e8eaf5927b5439ba7e","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2025-11-17T08:29:14+02:00","username":"tarman3"},"committer":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-02-22T18:48:33+02:00","username":"tarman3"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Op/Engrave.py","src/Mod/CAM/Path/Op/Gui/Engrave.py"]},{"id":"a626db1ad1a447dac5c72e6de9b6f6268a45ce0f","tree_id":"bd4d1c93646fca40d2f7483f7f5628d3fb6a6c2a","distinct":true,"message":"CAM: Path.Geom.combineHorizontalFaces() - face with bad wires","timestamp":"2026-02-25T20:38:59+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/a626db1ad1a447dac5c72e6de9b6f6268a45ce0f","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-01-04T09:51:53+02:00","username":"tarman3"},"committer":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-02-25T20:38:59+02:00","username":"tarman3"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Geom.py"]},{"id":"1eddca769caac0644252234684b40297f8a558e9","tree_id":"ff2868a3ffb8a33983af541426d30e006fdd6dbb","distinct":true,"message":"fix red ink bug with kineticNCBeamicon2 legacy post","timestamp":"2026-03-28T10:24:07-05:00","url":"https://github.com/ilf-S/FreeCAD/commit/1eddca769caac0644252234684b40297f8a558e9","author":{"name":"sliptonic","email":"shopinthewoods@gmail.com","date":"2026-03-28T10:24:07-05:00","username":"sliptonic"},"committer":{"name":"sliptonic","email":"shopinthewoods@gmail.com","date":"2026-03-28T10:24:07-05:00","username":"sliptonic"},"added":[],"removed":[],"modified":["src/Mod/CAM/CMakeLists.txt","src/Mod/CAM/Path/Post/scripts/KineticNCBeamicon2_legacy_post.py"]},{"id":"530f9518fbc4696fdf9ecb16b08e107049f89be0","tree_id":"68083d3d73418201f18f6c92bd64d62b3146343e","distinct":true,"message":"fixes #27519","timestamp":"2026-03-28T11:30:43-05:00","url":"https://github.com/ilf-S/FreeCAD/commit/530f9518fbc4696fdf9ecb16b08e107049f89be0","author":{"name":"sliptonic","email":"shopinthewoods@gmail.com","date":"2026-03-28T11:30:43-05:00","username":"sliptonic"},"committer":{"name":"sliptonic","email":"shopinthewoods@gmail.com","date":"2026-03-28T11:30:43-05:00","username":"sliptonic"},"added":[],"removed":[],"modified":["src/Mod/CAM/CAMTests/TestPathThreadMillingGenerator.py","src/Mod/CAM/Path/Base/Generator/threadmilling.py"]},{"id":"ccb038855f8059f0fd94f2bcf4f492e31b8851fc","tree_id":"045f8d4a032faaff71097737c7303d66fee09e75","distinct":true,"message":"App/BIM/Draft: use repr() for more robust quoting (#28757)\n\n* Draft: Improve quoting robustness when handling user input text\n\n* BIM: Improve quoting robustness when handling user input text\n\n* Application: Improve quoting robustness when handling user input text","timestamp":"2026-03-29T11:27:45+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/ccb038855f8059f0fd94f2bcf4f492e31b8851fc","author":{"name":"Chris Hennes","email":"chennes@pioneerlibrarysystem.org","date":"2026-03-29T04:27:45-05:00","username":"chennes"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-03-29T11:27:45+02:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/App/ApplicationPy.cpp","src/Mod/BIM/ArchStructure.py","src/Mod/BIM/bimcommands/BimDrawingView.py","src/Mod/BIM/bimcommands/BimSlab.py","src/Mod/BIM/bimcommands/BimWindow.py","src/Mod/Draft/draftguitools/gui_hatch.py","src/Mod/Draft/drafttaskpanels/task_shapestring.py","src/Mod/Draft/draftviewproviders/view_text.py"]},{"id":"f5c28e05dc0c5906b57c4ea7bbd2b0c83af427e4","tree_id":"a88dce6320f2bf01704abdac0b93560c51749f1e","distinct":true,"message":"CAM: Dogbone Dressup - Limit max length of adaptive incision (#26361)\n\n* CAM: Dogbone Dressup - Minor changes\n* CAM: Dogbone Dressup - Limit adaptive value","timestamp":"2026-03-29T08:44:54-05:00","url":"https://github.com/ilf-S/FreeCAD/commit/f5c28e05dc0c5906b57c4ea7bbd2b0c83af427e4","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-03-29T16:44:54+03:00","username":"tarman3"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-03-29T08:44:54-05:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/CAMTests/TestPathDressupDogboneII.py","src/Mod/CAM/Path/Dressup/DogboneII.py"]},{"id":"a56ef7d8f964191834f82389d7dd1f72d6be5d5f","tree_id":"f4a5e3a8c7f5982d2f2925d88922851c91fd8785","distinct":true,"message":"Merge pull request #26636 from tarman3/combineHorizontalFaces\n\nCAM: Path.Geom.combineHorizontalFaces() - Filter bad wires from face","timestamp":"2026-03-29T09:59:43-05:00","url":"https://github.com/ilf-S/FreeCAD/commit/a56ef7d8f964191834f82389d7dd1f72d6be5d5f","author":{"name":"sliptonic","email":"shopinthewoods@gmail.com","date":"2026-03-29T09:59:43-05:00","username":"sliptonic"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-03-29T09:59:43-05:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Geom.py"]},{"id":"ae398faae25caa6c6eb4579a235f9d7ac4e59fe5","tree_id":"392623a96e40db67fff06dbc4a5f4997bbf2dc2d","distinct":true,"message":"CAM: Drilling - Optimize linking (#28190)","timestamp":"2026-03-29T12:02:19-04:00","url":"https://github.com/ilf-S/FreeCAD/commit/ae398faae25caa6c6eb4579a235f9d7ac4e59fe5","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-03-29T19:02:19+03:00","username":"tarman3"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-03-29T12:02:19-04:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Op/Drilling.py"]},{"id":"20e67365c97361f29082e6acd8f49af818fec6e1","tree_id":"da4f2a85dfdb0fc097ea97bd4bcb84fcff31aad6","distinct":true,"message":"Merge pull request #25383 from tarman3/engrave_partfeature\n\nCAM: Engrave - Allow flat Part::Feature object in Task panel","timestamp":"2026-03-29T12:38:02-04:00","url":"https://github.com/ilf-S/FreeCAD/commit/20e67365c97361f29082e6acd8f49af818fec6e1","author":{"name":"Connor9220","email":"billy@ivdc.com","date":"2026-03-29T12:38:02-04:00","username":"Connor9220"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-03-29T12:38:02-04:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Op/Engrave.py","src/Mod/CAM/Path/Op/Gui/Engrave.py"]},{"id":"0a73e697456c285b0a5f709fd0af25b5486c04ff","tree_id":"f2644dc7c2e6464888865b91badcffe8d948930e","distinct":true,"message":"Merge pull request #28792 from sliptonic/threadmillbug\n\nCAM: Fix threadmilling bug","timestamp":"2026-03-29T16:45:11-04:00","url":"https://github.com/ilf-S/FreeCAD/commit/0a73e697456c285b0a5f709fd0af25b5486c04ff","author":{"name":"Connor9220","email":"billy@ivdc.com","date":"2026-03-29T16:45:11-04:00","username":"Connor9220"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-03-29T16:45:11-04:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/CAMTests/TestPathThreadMillingGenerator.py","src/Mod/CAM/Path/Base/Generator/threadmilling.py"]},{"id":"637d446ad663ff4f4c7ccb10413c45e2dbb300f7","tree_id":"c583d45829c26473259badd9374a756ef7615a8e","distinct":true,"message":"Merge pull request #28789 from sliptonic/PPRedInk\n\nCAM: fix red ink bug with kineticNCBeamicon2 legacy post","timestamp":"2026-03-29T16:47:09-04:00","url":"https://github.com/ilf-S/FreeCAD/commit/637d446ad663ff4f4c7ccb10413c45e2dbb300f7","author":{"name":"Connor9220","email":"billy@ivdc.com","date":"2026-03-29T16:47:09-04:00","username":"Connor9220"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-03-29T16:47:09-04:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/CMakeLists.txt","src/Mod/CAM/Path/Post/scripts/KineticNCBeamicon2_legacy_post.py"]},{"id":"e2b233eab177592c014c5b66c5a1458ad81b613a","tree_id":"559bf0501e6be8d048c91efa31f9bbb20dc70b5f","distinct":true,"message":"Gui: Navi Cube - Double click to \"home to face\" (#28608)\n\nDouble click a face to have it rotate to the face and center\n\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>","timestamp":"2026-03-29T22:56:36+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/e2b233eab177592c014c5b66c5a1458ad81b613a","author":{"name":"Jack Stromberg","email":"jstrom@microsoft.com","date":"2026-03-29T15:56:36-05:00","username":"JackStromberg"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-03-29T22:56:36+02:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Gui/NaviCube.cpp"]},{"id":"d619da8011f1541b7948f539e428890a360f511e","tree_id":"d28f24914f2cddaf8c8b4a1a5e14cfb7cac729e8","distinct":true,"message":"Part/PD: Error handling for failed preview generation\n\nPrevent exceptions from propagating into Qt code.","timestamp":"2026-03-30T01:03:57+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/d619da8011f1541b7948f539e428890a360f511e","author":{"name":"Chris Hennes","email":"chennes@gmail.com","date":"2026-03-29T13:55:59-05:00","username":"chennes"},"committer":{"name":"Benjamin Nauck","email":"benjamin@nauck.se","date":"2026-03-30T01:03:57+02:00","username":"hyarion"},"added":[],"removed":[],"modified":["src/Mod/Part/Gui/PreviewUpdateScheduler.cpp","src/Mod/PartDesign/App/FeatureBoolean.cpp"]},{"id":"3f49d1a675c4d9a1475fe2fbc2333d7330dbcb03","tree_id":"3eae3f6a884f238769edbdae82d888bb7e0db288","distinct":true,"message":"merge upstream (auto-resolve CI; keep packaging & our workflow) [skip ci]","timestamp":"2026-03-30T02:25:11Z","url":"https://github.com/ilf-S/FreeCAD/commit/3f49d1a675c4d9a1475fe2fbc2333d7330dbcb03","author":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-03-30T02:25:11Z","username":"ilf-S"},"committer":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-03-30T02:25:11Z","username":"ilf-S"},"added":[],"removed":[],"modified":["src/App/ApplicationPy.cpp","src/Gui/NaviCube.cpp","src/Mod/BIM/ArchStructure.py","src/Mod/BIM/bimcommands/BimDrawingView.py","src/Mod/BIM/bimcommands/BimSlab.py","src/Mod/BIM/bimcommands/BimWindow.py","src/Mod/CAM/CAMTests/TestPathDressupDogboneII.py","src/Mod/CAM/CAMTests/TestPathThreadMillingGenerator.py","src/Mod/CAM/CMakeLists.txt","src/Mod/CAM/Path/Base/Generator/threadmilling.py","src/Mod/CAM/Path/Dressup/DogboneII.py","src/Mod/CAM/Path/Geom.py","src/Mod/CAM/Path/Op/Drilling.py","src/Mod/CAM/Path/Op/Engrave.py","src/Mod/CAM/Path/Op/Gui/Engrave.py","src/Mod/CAM/Path/Post/scripts/KineticNCBeamicon2_legacy_post.py","src/Mod/Draft/draftguitools/gui_hatch.py","src/Mod/Draft/drafttaskpanels/task_shapestring.py","src/Mod/Draft/draftviewproviders/view_text.py","src/Mod/Part/Gui/PreviewUpdateScheduler.cpp","src/Mod/PartDesign/App/FeatureBoolean.cpp"]}],"head_commit":{"id":"3f49d1a675c4d9a1475fe2fbc2333d7330dbcb03","tree_id":"3eae3f6a884f238769edbdae82d888bb7e0db288","distinct":true,"message":"merge upstream (auto-resolve CI; keep packaging & our workflow) [skip ci]","timestamp":"2026-03-30T02:25:11Z","url":"https://github.com/ilf-S/FreeCAD/commit/3f49d1a675c4d9a1475fe2fbc2333d7330dbcb03","author":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-03-30T02:25:11Z","username":"ilf-S"},"committer":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-03-30T02:25:11Z","username":"ilf-S"},"added":[],"removed":[],"modified":["src/App/ApplicationPy.cpp","src/Gui/NaviCube.cpp","src/Mod/BIM/ArchStructure.py","src/Mod/BIM/bimcommands/BimDrawingView.py","src/Mod/BIM/bimcommands/BimSlab.py","src/Mod/BIM/bimcommands/BimWindow.py","src/Mod/CAM/CAMTests/TestPathDressupDogboneII.py","src/Mod/CAM/CAMTests/TestPathThreadMillingGenerator.py","src/Mod/CAM/CMakeLists.txt","src/Mod/CAM/Path/Base/Generator/threadmilling.py","src/Mod/CAM/Path/Dressup/DogboneII.py","src/Mod/CAM/Path/Geom.py","src/Mod/CAM/Path/Op/Drilling.py","src/Mod/CAM/Path/Op/Engrave.py","src/Mod/CAM/Path/Op/Gui/Engrave.py","src/Mod/CAM/Path/Post/scripts/KineticNCBeamicon2_legacy_post.py","src/Mod/Draft/draftguitools/gui_hatch.py","src/Mod/Draft/drafttaskpanels/task_shapestring.py","src/Mod/Draft/draftviewproviders/view_text.py","src/Mod/Part/Gui/PreviewUpdateScheduler.cpp","src/Mod/PartDesign/App/FeatureBoolean.cpp"]}}