Repository navigation
Name the routing fields in the list_children description - #753
Conversation
The tool answers `load` for every child and, for a child with an open turn, `openForMs` and `stalled` (#624, #696), but its description named none of them: a model read that it gets (id, name, role) and never learned the answer says who is busy or stuck. The description now names all three and says what `stalled` means, conditioned on a turn being open so it promises nothing an idle child does not return. A test pins the words and the answer. Fixes #733
|
Verdict: PASS at b1f01e4 The description now names the fields the tool already answers, the test checks both halves — the text and the returned shape — and it holds: restoring the old one-line description → 103/104, the only red being CI at this tip is 9/9 green and One pre-existing edge the new sentence inherits from #624, not introduced here: Ran:
Not run: |
Written-by: Dev
Fixes #733.
Tip SHA: b1f01e4
Reproduce
list_childrenanswersloadfor every child and, for a child with an open turn,openForMsandstalled(#624, #696). Its description named only(id, name, role), so a model — which reads the description, not the implementation — never learned that the answer says who is busy, how long a turn has been open, or thatstalledexists.docs/subsystems/tree.mdalready documented the fields; the agent-facing surface was the only part behind.What changed
plugins/tree/src/tools.js: thelist_childrendescription now namesloadfor every child andopenForMs/stalledfor a child with an open turn, says whatstalledmeans ("true once that turn has been open past the stall threshold"), and tells the coordinator to send new work to an idle child first. The fields are described as conditional because the tool only adds them for an open turn, so the description promises nothing an idle child does not return.plugins/tree/test/tree.test.js: one case (#733: list_children describes the load fields it returns) asserts the description containsload,openForMsandstalled, thatstalledis tied to the threshold, and that the answer still carries the fields for a busy child and omits them for an idle one.docs/subsystems/tree.md: thelist_childrenparagraph says the description names those fields too.changelog.d/733-list-children-fields.changed.md: the fragment.Nothing the tool computes or returns changed, and no core file is touched.
What I ran
From a full checkout at main
d5fefe01with this branch's files in place,DSH_HARNESS=/opt/flybot:The 103 pre-existing tree cases stay green; the one warning is the pre-existing
mock-flybot.jsfor…ofnote, not in a file this PR changes.Red without the source change
Restore the old description (
List your direct child bots (id, name, role).…) inplugins/tree/src/tools.js:The case fails on the missing
openForMs(the first absent field afterload). Restoring the new description returns it to 88/88.Not run
npm run verifyand the core suite: this box has nocore/sources, so the plugin suite ran against an assembled checkout and the rest is left to CI.arch-docs: it reads the branch's commits through git, which is not available here;docs/subsystems/tree.md— the doc that ownsplugins/tree/— changes in the same PR.Risk
T2 by the repository's own rules (
plugins/tree/**), so it needs a PASS at the tip. The change is a description string, one test, one docs sentence and one fragment; nothing is computed differently and no configuration is added.