Skip to content

Releases: Smart-AI-Memory/attune-gui

v0.8.0 — MCP server + widen attune-rag pin

25 May 13:42
c4519dd

Choose a tag to compare

Released 2026-05-25 · PyPI

Bundles the MCP server work (Phases 1–5, completed across PRs #49#56) with the spec-status parser fix (PR #57), the living-docs regen automation Phase 1 (PRs #60, #61, #62, #63), the home interpreter snapshot improvement (PR #59), the stacked-rebase README note (PR #58), and a routine attune-rag cap widen to admit the freshly-released 0.2.0. Triggered by the cap widen — the rest had been queued on main waiting for a release.

Highlights

  • MCP server. New attune-gui-mcp console script with 6 tools (5 read-mostly: gui_list_specs, gui_get_spec, gui_get_spec_status, gui_list_living_docs, gui_get_living_doc; plus 1 write: gui_set_spec_status). 30+ tests across test_mcp_tools.py and test_mcp_integration.py. See the new "MCP integration" section in the README for the .mcp.json snippet.
  • Spec-status parser now accepts both **Status:** and **Status**: emphasis styles (real specs use the former overwhelmingly).
  • attune-rag pin widen. Core pin raised from >=0.1.22,<0.2 to >=0.1.22,<0.3 to unblock installs alongside attune-rag 0.2.0 (first SemVer-binding cut, purely additive — no code adaptation needed).

Full changelog: CHANGELOG.md

v0.7.1

23 May 03:47
e6c5e45

Choose a tag to compare

Maintenance release rolling up PRs #36#46. See CHANGELOG.md for the full entry.

Highlights

  • Templates page staleness aligned with attune-author status — switched from file-mtime to content-drift via check_workspace_staleness. Domain narrows to fresh / stale / unknown; very-stale retired end-to-end (route, UI, KPIs, tests). Closes the templates-staleness-alignment spec.
  • _editor_dep.py 503-guard removedattune-rag>=0.1.18 now ships the editor submodule on PyPI, so the guard is dead code. Six lazy require_editor_submodule(...) callsites moved to top-level imports.
  • Pin bumps: attune-author[ai]>=0.14.0,<0.15 (required for check_workspace_staleness), attune-rag>=0.1.22,<0.2.

Install

```
pip install attune-gui==0.7.1
```

v0.6.2 — help.* commands proxy through attune-author orchestration (D3)

08 May 05:52
0ae7ab5

Choose a tag to compare

Highlights

Phase D3 of the architecture-realignment spec, gui side. The three help.* executors moved to attune-author 0.9.1; this release wires the gui to dispatch through them via plain _proxy_command(...).

  • help.lookup, help.search, help.list now register as proxy CommandSpecs
  • None needed workspace pre-resolution or post-dispatch invalidation, so no _author_proxy specialization
  • _help_engine factory removed from attune_gui.commands (no production callers after this PR; lazy-import variant lives in attune-author)
  • Net diff: +107 / −275

Dependencies

Pins attune-author[ai]>=0.9.1,<0.10 (was >=0.9.0,<0.10). Pairs with attune-author v0.9.1.

Architecture-realignment progress

A · B1 · B2 · C · D1 · D2 · D3 done. D4 (gui sweep — public pipeline_for(corpus_id) to close finding #5, unified error envelope to close finding #7) is the final phase.

v0.6.1 — author.* commands proxy through attune-author orchestration (D2)

08 May 05:36
1e3dc8d

Choose a tag to compare

Highlights

Phase D2 of the architecture-realignment spec, gui side. The six author.* executors moved to attune-author 0.9.0; this release wires the gui to dispatch through them via attune_author.orchestration.run_command(...).

  • init, status, maintain, lookup, regen, setup now register as proxy CommandSpecs
  • Two host-only behaviours stay in the gui via the new _author_proxy(name, *, pre_resolve_workspace=False, invalidate_after=False) helper:
    • pre_resolve_workspace=True_resolve_project_paths runs before dispatch so the workspace fallback (which the orchestration runtime intentionally lacks) still works
    • invalidate_after=Trueattune_gui.routes.rag.invalidate(project_root) runs after dispatch (Phase D4 will replace this with public pipeline_for(corpus_id))
  • commands.py shrinks by ~480 lines; test_commands.py shrinks by ~440 lines (executor coverage now lives in attune-author's tests)
  • Net diff: +213 / −951

Dependencies

Pins attune-author[ai]>=0.9.0,<0.10 (was >=0.8.1,<0.9). Pairs with attune-author v0.9.0.

Architecture-realignment progress

A · B1 · B2 · C · D1 · D2 done · D3 (help.* 3 commands) · D4 (gui sweep — pipeline_for + error envelope) remaining.

v0.6.0 — rag.corpus-info dispatch through attune-author orchestration (D1)

08 May 04:30
51dfdcb

Choose a tag to compare

Highlights

  • Phase D1 of architecture-realignment, gui side. rag.corpus-info now dispatches through attune_author.orchestration.run_command(...). The gui keeps a thin proxy CommandSpec; /api/commands and the job runner are unchanged for clients.
  • New helpers in sidecar/attune_gui/commands.py:
    • _proxy_command(name) — mirrors an attune-author orchestration spec into a gui CommandSpec.
    • _orchestration_dispatcher(name) — closure that converts gui JobContext → orchestration JobContext and unwraps RunResult.output.
  • Phases D2 (author.*) and D3 (help.*) will reuse both helpers.

Dependencies

  • Bumped attune-author[ai] constraint from >=0.5.0,<0.6 to >=0.8.1,<0.9 (orchestration scaffold + the moved rag.corpus-info command). Pairs with attune-author v0.8.1.

Architecture-realignment progress

A · B1 · B2 · C · D1 done · D2 (author.* 6 commands) · D3 (help.* 3 commands) · D4 (gui sweep — pipeline_for + error envelope) remaining.

v0.5.0 — Legacy React UI retired

04 May 06:57

Choose a tag to compare

Changelog

All notable changes to attune-gui are documented here.
The format is based on Keep a Changelog.

[0.5.0] — 2026-05-04

Removed — legacy React UI

The React/Vite UI has been retired. The Cowork dashboard at / is now
the only surface. This was always the plan from the cowork-dashboard
spec; 0.4.0 ran the two side-by-side to give you time to vet the new
one. With everything verified in production, the bundled React assets
are dead weight.

What goes away:

  • /legacy/ URL route — anyone with a bookmark gets a 404.
  • ui/ source tree (React + Vite + node_modules) — no more npm install
    to build the wheel.
  • sidecar/attune_gui/static/ — the built React assets that shipped in
    the wheel. Wheel size drops dramatically as a result.
  • build_hooks.py — the hatchling hook that drove npm run build.
  • scripts/dev.sh — the dual-runner script.
  • The "Legacy UI ↗" link in the dashboard sidebar.

What stays the same:

  • All JSON APIs (/api/*) — including the old ones that powered the
    React UI. Any external scripts hitting those continue to work.
  • The Cowork dashboard at / — same routes, same look.
  • Tests (124, all passing) — none of them hit the legacy mount.

If you need the old React UI for any reason, install attune-gui==0.4.0.

Changed

  • pyproject.toml description updated; sdist no longer includes ui/*
    or build_hooks.py.

[0.4.0] — 2026-05-04

Added — Spec authoring

The Specs page is no longer read-only. You can now create features, add
phases as you go, and transition status — all from the dashboard.

  • + New spec button on /dashboard/specs opens a slug input that
    bootstraps specs/<slug>/requirements.md from the workspace's
    TEMPLATE.md (falls back to a minimal stub if no template is found).
  • + Design / + Tasks inline buttons appear on each spec row at the
    appropriate moment, with prerequisite ordering enforced server-side
    (no design without requirements; no tasks without design).
  • Phase status dropdown in the Preview/Edit panel for any spec file —
    rewrites the **Status**: line atomically (draft → in-review → approved → complete).
  • New JSON APIs (all under /api/cowork/):
    • GET /specs/template — fetch the canonical template
    • POST /specs — create a new feature directory
    • POST /specs/{feature}/phase — bootstrap design or tasks
    • PUT /specs/{feature}/{phase}/status — transition status
  • Slug validation: lowercase letters, digits, dashes; max 63 chars.
  • 19 new tests covering the authoring flow, validation, and ordering rules.
    Suite total: 124 tests, all passing.

Fixed

  • Summaries page no longer shows a red error banner when
    summaries.json doesn't exist yet. A missing file is the expected state
    on a fresh workspace (the polish pass hasn't run), so the page now
    renders a centered empty-state card with the exact
    attune-author polish command to generate it. Genuine errors (corrupt
    JSON, real I/O failures) still surface the danger banner.

[0.3.0] — 2026-05-04

Added — Cowork dashboard

A server-rendered Jinja2 dashboard mounted at /, with the React/Vite UI
preserved at /legacy/ for fallback. Sidebar nav: Health · Templates ·
Specs · Summaries · Living Docs · Commands · Jobs
.

  • New JSON APIs under /api/cowork/:
    • GET /layersimportlib.metadata probe per attune layer
    • GET /corpus — workspace + template count + summaries presence
    • GET /specs — feature spec list with inferred phase + status
    • GET /templates — template list with mtime staleness + manual flag
    • GET /files/raw/{root}/{path} — read raw file (returns content + manual)
    • PUT /files/raw/{root}/{path} — atomic write
    • GET /files/rendered/{root}/{path} — markdown → HTML fragment
    • POST /files/pin/{root}/{path} — toggle the manual: true frontmatter flag
  • New HTML page routes (Jinja2 templates):
    • /dashboard (Health), /dashboard/templates, /dashboard/specs,
      /dashboard/summaries, /dashboard/preview, /dashboard/living-docs,
      /dashboard/commands, /dashboard/jobs
  • Per-page CSS in static_cw/style.css matching the design tokens from the
    approved cowork-dashboard spec.

Added — Sidecar quality of life

  • .env auto-loading at sidecar start. Searches ./, <repo-root>/,
    ~/.attune-gui/, ~/.attune/ and loads KEY=value lines without
    overwriting real existing env vars. Empty/whitespace existing values are
    treated as unset and replaced. Supports export KEY=value, quoted
    values, and # comments. No python-dotenv dependency added.
  • Anthropic SDK pulled in via attune-author[ai] extra so
    author.regen and author.maintain jobs work out of the box.

Added — Jobs page UX

  • Per-feature progress in author.maintain (was previously silent during
    multi-minute runs, looking "stuck").
  • "Last output" column on /dashboard/jobs shows the latest output line.
  • Cancel button on running/pending rows (calls DELETE /api/jobs/{id}).
  • Auto-refresh every 4s while a job is running, paused when the tab is hidden.

Added — Tests

  • 55 new tests covering: dotenv loader, cowork health, cowork specs (incl.
    resolver), cowork templates (incl. resolver + staleness thresholds),
    cowork files (read/write/render/pin/path-traversal), cowork pages.
  • Suite total: 105 tests, all passing.

Changed

  • pyproject.toml description rewritten to reflect the dual-UI reality.
  • attune-author dependency now uses the [ai] extra so the Anthropic
    SDK is installed by default.
  • app.py mounts the legacy React UI at /legacy/ instead of /.

Internals

  • Token header for mutating routes corrected in the new dashboard from
    X-Attune-Client-Token to X-Attune-Client (matches security.py).
  • File API URL prefixes restructured (/raw/, /rendered/, /pin/)
    so the greedy :path converter cannot swallow action suffixes.

[0.2.1]

  • Filesystem directory picker for path fields.

[0.2.0]

  • Setup help + Regenerate templates commands.

[0.1.0]

  • Initial release: React + Vite UI, sidecar with Commands and Living Docs
    modes, profile switching, RAG quality gates.

v0.4.0 — Spec authoring

04 May 06:40

Choose a tag to compare

Changelog

All notable changes to attune-gui are documented here.
The format is based on Keep a Changelog.

[0.4.0] — 2026-05-04

Added — Spec authoring

The Specs page is no longer read-only. You can now create features, add
phases as you go, and transition status — all from the dashboard.

  • + New spec button on /dashboard/specs opens a slug input that
    bootstraps specs/<slug>/requirements.md from the workspace's
    TEMPLATE.md (falls back to a minimal stub if no template is found).
  • + Design / + Tasks inline buttons appear on each spec row at the
    appropriate moment, with prerequisite ordering enforced server-side
    (no design without requirements; no tasks without design).
  • Phase status dropdown in the Preview/Edit panel for any spec file —
    rewrites the **Status**: line atomically (draft → in-review → approved → complete).
  • New JSON APIs (all under /api/cowork/):
    • GET /specs/template — fetch the canonical template
    • POST /specs — create a new feature directory
    • POST /specs/{feature}/phase — bootstrap design or tasks
    • PUT /specs/{feature}/{phase}/status — transition status
  • Slug validation: lowercase letters, digits, dashes; max 63 chars.
  • 19 new tests covering the authoring flow, validation, and ordering rules.
    Suite total: 124 tests, all passing.

Fixed

  • Summaries page no longer shows a red error banner when
    summaries.json doesn't exist yet. A missing file is the expected state
    on a fresh workspace (the polish pass hasn't run), so the page now
    renders a centered empty-state card with the exact
    attune-author polish command to generate it. Genuine errors (corrupt
    JSON, real I/O failures) still surface the danger banner.

[0.3.0] — 2026-05-04

Added — Cowork dashboard

A server-rendered Jinja2 dashboard mounted at /, with the React/Vite UI
preserved at /legacy/ for fallback. Sidebar nav: Health · Templates ·
Specs · Summaries · Living Docs · Commands · Jobs
.

  • New JSON APIs under /api/cowork/:
    • GET /layersimportlib.metadata probe per attune layer
    • GET /corpus — workspace + template count + summaries presence
    • GET /specs — feature spec list with inferred phase + status
    • GET /templates — template list with mtime staleness + manual flag
    • GET /files/raw/{root}/{path} — read raw file (returns content + manual)
    • PUT /files/raw/{root}/{path} — atomic write
    • GET /files/rendered/{root}/{path} — markdown → HTML fragment
    • POST /files/pin/{root}/{path} — toggle the manual: true frontmatter flag
  • New HTML page routes (Jinja2 templates):
    • /dashboard (Health), /dashboard/templates, /dashboard/specs,
      /dashboard/summaries, /dashboard/preview, /dashboard/living-docs,
      /dashboard/commands, /dashboard/jobs
  • Per-page CSS in static_cw/style.css matching the design tokens from the
    approved cowork-dashboard spec.

Added — Sidecar quality of life

  • .env auto-loading at sidecar start. Searches ./, <repo-root>/,
    ~/.attune-gui/, ~/.attune/ and loads KEY=value lines without
    overwriting real existing env vars. Empty/whitespace existing values are
    treated as unset and replaced. Supports export KEY=value, quoted
    values, and # comments. No python-dotenv dependency added.
  • Anthropic SDK pulled in via attune-author[ai] extra so
    author.regen and author.maintain jobs work out of the box.

Added — Jobs page UX

  • Per-feature progress in author.maintain (was previously silent during
    multi-minute runs, looking "stuck").
  • "Last output" column on /dashboard/jobs shows the latest output line.
  • Cancel button on running/pending rows (calls DELETE /api/jobs/{id}).
  • Auto-refresh every 4s while a job is running, paused when the tab is hidden.

Added — Tests

  • 55 new tests covering: dotenv loader, cowork health, cowork specs (incl.
    resolver), cowork templates (incl. resolver + staleness thresholds),
    cowork files (read/write/render/pin/path-traversal), cowork pages.
  • Suite total: 105 tests, all passing.

Changed

  • pyproject.toml description rewritten to reflect the dual-UI reality.
  • attune-author dependency now uses the [ai] extra so the Anthropic
    SDK is installed by default.
  • app.py mounts the legacy React UI at /legacy/ instead of /.

Internals

  • Token header for mutating routes corrected in the new dashboard from
    X-Attune-Client-Token to X-Attune-Client (matches security.py).
  • File API URL prefixes restructured (/raw/, /rendered/, /pin/)
    so the greedy :path converter cannot swallow action suffixes.

[0.2.1]

  • Filesystem directory picker for path fields.

[0.2.0]

  • Setup help + Regenerate templates commands.

[0.1.0]

  • Initial release: React + Vite UI, sidecar with Commands and Living Docs
    modes, profile switching, RAG quality gates.

0.2.1 — filesystem directory picker

28 Apr 04:35

Choose a tag to compare

What's new

  • Directory picker — Browse… button on all path fields opens a modal with real filesystem navigation (breadcrumbs, folder list, ↑ parent). No more typing paths by hand.
  • GET /api/fs/browse — server-side directory listing; hidden dirs suppressed except .attune and .help.
  • Inline path validation — red border immediately if you type a relative path (must start with / or ~).
  • Friendly command group labels — Search & Query / Author Docs / Help Lookup instead of raw domain keys.