|
2 | 2 |
|
3 | 3 | All notable changes to this plugin will be documented in this file. |
4 | 4 |
|
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 |
6 | 191 |
|
7 | 192 | ### Changed — default profile flipped (breaking for implicit default) |
8 | 193 |
|
|
0 commit comments