feat(split): 한 화면 좌우 2분할 — 크루 DM 옆에 다른 크루 DM·기억 문서를 나란히(?side=) - #294
Merged
Conversation
…arseSide·withSide·sideParam) + 테스트 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…, 드래그 폭 조절(localStorage argo-split-w), 사이드바 링크 side 유지, 크루 행 '옆에 열기' Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…입점 — 크루 DM 상단 '옆에 열기 ▾' 크루 드롭다운, 기억 탐색기 문서 행 '옆에 열기' Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
beyondworks
force-pushed
the
feat/split-pane
branch
from
August 23, 2026 02:42
99f41ae to
0ee54f9
Compare
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
목적
크루끼리 양방향 대화와 업무 분배를 한 화면에서 보며 하기 위해, 크루 DM 옆에 다른 크루 DM 또는 기억 문서를 나란히 연다.
설계
?side=<spec>하나. spec =crew:<slug>|doc:<rel>. 전역 상태·컨텍스트 없음.app/c/[ws]/split.mjs—parseSide/withSide(기존 쿼리·해시 보존) /sideParam.layout.jsx:useSearchParams(Suspense 경계)로 side를 읽어<main class="content">옆에<aside class="split-pane">. 폭 = localStorageargo-split-w(기본 480, 최소 360, 최대 60vw), 왼쪽 가장자리 드래그 손잡이. 900px 미만은 CSS로 숨김. 사이드바 내부 Link는 전부withSide를 통과 → 주 화면을 옮겨도 패널 유지. 닫기 = side 제거(router.replace).split-pane.jsx: 패널 헤더(제목·전체 화면으로·닫기) +crew:→<CrewChat embedded />,doc:→DocPane(vault API → Markdown, "기억에서 열기" =/vault?doc=<rel>).embeddedprop: topbar 포털 대신 인라인 컨트롤(역할·세션 칩·카드·새 대화), 주 화면 라우팅 배제(아래 목록), 세션 레일 숨김, 초안/대기열 localStorage 키는 그대로.split.*ko/en 등록. 세션·인증·API 변경 없음.CrewChat에서 embedded일 때 달라지는 router 호출
/커맨더memory·room·deck(router.push)onFired(router.push('/c/ws'))onClose()로 패널만 닫음setSlotElSideOpenMenu.onPick(router.replace(withSide(...)))검증
node --check app/c/[ws]/split.mjs통과,test/split.test.mjs5건(기존 쿼리 보존·잘못된 spec null·한글 slug 왕복).npm test: 921 tests / pass 916 / fail 0 / skipped 5, exit 0.npx next build성공(경고 없음).ARGO_ROOT=/private/tmp/claude-503/argo-split-qa, :3232, Supabase env 비움)에서 creator 프리셋 회사 + 노트 1건 생성 후 Aside 브라우저(1440px)로 실측:artifacts/split-*.png(워크트리 로컬, 미커밋).?side=외 불변, 주 화면 입력창은 빈 상태 유지.?side=crew:doyun-researcher/?side=doc:notes/….md반영 확인. 지금 보는 크루의 사이드바 버튼disabled확인.미검증
🤖 Generated with Claude Code