Skip to content

[DONE] To hardware 에 붙인 헤더가 창을 닫거나 쪽을 다시 불러와도 남는다 - #203

Merged
patternflow-bot merged 6 commits into
devfrom
claude/lsh-pf-round77-0mnjha
Oct 24, 2026
Merged

patternflow-bot merged 6 commits into
devfrom
claude/lsh-pf-round77-0mnjha

Conversation

@patternflow-bot

@patternflow-bot patternflow-bot commented Oct 24, 2026 •

Copy link
Copy Markdown

lsh / https://claude.ai/code/session_01XQHHGQiXZWWSWXzZb2pNyp

Pattern Lab 의 To hardware 에 붙인 헤더가 이제 창을 Esc 나 바깥 판, × 로 닫아도, 쪽을 다시 불러와도 남아요. 전엔 붙인 글이 창 안에만 있어서 닫는 순간 사라졌고, AI 에게 다시 물어야 했어요. 붙인 글은 그 탭에 그 글이 답한 번역 프롬프트에 묶여 남고, 코드나 램프, 판 크기가 바뀌면 돌아오지 않아요.

좋아지는 것: To hardware 를 닫거나 새로 고쳐도 붙인 헤더가 남는다 — AI 에게 다시 묻지 않는다

체크리스트

한 일

  • web/src/lib/lab/hardwarePastes.ts(새 파일): 붙인 글을 sessionStorage 의 patternflow_lab_hardware_pastes_v1 에 둬요. 열쇠는 그 글이 답한 프롬프트에서 노브의 지금 위치(, current …)를 뺀 것을 FNV-1a 로 줄인 값이에요.
  • web/src/app/pattern-lab/HardwareModal.tsx: 창이 열릴 때 레이어 하나의 칸과 쌓은 레이어마다의 칸을 그 열쇠로 되살려요. 칸을 고칠 때마다 지금 칸에 든 글만 적어서, 답할 프롬프트가 없어진 글은 다음 고침에 빠져요. 레이어 하나의 열쇠는 이름 없이 만든 프롬프트예요. 이름은 조립할 때 enforcePatternName 이 다시 찍어서예요.
  • web/src/lib/lab/persist.ts: 머리 주석의 「lab 이 localStorage 밖에 두는 것」에 이 키를 더했어요. 헤더가 창과 같이 사라진다고 하던 주석 둘(HardwareModal.tsx 의 바깥 판 닫기, 시험 머리)을 지금 일로 고쳤어요.
  • web/src/app/pattern-lab/HardwareModal.test.tsx: Esc · 바깥 판 · × 로 닫고 다시 열기, 프로젝트를 저장했다 다시 읽는 새로 고침, 쌓은 레이어 다시 열기, 노브 돌리기(하나 · 쌓은 것), 코드 · 램프 모드 · 판 크기를 바꾸면 빈 칸, 칸을 비우면 잊기. beforeEach 에서 sessionStorage 를 비워요.

증거

폰 390 · Esc 로 닫고 쪽을 다시 불러온 뒤 To hardware 를 다시 연 화면
데스크톱 1440 · 같은 순서 뒤의 To hardware

사진을 찍은 스크립트가 처음 연 Lab 에서 To hardware 를 열고 헤더를 붙인 뒤 Esc 로 닫고, 쪽을 다시 불러와 To hardware 를 또 열었어요. 칸엔 붙인 221자가 그대로 있고 「Looks like a header ✓」 와 「Next →」 가 살아 있어요.

390px: closed by Esc true · after reload the box holds the header true (221 chars) · "Looks like a header ✓" 1 · Next enabled true
1440px: closed by Esc true · after reload the box holds the header true (221 chars) · "Looks like a header ✓" 1 · Next enabled true

고침을 커밋한 뒤 git show origin/dev:web/src/app/pattern-lab/HardwareModal.tsx 로 옛 창을 깔고 새 시험을 돌렸어요. 남는지 보는 여섯이 빨갰어요.

   × HardwareModal > opens again with the header it held before Esc
   × HardwareModal > opens again with the header it held before a press outside
   × HardwareModal > opens again with the header it held before ×
   × HardwareModal > opens again with the header after a reload
   × HardwareModal > opens a stack again with the layers already translated
   × HardwareModal > keeps the header when a knob turns

열쇠도 망가뜨려 봤어요. 노브 위치를 빼지 않게 하니 「keeps a stack's translations when a knob turns」 하나가 빨갰고, 열쇠를 늘 같은 값으로 두니 코드 · 램프 모드 · 판 크기를 바꾸는 셋과 쌓은 레이어 다시 열기가 빨갰어요. 고친 코드에선 다 초록이에요.

$ npx vitest run src/app/pattern-lab/HardwareModal.test.tsx src/lib/lab
 Test Files  13 passed (13)
      Tests  321 passed (321)

web/ 에서 다섯 검사의 끝줄이에요.

$ npm ci                           → exit 0
$ npm run lint -- --max-warnings=0 → exit 0
$ npm run typecheck                → exit 0
$ npm run build                    → build exit 0
$ npm run check:ci                 → Test Files  95 passed (95) · Tests  1204 passed (1204) · skipped links-absolute · skipped roadmap · ci exit 0
$ npm run check:voice              → check:voice: nothing found
$ npm run check:human-lock         → check:human-lock: no locked words changed

links-absolute 와 roadmap 은 gh 가 원래 레포를 못 읽는 컨테이너라 skipped 예요. PR 의 drift.yml 이 다시 돌려요.

실행법

web/ 에서 NEXT_PUBLIC_BUILD_ENABLED=1 npm run build && npx next start -p 3100 다음 /pattern-lab 을 열고 머리의 To hardware 를 눌러요. 칸에 #pragma once 로 시작하는 헤더를 붙이고 Esc 로 닫아요. 쪽을 다시 불러와 To hardware 를 열면 칸에 그 헤더가 있고 「Next →」 가 열려 있어요. Code 에서 한 줄을 고치고 열면 칸이 비어 있어요. 시험만은 npx vitest run src/app/pattern-lab/HardwareModal.test.tsx 예요.

가정

  • 표는 12위부터 남아 있었어요(바퀴 76 이 11위). 앞 바퀴 PR 에 따를 댓글과 리뷰가 없어서 12위를 골랐어요.
  • 표는 붙인 글을 「레이어 코드에 묶어」 두라고 했는데, 그 글이 답한 프롬프트에 묶었어요. 레이어 하나의 헤더엔 AI 가 램프 표와 판 크기, 노브 범위를 구워 넣어요. 코드에만 묶으면 램프를 바꾼 뒤에도 옛 헤더가 「Looks like a header ✓」 로 돌아와 보드에 옛 색을 보내요. 쌓은 레이어의 칸은 프롬프트가 레이어 번호와 코드, 판 크기를 담으니 표가 말한 것과 거의 같아요.
  • 노브 위치는 열쇠에서 뺐어요. 레이어 하나의 프롬프트는 노브를 지금 값에서 시작하라고 해서(lib/lab/cppPrompt.ts:302), 노브를 돌린 뒤 되살린 헤더는 보드에서 옛 위치로 시작해요. 노브 한 칸에 AI 에게 다시 묻게 하는 것보다 낫다고 봤어요. 쌓은 레이어는 뼈대가 노브를 지금 값으로 다시 써서 이 차이가 없어요.
  • 쌓은 레이어의 이름을 바꾸면 그 칸은 비어서 열려요. 레이어 프롬프트 끝에 이름이 들어서예요. 빼려면 프롬프트 글을 정규식으로 더 잘라야 해서 두었어요.
  • 단계는 되살리지 않아요. 「On to hardware」 에서 닫았어도 다시 열면 첫 단계에 헤더가 든 채로 열리고, 「Next →」 한 번이면 돼요.
  • 표대로 sessionStorage 예요. 탭을 닫으면 사라지고, 두 탭의 Lab 이 서로의 칸을 지우지 않아요. 안드로이드 뒤로 가기로 창이 닫히는 것은 그대로이고, 다시 들어와 열면 헤더가 있어요.
  • 사진은 NEXT_PUBLIC_BUILD_ENABLED=1 로 다시 빌드해 찍었어요. 그 값이 없으면 머리에 To hardware 단추가 없어요. Code 패널 편집기가 비어 보이는 것은 이 컨테이너가 jsdelivr 를 막아서예요.
  • 표 밖: web/src/lib/lab/capture/shaderStore.ts:12~:14 주석은 「the lab does not persist its project, so every reload mints new layer ids」 라고 하는데, 지금 프로젝트는 레이어 id 째 저장돼요(lib/lab/serialize.ts:259).

