docs(result): fix ImageData/Path spec mismatch, clarify metadata boundary - #14
Conversation
The `from_str` implementation for `Result` now returns an `Err` when given an empty string, instead of panicking. This ensures that parsing an empty input produces a controlled error rather than causing a runtime crash. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Introduce a new specification document that defines the vocabulary for the tinytools project, providing a clear reference for terminology and usage across the codebase. 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 22 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. |
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["success"]:::impacted
n1["success_with_markdown"]:::impacted
n2["...lls_back_when_markdown_is_absent_or_blank"]:::impacted
n3["result_is_pinned_to_its_literal_wire_shape"]:::impacted
n4["result_round_trips_through_json"]:::impacted
n2 -->|calls| n0
n2 -->|tests| n0
n3 -->|calls| n1
n3 -->|tests| n1
n4 -->|calls| n0
n4 -->|tests| n0
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.0046 · 68,459 in / 3,028 out · 12,220 cached (18%) · ladder/vectors, gpt-5.6-luna, deepseek/deepseek-v4-flash · 190 embedded
critique: $0.0022 · 38,210 in / 730 out · 6,084 cached (16%) · gpt-5.6-luna
security: $0.0006 · 11,614 in / 85 out · 1,784 cached (15%) · gpt-5.6-luna
tests: $0.0011 · 12,525 in / 364 out · 1,280 cached (10%) · deepseek/deepseek-v4-flash
description: $0.0004 · 4,030 in / 522 out · 1,280 cached (32%) · deepseek/deepseek-v4-flash
Summary
Small follow-up to #10, landing two review findings that came in on that PR's
head after it merged (from CodeRabbit/tinysweeper re-review of the last
pushed commit), plus one pre-existing unrelated test fix that was on the
branch at merge time:
docs/specs/tinytools-vocabulary.md: the new "rich results" section saidboth
ImageDataandFileDatasupportBase64/Url/Path, butImageDataonly hasBase64/Url—PathisFileData-only. Fixed thespec to match the actual enum.
crates/tinytools/src/result/types.rs: clarifiedToolResult::metadata'sdoc comment to be explicit that it round-trips through
Serialize/Deserializelike every other field (so a host can persist the wholeToolResultto a transcript/RPC reply/JSONL record), and that "never shownto the model" refers specifically to the model-facing rendering methods
(
text()/output()/output_for_llm()) — a caller that instead serializesthe whole struct for a model-facing message will still include it. This is
documentation only; no behavior change, since stripping the field from
Serializeitself would break the documented host-persistence use case.fix(result): handle empty string in from_str for Result— analready-committed, unrelated small test fix that was on the
runtime-comparisonbranch when Rich ToolResult: follow-up content, metadata, control hints, replay class (tinyagents#171) #10 merged.Behavior changes
None. Both substantive changes are documentation/spec accuracy fixes.
Validation
cargo fmt --all -- --checkcargo clippy --all-targets --all-features -- -D warningscargo test --all-featuresRUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features -p tinytoolsAll pass locally.