Skip to content

fix(graph): restore the todo description's bookkeeping rules lost in #193 - #194

Merged
senamakel merged 4 commits into
mainfrom
todo-description-bookkeeping
Sep 22, 2026
Merged

senamakel merged 4 commits into
mainfrom
todo-description-bookkeeping

Conversation

@senamakel

Copy link
Copy Markdown
Member

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-list line and edited session_list.rs.
#193 folded that whole-list surface into todos::TodoTool and deleted
session_list.rs, so the fix went with it — 3c9ba00c is not an ancestor of
main, and OpenHuman still pins it, which is how the loss surfaced.

The wording is what stops two model failure modes the host was seeing:

  • writing the list and then stopping, waiting to be prompted for the next
    step — hence "the same response that updates it must also carry the tool
    call that does the next step";
  • marking items completed ahead of doing them — hence "only after its
    work has actually run and its result is in this conversation".

main's own trailing sentence (the list is bound to the current thread) is
kept.

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 --check
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo 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

senamakel and others added 2 commits September 22, 2026 19:34
…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>
@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown

Warning

Review limit reached

  • Run on-demand review

This review includes 2 billable files and costs up to $0.50.

Or wait 30 minutes for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 08ee6511-d6be-419e-b474-bed13aebbcbe

📥 Commits

Reviewing files that changed from the base of the PR and between 5bbfcc5 and 6e2680f.

📒 Files selected for processing (2)
  • crates/tinyagents-graph/src/todos/test.rs
  • crates/tinyagents-graph/src/todos/tool.rs

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 22, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-22T17:13:51.072187Z 6e2680f New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread crates/tinyagents-graph/src/todos/tool.rs Outdated
@tinysweeper

tinysweeper Bot commented Sep 22, 2026

Copy link
Copy Markdown

Tiny Sweeper review

Tiny 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
Priority: none
Reviewed head: 6e2680fee1cf
Updated: 1790097158 (Unix time)

Review snapshot

Change surface Files Review signal Count
Production 1 Active findings 0
Tests 1 Noted findings 0
Documentation 0 Resolved findings 0
Configuration 0 Pending checks/questions 0

Completeness: Complete
Test assessment: No supported feature-to-test mapping was available; this does not mean tests are absent or passed.

What changed

The review could not produce a supported behavioral summary; inspect the cited changed surface and lane details below.

Features

None identified with supported citations.

Tests

No supported feature-to-test mapping was produced. Test execution is not inferred.

Findings

No active actionable findings.

Before merge

None.

How this fits together

flowchart 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
Loading
Agent review details

critique

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Lane summary: Reviewed 2 files; 0 findings. _The code index is behind this pull request (indexed at `033d34f5e0d0`), so retrieved context may be out of date._ _3 memory call(s) failed (model: cortex: v1/answer answered 502 Bad Gateway), so this review saw part of what the engine holds._

security

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Lane summary: Reviewed 2 files; 0 findings. _The code index is behind this pull request (indexed at `033d34f5e0d0`), so retrieved context may be out of date._ _3 memory call(s) failed (model: cortex: v1/answer answered 502 Bad Gateway), so this review saw part of what the engine holds._

tests

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Lane summary: This PR updates the `TodoTool` description to instruct models to mark items completed only after the work has actually run and to treat writing the list as bookkeeping, not work. A test is added that asserts the description contains these key phrases. No runtime behaviour changes, no new error paths, and no uncovered branches. Safe to merge. _The code index is behind this pull request (indexed at `033d34f5e0d0`), so retrieved context may be out of date._ _3 memory call(s) failed (model: cortex: v1/answer answered 502 Bad Gateway), so this review saw part of what the engine holds._

commits

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: Nothing sensitive found in what this pull request commits.

description

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Lane summary: Restores the tool description's bookkeeping rules that were lost in refactor(graph): replace the todos kanban board with a flat todo list #193; adds a test to prevent silent removal in the future. The change is model-facing only, no API or behavior change, and passes all checks. Safe to merge. _The code index is behind this pull request (indexed at `033d34f5e0d0`), so retrieved context may be out of date._ _3 memory call(s) failed (model: cortex: v1/answer answered 502 Bad Gateway), so this review saw part of what the engine holds._

e2e

  • Conclusion: Neutral
  • Scope reviewed: all assigned evidence
  • Lane summary: No end-to-end harness in this repository: no e2e test files and no e2e workflow.
Evidence and run details
  • Models: ladder/vectors, gpt-5.6-luna, deepseek-v4-flash
  • Spend: $0.012217
  • Tokens: 145319 input · 5429 output · 14824 cached · 214 embedding
Head State Pass summary
5d9f4507ab0c ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 1790095647)
6e2680fee1cf ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 1790097158)

tinysweeper 0.1.0

@tinysweeper tinysweeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Sep 22, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +29 to +30
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 \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@senamakel
senamakel merged commit b9a0ab4 into main Sep 22, 2026
10 checks passed
@senamakel
senamakel deleted the todo-description-bookkeeping branch September 23, 2026 09:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant