저장소 경로는 그 경로를 소유한 컴퓨터에서만 의미가 있습니다. 노트북과 서버에 모두 demo 폴더가 있어도 하나를 열면서 다른 폴더를 선택해서는 안 됩니다. 2026년 11월 9일 Genesis main에 병합된 변경은 Projects 페이지 전반의 최근 프로젝트 추적을 데이터베이스 기반 등록부로 교체하고, 선택한 노드를 통해 프로젝트를 활성화하도록 했습니다. Projects 통합 커밋

프로젝트 폴더가 호스트별 보관함에 나뉘고 해당 등록 태그가 붙어 있는 모습

다시 열어도 유지되는 경로의 식별 정보

Virtual Context Tree(VCT, 가상 컨텍스트 트리)는 운영체제의 절대 경로를 vct:///projects/demo 같은 정규 지점에 연결합니다. 마운트는 이 매핑으로, 지점, 경로, 표시 이름, 마지막으로 연 시각을 기록합니다. 저장소를 옮기거나 파일시스템을 마운트하지 않고 탐색에 안정적인 식별 정보를 제공합니다. 등록부 구현

같은 정규화 경로를 다시 등록하면 지점은 유지한 채 시각만 갱신합니다. 서로 다른 경로의 마지막 폴더명이 같으면 필요에 따라 접미사를 붙여 구분합니다. 기존 경로가 사라졌고 새 경로의 표시 이름과 지점의 마지막 이름이 일치하면 해당 지점을 재사용할 수 있습니다. 이는 구체적인 이전 규칙이며 비슷한 폴더 이름만으로 같은 프로젝트라고 추정하는 것은 아닙니다. 식별 규칙

영속 저장은 작업 저장소의 SQLite vct_mounts 테이블이 담당합니다. 실행 중인 VCT 프로세스는 읽기 캐시를 유지합니다. 변경은 먼저 테이블 전체에 원자적으로 기록한 뒤 캐시에 반영합니다. 저장에 실패하면 오류를 반환하고 이전 상태를 그대로 둡니다. 성공하면 노드 정보가 포함된 알림을 보내 저장된 식별 정보와 화면 갱신을 연결합니다.

등록부에는 한도가 있습니다. 기본적으로 최신 마운트 100개를 유지하며 초과하면 가장 오래된 항목을 제거합니다. 일상적인 탐색 기록이므로 지금까지 연 모든 저장소를 무제한으로 보관하는 아카이브로 취급해서는 안 됩니다. 저장과 용량

검색과 열기에 같은 기록 사용하기

Projects 페이지와 프로젝트 팔레트는 이제 등록된 마운트를 사용합니다. 프로젝트를 열거나 생성하면 노드 인식 mount_project 인터페이스를 호출한 뒤 목록을 다시 불러옵니다. 경로 제안은 등록 경로를 대소문자 구분 없이 먼저 검색하고 파일시스템 접두사 제안을 더한 뒤 중복을 제거합니다. 익숙한 경로 일부를 입력해 상위 폴더부터 다시 탐색하지 않고 등록 프로젝트를 찾을 수 있습니다. 탐색 변경

현재 프로젝트의 VCT 지점 표시는 불러온 마운트에서 찾습니다. 레이블을 그리기 위해 새 프로젝트를 등록하지는 않습니다. 프로젝트를 잊는 동작은 등록 항목을 제거하며 저장소 파일을 삭제하지 않습니다. 탐색 동작과 실제 작업 변경을 구분하는 방식입니다.

선택한 호스트를 실행 경로에 포함하기

로컬과 SSH 서버에 각각 demo 체크아웃이 있는 개발자를 생각해 보십시오. 원격 호스트를 선택하면 그 호스트의 프로젝트 목록을 불러옵니다. 연결 대기 중에는 로컬 항목을 원격 후보로 보여 주지 않고 목록을 비워 둡니다. 활성화도 연결이 준비될 때까지 제한하므로 서버로 보내려던 요청이 아직 로컬인 노드에서 실행되는 일을 막습니다. 원격 우선 로딩과 활성화

원격 경로는 선택한 호스트 기준으로 해석하며 지원되는 POSIX와 Windows 절대 경로를 포함합니다. 원격 활성화는 비동기로 수행해 디렉터리 확인과 등록이 LiveView 화면을 막지 않습니다. 후속 수정은 원격 마운트 반환값을 올바르게 풀어 프로젝트에 VCT 지점을 전달합니다. 원격 마운트 수정

이 상황에서 확인할 사항은 구체적입니다. 서버에 다시 연결하고 등록 경로를 검색해 연 다음, 선택한 호스트와 표시된 프로젝트 지점을 확인하십시오. 로컬 체크아웃에서도 반복합니다. 폴더명이 비슷해도 연결 대기 중인 원격 화면이 로컬 등록부로 채워져서는 안 됩니다.

기존 프로젝트 기록을 신중하게 이어 가기

이 변경을 포함한 개발 빌드는 사용 가능한 예전 projects 행에서 VCT 마운트를 만들고 비어 있지 않은 표시 이름을 유지하며 폴더명 충돌을 처리합니다. 최신 100개 항목을 보관합니다. 빈 경로나 상대 경로는 로그에 남기고 건너뜁니다. 예전 테이블을 읽을 수 없으면 마이그레이션을 중단하고 롤백해 테이블과 행을 보존합니다. 읽기 실패를 빈 목록으로 처리하지 않습니다. 마이그레이션 보호와 업스트림 테스트 범위

기존 작업 공간에서 이런 빌드를 시도하기 전에 관련 호스트별 애플리케이션 데이터를 백업하십시오. 시작 후 알려진 프로젝트가 올바른 호스트에 나타나는지, 다시 열어도 같은 지점을 유지하는지, 재시작 후에도 목록이 남는지 확인합니다. 마이그레이션 오류가 나면 빈 목록을 얻으려고 저장소를 삭제하지 말고 데이터베이스와 진단 출력을 보관해 조사하십시오.

이 작업은 개발자가 작업 위치를 선택하는 순간 프로젝트 경계를 보여 줍니다. 저장소마다 코드 이력을 분리하는 방법은 Genesis 다중 저장소 작업: 하나의 목표, 독립적인 이력에서 이어집니다.

← 뉴스로 돌아가기맨 위로 ↑