Labs 기능 졸업시키기
졸업은 기능의 Labs 스위치를 제거하고 일반 기능으로 만듭니다. 코드 작업 전에 소유자가 두 가지 별도 결정을 내립니다:
- Labs 떠나기: 기능이 영구적인 위치(자체 설정 또는 플러그인 페이지)를 얻고 Labs 관련 표현이 사라집니다.
- 기본값: 기본 활성화 또는 기본 비활성화.
이 두 결정은 독립적입니다. #197029에서 처음에 두 가지를 모두 시도했지만, 첫 번째만 출시되었습니다: Advisor는 Labs를 떠났지만 기본 비활성화로 유지되었습니다. 어느 쪽을 원하는지 물어보십시오. '졸업'이 '기본 활성화'를 의미한다고 가정하지 마십시오.
선례: Swarm 기본 활성화 (#136514), Tool Search 기본 활성화 (#154068), 기본 플러그인 UI가 Labs 옵트인 없이 활성화됨 (de50262a1f96), Labs 기능이 설정으로 이동됨 (#145460), Advisor가 Labs를 떠나고 기본 비활성화로 유지됨 (#197029).
PR 전에
- 실제 경로에서 비용 또는 위험 측정: 기능이 비용이나 토큰을 소모하거나, 옵트인하지 않은 사용자의 동작을 변경하는 경우에 해당합니다. 모의 데이터나 단위 테스트의 오늘 숫자는 증명이 아닙니다. #197074는 라이브 제공자가 반증한 모의 데이터의 캐시 비용 주장을 병합했다가 #197175에서 되돌려졌습니다. 기능 자체 PR에서 이미 확립된 라이브 측정값을 사용하고 PR 본문에 숫자를 포함하십시오.
- 알려진 결함을 먼저 해결하십시오: Advisor의 졸업은 포크 캐시 수정 (#197203, #197223, #197224, #197226)을 기다렸습니다. 기본 활성화인 경우 모든 사용자에게 캐시되지 않은 비용이 청구되었을 것이기 때문입니다.
- 남아 있는 활성화 경로를 찾으십시오: Labs 행이 사라진 후에도 사용자는 UI에서 기능을 활성화할 수 있어야 합니다. 번들 플러그인은 설정 → 플러그인 → <이름> → 활성화를 사용하고, 핵심 기능은 자체 설정 페이지가 필요합니다. 스위치가 없는 경우에만 새로 추가하십시오.
변경 사항
- 기본값: 소유자가 기본 활성화를 선택한 경우에만 변경합니다: 번들 플러그인의
openclaw.plugin.json에 있는enabledByDefault, 또는 핵심 설정 기본값. 기존에 명시적인false(또는 기능의 옵트아웃 값)는 계속 작동해야 하며, 기존true는 계속 켜져 있어야 합니다. 저장된 설정을 다시 작성하여 사용자의 선택을 변경하는 마이그레이션을 추가하지 마십시오. - Labs:
ui/src/pages/labs/labs-registry.ts에서 항목을 제거하고, 그것만 사용하던 모든 것(labs-page.tsx의 행이나 슬롯,labs-feature-state.ts항목, 문자열 및 테스트)을 제거합니다. - 문서: 기능 섹션을
docs/concepts/experimental-features.md에서 자체 참조 페이지로 이동합니다. 이전 앵커가 있는 한 문단 분량의 참고를 남기고, 졸업했으며 기본값과 켜는 위치를 명시합니다. 'Labs에는 다음이 포함됩니다...' 목록과 '현재 문서화된 플래그' 테이블을 업데이트합니다. - 문구: 매니페스트 설명, 패키지 설명, README, 플러그인 요약, 그리고 프롬프트 접두사와 같은 사용자 또는 모델 대상 텍스트에서 '실험적' 및 'OpenClaw Labs'를 제거합니다.
- 생성된 파일: 직접 병합하지 말고
pnpm config:docs:gen,pnpm plugins:inventory:gen을 다시 생성하십시오. Control UI 로케일 아티팩트(*.meta.json,*.tm.jsonl,catalog-fallbacks.json)는ui/AGENTS.md에 따라 PR에 포함하지 않으며, 로케일 새로고침 워크플로우가 업데이트합니다.pnpm ui:i18n:verify가 통과해야 합니다. - 업그레이드 증명: 기본값 변경에만 해당: 실제 업그레이드를 통해 저장된 항목이 새 기본값을 받지 않고, 명시적 끄기는 그대로 유지되며, 명시적 켜기도 그대로 유지됨을 증명하십시오. 기본값이 동일하게 유지되는 경우 업그레이드 사례가 필요하지 않습니다. #197029는 기본 활성화를 위해 구축했던 업그레이드 사례를 제거했습니다.
PR의 증명
- Control UI 스크린샷(업로드 전 개인 데이터 검사): Labs 전후, 그리고 실제 게이트웨이에서 활성화 경로가 작동하는 모습.
gh pr comment <n> --attach '<file>#<alt text>'로 첨부하십시오. - 활성화 경로가 종단 간 테스트됨: 스위치가 예상된 설정을 저장하고 재시작 없이 적용됩니다.
- 기능 테스트와 Labs 페이지 테스트가 통과하며, 테스트 줄 수 비율이 증가하지 않습니다.
- 문서 주장이 코드와 일치합니다. ClawSweeper는 Advisor의 '
everyMinutes당 최대 한 번 리뷰'가everyToolCalls가 켜져 있을 때 실제로는 거짓임을 발견했습니다.
병합 후
새 위치는 병합을 포함하는 빌드에만 나타납니다. 사용자에게 정확한 경로를 알리고, 이전 빌드에서는 여전히 Labs 스위치가 표시된다고 알려주십시오.