Repository navigation
Releases: dch-labs/loopctl
Release list
v0.4.1
See CHANGELOG.md for full details.
Published to crates.io:
loopctl,
loopctl-derive,
loopctl-sqlite.
What's Changed
- fix: gate fs pre-reads, reclassify sequenced shell receipts, rescue blank and over-budget summaries by @bobrykov in #169
- fix: defer failing tghreshold passes and shrink sparse-boundary histo… by @bobrykov in #170
- feat: compaction immune attachments ride requests, history free by @bobrykov in #171
- feat: per-turn tool surface selection narrows the advertised and counted toolset by @bobrykov in #172
- feat: runtime mut tool registry with version, surface events, mcp pull sync by @bobrykov in #173
- feat: mcp structured content validated against output schema on both lanes, policy-gated by @bobrykov in #174
- feat: keyword selector gains synonym expansion and a hybrid core set by @bobrykov in #175
- feat: async tool selection - the companion, EmbeddingSelector, and the budget-gated RewritingSelector by @bobrykov in #176
- fix: fs path-key alias tolerance - canonical precendence, teaching errors, bounded echo by @bobrykov in #177
- feat: edit match repair with echoing errors and tolerant matches by @bobrykov in #179
- feat: compaction output never carries adjacent assistant messages by @bobrykov in #180
Full Changelog: v0.4.0...v0.4.1
v0.4.0
See CHANGELOG.md for full details.
Published to crates.io:
loopctl,
loopctl-derive,
loopctl-sqlite.
What's Changed
- feat: add per-turn stop_reason by @bobrykov in #121
- transport fallback by @bobrykov in #122
- feat: derive hardening round, MockApiClient streaming capture by @bobrykov in #123
- feat: cassette record/replay harness for provider wire contracts by @bobrykov in #124
- fix: cassette corpus review fixes (drivers, excludes, docs, scanner) by @bobrykov in #125
- feat: golden request-bytes gate, registration-order tool schemas by @bobrykov in #126
- feat: grammar fails loud at construction, two-envelope docs, honest smoke claim by @bobrykov in #127
- feat: verifier builtins, fallback breaker invariants, detection reach, both-ways knobs by @bobrykov in #128
- fix: race compaction against cancellation, pin the invariants by @bobrykov in #129
- feat: non_exhaustive across the 22-type widening surface, with constructors by @bobrykov in #130
- feat: eviction-to-memory demotion sink with hardened model-switch and redaction fixes by @bobrykov in #131
- fix: cancelled and failed rusn salvage completed turns by @bobrykov in #132
- feat: observable compaction by @bobrykov in #133
- feat: default profile flip by @bobrykov in #134
- feat: manifest model v1 by @bobrykov in #135
- feat: builtin read tool by @bobrykov in #136
- feat: fs tool family by @bobrykov in #137
- fix: grade non-linux contained reads by the opened handle's identity by @bobrykov in #138
- feat: observer event hub - callbacks as sequenced broadcast events by @bobrykov in #139
- feat: per event trajectory ledger by @bobrykov in #140
- feat: thinking effort dial, reasoning replay, attempt reset signal, redaction hardening by @bobrykov in #141
- feat: context-size visibility, machine getter, loop passthrough, turn… by @bobrykov in #144
- feat: determinism seams, injectable clocks, id gen, rng for byte-stable replay by @bobrykov in #145
- fix: tool name consistency by @bobrykov in #146
- deps(deps): update jsonschema requirement from 0.56 to 0.57 by @dependabot[bot] in #143
- deps(deps): update base64 requirement from 0.22 to 0.23 by @dependabot[bot] in #142
- fix: right-size default window, drop the byte cap cause claim by @bobrykov in #147
- feat: probe the model context window by @bobrykov in #148
- feat: middleware permission gate by @bobrykov in #149
- feat: park hook asks on an external approver by @bobrykov in #150
- feat: add qa summarzer 3 step compactor by @bobrykov in #151
- feat: add structured summarizer compactor by @bobrykov in #152
- feat add vector memory store and hnsw companion by @bobrykov in #153
- feat: real embedders for semantic memory for ollama and openai by @bobrykov in #154
- feat: search memories tool by @bobrykov in #155
- feat: add glob, code search and tree tools behind search_tools by @bobrykov in #156
- feat: shell and job tools by @bobrykov in #157
- deps(deps): update jsonschema requirement from 0.57 to 0.58 by @dependabot[bot] in #158
- fix: surface compaction failures by @bobrykov in #159
- feat: add budget gate consulted before model request by @bobrykov in #160
- feat: add budget gate consulted before model request by @bobrykov in #161
- feat: loopctl-vector companion with qdrant and pgvector backends by @bobrykov in #162
- feat: carry machine's history to turn-end events by @bobrykov in #163
- feat: loopctl client companion wrapping the daemon wire protocol by @bobrykov in #164
- feat: typed retention, pinnedcontent, rolling compactor, enforced lan… by @bobrykov in #165
- feat: usage-calibrated context estimates, session-scoped reasoning retention, compaction target by @bobrykov in #166
- feat: usage-anchored context accounting, tool output pruning, overflow turn salvage by @bobrykov in #167
- chore: cut 0.4.0, companion crates under /crates, version bump, changelog assembled by @bobrykov in #168
Full Changelog: v0.3.2...v0.4.0
v0.3.2
See CHANGELOG.md for full details.
Published to crates.io:
loopctl,
loopctl-derive,
loopctl-sqlite.
What's Changed
- feat: memory extractor and consolidation primitives by @bobrykov in #112
- feat: frame provider-derived memories as untrusted and add an exclusi… by @bobrykov in #117
- feat: add persistent memory backends by @bobrykov in #118
- feat: add BareLoop::from_machine_with_managers by @bobrykov in #120
- deps(deps): update jsonschema requirement from 0.52 to 0.56 by @dependabot[bot] in #119
Full Changelog: v0.3.1...v0.3.2
v0.3.1
See CHANGELOG.md for full details.
Published to crates.io.
What's Changed
- feat: profile builderswith profile seed by @bobrykov in #105
- feat: trajectory capture by @bobrykov in #106
- feat: think tool behind the builtin_tools feature by @bobrykov in #107
- feat: prompted structured output with corrective retry by @bobrykov in #108
- Feat/token counter presets by @bobrykov in #109
- feat: vector primitives behind the vector_index feature by @bobrykov in #110
- Fix/redaction minimal regex unicode by @bobrykov in #111
- deps(deps): update jsonschema requirement from 0.50 to 0.52 by @dependabot[bot] in #102
- deps(deps): update syn requirement from 2 to 3 by @dependabot[bot] in #101
Full Changelog: v0.3.0...v0.3.1
v0.3.0
See CHANGELOG.md for full details.
Published to crates.io.
What's Changed
- Feat/mcp tool server by @bobrykov in #73
- fix: no-op compaction and a default context manager by @bobrykov in #74
- fix: shared classify http errors, respect Retry-After header, surface… by @bobrykov in #75
- fix: total timeouts fail once with real progress counts, duration spa… by @bobrykov in #76
- fix: keep text with tool results, omit empty tools, is_error flag, tr… by @bobrykov in #77
- fix: streamed usage latch, thought routing, compact SSE forms, Gemini… by @bobrykov in #78
- fix: lenient JSON scanner mixed nesting, required union; scored live … by @bobrykov in #79
- fix: OpenAI text+tool streams keep arguments; accumulator routes by k… by @bobrykov in #80
- fix: next_step re-polls return the same tool calls, tool results feed… by @bobrykov in #81
- feat: fallback breaker routes, recovers, advances the chain, fails ty… by @bobrykov in #82
- Fix/detection false positives by @bobrykov in #83
- fix: failed and truncated streams, mid-stream error chunks surfaced a… by @bobrykov in #86
- Fix/middleware output shaping by @bobrykov in #87
- Fix/long tail fixes by @bobrykov in #88
- Fix/temp dir lifecycle by @bobrykov in #89
- deps(deps): update jsonschema requirement from 0.49 to 0.50 by @dependabot[bot] in #85
- Feat/redacting middleware by @bobrykov in #90
- fix: memoized results answer the requesting call; engine stamps tool_… by @bobrykov in #91
- feat: wire the unwired — breaker gate, safety shield middleware, hook… by @bobrykov in #92
- Feat/request overhead accounting by @bobrykov in #93
- fix: tool registry tool list added, rejected model switches fail loud… by @bobrykov in #94
- feat: MockApiClient serves canned responses to structured requests; s… by @bobrykov in #95
- feat: propagate lock poisoning as LockPoisoned — fallback, detection,… by @bobrykov in #96
- feat: derive tool macro by @bobrykov in #97
- feat: bedrock, azure, moonshot ai providers by @bobrykov in #98
- test: pin census-flagged behaviors and unpinned doc promises by @bobrykov in #99
- Release/0.3.0 prep by @bobrykov in #100
Full Changelog: https://github.com/dch-labs/loopctl/commits/v0.3.0
v0.2.1
See CHANGELOG.md for full details.
Published to crates.io.
What's Changed
- fix: remove clippy allows by @bobrykov in #66
- Fix/docs consistency by @bobrykov in #67
- feat: clamp compact threshold by @bobrykov in #68
- fix: harden detection layer and rate limit refill clock by @bobrykov in #69
Full Changelog: v0.2.0...v0.2.1
v0.2.0
See CHANGELOG.md for full details.
Published to crates.io.
What's Changed
- fix: docs by @bobrykov in #37
- feat: add dependabot by @bobrykov in #38
- ci(deps): bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #39
- ci(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in #40
- feat: text delta event added to observer trait by @bobrykov in #42
- deps(deps): update reqwest requirement from 0.12 to 0.13 by @dependabot[bot] in #41
- feat: on tool call added, cancelled loop state, decomposition of stre… by @bobrykov in #43
- feat: add rate limiting error handling by @bobrykov in #44
- refactor: consolidatate cancellation by @bobrykov in #45
- feat: rate limit escalation circuit breaker by @bobrykov in #46
- feat: add proactive rate-limit by @bobrykov in #47
- feat: parallel dispatch by @bobrykov in #48
- feat: add structured output by @bobrykov in #49
- feat: grammar provider by @bobrykov in #50
- feat: add llm reflector by @bobrykov in #51
- feat: add verify middleware by @bobrykov in #52
- feat: add memoize middleware, drop parking_lot dep by @bobrykov in #53
- feat: context contributor added, clippy MSRV 1.94 by @bobrykov in #54
- feat: profile presets; NoopVerifer, NoopPathExtractor by @bobrykov in #55
- feat: add display hint by @bobrykov in #56
- chore: soft error carries hints, duplicate flag removal, drop serde r… by @bobrykov in #57
- feat: add thinking delta by @bobrykov in #59
- deps(deps): update jsonschema requirement from 0.30 to 0.48 by @dependabot[bot] in #58
- feat: connection pooling by @bobrykov in #60
- chore: refine builders by @bobrykov in #61
- state machine refactor by @bobrykov in #62
- deps(deps): update jsonschema requirement from 0.48 to 0.49 by @dependabot[bot] in #63
- Chore/stream handler cleanup by @bobrykov in #64
- feat: streaming dep optional, non streaming path, streaming flag, rel… by @bobrykov in #65
New Contributors
- @dependabot[bot] made their first contribution in #39
Full Changelog: v0.1.0...v0.2.0
v0.1.0
See CHANGELOG.md for full details.
Published to crates.io.
What's Changed
- ci: add github actions ci pipeline by @bobrykov in #1
- feat: add message module by @bobrykov in #2
- feat: add error.rs by @bobrykov in #3
- feat: add agent observer traits by @bobrykov in #4
- Feat/api error by @bobrykov in #5
- feat: builder error by @bobrykov in #6
- feat: builder features by @bobrykov in #7
- feat: convergence using Jaccard similarity by @bobrykov in #8
- feat: add loop detector by @bobrykov in #9
- feat: add fallback manager by @bobrykov in #10
- feat: add llm stream handling by @bobrykov in #11
- feat: core types added by @bobrykov in #12
- feat: detection manager added by @bobrykov in #13
- feat: agent memory added by @bobrykov in #14
- Feat/tool module by @bobrykov in #15
- feat: api client module added by @bobrykov in #16
- feat: simple memory and observer impl by @bobrykov in #17
- feat: test utilities and helpers added by @bobrykov in #18
- feat: bare loop, tokio dep added, clean up by @bobrykov in #19
- feat: tool middleware pipeline by @bobrykov in #20
- chore: testing module cleanup by @bobrykov in #21
- feat: compact by @bobrykov in #22
- feat: observability traits added by @bobrykov in #23
- feat: stream handler added by @bobrykov in #24
- feat: stream heartbeat wrapper by @bobrykov in #25
- feat: add reflection by @bobrykov in #26
- feat: wire up bare loop with reflection, observability and event sink by @bobrykov in #27
- feat: add truncate middleware by @bobrykov in #28
- feat: wire up stream handler in bare loop by @bobrykov in #29
- feat: hooks added by @bobrykov in #30
- feat: tool health added by @bobrykov in #31
- feat: add interactivity, wire hooks and tool health into bare.rs by @bobrykov in #32
- feat: tool shield by @bobrykov in #33
- chore: unify tool call result into tool dispatch result by @bobrykov in #34
- feat: add detection to bundle.rs and wire up in bare.rs by @bobrykov in #35
- refactor by @bobrykov in #36
New Contributors
Full Changelog: https://github.com/dch-labs/loopctl/commits/v0.1.0