#16412: fix(config): align tools.web.fetch schema with firecrawl/readability settings
size: XS
Cluster:
Configuration Fixes and Enhancements
## Summary
- fix(config): align tools.web.fetch schema with firecrawl/readability settings
- Split from our `v2026.2.13` patch train as a single-purpose change for easier review.
## Why
- Keep the diff focused and low-risk so it can be merged or reverted independently.
## Scope
- Branch: `fix/tools-web-fetch-schema-firecrawl-readability-en`
- Files changed: 2
- Key files:
- `src/config/config.schema-regressions.test.ts`
- `src/config/zod-schema.agent-runtime.ts`
## Test Plan
- Suggested local command:
- `./node_modules/.bin/vitest run src/config/config.schema-regressions.test.ts`
- Validation status:
- [ ] CI checks pass
- [ ] Maintainer re-ran local tests
## Risk & Rollback
- Risk: low to medium; impact limited to touched module(s).
- Rollback: revert this PR commit(s) cleanly.
## Co-authorship
- Co-authored by @ciberponk and Codex (GPT-5).
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
Adds the missing `readability` and `firecrawl` fields to the `ToolsWebFetchSchema` Zod schema in `zod-schema.agent-runtime.ts`, aligning it with the TypeScript types already defined in `types.tools.ts` and the runtime consumption in `web-fetch.ts`. A corresponding regression test is added to `config.schema-regressions.test.ts`.
- The Zod schema fields match the TypeScript `ToolsConfig.web.fetch` type exactly — `readability` (boolean), and the `firecrawl` sub-object with `enabled`, `apiKey`, `baseUrl`, `onlyMainContent`, `maxAgeMs`, and `timeoutSeconds`.
- `firecrawl.apiKey` is correctly registered as `sensitive` for config redaction.
- The `.strict()` modifier on the firecrawl sub-object follows the existing pattern used throughout the schema file.
- No issues found — this is a straightforward schema alignment with no logic or behavioral changes.
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge — it only adds missing Zod schema fields to match existing types and runtime code, with a corresponding regression test.
- Score of 5 reflects that this is a minimal, focused change that brings the Zod validation schema into alignment with the already-defined TypeScript types and the runtime implementation. All new fields have correct types, constraints, and sensitivity annotations. The regression test validates the happy path. There are no logic changes, no new dependencies, and no behavioral changes.
- No files require special attention.
<sub>Last reviewed commit: 793e74d</sub>
<!-- greptile_other_comments_section -->
<!-- /greptile_comment -->
Most Similar PRs
#23534: fix(config): add firecrawl and readability fields to ToolsWebFetchS...
by slayoffer · 2026-02-22
91.2%
#10807: fix(config): coerce numeric meta.lastTouchedAt to ISO string
by mcaxtr · 2026-02-07
78.6%
#10943: fix(config): resolve Control UI "Unsupported schema node" for confi...
by kraftbj · 2026-02-07
77.4%
#12499: fix(config): add missing customBindHost to gateway Zod schema
by sfo2001 · 2026-02-09
76.3%
#20445: fix(tools): restore Firecrawl config schema and add FIRECRAWL_BASE_...
by heyhudson · 2026-02-18
76.2%
#10197: fix: add missing allowAgents to agent defaults subagents schema
by Yida-Dev · 2026-02-06
75.8%
#10056: fix: allow extra fields in HookConfig schema
by 7Sageer · 2026-02-06
74.8%
#22214: fix(tools): sanitize google-antigravity schemas for Gemini-compatib...
by Kansodata · 2026-02-20
74.8%
#19429: Fix/custom bind host validation
by frudas24 · 2026-02-17
73.6%
#20878: fix: Widen models.input to accept "video" and "audio" modalities
by marcodelpin · 2026-02-19
72.9%