@humanbased/crosscheck 1.6.0-beta.8 → 1.6.1-beta.0

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.
Files changed (108) hide show
  1. package/README.md +2 -0
  2. package/crosscheck.config.example.yml +17 -4
  3. package/dist/__tests__/board.test.js +68 -30
  4. package/dist/__tests__/board.test.js.map +1 -1
  5. package/dist/__tests__/lock-ownership.test.d.ts +2 -0
  6. package/dist/__tests__/lock-ownership.test.d.ts.map +1 -0
  7. package/dist/__tests__/lock-ownership.test.js +167 -0
  8. package/dist/__tests__/lock-ownership.test.js.map +1 -0
  9. package/dist/__tests__/optimize.test.js +4 -3
  10. package/dist/__tests__/optimize.test.js.map +1 -1
  11. package/dist/__tests__/repository-cache.test.d.ts +2 -0
  12. package/dist/__tests__/repository-cache.test.d.ts.map +1 -0
  13. package/dist/__tests__/repository-cache.test.js +91 -0
  14. package/dist/__tests__/repository-cache.test.js.map +1 -0
  15. package/dist/__tests__/repository-guidance.test.js +1 -1
  16. package/dist/__tests__/repository-guidance.test.js.map +1 -1
  17. package/dist/__tests__/review-command-strategy.test.d.ts +2 -0
  18. package/dist/__tests__/review-command-strategy.test.d.ts.map +1 -0
  19. package/dist/__tests__/review-command-strategy.test.js +194 -0
  20. package/dist/__tests__/review-command-strategy.test.js.map +1 -0
  21. package/dist/__tests__/review-efficiency-config.test.d.ts +2 -0
  22. package/dist/__tests__/review-efficiency-config.test.d.ts.map +1 -0
  23. package/dist/__tests__/review-efficiency-config.test.js +16 -0
  24. package/dist/__tests__/review-efficiency-config.test.js.map +1 -0
  25. package/dist/__tests__/review-memory.test.d.ts +2 -0
  26. package/dist/__tests__/review-memory.test.d.ts.map +1 -0
  27. package/dist/__tests__/review-memory.test.js +252 -0
  28. package/dist/__tests__/review-memory.test.js.map +1 -0
  29. package/dist/__tests__/review-models.test.js +1 -0
  30. package/dist/__tests__/review-models.test.js.map +1 -1
  31. package/dist/__tests__/review-strategy.test.js +78 -3
  32. package/dist/__tests__/review-strategy.test.js.map +1 -1
  33. package/dist/__tests__/vendor-error-summary.test.d.ts +2 -0
  34. package/dist/__tests__/vendor-error-summary.test.d.ts.map +1 -0
  35. package/dist/__tests__/vendor-error-summary.test.js +74 -0
  36. package/dist/__tests__/vendor-error-summary.test.js.map +1 -0
  37. package/dist/__tests__/watch-concurrency.test.d.ts +2 -0
  38. package/dist/__tests__/watch-concurrency.test.d.ts.map +1 -0
  39. package/dist/__tests__/watch-concurrency.test.js +53 -0
  40. package/dist/__tests__/watch-concurrency.test.js.map +1 -0
  41. package/dist/cli.js +18 -2
  42. package/dist/cli.js.map +1 -1
  43. package/dist/commands/onboard.js +2 -2
  44. package/dist/commands/onboard.js.map +1 -1
  45. package/dist/commands/review.d.ts +3 -1
  46. package/dist/commands/review.d.ts.map +1 -1
  47. package/dist/commands/review.js +146 -7
  48. package/dist/commands/review.js.map +1 -1
  49. package/dist/commands/run.d.ts.map +1 -1
  50. package/dist/commands/run.js +24 -6
  51. package/dist/commands/run.js.map +1 -1
  52. package/dist/commands/watch.d.ts +3 -0
  53. package/dist/commands/watch.d.ts.map +1 -1
  54. package/dist/commands/watch.js +170 -25
  55. package/dist/commands/watch.js.map +1 -1
  56. package/dist/config/schema.d.ts +27 -0
  57. package/dist/config/schema.d.ts.map +1 -1
  58. package/dist/config/schema.js +12 -1
  59. package/dist/config/schema.js.map +1 -1
  60. package/dist/github/review-status.d.ts +33 -0
  61. package/dist/github/review-status.d.ts.map +1 -1
  62. package/dist/github/review-status.js +94 -9
  63. package/dist/github/review-status.js.map +1 -1
  64. package/dist/lib/board.d.ts +1 -0
  65. package/dist/lib/board.d.ts.map +1 -1
  66. package/dist/lib/board.js +42 -37
  67. package/dist/lib/board.js.map +1 -1
  68. package/dist/lib/clone.d.ts +3 -0
  69. package/dist/lib/clone.d.ts.map +1 -1
  70. package/dist/lib/clone.js +21 -1
  71. package/dist/lib/clone.js.map +1 -1
  72. package/dist/lib/pr-lock.d.ts +37 -1
  73. package/dist/lib/pr-lock.d.ts.map +1 -1
  74. package/dist/lib/pr-lock.js +176 -29
  75. package/dist/lib/pr-lock.js.map +1 -1
  76. package/dist/lib/pr-workflow-state.d.ts +2 -0
  77. package/dist/lib/pr-workflow-state.d.ts.map +1 -1
  78. package/dist/lib/pr-workflow-state.js +15 -0
  79. package/dist/lib/pr-workflow-state.js.map +1 -1
  80. package/dist/lib/repository-cache.d.ts +18 -0
  81. package/dist/lib/repository-cache.d.ts.map +1 -0
  82. package/dist/lib/repository-cache.js +125 -0
  83. package/dist/lib/repository-cache.js.map +1 -0
  84. package/dist/lib/review-memory.d.ts +212 -0
  85. package/dist/lib/review-memory.d.ts.map +1 -0
  86. package/dist/lib/review-memory.js +305 -0
  87. package/dist/lib/review-memory.js.map +1 -0
  88. package/dist/lib/review-models.d.ts +2 -2
  89. package/dist/lib/review-models.js +2 -2
  90. package/dist/lib/runner.d.ts +37 -2
  91. package/dist/lib/runner.d.ts.map +1 -1
  92. package/dist/lib/runner.js +81 -28
  93. package/dist/lib/runner.js.map +1 -1
  94. package/dist/lib/tips.js +1 -1
  95. package/dist/lib/tips.js.map +1 -1
  96. package/dist/lib/vendor-error-summary.d.ts +19 -0
  97. package/dist/lib/vendor-error-summary.d.ts.map +1 -0
  98. package/dist/lib/vendor-error-summary.js +95 -0
  99. package/dist/lib/vendor-error-summary.js.map +1 -0
  100. package/dist/reviewers/claude.d.ts.map +1 -1
  101. package/dist/reviewers/claude.js +2 -1
  102. package/dist/reviewers/claude.js.map +1 -1
  103. package/dist/reviewers/codex.d.ts.map +1 -1
  104. package/dist/reviewers/codex.js +2 -1
  105. package/dist/reviewers/codex.js.map +1 -1
  106. package/docs/dynamic-thoroughness.md +7 -4
  107. package/get-started.md +83 -9
  108. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-memory.js","sourceRoot":"","sources":["../../src/lib/review-memory.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ export declare const CODEX_TIER_MODELS_API: Record<QualityConfig['tier'], string
