)]}'
{".gitignore":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9f4d2d6a507a55d9c1307c9d093e4e26e6996a28","unresolved":true,"context_lines":[{"line_number":77,"context_line":".claude/"},{"line_number":78,"context_line":".vscode/"},{"line_number":79,"context_line":".codex/"},{"line_number":80,"context_line":"CLAUDE.md"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"870f9279_0d3b0324","line":80,"updated":"2026-07-09 20:34:50.000000000","message":"Do we need AGENTS.md here now too?","commit_id":"5c4316a897bd84d1f4eb55d147b1f845e5c3694a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"12e9a4f02b55b172c2ae63bca8aabde0ef51101a","unresolved":false,"context_lines":[{"line_number":77,"context_line":".claude/"},{"line_number":78,"context_line":".vscode/"},{"line_number":79,"context_line":".codex/"},{"line_number":80,"context_line":"CLAUDE.md"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"e120f0f3_5a187000","line":80,"in_reply_to":"4cdbe0c0_f087e3b1","updated":"2026-07-10 14:42:07.000000000","message":"Exactly, AGENTS.md will be part of this repository, not CLAUDE.md","commit_id":"5c4316a897bd84d1f4eb55d147b1f845e5c3694a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"52bbbed67248fe714da2a9515edca394b2d4987b","unresolved":true,"context_lines":[{"line_number":77,"context_line":".claude/"},{"line_number":78,"context_line":".vscode/"},{"line_number":79,"context_line":".codex/"},{"line_number":80,"context_line":"CLAUDE.md"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"4cdbe0c0_f087e3b1","line":80,"in_reply_to":"870f9279_0d3b0324","updated":"2026-07-10 14:30:46.000000000","message":"I think we want to keep tracking changes in AGENTS.md file so it shouldn\u0027t be added to the ignored files","commit_id":"5c4316a897bd84d1f4eb55d147b1f845e5c3694a"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"764bf9dd968496f94e4a5d25ab4ef74adbdf457b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6904cb31_ae8d5919","updated":"2026-07-06 09:28:16.000000000","message":"NOTE: on top of this patch we\u0027ll continue adding new agent definitions, knowledge files, etc. This is just the initial scaffolding for AI in Neutron","commit_id":"87d3e8799713980547be6a0b8179dcbc4bc067d8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"394f825200043877c90d19ed94d6c41cafefde9e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"af9606ba_c32cd86b","updated":"2026-07-07 14:05:13.000000000","message":"Just some nits","commit_id":"f4c542c8fe3103ea7035037cd64d5b486bc0a89e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"11de1340c7acad56087c71e553ca1d46de7f2230","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ef9e753f_6a5fcfdd","updated":"2026-07-08 12:50:52.000000000","message":"I think this is a good start, can always do follow-ons as necessary.","commit_id":"d51fd55a59a179fa5aab2029b6ba354255cc2478"}],"AGENTS.md":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"394f825200043877c90d19ed94d6c41cafefde9e","unresolved":true,"context_lines":[{"line_number":40,"context_line":"and controlled (partially) by the Neutron team:"},{"line_number":41,"context_line":"- [ovsdbapp](https://opendev.org/openstack/ovsdbapp)"},{"line_number":42,"context_line":"- [python-ovs](https://github.com/openvswitch/ovs/tree/main/python)"},{"line_number":43,"context_line":"- [python-ovs](https://github.com/openvswitch/ovs/tree/main/python)"},{"line_number":44,"context_line":"- [neutron-lib](https://opendev.org/openstack/neutron-lib)"},{"line_number":45,"context_line":"- [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy)"},{"line_number":46,"context_line":"- [os-ken](https://opendev.org/openstack/os-ken)"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"fe4a5aa6_11459728","line":43,"updated":"2026-07-07 14:05:13.000000000","message":"nit: duplicate","commit_id":"f4c542c8fe3103ea7035037cd64d5b486bc0a89e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c11026d974b468c44fd1f403efb7ac7c76147acb","unresolved":false,"context_lines":[{"line_number":40,"context_line":"and controlled (partially) by the Neutron team:"},{"line_number":41,"context_line":"- [ovsdbapp](https://opendev.org/openstack/ovsdbapp)"},{"line_number":42,"context_line":"- [python-ovs](https://github.com/openvswitch/ovs/tree/main/python)"},{"line_number":43,"context_line":"- [python-ovs](https://github.com/openvswitch/ovs/tree/main/python)"},{"line_number":44,"context_line":"- [neutron-lib](https://opendev.org/openstack/neutron-lib)"},{"line_number":45,"context_line":"- [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy)"},{"line_number":46,"context_line":"- [os-ken](https://opendev.org/openstack/os-ken)"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"45aa78d8_19d13b2d","line":43,"in_reply_to":"fe4a5aa6_11459728","updated":"2026-07-07 14:30:53.000000000","message":"Done","commit_id":"f4c542c8fe3103ea7035037cd64d5b486bc0a89e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"394f825200043877c90d19ed94d6c41cafefde9e","unresolved":true,"context_lines":[{"line_number":46,"context_line":"- [os-ken](https://opendev.org/openstack/os-ken)"},{"line_number":47,"context_line":"- [oslo.privsep](https://opendev.org/openstack/oslo.privsep)"},{"line_number":48,"context_line":"- [oslo.db](https://opendev.org/openstack/oslo.db)"},{"line_number":49,"context_line":"- [oslo.service](https://opendev.org/openstack/oslo.service)"},{"line_number":50,"context_line":"- [pyroute2](https://github.com/svinota/pyroute2)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":3,"id":"4a8a8c57_8cd8ca00","line":49,"updated":"2026-07-07 14:05:13.000000000","message":"Maybe oslo.config too?","commit_id":"f4c542c8fe3103ea7035037cd64d5b486bc0a89e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c11026d974b468c44fd1f403efb7ac7c76147acb","unresolved":false,"context_lines":[{"line_number":46,"context_line":"- [os-ken](https://opendev.org/openstack/os-ken)"},{"line_number":47,"context_line":"- [oslo.privsep](https://opendev.org/openstack/oslo.privsep)"},{"line_number":48,"context_line":"- [oslo.db](https://opendev.org/openstack/oslo.db)"},{"line_number":49,"context_line":"- [oslo.service](https://opendev.org/openstack/oslo.service)"},{"line_number":50,"context_line":"- [pyroute2](https://github.com/svinota/pyroute2)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""}],"source_content_type":"text/x-markdown","patch_set":3,"id":"cd65ecbd_5a0a286d","line":49,"in_reply_to":"4a8a8c57_8cd8ca00","updated":"2026-07-07 14:30:53.000000000","message":"Done","commit_id":"f4c542c8fe3103ea7035037cd64d5b486bc0a89e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"394f825200043877c90d19ed94d6c41cafefde9e","unresolved":true,"context_lines":[{"line_number":55,"context_line":"- **Tools:** Do not install missing tools with a package manager or `pip`"},{"line_number":56,"context_line":"- **Concurrency**: Do not introduce asyncio or new eventlet usage. Review the"},{"line_number":57,"context_line":"  threading and concurrency docs when changing concurrent code."},{"line_number":58,"context_line":"- **Review**: Nova uses Gerrit, not GitHub PRs. Series are always unsquashed;"},{"line_number":59,"context_line":"  each commit must be independently testable and correct."},{"line_number":60,"context_line":"- **Git**: Read-only operations (`git log`, `git diff`, `git status`) are fine."},{"line_number":61,"context_line":"  Do not run mutating operations (`add`, `commit`, `reset`, `checkout`, `push`,"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"be90c192_7a779e20","line":58,"range":{"start_line":58,"start_character":14,"end_line":58,"end_character":18},"updated":"2026-07-07 14:05:13.000000000","message":"s/Neutron","commit_id":"f4c542c8fe3103ea7035037cd64d5b486bc0a89e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c11026d974b468c44fd1f403efb7ac7c76147acb","unresolved":false,"context_lines":[{"line_number":55,"context_line":"- **Tools:** Do not install missing tools with a package manager or `pip`"},{"line_number":56,"context_line":"- **Concurrency**: Do not introduce asyncio or new eventlet usage. Review the"},{"line_number":57,"context_line":"  threading and concurrency docs when changing concurrent code."},{"line_number":58,"context_line":"- **Review**: Nova uses Gerrit, not GitHub PRs. Series are always unsquashed;"},{"line_number":59,"context_line":"  each commit must be independently testable and correct."},{"line_number":60,"context_line":"- **Git**: Read-only operations (`git log`, `git diff`, `git status`) are fine."},{"line_number":61,"context_line":"  Do not run mutating operations (`add`, `commit`, `reset`, `checkout`, `push`,"}],"source_content_type":"text/x-markdown","patch_set":3,"id":"9c9f29f9_1f43b3e0","line":58,"range":{"start_line":58,"start_character":14,"end_line":58,"end_character":18},"in_reply_to":"be90c192_7a779e20","updated":"2026-07-07 14:30:53.000000000","message":"I don\u0027t know where this code is coming from...","commit_id":"f4c542c8fe3103ea7035037cd64d5b486bc0a89e"}],"doc/source/contributor/repo-overview.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"94f8fb241e97563abb244ecaaaa386ca3935cdab","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"``api-ref/``"},{"line_number":96,"context_line":"    REST API reference: per-resource ``.inc`` files and index. Built and"},{"line_number":97,"context_line":"    published to docs.openstack.org."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"CI and DevStack"},{"line_number":100,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7729c3c0_929a4922","line":97,"updated":"2026-07-09 09:29:10.000000000","message":"this is actually in neutron-lib. We have README file in that folder though so I think that LLM can handle it if needed","commit_id":"ba1affc93c278b7c5c9d6922d5b0b97fcde68e1b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"eed63e6089358efaf134ace633bb0f56ac6c8a34","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"``api-ref/``"},{"line_number":96,"context_line":"    REST API reference: per-resource ``.inc`` files and index. Built and"},{"line_number":97,"context_line":"    published to docs.openstack.org."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"CI and DevStack"},{"line_number":100,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"39aada53_6cd88646","line":97,"in_reply_to":"7729c3c0_929a4922","updated":"2026-07-09 10:14:16.000000000","message":"Done","commit_id":"ba1affc93c278b7c5c9d6922d5b0b97fcde68e1b"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"94f8fb241e97563abb244ecaaaa386ca3935cdab","unresolved":true,"context_lines":[{"line_number":108,"context_line":"``roles/``"},{"line_number":109,"context_line":"    Ansible roles used by CI playbooks."},{"line_number":110,"context_line":"``rally-jobs/``"},{"line_number":111,"context_line":"    Rally benchmark job definitions."}],"source_content_type":"text/x-rst","patch_set":6,"id":"83ee234c_8b957488","line":111,"updated":"2026-07-09 09:29:10.000000000","message":"we have also https://github.com/openstack/neutron/tree/master/tools with helper scripts used mostly in CI jobs (but not only)","commit_id":"ba1affc93c278b7c5c9d6922d5b0b97fcde68e1b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"eed63e6089358efaf134ace633bb0f56ac6c8a34","unresolved":false,"context_lines":[{"line_number":108,"context_line":"``roles/``"},{"line_number":109,"context_line":"    Ansible roles used by CI playbooks."},{"line_number":110,"context_line":"``rally-jobs/``"},{"line_number":111,"context_line":"    Rally benchmark job definitions."}],"source_content_type":"text/x-rst","patch_set":6,"id":"61033a29_9d900c45","line":111,"in_reply_to":"83ee234c_8b957488","updated":"2026-07-09 10:14:16.000000000","message":"Done","commit_id":"ba1affc93c278b7c5c9d6922d5b0b97fcde68e1b"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"94f8fb241e97563abb244ecaaaa386ca3935cdab","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"87e4cf1b_a72b8dc0","line":112,"updated":"2026-07-09 09:29:10.000000000","message":"We also have https://github.com/openstack/neutron/tree/master/vagrant/ovn but I\u0027m not really sure state of it as I never used it.","commit_id":"ba1affc93c278b7c5c9d6922d5b0b97fcde68e1b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"eed63e6089358efaf134ace633bb0f56ac6c8a34","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"197341f8_0dde516e","line":112,"in_reply_to":"87e4cf1b_a72b8dc0","updated":"2026-07-09 10:14:16.000000000","message":"Done","commit_id":"ba1affc93c278b7c5c9d6922d5b0b97fcde68e1b"}]}