Changelog

Web

  • Pattern Lab's To hardware keeps the pasted header. Esc, a press outside the window or a reload emptied the box, and the way back was to ask the model again. The paste is now kept for the tab against the prompt it answers, so it comes back on the next open, and an edit to the code, the ramp or the matrix drops it.

경험

언제: 바퀴에서 사진을 찍으려고 띄운 next start 를 끌 때
교훈: pkill -f "next start -p 3100" 을 다른 명령과 한 Bash 에 묶지 말고, ps aux | grep "[n]ext start" 로 pid 를 골라 끈다(그 셸의 명령줄에도 같은 글이 있어 셸까지 죽는다)
근거: #203 에서 pkill 과 사진 커밋을 한 명령에 묶었더니 exit 144 로 셸이 죽어 커밋이 하나도 되지 않았어요

바퀴

바퀴 77 · 후보 12 「To hardware 에 붙인 헤더가 창을 닫거나 쪽을 다시 불러와도 남는다」

다음 바퀴

  • 13 「Lab 의 창 안에서 글을 끌어 고르다 창 밖에서 놓아도 창이 닫히지 않는다」 · 헤더는 이제 남지만, 칸에서 끌다 바깥 판에서 떼면 창이 닫히는 것은 그대로예요. Code guide 와 Import image 창도 같아요.
  • 14 「텍스트 효과의 빠르기를 Text 패널에서 바로 돌린다」 · 빠르기를 정하는 노브를 Text 패널에서 돌릴 수 없어서 폰에선 바꿀 때마다 탭을 두 번 옮겨요.
  • 15 「Code 패널의 붙여넣기 상자와 안내가 영어로, 고른 레이어의 종류대로 말한다」 · lang="en" 쪽에서 Paste 가 한국어 window.prompt 를 띄워요.

https://claude.ai/code/session_01XQHHGQiXZWWSWXzZb2pNyp


Generated by Claude Code

@patternflow-bot patternflow-bot changed the title [WIP] 바퀴 77 — 고를 일을 찾는 중 [WIP] To hardware 에 붙인 헤더가 창을 닫거나 쪽을 다시 불러와도 남는다 Oct 24, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XQHHGQiXZWWSWXzZb2pNyp
@patternflow-bot patternflow-bot changed the title [WIP] To hardware 에 붙인 헤더가 창을 닫거나 쪽을 다시 불러와도 남는다 [DONE] To hardware 에 붙인 헤더가 창을 닫거나 쪽을 다시 불러와도 남는다 Oct 24, 2026
@patternflow-bot
patternflow-bot marked this pull request as ready for review October 24, 2026 03:48
@patternflow-bot
patternflow-bot merged commit 44c7f78 into dev Oct 24, 2026
2 checks passed
@patternflow-bot
patternflow-bot deleted the claude/lsh-pf-round77-0mnjha branch October 24, 2026 03:50
engmung pushed a commit to engmung/Patternflow that referenced this pull request Oct 25, 2026
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.

2 participants