Skip to content

feat: 최근 프로젝트와 프로젝트별 작업 구성 저장 - #44

Merged
safethecode merged 4 commits into
mainfrom
feat/project-workspaces
Nov 14, 2026
Merged

safethecode merged 4 commits into
mainfrom
feat/project-workspaces

Conversation

@safethecode

Copy link
Copy Markdown
Owner

프로젝트를 다시 찾고 터미널·웹 칸을 매번 배치하는 일을 줄이도록 파일 메뉴에 최근 프로젝트와 작업 구성을 추가했습니다.

  • 최근 폴더12개를 경로로 구분해 새 창에서 엽니다. 목록을 지워도 저장 구성과 프로젝트 파일은 남습니다.
  • 현재 구성 저장…(⌘⇧S)에서 배치·칸 이름·작업 경로·웹 주소·선택/탭 보기·파일 트리 설정을 이름 붙여 저장합니다. 구성은 프로젝트마다20개/전체100개까지이며 같은 이름은 덮어쓰기 확인,삭제는 별도 선택을 거칩니다.
  • 구성을 고르면 새 ID의 창과 새 셸을 엽니다. 현재 창의 프로세스·입력을 유지하며 실행 명령/환경변수/웹 입력은 저장하지 않습니다.
  • 세션과 별도인 projects.json을 읽고 검증한 뒤 atomic으로 갱신합니다. 손상·지원하지 않는 버전·크기 초과·쓰기 실패에서 기존 기록을 보존합니다. 없는 프로젝트 폴더는 경로를 안내하고 새 창을 만들지 않습니다.

기존 rail/추가 버튼·canvas·색·경계를 유지하고 native 메뉴/NSAlert와 기존14pt/28pt blur inset 입력을 재사용했습니다. 새 앱 소유 문구는 한국어입니다.

검증:

  • ./scripts/check.sh:60개 통과,26.220초. 프로젝트 격리/중복/20·100개 한도/갱신·삭제/혼합 snapshot/바이트 보존과 실제 메뉴 action→독립 새 창·cwd·기존 셸 응답을 검사했습니다.
  • 분리된 저장 위치의 실제 릴리스 앱에서 두 셸+로컬 웹 저장/불러오기,기존 환경변수·웹 입력 보존,두 모드,한글65자 오류→수정,덮어쓰기 취소/갱신,새 버전 오류→복구/재시도,삭제/최근 분리,없는 폴더,종료/재실행을 확인했습니다.
  • 사용자 원본 격자와 현재 다크4칸을 대조하고 디자인 게이트 catalog6이 PASS했습니다. 이전 미변경 자산/기능/보조기술 전체를 새 검증으로 표시하지 않습니다.

상세 관찰과 미확인 범위: design/evidence/project-library.md. 셀프 리뷰이며 독립 승인과 구분합니다.

@coderabbitai

coderabbitai Bot commented Nov 14, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 4 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5d35c251-4aad-4844-a17b-4f29f411c3c1
Commits

Reviewing files that changed from the base of the PR and between a3a1b3b and ac3f704.

Files selected for processing: 18

  • DESIGN.md
  • README.md
  • Sources/Chop/AppDelegate.swift
  • Sources/Chop/ProjectLibraryController.swift
  • Sources/Chop/WorkspaceSplitView.swift
  • Sources/Chop/WorkspaceWindowManager.swift
  • Sources/ChopCore/ProjectLibrary.swift
  • Sources/ChopCore/ProjectLibraryStore.swift
  • Tests/ChopCoreTests/ProjectLibraryTests.swift
  • Tests/ChopTests/ProjectLibraryTests.swift
  • design/evidence/project-library.md
  • design/failure-events.jsonl
  • design/gate-contract.json
  • design/gate-report.json
  • design/project-library-reference/comparison.json
  • design/project-library-reference/core-review.json
  • design/project-library-reference/source-snapshot.json
  • design/review.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@safethecode

Copy link
Copy Markdown
Owner Author

셀프 리뷰입니다. 독립적인 외부 승인으로 표시하지 않습니다.

  • 신규 창 방문 callback을 세션 onChange와 분리했습니다. 자동 복원은 최근 이력 순서를 바꾸지 않으며,구성은 새로운 window UUID로 열어 기존 workspace/surface를 유지합니다.
  • 저장/삭제는 현재 창의 projectDirectory 범위로 제한합니다. 이름 정규화/대소문자 중복과 기존 UUID를 검사해 다른 프로젝트의 구성을 덮어쓰거나 삭제하지 않습니다.
  • store는 모든 mutation 전에 디스크를 읽고 검증합니다. 이름/배치·손상·새 버전·파일 크기·쓰기 오류에서 원본 바이트를 보존하고,성공 뒤에만 UI의 library를 교체합니다.
  • NSMenu의 빈 항목/비활성,메뉴를 먼저 열지 않은 저장 단축키,이름 오류→수정,덮어쓰기 취소/갱신,삭제 후 focus,없는 폴더와 종료/재실행을 실제 앱에서 확인했습니다. native 입력은 기존 inset 컴포넌트를 재사용합니다.
  • 60개 check.sh 검사와 실제 두 모드 앱 동작이 통과했고 catalog6 디자인 게이트도 PASS했습니다. 검증용 앱/HTTP 서버를 종료했으며 기존 사용자 Chop은 유지했습니다.

현재 확인 범위에서 남은 수정 사항은 없습니다. CodeRabbit의 후속 자동 검토는 이번 실행에서 건너뛰었으므로 자동 재승인으로 표시하지 않습니다. 최종 CI를 확인한 뒤 머지합니다.

@safethecode
safethecode merged commit f825264 into main Nov 14, 2026
2 checks passed
@safethecode
safethecode deleted the feat/project-workspaces branch November 14, 2026 16:49
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.

1 participant