# Changelog

All notable changes to MAESTRO are documented here. The format is loosely based
on [Keep a Changelog](https://keepachangelog.com/), and the project aims to
follow semantic versioning.

## Unreleased

## v0.2.0 (2026-07-09)

A month of work since the initial release, centered on shared workspaces,
agent-to-agent (A2A) collaboration, and much deeper visibility into what agents
are doing.

### Added

- **Shared workspaces** — the workspace is now the single home for everything:
  a workspace rail, per-workspace chats with search/filtering, colors and
  descriptions, running-count badges, workspace-scoped schedules, reusable
  invite links, and credential sharing with scoped grants. The separate
  "Tasks" tab is gone.
- **Workspace tool policy** — enable/disable tools per workspace from
  Settings → Tools; piece YAML no longer controls tool availability. Agents can
  request a missing tool or Python package mid-task and use it as soon as you
  approve in chat; workspaces can also pre-install extra Python packages.
- **A2A protocol support** — publish an Agent Card, delegate skills to external
  agents with per-delegation resource limits, run long A2A tasks non-blocking,
  and list/revoke delegations from Settings (OAuth-based authorization server
  underneath).
- **SSH integration** — register SSH connections per workspace, run one-shot
  remote operations, or open an interactive console where you and the agent
  share one PTY (multiple sessions with tab switching).
- **Delegate observability** — sub-agent (delegate) runs are now visible:
  live cards with the currently running tool, result previews and abort
  reasons, LLM token counts, child-run rollups, and a live console. LLM
  execution itself shows live state, attempt badges, and classified
  interruption reasons.
- **Workspace apps** — self-contained HTML mini-apps that read/write workspace
  files, generated with starter templates and a self-E2E pass, shareable via
  read-only public links.
- **Files tab upgrades** — folder create/rename/move/delete/download,
  drag-and-drop organization, touch support, a details view (size, modified
  time), file provenance (which task created a file), a protected `readonly/`
  area, and automatic recognition of files you drop into the workspace.
- **Richer previews and reading** — Excel/PowerPoint/Word preview, PDF
  page-range reads, and a single `Read` tool that auto-detects
  .xlsx/.docx/.pdf/.pptx/.msg.
- **X (Twitter) research** — tools restored (new transaction-id scheme), home
  timeline support, full text of long-form X Articles, and an "SNS deep sweep"
  piece that triages a timeline and deep-dives each post with a clean-context
  sub-agent.
- **Cross-task recall** — agents can search other chats in the workspace
  (`SearchWorkspaceTasks`), search their own long conversations, and subtasks
  can look back at their own transcript; multi-keyword AND search included.
- **Memory & learning** — lessons captured mid-task into persistent memory /
  AGENTS.md, a Memory & Learning settings tab with reflection history and
  revert, and an extended mission brief that pins user constraints and
  decisions.
- **English UI** — recently added screens are fully localized (i18next);
  UI is bilingual Japanese/English throughout.

### Changed

- Chat screen: taller conversation viewport, a card-style auto-growing
  composer, an always-visible context-usage gauge, and tool rows with
  execution timestamps.
- Research pieces split large investigations into serial delegate runs to keep
  the orchestrator context small.
- Context handling keeps more of the recent conversation verbatim when
  compacting and retains longer histories on large-context models.
- Job time limits are configurable from Settings, with clearer hard-kill
  reasons (default 180 minutes).

### Fixed

- A context-limit livelock that aborted tasks seconds after start with
  "max iterations (200) exceeded" while doing no work.
- Docker: clean `docker compose up --build` reliably installs Chromium (npm
  bin-name collision), and Windows/WSL2 checkouts build cleanly (`.env`
  optional, LF pinned via `.gitattributes`).
- HTTPS redirect kept firing after HSTS was disabled (sticky-HSTS opt-in fix).
- Shift_JIS and other non-UTF-8 Japanese text was misdetected as binary; BOM
  handling fixed.
- Raw HTML in chat messages no longer breaks the conversation layout.
- Models that require the system message first no longer error mid-task.
- Skills whose folder name diverged from their display name could not be
  deleted or edited.
- Attaching a file with an existing name no longer overwrites it silently —
  the old version is evacuated to `old/`.

## v0.1.0 — Initial public release (2026-06-02)

First open-source release of MAESTRO, an agent orchestration platform:

- Runs tasks against any OpenAI-compatible LLM endpoint (Ollama, vLLM, …).
- LLM-classified task routing into **Pieces** (YAML workflows) of **movements**.
- Sandboxed tool runtime (Read/Write/Edit/Bash/Glob/Grep, Office, Web, Browser,
  Image, Data/SQLite, Knowledge/RAG, SSH, MCP, sub-tasks, and more).
- Bash tool sandbox (bwrap-based filesystem/network/env isolation with a
  hardened fallback) and a declarative pre-baked Python toolchain.
- Optional LLM Gateway (virtual keys, budgets, metrics), reflection-based
  learning, scheduled tasks, and a React web UI.
- Apache-2.0 licensed.
