You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
[stage 2] Delete the deprecated, inert chatbot key maxToolRoundtrips (gated on the stage-1 deprecation shipping) #5919
Blocked-by: #5605 stage 1 shipping in a release (PR #5918). Do not start this before then.
Stage 2 of the two-stage retirement of the inert chatbot key maxToolRoundtrips, per the maintainer's 2026-08-22 item-13 ruling that retiring a published surface is deprecate-for-a-release, then delete.
Why it is being retired (measured in #5605, not re-litigate-able here)
The key cannot be honoured from this repo. @ai-sdk/react's useChat takes ChatInit plus throttle/resume, and ChatInit declares exactly one loop control — the boolean predicate sendAutomaticallyWhen — and no numeric cap under any spelling; the numeric knob was removed from useChat in a major, and its successor became stopWhen / stepCountIs, declared only on the server-side generateText / streamText / tool-loop-agent settings. ObjectUI is backend-agnostic, so it owns no server loop either. The platform's working cap is planning.maxIterations on the agent.
What stage 2 deletes — in one pass, no half-removal
packages/types/src/complex.ts — the ChatbotSchema.maxToolRoundtrips interface field.
packages/types/src/zod/complex.zod.ts — the zod declaration.
packages/plugin-chatbot/src/renderer.tsx — all three maxToolRoundtrips: schema.maxToolRoundtrips call sites.
packages/plugin-chatbot/src/useObjectChat.ts — the option, the destructure, and the stage-1 deprecation notice (warnMaxToolRoundtripsInert, resetMaxToolRoundtripsWarning, and its useEffect).
content/docs/plugins/plugin-chatbot.mdx — both locations.
packages/plugin-chatbot/src/__tests__/useObjectChat.maxToolRoundtrips.test.tsx — the stage-1 pin, which is written to fail on exactly this deletion.
⚠️ One measured trap for whoever takes this
BaseSchema is .passthrough() (packages/types/src/zod/base.zod.ts:197), so deleting the declaration will not make an authoring document fail — a document setting maxToolRoundtrips keeps parsing green, silently. Do not expect a parse error to signal the removal, and do not add one on the way past: a strictness change is a separate, much wider decision. This was measured during stage 1 — an assertion built on the opposite assumption passed while the declaration was ablated away.
Consequently the stage-1 pin asserts ChatbotSchema.shape membership rather than a parse result. Stage 2 should delete that test rather than try to keep it green.
Done when
The key appears nowhere in packages/, content/docs/, with a changeset, and the deprecation notice is gone with it.
Triage (daily round, session session_01Kktexqp6uVuFMztvvTMf3V, 2026-08-24): stage-2 deletion gated on stage-1 shipping in a release (same class as #5892) → pm:on-hold added on existing domain:ui, Task.
Restart-when: a published @object-ui/* release carries the stage-1 maxToolRoundtrips deprecation (re-check the chatbot package changelog on npm), then re-run the zero-importer measurement Restart-touch: the chatbot schema/types files named in the body
Activity
claude commentedon Aug 24, 2026
Triage (daily round, session
session_01Kktexqp6uVuFMztvvTMf3V, 2026-08-24): stage-2 deletion gated on stage-1 shipping in a release (same class as #5892) →pm:on-holdadded on existingdomain:ui, Task.Restart-when:a published@object-ui/*release carries the stage-1maxToolRoundtripsdeprecation (re-check the chatbot package changelog on npm), then re-run the zero-importer measurementRestart-touch:the chatbot schema/types files named in the bodyGenerated by Claude Code