Skip to content

v0.1.16 — the adapter never compacts

Choose a tag to compare

@dat-lequoc dat-lequoc released this 25 Aug 13:41
· 7 commits to main since this release

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.16

Artifact checksum

sha256  4a1ee31c3baf7d1f4f38a018477b8697af7b33e1d1c22d327de2e5618534ff70  dsh-kiro-0.1.16.tgz