4
4
  /**
5
5
  * The tier in force for one call. Under `quality.mode: 'smart'` the per-PR
6
6
  * strategy wins; otherwise the single configured tier applies. Falls back to the
7
- * configured tier whenever no strategy resolved — one-shot commands, or a PR
8
- * whose file list could not be read.
7
+ * configured tier whenever no strategy tier is in force: a PR whose file list
8
+ * could not be read, or a class that names no tier.
9
9
  */
10
10
  export declare function effectiveTier(quality: QualityConfig, strategy?: {
11
11
  tier: QualityConfig['tier'] | null;
@@ -17,8 +17,8 @@ export const CODEX_TIER_MODELS_API = reviewModelTierConfig.codex_api;
17
17
  /**
18
18
  * The tier in force for one call. Under `quality.mode: 'smart'` the per-PR
19
19
  * strategy wins; otherwise the single configured tier applies. Falls back to the
20
- * configured tier whenever no strategy resolved — one-shot commands, or a PR
21
- * whose file list could not be read.
20
+ * configured tier whenever no strategy tier is in force: a PR whose file list
21
+ * could not be read, or a class that names no tier.
22
22
  */
23
23
  export function effectiveTier(quality, strategy) {
24
24
  if (quality.mode === 'smart' && strategy?.tier)
@@ -180,6 +180,15 @@ export declare function resolveConflictResolveVendor(stepReviewer: string, origi
180
180
  usedHumanFallback: boolean;
181
181
  substitutedOriginVendor?: 'claude' | 'codex';
182
182
  };
183
+ /**
184
+ * The clone and the PR fields classification reads. Narrower than
185
+ * WorkflowContext so `crosscheck review`, which clones the same way but runs no
186
+ * workflow, classifies through the same functions as run and watch.
187
+ */
188
+ export interface PRContextSource {
189
+ tmpDir: string;
190
+ pr: Pick<WorkflowContext['pr'], 'title' | 'base' | 'labels'>;
191
+ }
183
192
  /**
184
193
  * Builds the input the review strategy classifies on, from the already-cloned
185
194
  * working copy rather than the API — the runner has the repo on disk, so this
@@ -188,7 +197,7 @@ export declare function resolveConflictResolveVendor(stepReviewer: string, origi
188
197
  * Returns null when the diff can't be read. Callers then fall back to the
189
198
  * configured tier, which is why `quality.tier` stays meaningful under smart mode.
190
199
  */
191
- export declare function buildPRContext(ctx: WorkflowContext): PRContext | null;
200
+ export declare function buildPRContext(ctx: PRContextSource): PRContext | null;
192
201
  /**
193
202
  * Folds a resolved strategy into the quality config the reviewers receive, so
194
203
  * every downstream `quality.tier` read picks up the per-PR decision without
@@ -227,11 +236,37 @@ export declare function strategyVendor<T extends {
227
236
  export declare function strategyDeterminedModel(vendor: {
228
237
  model?: string | null;
229
238
  }, strategy: ResolvedStrategy | null, resolvedModel?: string): boolean;
239
+ /**
240
+ * The strategy fields a review comment may cite, or undefined when citing them
241
+ * would name a tier the run did not use. One function so run/watch and
242
+ * `crosscheck review` cannot disagree about when a tier is named.
243
+ *
244
+ * Takes the class as matched and the class as run this round, because
245
+ * resolveRoundExecution fills a null class tier from `quality.tier`. A class
246
+ * that names no tier only runs when an explicit request overrides its skip, and
247
+ * then the configured tier ran, not one the class chose — so the class and its
248
+ * reason are cited with a null tier, which the comment renders without one.
249
+ */
250
+ export declare function strategyCitation(vendor: {
251
+ model?: string | null;
252
+ }, classStrategy: ResolvedStrategy | null, roundStrategy: ResolvedStrategy | null, resolvedModel: string): {
253
+ version: string;
254
+ classId: string;
255
+ tier: string | null;
256
+ reason: string;
257
+ } | undefined;
230
258
  /**
231
259
  * Classifies the PR and resolves the strategy, or returns null under
232
260
  * `quality.mode: fixed` so the single configured tier applies unchanged.
233
261
  */
234
- export declare function resolveStrategyForPR(ctx: WorkflowContext): ResolvedStrategy | null;
262
+ export declare function resolveStrategyForPR(ctx: PRContextSource & {
263
+ config: Pick<Config, 'quality'>;
264
+ }): ResolvedStrategy | null;
265
+ /**
266
+ * Records how classification resolved for one PR. Shared by run/watch and
267
+ * `crosscheck review` so both write the same events with the same fields.
268
+ */
269
+ export declare function logStrategyResolution(quality: Config['quality'], strategy: ResolvedStrategy | null, repo: string, prNumber: number): void;
235
270
  export interface RoundExecution {
236
271
  /** The class as escalated for this round; null under fixed mode. */
237
272
  strategy: ResolvedStrategy | null;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,8 @@ import { buildStepIdentityFields } from '../lib/event-fields.js';
29
29
  import { planAutoFixDelivery, forceWithLeaseArgs, parseLsRemoteOid, isLeaseRejection, assessFixBranchOwnership, isInvalidBaseError } from '../lib/auto-fix-branch.js';
30
30
  import { prOpenToVerdictMs } from '../lib/adoption.js';
31
31
  import { buildAttributionFooter, buildFixAppliedCommentBody, buildFixFailedCommentBody, buildConflictResolvedCommentBody, buildRetriedReviewBanner } from '../lib/comment-bodies.js';
32
- import { linearWritePossible, loadWorkflow, loadHarnessSection, evaluateWhen } from '../lib/workflow.js';
32
+ import { linearWritePossible, loadWorkflow, loadHarnessSection, evaluateWhen, DEFAULT_REVIEW_INSTRUCTIONS } from '../lib/workflow.js';
33
+ import { prepareReviewPlan, finishReviewOrFallback, savePublishedReview, assertReviewFresh } from '../lib/review-memory.js';
33
34
  import { isSubscriptionLimitError, isVendorUnavailableError } from '../lib/smart-switch.js';
34
35
  import { tierTimeoutMs } from '../reviewers/tier-timeouts.js';
35
36
  import { loadSkillCatalog } from '../skills/catalog.js';
@@ -475,6 +476,23 @@ export function strategyDeterminedModel(vendor, strategy, resolvedModel) {
475
476
  // 'default' means the vendor CLI chose, not us.
476
477
  return resolvedModel !== 'default';
477
478
  }
479
+ /**
480
+ * The strategy fields a review comment may cite, or undefined when citing them
481
+ * would name a tier the run did not use. One function so run/watch and
482
+ * `crosscheck review` cannot disagree about when a tier is named.
483
+ *
484
+ * Takes the class as matched and the class as run this round, because
485
+ * resolveRoundExecution fills a null class tier from `quality.tier`. A class
486
+ * that names no tier only runs when an explicit request overrides its skip, and
487
+ * then the configured tier ran, not one the class chose — so the class and its
488
+ * reason are cited with a null tier, which the comment renders without one.
489
+ */
490
+ export function strategyCitation(vendor, classStrategy, roundStrategy, resolvedModel) {
491
+ if (!roundStrategy || !strategyDeterminedModel(vendor, roundStrategy, resolvedModel))
492
+ return undefined;
493
+ const tier = classStrategy?.tier === null ? null : roundStrategy.tier;
494
+ return { version: roundStrategy.version, classId: roundStrategy.classId, tier, reason: roundStrategy.reason };
495
+ }
478
496
  /**
479
497
  * Classifies the PR and resolves the strategy, or returns null under
480
498
  * `quality.mode: fixed` so the single configured tier applies unchanged.
@@ -487,6 +505,34 @@ export function resolveStrategyForPR(ctx) {
487
505
  return null;
488
506
  return resolveReviewStrategy(prContext);
489
507
  }
508
+ /**
509
+ * Records how classification resolved for one PR. Shared by run/watch and
510
+ * `crosscheck review` so both write the same events with the same fields.
511
+ */
512
+ export function logStrategyResolution(quality, strategy, repo, prNumber) {
513
+ if (quality.mode === 'smart' && !strategy) {
514
+ // A smart-mode install quietly behaving as fixed is otherwise invisible.
515
+ fileLog({ level: 'warn', event: 'strategy_unresolved', repo, pr: prNumber, reason: 'pr_context_unavailable', fallback_tier: quality.tier });
516
+ }
517
+ else if (strategy) {
518
+ // A config written before `mode` existed parses as smart on upgrade, so a
519
+ // hand-set `quality.tier` can be silently overridden. onboard preserves the
520
+ // old tier by reading raw yaml, but that only helps users who re-run it —
521
+ // so record it here for everyone else.
522
+ //
523
+ // info, not warn: `config.quality.tier` carries a schema default of
524
+ // `balanced` on every install, so the parsed config cannot tell a hand-set
525
+ // tier from an unset one. Five of the eight classes resolve to something
526
+ // other than balanced, which made this fire on the majority of PRs — and
527
+ // recommend a `mode: fixed` opt-out to users who never chose a tier at all.
528
+ // Only the raw yaml can draw that distinction (thoroughnessDefaults), and it
529
+ // is not available on this path.
530
+ if (strategy.tier && strategy.tier !== quality.tier) {
531
+ fileLog({ level: 'info', event: 'strategy_overrode_configured_tier', repo, pr: prNumber, configured_tier: quality.tier, applied_tier: strategy.tier, pr_class: strategy.classId });
532
+ }
533
+ fileLog({ level: 'info', event: 'strategy_resolved', repo, pr: prNumber, strategy_version: strategy.version, pr_class: strategy.classId, tier: strategy.tier, effort: strategy.effort, steps: strategy.steps, domain: strategy.domain });
534
+ }
535
+ }
490
536
  /**
491
537
  * The tier, effort, and vendor configs every step of one round runs under.
492
538
  *
@@ -679,28 +725,7 @@ export async function runWorkflow(ctx) {
679
725
  // all-or-nothing answer on every install. Independent of `strategy` for that
680
726
  // reason, and cheap — buildPRContext is one `git diff --numstat`.
681
727
  const docOnlyChange = isDocOnlyChange(buildPRContext(ctx)?.files ?? []);
682
- if (config.quality.mode === 'smart' && !strategy) {
683
- // A smart-mode install quietly behaving as fixed is otherwise invisible.
684
- fileLog({ level: 'warn', event: 'strategy_unresolved', repo: `${owner}/${repoName}`, pr: prNumber, reason: 'pr_context_unavailable', fallback_tier: config.quality.tier });
685
- }
686
- else if (strategy) {
687
- // A config written before `mode` existed parses as smart on upgrade, so a
688
- // hand-set `quality.tier` can be silently overridden. onboard preserves the
689
- // old tier by reading raw yaml, but that only helps users who re-run it —
690
- // so record it here for everyone else.
691
- //
692
- // info, not warn: `config.quality.tier` carries a schema default of
693
- // `balanced` on every install, so the parsed config cannot tell a hand-set
694
- // tier from an unset one. Five of the eight classes resolve to something
695
- // other than balanced, which made this fire on the majority of PRs — and
696
- // recommend a `mode: fixed` opt-out to users who never chose a tier at all.
697
- // Only the raw yaml can draw that distinction (thoroughnessDefaults), and it
698
- // is not available on this path.
699
- if (strategy.tier && strategy.tier !== config.quality.tier) {
700
- fileLog({ level: 'info', event: 'strategy_overrode_configured_tier', repo: `${owner}/${repoName}`, pr: prNumber, configured_tier: config.quality.tier, applied_tier: strategy.tier, pr_class: strategy.classId });
701
- }
702
- fileLog({ level: 'info', event: 'strategy_resolved', repo: `${owner}/${repoName}`, pr: prNumber, strategy_version: strategy.version, pr_class: strategy.classId, tier: strategy.tier, effort: strategy.effort, steps: strategy.steps, domain: strategy.domain });
703
- }
728
+ logStrategyResolution(config.quality, strategy, `${owner}/${repoName}`, prNumber);
704
729
  // The class's step set NARROWS the configured pipeline; it never widens it.
705
730
  // A repo set to review-only stays review-only whatever the class says, which
706
731
  // matches how per-repo `crosscheck alter` overrides compose.
@@ -935,16 +960,22 @@ export async function runWorkflow(ctx) {
935
960
  const reviewContext = [ctx.issueContext, humanFeedbackBlock].filter(Boolean).join('\n\n') || undefined;
936
961
  // Under `quality.mode: smart` the PR's class picks the tier; under fixed
937
962
  // this is config.quality untouched.
963
+ const memoryPlan = config.quality.review_memory ? prepareReviewPlan({
964
+ repoDir: tmpDir, subject: `${owner}/${repoName}#${prNumber}`, baseBranch: pr.base.ref,
965
+ instructions: step.instructions ?? DEFAULT_REVIEW_INSTRUCTIONS, policy: JSON.stringify(config.quality),
966
+ }) : undefined;
967
+ if (memoryPlan)
968
+ fileLog({ level: 'info', event: 'review_memory_plan', repo: `${owner}/${repoName}`, pr: prNumber, reviewer, ...stepIdentity, mode: memoryPlan.mode, reason: memoryPlan.reason });
938
969
  const runReviewWithVendor = async (candidate) => {
939
970
  if (candidate === 'codex') {
940
971
  ;
941
- ({ review: rawReview, tokensUsed, model, effort, retried } = await runCodexReview(tmpDir, pr.base.ref, pr.title, quality, codexVendor, step.instructions, undefined, ctx.overrideTimeoutMs ?? vendorTimeoutMs(config.vendors.codex.timeout_sec), log, reviewContext, skillSession, config.skills.codex_full_access));
972
+ ({ review: rawReview, tokensUsed, model, effort, retried } = await runCodexReview(tmpDir, pr.base.ref, pr.title, quality, codexVendor, memoryPlan?.instructions ?? step.instructions, undefined, ctx.overrideTimeoutMs ?? vendorTimeoutMs(config.vendors.codex.timeout_sec), log, reviewContext, skillSession, config.skills.codex_full_access));
942
973
  inputTokens = undefined;
943
974
  outputTokens = undefined;
944
975
  }
945
976
  else {
946
977
  ;
947
- ({ review: rawReview, tokensUsed, inputTokens, outputTokens, model, effort, retried } = await runClaudeReview(tmpDir, pr.base.ref, pr.title, quality, claudeVendor, config.budget.per_review_usd, step.instructions, undefined, ctx.overrideTimeoutMs ?? vendorTimeoutMs(config.vendors.claude.timeout_sec), !!ctx.roundMode, log, reviewContext, skillSession));
978
+ ({ review: rawReview, tokensUsed, inputTokens, outputTokens, model, effort, retried } = await runClaudeReview(tmpDir, pr.base.ref, pr.title, quality, claudeVendor, config.budget.per_review_usd, memoryPlan?.instructions ?? step.instructions, undefined, ctx.overrideTimeoutMs ?? vendorTimeoutMs(config.vendors.claude.timeout_sec), !!ctx.roundMode, log, reviewContext, skillSession));
948
979
  }
949
980
  };
950
981
  try {
@@ -1011,6 +1042,16 @@ export async function runWorkflow(ctx) {
1011
1042
  if (retried) {
1012
1043
  fileLog({ level: 'info', event: 'review_retried', repo: `${owner}/${repoName}`, pr: prNumber, reviewer, ...stepIdentity, retry_timeout_sec: Math.round(retried.timeoutMs / 1000), retry_delay_sec: Math.round(retried.delayMs / 1000), ...(ctx.round !== undefined && { round: ctx.round }), ...triggerField });
1013
1044
  }
1045
+ const structured = memoryPlan ? finishReviewOrFallback(memoryPlan, rawReview) : undefined;
1046
+ if (structured)
1047
+ rawReview = structured.text;
1048
+ if (structured?.adjustments?.length) {
1049
+ fileLog({ level: 'info', event: 'structured_review_reconciled', repo: `${owner}/${repoName}`, pr: prNumber, reviewer, ...stepIdentity, adjustments: structured.adjustments });
1050
+ }
1051
+ if (structured?.fallbackReason) {
1052
+ fileLog({ level: 'warn', event: 'structured_review_fallback', repo: `${owner}/${repoName}`, pr: prNumber, reviewer, ...stepIdentity, reason: structured.fallbackReason });
1053
+ log(chalk.yellow(` structured review unusable (${structured.fallbackReason}) — posting raw output without a verdict`));
1054
+ }
1014
1055
  const parsed = parseVerdict(rawReview);
1015
1056
  const { clean } = parsed;
1016
1057
  if (parsed.verdict === null) {
@@ -1106,13 +1147,25 @@ export async function runWorkflow(ctx) {
1106
1147
  // explicable from the log rather than looking like the head-matching case.
1107
1148
  fileLog({ level: 'warn', event: 'verdict_sha_off_head', repo: `${owner}/${repoName}`, pr: prNumber, reviewer, ...stepIdentity, verdict, sha: annotationSha, head_sha: shaVerification.headSha, ...(ctx.round !== undefined && { round: ctx.round }), ...triggerField });
1108
1149
  }
1150
+ if (memoryPlan) {
1151
+ const { data: current } = await octokit.rest.pulls.get({ owner, repo: repoName, pull_number: prNumber });
1152
+ assertReviewFresh(memoryPlan, current, annotationSha, shaVerification.headSha);
1153
+ }
1109
1154
  const commentId = await postReviewComment(octokit, owner, repoName, prNumber, commentBody, reviewer, config.brand, origin, verdict ?? undefined, priorReviewId, isRecheck, model, effectiveType, ctx.round ?? 1, annotationSha, nextStepAnnotation, ctx.trigger === 'kickass' ? 'kickass' : undefined, activatedSkills, effort,
1110
1155
  // Withheld when an explicit vendors.*.model overrode the tier map:
1111
1156
  // citing a tier the run did not use would assert a routing decision
1112
1157
  // that never happened.
1113
- strategyDeterminedModel(reviewer === 'codex' ? config.vendors.codex : config.vendors.claude, roundStrategy, model) && roundStrategy?.tier
1114
- ? { version: roundStrategy.version, classId: roundStrategy.classId, tier: roundStrategy.tier, reason: roundStrategy.reason }
1115
- : undefined);
1158
+ strategyCitation(reviewer === 'codex' ? config.vendors.codex : config.vendors.claude, strategy, roundStrategy, model));
1159
+ if (memoryPlan && structured?.snapshot) {
1160
+ // The review is already posted; a memory write failure only costs the next review its delta.
1161
+ try {
1162
+ if (!await savePublishedReview(memoryPlan, structured.snapshot))
1163
+ fileLog({ level: 'info', event: 'review_memory_superseded', repo: `${owner}/${repoName}`, pr: prNumber });
1164
+ }
1165
+ catch (err) {
1166
+ fileLog({ level: 'warn', event: 'review_memory_save_failed', repo: `${owner}/${repoName}`, pr: prNumber, error: err instanceof Error ? err.message : String(err) });
1167
+ }
1168
+ }
1116
1169
  const commentUrl = `github.com/${owner}/${repoName}/pull/${prNumber}`;
1117
1170
  fileLog({ level: 'info', event: 'comment_posted', repo: `${owner}/${repoName}`, pr: prNumber, url: `https://${commentUrl}` });
1118
1171
  // A posted verdict that blocks the merge is the product's whole reason to