Skip to content

Commit 0d7e9b6

Browse files
release: v0.13.0 — regenerator fixes + polish-bypass marker + fact-check Phase 1 (#34)
Bumps pyproject.toml from 0.11.1 → 0.13.0 and converts the CHANGELOG Unreleased section into the 0.13.0 release notes. Skipping 0.12.0 — the internal release/v0.12.0 branch carried the polish fact-check Phase 1 work but was never published to PyPI. That work now ships in 0.13.0 alongside the regenerator fixes prompted by attune-rag d39e39d. Headline changes: - #31 — reference templates carry typed Parameters/Returns columns without depending on the LLM polish pass (closes #30) - #32 — test fixture isolates the polish cache per session to prevent shared-state flakes in golden snapshot tests - #33 — polish bypass surfaced in YAML frontmatter (polish: skipped) - #28 — polish fact-check Phase 1 (already on main from prior PR) Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
1 parent d805062 commit 0d7e9b6

2 files changed

Lines changed: 55 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,28 @@ and this project adheres to
1313
Work in progress for the next release. Add entries here as
1414
changes land, not at tag time.
1515

16+
## [0.13.0] - 2026-05-15
17+
18+
> **Note**: skipping `0.12.0`. The internal `release/v0.12.0`
19+
> branch carried the polish fact-check Phase 1 work but was
20+
> never published to PyPI. That work now ships in `0.13.0`
21+
> alongside the reference-template regenerator fixes prompted
22+
> by attune-rag d39e39d.
23+
1624
### Added
1725

26+
- **Polish bypass surfaced in YAML frontmatter
27+
([#33](https://github.com/Smart-AI-Memory/attune-author/pull/33)).**
28+
When the polish pass falls back to returning raw Jinja
29+
content in lenient mode (no API key, swallowed LLM error),
30+
the rendered template now carries a `polish: skipped` line in
31+
its YAML frontmatter. Without this marker the bypass was
32+
structurally invisible — same headings, same frontmatter
33+
shape — so degraded output slipped through PR review (see
34+
attune-rag commit d39e39d). Helper is idempotent; non-YAML
35+
output (project-doc HTML-comment-footer templates) passes
36+
through unchanged.
37+
1838
- **Polish fact-check (Phase 1 of [polish-fact-check
1939
spec](docs/specs/polish-fact-check/)).** AST-based
2040
post-generation verification of every polished template.
@@ -60,6 +80,40 @@ changes land, not at tag time.
6080
needed a manual editorial pass — five of six are now
6181
caught automatically.
6282

83+
### Changed
84+
85+
- **Reference templates carry typed Parameters/Returns columns
86+
without depending on polish
87+
([#31](https://github.com/Smart-AI-Memory/attune-author/pull/31),
88+
closes [#30](https://github.com/Smart-AI-Memory/attune-author/issues/30)).**
89+
The Jinja meta-template for `reference.md` previously emitted
90+
a 3-column table (`Function | Description | File`). The
91+
richer 4-column table (`Function | Parameters | Returns |
92+
Description | File`) was only produced when the LLM polish
93+
pass succeeded and synthesized it. A polish bypass made the
94+
structural data vanish. AST-derived parameter and return data
95+
now flows through Jinja directly, so the structural ceiling
96+
no longer depends on the LLM. The `feature.description` from
97+
`features.yaml` also lands directly under the title. Polish
98+
keeps its job (rewriting prose, smoothing tone) and is no
99+
longer load-bearing for typed data. Legacy callers that pass
100+
only `public_functions` (without `function_signatures`)
101+
continue to get the 3-column fallback.
102+
103+
- **Test fixture isolates the polish cache per session
104+
([#32](https://github.com/Smart-AI-Memory/attune-author/pull/32)).**
105+
The autouse `_lenient_polish_by_default` fixture now redirects
106+
`ATTUNE_AUTHOR_POLISH_CACHE` to a per-session `tmp_path_factory`
107+
directory. Previously, every test shared the dev machine's real
108+
`~/.attune/polish_cache`, so a prior live regenerate run could
109+
populate it and cause golden-snapshot tests to silently observe
110+
LLM-rewritten content instead of the deterministic Jinja
111+
fallback — flaky between machines and between sessions on the
112+
same machine. CI was unaffected (no cache present), so the
113+
regression hid locally. Also hardens `delenv` with
114+
`raising=False` so the fixture doesn't break on hosts without
115+
`ANTHROPIC_API_KEY` set.
116+
63117
## [0.11.1] - 2026-05-08
64118

65119
### Changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "attune-author"
7-
version = "0.11.1"
7+
version = "0.13.0"
88
description = "Documentation authoring and maintenance for the attune ecosystem — generate, maintain, and validate help content with AI assistance."
99
readme = {file = "README.md", content-type = "text/markdown"}
1010
requires-python = ">=3.10"

0 commit comments

Comments
 (0)