Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,26 @@ All notable changes to this project are documented in this file. This changelog

## [Unreleased]

## [0.7.0] - 2026-03-19

### Added

- Added a first-class public workbook editing API under `exstruct.edit`, including public patch/make entrypoints, shared patch-op schema helpers, and edit-owned request/result models.
- Added public editing CLI commands under the existing `exstruct` console script: `patch`, `make`, `ops`, and `validate`.
- Added maintainer-facing editing documentation coverage, including architecture/spec updates, ADR alignment, and agent workflow guidance that closes out issue `#99`.

### Changed

- Changed workbook editing layering so `exstruct.edit` is the canonical editing core while MCP remains a host-managed integration and compatibility layer.
- Updated README and docs positioning to clarify canonical usage across Python, CLI, and MCP workflows, including dry-run guidance for editing operations.

### Fixed

- Fixed top-level `sheet` fallback handling for workbook editing requests while preserving `op.sheet` precedence.
- Fixed legacy monkeypatch compatibility across `exstruct.mcp.patch_runner` and related compatibility shims by restoring live override visibility and entrypoint precedence coverage.
- Fixed rename-reservation cleanup on openpyxl failure paths so placeholder output files are removed when apply fails.
- Fixed dry-run, backend-selection, and CLI failure wording drift in the docs so it matches current runtime behavior.

## [0.6.1] - 2026-03-12

### Added
Expand Down
1 change: 1 addition & 0 deletions dev-docs/architecture/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ MCP editing remains the integration layer around the public edit API.
- `patch_runner.py` → compatibility facade for maintaining existing import paths and syncing host overrides
- `patch/internal.py` → compatibility facade re-exporting edit-owned internal implementation
- `patch/service.py` / `patch/runtime.py` / `patch/engine/*` → compatibility shims around `exstruct.edit`
- Legacy monkeypatch compatibility in these shims should prefer live module lookup over copied function aliases, and override precedence should be verified at the highest public compatibility entrypoint.
- `patch/ops/openpyxl_ops.py` / `patch/ops/xlwings_ops.py` → legacy op entry points kept for compatibility
- `patch/normalize.py` / `patch/specs.py` → op normalization and spec metadata
- `shared/a1.py` / `shared/output_path.py` → shared utilities for A1 notation and output paths
Expand Down
43 changes: 43 additions & 0 deletions docs/release-notes/v0.7.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# v0.7.0 Release Notes

This release publishes the workbook editing work completed under issue `#99`,
including the new `exstruct.edit` API surface, the editing CLI, compatibility
follow-ups, and maintainer-facing documentation needed to keep the layering
clear for future changes.

## Next steps

Currently, the CLI startup is slow due to issues with the initial implementation,
so we plan to release an update in the near future to improve its performance.

## Highlights

- Added a first-class workbook editing API under `exstruct.edit`, including:
- public `patch_workbook()` / `make_workbook()` entrypoints
- public request/result models
- shared patch-op schema discovery helpers
- Added public editing CLI commands under `exstruct`:
- `patch`
- `make`
- `ops`
- `validate`
- Clarified the editing architecture split so `exstruct.edit` is the canonical
core and MCP remains the host-managed integration / compatibility layer.
- Updated public docs to explain canonical usage across Python, CLI, and MCP,
including the recommended `dry_run -> inspect -> apply` workflow and the
`backend="auto"` caveat for same-engine comparisons.
- Added maintainer-facing documentation coverage for editing architecture,
specs, ADR alignment, and agent workflow expectations used during the issue
`#99` closeout.
- Fixed release-significant review follow-ups, including:
- top-level `sheet` fallback while preserving `op.sheet` precedence
- legacy monkeypatch compatibility across compatibility shims
- rename-reservation cleanup on openpyxl failure paths
- dry-run / backend / CLI failure wording drift in docs

## Notes

- The legacy extraction CLI invocation (`exstruct INPUT.xlsx ...`) is unchanged.
- MCP tool names and payload shapes remain compatible in `v0.7.0`.
- Patch backend policy remains `auto` / `com` / `openpyxl`; this release does
not change backend selection semantics.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ nav:
- MCP Server: mcp.md
- Concept / Why ExStruct?: concept.md
- Release Notes:
- v0.7.0: release-notes/v0.7.0.md
- v0.6.1: release-notes/v0.6.1.md
- v0.6.0: release-notes/v0.6.0.md
- v0.5.3: release-notes/v0.5.3.md
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "exstruct"
version = "0.6.1"
version = "0.7.0"
description = "Excel to structured JSON (tables, shapes, charts) for LLM/RAG pipelines"
readme = "README.md"
license = { file = "LICENSE" }
Expand Down
Loading
Loading