Releases: AgentsMesh/Loopal
Releases · AgentsMesh/Loopal
v0.6.3
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
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
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
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
Highlights
Architecture enforcement (8-phase plan)
- Move
TurnTrackerintoloopal-contextsoTurnStoremutators arepub(crate)— runtime crates cannot bypass the tracker at compile time. - Retire
ContextStore::from_messages; tests seed history vialoopal_test_support::seed_history. tests/architecture_boundary_test.rsgreps for cross-layer wire-type leaks (MessageRole/ContentBlockoutside provider/display/context layers).- Wire-only mutations (microcompact, condense_server_blocks) now flow through
TurnTracker::with_wire_mutso the ephemeral path also honors the SSOT contract. - Re-derive open
ToolBatchstep onTurnTracker::new/replace_storeso resume-mid-batch correctly routesupdate_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/**/*.rsfiles ≤200 lines. - Module-level
//!blocks and///docs that restate signatures stripped per HARD RULE — code is SSOT.
Dead-code removal
- Dropped
provider-api::Middlewaretrait, ContextStorepipeline/config_refresh/degradation/ingestionmiddleware,governance::compensation.
Breaking changes
loopal_runtime::agent_loop::turn_trackermoved toloopal_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
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
What's Changed
- feat(provider): add Claude Opus 4.7 and set as default model by @yishuiliunian in #118
- feat(tui): add Crons panel for scheduled cron jobs by @yishuiliunian in #119
- feat(scheduler): add durable persistence for cron tasks by @yishuiliunian in #120
- fix(status-bar): emit explicit Running event on turn start by @yishuiliunian in #121
- fix(status-bar): keep spinner/timer alive across turn boundaries by @yishuiliunian in #122
- feat(tui): panel section headers + fix focus arrow residue by @yishuiliunian in #123
- refactor(protocol): NAT-style cross-hub address routing by @yishuiliunian in #124
- refactor(agent): event-driven symmetric session-scoped state for cron/task by @yishuiliunian in #125
- refactor(spawn): split sub-agent spawn IPC into InHub vs CrossHub by @yishuiliunian in #126
- feat(inbox): event-driven visibility for inter-agent messages by @yishuiliunian in #127
- refactor(hub): event-driven multi-UI architecture by @yishuiliunian in #128
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- refactor(sandbox): remove OS-level write restrictions, shift to permission-gated model by @yishuiliunian in #101
- fix(tui): prevent Shift+Enter inserting 'j' instead of newline by @yishuiliunian in #102
- fix(runtime): emit error event on silent SSE stream truncation by @yishuiliunian in #104
- feat(tui): add /skills slash command by @yishuiliunian in #103
- feat(tui): show session resume info on /exit by @yishuiliunian in #105
- feat(tui): /mcp slash command with server status page and reconnect by @yishuiliunian in #106
- feat(tui): event-driven background task sync and log viewer by @yishuiliunian in #108
- feat(tui): convert /skills to sub-page overlay by @yishuiliunian in #110
- feat(context): config hot-reload via ContextPipeline middleware by @yishuiliunian in #111
- fix(ipc): retry initialize() on transient failures by @yishuiliunian in #112
- fix: resolve UTF-8 boundary panics in session resume by @yishuiliunian in #113
- fix(sandbox): unrestrict signal, process-info and add mach-register by @yishuiliunian in #114
- feat(mcp): .mcp.json config support and disconnect action in /mcp page by @yishuiliunian in #115
- fix(context): prevent context overflow by clamping max_tokens before API call by @yishuiliunian in #116
- feat(tui): add Tasks panel with PanelProvider registry architecture by @yishuiliunian in #117
Full Changelog: v0.1.1...v0.2.0
v0.1.1
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
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