{"ref":"refs/heads/main","before":"b00d542bd0e325c0158dfb13f63ffe983c3a3ef2","after":"7d09cba7b936cc6f09e7d22c24c49b9bdb6f203b","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-04-10T02:27:40Z","pushed_at":1775873216,"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":2436100,"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/b00d542bd0e3...7d09cba7b936","commits":[{"id":"91aa3c9cd9fb953d111b91d50c9dc0c688a6491a","tree_id":"1d64d8722d551520b9f1c0defd59b832e9b71a76","distinct":true,"message":"CAM: fix findParentJob returning the wrong job in some cases","timestamp":"2026-03-05T02:02:16+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/91aa3c9cd9fb953d111b91d50c9dc0c688a6491a","author":{"name":"jffmichi","email":"","date":"2026-03-05T02:02:16+01:00"},"committer":{"name":"jffmichi","email":"","date":"2026-03-05T02:02:16+01:00"},"added":[],"removed":[],"modified":["src/Mod/CAM/PathScripts/PathUtils.py"]},{"id":"d468abf887fdd3ebd5f8e758e55fe0357b39f120","tree_id":"7134200a7a6e18a35185c8667e9275d2552e025c","distinct":true,"message":"CAM: Profile - Fix for open wire","timestamp":"2026-03-31T12:11:56+03:00","url":"https://github.com/ilf-S/FreeCAD/commit/d468abf887fdd3ebd5f8e758e55fe0357b39f120","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-01-28T09:08:32+02:00","username":"tarman3"},"committer":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-03-31T12:11:56+03:00","username":"tarman3"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Op/Profile.py"]},{"id":"ab1739dfb464a993ef5c7e2417faf8fb83b1ce42","tree_id":"ce9cd30bf999a57a4c39d41949d1d4d466387924","distinct":true,"message":"CAM: Profile - Fix for open wire 2","timestamp":"2026-03-31T12:13:35+03:00","url":"https://github.com/ilf-S/FreeCAD/commit/ab1739dfb464a993ef5c7e2417faf8fb83b1ce42","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-03-21T11:17:57+02:00","username":"tarman3"},"committer":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-03-31T12:13:35+03:00","username":"tarman3"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Op/Profile.py"]},{"id":"cf885cb4bdb8ee0226714dd3d2d614f98d56b9fb","tree_id":"8ae289baf9f1429da5a107e4abd895d5d0b3a363","distinct":true,"message":"Extending CircularHoleBase.py holePosition() to use shape.CenterOfMass instead failing hard with error","timestamp":"2026-04-04T09:58:16+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/cf885cb4bdb8ee0226714dd3d2d614f98d56b9fb","author":{"name":"glsys","email":"kr@glsys.de","date":"2026-04-04T09:58:16+02:00","username":"glsys"},"committer":{"name":"glsys","email":"kr@glsys.de","date":"2026-04-04T09:58:16+02:00","username":"glsys"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Op/CircularHoleBase.py"]},{"id":"b34ad4cf6c5c201095d1038fff6f9621eb3a6845","tree_id":"66b6686a4476614b05f7de4567ee30b162332136","distinct":true,"message":"CAM: LeadInOut - Extend","timestamp":"2026-04-06T20:58:03+03:00","url":"https://github.com/ilf-S/FreeCAD/commit/b34ad4cf6c5c201095d1038fff6f9621eb3a6845","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-04-04T20:10:16+03:00","username":"tarman3"},"committer":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-04-06T20:58:03+03:00","username":"tarman3"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py"]},{"id":"6b3d83f537d1e497093172689e3e660b41be0941","tree_id":"78f01468b8665a9a6eea3289372d006e548de2cb","distinct":true,"message":"CAM: Spiral generator - Test deviation","timestamp":"2026-04-08T22:25:11+03:00","url":"https://github.com/ilf-S/FreeCAD/commit/6b3d83f537d1e497093172689e3e660b41be0941","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-03-24T08:49:53+02:00","username":"tarman3"},"committer":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-04-08T22:25:11+03:00","username":"tarman3"},"added":[],"removed":[],"modified":["src/Mod/CAM/CAMTests/TestPathSpiralGenerator.py","src/Mod/CAM/Path/Base/Generator/spiral.py","src/Mod/CAM/TestCAMApp.py"]},{"id":"af3e0e976b271d98bcbd44754b45420cff48ca94","tree_id":"67267e1678b24af6ca16d8af4160751a606e5fa0","distinct":true,"message":"Fem: Use material and elements without references as default values for Z88","timestamp":"2026-04-09T21:31:17-05:00","url":"https://github.com/ilf-S/FreeCAD/commit/af3e0e976b271d98bcbd44754b45420cff48ca94","author":{"name":"marioalexis","email":"mario.passaglia@gmail.com","date":"2026-04-08T15:13:41-03:00","username":"marioalexis84"},"committer":{"name":"Chris Hennes","email":"chennes@pioneerlibrarysystem.org","date":"2026-04-09T21:31:17-05:00","username":"chennes"},"added":[],"removed":[],"modified":["src/Mod/Fem/femsolver/z88/write_element1D.py","src/Mod/Fem/femsolver/z88/write_element2D.py","src/Mod/Fem/femsolver/z88/write_material.py","src/Mod/Fem/femsolver/z88/writer.py","src/Mod/Fem/femsolver/z88/writer_list.py"]},{"id":"9832cdf3b8e418d033f18c14d40884e062f66046","tree_id":"95509fb1055be371875dfe2b5d1727ec7b4985f1","distinct":true,"message":"Fem: Z88 section print","timestamp":"2026-04-09T21:31:58-05:00","url":"https://github.com/ilf-S/FreeCAD/commit/9832cdf3b8e418d033f18c14d40884e062f66046","author":{"name":"marioalexis","email":"mario.passaglia@gmail.com","date":"2026-04-07T00:46:36-03:00","username":"marioalexis84"},"committer":{"name":"Chris Hennes","email":"chennes@pioneerlibrarysystem.org","date":"2026-04-09T21:31:58-05:00","username":"chennes"},"added":["src/Mod/Fem/femsolver/z88/write_sectionprint.py"],"removed":[],"modified":["src/Mod/Fem/CMakeLists.txt","src/Mod/Fem/femsolver/z88/writer.py","src/Mod/Fem/femsolver/z88/z88tools.py"]},{"id":"cb2926c571aa155870af4fe5d6d95741a0033bd7","tree_id":"0faa384222fc9ed4bd97436481443fd612249366","distinct":true,"message":"Gui: print Python callback exceptions directly","timestamp":"2026-04-09T23:15:57-05:00","url":"https://github.com/ilf-S/FreeCAD/commit/cb2926c571aa155870af4fe5d6d95741a0033bd7","author":{"name":"Joao Matos","email":"joao@tritao.eu","date":"2026-04-05T02:19:15+01:00","username":"tritao"},"committer":{"name":"Chris Hennes","email":"chennes@pioneerlibrarysystem.org","date":"2026-04-09T23:15:57-05:00","username":"chennes"},"added":[],"removed":[],"modified":["src/Gui/Application.cpp","src/Gui/View3DInventorViewer.cpp","src/Gui/View3DPy.cpp"]},{"id":"e523bdbdfc9cc0d2df9326b4fefeeffd93de5ca1","tree_id":"c8789d9049a47d890a5d3c41d393bbe88e24ecdc","distinct":true,"message":"Fix a crash on early error (#29071)\n\nErrors that happen before the Python interpreter was created triggered a\nsegfault instead of showing an error dialog, as said dialog tries to\ndisplay the Python search path without checking for its initialization\nfirst, leading to a null deref.\n\nFC not having write permission to the app home directory triggers one\nsuch early error; see #29071.","timestamp":"2026-04-09T23:33:36-05:00","url":"https://github.com/ilf-S/FreeCAD/commit/e523bdbdfc9cc0d2df9326b4fefeeffd93de5ca1","author":{"name":"Céleste Wouters","email":"foss@elementw.net","date":"2026-04-06T18:29:54+02:00","username":"ElementW"},"committer":{"name":"Chris Hennes","email":"chennes@pioneerlibrarysystem.org","date":"2026-04-09T23:33:36-05:00","username":"chennes"},"added":[],"removed":[],"modified":["src/App/ApplicationDirectories.cpp","src/Main/MainGui.cpp"]},{"id":"1718feb46c30e077954579f6b05a2e5ebdceb1dd","tree_id":"7266814be1ab284eec177539d638047c1602d58a","distinct":true,"message":"App: improve DocumentMetadata read performance\n\nThis class is used by ProjectFile::getMetadata() when loading FCStd\ninformation displayed on startup.\n\nreadProgramVersion() and readXML() use Xerces in a way that causes the\nconstruction and caching of node lists that never get reused later,\nslowing down extraction of the metadata by 8+ ms for large FCStd files.\n\nRefactors those functions to avoid that.\n\nTimings for `ProjectFile::getMetadata()` (average of 3 samples):\n\n| Example file | Before (µs) | After (µs) |\n| ------------------------ | ----------: | ---------: |\n| ArchDetail.FCStd | 12636 | 149 |\n| AssemblyExample.FCStd | 669 | 60 |\n| BIMExample.FCStd | 11425 | 81 |\n| EngineBlock.FCStd | 436 | 60 |\n| FEMExample.FCStd | 486 | 46 |\n| PartDesignExample.FCStd | 205 | 43 |\n| draft_test_objects.FCStd | 869 | 43 |","timestamp":"2026-04-09T23:34:51-05:00","url":"https://github.com/ilf-S/FreeCAD/commit/1718feb46c30e077954579f6b05a2e5ebdceb1dd","author":{"name":"Céleste Wouters","email":"foss@elementw.net","date":"2026-04-08T14:31:14+02:00","username":"ElementW"},"committer":{"name":"Chris Hennes","email":"chennes@pioneerlibrarysystem.org","date":"2026-04-09T23:34:51-05:00","username":"chennes"},"added":[],"removed":[],"modified":["src/App/ProjectFile.cpp"]},{"id":"c23c9da2f9904d27521bac1633749d4f0a6f6f18","tree_id":"637c6f1c3a11b5c28efdf65593793d1e69d5fa0d","distinct":true,"message":"Draft: fix crash when deleting object while in edit mode (#29040)","timestamp":"2026-04-10T10:09:04Z","url":"https://github.com/ilf-S/FreeCAD/commit/c23c9da2f9904d27521bac1633749d4f0a6f6f18","author":{"name":"Bojan Pejic","email":"122912008+Bojan9597@users.noreply.github.com","date":"2026-04-10T12:09:04+02:00","username":"Bojan9597"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-04-10T10:09:04Z","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/Draft/draftguitools/gui_edit.py"]},{"id":"17111cb13c8635436b6e9e6ea70d3b0fbeec441e","tree_id":"96c4dbe648bcb3c1491b69fddcaeb2aa8110689b","distinct":true,"message":"fix: TechDraw - remove duplicate moveViews.py from Mod/TechDrawDuplicate of ConversionUtilities/moveViews.py. Suggested by WandererFan in #28457.","timestamp":"2026-04-10T13:27:36+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/17111cb13c8635436b6e9e6ea70d3b0fbeec441e","author":{"name":"ayushishuklaME","email":"ayushishukla775@gmail.com","date":"2026-04-06T20:12:49+05:30","username":"ayushishuklaME"},"committer":{"name":"Max Wilfinger","email":"6246609+maxwxyz@users.noreply.github.com","date":"2026-04-10T13:27:36+02:00","username":"maxwxyz"},"added":[],"removed":["src/Mod/TechDraw/moveViews.py"],"modified":[]},{"id":"a3b1a001af75b737aecaa66a6a5f11ff42d00c4c","tree_id":"1c723fdb38d99bf0353c84bd50630fa6bc0e32e6","distinct":true,"message":"Gui: speed up Translator supported locale probing\n\nsupportedLanguages() runs a directory scan looking for .qm files for\n*each* registered language.\n\nNeither filesystem nor Qt Resource enumeration is particularly fast and\nthe listed contents are going to be the same with each iteration; this\ncommit flips the loop around. Also replaces usage of std::list with\nstd::vector as none of the lists required random insertion/deletion.\n\nPerf stats for supportedLanguages:\nBefore: 20378 µs (5 sample average)\nAfter: 1443 µs (5 sample average)","timestamp":"2026-04-10T13:28:08+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/a3b1a001af75b737aecaa66a6a5f11ff42d00c4c","author":{"name":"Céleste Wouters","email":"foss@elementw.net","date":"2026-04-08T16:01:59+02:00","username":"ElementW"},"committer":{"name":"Max Wilfinger","email":"6246609+maxwxyz@users.noreply.github.com","date":"2026-04-10T13:28:08+02:00","username":"maxwxyz"},"added":[],"removed":[],"modified":["src/Gui/Language/Translator.cpp","src/Gui/Language/Translator.h"]},{"id":"20bf91c2ab011227796ef149746719b03f3f3ad8","tree_id":"42353cd982620a5c99e5eaa316c09c22d42b153f","distinct":true,"message":"Assembly: Fix dragging wrong when assembly transformed (#28093)\n\n* Assembly: Fix dragging wrong when assembly transformed\n\n* Update ViewProviderAssembly.cpp","timestamp":"2026-04-10T12:07:38Z","url":"https://github.com/ilf-S/FreeCAD/commit/20bf91c2ab011227796ef149746719b03f3f3ad8","author":{"name":"PaddleStroke","email":"pierrelouis.boyer@gmail.com","date":"2026-04-10T14:07:38+02:00","username":"PaddleStroke"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-04-10T12:07:38Z","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/Assembly/Gui/ViewProviderAssembly.cpp"]},{"id":"541cb786e8c6aeab623b96b64756b2484f451d24","tree_id":"c5b904c7cc19b25b0f631cb9002010feb46f04e3","distinct":true,"message":"Merge pull request #29051 from glsys/circular-hole-fallback\n\nExtending CircularHoleBase.py holePosition() to use shape.CenterOfMass","timestamp":"2026-04-10T11:38:55-04:00","url":"https://github.com/ilf-S/FreeCAD/commit/541cb786e8c6aeab623b96b64756b2484f451d24","author":{"name":"Connor9220","email":"billy@ivdc.com","date":"2026-04-10T11:38:55-04:00","username":"Connor9220"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-04-10T11:38:55-04:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Op/CircularHoleBase.py"]},{"id":"3da04be933a6019daf6cb9d2bc367b77db067d24","tree_id":"f5af456081f86bb8af0c4def8994ae290f43f138","distinct":true,"message":"Merge pull request #28596 from tarman3/spiral_generator_deviation_test\n\nCAM: Spiral generator - Test deviation","timestamp":"2026-04-10T12:33:11-04:00","url":"https://github.com/ilf-S/FreeCAD/commit/3da04be933a6019daf6cb9d2bc367b77db067d24","author":{"name":"Connor9220","email":"billy@ivdc.com","date":"2026-04-10T12:33:11-04:00","username":"Connor9220"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-04-10T12:33:11-04:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/CAMTests/TestPathSpiralGenerator.py","src/Mod/CAM/Path/Base/Generator/spiral.py","src/Mod/CAM/TestCAMApp.py"]},{"id":"23d37e935c98c173dc7baf84b7814ef5fde7156f","tree_id":"e4df8de89e8ecebcaaf2d32cbb4313762e99a8e3","distinct":true,"message":"Merge pull request #28100 from jffmichi/fix_find_parent\n\nCAM: fix findParentJob returning the wrong job in some cases","timestamp":"2026-04-10T12:36:10-04:00","url":"https://github.com/ilf-S/FreeCAD/commit/23d37e935c98c173dc7baf84b7814ef5fde7156f","author":{"name":"Connor9220","email":"billy@ivdc.com","date":"2026-04-10T12:36:10-04:00","username":"Connor9220"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-04-10T12:36:10-04:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/PathScripts/PathUtils.py"]},{"id":"cf04fcd88d20b9c2078d7e2f02e8b64c89a17347","tree_id":"05789b07109c2e6248c7056c8ace76960f5ff4bc","distinct":true,"message":"CAM Tests: fix job.addObject() misuse exposed by stricter findParentJob\n\nCommit 91aa3c9 tightened findParentJob() to require operations and\ntool controllers to be in their proper sub-groups (job.Operations.Group\nand job.Tools.Group) rather than accepting any direct child of the Job.\n\nSeveral tests were using job.addObject() which adds objects to the\nJob's flat Group via App::GroupExtension, bypassing the structured\nhierarchy. This was silently tolerated by the old loose lookup but\nbroke with the stricter traversal.\n\n- TestPathPocket: remove redundant job.addObject(pocket) since\n PathPocket.Create(parentJob=job) already calls\n job.Proxy.addOperation() via PathUtils.addToJob()\n- TestPostToolProcessing, TestPostOutput, TestPostCore: replace\n job.addObject(tc) with job.Proxy.addToolController(tc) to\n properly add TCs to job.Tools.Group","timestamp":"2026-04-10T14:21:45-05:00","url":"https://github.com/ilf-S/FreeCAD/commit/cf04fcd88d20b9c2078d7e2f02e8b64c89a17347","author":{"name":"sliptonic","email":"shopinthewoods@gmail.com","date":"2026-04-10T14:21:45-05:00","username":"sliptonic"},"committer":{"name":"sliptonic","email":"shopinthewoods@gmail.com","date":"2026-04-10T14:21:45-05:00","username":"sliptonic"},"added":[],"removed":[],"modified":["src/Mod/CAM/CAMTests/TestPathPocket.py","src/Mod/CAM/CAMTests/TestPostCore.py","src/Mod/CAM/CAMTests/TestPostOutput.py","src/Mod/CAM/CAMTests/TestPostToolProcessing.py"]},{"id":"4d40d5dc27e5df2816054280429dbb46ca7e602d","tree_id":"f537378a46797d7ac7b2e59da7e3c2442ff255d9","distinct":true,"message":"Merge pull request #27203 from tarman3/open_profile\n\nCAM: Profile - Fix for open wire","timestamp":"2026-04-10T17:03:56-04:00","url":"https://github.com/ilf-S/FreeCAD/commit/4d40d5dc27e5df2816054280429dbb46ca7e602d","author":{"name":"Connor9220","email":"billy@ivdc.com","date":"2026-04-10T17:03:56-04:00","username":"Connor9220"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-04-10T17:03:56-04:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Op/Profile.py"]},{"id":"01d57210db73650290fc200dd3505f5dcb4f9385","tree_id":"20f78d33bc319573df575db6a255a662778235fc","distinct":true,"message":"Merge pull request #29061 from tarman3/leadinout_extend\n\nCAM: LeadInOut - Extend","timestamp":"2026-04-10T18:51:43-04:00","url":"https://github.com/ilf-S/FreeCAD/commit/01d57210db73650290fc200dd3505f5dcb4f9385","author":{"name":"Connor9220","email":"billy@ivdc.com","date":"2026-04-10T18:51:43-04:00","username":"Connor9220"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-04-10T18:51:43-04:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py"]},{"id":"49ce9db19c8b3ccd3274d9c59a53bd96fc2c6ace","tree_id":"e0900c8793fed726f1cd4a888a8460e4f4524249","distinct":true,"message":"Merge pull request #29261 from sliptonic/fixFindParentBug\n\nCAM Tests: fix job.addObject() misuse exposed by stricter findParentJob","timestamp":"2026-04-10T21:17:28-04:00","url":"https://github.com/ilf-S/FreeCAD/commit/49ce9db19c8b3ccd3274d9c59a53bd96fc2c6ace","author":{"name":"Connor9220","email":"billy@ivdc.com","date":"2026-04-10T21:17:28-04:00","username":"Connor9220"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-04-10T21:17:28-04:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/CAMTests/TestPathPocket.py","src/Mod/CAM/CAMTests/TestPostCore.py","src/Mod/CAM/CAMTests/TestPostOutput.py","src/Mod/CAM/CAMTests/TestPostToolProcessing.py"]},{"id":"7d09cba7b936cc6f09e7d22c24c49b9bdb6f203b","tree_id":"fac9e021e97908aeb78eb85eb755c571f643fdb9","distinct":true,"message":"merge upstream (auto-resolve CI; keep packaging & our workflow) [skip ci]","timestamp":"2026-04-11T02:06:56Z","url":"https://github.com/ilf-S/FreeCAD/commit/7d09cba7b936cc6f09e7d22c24c49b9bdb6f203b","author":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-04-11T02:06:56Z","username":"ilf-S"},"committer":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-04-11T02:06:56Z","username":"ilf-S"},"added":["src/Mod/Fem/femsolver/z88/write_sectionprint.py"],"removed":["src/Mod/TechDraw/moveViews.py"],"modified":["src/App/ApplicationDirectories.cpp","src/App/ProjectFile.cpp","src/Gui/Application.cpp","src/Gui/Language/Translator.cpp","src/Gui/Language/Translator.h","src/Gui/View3DInventorViewer.cpp","src/Gui/View3DPy.cpp","src/Main/MainGui.cpp","src/Mod/Assembly/Gui/ViewProviderAssembly.cpp","src/Mod/CAM/CAMTests/TestPathPocket.py","src/Mod/CAM/CAMTests/TestPathSpiralGenerator.py","src/Mod/CAM/CAMTests/TestPostCore.py","src/Mod/CAM/CAMTests/TestPostOutput.py","src/Mod/CAM/CAMTests/TestPostToolProcessing.py","src/Mod/CAM/Path/Base/Generator/spiral.py","src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py","src/Mod/CAM/Path/Op/CircularHoleBase.py","src/Mod/CAM/Path/Op/Profile.py","src/Mod/CAM/PathScripts/PathUtils.py","src/Mod/CAM/TestCAMApp.py","src/Mod/Draft/draftguitools/gui_edit.py","src/Mod/Fem/CMakeLists.txt","src/Mod/Fem/femsolver/z88/write_element1D.py","src/Mod/Fem/femsolver/z88/write_element2D.py","src/Mod/Fem/femsolver/z88/write_material.py","src/Mod/Fem/femsolver/z88/writer.py","src/Mod/Fem/femsolver/z88/writer_list.py","src/Mod/Fem/femsolver/z88/z88tools.py"]}],"head_commit":{"id":"7d09cba7b936cc6f09e7d22c24c49b9bdb6f203b","tree_id":"fac9e021e97908aeb78eb85eb755c571f643fdb9","distinct":true,"message":"merge upstream (auto-resolve CI; keep packaging & our workflow) [skip ci]","timestamp":"2026-04-11T02:06:56Z","url":"https://github.com/ilf-S/FreeCAD/commit/7d09cba7b936cc6f09e7d22c24c49b9bdb6f203b","author":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-04-11T02:06:56Z","username":"ilf-S"},"committer":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-04-11T02:06:56Z","username":"ilf-S"},"added":["src/Mod/Fem/femsolver/z88/write_sectionprint.py"],"removed":["src/Mod/TechDraw/moveViews.py"],"modified":["src/App/ApplicationDirectories.cpp","src/App/ProjectFile.cpp","src/Gui/Application.cpp","src/Gui/Language/Translator.cpp","src/Gui/Language/Translator.h","src/Gui/View3DInventorViewer.cpp","src/Gui/View3DPy.cpp","src/Main/MainGui.cpp","src/Mod/Assembly/Gui/ViewProviderAssembly.cpp","src/Mod/CAM/CAMTests/TestPathPocket.py","src/Mod/CAM/CAMTests/TestPathSpiralGenerator.py","src/Mod/CAM/CAMTests/TestPostCore.py","src/Mod/CAM/CAMTests/TestPostOutput.py","src/Mod/CAM/CAMTests/TestPostToolProcessing.py","src/Mod/CAM/Path/Base/Generator/spiral.py","src/Mod/CAM/Path/Dressup/Gui/LeadInOut.py","src/Mod/CAM/Path/Op/CircularHoleBase.py","src/Mod/CAM/Path/Op/Profile.py","src/Mod/CAM/PathScripts/PathUtils.py","src/Mod/CAM/TestCAMApp.py","src/Mod/Draft/draftguitools/gui_edit.py","src/Mod/Fem/CMakeLists.txt","src/Mod/Fem/femsolver/z88/write_element1D.py","src/Mod/Fem/femsolver/z88/write_element2D.py","src/Mod/Fem/femsolver/z88/write_material.py","src/Mod/Fem/femsolver/z88/writer.py","src/Mod/Fem/femsolver/z88/writer_list.py","src/Mod/Fem/femsolver/z88/z88tools.py"]}}