)]}'
{
  "log": [
    {
      "commit": "c3ced62289cff9c0c9cd537d902f00fae894b22e",
      "tree": "62fa324a7517ef1c2fdaa2dfdb1362bac9020bdc",
      "parents": [
        "4413220324d7694f8db128cd989822ff728df030"
      ],
      "author": {
        "name": "copilot-swe-agent[bot]",
        "email": "198982749+Copilot@users.noreply.github.com",
        "time": "Tue Nov 18 18:09:06 2025 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Jan 22 01:40:07 2026 +0100"
      },
      "message": " ## cpp: add `private_optional` support (and wire up tests/CI)\n\nAdd a new `cpp:private_optional` generator option for C++ that emits optional fields as private members and provides const getters, enabling stricter encapsulation while preserving access for generated helpers.\n\nTo keep the feature stable and exercised in automation, add fixture-based compiler tests and the minimal build/CI wiring required for those tests to build and run in the workflow (including MSVC).\n\n ### Example generated code (behavior change only, from `TestStruct`)\n\n #### Default (no `cpp:private_optional`): optional fields stay public\n```cpp\npublic:\n  int32_t required_field;\n  int32_t optional_field;\n  std::string optional_string;\n```\n\nWith cpp:private_optional: optional fields become private + const getters\n\n```cpp\npublic:\n  int32_t required_field;\n\n  const int32_t\u0026 __get_optional_field() const { return optional_field; }\n  const std::string\u0026 __get_optional_string() const { return optional_string; }\n\nprivate:\n  int32_t optional_field;\n  std::string optional_string;\n\n  friend void swap(TestStruct \u0026a, TestStruct \u0026b) noexcept;\n  friend std::ostream\u0026 operator\u003c\u003c(std::ostream\u0026 out, const TestStruct\u0026 obj);\n\n```\n"
    },
    {
      "commit": "b17672ac38cbc9347e1331798f4e6bc91502fdd2",
      "tree": "e2a8c262c37f59ddb3d3c95c3db91bd0a7f0d8ac",
      "parents": [
        "d5927a96019154fa590c38f3a7ca70275af11b3c"
      ],
      "author": {
        "name": "Yawar Amin",
        "email": "yawar.amin@gmail.com",
        "time": "Sat Sep 10 11:55:02 2022 -0400"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Sep 11 22:19:29 2022 +0200"
      },
      "message": "THRIFT-5208: fix OCaml struct and exn raising/handling codegen\nClient: ocaml\nPatch: Yawar Amin\n"
    }
  ]
}
