v0.1.16 — the adapter never compacts
Pins an architectural boundary that was intended but unenforced: this plugin
never compacts.
As an adapter it owns the provider seam and nothing else. What a conversation
should contain is dsh-compaction-basic's decision, driven by the token meter and
by the overflow code reported here. Nothing stopped a future change from trimming
history to make a request fit, which would discard turns the harness still
believes it has and hide the overflow that triggers recovery.
Audit
The only byte limits in the plugin are the event-stream frame guard, HTTP
content-length, and the web API's request-body cap. No message or history
trimming exists anywhere in it.
Now enforced by tests
- every message reaches the wire for a mixed tool conversation
- a conversation over 2 MB is sent in full rather than trimmed, so the provider's
refusal is what starts recovery - an orphaned tool result is kept as text rather than discarded
- the only omission is the legacy
[system: conversation continues]padding this
plugin itself once authored, because replaying it teaches the model to reproduce it - the overflow path contributes exactly one error code, with no retry and no edit
- the plugin injects nothing but
llm
Both READMEs now state the boundary and its single deliberate exception.
Verification
npm run check: 184 tests pass (8 live probes skipped), plus typecheck, build and
syntax checks.
Install
dsh plugin --profile <name> add github:dat-lequoc/dsh-kiro#v0.1.16Artifact checksum
sha256 4a1ee31c3baf7d1f4f38a018477b8697af7b33e1d1c22d327de2e5618534ff70 dsh-kiro-0.1.16.tgz