Skip to content

fix(config): stop re-exporting TinyAgents' ToolRendering from the config API (fixes red main) - #8481

Merged
M3gA-Mind merged 2 commits into
tinyhumansai:mainfrom
M3gA-Mind:fix/core-tool-rendering-reexport
Oct 28, 2026
Merged

M3gA-Mind merged 2 commits into
tinyhumansai:mainfrom
M3gA-Mind:fix/core-tool-rendering-reexport

Conversation

@M3gA-Mind

@M3gA-Mind M3gA-Mind commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Fixes red main: static:agent-runtime-boundary failed with "Unbaselined violations (1): openhuman-upstream-reexport: crates/openhuman-core/src/config/schema/context.rs:14: pub use tinyagents_harness::summarization::ToolRendering;". This came in with c07f411 (Compact idle threads, honour summarizer_model, add a memory block and per-turn recall #8477).
  • The rule forbids core from re-exporting upstream TinyAgents types. Its only allowlist is the embed crate's injection contracts, so a config re-export isn't an accepted exemption, and this PR does not baseline it.
  • Changes:
    • config/schema/context.rs imports ToolRendering privately. ContextSettings.summarizer_tool_rendering and SummarizerSettings.tool_rendering keep the upstream type, which callers name from tinyagents_harness directly.
    • ToolRendering is dropped from the config::schema and config re-export lists.
    • Core's two internal users (the env overlay and a context-wiring test) name tinyagents_harness::summarization::ToolRendering, as the env-overlay tests already did.
  • Nothing outside openhuman-core named openhuman_core::config::ToolRendering.

Proof (cuttlefish)

  • Red, main 3e0c980: pnpm agent:runtime-boundary exits 1 with the ToolRendering violation (CF-BASE-3e0c980 static log).
  • On 5761ba2:
    • pnpm agent:runtime-boundary exits 0: "Agent-runtime boundary holds (140 temporary exact violations baselined)". 0 baseline or boundary files changed.
    • cargo check --locked --workspace --all-targets --features "<product>,bin-tools": exit 0.
    • clippy -p openhuman --lib --tests -D warnings: exit 0.
    • nextest config::schema::load | agent::tinyagents::context_wiring: 246/246 passed.
    • cargo fmt --all --check flagged the use order in config/mod.rs; fixed in d90552e.
  • On d90552e (5761ba2 plus the rustfmt swap, +1/-1): cargo fmt --all --check exits 0, pnpm agent:runtime-boundary exits 0, and cargo check --locked --workspace --all-targets exits 0.

Submission Checklist

  • N/A: Tests added or updated. No behaviour change; the existing config tests cover it.
  • N/A: Diff coverage ≥ 80%. Import paths only; no new logic.
  • N/A: Coverage matrix updated. No feature change.
  • N/A: All affected feature IDs listed. No feature change.
  • No new external network dependencies introduced
  • N/A: Manual smoke checklist. No release-cut surface changed.
  • N/A: Linked issue. Red-main fix found by the pre-prod CF-BASE run.

Related

…fig API

The agent-runtime boundary forbids re-exporting upstream types from core.
Import ToolRendering privately in the context schema and name the harness
path where core uses it.
@tinysweeper

tinysweeper Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Tiny Sweeper review

Reviewed head: d90552e2950a4e02decf29c24b2e33155fa5450e

Verdict: Ready for maintainer review · Priority: none
Coverage: Reviewed 4 of 5 files; not reviewed: crates/openhuman….
Pull request purpose (title): fix(config): stop re…

Diagnostics and supporting details

Full summary

Pull request purpose (title): fix(config): stop re-exporting TinyAgents' ToolRendering from the config API (fixes red main). Tiny Sweeper completed its review; deterministic results follow.

Unreviewed paths

  • crates/openhuman-core/src/config/schema/mod.rs

Review snapshot

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

Completeness: Complete
Test assessment: Test coverage is assessed from changed tests and lane evidence; execution is not claimed without trusted check data.

What changed

The change is a visibility/import-surface refactor with no behavior change. In `config/schema/context.rs`, `ToolRendering` moves from a `pub use` to a private `use`, so `ContextSettings.summarizer_tool_rendering` and `SummarizerSettings.tool_rendering` still carry the upstream type while callers must name it from `tinyagents_harness`. `ToolRendering` is removed from the re-export lists in `config/schema/mod.rs` and `config/mod.rs`, and in `config/mod.rs` `SummarizerSettings` gains its own `pub use schema::SummarizerSettings;` line, reordering the re-export block for rustfmt stability. The two internal users now reference the harness path directly: the env overlay in `config/schema/load/env_overlay/context.rs` for the `full`/`markers` parsing of `OPENHUMAN_CONTEXT_SUMMARIZER_TOOL_RENDERING`, and the context-wiring test in `agent/tinyagents/context_wiring_tests.rs`. The same enum and variants are used throughout, so behavior is unchanged.

Features

  • Removed — Dropped `ToolRendering` re-export from the core config API: Callers can no longer name the type as `crate::config::ToolRendering` or `crate::config::schema::ToolRendering`; they must import it from `tinyagents_harness::summarization` directly, satisfying the boundary rule that forbids core from re-exporting upstream TinyAgents types. (crates/openhuman-core/src/config/mod.rs pub use schema::{, crates/openhuman-core/src/config/schema/mod.rs pub use channels::{)
  • Internal refactor — `ToolRendering` imported privately in the context schema: The upstream type is still used for the config fields, so the config surface is behaviorally identical while core no longer re-exports upstream types. (crates/openhuman-core/src/config/schema/context.rs)
  • Internal refactor — Env overlay names `ToolRendering` from the harness directly: Parsing of `full` and `markers` continues to produce the same `Full`/`Markers` variants, now resolved via the direct harness path. (crates/openhuman-core/src/config/schema/load/env_overlay/context.rs impl Config {)
  • Modified — Context-wiring test updated to the harness import path: The compaction-summary test constructs `SummarizerSettings` with the same `Markers` variant through the direct harness path after the re-export was removed. (crates/openhuman-core/src/agent/tinyagents/context_wiring_tests.rs async fn a_markers_compaction_sends_no_tool_output_and_caps_the_summary() {)
  • Internal refactor — `SummarizerSettings` re-export separated onto its own line in `config/mod.rs`: Splits the grouped re-export so the alphabetized group stays byte-identical and rustfmt-stable; `SummarizerSettings` remains publicly reachable from `config`. (crates/openhuman-core/src/config/mod.rs pub use schema::{)

Tests

  • consumer search — Confirms no in-tree consumer would fail to compile from the re-export removal.: The critique and security lanes (both answered, zero findings) report a repo-wide search finds no consumers of `config::ToolRendering`, and the tests lane notes the diff shows no call site left referencing `crate::config::ToolRendering`; the only remaining `ToolRendering` uses in `crates/` are direct upstream paths. (crates/openhuman-core/src/config/mod.rs pub use schema::{, crates/openhuman-core/src/config/schema/mod.rs pub use channels::{)

Findings

No active actionable findings.

Before merge

None.

Agent review details

critique

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: Critique lane is answered with 0 findings: the change only reorders and splits the `SummarizerSettings`/`ToolRendering` re-export, and a repo-wide search for `config::ToolRendering` finds no consumers, so removing it breaks nothing.
  • Lane summary: The diff only reorders and splits the re-export of `SummarizerSettings` / `ToolRendering` in `crates/openhuman-core/src/config/mod.rs`: `SummarizerSettings` gains its own `pub use schema::SummarizerSettings;` line and `ToolRendering` is dropped from the grouped re-export. A repo-wide search for `config::ToolRendering` finds no consumers, and `ToolRendering` is used only through `tinyagents_harness::summarization::ToolRendering` and `openhuman_core::config::schema::context` paths, so nothing is broken by removing it. The reordering is cosmetic. No defects found. _The code index is behind this pull request (indexed at `7ff837f4bc0b`), so retrieved context may be out of date._

security

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: Security lane is answered with 0 findings: only a `pub use` line is split and the `ToolRendering` re-export dropped, and since no in-repo code references `crate::config::ToolRendering`, no failing or misbehaving path is introduced.
  • Lane summary: This change only splits a `pub use` line so `SummarizerSettings` is re-exported on its own and drops the `ToolRendering` re-export from `crates/openhuman-core/src/config/mod.rs`. `ToolRendering` came from `tinyagents_harness::summarization` and no in-repo code references `crate::config::ToolRendering`, so no failing or misbehaving path is introduced; the edit is safe to merge. _The code index is behind this pull request (indexed at `7ff837f4bc0b`), so retrieved context may be out of date._

tests

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: Tests lane is answered with 0 findings: the change is a pure visibility/import-surface refactor with no behavior change, so no new test is warranted and existing env-overlay tests still pin the rendering mapping.
  • Lane summary: The change is a pure visibility/import-surface refactor: it deletes the `pub use tinyagents_harness::summarization::ToolRendering;` re-export, stops re-exporting `ToolRendering` from `config::schema` and `config::mod`, and updates the three in-repo call sites to name the upstream type directly. No behaviour changes — the same type is used everywhere — so no new test is warranted, and the existing tests that exercise the env overlay (`summarizer_tool_rendering_defaults_to_full_and_env_selects_markers`, `summarizer_settings_read_from_the_context_table_beside_the_harness_settings`) still pin the mapping. The diff shows no call site left referencing `crate::config::ToolRendering`; the only remaining `ToolRendering` uses in `crates/` are the direct upstream paths. _The code index is behind this pull request (indexed at `7ff837f4bc0b`), so retrieved context may be out of date._

commits

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: Commits lane is answered and reports no sensitive content in committed files.
  • Lane summary: No sensitive content in committed files. _The code index is behind this pull request (indexed at `7ff837f4bc0b`), so retrieved context may be out of date._

description

  • Conclusion: Success
  • Scope reviewed: all assigned evidence
  • Positive: Description lane is answered with 0 findings: the change is mechanical and consistent with the description's claim that core no longer re-exports the upstream type, and nothing in the diff calls into unseen code since re-exports are removed rather than replaced.
  • Lane summary: These two commits only drop `ToolRendering` from the `config` and `config::schema` re-export lists and add a `SummarizerSettings` re-export line; the change is mechanical and consistent with the description's claim that core no longer re-exports the upstream type. Nothing in the diff calls into code I have not seen — the re-exports are removed, not replaced — so no defect is apparent. _The code index is behind this pull request (indexed at `7ff837f4bc0b`), so retrieved context may be out of date._
Evidence and run details
  • Models: ladder/vectors-oai3, deepseek-v4.1-flash
  • Spend: $0.005653
  • Tokens: 133332 input · 3891 output · 45568 cached · 124 embedding
  • Updated: 2026-10-28T07:47:16Z
Head State Pass summary
5761ba298ffa ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 2026-10-28T07:32:25Z)
d90552e2950a ready for maintainer review 0 active finding(s), 0 resolved finding(s) (at 2026-10-28T07:47:16Z)

tinysweeper 0.1.2

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 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-28T07:34:06.317117Z 5761ba2 PR opened
ℹ️ 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.

@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: bcf7aad4-b229-4e27-866e-9cca557d0ba2
Commits

Reviewing files that changed from the base of the PR and between 5761ba2 and d90552e.

Files selected for processing: 1
  • crates/openhuman-core/src/config/mod.rs
Files skipped from review as they are similar to previous changes: 1
  • crates/openhuman-core/src/config/mod.rs

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.

Walkthrough

The configuration modules no longer publicly re-export ToolRendering. Environment mapping and the markers-compaction test now use tinyagents_harness::summarization::ToolRendering.

Changes: ToolRendering API and usage

Layer / File(s) Summary
Type imports, exports, and configuration mapping
crates/openhuman-core/src/config/mod.rs, crates/openhuman-core/src/config/schema/context.rs, crates/openhuman-core/src/config/schema/mod.rs, crates/openhuman-core/src/config/schema/load/env_overlay/context.rs, crates/openhuman-core/src/agent/tinyagents/context_wiring_tests.rs
The configuration modules stop publicly re-exporting ToolRendering. Environment values and the markers-compaction test use the TinyAgents type. The accepted environment values and test assertions remain unchanged.

Priority: Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Bug fix

Possibly related issues

Suggested labels: rust-core, agent

Suggested reviewers: senamakel

Merge Risk: Minimal · up to d9055

No actionable merge-blocking issue is identified; the change is ready for normal checks.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title names the main change: the config API no longer re-exports TinyAgents' ToolRendering type. The raw summary confirms this. The removal from config/mod.rs, config/schema/mod.rs, and config/sch…
Docstring Coverage Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title names the main change: the config API no longer re-exports TinyAgents' ToolRendering type. The raw summary confirms this. The removal from config/mod.rs, config/schema/mod.rs, and config/schema/context.rs matches the title, and the title's reference to fixing red main matches the PR objectives, which cite the static:agent-runtime-boundary violation from #8477. The title is specific and does not include a file list. It is 93 characters, which is longer than the usual short title, but it still reads clearly.

Full details: Docstring Coverage

Explanation

Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 2 functions across 4 files.

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

A rabbit checks the type,
The core exports less today.
Env values still map,
The test keeps markers in view,
And hops along its way.

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

@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.

Diagnostics

Total spend: $0.0095

@tinysweeper tinysweeper Bot added the priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. label Oct 28, 2026
@coderabbitai coderabbitai Bot added agent Built-in agents, prompts, orchestration, and agent runtime in src/openhuman/agent/. rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure. labels Oct 28, 2026
coderabbitai[bot]
coderabbitai Bot previously approved these changes Oct 28, 2026
@M3gA-Mind
M3gA-Mind merged commit 01078bf into tinyhumansai:main Oct 28, 2026
24 of 31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent Built-in agents, prompts, orchestration, and agent runtime in src/openhuman/agent/. priority: p3 Whenever. Cosmetic, a nicety, or a cleanup with no user visible effect. rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant