fix(graph): restore the todo description's bookkeeping rules lost in #193 - #194
Conversation
…ponse coupling Reword the tool description to make it explicit that a step should only be marked `completed` after its work has actually run and its result is present in the conversation. Also add guidance that writing the list is bookkeeping, not work, and that the same response updating the list must carry the tool call for the next step, with one update per response being sufficient. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
…ping Adds a test that verifies the tool description enforces two key rules: an item may only be completed after its work has actually run, and writing the list is bookkeeping rather than the work itself. The test also checks that the description requires the same response to carry the next tool call, preventing models from stopping after listing todos. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
|
Warning Review limit reached
This review includes 2 billable files and costs up to $0.50. Or wait 30 minutes for your next included review. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5d9f4507ab
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Tiny Sweeper reviewTiny Sweeper reviewed this change across 6 lane(s) and found 0 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below. State: Ready for maintainer review Review snapshot
Completeness: Complete What changedThe review could not produce a supported behavioral summary; inspect the cited changed surface and lane details below. FeaturesNone identified with supported citations. TestsNo supported feature-to-test mapping was produced. Test execution is not inferred. FindingsNo active actionable findings. Before mergeNone. How this fits togetherflowchart LR
n0["store"]:::impacted
n1["new"]:::impacted
n2["Store"]:::impacted
n3["delete_waits_for_an_in_flight_mutation"]:::impacted
n0 -->|calls| n1
n0 -->|uses| n2
n3 -->|calls| n0
n3 -->|tests| n0
n3 -->|calls| n1
n3 -->|tests| n1
n3 -->|uses| n2
classDef changed fill:#0d4429,stroke:#238636,color:#e6edf3
classDef impacted fill:#161b22,stroke:#6e7681,color:#c9d1d9
classDef flagged fill:#5a1e02,stroke:#d93f0b,color:#ffffff
classDef blocking fill:#67060c,stroke:#f85149,color:#ffffff
Agent review detailscritique
security
tests
commits
description
e2e
Evidence and run details
|
There was a problem hiding this comment.
tinysweeper found nothing blocking. Approving.
$0.0126 · 85,718 in / 4,291 out · 2,048 cached (2%) · ladder/vectors, gpt-5.6-luna, deepseek-v4-flash · 198 embedded
critique: $0.0074 · 30,839 in / 913 out · 0 cached (0%) · gpt-5.6-luna
security: $0.0047 · 30,347 in / 290 out · 0 cached (0%) · gpt-5.6-luna
tests: $0.0003 · 15,515 in / 1,089 out · 1,024 cached (7%) · deepseek-v4-flash
description: $0.0001 · 6,894 in / 847 out · 1,024 cached (15%) · deepseek-v4-flash
Co-authored-by: Medulla <medulla@tinyhumans.ai>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6e2680fee1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| and its result is in this conversation. Writing the list is bookkeeping, not work: after \ | ||
| updating it, immediately carry out the next step. Providers that cannot issue parallel tool \ |
There was a problem hiding this comment.
Exempt the terminal todo update from the next-step mandate
When the model completes the final item and updates the list, this unconditional instruction requires it to immediately carry out a next step even though none exists. Because the description is the model-facing contract, this can discourage clean termination or cause the model to invent additional work after the checklist is complete; qualify the instruction so it applies only while a pending step remains.
Useful? React with 👍 / 👎.
Summary
Restores a description fix that was made on the wrong side of #193 and so
never reached
main.3c9ba00c("todo description says a list write is bookkeeping, not the work")was committed on the
session-todo-listline and editedsession_list.rs.#193 folded that whole-list surface into
todos::TodoTooland deletedsession_list.rs, so the fix went with it —3c9ba00cis not an ancestor ofmain, and OpenHuman still pins it, which is how the loss surfaced.The wording is what stops two model failure modes the host was seeing:
step — hence "the same response that updates it must also carry the tool
call that does the next step";
completedahead of doing them — hence "only after itswork has actually run and its result is in this conversation".
main's own trailing sentence (the list is bound to the current thread) iskept.
API Or Behavior Changes
Model-facing tool description only; no API change. The description is longer
by roughly 40 tokens per exposure, which is the point of it.
Tests
cargo fmt --checkcargo clippy --all-targets --all-features -- -D warningscargo test -p tinyagents-graph todos(21 passed)Adds
description_states_when_an_item_may_be_completed_and_that_writing_is_not_working,so the next refactor of this surface cannot drop the rules silently the way
#193 did.
Documentation
None needed — the README and module docs describe the tool's shape, not its
description text.
Co-authored-by: Medulla medulla@tinyhumans.ai