dsh-reasoning-only-guard

Automated evidence available

Keeps one reasoning-only turn from making an entire session unusable. When a turn produces no visible text and no tool call, the assistant message is persisted empty, the gateway then rejects every later request in that session with 'content or tool_calls must be set', and the session is dead with no way back through chat. This plugin registers a single llm/stream waterfall listener and, only when the turn carried nothing visible, injects a small text block immediately before the terminal finish, so the persisted message is never empty. Ships the fixture DSH's own mock cannot express (a strictly reasoning-only SSE server, since llm-mock-server forbids an empty successText and always appends text after reasoning), plus an end-to-end reproduction that replays a real persisted session through DSH's own serializeMessages. Preventive, not a repair. Zero dependencies, one file, no process or filesystem access.

Author: apex-mochen · Sessions & Messages · Catalog snapshot: 2026-09-19

Canonical semantic path

Models & AI CapabilitiesRequest Reliability & Output Validation

One primary path; alternate capabilities remain separate.

What it may solve

Keeps one reasoning-only turn from making an entire session unusable. When a turn produces no visible text and no tool call, the assistant message is persisted empty, the gateway then rejects every later request in that session with 'content or tool_calls must be set', and the session is dead with no way back through chat. This plugin registers a single llm/stream waterfall listener and, only when the turn carried nothing visible, injects a small text block immediately before the terminal finish, so the persisted message is never empty. Ships the fixture DSH's own mock cannot express (a strictly reasoning-only SSE server, since llm-mock-server forbids an empty successText and always appends text after reasoning), plus an end-to-end reproduction that replays a real persisted session through DSH's own serializeMessages. Preventive, not a repair. Zero dependencies, one file, no process or filesystem access.

Imported third-party catalog description; not a Registry verification conclusion.

What can currently be confirmed

Active analysis coverage 4/5. Historical chains are retained but do not count toward current coverage.

Analysis complete

Source structure

Conclusion: The source structure check completed without finding a structural issue.

Analysis complete

Repository health

Conclusion: The GitHub repository is reachable and not archived. Public data: 0 stars, 3 commits, 0 forks, and 0 watches; latest commit 2026-09-15.

Analysis complete

npm release

Conclusion: This plugin has no npm package source, so this item does not apply.

Analysis complete

DSH compatibility

Conclusion: Compatibility verification did not pass: the bounded compatibility check did not pass. Test environment: DSH 0.1.6-alpha.2, web profile.

Analysis complete

Dependency audit

Conclusion: The dependency audit did not produce a complete report.

Not analyzed

Functional verification

The plugin’s advertised feature has not been automatically verified. Passing installation and startup does not prove that feature works.

Analysis complete

Static risk scan

Conclusion: The bounded static scan found none of its predefined risk signals. This is not proof of safety.

Analysis complete

Package integrity

Conclusion: Package structure or integrity validation did not pass.

Automated evidence is scoped to the named artifact, DSH target and profile. It is not a blanket safety or feature-completeness claim.

Continue with the latest plugin manager

Describe your task in a DSH conversation and mention dsh-reasoning-only-guard. After installing or updating the manager from npm latest, it can find this candidate through Registry, then inspect its actual source and version locally.

Install or update the plugin manager (latest)