Skip to content

chore(epic): sync TinyAgents 2.10 and TinyTools 0.6 - #516

Merged
senamakel merged 25 commits into
tinyhumansai:epic-8089-doctor-compatiblefrom
senamakel:epic-8089-sync-tinytools-06
Oct 21, 2026
Merged

senamakel merged 25 commits into
tinyhumansai:epic-8089-doctor-compatiblefrom
senamakel:epic-8089-sync-tinytools-06

Conversation

@senamakel

@senamakel senamakel commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Bring the canonical epic branch onto TinyAgents v2.10.0 and TinyTools 0.6 so OpenHuman can consume the updated tool contracts while retaining the epic’s wait tools and conformance work. This merges the released upstream changes, including bounded dead-call recovery and pricing matching fixes, and preserves the verified nested dependency commits.

Part of tinyhumansai/openhuman#8089. Follow-up to #515; target remains epic-8089-doctor-compatible.

Validation completed:

  • cargo check --workspace --all-targets --locked
  • cargo clippy --workspace --all-targets --locked -- -D warnings
  • cargo fmt --all --check and git diff --check

Review also exposed a response-cache recovery bug: a history-free constant-cap retry could replay the cached truncated blank without reaching the provider. Retry-enabled runs now bypass old blank entries and do not store new ones; successful answers remain cached, and disabling recovery retains exact replay. Two regression tests failed before the fix and pass after it. The existing cache test now verifies real provider caps [2048, 2048, 4096] rather than allowing a cached first retry to hide the defect.

The module README documents constant-cap, one-call reasoning-off, and sticky reasoning-off controls. The new sibling test module uses its parent import.

Focused tests also pass:

  • cargo test -p tinyagents-harness --lib agent_loop:: --locked — 530 tests
  • cargo test -p tinyagents-registry --lib pricing:: --locked — 19 tests
  • cargo test -p tinyagents-harness-tools --lib wait::tests --locked — 10 tests
  • cargo test -p tinyagents-graph --lib --locked — 429 tests

Hosted CI must also pass before merge.

The standalone MongoDB proof lock now records the synchronized path-package versions, and its existing CI command uses --locked. The exact CI target compiles with cargo check --manifest-path integration-proofs/run-ledger-mongodb/Cargo.toml --test session_driver_conformance --features mongodb-storage-tests --locked; this command failed locked resolution before regeneration. Pricing tests (19), formatting, and diff checks also pass after the documentation/lock update.

Known unrelated limitation: checking every target in the excluded proof workspace fails in the unchanged native_run_ledger_mongodb legacy target, which still calls removed upsert_agent_run, append_run_event, and db_path APIs. That target and session source match upstream v2.10.0; it is not the conformance target run by CI.

shaurya703 and others added 17 commits October 13, 2026 10:47
`pricing::lookup` fell back to the longest catalogued id found at a token
boundary inside the request, so any hyphenated variant of a listed model
inherited that model's rates: `gpt-4.1-nano` priced as `gpt-4.1`,
`o3-pro` and `o3-mini` as `o3`. Those are different models with their
own prices, and the estimator reported a confident number for them
instead of "unknown".

The fallback now requires the request to be a catalogued id followed by
a snapshot decoration only: `-`-separated tokens that are each a date or
version fragment (`2026-05-01`, `20250929`, `06-05`, `001`) or a
release-channel word (`latest`, `preview`, `exp`). Dated and previewed
ids still resolve to their row; any other suffix resolves to `None` and
the caller falls back to a tier estimate. Prefix matching also keeps the
short ids out of unrelated tokens (`proto3-chat`, `solo1-7b`), which the
boundary search guarded against before.

Closes tinyhumansai#392
…ll retries at the same cap

A truncated-empty retry doubles the cap from the second attempt, up to 4x the
original. With a generous cap that only multiplies the cost: on Terminal-Bench
a reasoning model that died at 131,072 output tokens died again at 262,144,
three dead calls costing about $0.6 with nothing to show. With the new policy
flag every retry re-sends at the cap the call ran under, and the second retry
is still made at that cap (the clock check still applies). Off by default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ad call without reasoning

A reasoning model that thought to its output cap without acting tends to do
the same on a retry at any cap: on Terminal-Bench protein-assembly
deepseek-v4.1-flash died at 131,072 tokens three times in a row at a
constant cap, and again at 262,144 with the default doubling. With the new
policy flag the call that follows a truncated-empty reply (a retry or a
"stop deliberating" nudge) goes out with ReasoningEffort::None, applied after
the policy default and the profile mapping so neither restores it. One call
only: the call after it reasons as the policy says again. Off by default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…calls repeat

