Skip to content

[F1 보강] 정체성 자료 불일치 시 페르소나 잠금 보존 #17

Description

@thisisjun786

상위 로드맵: #16. 기준: F1 PR #14 + 수정 PR #15 (4ed1ff8). 구현 전 PR #15의 병합 결과와 최신 dev를 대조한다.

Expected and observed behavior

페르소나 생성 시 정체성 자료에 대상 개인이 없으면 profileFor가 null을 반환하고 lockedFor가 모든 축을 잠금 해제로 처리한다. 실제 자료 누락과 의도적인 정책 부재를 구분해야 한다. PR #15는 이 결함을 수정하지 않았다.

Reproduction

  1. 대상 개인 A의 trait/habit/attitude 축이 있는 정의와, 개인 B만 포함한 유효한 identity snapshot을 만든다.
  2. personaSchemaFromLifeDefinition에 대상 agentId A와 그 identity snapshot을 전달한다.
  3. 현재 profileFor가 A를 찾지 못해 null을 반환하고 lockedFor가 false가 되는 경로를 확인한다. 기대 결과는 자료 불일치 거부이며 전 축 잠금 해제가 아니다.

Versions and environment

F1 수정 기준 4ed1ff8, TypeScript/Bun 소스 계약. 운영 설치본의 잠금 변경을 재현했다는 주장은 아니다.

Desired outcome

다른 개인의 자료나 누락된 프로필로 기존 잠금이 풀리지 않는다. 기존 LIFE 경로의 불일치 처리와 의미를 맞춘다.

Dependencies

Scope

  • MODIFY packages/lina-core/src/agents/persona-schema.ts: 제공된 identity snapshot에 agentId가 없으면 명시적 오류. identity 자체가 없는 기존 입력의 허용 범위는 원래 계약과 대조해 보존한다.
  • MODIFY 해당 PersonaSchema 테스트: 누락을 잠금 해제의 정상 결과로 기대하던 사례를 교체하고 manual 및 선택 축 잠금 보존을 검사한다. packages/lina-core/src/world/views.ts의 기존 거부 동작을 비교 기준으로 삼는다.
  • 기존 데이터나 잠금 설정을 자동 수정하지 않는다. 제품 소비자가 불일치를 정상 schema로 저장하지 않는지도 확인한다.

Acceptance criteria

  • 대상 개인이 없는 제공된 자료로 생성하면 실패하고 기존 schema·잠금·digest가 유지된다.
  • 올바른 개인의 manual 잠금과 trait/habit/attitude 선택 잠금이 유지된다. 정책 부재와 잘못된 자료를 별도 사례로 검사한다.
  • 실패 회귀 테스트 → 수정 후 통과, 인접 PersonaSchema/LIFE identity 테스트와 타입 검사 결과를 PR에 남긴다.

Alternatives and constraints

이슈 등록은 후속 수정 범위를 기록하는 작업이다. 현재 배포본의 잠금이 풀렸다고 주장하지 않는다.

PersonaSchema · 017 후속 계약

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions