Skip to content

Commit a49bb74

Browse files
sgwannabeclaude
andcommitted
docs(changelog): backfill v1.5.0–v1.11.0 plugin changelog (#60)
Closes the v1.5.0–v1.11.0 doc-sync gap in the plugin-specific CHANGELOG (was previously stuck at v1.4.0 (in progress)). Each entry condensed from the corresponding shipping PR body to Added / Fixed / Changed sections with a link to the shipping PR. Header note now disambiguates plugin changelog vs root release-please CHANGELOG, and explains the "Shipping PR" link semantic vs the chore(main) release PR. 13 new version entries: 1.5.0, 1.5.1, 1.5.2, 1.5.3, 1.5.4, 1.6.0, 1.6.1, 1.7.0, 1.8.0, 1.8.1, 1.9.0, 1.10.0, 1.11.0. v1.4.0 (in progress) suffix dropped. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 8b57ed2 commit a49bb74

1 file changed

Lines changed: 186 additions & 1 deletion

File tree

plugins/preview-forge/CHANGELOG.md

Lines changed: 186 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,192 @@
22

33
All notable changes to this plugin will be documented in this file.
44

5-
## [1.4.0] — 2026-04-23 (in progress)
5+
> This is the **plugin-specific** changelog. Cross-cutting / repo-level
6+
> changes (release-please configuration, top-level CI, monorepo
7+
> tooling) are also recorded in the root `CHANGELOG.md`.
8+
>
9+
> **"Shipping PR"** below = the feature/umbrella PR whose merge
10+
> triggered the semver bump (e.g. `feat(...)` / `fix(...)`). The actual
11+
> tagged release commit is the corresponding `chore(main): release X.Y.Z`
12+
> PR opened by release-please immediately after.
13+
14+
## [1.11.0] — 2026-04-25
15+
16+
ComBba **Phase 8 — Requirements Expansion**. Final phase of the v1.7
17+
audit; closes umbrella #37 (last of 9). v1.7 audit complete: 9/9 phases
18+
shipped.
19+
20+
### Added
21+
- **Q-9** Seed-idea `expected_socratic.json` annotation — 10 worked-example partner files (one per seed) with the 9-slot `idea.spec.json` shape, `_filled_ratio = 1.0` by design.
22+
- **Q-2** User-visible `_filled_ratio` + tier line — `idea-clarifier` emits `[I1] idea.spec.json — _filled_ratio = 0.56 → medium tier (...)` after the final Batch.
23+
- **CI** `tests/fixtures/seed-expectations/verify-seed-expectations.sh` joins the existing fixture suites; runs on `[ubuntu-latest, macos-14]`.
24+
25+
### Changed
26+
- **Q-1** Advocate divergence visibility — verified-as-shipped (`generate-gallery.sh:263` already renders `<p class="notes">spec_alignment_notes</p>`).
27+
- **Q-3 / Q-5** verified-as-shipped (A-6 `spec_alignment_notes` required + `idea-clarifier` resume logic from A-3).
28+
29+
### Deferred
30+
- Q-4 / Q-6 / Q-7 / Q-8 → post-hackathon (rationale in PR body).
31+
32+
Shipping PR: [#55](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/55).
33+
34+
## [1.10.0] — 2026-04-25
35+
36+
ComBba **Phase 9 — Business-panel UX**. Closes umbrella #36 (B-2
37+
deferred to P5 Part B docs umbrella).
38+
39+
### Added
40+
- **B-1** Required-question reduction 12 → 4 (Christensen + Kim-Mauborgne JTBD): `target_persona.profile`, `primary_surface.platform`, `killer_feature`, `must_have_constraints[≥1]`. 5–8 optional. Best path = 4-click demo.
41+
- **B-3** Skip-interview gate (Taleb antifragile): Batch A 4th option writes a stub `idea.spec.json` (`_filled_ratio ≈ 0.11`), records `ideation.user_skipped_interview = true`, auto-routes to A-4 fallback.
42+
- **A-4** `_filled_ratio` 4-tier dispatch: `≥0.7 high` (ground truth) · `0.4–0.7 medium` (hint) · `0.2–0.4 low` (Blackboard flag) · `<0.2` v1.5.4 raw-idea fallback. Threshold dropped 0.5 → 0.4.
43+
44+
### Changed
45+
- `idea-clarifier.md` interview protocol restructured around required vs optional batches.
46+
- `ideation-lead.md` §1 4-tier table replaces the prior binary high/low gate.
47+
48+
Shipping PR: [#51](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/51).
49+
50+
## [1.9.0] — 2026-04-24
51+
52+
ComBba **Phase 6 — Frontend UX / Gallery polish**. Closes umbrella #34
53+
(F-1 through F-9, all 9 items shipped).
54+
55+
### Added
56+
- **F-3** `focus-visible` 2px accent outline on `a.open` / `button` / `.pitch`.
57+
- **F-4** `<main aria-label="Preview gallery">` landmark + `<div class="cards" role="list">` + `<article role="listitem">` (semantic split avoids `role="list"` overriding the landmark).
58+
- **F-5** Iframe `title` upgraded from `"P01 mockup"` to `"P01 — {advocate}: {truncated pitch}"` (96-char cap, html-escaped).
59+
- **F-6** `content-visibility: auto` + `contain-intrinsic-size` (mobile `0 360px`).
60+
61+
### Changed
62+
- **F-1** `lang="en"``lang="ko"` + `word-break: keep-all; overflow-wrap: anywhere`.
63+
- **F-2** Pitch 3-line clamp + hover/focus-within expand + `title` fallback.
64+
- **F-7 / F-8 / F-9** Mobile breakpoint (`max-width: 640px`) polish: static header, `min-height: auto` cards, `padding: 16px`, `gap: 14px`.
65+
66+
Shipping PR: [#48](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/48).
67+
68+
## [1.8.1] — 2026-04-24
69+
70+
ComBba **Phase 3 Part B — preview-cache hardening**. Partial close on
71+
umbrella #32 (4 more items; 11/12 with Part A merged).
72+
73+
### Fixed
74+
- **T-9.1** `cmd_key` empty-idea reject — `bash preview-cache.sh key "" pro` now exits 2. Previously every empty-idea call collided on the same 4-field key across profiles.
75+
- **T-9.3** `cmd_key` stdin sentinel — `-` reads idea from stdin (ARG_MAX protection on macOS for >200 KB ideas).
76+
- **T-5 / R-6** `cmd_key` integer-first routing — pure-integer 3rd arg always means `previews_override`, regardless of whether a numeric-named sibling file exists in cwd.
77+
- **T-9.4** `cmd_put` atomic write — `mktemp` + `mv -f` (with v1.6.1 weak-alias write also atomic, tmp cleanup on failure).
78+
79+
Shipping PR: [#45](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/45).
80+
81+
## [1.8.0] — 2026-04-24
82+
83+
ComBba **Phase 2 — Flow & Architecture Correctness**. Closes 6 of 7
84+
items of umbrella #31 (A-4 deferred, bundled with B-1 in §P9).
85+
86+
### Added
87+
- **A-3** Incremental `idea.spec.json` write after each of 3 batches (tmpfile + `os.replace`) + resume table mapping `_filled_ratio` → starting batch.
88+
- **A-5** `open-browser.sh` exit 3 = no opener (distinct from 0 = launched); `generate-gallery` also emits `gallery-text.md`; H1 swaps option ④ to full inline list on exit 3.
89+
- **A-6** `preview-card.schema.json`: `spec_alignment_notes` becomes `required` + `minLength: 1`; I2 gains framework-convergence lint (≥4 distinct framework tokens per primary_surface → retry_requests).
90+
- **A-7** Split `PROTECTED_PATHS` into TECHNICAL vs USER-INTENT in `idea-drift-detector.py` (rule9-fp-guard fixtures).
91+
92+
### Changed
93+
- **A-2** Post-Socratic `recommend-profile.sh` rerun with `must_have_constraints[].value`; `signal_hash` gains optional `stage=preflight|post-socratic`; `cmd_hash` CLI grows `--stage=<name>`.
94+
- **A-1.followup** `ideation-lead.md` allowed_scope.Read covers `runs/<id>/_weak_replay.json`.
95+
96+
Shipping PR: [#42](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/42).
97+
98+
## [1.7.0] — 2026-04-24
99+
100+
ComBba **Phase 4 — DevOps + Phase 1 Security**. Two umbrella
101+
contributions ship under one tag (release-please rolled #39 + #41).
102+
103+
### Added — DevOps (umbrella #29)
104+
- **D-1** `cygpath`-style WSL/Cygwin path normalization.
105+
- **D-2** Python guard for missing-interpreter graceful exit.
106+
- **D-4** Trace-log instrumentation across plugin shell entry points.
107+
108+
### Fixed — Security (umbrella #30)
109+
- **S-3** Schema caps: `must_have_constraints` (maxItems 20, type 50, value 2000), `non_goals` (maxItems 20, item 500).
110+
- **S-4** Strict iframe warning rewrite — explicit "DO NOT ADD allow-scripts" + localhost-HTTP migration path.
111+
- **S-5** `O_NOFOLLOW` + `0o600` on ledger lockfile (prevents symlink redirection of truncate to e.g. `~/.ssh/authorized_keys`).
112+
- **S-6** `auto-retro-trigger.py` regex tightened from `[^/]+` to `r-\d{8}-\d{6}` for `SCORE_REPORT` / `FAILED_FLAG` capture.
113+
114+
Shipping PRs: [#39](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/39), [#41](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/41).
115+
116+
## [1.6.1] — 2026-04-24
117+
118+
Hotfix release covering security hardening + cache replay reliability.
119+
120+
### Fixed
121+
- **S-1** Reject traversal `mockup_path` (`..` segments + absolute paths outside the run dir).
122+
- **S-2** Reject URL-injection payloads in browser opener (`javascript:` / quote-break / control chars).
123+
- **A-1** Pre-Socratic weak-key probe + dual-store: `runs/<id>/_weak_replay.json` lets the cache short-circuit one-click replay even before I1 runs.
124+
125+
Shipping PRs: [#27](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/27), [#28](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/28).
126+
127+
## [1.6.0] — 2026-04-24
128+
129+
**Major UX inversion** — Socratic interview + auto-gallery H1.
130+
Resolves the **root cause** of LESSON 0.7 (v1.1.0 fixed the surface;
131+
v1.6.0 fixes the cause).
132+
133+
### Added — I1 Socratic interview (idea-clarifier)
134+
- New ideation step: 3-batch (A/B/C) AskUserQuestion-driven interview that fills the 9 semantic anchor slots of `idea.spec.json` before the 26 advocates dispatch.
135+
- `idea.spec.json` becomes the ground-truth contract between user intent and 26 parallel advocate interpretations (vs v1.5 raw-string idea).
136+
- `_filled_ratio` denominator = 9 (3-batch high/low gate at this release; tiered fallback comes in v1.10.0).
137+
138+
### Added — auto-gallery H1
139+
- `generate-gallery.sh` now emits a single-page 26-card iframe gallery automatically at Gate H1 (no manual `/pf:design` invocation needed).
140+
- `chosen_preview.json` selection is the user's H1 click + design tweak — runtime-derived, not panel-recommended.
141+
142+
### Methodology
143+
- LESSON 0.7 marked "✅ resolved v1.1.0 + reinforced v1.6.0+" (two-stage narrative formalized in v1.7 P5 Part B).
144+
145+
Shipping PR: [#25](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/25).
146+
147+
## [1.5.4] — 2026-04-23
148+
149+
### Fixed
150+
- **monitors** Per-monitor watermark files (separate `.last-seen` per monitor) — ends the cross-monitor race where two watchers read the same watermark and lost events.
151+
152+
Shipping PR: [#22](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/22).
153+
154+
## [1.5.3] — 2026-04-23
155+
156+
### Fixed
157+
- **monitors** Gate on `pf` workspace marker — silent exit in unrelated cwds (was previously logging false-positive errors when the user's shell was in a non-PF directory).
158+
159+
Shipping PR: [#19](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/19).
160+
161+
## [1.5.2] — 2026-04-23
162+
163+
### Fixed
164+
- **bootstrap** Set-union seed for `.claude/settings.local.json` workspace permissions (LESSON 12.1 — permission ergonomics): previous bootstrap overwrote user customizations.
165+
- **monitors** Guard `runs/` glob for missing-directory case (no spurious errors before the first run).
166+
167+
Shipping PR: [#16](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/16).
168+
169+
## [1.5.1] — 2026-04-23
170+
171+
### Fixed
172+
- **CRITICAL** post-merge `package.json` regression in #9/#11/#12 — declared deps now correctly bound across the scaffold templates (addresses CodeRabbit / review feedback).
173+
174+
Shipping PR: [#13](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/13).
175+
176+
## [1.5.0] — 2026-04-23
177+
178+
**Build chain integrity** (LESSON 11.1 — discovered in run
179+
`r-20260423-093527`, freeze score 451/500 due to 6 unbinded POST routes).
180+
181+
### Added
182+
- **CI** Template-build smoke test + content checks across the scaffold templates (catches the LESSON 11.1 class of issue at PR time).
183+
- **SCC** New `build_config` + `template_gap` self-correction categories with a dedicated `scc-build-config` fixer agent.
184+
185+
### Fixed
186+
- **spec-author + be-lead** Bind declared deps to scaffold templates so generated apps actually compile (B1 + B2). Fixes the LESSON 11.1 root cause.
187+
188+
Shipping PRs: [#9](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/9), [#11](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/11), [#12](https://github.com/Two-Weeks-Team/PreviewForgeForClaudeCode/pull/12).
189+
190+
## [1.4.0] — 2026-04-23
6191

7192
### Changed — default profile flipped (breaking for implicit default)
8193

0 commit comments

Comments
 (0)