Skip to content

release: 0.6.0 — seven ranking-ingestion review fixes + the cut - #27

Merged
silversurfer562 merged 4 commits into
mainfrom
claude/prepare-0-6-0-release-cf54ef
Aug 16, 2026
Merged

release: 0.6.0 — seven ranking-ingestion review fixes + the cut#27
silversurfer562 merged 4 commits into
mainfrom
claude/prepare-0-6-0-release-cf54ef

Conversation

@silversurfer562

Copy link
Copy Markdown
Member

Summary

Everything owed before the 0.6.0 tag, in four commits:

  1. fix: the seven ranking-ingestion fixes from the 2026-08-16 five-lens review of the ranking construct's diff (four findings confirmed by two skeptics each, three reproduced from the unverified pool; all reproduce on main):
    • decimal_key_number() (new, single-sourced, ASCII-only) — a Unicode-digit slot suffix (prio.²) can no longer raise a raw ValueError out of collect_form_response / the MCP collect tool
    • Option-aware ordinal stripping on both markdown paths — "3.12" / "2) legacy" ingest exactly; "1. billing" still strips
    • The bridge fold keeps EVERY decimal slot (zero + out-of-range) so the validator names the wrong length instead of silently dropping ranks
    • Quoted JSON dotted slots never override a TYPED list line (typed-beats-quoted holds)
    • The widget submit gate blocks a partial OPTIONAL ranking ("Rank every slot or none: …")
    • The round-trip simulator reads the pre-populated ranked list and respects the slot cap
    • Docstrings corrected (expansion surfaces; untouched-with-suggested posts the proposal)
  2. test: all seven pinnedTestReviewFindings in test_ranking_construct.py + test_widget_roundtrip.py; the six src-side regressions verified to FAIL on pre-fix main. 611 tests.
  3. release: the cut[Unreleased][0.6.0] — 2026-08-16, fix entries + the "untouched form posts nothing" correction, missing [0.5.0] compare link added; version 0.6.0 in pyproject + both plugin manifests (drift guard green); README test count refreshed.
  4. docs: finding docs: README rewrite for zero-attune-context readers (R4.2) #11's last sentence — the fold docstring's elicitation-schema claim.

Review report: ~/.attune/reports/reviews/ranking-construct-review-2026-08-16.json. Finding #7 (bullets vs R4's "numbered option list") chair-ratified as intended — D5 recorded on the spec log via attune-ai PR #2071 (fcfe528d7). Finding #12 (non-canonical numeric spellings) was refuted; decimal_key_number's ASCII guard covers its Arabic-Indic case anyway.

Release parameters (chair-ratified 2026-08-16)

Version 0.6.0, date 2026-08-16, the eight [Unreleased] entries + these fixes are the complete changelog, pypi gate approved, same flow as 0.5.0. After merge: tag from the merge SHA → release-execute → post-cut order per the D4 ranking receipt (attune-ai parity → Article B → Article A).

🤖 Generated with Claude Code

silversurfer562 and others added 4 commits August 16, 2026 03:02
…-16)

Four confirmed findings (2 skeptics each) plus three repro-verified
from the unverified pool, all reproducing on main:

- models.decimal_key_number() (NEW, single-sourced): parses a numeric
  answer key only when isascii() and isdigit(), killing the
  isdigit()/int() ValueError (e.g. "prio.²") at all three sites —
  bridge fold, _resolve_line_key ranking slot, and the field-number
  branch.
- markdown_ingestion._rank_entry() (NEW): strips a leading ordinal
  ONLY when the strip turns a non-option into an option; "3.12" and
  "2) legacy" now ingest exactly, "1. billing" still strips.
- bridge._fold_expanded_answers: folds EVERY decimal slot (0 and
  out-of-range included) so the validator names the wrong length
  instead of silently dropping ranks; docstring corrected.
- _EXPANDING_TYPES docstring: the elicitation schema carries a ranking
  as ONE bounded array; only AskUserQuestion + markdown expand.
- markdown_to_answers: quoted JSON dotted slots no longer override a
  TYPED list line (typed_keys tracking preserves typed precedence).
- widget submit gate: blocks any 0<len<slots ranking regardless of
  `required` ("Rank every slot or none: ...").
- round-trip simulator: records the ranked <ol> (a suggested order
  posts the proposal) and respects the slot cap.

Behavior KEPT: an untouched ranking with `suggested` posts the
proposal — the badge makes it visible, the submit IS the confirmation.
_control_ranking_html docstring rewritten to say so.

Findings: ~/.attune/reports/reviews/ranking-construct-review-2026-08-16.json

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
TestReviewFindings in test_ranking_construct.py — six regressions
verified to FAIL on pre-fix main: exact digit-leading labels ("3.12",
"2) legacy") ingest exactly on both shorthand paths, out-of-range/zero
dotted slots are named by the length check instead of silently
dropped, a Unicode-digit slot suffix never raises a raw ValueError
(collect + both _resolve_line_key branches), quoted JSON slots never
override a TYPED list line, and the widget submit gate blocks a
partial OPTIONAL ranking.

TestReviewFindings in test_widget_roundtrip.py — the simulator now
models the real script: an untouched `suggested` ranking posts the
proposal (submit IS the confirmation, D2-c) and _fill caps at the
slot budget.

611 tests total.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
CHANGELOG: [Unreleased] becomes [0.6.0] — 2026-08-16 (the
backlog-constructs release) with an intro paragraph matching the 0.5.0
precedent; the seven ranking-ingestion review fixes added under Fixed;
the ranking entry's "an untouched form posts nothing" corrected — with
a `suggested` order the proposal renders pre-ranked and submitting
untouched posts it (the submit IS the confirmation); ordinal stripping
described as option-aware; link refs updated (the missing [0.5.0]
compare link added).

Version 0.5.0 -> 0.6.0 in pyproject.toml, plugin.json, and
marketplace.json (the version-sync guard holds all three to one
value). README test count 510+ -> 610+.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The MCP elicitation schema carries a ranking as ONE bounded array
property — only AskUserQuestion and markdown shorthand expand to
dotted slots. The last uncorrected sentence from review finding #11.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@silversurfer562
silversurfer562 merged commit 9dccd91 into main Aug 16, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant