antelier
REAL PR REPLAY / huyn7539/vscode #1

Seven claims checked.
The source beside each.

A Copilot change to VS Code, replayed on a fork. Nine claims: seven checked and labelled present; two not checkable with the judged tier off. Recorded PR replay; no new engine run is performed on this page.

✓ present / CLAIM 1

agentMergeConfigurationChangedNotice now takes a required scope and heads the notice accordingly:

identifier appears in the expected changed hunk lines; identifiers also match src/vs/platform/agentHost/common/agentMerge.ts, src/vs/platform/agentHost/test/common/agentMerge.test.ts, src/vs/workbench/test/browser/componentFixtures/chat/chatAgentMergeNotice.fixture.ts

…/node/agentMergeController.ts @@ -15,7 +15,7 @@ L18
src/vs/platform/agentHost/node/agentMergeController.ts @@ -15,7 +15,7 @@
15 import { PullRequestRef, PullRequestSnapshot, PullRequestSubscription } from '../../github/common/githubPullRequestService.js';
16 import { GitHubRequestError } from '../../github/common/githubTransport.js';
17 import { ILogService } from '../../log/common/log.js';
18-import { AgentMergeConfigKey, AgentMergeConfiguration, AgentMergeDisableReason, AgentMergeSessionState, AgentMergeTarget, AGENT_MERGE_UNKNOWN_COMMIT, agentMergeConfigurationChangedNotice, … } from '../common/agentMerge.js';
18+import { AgentMergeConfigKey, AgentMergeConfiguration, AgentMergeConfigurationChangeScope, AgentMergeDisableReason, AgentMergeSessionOverrides, AgentMergeSessionState, AgentMergeTarget, AGENT_MERGE_UNKNOWN_COMMIT, agentMergeConfigurationChangedNotice, … } from '../common/agentMerge.js';
19 import { buildAgentMergePrompt } from '../common/agentMergePrompt.js';
20 import { IAgentHostGitStateService } from '../common/agentHostGitStateService.js';
21 import { IAgentHostGitService } from '../common/agentHostGitService.js';
✓ present / CLAIM 2

AgentMergeController derives the scope by comparing the session overrides that produced the last announcement with the current ones — a per-session change is exactly what writes overrides, so anything else that moved the effective configuration came from the defaults.

identifier appears in the expected changed hunk lines

…/node/agentMergeController.ts @@ -705,25 +711,39 @@ L740

This row’s full hunk is not embedded in the source page. Inspect the changed files on GitHub ↗

✓ present / CLAIM 3

To support that, _announcedConfigurations records the overrides alongside the configuration it resolved from.

identifier appears in the expected changed hunk lines

