commitgate 0.9.4 → 0.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  이 프로젝트는 [Semantic Versioning](https://semver.org/lang/ko/)을 따릅니다.
4
4
 
5
+ ## 0.9.5
6
+
7
+ **리뷰 게이트 모델·reasoning effort를 review-call 로그에 기록** (REQ-2026-043). `req:review-codex`가 남기는 측정 로그(`workflow/.review-calls.jsonl`)의 각 행에 `review_model`·`review_reasoning_effort` 두 필드를 추가합니다. 값은 commitgate가 그 리뷰에 해소·전달한 값(`req.config.json`의 `reviewModel`/`reviewReasoningEffort`, 미지정 시 코어 기본 `gpt-5.6-terra`/`high`)이며, 두 값을 `null`로 두어 codex 전역 설정을 상속하는 경우 `null`로 기록해 **미핀 상태를 드러냅니다**. 이로써 "어떤 모델이 각 리뷰를 통과시켰는가"를 로그에서 감사·재현할 수 있습니다. 로그는 `.gitignore` 대상 측정 전용이라 커밋 산출물·승인 원장(`approvals.jsonl`)·게이트 판정에 영향이 없는 **순수 additive**이며, 기존 사용자는 무회귀입니다.
8
+
5
9
  ## 0.9.4
6
10
 
7
11
  **README 랜딩 서사 보강 + 히어로 이미지** (문서 릴리스). 0.9.3의 랜딩 위에 제품 서사를 강화했습니다 — "코드는 한 AI가 만들고, 다른 AI가 다시 봅니다"(자기 검수의 맹점 → 교대 검수 동기), "사람은 결정에만 참여합니다"(직접 챙기던 일 ↔ CommitGate가 연결 표), 4단계 흐름, 그리고 워크플로를 나타내는 히어로 이미지(빌더 AI → 리뷰어 AI → 사람 확인 → 커밋 게이트)를 추가했습니다. 이미지는 **WebP(~70KB)**로 GitHub raw URL에서 서빙 — `files[]`·npm tarball·payload 축은 **무변경**입니다. 실행 코드·의존성 변경이 없어 기존 사용자는 무회귀입니다.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commitgate",
3
- "version": "0.9.4",
3
+ "version": "0.9.5",
4
4
  "description": "CommitGate — Builder↔Reviewer(Claude↔Codex) fail-closed 커밋 게이트: 리뷰·승인·증거 없인 커밋을 통과시키지 않는 AI REQ 워크플로 kit (req:new/next/review-codex/doctor/commit)",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -572,6 +572,13 @@ export interface ReviewCallLogRow {
572
572
  observations_count: number
573
573
  timestamp: string
574
574
  policy_version: string
575
+ /**
576
+ * REQ-2026-043: commitgate가 **이 리뷰에 핀한** 모델·추론강도(감사·재현성). 값 원천은 해소된 config
577
+ * (`cfg.reviewModel`·`cfg.reviewReasoningEffort`) — codex `-c` override로 흘러가는 그 값(단일 배선, policy_version과 동형).
578
+ * `null`=미핀(`-c` 생략 → codex 전역 `~/.codex/config.toml` 상속). **codex가 실제 실행한 모델을 주장하지 않는다**(00 정직성 경계).
579
+ */
580
+ review_model: string | null
581
+ review_reasoning_effort: string | null
575
582
  }
576
583
 
577
584
  /**
@@ -591,6 +598,8 @@ export function buildReviewCallLogRow(args: {
591
598
  verdict: Verdict
592
599
  timestamp: string
593
600
  policyVersion: string
601
+ reviewModel: string | null
602
+ reviewReasoningEffort: string | null
594
603
  }): ReviewCallLogRow {
595
604
  return {
596
605
  ticket_id: args.ticketId,
@@ -602,6 +611,8 @@ export function buildReviewCallLogRow(args: {
602
611
  observations_count: args.verdict.observations?.length ?? 0,
603
612
  timestamp: args.timestamp,
604
613
  policy_version: args.policyVersion,
614
+ review_model: args.reviewModel,
615
+ review_reasoning_effort: args.reviewReasoningEffort,
605
616
  }
606
617
  }
607
618
 
@@ -2026,6 +2037,9 @@ function mainImpl(argv: string[], opts2?: { reviewer?: ReviewerAdapter }): void
2026
2037
  verdict: result.verdict,
2027
2038
  timestamp: approvedAt,
2028
2039
  policyVersion: reviewPolicyVersion(effectivePersona), // REQ-2026-034 B-2b: 전송 persona와 동일(단일 배선).
2040
+ // REQ-2026-043: codex에 흘러간 값(1942-1943)과 동일 원천. null=미핀(전역 상속).
2041
+ reviewModel: cfg.reviewModel,
2042
+ reviewReasoningEffort: cfg.reviewReasoningEffort,
2029
2043
  }),
2030
2044
  )
2031
2045