What the AI readsΒΆ
Each task reads what it needs and no more, from the files that the context step writes into .issue-assistant/.
- Every task reads the issue with all its comments, in
issue.md; the first answer to a discussion readsdiscussion.mdinstead, the discussion with its first 50 comments and their first 20 replies each, and the issues and discussions as a first analysis does. - A first analysis and a follow-up read a window of the repository: every open issue, but for the issue of the digest, and the 1,000 closed ones that changed last, each with an excerpt of 400 characters in
issues.jsonland its whole text inissues/<number>.md, the 1,000 discussions that changed last and the labels. GitHub's GraphQL API lists a hundred issues a page and no pull request, so a repository with 50,000 issues and pull requests costs a few calls instead of five hundred, and the context keeps its size.[context]inconfig.tomlsets both numbers. - A first analysis also searches. Up to 30 older issues that GitHub's search finds for the names of errors in the new issue, such as
TypeErrororECONNREFUSED, and the words of its title join the window, so that an old duplicate is found beyond it. A search that fails leaves the window, with a warning. With related repositories, the same search in each of them fillsrelated-issues.jsonlandrelated/. - A first analysis learns from the maintainers' corrections.
corrections.mdlists what the maintainers corrected of the analyses of the 30 issues analyzed last: a label of the AI that a maintainer removed within 14 days, one that a maintainer added within 7 days of the analysis, a duplicate notice that someone objected to and that didn't close, and an analysis that someone who may push gave a π. The prompt asks the AI not to repeat such a choice on an issue like it. GitHub is the record, so correcting the issue is all it takes, and the AI learns of nothing else: one line per issue with its number, its title as a JSON string and the labels oflabels.md, in a fence that no title can close. The issues come from the 500 newest comments of the repository and from the window above, so the AI can read each of them; their events are read once each, and the reactions only of an analysis with a π.[context] max_analyzedsets the number,0turns it off, and GitHub failing it is a warning. - A reply judges the comment of its event.
maintainer-reply,release-replyandmaintainer-questionread the issue andcomment.md, the comment whose event started the run, and nothing of the rest of the repository. A run can wait behind others for minutes, and a "still broken for me too" of someone else that comes in meanwhile never reopens an issue whose reporter just confirmed the fix. Theapplyjob reads that comment again and acts only when it is the reporter's, after a release, or a maintainer's, and for an answer a maintainer's/assistant ask. A run by hand judges the newest such comment.