공개 프로젝트 화면의 "활동" 이 언제나 비어 있었다. 계약에는 목록·생성·수정이 선언돼 있었지만 구현이 없었고, `project_activity` 는 0행이었다. 이 테이블은 투영을 거치지 않는다 — 공개 조회가 `visibility = 'PUBLIC'` 조건으로 직접 읽는다. 그래서 여기서 만든 줄이 곧 그 화면이다. `origin` 은 어댑터가 정한다. 이 경로로 들어오는 것은 언제나 `MANUAL` 이고 `AUTO` 는 게시 파이프라인의 몫이다. 클라이언트가 값을 정하게 두면 손으로 적은 줄에 `AUTO` 를 붙여 삭제 금지를 우회할 수 있다. 생성이 붙잡는 버전은 활동이 아니라 프로젝트의 것이다. 활동은 아직 없으므로 자기 버전을 가질 수 없고, 두 사람이 같은 타임라인을 동시에 고치는 것을 막으려면 붙잡을 것이 프로젝트뿐이다. 모든 쓰기에 `project_id` 조건이 붙는다. 경로가 둘을 함께 요구하므로 활동 id 만으로 수정하면 남의 프로젝트 줄을 고칠 수 있다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XEHXspz4rv5pB5wiiSsVDu
7 lines
523 B
Plaintext
7 lines
523 B
Plaintext
# source: tech-log-design-package contracts/openapi/studio-v1.yaml @ 436937f (master)
|
|
6fc015ca6727af88b7fb0088e02ba97846e1dd79fb0d4fc593cc79f2a3b9795f studio-v1.yaml
|
|
# source: tech-log-design-package contracts/openapi/public-v1.yaml @ 436937f (master)
|
|
37e6f804165de3e492e975075bea563ee41ae74076222a3562d3452631bfdb2b public-v1.yaml
|
|
# source: tech-log-design-package contracts/openapi/studio-management-v1.yaml @ 436937f (master)
|
|
72650735061fde627f5037571eb986cb758f44a546f065c88408399f8eec4a55 studio-management-v1.yaml
|