- ControlPlane 라우터에 워커/에이전트 구독 채널을 추가한다 - ProtoSocket 기반 실시간 양방향 채널( dispatcher, envelope, server)을 구현한다 - Forgejo push 이벤트를 provider 어댑터로 처리하도록 연동한다 - PostgreSQL 스토리지 백엔드를 분리하여 postgres.go로 신설한다 - Git engine command에 diff/checkout/merge 연쇄 연산을 추가한다 - 런타임 모델에 agentSession, runtimeChannel 스키마를 추가한다 - 데이터베이스 마이그레이션에 agent_session, runtime_channel, lease 테이블을 추가한다 - agent-contract에 Forgejo branch events 계약 문서를 작성한다 - 로드맵 마일스톤과 아카이브 작업을 갱신한다
3.9 KiB
3.9 KiB
| test_env | last_rule_updated_at |
|---|---|
| local | 2026-06-13 |
local 테스트 규칙
현재 문서를 반드시 끝까지 정독하고 작업한다. 다 읽지 않고 즉각 작업은 금지한다.
기본 local 테스트 환경은 standard remote runner다. 현재 checkout에서의 git diff --check는 편집 직후 preflight로만 사용하고, runner/runtime evidence가 필요한 검증은 원격 runner 기준으로 판단한다.
공통 규칙
- local 테스트/검증은 이 파일을 기준으로 판단한다.
- 작업 완료 검증은 변경 범위 기준으로 선택한다.
- 필수 검증을 실행하지 못하면 차단 사유로 보고한다.
- 최종 보고에는 실행 명령, 결과, 생략 사유, 남은 위험을 남긴다.
- 환경값, secret, 개인 endpoint는 tracked docs/roadmap에 쓰지 않는다.
- private input이 필요한 검증은 라우팅된 도메인/검증 시나리오별 문서를 읽고 필요한 값만 ignored local file에서 로드한다.
- raw token, password, webhook secret, provider credential, private key는 tracked docs, roadmap, task log, 최종 응답에 기록하지 않는다.
- 테스트용 Docker 환경을 작성/수정할 때는 Docker Compose
networks, IPAM subnet, static IPv4,extra_hosts, host publish 문서 어디에도192.168.0.0/24(192.168.0.X) 대역을 사용하지 않는다. - 새 Docker 테스트 subnet이 필요하면 기존 workspace 포트/네트워크 표준을 먼저 따르고, 불가피한 경우 host LAN/VPN과 충돌하지 않는
192.168.0.0/24밖의 private subnet만 사용한다. - 컨테이너 내부 listen 포트는 제품 기본값을 우선 유지하고, workspace 충돌 관리는 host publish/direct smoke 포트로 처리한다.
기본 환경
- host: standard remote runner
toki@toki-labs.com, checkout$HOME/agent-work/gito. - port: Flutter/code-server preview는
13060, Core HTTP host publish 또는 direct smoke는18060을 쓴다. Core process/container 내부 기본 listen은8080으로 유지하고,127.0.0.1:8080은 명시적 product compatibility 확인에만 사용한다. proto-socket/agent transport를 Core HTTP와 분리해 host publish해야 할 때는19060을 gito-owned 후보로 쓴다. PostgreSQL/Redis host publish가 필요할 때만15460/16360후보를 쓴다. - runtime: repo root helper(
bin/test,bin/lint,bin/build)와 변경 범위별 Go, Flutter/Dart toolchain. - package manager: Go modules, Flutter pub.
- docker: 현재 필수 compose baseline 없음. compose를 추가하거나 복제할 때는 project/network 이름을
gito로 분리하고 host publish 기본값을GITO_CORE_HOST_PORT=18060,GITO_POSTGRES_HOST_PORT=15460,GITO_REDIS_HOST_PORT=16360계열로 둔다. - external service: Forgejo/Gitea/GitHub/GitLab/Jira/IOP 같은 provider 또는 runner 연동은 도메인/검증 시나리오별 문서가 명시한 경우에만 사용한다.
- model endpoint:
- credential: ignored local file 또는
credential_refonly. 구체 credential 경로와 사용 조건은 해당 도메인/검증 시나리오별 문서를 따른다.
라우팅
- workspace-ops / smoke / root helpers, docs, agent rules, roadmap, local test rules:
agent-test/local/workspace-ops-smoke.md - core / smoke / services/core backend, control plane, worker, shell baseline:
agent-test/local/core-smoke.md - contracts / smoke / packages/contracts and agent-contract notes baseline:
agent-test/local/contracts-smoke.md - client / smoke / apps/client Flutter control surface baseline:
agent-test/local/client-smoke.md
라우팅 규칙
- 여러 항목이 맞으면 모두 읽는다.
- 도메인 매핑이나 domain rule이 있으면 각 도메인의
<domain>-smoke문서를 기본 baseline으로 둔다. - 도메인이 아직 없을 때만
project-smoke를 fallback baseline으로 둔다. - 도메인/검증 시나리오별 문서는 다른 테스트 문서로 라우팅하지 않는다.