)]}'
{
  "commit": "835ed0da4a098388328f514fc2748352bb3a736c",
  "tree": "9b4ed4cf3480f37a003da16d3f9dfb7e519dd7d1",
  "parents": [
    "0be13090fdb0cbae0d71641bb676d924bc1c94de"
  ],
  "author": {
    "name": "Hongxiang Jiang",
    "email": "hxjiang@golang.org",
    "time": "Fri Oct 02 18:19:13 2026 -0400"
  },
  "committer": {
    "name": "Alan Donovan",
    "email": "adonovan@google.com",
    "time": "Thu Oct 15 09:27:20 2026 -0700"
  },
  "message": "design/76331: require null answers for skipped form fields\n\nThis is an incompatible change but this will eliminate an ambigious\ncase where the server do not know whether an optional question has\nbeen seen by the user.\n\nBefore the change, the languge client may omit the answer if the\nquestion is optional and user did not answer it.\n\nQ: question, A: answer, R: required, O: optional\n\nServer -\u003e Client\nQ-R, Q-R\nClient -\u003e Server\nA-R, A-R\n\nServer -\u003e Client (a follow up Q-O)\nQ-R, Q-R, Q-O\nA-R, A-R\nClient -\u003e Server (user did not answer the Q-O)\nA-R, A-R\n\nThe language server may confused based on the client return:\n- User choose not to answer the optional question. (the server should\ngo ahead and execute the command.)\n- User did not see the optional question. (the server should ask the\nfollow up question.)\n\nFortunately, the vscode client (go \u0026 dart) will report null for optional\nquestions without an answer and gopls does not ask optional question\nyet. So the impact to Go and Dart features are none.\n\nFor golang/go#76331\n\nChange-Id: I94a717aecbeb880f401a80da488e4c2452bcff90\nReviewed-on: https://go-review.googlesource.com/c/proposal/+/844125\nReviewed-by: Danny Tuppeny \u003cdanny@tuppeny.com\u003e\nReviewed-by: Madeline Kalil \u003cmkalil@google.com\u003e\nReviewed-by: Alex Putman \u003caputman@golang.org\u003e\nReviewed-by: Alan Donovan \u003cadonovan@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b65d2209166a724da22aeb76a7404402f2c9bc06",
      "old_mode": 33188,
      "old_path": "design/76331-lsp-interactive-refactoring.md",
      "new_id": "ae70bb82d4689199cd20e9e0c8c0ff6437bbea84",
      "new_mode": 33188,
      "new_path": "design/76331-lsp-interactive-refactoring.md"
    }
  ]
}
