For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ko/docs/desktop/first-feature.md (or send Accept: text/markdown).
첫 기능 만들기
네이티브 셸 변경 하나에서 검증된 창까지의 엔드 투 엔드 워크스루.
초보자 연습
전제 조건: 아래 두 개의 초보자 가이드를 읽고 Desktop 로컬 설정을 완료한 다음 이 리포지토리를 루트에서 편집기로 엽니다. 셸은 시작할 때 SUPASTACK_APP_URL을 터미널 설정으로 읽습니다 — 저장된 .env 파일에서가 아닙니다.
빠른 용어: 작업 영역은 한 팀의 별도 사용자, 데이터 및 설정입니다. 서버는 신뢰할 수 있는 백엔드입니다. 제공업체 키를 브라우저 및 전화 코드에 보관하세요. 마이그레이션은 테이블을 생성하거나 업데이트하는 버전이 지정된 데이터베이스 변경입니다. AI 모델은 응답하는 엔진입니다. 모델 카탈로그는 서버의 사용 가능한 모델 ID 및 가격 목록입니다. 공급자는 AI, 이메일, 청구 서비스와 같은 외부 서비스입니다. 자격은 작업 영역에서 기능을 사용할 수 있도록 하는 부여입니다. 웹훅은 한 서비스가 다른 서비스의 URL에 보내는 메시지입니다.
1. .agents/skills/add-a-desktop-capability/SKILL.md를 열거나 — 코딩 에이전트에게 따르라고 하고 — 작은 네이티브 변경을 하나 합니다. 예를 들어 새 보기 메뉴 항목 또는 다른 소환 단축키.
2. cargo check를 실행하고 셸을 시작하고 열린 창에서 변경을 실제로 시험합니다.
3. 출시할 모든 운영 체제에서 반복합니다 — 트레이, 단축키, 메뉴 동작은 플랫폼마다 다릅니다.
사용자 정의 코드의 경우 동작 이름, 영향을 받는 메뉴 또는 단축키, 각 OS에서 발생해야 하는 것을 지정합니다. 이 태스크를 코딩 에이전트에 주고 AGENTS.md, .ai/PROJECT_CONTEXT.md 및 건드릴 파일의 .ai/ 미러를 읽게 하고, 편집 전에 파일과 검사를 나열하게 하고, diff를 보여 달라고 하십시오. 샘플 값을 사용하고 실제 비밀은 절대 붙여넣지 마십시오.
먼저 네이티브인지 제품인지 결정
사용자가 제품 UI로 경험하는 것 — 화면, 데이터, 설정 — 은 웹 앱에 속하고 자동으로 창에 도착합니다. OS 수준 동작만 Rust에 속합니다: 창, 트레이, 메뉴, 전역 단축키, 로그인 시 시작, 업데이트 확인.
apps/desktop/src-tauri/src/lib.rs
apps/desktop/src-tauri/tauri.conf.json
apps/desktop/src-tauri/capabilities/default.jsonwebview 샌드박스를 좁게 유지
webview는 capabilities/default.json이 나열하는 것만 호출할 수 있습니다. 새 플러그인이 필요한 변경은 Cargo.toml에 크레이트를 추가하고 lib.rs에 등록하고 capabilities에서 최소 권한을 부여합니다 — 와일드카드는 절대 아닙니다.
영속적인 셸 상태 — 창 위치, 줌, 업데이트 채널, 창 기본 설정 — 은 수동으로 관리하는 파일이 아니라 포함된 사이드카를 통해 앱의 데이터 디렉터리에 있습니다.
모든 대상 OS에서 검증
cargo test를 실행한 다음 Windows, macOS, Linux에서 실제 창을 엽니다: 창 상태 복원, 트레이로 닫기, 단일 인스턴스 포커스, 변경이 활성화된 상태에서의 소환 단축키. 하나의 OS가 통과해도 다른 두 개는 증명되지 않습니다.