RunPolicy::truncated_empty_reasoning_off_sticky_after counts truncated-empty
replies across the whole run (the per-step counters reset after every tool
round) and, from that count on, sends every later call with reasoning off.
With the one-call rule alone, Terminal-Bench protein-assembly alternated five
dead calls with five working reasoning-off calls: reasoning came back on the
next call and the model thought to the cap again. 0 (the default) never
makes it sticky.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vendor/tinytools 616408b -> 3a01641 (0.6.0): metadata sanitization moved
into tinytools (#76), git and linter children spawn without a Windows
console window (#78).

vendor/tinyinference 60e7109 -> 773ce6f: local runtimes get one leading
system message (#109), and tinyinference-llm asks for tinytools-agent
0.6.0 so the root [patch] keeps a single copy (#120).

The workspace crates' tinytools version requirements move to 0.6.0 to
match.
…ls-tinyinference-7895

chore(vendor): bump tinytools to 0.6.0 and tinyinference
Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
…oning-off

feat(recovery): constant-cap and reasoning-off retries for dead calls
…p-snapshot-decorations

fix(registry): price only snapshot decorations of a catalogued model
chore(vendor): preserve TinyInference bootstrap regression
Update the pinned tinyinference and tinytools submodule commits to their latest revisions.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Co-authored-by: Medulla <medulla@tinyhumans.ai>
@tinysweeper

tinysweeper Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Tiny Sweeper review

Verdict: Incomplete · Priority: none
Coverage: Reviewed 19 of 32 files; not reviewed: Cargo.lock, integration-proo…, and 2 additional unreviewed files; not reviewed (large PR): crates/tinyagent…, crates/tinyagent…, and 7 additional unreviewed files.
Lane gaps: The tests, description reviewers did not respond.
Pull request purpose (title): chore(epic): sync Ti…

Diagnostics and supporting details

Full summary

Pull request purpose (title): chore(epic): sync TinyAgents 2.10 and TinyTools 0.6. Purpose (title): chore(epic): sync TinyAgents 2.10 and TinyTools 0.6. The diff moves the workspace and intra-workspace dependency pins to 2.10.0 and tinytools references to 0.6.0, adds three RunPolicy dead-call recovery controls (a constant retry cap, one-call reasoning-off, and sticky run-wide reasoning-off), changes response-cache handling so truncated-blank replies are neither stored nor replayed when recovery is enabled, and rewrites the registry pricing-id matcher from substring-boundary matching to decorated-snapshot matching. The MongoDB proof workflow's conformance command now runs with --locked. The latest-push-delta section is unavailable, so this is not a push-delta summary.

Unreviewed paths

  • Cargo.lock
  • crates/tinyagents-harness/src/agent_loop/README.md
  • crates/tinyagents-harness/src/agent_loop/mod_tests.rs
  • crates/tinyagents-harness/src/agent_loop/model_call.rs
  • crates/tinyagents-harness/src/agent_loop/response_recovery.rs
  • crates/tinyagents-harness/src/agent_loop/run_loop.rs
  • crates/tinyagents-harness/src/agent_loop/turn_recovery.rs
  • crates/tinyagents-harness/src/agent_loop/turn_recovery_tests.rs
  • crates/tinyagents-harness/src/agent_loop/types.rs
  • crates/tinyagents-registry/src/pricing/README.md
  • integration-proofs/run-ledger-mongodb/Cargo.lock
  • vendor/tinyinference
  • vendor/tinytools

Partial review reasons

  • critique: crates/tinyagents-harness/src/agent_loop/README.md — not selected by the large-review budget
  • critique: crates/tinyagents-harness/src/agent_loop/mod_tests.rs — not selected by the large-review budget
  • security: crates/tinyagents-harness/src/agent_loop/mod_tests.rs — not selected by the large-review budget
  • critique: crates/tinyagents-harness/src/agent_loop/model_call.rs — not selected by the large-review budget
  • security: crates/tinyagents-harness/src/agent_loop/model_call.rs — not selected by the large-review budget
  • critique: crates/tinyagents-harness/src/agent_loop/response_recovery.rs — not selected by the large-review budget
  • security: crates/tinyagents-harness/src/agent_loop/response_recovery.rs — not selected by the large-review budget
  • critique: crates/tinyagents-harness/src/agent_loop/run_loop.rs — not selected by the large-review budget
  • security: crates/tinyagents-harness/src/agent_loop/run_loop.rs — not selected by the large-review budget
  • critique: crates/tinyagents-harness/src/agent_loop/turn_recovery.rs — not selected by the large-review budget
  • security: crates/tinyagents-harness/src/agent_loop/turn_recovery.rs — not selected by the large-review budget
  • critique: crates/tinyagents-harness/src/agent_loop/turn_recovery_tests.rs — not selected by the large-review budget
  • security: crates/tinyagents-harness/src/agent_loop/turn_recovery_tests.rs — not selected by the large-review budget
  • critique: crates/tinyagents-harness/src/agent_loop/types.rs — not selected by the large-review budget
  • security: crates/tinyagents-harness/src/agent_loop/types.rs — not selected by the large-review budget
  • critique: crates/tinyagents-registry/src/pricing/README.md — not selected by the large-review budget

Review snapshot

Change surface Files Review signal Count
Production 8 Active findings 0
Tests 5 Noted findings 0
Documentation 2 Resolved findings 0
Configuration 13 Pending checks/questions 27

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

What changed

The summary below covers the whole pull request against its stated purpose.

Features

  • Modified — Workspace-wide version bump to 2.10.0 and tinytools 0.6.0: All workspace crates and their intra-workspace dependency pins move together to 2.10.0 and vendor tinytools references move to 0.6.0, so OpenHuman can consume the updated tool contracts; the root manifest's excluded-path list is carried over so the point-in-time proof workspace and vendor trees stay out of the workspace. (Cargo.toml exclude = ["vendor", "worktrees", "integration-proofs/run-ledger-mongodb"], crates/tinyagents-harness/Cargo.toml, crates/tinyagents-runtime/Cargo.toml, crates/tinyagents-registry/Cargo.toml anyhow = { workspace = true })
  • Added — RunPolicy dead-call recovery controls: Adds truncated_empty_constant_cap (keep every truncated-empty retry at the dead call's cap instead of doubling from the second retry), truncated_empty_reasoning_off (send the one call after a truncated-empty reply with ReasoningEffort::None), and truncated_empty_reasoning_off_sticky_after (make reasoning-off persist for the rest of the run once that many truncated-empty replies occur). All default to disabled, and the retry plan still defers to the wall-clock and model-call limits. (crates/tinyagents-harness/src/runtime/types.rs pub struct RunPolicy {, crates/tinyagents-harness/src/runtime/types.rs impl Default for RunPolicy {, crates/tinyagents-harness/src/agent_loop/types.rs pub(super) struct TurnRecovery {, crates/tinyagents-harness/src/agent_loop/turn_recovery.rs pub(super) struct TruncatedRetryPlan {, crates/tinyagents-harness/src/agent_loop/turn_recovery.rs impl TruncatedRetryPlan {, crates/tinyagents-harness/src/agent_loop/response_recovery.rs impl<State: Send + Sync, Ctx: Send + Sync> AgentHarness<State, Ctx> {, crates/tinyagents-harness/src/agent_loop/run_loop.rs impl<State: Send + Sync, Ctx: Send + Sync> AgentHarness<State, Ctx> {)
  • Modified — Truncated-blank responses bypass the response cache when recovery is enabled: A new truncated blank is not written to the response cache and an existing blank entry is skipped whenever truncated_empty_retries or truncated_empty_nudges is non-zero, so a constant-cap or same-cap retry reaches the provider instead of replaying an unusable cached answer. Usable answers remain cacheable, and disabling both retries and nudges retains exact replay. (crates/tinyagents-harness/src/agent_loop/model_call.rs impl<State: Send + Sync, Ctx: Send + Sync> AgentHarness<State, Ctx> {, crates/tinyagents-harness/src/agent_loop/mod_tests.rs async fn truncated_empty_retry_does_not_replay_a_cached_blank() {)
  • Modified — Registry pricing lookup matches only decorated snapshot ids: The substring-boundary fallback is replaced by an exact canonical match, then a vendor-stripped match, then a longest-listed-id prefix whose only suffix is date/version fragments or the release-channel words latest/preview/exp. Unlisted neighbouring variants such as gpt-4.1-nano and o3-pro now resolve to None instead of inheriting a listed base model's rates and context window, and the short-id collision guard against proto3-chat/solo1-7b is retained. (crates/tinyagents-registry/src/pricing/mod.rs pub fn lookup(model: &str) -> Option<&'static ModelPrice> {, crates/tinyagents-registry/src/pricing/mod.rs fn normalize(model: &str) -> String {, crates/tinyagents-registry/src/pricing/types.rs pub struct ModelPrice {, crates/tinyagents-registry/src/pricing/pricing_tests.rs fn lookup_strips_context_and_tag_decorations() {)
  • Modified — Recovery controls and pricing matching documented: The agent-loop README describes the retry cap ladder, constant-cap mode, one-call and sticky reasoning-off, and the cache-bypass behavior; the pricing README records the exact/vendor/decorated match order and that unlisted variants no longer inherit a listed base model's rates or context window. (crates/tinyagents-harness/src/agent_loop/README.md as Anthropic and some gateways spell it — an empty `max_tokens` reply takes th, crates/tinyagents-registry/src/pricing/README.md This module performs no I/O and does not refresh prices. The seed catalog and)

Tests

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

Findings

No active actionable findings.

Before merge

  • Complete the critique review for crates/tinyagents-harness/src/agent_loop/turn_recovery_tests.rs, crates/tinyagents-harness/src/agent_loop/README.md, crates/tinyagents-harness/src/agent_loop/response_recovery.rs, crates/tinyagents-harness/src/agent_loop/model_call.rs, crates/tinyagents-harness/src/agent_loop/run_loop.rs, crates/tinyagents-registry/src/pricing/README.md, crates/tinyagents-harness/src/agent_loop/turn_recovery.rs, crates/tinyagents-harness/src/agent_loop/mod_tests.rs, crates/tinyagents-harness/src/agent_loop/types.rs.
  • Complete the security review for crates/tinyagents-harness/src/agent_loop/turn_recovery_tests.rs, crates/tinyagents-harness/src/agent_loop/response_recovery.rs, crates/tinyagents-harness/src/agent_loop/model_call.rs, crates/tinyagents-harness/src/agent_loop/run_loop.rs, crates/tinyagents-harness/src/agent_loop/turn_recovery.rs, crates/tinyagents-harness/src/agent_loop/mod_tests.rs, crates/tinyagents-harness/src/agent_loop/types.rs.
  • Complete the tests review.
  • Complete the description review.
  • Review uncovered paths: crates/tinyagents-harness/src/agent_loop/README.md, crates/tinyagents-harness/src/agent_loop/mod_tests.rs, crates/tinyagents-harness/src/agent_loop/model_call.rs, crates/tinyagents-harness/src/agent_loop/response_recovery.rs, crates/tinyagents-harness/src/agent_loop/run_loop.rs, crates/tinyagents-harness/src/agent_loop/turn_recovery.rs, crates/tinyagents-harness/src/agent_loop/turn_recovery_tests.rs, crates/tinyagents-harness/src/agent_loop/types.rs, crates/tinyagents-registry/src/pricing/README.md.
Agent review details

critique

  • Conclusion: Neutral
  • Scope reviewed: incomplete; unanswered files: crates/tinyagents-harness/src/agent_loop/turn_recovery_tests.rs, crates/tinyagents-harness/src/agent_loop/README.md, crates/tinyagents-harness/src/agent_loop/response_recovery.rs, crates/tinyagents-harness/src/agent_loop/model_call.rs, crates/tinyagents-harness/src/agent_loop/run_loop.rs, crates/tinyagents-registry/src/pricing/README.md, crates/tinyagents-harness/src/agent_loop/turn_recovery.rs, crates/tinyagents-harness/src/agent_loop/mod_tests.rs, crates/tinyagents-harness/src/agent_loop/types.rs
  • Lane summary: Reviewed 8 of 17 files — 9 not reviewed. Reviewed 8 files; 1 finding. 9 files were omitted: not selected by the large-review budget.

security

  • Conclusion: Neutral
  • Scope reviewed: incomplete; unanswered files: crates/tinyagents-harness/src/agent_loop/turn_recovery_tests.rs, crates/tinyagents-harness/src/agent_loop/response_recovery.rs, crates/tinyagents-harness/src/agent_loop/model_call.rs, crates/tinyagents-harness/src/agent_loop/run_loop.rs, crates/tinyagents-harness/src/agent_loop/turn_recovery.rs, crates/tinyagents-harness/src/agent_loop/mod_tests.rs, crates/tinyagents-harness/src/agent_loop/types.rs
  • Lane summary: Reviewed 8 of 15 files — 7 not reviewed. Reviewed 8 files; 0 findings. 7 files were omitted: not selected by the large-review budget. 2 files were not security-reviewed: crates/tinyagents-harness/src/agent_loop/README.md (prose or tabular data), crates/tinyagents-registry/src/pricing/README.md (prose or tabular data).

tests

  • Conclusion: Neutral
  • Scope reviewed: no lane response
  • Lane summary: No reviewer produced a usable response.

commits

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: The commits lane answered and reported no sensitive content in the committed files; it also noted the code index is behind this pull request, so retrieved context may be out of date.
  • Lane summary: No sensitive content in committed files. _The code index is behind this pull request (indexed at `3566917c2b53`), so retrieved context may be out of date._

description

  • Conclusion: Neutral
  • Scope reviewed: no lane response
  • Lane summary: No reviewer produced a usable response.
Evidence and run details
  • Models: ladder/vectors-oai3, deepseek-v4.1-flash, deep
  • Spend: $0.006460
  • Completion usage: incomplete; some provider completion costs are unavailable.
  • Tokens: 700425 input · 70646 output · 94464 cached · 775 embedding
  • Updated: 2026-10-21T19:24:39Z
  • Continuity: summary cache chain restarted at the storage ceiling.
Head State Pass summary
c899bbbab130 incomplete 0 active finding(s), 0 resolved finding(s) (at 2026-10-21T19:00:23Z)
53b022c6cb65 incomplete 0 active finding(s), 0 resolved finding(s) (at 2026-10-21T19:13:04Z)
18f414e48c32 incomplete 0 active finding(s), 0 resolved finding(s) (at 2026-10-21T19:24:39Z)

tinysweeper 0.1.2

@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: cb7d6aa2-d427-4292-a8ed-f8f9ba790f62

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 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-10-21T19:26:20.420160Z 18f414e 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.

@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 could not complete coverage (18 unanswered item(s)), so this is not an approval.

Diagnostics

Total spend: $0.0026

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Oct 21, 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: c899bbbab1

ℹ️ 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-harness/src/agent_loop/turn_recovery.rs
Comment thread crates/tinyagents-harness/src/runtime/types.rs
senamakel and others added 6 commits October 21, 2026 19:06
Adds tests for the truncated-empty constant-cap path, verifying that retries
reach the provider rather than replaying a cached blank and that only the
usable answer is cached. Also covers recovery bypassing a blank cached before
retries were enabled, while disabled recovery still replays exactly.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Add the missing RunPolicy import to the dead call test module so the
tests can reference the runtime policy type.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Update the README to match the retry behaviour: the default retry count is now
two, the first retry reuses the original output cap before later retries double
it, and a new constant-cap option pins every retry to that cap. Also document
the reasoning-effort overrides that turn reasoning off for the call after a
truncated-empty reply, either once or stickily for the rest of the run.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Length-stopped blank responses are now excluded from the response cache
whenever truncated-empty retries or nudges are enabled, so a retry at an
unchanged cap reaches the provider instead of replaying the unusable cached
answer. The check also consults the run policy rather than only the call
shape, and the README documents the new caching behaviour.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The truncated-empty retry test now scripts an extra truncated response and
checks the max_tokens of every request, pinning that the first retry keeps
its cap and only the second grows it.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
@senamakel

Copy link
Copy Markdown
Member Author

@codex review

@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: 53b022c6cb

ℹ️ 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-registry/src/pricing/mod.rs
Comment thread Cargo.toml
senamakel and others added 2 commits October 21, 2026 19:18
The pricing README now documents that lookup matches an exact canonical id
first, then an id with a leading vendor segment removed, and that the fallback
only accepts dated or preview snapshot decorations of listed ids. Unlisted
variants such as gpt-4.1-nano and o3-pro return None instead of inheriting a
base model's rates, and the remaining cached-rate and long-context limitations
are restated as needing separate behavioral corrections.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
The README now describes the fallback as choosing the longest listed id extended only by date/version fragments or release-channel words such as latest, preview, and exp, replacing the earlier wording about dated or preview snapshot decorations.

Auto-committed-on: cuttlefish
Co-authored-by: Medulla <medulla@tinyhumans.ai>
@senamakel
senamakel merged commit 208b4dd into tinyhumansai:epic-8089-doctor-compatible Oct 21, 2026
18 checks passed
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.

4 participants