cyrax321/continuum은 장기 실행되는 AI 에이전트를 위해 대화 덤프 대신 의미 체크포인트를 두고, 중복 부작용을 거부하는 멱등 액션 레저(action ledger)와 해시 체인으로 변조가 드러나는 이벤트 로그를 제공하는 Python 3.11+ 라이브러리다. 이 기능들을 기본 거부(deny-by-default) 방식의 MCP 서버로 노출한다. 2026년 11월 4일 GitHub 커밋 2a310f7이 이 저장소의 최신 변경이며, 실행 코드는 건드리지 않고 새 단위 테스트 파일 tests/test_idempotency_ledger_resolution.py 413줄과 CHANGELOG.md 7줄을 추가했다. 전체 420줄 추가, 삭제 0줄이다.
테스트 대상은 resolve_authorization_id로, 레저에 저장된 과거 실행 기록에서 중복 실행을 막을 때 쓰는 승인 ID(authorization id)를 정하는 함수다. 식별 토큰이 들어 있는 저장소 기록 하나와 새로 들어온 요청의 토큰이 맞물리면 하나의 ID로 고정한다. 새 테스트는 완료된 기록이 정확히 하나일 때만 ID를 확정하고, 두 개면 모호해 만들지 않으며, 시작됨(STARTED)이나 상태 불명(UNKNOWN) 기록은 단독이면 확정하지만 둘이면 확정하지 않는다. 실패(FAILED) 기록과 다른 종류의 액션은 후보에서 빠진다. 포함 관계와 위치 판단도 함께 검증한다. 저장소 쪽 값이 더 길거나 들어온 값이 더 길어도 같은 기록으로 보고, 같은 파일명이 서로 다른 디렉터리에 있으면 다른 기록으로 본다. 매번 바뀌는 필드는 선언하면 양쪽에서 제거해 ID에 넣지 않고, 선언하지 않으면 매칭을 막는다. 저장소 접근 방식도 이름을 달리한 접근자('_replay', 'folded', 'all')와 접근이 예외를 내는 경우로 나누어 확인한다. 후속 커밋은 각 상태 분류 케이스에 두 번째 매칭을 짝지어, 상태를 놓치거나 잘못 분류하면 결과가 달라지도록 단언을 강화했다.
다만 이 커밋은 동작을 바꾼 것이 아니다. CHANGELOG는 이 항목을 테스트 전용이며 런타임 변경은 없다고 적는다. 테스트는 저장 계층을 거치지 않고 직접 만든 메모리용 대역(in-memory ledger stand-in)으로 함수를 직접 호출하므로, 실제 저장소를 통과하는 경로는 이 파일이 다루지 않는다. 반대로 같은 디렉터리의 짧은 경로 표기는 같은 기록으로 인정하는 경우도 함께 고정한다. 제공된 기록에는 라이선스 정보가 없고, CHANGELOG가 밝힌 수집 테스트 수는 최소 환경 기준 약 4,400건이다. 즉 여기서 확인되는 것은 규칙이 테스트로 고정되었다는 사실까지이며, 배포 동작 자체가 나아졌다고 읽기에는 이르다.