Skip to content

Releases: AgentsMesh/Loopal

v0.6.3

12 Jun 10:15
6ce6b14

Choose a tag to compare

What's Changed

  • fix(acp): replay config observables on cold-start so selectors show current values by @yishuiliunian in #199

Full Changelog: v0.6.2...v0.6.3

v0.6.2

12 Jun 08:48
844e908

Choose a tag to compare

What's Changed

  • fix(acp): round-trip permission_mode + derive permissionModes from VARIANTS by @yishuiliunian in #198

Full Changelog: v0.6.1...v0.6.2

v0.6.1

11 Jun 15:36
f650557

Choose a tag to compare

What's Changed

  • refactor(protocol): type sub-agent completion as MessageSource::AgentResult by @yishuiliunian in #196
  • fix(acp): advertise permissionModes capability + handle set_permission_mode by @yishuiliunian in #197

Full Changelog: v0.6.0...v0.6.1

v0.6.0

11 Jun 02:29
5297ec8

Choose a tag to compare

What's Changed

  • test: restore 32 e2e compaction tests + fix rehydrate partial_note regression by @yishuiliunian in #184
  • test: restore build_kernel_depth_test (7 tests, originally from #179) by @yishuiliunian in #185
  • feat(tui): arrow-key nav for tool-permission prompt + close P0 audit gaps by @yishuiliunian in #186
  • test(hub-vault): add HubVaultService unit coverage (14 tests) by @yishuiliunian in #187
  • feat(memory): event-sourced associative recall + importance tool + arch cleanup by @yishuiliunian in #188
  • fix(runtime): close turn-lifecycle cancellation contract gaps by @yishuiliunian in #189
  • fix(runtime): unfreeze TUI after /compact and resume; observability sweep by @yishuiliunian in #190
  • fix(tui): show "Compacting" status during compaction instead of Idle by @yishuiliunian in #191
  • fix(cluster): surface remote spawn LLM errors & fix self-target spawn deadlock by @yishuiliunian in #192
  • fix(provider): replay reasoning blocks so web_search/thinking survive multi-turn by @yishuiliunian in #193
  • feat(runtime): runtime-switch permission/decision/sandbox modes via TUI + ACP by @yishuiliunian in #194
  • feat(acp): AgentsMesh _loopal/* control-panel extension by @yishuiliunian in #195

Full Changelog: v0.5.0...v0.6.0

v0.5.0 - Turn-as-Unit SSOT + 200-line discipline

26 May 13:53
37bc534

Choose a tag to compare

Highlights

Architecture enforcement (8-phase plan)

  • Move TurnTracker into loopal-context so TurnStore mutators are pub(crate) — runtime crates cannot bypass the tracker at compile time.
  • Retire ContextStore::from_messages; tests seed history via loopal_test_support::seed_history.
  • tests/architecture_boundary_test.rs greps for cross-layer wire-type leaks (MessageRole/ContentBlock outside provider/display/context layers).
  • Wire-only mutations (microcompact, condense_server_blocks) now flow through TurnTracker::with_wire_mut so the ephemeral path also honors the SSOT contract.
  • Re-derive open ToolBatch step on TurnTracker::new/replace_store so resume-mid-batch correctly routes update_tool_state.

File-size + comment discipline

  • 10 source files split into directory modules: turn_event_store, turn_store, turn_tracker, turn_projection, request_turns, compaction, compact_rehydrate, ingestion, turn_degradation, resolver.
  • Sibling extractions: SettleSignal, mcp_settle, session_start_prompt.
  • All src/**/*.rs files ≤200 lines.
  • Module-level //! blocks and /// docs that restate signatures stripped per HARD RULE — code is SSOT.

Dead-code removal

  • Dropped provider-api::Middleware trait, ContextStore pipeline / config_refresh / degradation / ingestion middleware, governance::compensation.

Breaking changes

  • loopal_runtime::agent_loop::turn_tracker moved to loopal_context.
  • ContextStore::{from_messages, clear, truncate} removed.
  • Internal middleware modules retired (see above).

Stats

49 commits since v0.4.0 · Net -2904 lines in #183 alone.

Full diff: v0.4.0...v0.5.0

What's Changed

  • fix(goals): trigger continuation kickoff on Create/Resume/Extend control by @yishuiliunian in #138
  • refactor(permission): decompose into orthogonal Permission × Decision axes by @yishuiliunian in #139
  • refactor(decision): split Auto into Classifier and Agent with race-to-respond UX by @yishuiliunian in #140
  • fix(events): repair /clear and seal Control→Event→View drift by @yishuiliunian in #141
  • feat(memory): codify SNR + latent structure as Prime Axioms by @yishuiliunian in #142
  • refactor(git): move gitignore SSOT into .loopal/.gitignore by @yishuiliunian in #143
  • refactor(view-state): silence allow-path decision echoes by @yishuiliunian in #144
  • fix(logging): never delete .log files held by live processes by @yishuiliunian in #145
  • fix(tools): restore WebSearch and make Fetch actually download pages by @yishuiliunian in #146
  • feat(prompt): introduce core/soul.md with five Prime Axioms by @yishuiliunian in #147
  • feat(askuser): strict schema validation + multi-question segment UI by @yishuiliunian in #148
  • fix(tui): guard render paths against tiny terminals by @yishuiliunian in #149
  • fix(spawn): split permission_mode and decision_mode into independent params by @yishuiliunian in #150
  • refactor(arch): 9 architecture debts + 5 review cycles + 200-line split by @yishuiliunian in #151
  • refactor(scheduler): async save worker + test consolidation by @yishuiliunian in #152
  • fix(scheduler): remove wait_idle from startup path by @yishuiliunian in #153
  • feat(provider): add OPENAI_BASE_URL env var and GPT-5.5 model by @yishuiliunian in #154
  • refactor(tools): split ReadPdf and ReadHtml out of Read tool by @yishuiliunian in #155
  • fix(tools): treat empty process_id as absent in Bash tool by @yishuiliunian in #156
  • refactor(tools): TypedTool trait + input/schema normalization by @yishuiliunian in #158
  • fix(provider): preserve OpenAI reasoning item for web_search_call multi-turn by @yishuiliunian in #159
  • fix(tool-api): ensure object schemas always include properties field by @yishuiliunian in #160
  • fix(provider): flush each OpenAI reasoning item as independent Thinking block by @yishuiliunian in #161
  • feat(tui): persist /model picker selection + fix release-event double-fire by @yishuiliunian in #162
  • feat(vault): zero-trust secret subsystem so plaintext never reaches LLM by @yishuiliunian in #163
  • refactor(cli): bring vault into clap subcommand tree + arg help by @yishuiliunian in #164
  • refactor(goal): remove token budget subsystem by @yishuiliunian in #165
  • feat(bg-task): per-session log files + actor-based process supervision by @yishuiliunian in #166
  • feat(goal): allow Complete → Active reopen so model can recover from premature complete by @yishuiliunian in #167
  • fix(ipc): typed RpcError + auto-respond contract so missing-session fails fast by @yishuiliunian in #168
  • refactor(goal): drop barren-driven auto-complete by @yishuiliunian in #169
  • feat(soul): add Axiom 6 — see systems, not parts by @yishuiliunian in #170
  • feat(tui-panel): unify Cron/Task/BgTask detail sub-pages with stop action by @yishuiliunian in #171
  • fix: scroll slash command menu + isolate cleanup_orphans flaky by @yishuiliunian in #172
  • refactor(governance): split TurnObserver into Governance + TurnHook with 6 enforced invariants by @yishuiliunian in #173
  • feat(compact): three-tier defense + boundary marker + API token feedback for 1M-context sessions by @yishuiliunian in #175
  • feat(tool-image): add ReadImage tool + multimodal image channel for LLM by @yishuiliunian in #174
  • feat(mcp): non-blocking startup + sub-agent proxy + actionable diagnostics by @yishuiliunian in #176
  • fix(tui-askuser): Enter confirms default option without prior ↑↓ by @yishuiliunian in #177
  • refactor(tools-fs): typed paths + batch IO + virtual-FS ApplyPatch + actionable errors by @yishuiliunian in #178
  • feat(hub): move Vault + MCP to Hub process with sharing model by @yishuiliunian in #179
  • feat(agent-loop): ContinuationGate + DegenerationDetector + request_idle by @yishuiliunian in #180
  • refactor(bootstrap): root-cause hub-only handshake deadlock via typestate + IpcBudget by @yishuiliunian in #181
  • fix(agent-loop): /goal replace + request_idle turn-end + intercept emit invariant by @yishuiliunian in #182
  • refactor: enforce Turn-as-Unit SSOT + 200-line file discipline by @yishuiliunian in #183

Full Changelog: v0.4.0...v0.5.0

v0.4.0

07 May 16:40
54fd87b

Choose a tag to compare

What's Changed

  • feat(prompts): proactively trigger explore sub-agent for codebase research by @yishuiliunian in #129
  • fix(spawn): propagate --no-sandbox to all sub-agents by @yishuiliunian in #130
  • feat(askuser): inline UI + structured response protocol by @yishuiliunian in #131
  • feat(tools): scenario-aware truncation + fetch LLM refiner by @yishuiliunian in #132
  • refactor(runtime): turn state machine + decouple prefill from thinking by @yishuiliunian in #134
  • refactor(hub): standalone Hub subprocess + detach/kill lifecycle by @yishuiliunian in #133
  • feat(goals): thread-level goal tracking with auto-continuation and budget accounting by @yishuiliunian in #135
  • fix(goals): unblock /goal pipeline and unify command reply channel by @yishuiliunian in #136
  • refactor(cli): split passthrough by consumer + reflective completeness tests by @yishuiliunian in #137

Full Changelog: v0.3.0...v0.4.0

v0.3.0

05 May 06:32

Choose a tag to compare

What's Changed

Full Changelog: v0.2.0...v0.3.0

v0.2.0

16 Apr 09:06

Choose a tag to compare

What's Changed

Full Changelog: v0.1.1...v0.2.0

v0.1.1

15 Apr 01:47

Choose a tag to compare

What's Changed

  • fix(ci): patch rules_rust to fix Windows build PATH overflow by @yishuiliunian in #97
  • feat(memory): upgrade sidebar memory agent to Knowledge Manager by @yishuiliunian in #98
  • refactor: enforce child process stderr isolation to protect TUI by @yishuiliunian in #99
  • feat(agent): depth-limited spawning, hub budget, and fork context by @yishuiliunian in #100

Full Changelog: v0.1.0...v0.1.1

v0.1.0

11 Apr 10:00

Choose a tag to compare

What's Changed

  • fix: align macOS seatbelt sandbox with Codex whitelist policy by @yishuiliunian in #58
  • fix: ESC interrupt lost + background agent results not delivered to root by @yishuiliunian in #59
  • feat: centralized FocusMode state machine for TUI input dispatch by @yishuiliunian in #60
  • feat: enhance Plan mode with 5-phase workflow, hard enforcement, and user approval by @yishuiliunian in #61
  • feat: MetaHub distributed agent cluster + execution mode refactoring by @yishuiliunian in #62
  • feat: enhance Agent tool call display with name, spinner, and live progress by @yishuiliunian in #63
  • fix: sub-agent returning empty output when final LLM response has no text by @yishuiliunian in #64
  • feat: background task architecture refactoring by @yishuiliunian in #65
  • feat: enable topology overlay by default by @yishuiliunian in #66
  • refactor: replace raw u64 timeouts with Duration for type-safe time handling by @yishuiliunian in #68
  • feat: display full thinking content in TUI by @yishuiliunian in #67
  • feat: add diff preview for MultiEdit, Write, and ApplyPatch in TUI by @yishuiliunian in #69
  • refactor: simplify macOS Seatbelt sandbox from whitelists to blanket allows by @yishuiliunian in #70
  • feat: add table cell borders and centralize markdown styles by @yishuiliunian in #71
  • fix: resolve /exit 5-second delay by properly closing transport writer by @yishuiliunian in #72
  • feat: agent-type-aware system prompt with fragment selection by @yishuiliunian in #73
  • fix(skill): add conflict detection to github-pr by @yishuiliunian in #74
  • feat: upgrade hook system with multi-executor types, structured output, and event telemetry by @yishuiliunian in #75
  • fix(provider): resilient HTTP client with auto-rebuild on pool corruption by @yishuiliunian in #76
  • feat: enhance prompt system with feature-conditional fragments and enriched tool descriptions by @yishuiliunian in #77
  • feat: add session resume as agent-level capability with /resume command by @yishuiliunian in #78
  • fix(tui): Up/Down keys navigate history instead of scrolling content by @yishuiliunian in #79
  • feat(tui): add session picker for /resume + auto session titles by @yishuiliunian in #80
  • feat(tui): add full-screen tabbed /status sub-page by @yishuiliunian in #81
  • fix(runtime): detect SSE stream truncation and auto-continue from partial response by @yishuiliunian in #82
  • refactor: deliver messages directly to agent mailbox, remove TUI inbox routing by @yishuiliunian in #84
  • feat(sandbox): replace hard denies with permission-gated RequiresApproval by @yishuiliunian in #83
  • fix(tui): decouple mouse scroll from input history via timing-based debounce by @yishuiliunian in #85
  • feat(prompt): add concurrency discipline for sub-agent spawning by @yishuiliunian in #86
  • feat(agent): depth-aware delegation + StartAgentParams refactor by @yishuiliunian in #87
  • fix(tui): replace scroll debounce with batch detection and absolute position indexing by @yishuiliunian in #88
  • fix(tui): replace alternate scroll heuristic with MouseCapture by @yishuiliunian in #89
  • fix(provider): thinking-mode prefill rejection + error misclassification by @yishuiliunian in #90
  • docs(readme): fix tool count, sandbox policies and expand feature coverage by @yishuiliunian in #92
  • fix(hub): close transport after IO loop to prevent sub-agent process leak by @yishuiliunian in #93
  • fix(config): flaky test due to LOOPAL_MODEL env var race by @yishuiliunian in #94
  • feat(telemetry): OpenTelemetry integration with JSONL file export by @yishuiliunian in #95
  • fix(runtime): decouple tool dispatch from permission to prevent duplicate tool_result by @yishuiliunian in #96

Full Changelog: v0.0.1-alpha.2...v0.1.0