{"ref":"refs/heads/main","before":"2902ae904d8cf16ee183d6b6719cac311323b5f1","after":"2a77fb500e579f47ff14b4b6a8c24d3dd8962da3","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-02-25T02:03:03Z","pushed_at":1772071120,"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":2398515,"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/2902ae904d8c...2a77fb500e57","commits":[{"id":"0f4ad868f703489068907963c2062ebd58910d03","tree_id":"15ed514c27ed92b627742ce705089bec804f5c67","distinct":true,"message":"Gui: Add Tuple type to StyleParameters\n\nAdd a tuple value type to the StyleParameters system, allowing related\nvalues to be grouped into a single parameter with optional named fields.\n\nTuple is stored inline in the Value variant. The circular dependency\n(Value contains Tuple, Tuple elements contain Value) is broken by\nstoring element values as shared_ptr inside Tuple::Element.\n\nGeneric holds() and get() template methods are added to Value\nfor uniform type-checked access to all variant alternatives.\n\nCo-Authored-By: Claude Opus 4.6 ","timestamp":"2026-02-09T00:29:03+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/0f4ad868f703489068907963c2062ebd58910d03","author":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-07T15:24:14+01:00","username":"kadet1090"},"committer":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-09T00:29:03+01:00","username":"kadet1090"},"added":[],"removed":[],"modified":["src/Gui/Dialogs/DlgThemeEditor.cpp","src/Gui/StyleParameters/ParameterManager.cpp","src/Gui/StyleParameters/ParameterManager.h"]},{"id":"884baf2cb827c97dd2b65b695c14d05c48eec877","tree_id":"404f948bc84dedfae68bdc3859adcd4c791b51ee","distinct":true,"message":"Gui: Add tuple parsing to StyleParameters parser\n\nAdd TupleLiteral AST node and parser support for tuple syntax using\nparentheses with comma-separated elements: (val1, val2) for unnamed\ntuples, (name: val1, val2) for named elements.\n\nDisambiguation with grouped expressions in parseFactor():\n- `(identifier:` lookahead → tuple\n- expression followed by `,` → tuple\n- expression followed by `)` → grouped expression (backward compatible)\n\nCo-Authored-By: Claude Opus 4.6 ","timestamp":"2026-02-09T00:33:00+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/884baf2cb827c97dd2b65b695c14d05c48eec877","author":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-07T15:24:22+01:00","username":"kadet1090"},"committer":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-09T00:33:00+01:00","username":"kadet1090"},"added":[],"removed":[],"modified":["src/Gui/StyleParameters/Parser.cpp","src/Gui/StyleParameters/Parser.h"]},{"id":"7c813a6f5af486f488ad9df2d48cc69e1de6d47d","tree_id":"934e3fe1704bc93e3b129eb8dc71904375f697ca","distinct":true,"message":"Gui: Add tests for StyleParameters tuple support\n\nTest cases cover unnamed, named, and mixed tuples, single named\nelements, nested tuples, expressions and mixed types in elements,\ntoString roundtrip, Value::holds/get accessors, Tuple::at/find/size,\nerror handling, and backward compatibility of grouped expressions.\n\nCo-Authored-By: Claude Opus 4.6 ","timestamp":"2026-02-09T00:33:00+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/7c813a6f5af486f488ad9df2d48cc69e1de6d47d","author":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-07T15:24:28+01:00","username":"kadet1090"},"committer":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-09T00:33:00+01:00","username":"kadet1090"},"added":[],"removed":[],"modified":["tests/src/Gui/StyleParameters/ParserTest.cpp"]},{"id":"a64a43b9caf936007c9d374758f9571d7e755b3b","tree_id":"0ea9027d3a4e99271ab45b6190f6541aab004328","distinct":true,"message":"Gui: Refactor function arguments to use TupleLiteral\n\nReplace the separate argument parsing in parseFunctionCall() with a\ncall to parseTuple(), unifying the two comma-separated-expression\nparsing paths. FunctionCall now stores a TupleLiteral instead of\na vector of expressions, and evaluates it into a Tuple value that\nfunctions access via at()/find().\n\nCo-Authored-By: Claude Opus 4.6 ","timestamp":"2026-02-09T00:33:00+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/a64a43b9caf936007c9d374758f9571d7e755b3b","author":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-07T16:18:16+01:00","username":"kadet1090"},"committer":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-09T00:33:00+01:00","username":"kadet1090"},"added":[],"removed":[],"modified":["src/Gui/StyleParameters/Parser.cpp","src/Gui/StyleParameters/Parser.h"]},{"id":"9e0538abc873c1dee3f9322af7770ca24f1e90e9","tree_id":"fa793ed7e0ee7f2e9a2979b89e999233e0a26a79","distinct":true,"message":"Gui: Add ArgumentParser for named/positional function arguments\n\nAdds ArgumentParser class that resolves mixed positional and named\narguments against a declared function signature (Python-style).\nIncludes Tuple::get(name) for type-checked access with\nuser-friendly error messages. Refactors lighten/darken/blend to use it.\n\nCo-Authored-By: Claude Opus 4.6 ","timestamp":"2026-02-09T00:33:00+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/9e0538abc873c1dee3f9322af7770ca24f1e90e9","author":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-07T17:40:37+01:00","username":"kadet1090"},"committer":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-09T00:33:00+01:00","username":"kadet1090"},"added":[],"removed":[],"modified":["src/Gui/StyleParameters/ParameterManager.cpp","src/Gui/StyleParameters/ParameterManager.h","src/Gui/StyleParameters/Parser.cpp","tests/src/Gui/StyleParameters/ParserTest.cpp"]},{"id":"b7b3187e1de338bff3ecf25737e884374baf9fa5","tree_id":"762c449ce7d80e389bc52c9df491566c51d3155b","distinct":true,"message":"Gui: Split Value types out of ParameterManager into Value.h/.cpp\n\nMove Numeric, Tuple, Value, valueTypeName, ArgumentParser, and ParamDef\ninto their own Value.h/.cpp files. ParameterManager.h now includes\nValue.h and keeps only parameter sources and the manager itself.\n\nCo-Authored-By: Claude Opus 4.6 ","timestamp":"2026-02-09T00:33:00+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/b7b3187e1de338bff3ecf25737e884374baf9fa5","author":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-07T23:14:49+01:00","username":"kadet1090"},"committer":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-09T00:33:00+01:00","username":"kadet1090"},"added":["src/Gui/StyleParameters/Value.cpp","src/Gui/StyleParameters/Value.h"],"removed":[],"modified":["src/Gui/CMakeLists.txt","src/Gui/StyleParameters/ParameterManager.cpp","src/Gui/StyleParameters/ParameterManager.h"]},{"id":"7bf20508651b430d11373c250df6d6bed610d225","tree_id":"16b3867b4c5903f08bd326461474841336600740","distinct":true,"message":"Gui: Add dot syntax for tuple member access in StyleParameters\n\nAdd MemberAccess AST node and postfix `.member` parsing to support\nextracting individual elements from tuple-valued parameters, e.g.\n`@ButtonBorderThickness.left` or `@Grays.0`.\n\nCo-Authored-By: Claude Opus 4.6 ","timestamp":"2026-02-09T00:33:00+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/7bf20508651b430d11373c250df6d6bed610d225","author":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-08T15:12:31+01:00","username":"kadet1090"},"committer":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-09T00:33:00+01:00","username":"kadet1090"},"added":[],"removed":[],"modified":["src/Gui/StyleParameters/Parser.cpp","src/Gui/StyleParameters/Parser.h","tests/src/Gui/StyleParameters/ParserTest.cpp"]},{"id":"1cc53d911ad1f7daec9865abe98330ba9ddbe921","tree_id":"6b1a638d69f75612a24d5a00edd6d3e2b96bac5f","distinct":true,"message":"Gui: Add element-wise tuple arithmetic to StyleParameters\n\nAdd arithmetic operators (+, -, *, /, unary -) to Value, enabling\nelement-wise operations on tuples and scalar broadcast with numerics.\nTuple addition/subtraction uses union semantics: named elements match\nby name, unnamed elements match positionally, and unmatched elements\npass through. BinaryOp and UnaryOp now delegate to these Value operators.\n\nCo-Authored-By: Claude Opus 4.6 ","timestamp":"2026-02-09T00:33:00+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/1cc53d911ad1f7daec9865abe98330ba9ddbe921","author":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-08T16:27:09+01:00","username":"kadet1090"},"committer":{"name":"Kacper Donat","email":"kadet1090@gmail.com","date":"2026-02-09T00:33:00+01:00","username":"kadet1090"},"added":[],"removed":[],"modified":["src/Gui/StyleParameters/Parser.cpp","src/Gui/StyleParameters/Value.cpp","src/Gui/StyleParameters/Value.h","tests/src/Gui/StyleParameters/ParserTest.cpp"]},{"id":"ad50c6eb64f3993972e0929c4b5928548a63bdc4","tree_id":"b69fe9313bfa46b8babdd59872322ed3f1c41d53","distinct":true,"message":"Merge pull request #27428 from kadet1090/add-style-parameter-tuples\n\nGui: Add Tuple type to StyleParameters","timestamp":"2026-02-25T08:28:50-06:00","url":"https://github.com/ilf-S/FreeCAD/commit/ad50c6eb64f3993972e0929c4b5928548a63bdc4","author":{"name":"Chris Hennes","email":"chennes@pioneerlibrarysystem.org","date":"2026-02-25T08:28:50-06:00","username":"chennes"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-02-25T08:28:50-06:00","username":"web-flow"},"added":["src/Gui/StyleParameters/Value.cpp","src/Gui/StyleParameters/Value.h"],"removed":[],"modified":["src/Gui/CMakeLists.txt","src/Gui/Dialogs/DlgThemeEditor.cpp","src/Gui/StyleParameters/ParameterManager.cpp","src/Gui/StyleParameters/ParameterManager.h","src/Gui/StyleParameters/Parser.cpp","src/Gui/StyleParameters/Parser.h","tests/src/Gui/StyleParameters/ParserTest.cpp"]},{"id":"f2063c055fb348ccc28d943d520bec4473665aa9","tree_id":"b60f53948fe2486514695f782a77f2a5234647f2","distinct":true,"message":"Cam constants (#27861)\n\n* CAM: Create a more accessible CONSTANTS file\n\n* Changes to make the tests less noisy\n\n* Update src/Mod/CAM/CONSTANTS.py\n\nCo-authored-by: tarman3 \n\n* missing cmake change\n\n* maintainer feedback\n\n---------\n\nCo-authored-by: tarman3 ","timestamp":"2026-02-25T19:11:33+01:00","url":"https://github.com/ilf-S/FreeCAD/commit/f2063c055fb348ccc28d943d520bec4473665aa9","author":{"name":"sliptonic","email":"shopinthewoods@gmail.com","date":"2026-02-25T12:11:33-06:00","username":"sliptonic"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-02-25T19:11:33+01:00","username":"web-flow"},"added":["src/Mod/CAM/Constants.py"],"removed":[],"modified":["src/Mod/CAM/CMakeLists.txt","src/Mod/CAM/Path/Dressup/Gui/Dogbone.py","src/Mod/CAM/Path/Geom.py","src/Mod/CAM/Path/Op/SurfaceSupport.py","src/Mod/CAM/Path/Post/UtilsExport.py","src/Mod/CAM/Path/Post/scripts/centroid_legacy_post.py","src/Mod/CAM/Path/Post/scripts/estlcam_post.py","src/Mod/CAM/Path/Post/scripts/fanuc_post.py","src/Mod/CAM/Path/Post/scripts/grbl_legacy_post.py","src/Mod/CAM/Path/Post/scripts/linuxcnc_legacy_post.py","src/Mod/CAM/Path/Post/scripts/mach3_mach4_legacy_post.py","src/Mod/CAM/Path/Post/scripts/marlin_post.py","src/Mod/CAM/Path/Post/scripts/rrf_post.py","src/Mod/CAM/Path/Post/scripts/uccnc_post.py","src/Mod/CAM/Path/Tool/Controller.py","src/Mod/CAM/Path/Tool/library/ui/editor.py","src/Mod/CAM/Path/Tool/migration/migration.py","src/Mod/CAM/Path/Tool/shape/models/base.py","src/Mod/CAM/Path/Tool/toolbit/models/base.py","src/Mod/CAM/Path/Tool/toolbit/ui/browser.py"]},{"id":"6620e149a576fe412c6f9d794fd0a4c3ebc4a363","tree_id":"4c405349466da0f14c41d2b862434335a90abb2b","distinct":true,"message":"CAM: Path.Geom.CmdMoveMill","timestamp":"2026-02-25T20:38:41+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/6620e149a576fe412c6f9d794fd0a4c3ebc4a363","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-01-18T21:47:37+02:00","username":"tarman3"},"committer":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-02-25T20:38:41+02:00","username":"tarman3"},"added":[],"removed":[],"modified":["src/Mod/CAM/Path/Geom.py"]},{"id":"97cf5697568f0fa351c6357602d95e017ec1feae","tree_id":"390abd2349f1c30f7f3f985b2a3f4c2ce60c8b54","distinct":true,"message":"CAM: PathScripts/PathUtils.py - Get CmdMove from Geom","timestamp":"2026-02-25T20:38:49+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/97cf5697568f0fa351c6357602d95e017ec1feae","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-01-19T07:47:55+02:00","username":"tarman3"},"committer":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-02-25T20:38:49+02:00","username":"tarman3"},"added":[],"removed":[],"modified":["src/Mod/CAM/PathScripts/PathUtils.py"]},{"id":"4a773d2f6a9bb6916d61f97ca32129c70348a4ce","tree_id":"1ab40d15bc389f5e7d091f2b7e19a10bf4c6f3b3","distinct":true,"message":"CAM: Refactor CmdMoveMill","timestamp":"2026-02-25T20:49:22+02:00","url":"https://github.com/ilf-S/FreeCAD/commit/4a773d2f6a9bb6916d61f97ca32129c70348a4ce","author":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-01-19T08:03:14+02:00","username":"tarman3"},"committer":{"name":"tarman3","email":"joice501790018@tutamail.com","date":"2026-02-25T20:49:22+02:00","username":"tarman3"},"added":[],"removed":[],"modified":["src/Mod/CAM/Constants.py","src/Mod/CAM/Path/Dressup/Gui/RampEntry.py","src/Mod/CAM/Path/Dressup/Gui/ZCorrect.py"]},{"id":"a17bb6bf101f057e11e4bf7da9fe5ce6c78f7375","tree_id":"1ab40d15bc389f5e7d091f2b7e19a10bf4c6f3b3","distinct":true,"message":"Merge pull request #27013 from tarman3/CmdMoveMill\n\nCAM: Path.Geom.CmdMoveMill","timestamp":"2026-02-25T18:31:26-06:00","url":"https://github.com/ilf-S/FreeCAD/commit/a17bb6bf101f057e11e4bf7da9fe5ce6c78f7375","author":{"name":"sliptonic","email":"shopinthewoods@gmail.com","date":"2026-02-25T18:31:26-06:00","username":"sliptonic"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-02-25T18:31:26-06:00","username":"web-flow"},"added":[],"removed":[],"modified":["src/Mod/CAM/Constants.py","src/Mod/CAM/Path/Dressup/Gui/RampEntry.py","src/Mod/CAM/Path/Dressup/Gui/ZCorrect.py","src/Mod/CAM/Path/Geom.py","src/Mod/CAM/PathScripts/PathUtils.py"]},{"id":"2a77fb500e579f47ff14b4b6a8c24d3dd8962da3","tree_id":"fedabac5111e5392f3d68ad52e96f26b95d5947b","distinct":true,"message":"merge upstream (auto-resolve CI; keep packaging & our workflow) [skip ci]","timestamp":"2026-02-26T01:58:39Z","url":"https://github.com/ilf-S/FreeCAD/commit/2a77fb500e579f47ff14b4b6a8c24d3dd8962da3","author":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-02-26T01:58:39Z","username":"ilf-S"},"committer":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-02-26T01:58:39Z","username":"ilf-S"},"added":["src/Gui/StyleParameters/Value.cpp","src/Gui/StyleParameters/Value.h","src/Mod/CAM/Constants.py"],"removed":[],"modified":["src/Gui/CMakeLists.txt","src/Gui/Dialogs/DlgThemeEditor.cpp","src/Gui/StyleParameters/ParameterManager.cpp","src/Gui/StyleParameters/ParameterManager.h","src/Gui/StyleParameters/Parser.cpp","src/Gui/StyleParameters/Parser.h","src/Mod/CAM/CMakeLists.txt","src/Mod/CAM/Path/Dressup/Gui/Dogbone.py","src/Mod/CAM/Path/Dressup/Gui/RampEntry.py","src/Mod/CAM/Path/Dressup/Gui/ZCorrect.py","src/Mod/CAM/Path/Geom.py","src/Mod/CAM/Path/Op/SurfaceSupport.py","src/Mod/CAM/Path/Post/UtilsExport.py","src/Mod/CAM/Path/Post/scripts/centroid_legacy_post.py","src/Mod/CAM/Path/Post/scripts/estlcam_post.py","src/Mod/CAM/Path/Post/scripts/fanuc_post.py","src/Mod/CAM/Path/Post/scripts/grbl_legacy_post.py","src/Mod/CAM/Path/Post/scripts/linuxcnc_legacy_post.py","src/Mod/CAM/Path/Post/scripts/mach3_mach4_legacy_post.py","src/Mod/CAM/Path/Post/scripts/marlin_post.py","src/Mod/CAM/Path/Post/scripts/rrf_post.py","src/Mod/CAM/Path/Post/scripts/uccnc_post.py","src/Mod/CAM/Path/Tool/Controller.py","src/Mod/CAM/Path/Tool/library/ui/editor.py","src/Mod/CAM/Path/Tool/migration/migration.py","src/Mod/CAM/Path/Tool/shape/models/base.py","src/Mod/CAM/Path/Tool/toolbit/models/base.py","src/Mod/CAM/Path/Tool/toolbit/ui/browser.py","src/Mod/CAM/PathScripts/PathUtils.py","tests/src/Gui/StyleParameters/ParserTest.cpp"]}],"head_commit":{"id":"2a77fb500e579f47ff14b4b6a8c24d3dd8962da3","tree_id":"fedabac5111e5392f3d68ad52e96f26b95d5947b","distinct":true,"message":"merge upstream (auto-resolve CI; keep packaging & our workflow) [skip ci]","timestamp":"2026-02-26T01:58:39Z","url":"https://github.com/ilf-S/FreeCAD/commit/2a77fb500e579f47ff14b4b6a8c24d3dd8962da3","author":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-02-26T01:58:39Z","username":"ilf-S"},"committer":{"name":"ilf-S","email":"ilf-S@users.noreply.github.com","date":"2026-02-26T01:58:39Z","username":"ilf-S"},"added":["src/Gui/StyleParameters/Value.cpp","src/Gui/StyleParameters/Value.h","src/Mod/CAM/Constants.py"],"removed":[],"modified":["src/Gui/CMakeLists.txt","src/Gui/Dialogs/DlgThemeEditor.cpp","src/Gui/StyleParameters/ParameterManager.cpp","src/Gui/StyleParameters/ParameterManager.h","src/Gui/StyleParameters/Parser.cpp","src/Gui/StyleParameters/Parser.h","src/Mod/CAM/CMakeLists.txt","src/Mod/CAM/Path/Dressup/Gui/Dogbone.py","src/Mod/CAM/Path/Dressup/Gui/RampEntry.py","src/Mod/CAM/Path/Dressup/Gui/ZCorrect.py","src/Mod/CAM/Path/Geom.py","src/Mod/CAM/Path/Op/SurfaceSupport.py","src/Mod/CAM/Path/Post/UtilsExport.py","src/Mod/CAM/Path/Post/scripts/centroid_legacy_post.py","src/Mod/CAM/Path/Post/scripts/estlcam_post.py","src/Mod/CAM/Path/Post/scripts/fanuc_post.py","src/Mod/CAM/Path/Post/scripts/grbl_legacy_post.py","src/Mod/CAM/Path/Post/scripts/linuxcnc_legacy_post.py","src/Mod/CAM/Path/Post/scripts/mach3_mach4_legacy_post.py","src/Mod/CAM/Path/Post/scripts/marlin_post.py","src/Mod/CAM/Path/Post/scripts/rrf_post.py","src/Mod/CAM/Path/Post/scripts/uccnc_post.py","src/Mod/CAM/Path/Tool/Controller.py","src/Mod/CAM/Path/Tool/library/ui/editor.py","src/Mod/CAM/Path/Tool/migration/migration.py","src/Mod/CAM/Path/Tool/shape/models/base.py","src/Mod/CAM/Path/Tool/toolbit/models/base.py","src/Mod/CAM/Path/Tool/toolbit/ui/browser.py","src/Mod/CAM/PathScripts/PathUtils.py","tests/src/Gui/StyleParameters/ParserTest.cpp"]}}