Repository navigation
chat.md (EN+TR) documents a chat: config block with history_file persistence that does not exist (CR-A01-014) #424
Description
Wave 1 · theme D1-8: Docs describing features that do not exist (doc side of code findings) · highest severity High · 1 finding(s) · effort small
Summary
An operator adds the documented chat: block (or output: cost_tracking:) to a training YAML. The run exits 1 with extra_forbidden, and the docs CI stays green.
Primary finding
CR-A01-014 — chat.md (EN+TR) documents a chat: config block with history_file persistence that does not exist
severity High · reachability default · intent contract-violation · confidence confirmed · independently confirmed · reproduced end to end · already tracked: KNOWN-OPEN C31-DOC-SCHEMA-PROSE — docs/roadmap/phase-16-trust-surface-hardening.md:785-786 (S15 open)
What happens. chat.md:40-47 documents a chat: YAML block (default_* settings, history_file). ForgeConfig (config.py:1604-1645, extra='forbid') has no chat field, forgelm chat loads no YAML, and history is kept only in memory (chat.py:69). The usermanual schema-drift guard skips unknown top-level keys, so it does not flag the block.
Where.
docs/usermanuals/en/deployment/chat.md:39-48docs/usermanuals/tr/deployment/chat.md:39-48forgelm/config.py:1605-1606tools/check_usermanual_schema_drift.py:301-304docs/usermanuals/en/operations/gpu-cost.md:37-45docs/usermanuals/en/operations/gpu-cost.md:124-133forgelm/config.py:1604forgelm/cli/_parser.py:35-67forgelm/chat.py:69docs/usermanuals/en/deployment/chat.md:80
Evidence.
- ForgeConfig(**minimal, chat={...}) -> ValidationError 'chat: Extra inputs are not permitted [type=extra_forbidden]'.
check_usermanual_schema_drift.py --stricton a private copy -> 'OK: 180 yaml block(s) ... every recognised ForgeConfig key path resolves', exit 0. A scan of all usermanual yaml fences listed non-ForgeConfig top-level keys at chat.md:40, gpu-cost.md:38/97/111/125, gdpr.md:30 and troubleshooting.md:112 (EN and TR). `rg cost_tracking|rate_per_hour|gpu_profiles|history_file forgelm… - --dry-run on a config with the documented block -> 'chat: Extra inputs are not permitted [extra_forbidden]'. rg history_file over forgelm/ finds nothing.
Recommended fix. Delete the chat: block from chat.md EN and TR. Make the guard fail, or require an explicit allow-marker, on a fence whose top-level keys look like a ForgeLM config but are not ForgeConfig fields, while still exempting CI, docker-compose and similar fences. Then triage the gpu-cost, gdpr and troubleshooting blocks.
Acceptance criteria
- A regression test reproduces the failure scenario and asserts the corrected behaviour.
- Documentation listed above is corrected in English and in its Turkish mirror in the same PR.
- Every finding in this issue is resolved or explicitly closed with a reason.
Found by the October 2026 ForgeLM code and documentation review against commit cab2947. Code links point at that commit; line numbers may have moved since. Finding IDs (CR-…, DOC-…, TECH-…) are stable references for this backlog.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTodo
Activity