{"ref":"refs/heads/main","before":"f810c1067c20e0da136691d459a50c3605ea8a34","after":"e2e0c64ea63e8117797d57ff976cc2d416a18aaf","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-01-08T12:10:53Z","pushed_at":1767922872,"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":2342274,"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,"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},"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,"forced":false,"base_ref":null,"compare":"https://github.com/ilf-S/FreeCAD/compare/f810c1067c20...e2e0c64ea63e","commits":[{"id":"0baf444c3e1276b265934a762984f3c0f95092e3","tree_id":"b152b833f4d492b98865297832912e30ebc1fd20","distinct":true,"message":"Revert \"PartDesign: Bake in geometry transform after boolean\"\n\nThis reverts commit 527b2de560.\n\nThe `bakeInTransform()` call uses `transformGeometry()` which converts\nplanar faces to BSplineSurfaces. This prevents the refine algorithm\n(BRepBuilderAPI_RefineModel) from detecting and merging coplanar faces,\nbreaking the Refine option for Boolean operations.\n\nThis matches Part WB's Boolean behavior which does not use\n`bakeInTransform()` and has working refine functionality.","timestamp":"2026-01-08T13:40:52+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/0baf444c3e1276b265934a762984f3c0f95092e3","author":{"name":"tetektoza","email":"tetektoza@gmail.com","date":"2026-01-07T22:21:59+01:00","username":"tetektoza"},"committer":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-01-08T13:40:52+01:00","username":"kadet1090"},"added":[],"removed":[],"modified":["src/Mod/PartDesign/App/FeatureBoolean.cpp"]},{"id":"830329f0fc52f41e2a70ce8907c1076050bdbb1b","tree_id":"69115af90a2a4969fb35898d3fab7bc47fad3901","distinct":true,"message":"Add files via upload","timestamp":"2026-01-08T14:46:06+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/830329f0fc52f41e2a70ce8907c1076050bdbb1b","author":{"name":"PaddleStroke","email":"pierrelouis.boyer@gmail.com","date":"2026-01-07T17:00:03+01:00","username":"PaddleStroke"},"committer":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-01-08T14:46:06+01:00","username":"kadet1090"},"added":[],"removed":[],"modified":["src/Mod/BIM/bimtests/fixtures/FC_site_simple-102.FCStd"]},{"id":"887c8d3bdf55e05d4ff8fed6e3b56321fd4cc6b9","tree_id":"1dfa7448db6b48b749c5c79e548079b7deedad44","distinct":true,"message":"Sketcher: Fix crash when applying constraints during selection batching\n\nCurrently, the selection batching optimization introduced in #26663\nstores ElementItem/ConstraintItem pointers in a buffer to be processed\non the next event loop cycle via `QTimer::singleShot`.\n\nWhen a constraint is applied,\n`slotElementsChanged()/slotConstraintsChanged()`\nrebuilds the list widget, destroying all items. However, the selection\nbuffer was not cleared, leaving dangling pointers. When\n`processSelectionBuffer()`\nexecuted, it attempted to call `QListWidget::row()` on deleted items,\ncausing a segmentation fault.\n\nSo, this patch fixes it by clearing `selectionBuffer` when the list is\nrebuilt, since the buffered pointers are invalidated anyway.","timestamp":"2026-01-08T10:17:35-06:00","url":"https://github.com/ilf-S/FreeCAD/commit/887c8d3bdf55e05d4ff8fed6e3b56321fd4cc6b9","author":{"name":"tetektoza","email":"tetektoza@gmail.com","date":"2026-01-07T20:59:02+01:00","username":"tetektoza"},"committer":{"name":"Chris Hennes","email":"chennes@pioneerlibrarysystem.org","date":"2026-01-08T10:17:35-06:00","username":"chennes"},"added":[],"removed":[],"modified":["src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp","src/Mod/Sketcher/Gui/TaskSketcherElements.cpp"]},{"id":"78dba6c4a96f6c4d2e78b1703b9163c04d67fb60","tree_id":"7649479de71326c6ec0db73ab2f318bc668330f5","distinct":true,"message":"Adds an automatic compare link to the weekly release notes.","timestamp":"2026-01-08T10:20:11-06:00","url":"https://github.com/ilf-S/FreeCAD/commit/78dba6c4a96f6c4d2e78b1703b9163c04d67fb60","author":{"name":"Max Wilfinger","email":"max@wilfinger.de","date":"2026-01-07T15:43:31+01:00","username":"maxwxyz"},"committer":{"name":"Chris Hennes","email":"chennes@pioneerlibrarysystem.org","date":"2026-01-08T10:20:11-06:00","username":"chennes"},"added":[".github/workflows/weekly-compare-link.yml"],"removed":[],"modified":[".github/workflows/weekly-build-notes.md"]},{"id":"b0331ed97959ee04878a1cbe4056f55ebe0832f6","tree_id":"cf0987634c57d0a95f0be8c88ad8309252b632e4","distinct":true,"message":"PD: Handle reference edge in PolarPattern::getTransformations (#26722)\n\nThis fixes issue https://github.com/FreeCAD/FreeCAD/issues/24700\n\n---------\n\nCo-authored-by: wwmayer ","timestamp":"2026-01-08T10:31:42-06:00","url":"https://github.com/ilf-S/FreeCAD/commit/b0331ed97959ee04878a1cbe4056f55ebe0832f6","author":{"name":"Max Wilfinger","email":"6246609+maxwxyz@users.noreply.github.com","date":"2026-01-08T17:31:42+01:00","username":"maxwxyz"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-01-08T10:31:42-06:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/PartDesign/App/FeaturePolarPattern.cpp"]},{"id":"3616611ea3c2c4f02bc9456ba50a267306b8884d","tree_id":"46a9399900383f32bcd9ed66248364a66a5ba84a","distinct":true,"message":"Gui: Handle exception in showValidExpression (#26721)\n\n* Gui: Handle exception in showValidExpression\n\nIf an exception is raised inside showValidExpression() because the\nexpression cannot be evaluated then handle the exception and show it as\ninvalid expression.\n\nThis fixes issue: https://github.com/FreeCAD/FreeCAD/issues/26501\n---------\n\nCo-authored-by: wwmayer ","timestamp":"2026-01-08T10:34:12-06:00","url":"https://github.com/ilf-S/FreeCAD/commit/3616611ea3c2c4f02bc9456ba50a267306b8884d","author":{"name":"Max Wilfinger","email":"6246609+maxwxyz@users.noreply.github.com","date":"2026-01-08T17:34:12+01:00","username":"maxwxyz"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-01-08T10:34:12-06:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Gui/SpinBox.cpp","src/Gui/SpinBox.h"]},{"id":"5fbd150b18d01c16f86062b6a2e26e31ed4650b3","tree_id":"d8aa5f779e1a3dc88e5cbb021d7cdc72758cd376","distinct":true,"message":"Part: Fix orientation of internal shells of a solid (#26717)\n\n* Part: Fix orientation of internal shells of a solid\n\nIf a solid consists of multiple shells then it can happen that the\ninternal shells have incorrect orientation that leads to a broken solid.\n\nThis fixes issue https://github.com/FreeCAD/FreeCAD/issues/24994\n\n* Part: Add method Feature::fixSolids\n\nThis method explicitly checks for solids with the error\n'BRepCheck_EnclosedRegion' that means that internal shells of a solid\nare wrong.\n\nUsing ShapeFix_Solid fixes the solid.\n\n---------\n\nCo-authored-by: wwmayer ","timestamp":"2026-01-08T10:35:26-06:00","url":"https://github.com/ilf-S/FreeCAD/commit/5fbd150b18d01c16f86062b6a2e26e31ed4650b3","author":{"name":"Max Wilfinger","email":"6246609+maxwxyz@users.noreply.github.com","date":"2026-01-08T17:35:26+01:00","username":"maxwxyz"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-01-08T10:35:26-06:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/Part/App/OpenCascadeAll.h","src/Mod/Part/App/modelRefine.cpp","src/Mod/Part/App/modelRefine.h","src/Mod/PartDesign/App/Feature.cpp","src/Mod/PartDesign/App/Feature.h"]},{"id":"7a006d5692b8e6726f5da8f4b7e1c5586e2084a5","tree_id":"aea4b445b72fd0bf6d1be2e5ad63fa9b182a9fcd","distinct":true,"message":"merge upstream (auto-resolve CI; keep packaging & our workflow) [skip ci]","timestamp":"2026-01-09T01:41:11Z","url":"https://github.com/ilf-S/FreeCAD/commit/7a006d5692b8e6726f5da8f4b7e1c5586e2084a5","author":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-01-09T01:41:11Z","username":"ilf-S"},"committer":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-01-09T01:41:11Z","username":"ilf-S"},"added":[".github/workflows/weekly-compare-link.yml"],"removed":[],"modified":["src/Gui/SpinBox.cpp","src/Gui/SpinBox.h","src/Mod/BIM/bimtests/fixtures/FC_site_simple-102.FCStd","src/Mod/Part/App/OpenCascadeAll.h","src/Mod/Part/App/modelRefine.cpp","src/Mod/Part/App/modelRefine.h","src/Mod/PartDesign/App/Feature.cpp","src/Mod/PartDesign/App/Feature.h","src/Mod/PartDesign/App/FeatureBoolean.cpp","src/Mod/PartDesign/App/FeaturePolarPattern.cpp","src/Mod/Sketcher/Gui/TaskSketcherConstraints.cpp","src/Mod/Sketcher/Gui/TaskSketcherElements.cpp"]},{"id":"e2e0c64ea63e8117797d57ff976cc2d416a18aaf","tree_id":"0e52f3fdfaac620280bffb7f13dab60c9d8d080c","distinct":true,"message":"sync: upstream 2026-01-09 [skip ci]","timestamp":"2026-01-09T01:41:11Z","url":"https://github.com/ilf-S/FreeCAD/commit/e2e0c64ea63e8117797d57ff976cc2d416a18aaf","author":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-01-09T01:41:11Z","username":"ilf-S"},"committer":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-01-09T01:41:11Z","username":"ilf-S"},"added":[],"removed":[".github/workflows/weekly-compare-link.yml"],"modified":[]}],"head_commit":{"id":"e2e0c64ea63e8117797d57ff976cc2d416a18aaf","tree_id":"0e52f3fdfaac620280bffb7f13dab60c9d8d080c","distinct":true,"message":"sync: upstream 2026-01-09 [skip ci]","timestamp":"2026-01-09T01:41:11Z","url":"https://github.com/ilf-S/FreeCAD/commit/e2e0c64ea63e8117797d57ff976cc2d416a18aaf","author":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-01-09T01:41:11Z","username":"ilf-S"},"committer":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-01-09T01:41:11Z","username":"ilf-S"},"added":[],"removed":[".github/workflows/weekly-compare-link.yml"],"modified":[]}}