…/node/agentMergeController.ts @@ -103,7 +109,7 @@ L112
src/vs/platform/agentHost/node/agentMergeController.ts @@ -103,7 +109,7 @@ export class AgentMergeController extends Disposable {
109 * sync that {@link _disable} triggers cannot post a second, reasonless one.
110 */
111 private readonly _monitoredSessions = new Set<string>();
112- private readonly _announcedConfigurations = new Map<string, AgentMergeConfiguration>();
112+ private readonly _announcedConfigurations = new Map<string, IAnnouncedAgentMergeConfiguration>();
113
114 constructor(
115 private readonly _options: IAgentMergeControllerOptions,
✓ present / CLAIM 4

Menu labels are now On / Off; Only if Agent Merge Made No Changes is unchanged, and its description now says it "switches itself off".

identifier appears in the expected changed hunk lines

…/browser/agentMergeActions.ts @@ -101,17 +101,23 @@ L107-L119
src/vs/sessions/contrib/providers/agentHost/browser/agentMergeActions.ts @@ -101,17 +101,23 @@
104-/** Labels for the merge choice, short enough to read inside the submenu title. */
104+/**
105+ * Labels for the merge choice, short enough to read inside the submenu title.
106+ *
107+ * The session-scoped menu says On and Off rather than the `always` and `never`
108+ * the setting stores: those values read as absolutes, which they only are for
109+ * the defaults that apply across every session.
110+ */
111 const agentMergeMergePullRequestLabels: Record<AgentMergeMergePullRequest, string> = {
112- always: localize('agentMerge.merge.always', "Always"),
112+ always: localize('agentMerge.merge.always', "On"),
113 ifUnchanged: localize('agentMerge.merge.ifUnchanged', "Only if Agent Merge Made No Changes"),
114- never: localize('agentMerge.merge.never', "Never"),
114+ never: localize('agentMerge.merge.never', "Off"),
115 };
119- ifUnchanged: localize('agentMerge.merge.ifUnchanged.description', "… Once a repair turn lands a commit this switches itself to Never."),
119+ ifUnchanged: localize('agentMerge.merge.ifUnchanged.description', "… Once a repair turn lands a commit this switches itself off."),
✓ present / CLAIM 5

Stored setting values remain always / ifUnchanged / never, unchanged in the settings editor.

identifier appears in the expected changed hunk lines; identifiers also match src/vs/workbench/test/browser/componentFixtures/chat/chatAgentMergeNotice.fixture.ts

…/browser/agentMergeActions.ts @@ -101,17 +101,23 @@ L107-L120

This row’s full hunk is not embedded in the source page. Inspect the changed files on GitHub ↗

✓ present / CLAIM 6

Updated the notice assertions in agentMerge.test.ts and agentMergeController.test.ts; the controller test now distinguishes the session heading from the global one.

test file is present in the PR file list

…/common/agentMerge.test.ts @@ -288,7 +288,7 @@ L288
src/vs/platform/agentHost/test/common/agentMerge.test.ts @@ -288,7 +288,7 @@ suite('Agent Merge gate', () => {
288 });
289
290- test('describes effective Agent Merge configuration changes', () => {
290+ test('describes effective Agent Merge configuration changes, and who they apply to', () => {
291 const previous: AgentMergeConfiguration = {
292 ...configuration,
293 mergePullRequest: 'never',
✓ present / CLAIM 7

Added a DefaultsChanged component fixture beside the existing ConfigurationChanged one so both headings render.

identifier appears in the expected changed hunk lines; identifiers also match src/vs/workbench/test/browser/componentFixtures/chat/chatAgentMergeNotice.fixture.ts, src/vs/platform/agentHost/common/agentMerge.ts, src/vs/platform/agentHost/node/agentMergeController.ts

…/common/agentMerge.test.ts @@ -304,15 +304,23 @@ L318-L319
src/vs/platform/agentHost/test/common/agentMerge.test.ts @@ -304,15 +304,23 @@
307- assert.strictEqual(agentMergeConfigurationChangedNotice(previous, current), [
308- 'Agent Merge settings changed.',
307+ const changes = [
308 'It will no longer address new pull request review comments or wait for them before merging.',
312 'It will now squash-merge the pull request.',
313- ].map((line, index) => index === 0 ? `${line}\n` : `- ${line}`).join('\n'));
313+ ];
314+ const noticeFor = (heading: string) => [heading, ...changes]
315+ .map((line, index) => index === 0 ? `${line}\n` : `- ${line}`).join('\n');
317+ assert.deepStrictEqual({
318+ session: agentMergeConfigurationChangedNotice(previous, current, 'session'),
319+ global: agentMergeConfigurationChangedNotice(previous, current, 'global'),
320+ }, {
321+ session: noticeFor('Agent Merge settings changed for this session.'),
322+ global: noticeFor('Agent Merge default settings changed for all sessions.'),
323+ });

2 not checkable

  1. Clarify Agent Merge notice scope and use On/Off for the session merge choice — not checked (judged tier off)
  2. Name the scope of Agent Merge notices and use On/Off in the session menu — not checked (judged tier off)

3 context lines (not claims, show)

  1. The transcript notice posted when Agent Merge behavior changes read Agent Merge settings changed. regardless of whether the change was made for that one session or to the defaults every session follows. — context: describes state or cause, not a change this PR makes
  2. The session-scoped Merge Pull Request menu labeled its options Always/Never, absolutes that only hold for the setting, which applies across all sessions. — context
  3. Deriving it in one place rather than passing it from each call site also attributes changes that land while a session's runtime is stopped, which the existing announces effective session and global configuration changes while monitoring test exercises. — context

Attention (3)
  1. undisclosed-file — File changed but not mentioned in the PR body — src/vs/platform/agentHost/node/agentMergeController.ts @@ -705,25 +711,39 @@ L711-L749
  2. entry-point-or-export — Public entry point or exported symbol touched — src/vs/platform/agentHost/common/agentMerge.ts @@ -341,8 +341,18 @@ L341-L358 (heuristic: patch syntax)
  3. ci-reported — CI as reported by GitHub at the time of the run (queued, in progress, and five macOS jobs failing); reported, not observed by Antelier.
Author attestation — draft, confirm or edit
What changed
agentMergeConfigurationChangedNotice now takes a required scope and heads the notice accordingly — agentMergeController.ts @@ -15,7 +15,7 @@ L18
Why
Why this change was made is not established by the excluded motivation text; confirm intent.
What could break
Callers of the touched export AgentMergeController could break; confirm its compatibility at this diff.
What was tested
Updated the notice assertions in agentMerge.test.ts and agentMergeController.test.tsagentMerge.test.ts @@ -288,7 +288,7 @@ L288

After confirmation, each answer is checked against the same diff as the PR claims.

This is a recorded draft. This snapshot cannot confirm or apply a rule.

Rules applied (2) · Provenance · Not read (6 lines)
  • Rule: Claim labels use fetched patch bytes only
  • Rule: Citations are verified before rendering
  • Provenance: human login huyn7539; Co-authored-by benibenj → agent-assisted (reported)
  • Not read: the replay note, two notice sentences, the "Two wording changes" heading, and two retrigger lines — motivation and headings, not claims.
  • Rule version claim-check-rubric-v1

Recorded runs, not live status. Each example names its source and limits.