chore(release): cherry-pick fixes onto release/0.2.0 for v0.2.0-rc.5 - #2395
Conversation
GPT 5.6 Review — ✅ no blocking findingsGPT 5.6 completed its review of This comment is updated in place on each push. Review detailsNo findings. False positive or not applicable? A repository writer can comment: |
Design Review (Fable 5) — ✅ PASSAdvisory design-level review of Design-Verdict: PASS Correct picks via the actual missing commit (#2306) rather than a wholesale ko.json copy; each is main-merged, reversible, and the release-branch [DESIGN-REVIEWED] 48f94b3 |
UX Review (Fable 5) — ✅ PASSAdvisory UX-level review of UX-Verdict: PASS Slack demotion is handled cleanly — every removed prompt is replaced by an explicit, accurate pointer, and the Korean resync fixes 29 raw keys users were seeing. Suggestions
[UX-REVIEWED] 48f94b3 |
Squashed to one commit to satisfy the Enforce single commit hygiene gate; the per-pick provenance is preserved below. Each pick is patch-identical to the commit already merged on main (verified with git patch-id --stable). Requested for this RC: - feat: opt-in Slack setup and multi-channel repositioning (#2340) kirocrew setup no longer walks through Slack credentials unless --slack is passed, plus multi-channel repositioning across docs, in-app copy, and all 13 locales. (cherry picked from commit 8f5c937) - fix(i18n): drop shebangs that break test collection on Windows (#2378) (cherry picked from commit ab20b4e) Required to make this branch green, not optional additions: - fix(i18n): resync ko Storage catalog with the inventory model (#2306) release/0.2.0 already failed catalogParity > ko at 5fe4bd5 with 29 missing and 36 orphaned pages.sessionStorage.* keys. #2208 rewrote the English Storage keys on this branch while its Korean resync stayed on main, so Korean users saw raw key names on the Storage page and every PR touching website/ was red. (cherry picked from commit 841e8b4) - fix(i18n): match ko sort_largest spacing to the catalog convention (#2370) (cherry picked from commit 49aa776) Added here: - docs: note opt-in Slack setup in the 0.2.0 changelog. #2340 changes first-run behavior and the existing [0.2.0] section did not mention it. A feat on a cut release branch is a deliberate maintainer decision, not an oversight: CONTRIBUTING.md reserves a cut branch for bug fixes, and the multi-channel positioning was judged the accurate story to ship in 0.2.0.
b9b67e9 to
48f94b3
Compare
|
Dispositions for the two UX Review suggestions on 1. 2. The correct route for both is For the record, this is a cherry-pick PR for insider RC |
Opus 5 Review — ✅ no blocking findingsReviewed Verdict parsed from the review's SHA-scoped output markers for commit False positive or not applicable? A repository writer can comment: |
Cherry-picks onto
release/0.2.0for the next insider RC,v0.2.0-rc.5. Every pick is patch-identical to the commit already merged onmain(verified withgit patch-id --stable).What is here
Squashed to one commit (
48f94b360) for theEnforce single commitgate; every cherry-pick trailer is preserved in the commit message body. Each pick is patch-identical to the commit already merged onmain(verified withgit patch-id --stable), and the squash left the tree byte-identical.8f5c937b3kirocrew setupno longer walks through Slack credentials unless--slackis passed, plus multi-channel repositioning across docs, in-app copy, and all 13 locales.ab20b4e68website/scripts/*.mjsfiles that broke test collection on Windows, and adds a regression test.841e8b4cb49aa7762bsort_largest, matching its sibling keys.## [0.2.0]section.This branch was already failing its own frontend gate
Independent of the picks above,
release/0.2.0failscatalogParity > koat5fe4bd5af: 29 missing keys and 36 orphaned keys, all underpages.sessionStorage.*.Cause is a back-port gap, not these cherry-picks. #2208 rewrote the English Storage keys on this branch, but its Korean resync (#2306) stayed on
main. The user-visible effect is that Korean users see 29 raw key names on the Storage page while 36 translated strings sit dead in the catalog. #2306's own commit message predicted the CI consequence: both halves of catalogParity fail, which reds Frontend Tests for every pull request touchingwebsite/.Confirmed pre-existing three ways:
5fe4bd5afwith the picks absent.sessionStoragekeys (git diff 5fe4bd5af..HEAD -- website/src/i18n/locales/ | grep -c sessionStorageis 0).mainpasses the identical check; this branch does not.Note for anyone repeating this: copying
main's wholeko.jsonis not the fix, since that file has moved ahead of this branch (it would leave 11 missing / 21 stray). Take #2306's diff.Verification
Run locally on the staged branch before pushing.
Frontend, all green:
npx tsc -b, exit 0eslint, 0 errorsnpx vitest run src/i18n/, 38 files, 597 passed (catalogParity now green for all 12 locales;jaStyle14/14)npx vitest run, 842 files, 11243 passed, 0 failednpm run build, exit 0Backend:
flake8 src/kiro_crew test, exit 0isort --check-only, exit 0mypy --platform linux src/kiro_crew, clean across 850 files. Three localos.*xattrerrors are macOS typeshed only;hooks.pyis byte-identical at base and HEAD and is untouched by every pick.5fe4bd5af, in files no pick touches, each from a macOS or host artifact:__CF_USER_TEXT_ENCODINGinjected by the OS, a hardcoded test PID that happens to be live on the dev host, and the credential redactor matching a random macOS tmpdir segment. Linux CI is the authority here.test_cli.py,test_cli_gateway_flags.py, alltest_session*, alltest_slack*): 2561 passed, 0 failed.test_changelog_handler.py: 7 passed.black --checkwas deliberately not treated as a gate:ci.ymldisables it pending a bulk format pass, and the repo is roughly 1100 files from clean at the pinned version.One process note
#2340 is a
feat:, and the model inCONTRIBUTING.mdreserves a cut release branch for bug fixes. It is here deliberately, at the maintainer's call, because the multi-channel positioning is the accurate story to have in users' hands for 0.2.0. Flagging it so the deviation is on the record rather than implicit.After this merges
Tag the branch tip
v0.2.0-rc.5and push it to publish to the insider channel. Nothing in this PR tags anything.