SW package 0.2.0 integrated improvement (Task A, steps 1-8). All new props are
optional; existing SW Stories are pixel-identical to the previous build (28/28).
- Build reproducibility: dist text normalized to LF, dist/build-info.json
(commit, dirty, tool versions, no timestamp), packages/sw/.gitattributes
(eol=lf). LF checkouts give identical dist and tarball.
- SWHeader: documentOpenPlacement ("menu" default | "header": Open right of
the logo in the existing document-button look, reusing onDocumentOpen and
documentOpenLabel, no duplicate Open in the dropdown), leading slot,
hiddenControls sub-items documentNew / documentOpen / layerFreeze /
layerLock. Open moves into More on measured overflow (with hysteresis).
- showNew / showOpen (SWHeaderDocumentTitle), showFreeze / showLock (layer
menu, field, property window list).
- SWToolButton (text / pill / document) and SWToolGroup (radio selection),
reusing the existing toggle, pill and file-name looks.
- SWPopup / SWPopupSection / SWPopupRow on the shared property window frame;
SWHeaderPropertyPanel gains children, title, autoFocus and optional
selection / properties / groups. Escape stack for several popups.
- Field dropdowns inside a popup use the shared fixed overlay
(useSWFixedDropdownPosition), so the scrolling body no longer clips them.
- AI guide, examples E/F, README, Storybook (SW/Header/Options, SW/Tool,
SW/Popup) and verification record docs/sw/sw-integrated-improvement-2026-10-19.md.
- Regression scripts rescoped for the intended changes (unused-removal 81/81,
overview 52/54 with the two pre-existing historical assertions).
Known limitation (unresolved): tools / leading content (incl. SWToolGroup)
does not move into More. With a wide tool bar the configured fields shrink
instead; in Example F the document name and layer field reach 0px at 390px.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
115 lines
6.4 KiB
JSON
115 lines
6.4 KiB
JSON
{
|
|
"status": "PASS",
|
|
"commit": "5faa1f1ffe89eb7aeb4aaec81ac5bb2d0f4fced9",
|
|
"notLf": [],
|
|
"buildCommit": "5faa1f1ffe89eb7aeb4aaec81ac5bb2d0f4fced9+reproducibility-check",
|
|
"runs": [
|
|
{
|
|
"checkout": "LF",
|
|
"path": "C:\\Users\\user\\AppData\\Local\\Temp\\claude\\D---------HMDesign-SW\\9f00c085-5295-455b-8864-1b75de666f9d\\scratchpad\\repro-final\\lf",
|
|
"attempt": 1,
|
|
"tarball": "hm-design-sw-0.2.0.tgz",
|
|
"tarballSha256": "e98cc5eda023d135cac4d3d30b545461016e3f63a90bf9558b999fddf3982506",
|
|
"fileCount": 29
|
|
},
|
|
{
|
|
"checkout": "LF",
|
|
"path": "C:\\Users\\user\\AppData\\Local\\Temp\\claude\\D---------HMDesign-SW\\9f00c085-5295-455b-8864-1b75de666f9d\\scratchpad\\repro-final\\lf",
|
|
"attempt": 2,
|
|
"tarball": "hm-design-sw-0.2.0.tgz",
|
|
"tarballSha256": "e98cc5eda023d135cac4d3d30b545461016e3f63a90bf9558b999fddf3982506",
|
|
"fileCount": 29
|
|
},
|
|
{
|
|
"checkout": "LF",
|
|
"path": "C:\\Users\\user\\AppData\\Local\\Temp\\claude\\D---------HMDesign-SW\\9f00c085-5295-455b-8864-1b75de666f9d\\scratchpad\\repro-final\\deeper\\path\\lf",
|
|
"attempt": 1,
|
|
"tarball": "hm-design-sw-0.2.0.tgz",
|
|
"tarballSha256": "e98cc5eda023d135cac4d3d30b545461016e3f63a90bf9558b999fddf3982506",
|
|
"fileCount": 29
|
|
},
|
|
{
|
|
"checkout": "LF",
|
|
"path": "C:\\Users\\user\\AppData\\Local\\Temp\\claude\\D---------HMDesign-SW\\9f00c085-5295-455b-8864-1b75de666f9d\\scratchpad\\repro-final\\deeper\\path\\lf",
|
|
"attempt": 2,
|
|
"tarball": "hm-design-sw-0.2.0.tgz",
|
|
"tarballSha256": "e98cc5eda023d135cac4d3d30b545461016e3f63a90bf9558b999fddf3982506",
|
|
"fileCount": 29
|
|
},
|
|
{
|
|
"checkout": "CRLF",
|
|
"path": "C:\\Users\\user\\AppData\\Local\\Temp\\claude\\D---------HMDesign-SW\\9f00c085-5295-455b-8864-1b75de666f9d\\scratchpad\\repro-final\\crlf-copy",
|
|
"attempt": 1,
|
|
"tarball": "hm-design-sw-0.2.0.tgz",
|
|
"tarballSha256": "2e1b8ee4048a7ce579dc2fdc3d420309315bae7f4d8cef85db30bf2adbabaec1",
|
|
"fileCount": 29
|
|
},
|
|
{
|
|
"checkout": "CRLF",
|
|
"path": "C:\\Users\\user\\AppData\\Local\\Temp\\claude\\D---------HMDesign-SW\\9f00c085-5295-455b-8864-1b75de666f9d\\scratchpad\\repro-final\\crlf-copy",
|
|
"attempt": 2,
|
|
"tarball": "hm-design-sw-0.2.0.tgz",
|
|
"tarballSha256": "2e1b8ee4048a7ce579dc2fdc3d420309315bae7f4d8cef85db30bf2adbabaec1",
|
|
"fileCount": 29
|
|
}
|
|
],
|
|
"referenceFiles": {
|
|
"dist/build-info.json": "efd00e884702f6a30b322ad03f7cf18ab146ad1e74f68640ee5e7e3ae1dbd34a",
|
|
"dist/components/sw-header/components/SWHeaderActions.d.ts": "c572d028522a56ac4bf1a5d7eb3d6e260b718fa3cac197d87757ec49f508af34",
|
|
"dist/components/sw-header/components/SWHeaderColorMenu.d.ts": "ff361ed274150c32a8a6931b31348b85de0463db642bd8c6af3c1bbb79fa5fda",
|
|
"dist/components/sw-header/components/SWHeaderDocumentTitle.d.ts": "ca96a9b886740d5b68b852d7494c35fe139c22df74f4fd13d342638a1b6ea439",
|
|
"dist/components/sw-header/components/SWHeaderDropdown.d.ts": "06ce5aa914826b6dc85df923a24baded80d16f43aebce39845f5b18d9d996504",
|
|
"dist/components/sw-header/components/SWHeaderField.d.ts": "741fdd1b0e7da4cf8f7adeaec021eb4eb103d7312f34e80135d00c3510159901",
|
|
"dist/components/sw-header/components/SWHeaderFields.d.ts": "43950332583b4c74231a793e18651b45494165626cc45e3dfcf50169ec189edc",
|
|
"dist/components/sw-header/components/SWHeaderHome.d.ts": "8696aa8f79f6e248ab5eacff363c180d382e58d2c37400cdf26a2446d43a6d3f",
|
|
"dist/components/sw-header/components/SWHeaderInput.d.ts": "6b379ee70b9bcbf6e9a0808ca891b86838a9bfa355bfa12f036088b26241dd9c",
|
|
"dist/components/sw-header/components/SWHeaderKGuide.d.ts": "093b413bf398f0172596469d6fb5b40f254fb2dbc9b141bd143d7ef9e2127f42",
|
|
"dist/components/sw-header/components/SWHeaderLayerIcons.d.ts": "84cf3ca7f8c89d679bcaa407790ce450d978a93be93e5de03caa029333d27fb0",
|
|
"dist/components/sw-header/components/SWHeaderLayerMenu.d.ts": "0fb65b14f52cd2abf54e74ea09ed4b783fe1665416dfd910bd6cd7d3e1995711",
|
|
"dist/components/sw-header/components/SWHeaderLineStyleMenu.d.ts": "d8ca8fc2543a1313793ceaa0e9e852f04dd6107027b2c51efcc080db60c34d29",
|
|
"dist/components/sw-header/components/SWHeaderMore.d.ts": "eba0b89eade44dd384db6d3da016c5b0c8b0544bed269918fbeb091dbdb93430",
|
|
"dist/components/sw-header/components/SWHeaderProperties.d.ts": "20ae22aac2d49c546d23c726ce5f210bd0f89024d60f24b2d75d9eba9524704f",
|
|
"dist/components/sw-header/components/SWHeaderPropertyBar.d.ts": "38fcf8305edfa6ff15917520cdbb446ac69d5200b17f5524304d106b8aeb7b91",
|
|
"dist/components/sw-header/components/SWHeaderPropertyFields.d.ts": "1277b0f3df27eac1f21c4ffb5554b95ed122d280b171f691259c50d7bbb7a037",
|
|
"dist/components/sw-header/components/SWHeaderPropertyPanel.d.ts": "dddffda48785d8fffc6d9c90f759f3287e939375cfc86887b1a9f75458d04309",
|
|
"dist/components/sw-header/components/SWHeaderStyleListMenus.d.ts": "6bbcf310fda8deed5c607fc85e8fb730b84c743a5a85be68d2549afa0341891d",
|
|
"dist/components/sw-header/components/SWHeaderWindowControls.d.ts": "db8bfbd14340e03c28e407f58fc08cef55b9eef49f406ba53fc50e994f5f0834",
|
|
"dist/components/sw-header/index.d.ts": "7f9a5677f64ae26ae97906b32425ba8fa22cd64d5d8e239a67cc44ef7ce85688",
|
|
"dist/components/sw-header/SWHeader.d.ts": "3adac1db372451d9f86a6f6df1df0e9696cd40c3ed7945531ee378da122136d8",
|
|
"dist/components/sw-header/types.d.ts": "5cafbb6ba475e988fe9aa0eca0eefd620c68e2c79e134e949d342df8ee3e9448",
|
|
"dist/components/sw-popup/SWPopup.d.ts": "c19e8372931cb81187c306c22c25a2e47bcfe3f3f25f849d458f972d87d361e8",
|
|
"dist/components/sw-theme/SWTheme.d.ts": "cdcc2e7c4b80241afa4d0b7c3da671b7086c16f9b9c231c1927c931757e4244c",
|
|
"dist/components/sw-tool/SWTool.d.ts": "23b1eb156578cd3f1dee325afbd81988d88c4a3f421f7350a0e8c47c652e804c",
|
|
"dist/index.d.ts": "d185a69b7bf04400a6c114d2694bf853b367d20e168f5a78cfbb78ce04aa21a6",
|
|
"dist/index.js": "363c9b3e0cff61306ac183a91d11241ef9acbed850efbda0948c2ac5a9d93a1d",
|
|
"dist/styles.css": "4c419e9776c51f9cce0f33fa7b9064f839f4a87311a3d3f8d2712eba3ed1c7d7"
|
|
},
|
|
"differences": [
|
|
{
|
|
"run": "LF #2",
|
|
"tarballSame": true,
|
|
"differentFiles": []
|
|
},
|
|
{
|
|
"run": "LF #1",
|
|
"tarballSame": true,
|
|
"differentFiles": []
|
|
},
|
|
{
|
|
"run": "LF #2",
|
|
"tarballSame": true,
|
|
"differentFiles": []
|
|
},
|
|
{
|
|
"run": "CRLF #1",
|
|
"tarballSame": false,
|
|
"differentFiles": []
|
|
},
|
|
{
|
|
"run": "CRLF #2",
|
|
"tarballSame": false,
|
|
"differentFiles": []
|
|
}
|
|
]
|
|
}
|