VA / CodeAssist 누적 대조 검증 — 현재 판정
판정 확보 108/108 (100.00%). 대표 출력 일치 17개 · 차이 91개 · 미검증 0개.
이 비율은 검증 범위이며 전체 제품 유사도가 아닙니다. 차이에는 커서·선택·서식 차이와 실제 컴파일/실행 오류가 함께 있으므로 항목별 근거를 구분해 읽어 주세요. 대표 시나리오만 검증했으며 기능 전체 인증으로 확대하지 않습니다. 초기 백그라운드 기록에 이후 승인된 물리 키·마우스·브라우저 실행 검증을 합친 누적 자료입니다. 이번 회차 전체 108개 신규 재실행 완료를 의미하지 않습니다.
전체 옵션 페이지 이미지 대조 (VA 30 / CA 32) · 108항목 상태 · 판정·증거 해시 · 입력 데스크톱 분리 검증
생성 코드의 실제 컴파일·실행
편집기 본문·WPF 팝업은 내부 렌더링으로 수집합니다. 렌더링에 나타나지 않은 네이티브 창이나 입력 미작동은 통과로 처리하지 않습니다. 관찰 상태는 수집 시점의 상태이며, 코드 변환 전 원문은 각 prepared/case 기록에 보관돼 있습니다.
VA-F001 · Find by Context representative-match
같은 needle의 다음 참조로 이동: 텍스트·커서·선택 범위 일치
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\context-next.cpp",
"text": "void ContextProbe() { int needle = 1; needle += 2; int other = needle; }\r\n",
"caret": 44,
"selectionStart": 38,
"selectionLength": 6,
"selectedText": "needle"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\context-next.cpp",
"text": "void ContextProbe() { int needle = 1; needle += 2; int other = needle; }\r\n",
"caret": 44,
"selectionStart": 38,
"selectionLength": 6,
"selectedText": "needle"
},
"error": null
}VA-F002 · Find References different
코드 참조 2개 검색, 주석·문자열 제외, 두 번째 코드 참조 offset53으로 이동 모두 일치. VA는 이름 14자를 선택하며 CA는 커서만 이동.
{
"resultCount": true,
"excludeCommentAndString": true,
"navigationDestination": true,
"selectionState": false
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\find-references.cpp",
"text": "void ReferenceCountProbe() { int auditNeedle103 = 1; auditNeedle103 += 2; }\r\n// auditNeedle103 is a comment\r\nconst char* text = \"auditNeedle103\";\r\n",
"caret": 67,
"selectionStart": 53,
"selectionLength": 14,
"selectedText": "auditNeedle103"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"status": "observed",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\find-references.cpp",
"line": 1,
"column": 54,
"selectedText": ""
}VA-F003 · Find Symbol in Solution different
선택 심볼에서 실제 Find Symbol을 열었습니다. VA는 선택 이름을 초기 검색어로 채우고 CA는 빈 검색어로 시작했습니다. 이후 같은 SymbolFindProof107을 검색·선택해 양쪽 선언 파일로 이동하는 양성 동작까지 확인했습니다. Native 이름 선택 끝(24)과 CA 시작(6) 커서도 달랐습니다.
{
"actualSearchAndNavigateBoth": true,
"initialQueryEqual": false,
"declarationFileReachedBoth": true
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"id": "request-9dd90ada3ac64567",
"role": "VA",
"pid": 25764,
"status": "complete",
"sha256": "8bff8ec98bbeba34fe7588c123b73ad1b7d99c6544208c6207517d5ed5d87bad",
"result": {
"dteFile": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\symbol-find107.cpp",
"views": [
{
"focused": 0,
"hr": 0,
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\symbol-find107.cpp",
"hasFocus": true,
"caret": 24,
"sample": "class SymbolFindProof107 {};\r\nint main(){ SymbolFindProof107 value; return 0; }\r\n"
},
{
"focused": 1,
"hr": 0,
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\symbol-find107.cpp",
"hasFocus": true,
"caret": 24,
"sample": "class SymbolFindProof107 {};\r\nint main(){ SymbolFindProof107 value; return 0; }\r\n"
}
],
"keyboardElement": "Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView"
},
"error": null,
"at": "2026-10-19T12:14:00.2088417+09:00"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"id": "request-155a4bf88f354bee",
"role": "CA",
"pid": 11776,
"status": "complete",
"sha256": "8bff8ec98bbeba34fe7588c123b73ad1b7d99c6544208c6207517d5ed5d87bad",
"result": {
"dteFile": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\symbol-find107.cpp",
"views": [
{
"focused": 0,
"hr": 0,
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\symbol-find107.cpp",
"hasFocus": true,
"caret": 6,
"sample": "class SymbolFindProof107 {};\r\nint main(){ SymbolFindProof107 value; return 0; }\r\n"
},
{
"focused": 1,
"hr": 0,
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\symbol-find107.cpp",
"hasFocus": true,
"caret": 6,
"sample": "class SymbolFindProof107 {};\r\nint main(){ SymbolFindProof107 value; return 0; }\r\n"
}
],
"keyboardElement": "Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView"
},
"error": null,
"at": "2026-10-19T12:13:58.3456210+09:00"
},
"error": null
}VA-F004 · GoTo Implementation different
양쪽 모두 정의로 이동. VA는 심볼 이름 16자를 선택하고 CA는 선택 없이 커서만 이동
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\goto-implementation.cpp",
"text": "void DeclarationProbe() { }\r\nvoid Caller() { DeclarationProbe(); }\r\n",
"caret": 21,
"selectionStart": 5,
"selectionLength": 16,
"selectedText": "DeclarationProbe"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\goto-implementation.cpp",
"text": "void DeclarationProbe() { }\r\nvoid Caller() { DeclarationProbe(); }\r\n",
"caret": 5,
"selectionStart": 5,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F005 · GoTo Member different
두 번째 멤버 목적지는 일치. VA는 멤버 이름을 선택하고 CA는 커서만 이동
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\goto-member.h",
"text": "class MemberListAudit\r\n{\r\npublic:\r\n void FirstMemberProbe() {}\r\n void SecondMemberProbe() {}\r\n};\r\nvoid MemberCaller() { MemberListAudit item; }\r\n",
"caret": 93,
"selectionStart": 76,
"selectionLength": 17,
"selectedText": "SecondMemberProbe"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\goto-member.h",
"text": "class MemberListAudit\r\n{\r\npublic:\r\n void FirstMemberProbe() {}\r\n void SecondMemberProbe() {}\r\n};\r\nvoid MemberCaller() { MemberListAudit item; }\r\n",
"caret": 76,
"selectionStart": 76,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F006 · GoTo Related different
동일 파생 클래스에서 기반 클래스 RelBase103을 실제 선택했습니다. 양쪽 모두 같은 파일 첫 줄의 클래스 이름으로 이동하지만 VA는 이름을 선택하고 CA는 이름 앞에 커서만 둡니다. CA 인덱스에 해당 형식이 들어간 것을 먼저 확인했습니다.
{
"sameBaseClassDestination": true,
"caIndexReady": true,
"selectionEqual": false
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\related-symbols.cpp",
"text": "class RelBase103\r\n{\r\npublic:\r\n virtual int Act() { return 1; }\r\n};\r\nclass RelDerived103 : public RelBase103\r\n{\r\npublic:\r\n int Act() override { return 2; }\r\n};\r\n",
"caret": 16,
"selectionStart": 6,
"selectionLength": 10,
"selectedText": "RelBase103"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\related-symbols.cpp",
"text": "class RelBase103\r\n{\r\npublic:\r\n virtual int Act() { return 1; }\r\n};\r\nclass RelDerived103 : public RelBase103\r\n{\r\npublic:\r\n int Act() override { return 2; }\r\n};\r\n",
"caret": 6,
"selectionStart": 6,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F007 · Highlight Current Line representative-match
동일 소스의 커서를 3행→2행으로 이동했을 때 현재 줄 테두리가 양쪽 모두 16px 위로 이동. VS 기본 표시를 포함한 구성 결과의 대표 비교이며 VA 고유 렌더러 인과 검증은 아님.
VA
실행 원문 JSON
관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\current-line.cpp",
"text": "void LineAudit() {\r\n int first = 1;\r\n int second = 2;\r\n}\r\n",
"caret": 28,
"selectionStart": 28,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON
관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\current-line.cpp",
"text": "void LineAudit() {\r\n int first = 1;\r\n int second = 2;\r\n}\r\n",
"caret": 28,
"selectionStart": 28,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F008 · List Methods in File different
두 번째 메서드 목적지는 일치. VA는 이름을 선택하고 CA는 커서만 이동
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\list-methods.cpp",
"text": "void FirstListProbe() {}\r\nvoid SecondListProbe() {}\r\n",
"caret": 46,
"selectionStart": 31,
"selectionLength": 15,
"selectedText": "SecondListProbe"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\list-methods.cpp",
"text": "void FirstListProbe() {}\r\nvoid SecondListProbe() {}\r\n",
"caret": 31,
"selectionStart": 31,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F009 · Move Scope different
이번 실제 OS 키 입력으로 대표 편집 시나리오 scope-next를 재실행했습니다. 전체 텍스트·커서·선택 범위를 양쪽 비교했습니다. 기능 전체·모든 경계의 인증은 아닙니다.
{
"actualOsInputBoth": true,
"positiveChangeObserved": true,
"representativeOutputEqual": false
}VA
실행 원문 JSON관찰 상태
{
"input": {
"text": "void First() {}\r\nvoid Second() {}\r\n"
},
"actual": {
"observedEditorState": {
"text": "void Second() {}\r\nvoid First() {}\r\n",
"caret": 18,
"selectionStart": 18,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}CA
실행 원문 JSON관찰 상태
{
"input": {
"text": "void First() {}\r\nvoid Second() {}\r\n"
},
"actual": {
"observedEditorState": {
"text": "void First() {}\r\nvoid Second() {}\r\n",
"caret": 17,
"selectionStart": 17,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}VA-F010 · Navigate Back and Forward different
같은 파일에서 정의 이동→뒤로→앞으로를 실제 명령으로 수행했습니다. 양쪽 모두 호출 위치(126)로 돌아오고 정의로 재이동하지만 정의 도착 커서는 VA 21, CA 5로 다릅니다.
{
"backReturnsCallsiteBoth": true,
"forwardReturnsDefinitionBoth": true,
"caretEqual": false
}VA
실행 원문 JSON관찰 상태
{
"goto": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\goto-implementation.cpp",
"text": "void DeclarationProbe() {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvoid Caller(){ DeclarationProbe(); }\r\n",
"caret": 21,
"selectionStart": 5,
"selectionLength": 16,
"selectedText": "DeclarationProbe"
},
"error": null
},
"back": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\goto-implementation.cpp",
"text": "void DeclarationProbe() {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvoid Caller(){ DeclarationProbe(); }\r\n",
"caret": 126,
"selectionStart": 126,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"forward": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\goto-implementation.cpp",
"text": "void DeclarationProbe() {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvoid Caller(){ DeclarationProbe(); }\r\n",
"caret": 21,
"selectionStart": 21,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}CA
실행 원문 JSON관찰 상태
{
"goto": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\goto-implementation.cpp",
"text": "void DeclarationProbe() {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvoid Caller(){ DeclarationProbe(); }\r\n",
"caret": 5,
"selectionStart": 5,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"back": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\goto-implementation.cpp",
"text": "void DeclarationProbe() {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvoid Caller(){ DeclarationProbe(); }\r\n",
"caret": 126,
"selectionStart": 126,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"forward": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\goto-implementation.cpp",
"text": "void DeclarationProbe() {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvoid Caller(){ DeclarationProbe(); }\r\n",
"caret": 5,
"selectionStart": 5,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}VA-F011 · Open Corresponding File representative-match
프로젝트 포함·인덱스 준비 후 CorrespondingProbe.h → CorrespondingProbe.cpp 실제 경로와 전체 내용 일치
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\CorrespondingProbe.cpp",
"text": "#include \"CorrespondingProbe.h\"\r\nvoid CorrespondingProbe::Update() {}\r\n",
"caret": 0,
"selectionStart": 0,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\CorrespondingProbe.cpp",
"text": "#include \"CorrespondingProbe.h\"\r\nvoid CorrespondingProbe::Update() {}\r\n",
"caret": 0,
"selectionStart": 0,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F012 · Open File in Solution representative-match
전용 Audit 테스트 솔루션에서 같은 ParityProbeTarget.h를 실제 검색·선택했습니다. 양쪽 모두 예상한 각자 테스트 경로와 파일 내용이 정확히 열렸습니다. 기존 결과 파일 링크만 있던 항목을 새 실행과 해시 연결로 보완했습니다.
{
"actualSearchSubmittedBoth": true,
"expectedOwnFullPathOpenedBoth": true,
"fileContentsMatchedBoth": true
}VA
실행 원문 JSON관찰 상태
{
"observation": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\single-file-101\\VA\\ParityProbeTarget.h",
"contents": "#pragma once\r\n// Parity file-navigation probe 101\r\nstruct ParityProbeTarget {};\r\n"
},
"error": null
},
"scope": "Fresh actual file-finder query, selection, exact own full path and file contents; existing dedicated Audit processes, not unrelated user solutions."
}CA
실행 원문 JSON관찰 상태
{
"observation": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\single-file-101\\CA\\ParityProbeTarget.h",
"contents": "#pragma once\r\n// Parity file-navigation probe 101\r\nstruct ParityProbeTarget {};\r\n"
},
"error": null
},
"scope": "Fresh actual file-finder query, selection, exact own full path and file contents; existing dedicated Audit processes, not unrelated user solutions."
}VA-F013 · VA Hashtags different
태그가 있는 첫 줄로 양쪽 이동. VA는 태그를 선택하고 CA는 줄 시작으로 이동
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\hashtags.cpp",
"text": "void HashFirst() {} // #parity_one_103\r\nvoid HashSecond() {} // #parity_two_103\r\n",
"caret": 38,
"selectionStart": 23,
"selectionLength": 15,
"selectedText": "#parity_one_103"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\hashtags.cpp",
"text": "void HashFirst() {} // #parity_one_103\r\nvoid HashSecond() {} // #parity_two_103\r\n",
"caret": 0,
"selectionStart": 0,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F014 · VA Navigation Bar different
실제 편집기 탐색 표시에서 VA 문맥·정의 필드는 콤보박스이고 CA 대응 필드는 정적 텍스트입니다. 지역 변수의 문맥 계층과 초기화식 표시도 다릅니다. 이 판정은 해당 탐색 표시 구성의 차이이며 탐색 막대 전체 동작 인증은 아닙니다.
{
"sameInputMemberLocalUnknown": true,
"contextAndDefinitionWidgetTypesEqual": false
}VA
실행 원문 JSON관찰 상태
{
"field": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.ComboBox",
"BarAudit103.Owner103.dataMember "
],
[
"ControlType.ComboBox",
"int dataMember"
],
[
"ControlType.ComboBox",
"Parity"
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)이 속할 수 있는 다른 프로젝트를 보고 해당 프로젝트로 전환합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)의 모든 범위/형식을 보고 탐색합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 범위/형식의 모든 함수를 보고 탐색합니다."
]
],
"local": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.ComboBox",
"BarAudit103.Owner103.Compute.localCounter "
],
[
"ControlType.ComboBox",
"int localCounter = input + dataMember"
],
[
"ControlType.ComboBox",
"Parity"
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)이 속할 수 있는 다른 프로젝트를 보고 해당 프로젝트로 전환합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)의 모든 범위/형식을 보고 탐색합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 범위/형식의 모든 함수를 보고 탐색합니다."
]
],
"unknown": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"Parity"
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)이 속할 수 있는 다른 프로젝트를 보고 해당 프로젝트로 전환합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)의 모든 범위/형식을 보고 탐색합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 범위/형식의 모든 함수를 보고 탐색합니다."
]
]
}CA
실행 원문 JSON관찰 상태
{
"field": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.Text",
"Context: Owner103"
],
[
"ControlType.Text",
"Definition: int dataMember"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"100 %"
]
],
"local": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.Text",
"Context: Owner103"
],
[
"ControlType.Text",
"Definition: int localCounter"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"100 %"
]
],
"unknown": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.Text",
"Context: Owner103"
],
[
"ControlType.Text",
"Definition: UnknownSymbol103"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"100 %"
]
]
}VA-F015 · Access to Refactoring Commands different
메서드 문맥에서 VA 전용 리팩터링 진입 항목은 실제 메뉴에 표시되지만 CA 전용 진입 항목은 없습니다. CA 개별 명령의 존재·실행과 문맥 메뉴를 통한 접근은 별개이며, 이 판정은 해당 접근 경로의 차이입니다.
{
"sameMethodContextBoth": true,
"dedicatedRefactoringContextAccessBoth": false
}VA
실행 원문 JSON
관찰 상태
{
"items": [
"Copilot에게 물어보기",
"Quick Actions and Refactorings (VA)",
"Surround With (VA)",
"빠른 작업 및 리팩터링...",
"#Include 지시문",
"이름 바꾸기...",
"코드 보기",
"정의 피킹",
"정의로 이동",
"선언으로 이동",
"모든 참조 찾기",
"호출 계층 구조 보기",
"헤더/코드 파일 피킹",
"헤더/코드 파일 전환",
"중단점",
"커서까지 실행",
"커서까지 실행",
"코드 조각",
"잘라내기",
"복사",
"붙여넣기",
"주석",
"개요",
"다시 검사",
"Git",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"파일",
"편집",
"보기",
"Git",
"프로젝트",
"빌드",
"디버그",
"테스트",
"분석",
"도구",
"확장",
"창",
"도움말"
]
}CA
실행 원문 JSON
관찰 상태
{
"items": [
"Copilot에게 물어보기",
"빠른 작업 및 리팩터링...",
"#Include 지시문",
"코드 보기",
"정의 피킹",
"정의로 이동",
"선언으로 이동",
"모든 참조 찾기",
"호출 계층 구조 보기",
"헤더/코드 파일 피킹",
"헤더/코드 파일 전환",
"중단점",
"커서까지 실행",
"커서까지 실행",
"코드 조각",
"잘라내기",
"복사",
"붙여넣기",
"주석",
"개요",
"다시 검사",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"파일",
"편집",
"보기",
"Git",
"프로젝트",
"빌드",
"디버그",
"테스트",
"분석",
"도구",
"확장",
"창",
"도움말"
]
}VA-F016 · Change Signature different
두 매개변수 순서와 호출 인수 교체 후 전체 코드가 정확히 일치. 양쪽 컴파일·실행 반환값 5 유지, Undo 원문 복원. 적용 뒤 커서만 VA offset4/CA6으로 다름.
{
"generatedText": true,
"callSemantics": true,
"undoText": true,
"caret": false
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\change-signature.cpp",
"text": "int ChangeSig103(int second, int first) { return first - second; }\r\nint InvokeChange103() { return ChangeSig103(4, 9); }\r\n",
"caret": 4,
"selectionStart": 4,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\change-signature.cpp",
"text": "int ChangeSig103(int second, int first) { return first - second; }\r\nint InvokeChange103() { return ChangeSig103(4, 9); }\r\n",
"caret": 6,
"selectionStart": 6,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F017 · Convert Between Pointer and Instance different
VA는 동일 한 줄 지역 객체를 auto*와 -> 사용으로 변환. CA는 지원 구문 오류를 표시하고 원문 유지. CA 오류창 증거 별도 연결
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\pointer-instance.cpp",
"text": "struct PointerAuditWidget { int value; };\r\nvoid Probe() { auto* widget = new PointerAuditWidget(); widget->value = 1; }\r\n",
"caret": 77,
"selectionStart": 77,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\pointer-instance.cpp",
"text": "struct PointerAuditWidget { int value; };\r\nvoid Probe() { PointerAuditWidget widget; widget.value = 1; }\r\n",
"caret": 78,
"selectionStart": 78,
"selectionLength": 0,
"selectedText": ""
},
"error": "System.Runtime.InteropServices.COMException (0x80004005): \"Edit.Undo\" 명령은 사용할 수 없습니다.\r\n 위치: EnvDTE._DTE.ExecuteCommand(String CommandName, String CommandArgs)\r\n 위치: BackgroundWorker.Main(String[] a)"
}VA-F018 · Encapsulate Field different
동일 필드 커서에서 양쪽 캡슐화 적용·Undo 복원. VA setter 실행 후 getter=7 통과, CA는 매개변수 자기 대입(value=value)으로 getter=7 계약 실패. 양쪽 컴파일 성공. 기존 내부 참조의 getter 치환 여부도 다름.
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\encapsulate.cpp",
"text": "class EncapAudit {\r\npublic:\r\n\tint Value() const { return value; }\r\n\tvoid Value(int val) { value = val; }\r\n\tint Read() { return Value(); }\r\nprivate:\r\n\tint value;\r\n};\r\n",
"caret": 162,
"selectionStart": 162,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\encapsulate.cpp",
"text": "class EncapAudit {\r\npublic:\r\nprivate:\r\n int value;\r\npublic:\r\n int GetValue() const { return value; }\r\n void SetValue(int value) { value = value; }\r\n\r\n int Read() { return value; }\r\n};\r\n",
"caret": 157,
"selectionStart": 29,
"selectionLength": 128,
"selectedText": "private:\r\n int value;\r\npublic:\r\n int GetValue() const { return value; }\r\n void SetValue(int value) { value = value; }\r\n"
},
"error": null
}VA-F019 · Extract Method different
동일 두 문장 선택·같은 MyMethod 시그니처로 추출 적용. 양쪽 컴파일·실행에서 StepOne→StepTwo 1회씩 유지, Undo 복원. 줄바꿈·들여쓰기·호출부 서식은 다름.
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\extract.cpp",
"text": "void StepOne() {}\r\nvoid StepTwo() {}\r\n\r\nvoid MyMethod()\r\n{\r\n StepOne();\r\n StepTwo();\r\n}\r\n\r\nvoid ExtractAudit() {\r\n MyMethod();\r\n}\r\n",
"caret": 40,
"selectionStart": 40,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\extract.cpp",
"text": "void StepOne() {}\r\nvoid StepTwo() {}\r\nvoid MyMethod()\r\n{\r\n StepOne();\r\n StepTwo();\r\n\r\n}\r\n\r\nvoid ExtractAudit() {\r\nMyMethod();}\r\n",
"caret": 134,
"selectionStart": 0,
"selectionLength": 134,
"selectedText": "void StepOne() {}\r\nvoid StepTwo() {}\r\nvoid MyMethod()\r\n{\r\n StepOne();\r\n StepTwo();\r\n\r\n}\r\n\r\nvoid ExtractAudit() {\r\nMyMethod();}\r\n"
},
"error": null
}VA-F020 · Introduce Variable different
동일 상수 표현식 선택에서 VA는 subtotal 선언·표현식 교체 및 Undo 수행. CA 현재 런타임 74개 명령에 변수 도입 전용 명령이 없고, 대응 빠른 작업 실행 메뉴는 함수 추출만 제공. 이 fixture의 진입점/제공 작업 차이이며 모든 컴파일러 컨텍스트의 불가능 판정은 아님.
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\introduce-variable.cpp",
"text": "int ExpressionAudit() {\r\n\tint subtotal = 1 + 2; return subtotal * 3;\r\n}\r\n",
"caret": 56,
"selectionStart": 56,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\introduce-variable.cpp",
"text": "int ExpressionAudit() { return (1 + 2) * 3; }\r\n",
"caret": 37,
"selectionStart": 32,
"selectionLength": 5,
"selectedText": "1 + 2"
},
"error": null
}VA-F021 · Move Implementation to Header File different
양쪽 모두 CPP 구현을 헤더의 클래스 선언으로 이동하고 원래 CPP 정의를 제거했습니다. 실제 실행 Value()==7과 한 번의 Undo로 두 파일 복원에 통과했습니다. VA는 여러 줄·탭, CA는 한 줄·공백으로 구현을 배치해 서식이 다릅니다. 전용 미리보기 종료의 소유 창 포커스 복원을 적용했습니다.
{
"bodyMovedToHeaderBoth": true,
"sourceDefinitionRemovedBoth": true,
"compileAndRunBoth": true,
"undoBothFilesBoth": true,
"formattingEqual": false
}VA
실행 원문 JSON관찰 상태
{
"compiler": {
"compileExit": 0,
"contract": "Value()==7 after body move",
"files": {
"cross-move-to-header103.h": "cefdd728c7b8dce51ad735f988d64a320a79917f5d4f4f95803bf17e7154ab89",
"cross-move-to-header103.cpp": "8a5a9e813c0b1948cfd9e3fd0b0f363274f398735678a9a2954f1f7693a9a2d0",
"main.cpp": "7480e60b5fcd7e70e6c4699b37b0a6f30272e0fe8239a3d6463d2fb1014efb00"
},
"passed": true,
"runExit": 0,
"requestedMoveApplied": true
},
"inputs": {
"header": "#pragma once\r\nclass CrossMoveHeader103\r\n{\r\npublic:\r\n int Value() const;\r\n};\r\n",
"source": "#include \"cross-move-to-header103.h\"\r\n\r\nint CrossMoveHeader103::Value() const\r\n{\r\n return 7;\r\n}\r\n",
"direction": "to-header"
}
}CA
실행 원문 JSON관찰 상태
{
"compiler": {
"compileExit": 0,
"contract": "Value()==7 after body move",
"files": {
"cross-move-to-header103.h": "affd9751bbe6d7c762194c0abb778884d82e30d7d7ed3d04f1f80211b6cdf164",
"cross-move-to-header103.cpp": "8a5a9e813c0b1948cfd9e3fd0b0f363274f398735678a9a2954f1f7693a9a2d0",
"main.cpp": "7480e60b5fcd7e70e6c4699b37b0a6f30272e0fe8239a3d6463d2fb1014efb00"
},
"passed": true,
"runExit": 0,
"requestedMoveApplied": true
},
"inputs": {
"header": "#pragma once\r\nclass CrossMoveHeader103\r\n{\r\npublic:\r\n int Value() const;\r\n};\r\n",
"source": "#include \"cross-move-to-header103.h\"\r\n\r\nint CrossMoveHeader103::Value() const\r\n{\r\n return 7;\r\n}\r\n",
"direction": "to-header"
}
}VA-F022 · Move Implementation to Source File different
미리보기 종료 시 전용 소유 편집기의 포커스를 복원한 재검증에서는 양쪽 모두 헤더 본문을 CPP로 옮겼고 Value()==7 실제 컴파일·실행과 한 번의 Undo 복원에 통과했습니다. 남은 차이는 선언 들여쓰기·구현 줄바꿈 등 서식입니다. 이전 적용 실패는 비활성 검증 환경의 포커스 영향으로 구분해 이력에 보존했습니다.
{
"bodyActuallyMovedBoth": true,
"compileAndRunBoth": true,
"oneUndoRestoresBothFiles": true,
"formattingEqual": false,
"priorFocusFailureSuperseded": true
}VA
실행 원문 JSON관찰 상태
{
"compiler": {
"compileExit": 0,
"contract": "Value()==7 and body exists only in source",
"files": {
"move-restored103.h": "f2b7fced0974492ba14dcf1fed0cd4e594d32369b6b0ec7019145560ecf5081b",
"move-restored103.cpp": "af19df5c0152bb6dc380b04b61dbc6485650bd52e58bff8571b2d5c4852290ca",
"main.cpp": "0f5c76d5c034a651cb9574836e33b9b0f6f6cdf864781360185ad2bf9379d5a9"
},
"passed": true,
"runExit": 0,
"bodyMovedToSource": true
}
}CA
실행 원문 JSON관찰 상태
{
"compiler": {
"compileExit": 0,
"contract": "Value()==7 and body exists only in source",
"files": {
"move-restored103.h": "ee8933a0092f50b7668ef7ffb73141e0b7edbfbc335d8406c397562b19ea0756",
"move-restored103.cpp": "b9b65247202f6d6b472c043985b79cbd8e3c0a5c6eb29596938c0baa0319f6bf",
"main.cpp": "0f5c76d5c034a651cb9574836e33b9b0f6f6cdf864781360185ad2bf9379d5a9"
},
"passed": true,
"runExit": 0,
"bodyMovedToSource": true
}
}VA-F023 · Move Method Implementations to Source File different
같은 클래스의 두 메서드 전체를 양쪽 모두 CPP로 옮겼고 First()+Second()==15 실제 실행에 통과했습니다. 원복에는 VA가 Undo 두 번, CA는 한 번이 필요하며 구현 서식도 다릅니다. Native 선택 창의 두 메서드 체크와 CA의 2개 구현 미리보기를 확인했습니다.
{
"bothMethodsMovedBoth": true,
"compileAndRunBoth": true,
"eventualUndoRestoresBoth": true,
"undoStepCountEqual": false,
"formattingEqual": false
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"move-all-audit103.h": {
"status": "complete",
"pid": 40564,
"desktop": "CodeAssistVerify-runtime",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\move-all-audit103.h",
"text": "#pragma once\r\nclass MoveAllAudit103\r\n{\r\npublic:\r\n int First() const;\r\n int Second() const;\r\n};\r\n"
},
"move-all-audit103.cpp": {
"status": "complete",
"pid": 40564,
"desktop": "CodeAssistVerify-runtime",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\move-all-audit103.cpp",
"text": "#include \"move-all-audit103.h\"\r\n\r\nint MoveAllAudit103::First() const\r\n{\r\n\treturn 7;\r\n}\r\n\r\nint MoveAllAudit103::Second() const\r\n{\r\n\treturn 8;\r\n}\r\n"
}
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"move-all-audit103.h": {
"status": "complete",
"pid": 28752,
"desktop": "CodeAssistVerify-runtime",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\move-all-audit103.h",
"text": "#pragma once\r\nclass MoveAllAudit103\r\n{\r\npublic:\r\n int First() const;\r\n int Second() const;\r\n};\r\n"
},
"move-all-audit103.cpp": {
"status": "complete",
"pid": 28752,
"desktop": "CodeAssistVerify-runtime",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\move-all-audit103.cpp",
"text": "#include \"move-all-audit103.h\"\r\nint MoveAllAudit103::First() const { return 7; }\r\nint MoveAllAudit103::Second() const { return 8; }\r\n"
}
},
"error": null
}VA-F024 · Move Selection to New File different
선택한 함수가 양쪽에서 실제 새 파일로 이동하고 생성 헤더 단독 컴파일·실행은 성공했습니다. VA는 #pragma once를 추가하고 include 선택 항목을 제공하며, CA의 생성 파일과 형식·대화상자 구성이 다릅니다. VA 기본 include 체크는 꺼진 상태로 비교했으며 전체 호출 원본 빌드 성공으로 확대하지 않습니다.
{
"actualMoveBoth": true,
"generatedFunctionRuntimeBoth": true,
"generatedTextIdentical": false
}VA
실행 원문 JSON관찰 상태
{
"compiler": {
"compileExit": 0,
"contract": "MovedFunction103()==7 in actual generated header",
"files": {
"move-selection-new-file-output103.h": "eb9c422de69977e42f1115e04267b4a11c81cd3880f0321a97dc171b93e25afd",
"main.cpp": "366c9d58e1ba6fc6adf8bface909f300e65afca3b92366b915f4da01521144e8"
},
"passed": true,
"runExit": 0
}
}CA
실행 원문 JSON관찰 상태
{
"compiler": {
"compileExit": 0,
"contract": "MovedFunction103()==7 in actual generated header",
"files": {
"move-selection-new-file-output103.h": "15c5d0a702f3529813dfa57d75519c4f3de4e8dd8016d8de64efe94078f68072",
"main.cpp": "366c9d58e1ba6fc6adf8bface909f300e65afca3b92366b915f4da01521144e8"
},
"passed": true,
"runExit": 0
}
}VA-F025 · Rename representative-match
이전의 단축키 미수신 기록을 실제 이름 변경 결과로 대체했습니다. VA Rename과 CA가 호출한 VS Rename에서 같은 지역 변수 renameProbe107을 renamedProbe107로 바꾸었고 선언·참조 두 군데 및 최종 전체 텍스트가 일치했습니다. 단축키 배정은 F103으로 분리하며 다중 파일·충돌·오버로드 전체 인증은 아닙니다.
{
"actualRenameAppliedBoth": true,
"declarationAndUseChangedBoth": true,
"entireTextEqual": true
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"id": "request-bc5c8b7499b4451a",
"role": "VA",
"pid": 25764,
"status": "complete",
"sha256": "79e3543ff2d2fd5dc5ea8159c01c4c6882745790f25312046f68a9ec6ebafb0a",
"result": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\rename-symbol107.cpp",
"saved": false,
"equalsDisk": false,
"text": "int RenameContract107() { int renamedProbe107 = 2; return renamedProbe107; }\r\n"
},
"error": null,
"at": "2026-10-19T12:07:34.3589706+09:00"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"id": "request-b6179239a0d3479d",
"role": "CA",
"pid": 11776,
"status": "complete",
"sha256": "611c5aaa63d03b3ee0f5025b531846f56c5139b597f988a5a43db3b8b47a07e2",
"result": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\rename-symbol107.cpp",
"saved": false,
"equalsDisk": false,
"text": "int RenameContract107() { int renamedProbe107 = 2; return renamedProbe107; }\r\n"
},
"error": null,
"at": "2026-10-19T12:08:52.6496360+09:00"
},
"error": null
}VA-F026 · Rename Files different
소유한 프로젝트의 h/cpp 한 쌍에서 실제 이름 변경: VA는 관련 헤더와 cpp 둘 다 새 이름으로 바꿨습니다. CA는 헤더만 바꾸고 cpp 이름을 유지했습니다. include의 미저장 버퍼 및 소스 제어 반영은 이 판정에 포함하지 않습니다.
{
"headerRenamedBoth": true,
"nativeRelatedCppRenamed": true,
"caRelatedCppRenamed": false
}VA
실행 원문 JSON관찰 상태
{
"RenameFileAudit103.h": {
"text": null
},
"RenameFileAudit103.cpp": {
"text": null
},
"RenamedFileAudit103.h": {
"text": "#pragma once\nclass RenameFileAudit103 {};\n"
},
"RenamedFileAudit103.cpp": {
"text": "#include \"RenameFileAudit103.h\"\n"
}
}CA
실행 원문 JSON관찰 상태
{
"RenameFileAudit103.h": {
"text": null
},
"RenameFileAudit103.cpp": {
"text": "#include \"RenameFileAudit103.h\"\n"
},
"RenamedFileAudit103.h": {
"text": "#pragma once\nclass RenameFileAudit103 {};\n"
},
"RenamedFileAudit103.cpp": {
"text": null
}
}VA-F027 · Simplify Instance Declaration different
코드 단순화 결과는 동일. 변경 후 선택 범위와 Undo 뒤 선택 상태가 다름
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\simplify-instance.cpp",
"text": "struct SimplifyAuditWidget { SimplifyAuditWidget(int); };\r\nvoid SimplifyProbe()\r\n{\r\n SimplifyAuditWidget item(1);\r\n}\r\n",
"caret": 115,
"selectionStart": 115,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\simplify-instance.cpp",
"text": "struct SimplifyAuditWidget { SimplifyAuditWidget(int); };\r\nvoid SimplifyProbe()\r\n{\r\n SimplifyAuditWidget item(1);\r\n}\r\n",
"caret": 116,
"selectionStart": 84,
"selectionLength": 32,
"selectedText": " SimplifyAuditWidget item(1);"
},
"error": null
}VA-F028 · Add Forward Declaration different
공식 문서의 실제 VA Quick Action 메뉴에서 Add Forward Declaration을 실행하면 포함 클래스 바깥 파일 상단에 선언을 삽입합니다. CA 대응 명령은 커서 줄 앞에 삽입해 포함 클래스 안에 중첩 선언을 만듭니다. 이전 직접 명령 E_FAIL은 기능 부재로 판정하지 않고 실제 메뉴 실행으로 대체했습니다.
{
"nativeGlobalDeclaration": true,
"caGlobalDeclaration": false
}VA
실행 원문 JSON관찰 상태
{
"observation": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\ForwardContainer103.h",
"text": "#pragma once\r\n\r\nclass ForwardTarget103;\r\nclass ForwardContainer103\r\n{\r\n ForwardTarget103* value;\r\n};\r\n",
"caret": 69,
"selectionStart": 69,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"expected": "global forward declaration before containing class; preserve caret logical symbol"
}CA
실행 원문 JSON관찰 상태
{
"observation": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\ForwardContainer103.h",
"text": "#pragma once\r\nclass ForwardContainer103\r\n{\r\nclass ForwardTarget103;\r\n ForwardTarget103* value;\r\n};\r\n",
"caret": 69,
"selectionStart": 69,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"expected": "global forward declaration before containing class; preserve caret logical symbol"
}VA-F029 · Add Member different
동일 클래스 이름 커서에서 int addedField 생성: VA는 클래스 내부 public 멤버를 추가, CA는 클래스 밖 전역 변수 생성. 실제 멤버 접근 컴파일·실행 VA 통과, CA C2039. 양쪽 Undo 원문 복원.
{
"memberScope": false,
"compilerContract": false,
"undoText": true
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\add-member.cpp",
"text": "class AddMemberAudit {\r\npublic:\r\n \r\n int addedField;\r\n};\r\n",
"caret": 8,
"selectionStart": 8,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\add-member.cpp",
"text": "int addedField;\r\nclass AddMemberAudit {\r\npublic:\r\n \r\n};\r\n",
"caret": 17,
"selectionStart": 0,
"selectionLength": 17,
"selectedText": "int addedField;\r\n"
},
"error": null
}VA-F030 · Add Missing Case Statements different
동일 switch 커서 조건에서 VA는 Running/Done/default case를 생성하고 Undo로 원문 복원. CA는 enum 입력 뒤 unsupported syntax 경고를 표시하며 실제 버퍼는 변경되지 않음. 완전한 switch 선택 조건의 추가 검증은 별도.
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\missing-cases.cpp",
"text": "enum class State { Ready, Running, Done };\r\nvoid Probe(State state) {\r\n\tswitch (state) {\r\n\tcase State::Ready: break;\r\n\tcase State::Running:\r\n\t\tbreak;\r\n\tcase State::Done:\r\n\t\tbreak;\r\n\tdefault:\r\n\t\tbreak;\r\n\t}\r\n}\r\n",
"caret": 112,
"selectionStart": 112,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\missing-cases.cpp",
"text": "enum class State { Ready, Running, Done };\r\nvoid Probe(State state) { switch (state) { case State::Ready: break; } }\r\n"
}VA-F031 · Add Similar Member different
양쪽 secondField 멤버 생성 및 실제 멤버 접근·값 유지 실행 통과, Undo 원문 복원. 생성 코드/선택 상태에 차이.
{
"memberCreation": true,
"compilerContract": true,
"undoText": true,
"snapshotEqual": false
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\similar-member.cpp",
"text": "class SimilarMemberAudit {\r\npublic:\r\n int firstField;\r\n int secondField;\r\n};\r\n",
"caret": 47,
"selectionStart": 47,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\similar-member.cpp",
"text": "class SimilarMemberAudit {\r\npublic:\r\n int firstField;\r\n int secondField;\r\n};\r\n",
"caret": 78,
"selectionStart": 37,
"selectionLength": 41,
"selectedText": " int firstField;\r\n int secondField;"
},
"error": null
}VA-F032 · Add Using Directive different
공식 문서 조건대로 VA C# 추천을 켜고 StringBuilder를 실제 문자 메시지로 입력하자 using System.Text; 추천이 나왔습니다. 실제 수락 후 파일 상단에 using이 추가되고 C# 컴파일을 통과했습니다. CA 대응 명령은 C# 문서에 변경을 만들지 않았고 동일 원문은 미해결 StringBuilder로 컴파일 실패했습니다. 이 기능은 C++ using namespace와 구별했으며 VA C# 옵션은 원래 OFF로 복원했습니다.
{
"nativeUsingSuggestionAccepted": true,
"nativeCSharpCompiles": true,
"caCSharpUsingAdded": false,
"caCSharpCompiles": false,
"nativeOptionRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"VA.csharp-using.typed.json": {},
"VA.csharp-using.accepted.json": {},
"VA.csharp-using.after.json": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\csharp103\\UsingAudit103.cs",
"text": "using System.Text;\r\npublic class UsingAudit103\r\n{\r\n public StringBuilder Build() { return new StringBuilder(); }\r\n}\r\n"
},
"VA.csharp-using.compile.json": {
"exitCode": 0,
"log": "VA.csharp-using.compile.log"
},
"VA.csharp-using.option-restored.json": {
"status": "observed",
"title": "Visual Assist Options",
"visibleHeadings": [
"Suggestions",
"Visual Assist"
],
"clicked": true,
"stillVisible": false,
"visibleControlCount": 56
}
},
"officialDocument": "https://www.wholetomato.com/documentation/code-generation/add-using-directive",
"scope": "actual C# typing suggestion acceptance vs CA using directive command on C#; own framework project and CSC compilation"
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"CA.csharp-using.prepared.json": {
"status": "prepared"
},
"CA.csharp-using.queued.json": {
"status": "queued"
},
"CA.csharp-using.after.json": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\csharp103\\UsingAudit103.cs",
"text": "public class UsingAudit103\r\n{\r\n public StringBuilder Build() { return new StringBuilder(); }\r\n}\r\n"
},
"CA.csharp-using.compile.json": {
"exitCode": 1,
"log": "CA.csharp-using.compile.log"
}
},
"officialDocument": "https://www.wholetomato.com/documentation/code-generation/add-using-directive",
"scope": "actual C# typing suggestion acceptance vs CA using directive command on C#; own framework project and CSC compilation"
}VA-F033 · Add include Directive different
include 추가 전체 텍스트는 동일. 적용 뒤 커서 위치가 다름
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\add-include.cpp",
"text": "#include \"IncludeAudit.h\"\r\nvoid IncludeProbe(IncludeAudit value);\r\n",
"caret": 48,
"selectionStart": 48,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\add-include.cpp",
"text": "#include \"IncludeAudit.h\"\r\nvoid IncludeProbe(IncludeAudit value);\r\n",
"caret": 27,
"selectionStart": 27,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F034 · Add/Remove Braces different
양쪽 모두 괄호 추가 코드는 MSVC 구문 검사 통과. 줄바꿈·들여쓰기·선택 상태가 다름
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\braces-add.cpp",
"text": "void BraceCall() {}\r\nvoid BraceProbe()\r\n{\r\n if (true)\r\n {\r\n BraceCall();\r\n }\r\n}\r\n",
"caret": 75,
"selectionStart": 75,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\braces-add.cpp",
"text": "void BraceCall() {}\r\nvoid BraceProbe()\r\n{\r\n if (true)\r\n{ BraceCall(); }\r\n}\r\n",
"caret": 74,
"selectionStart": 58,
"selectionLength": 16,
"selectedText": "{ BraceCall(); }"
},
"error": null
}VA-F035 · Create Declaration different
VA는 클래스 내부에 멤버 선언 생성. CA는 클래스 밖 전역 선언 생성. MSVC: VA 통과, CA C2039 오류
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\create-declaration.cpp",
"text": "class DeclarationAudit {\r\n\tvoid Update();\r\n};\r\nvoid DeclarationAudit::Update() {}\r\n",
"caret": 24,
"selectionStart": 24,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\create-declaration.cpp",
"text": "class DeclarationAudit {};\r\nvoid Update();\r\nvoid DeclarationAudit::Update() {}\r\n",
"caret": 44,
"selectionStart": 28,
"selectionLength": 16,
"selectedText": "void Update();\r\n"
},
"error": null
}VA-F036 · Create File different
짝 없는 동일 헤더에서 실제 cpp 생성: VA 기본 후보는 같은 이름의 cpp이며 생성 내용에 헤더 include를 넣습니다. CA 기본 후보는 NewFile.cpp이고 지정한 cpp를 빈 내용으로 생성합니다. 파일이 실제 생성·열린 결과로 확인했습니다.
{
"actualFileCreatedBoth": true,
"generatedContentIdentical": false,
"nativeIncludesHeader": true,
"caIncludesHeader": false
}VA
실행 원문 JSON관찰 상태
{
"generated": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\CreateFileAudit103.cpp",
"text": "#include \"CreateFileAudit103.h\"\r\n\r\n\r\n\r\n"
},
"dialog": [
{
"name": "Name:",
"type": "ControlType.Text",
"id": "",
"toggle": null,
"value": null,
"selection": null,
"bounds": {
"x": 393,
"y": 518,
"width": 39,
"height": 15
}
},
{
"name": "Name:",
"type": "ControlType.Edit",
"id": "1210",
"toggle": null,
"value": "CreateFileAudit103.cpp",
"selection": null,
"bounds": {
"x": 455,
"y": 516,
"width": 549,
"height": 26
}
},
{
"name": "Location:",
"type": "ControlType.Text",
"id": "",
"toggle": null,
"value": null,
"selection": null,
"bounds": {
"x": 393,
"y": 548,
"width": 53,
"height": 21
}
},
{
"name": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\",
"type": "ControlType.Text",
"id": "1209",
"toggle": null,
"value": null,
"selection": null,
"bounds": {
"x": 455,
"y": 548,
"width": 549,
"height": 21
}
},
{
"name": "#include new file",
"type": "ControlType.CheckBox",
"id": "1212",
"toggle": "Off",
"value": null,
"selection": null,
"bounds": {
"x": 455,
"y": 578,
"width": 199,
"height": 19
}
},
{
"name": "Create",
"type": "ControlType.Button",
"id": "1",
"toggle": null,
"value": null,
"selection": null,
"bounds": {
"x": 820,
"y": 604,
"width": 88,
"height": 26
}
},
{
"name": "Cancel",
"type": "ControlType.Button",
"id": "2",
"toggle": null,
"value": null,
"selection": null,
"bounds": {
"x": 916,
"y": 604,
"width": 88,
"height": 26
}
},
{
"name": "Visual Assist",
"type": "ControlType.Text",
"id": "1302",
"toggle": null,
"value": null,
"selection": null,
"bounds": {
"x": 393,
"y": 604,
"width": 133,
"height": 26
}
}
]
}CA
실행 원문 JSON관찰 상태
{
"generated": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\CreateFileAudit103.cpp",
"text": ""
},
"dialog": [
{
"name": "",
"type": "ControlType.Pane",
"id": "",
"toggle": null,
"value": null,
"selection": null,
"bounds": {
"x": 8,
"y": 86,
"width": 944,
"height": 387
}
},
{
"name": "명령 모듈",
"type": "ControlType.ToolBar",
"id": "FolderBandModuleInner",
"toggle": null,
"value": "",
"selection": null,
"bounds": {
"x": 8,
"y": 86,
"width": 944,
"height": 31
}
},
{
"name": "도움말(&H)",
"type": "ControlType.Button",
"id": "HelpButton",
"toggle": null,
"value": "",
"selection": null,
"bounds": {
"x": 915,
"y": 88,
"width": 28,
"height": 26
}
},
{
"name": "자세히",
"type": "ControlType.SplitButton",
"id": "ViewControl",
"toggle": null,
"value": "",
"selection": null,
"bounds": {
"x": 852,
"y": 88,
"width": 55,
"height": 26
}
},
{
"name": "슬라이더 보기",
"type": "ControlType.Button",
"id": "SplitMenuButton",
"toggle": null,
"value": "",
"selection": null,
"bounds": {
"x": 879,
"y": 88,
"width": 18,
"height": 26
}
},
{
"name": "구성",
"type": "ControlType.Button",
"id": "{7DDC1264-7E4D-4F74-BBC0-D191987C8D0F}",
"toggle": null,
"value": "",
"selection": null,
"bounds": {
"x": 11,
"y": 88,
"width": 68,
"height": 26
}
},
{
"name": "새 폴더",
"type": "ControlType.Button",
"id": "{E44616AD-6DF1-4B94-85A4-E465AE8A19DB}",
"toggle": null,
"value": "",
"selection": null,
"bounds": {
"x": 79,
"y": 88,
"width": 70,
"height": 26
}
},
{
"name": "호스트 제어",
"type": "ControlType.Pane",
"id": "ProperTreeHost",
"toggle": null,
"value": null,
"selection": null,
"bounds": {
"x": 10,
"y": 117,
"width": 154,
"height": 256
}
}
]
}VA-F037 · Create from Usage different
동일한 미정의 멤버 호출 MissingAction103(7)에서 VA는 int 인수를 추론하고 private 메서드 본문을 실제 삽입했습니다. CA의 등록된 Create From Usage 명령은 VS Quick Actions로 위임하지만 이 조건에서 코드 생성 없이 원본을 유지했습니다. 본문 생성 동작의 대표 시나리오이며 class·enum 등 전체 생성 종류를 검증한 것은 아닙니다.
{
"nativeMethodGenerated": true,
"caMethodGenerated": false
}VA
실행 원문 JSON관찰 상태
{
"buffer": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\create-from-usage.cpp",
"text": "class UsageAudit103\r\n{\r\npublic:\r\n void Run() { MissingAction103(7); }\r\nprivate:\r\n\r\n\tvoid MissingAction103(int param1)\r\n\t{\r\n\t\tthrow std::logic_error(\"The method or operation is not implemented.\");\r\n\t}\r\n\r\n\r\n};\r\n"
},
"commandCompletion": {
"error": null
},
"entry": {
"status": "queued"
}
}CA
실행 원문 JSON관찰 상태
{
"buffer": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\create-from-usage.cpp",
"text": "class UsageAudit103\r\n{\r\npublic:\r\n void Run() { MissingAction103(7); }\r\n};\r\n"
},
"commandCompletion": {
"error": null
},
"entry": {
"status": "queued"
}
}VA-F038 · Create Implementation different
동일 헤더 멤버 선언에서 구현 생성: VA는 대응 cpp에 정의, CA는 헤더 끝에 non-inline 정의를 추가. 헤더를 두 번역 단위에서 사용하는 링크 검사: VA 통과, CA 중복 정의 LNK2005 실패. 양쪽 Undo 원문 복원.
{
"implementationExists": true,
"targetFile": false,
"twoTranslationUnitLink": false,
"undoText": true
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\create-implementation-v3.cpp",
"text": "#include \"create-implementation-v3.h\"\r\n\r\nvoid CreateImplementationVoidAudit::Compute()\r\n{\r\n\r\n}\r\n",
"caret": 39,
"selectionStart": 39,
"selectionLength": 57,
"selectedText": "\r\nvoid CreateImplementationVoidAudit::Compute()\r\n{\r\n\r\n}\r\n"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\create-implementation-v3.h",
"text": "#pragma once\r\n#include <stdexcept>\r\nclass CreateImplementationVoidAudit {\r\npublic:\r\n void Compute();\r\n};\r\n\r\nvoid CreateImplementationVoidAudit::Compute()\r\n{\r\n throw \"Not implemented\";\r\n}\r\n",
"caret": 194,
"selectionStart": 109,
"selectionLength": 85,
"selectedText": "\r\nvoid CreateImplementationVoidAudit::Compute()\r\n{\r\n throw \"Not implemented\";\r\n}\r\n"
},
"error": null
}VA-F039 · Create Method Implementations different
동일 클래스 이름 커서에서 VA는 선택된 First/Second 두 구현을 대응 cpp에 생성하고 두 함수 호출 링크·실행 통과. CA는 owner 입력 뒤 unsupported syntax 경고, 구현이 없어 링크 실패. VA는 대상 cpp에서 Undo 2회로 원문 복원(메서드별 Undo).
{
"bothDefinitions": false,
"linkAndRun": false,
"vaUndoRestored": true
}VA
실행 원문 JSON관찰 상태
{
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\create-all.cpp",
"text": "#include \"create-all.h\"\r\n\r\nvoid CreateAllAudit::First()\r\n{\r\n\r\n}\r\n\r\nvoid CreateAllAudit::Second()\r\n{\r\n\r\n}\r\n"
}CA
실행 원문 JSON관찰 상태
{
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\create-all.cpp",
"text": "#include \"create-all.h\"\r\n"
}VA-F040 · Document Method different
동일 헤더 메서드에서 VA Method/FullName 주석과 CA Doxygen 주석 생성 형식이 다름. Undo 원문 복구 확인
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\document-method.h",
"text": "//************************************\r\n// Method: Sum\r\n// FullName: Sum\r\n// Access: public \r\n// Returns: int\r\n// Qualifier:\r\n// Parameter: int left\r\n// Parameter: int right\r\n//************************************\r\nint Sum(int left, int right) { return left + right; }\r\n",
"caret": 224,
"selectionStart": 224,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\document-method.h",
"text": "/**\r\n * @brief \r\n * @param left \r\n * @param right \r\n * @return \r\n */\r\nint Sum(int left, int right) { return left + right; }\r\n",
"caret": 70,
"selectionStart": 70,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F041 · Implement Interface / Virtual Methods different
동일 파생 클래스 이름 커서에서 구현 실행. VA는 클래스 내부 override 생성, CA는 클래스 이름 중간에 구현을 삽입해 문법 오류. VA 생성 템플릿 의존성 stdexcept를 테스트 하네스에 포함해 인스턴스화 검증: VA 통과, CA 컴파일 실패. 양쪽 Undo 복원.
{
"classScope": false,
"compilerContract": false,
"undoText": true
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\implement-virtual.cpp",
"text": "class InterfaceAuditBase {\r\npublic:\r\n virtual int Compute() = 0;\r\n};\r\nclass InterfaceAuditDerived : public InterfaceAuditBase {\r\npublic:\r\n\r\n\tint Compute() override\r\n\t{\r\n\t\tthrow std::logic_error(\"The method or operation is not implemented.\");\r\n\t}\r\n\r\n};\r\n",
"caret": 81,
"selectionStart": 81,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\implement-virtual.cpp",
"text": "class InterfaceAuditBase {\r\npublic:\r\n virtual int Compute() = 0;\r\n};\r\nclass Inint Compute() override\r\n{\r\n throw \"Not implemented\";\r\n}\r\nterfaceAuditDerived : public InterfaceAuditBase {\r\npublic:\r\n};\r\n",
"caret": 141,
"selectionStart": 81,
"selectionLength": 60,
"selectedText": "int Compute() override\r\n{\r\n throw \"Not implemented\";\r\n}\r\n"
},
"error": null
}VA-F042 · Acronyms different
약어 AALTN에서 VA는 전체 타입 이름을 완성. CA는 AcronymCompletionEnabled=true인데 Tab만 삽입
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\acronym.cpp",
"text": "struct AcronymAuditLongTypeName {};\r\nvoid AcronymProbe() { AcronymAuditLongTypeName }\r\n",
"caret": 83,
"selectionStart": 83,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\acronym.cpp",
"text": "struct AcronymAuditLongTypeName {};\r\nvoid AcronymProbe() { AALTN\t }\r\n",
"caret": 65,
"selectionStart": 65,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F043 · Auto-Extend Multi-Line Comments representative-match
기존 단일 행 주석 예제를 다중 행 주석으로 교체해 재검사했습니다. 양쪽 옵션을 켜고 /* 주석의 두 번째 줄 끝에서 실제 Enter를 입력하자 같은 새 줄과 별표 접두사가 생성됐습니다. VA의 VS 기능 비활성화 제안은 거절해 기존 VS 설정을 유지했고 양쪽 옵션은 false로 복원했습니다. 내장 VS와의 제공자 분리는 별도 범위입니다.
{
"actualMultilineInput": true,
"optionsEnabledBoth": true,
"actualEnterBoth": true,
"extendedPrefixEqual": true,
"originalOptionsRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observation": {
"observedEditorState": {
"text": "/* comment\r\n * body\r\n * ",
"caret": 24,
"selectionStart": 24,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"transaction": {
"VA": {
"original": false,
"label": "_Extend multi-line comments",
"restored": true
},
"CA": {
"original": false,
"label": "Extend multi-line comments",
"restored": true
}
},
"scope": "Both product multiline-comment options enabled; native conflict prompt declined to preserve VS builtin settings; actual Enter extends one star prefix. Both original false options restored. Independent provider isolation not certified."
}CA
실행 원문 JSON관찰 상태
{
"observation": {
"observedEditorState": {
"text": "/* comment\r\n * body\r\n * ",
"caret": 24,
"selectionStart": 24,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"transaction": {
"VA": {
"original": false,
"label": "_Extend multi-line comments",
"restored": true
},
"CA": {
"original": false,
"label": "Extend multi-line comments",
"restored": true
}
},
"scope": "Both product multiline-comment options enabled; native conflict prompt declined to preserve VS builtin settings; actual Enter extends one star prefix. Both original false options restored. Independent provider isolation not certified."
}VA-F044 · Enhanced Listboxes different
이번 실제 OS 키 입력으로 대표 편집 시나리오 completion를 재실행했습니다. 전체 텍스트·커서·선택 범위를 양쪽 비교했습니다. 기능 전체·모든 경계의 인증은 아닙니다.
{
"actualOsInputBoth": true,
"positiveChangeObserved": true,
"representativeOutputEqual": false
}VA
실행 원문 JSON관찰 상태
{
"input": {
"text": "struct AuditLongTypeName {};\r\nvoid Probe() { AuditLongTypeN }\r\n"
},
"actual": {
"observedEditorState": {
"text": "struct AuditLongTypeName {};\r\nvoid Probe() { AuditLongTypeName }\r\n",
"caret": 62,
"selectionStart": 62,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}CA
실행 원문 JSON관찰 상태
{
"input": {
"text": "struct AuditLongTypeName {};\r\nvoid Probe() { AuditLongTypeN }\r\n"
},
"actual": {
"observedEditorState": {
"text": "struct AuditLongTypeName {};\r\nvoid Probe() { AuditLongTypeN }\r\n",
"caret": 59,
"selectionStart": 59,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}VA-F045 · Format After Paste different
실제 동일 다중 행 텍스트를 Ctrl+V로 붙여넣었습니다. VA는 탭 들여쓰기로 변환했고 CA는 공백 들여쓰기였습니다. 한 번의 Ctrl+Z 후에도 VA는 서식화된 선택 영역, CA는 서식 전 붙여넣은 텍스트가 남아 Undo 단위도 달랐습니다. 기본 VS 자동 서식의 영향과 제품 옵션 전체 동등성은 분리하며, 실제 출력 차이만 판정했습니다.
{
"actualPasteBoth": true,
"sameInput": true,
"actualUndoBoth": true,
"outputsEquivalent": false,
"clipboardRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"paste-physical106": {
"observedEditorState": {
"text": "void Paste106() {\r\n\tif (true) {\r\n\t\tint value = 1;\r\n\t\tvalue++;\r\n\t}\r\n}\r\n",
"caret": 65,
"selectionStart": 65,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"paste-undo106": {
"observedEditorState": {
"text": "void Paste106() {\r\n if (true) {\r\n int value = 1;\r\n value++;\r\n }\r\n}\r\n",
"caret": 83,
"selectionStart": 23,
"selectionLength": 60,
"selectedText": "if (true) {\r\n int value = 1;\r\n value++;\r\n }"
},
"error": null
}
},
"scope": "Actual Ctrl+V plus one Ctrl+Z under current installed defaults; independent VS formatting also runs; all clipboard transactions restored; no feature-wide certification"
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"paste-physical106": {
"observedEditorState": {
"text": "void Paste106() {\r\n if (true) {\r\n int value = 1;\r\n value++;\r\n }\r\n}\r\n",
"caret": 83,
"selectionStart": 83,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"paste-undo106": {
"observedEditorState": {
"text": "void Paste106() {\r\n if(true){\r\nint value=1;\r\nvalue++;\r\n}\r\n}\r\n",
"caret": 59,
"selectionStart": 59,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
},
"scope": "Actual Ctrl+V plus one Ctrl+Z under current installed defaults; independent VS formatting also runs; all clipboard transactions restored; no feature-wide certification"
}VA-F046 · Insert () and Closing Brackets and Quotes representative-match
이번 실제 OS 키 입력으로 대표 편집 시나리오 pair-insert를 재실행했습니다. 전체 텍스트·커서·선택 범위를 양쪽 비교했습니다. 기능 전체·모든 경계의 인증은 아닙니다.
{
"actualOsInputBoth": true,
"positiveChangeObserved": true,
"representativeOutputEqual": true
}VA
실행 원문 JSON관찰 상태
{
"input": {
"text": ""
},
"actual": {
"observedEditorState": {
"text": "()",
"caret": 1,
"selectionStart": 1,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}CA
실행 원문 JSON관찰 상태
{
"input": {
"text": ""
},
"actual": {
"observedEditorState": {
"text": "()",
"caret": 1,
"selectionStart": 1,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}VA-F047 · Insert _ After m and Shift representative-match
실제 옵션을 켠 상태에서 m 입력 후 일반 Shift down/up 메시지를 전용 편집기에 전달했습니다. 양쪽 모두 m_로 바뀌고 커서가 한 칸 이동했으며 한 번의 Undo로 m이 복원됐습니다. 로컬 UI 스레드 키 상태와 원래 옵션도 복원했습니다. 물리 키 입력 검증은 아니며 처음 사용한 LShift 전용 가상 키는 원본에서 반응하지 않아 정상 일반 Shift 메시지로 재검사했습니다.
{
"actualGenericShiftAddsUnderscoreBoth": true,
"caretAdvancedOneBoth": true,
"oneUndoRestoresBoth": true,
"localKeyStateRestoredBoth": true,
"originalOptionsRestored": true
}VA
실행 원문 JSON관찰 상태
{
"shift": {
"status": "observed"
},
"undo": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\member-prefix.cpp",
"text": "class PrefixAudit103\r\n{\r\n int m\r\n};\r\n"
},
"settingsRestored": [
{
"role": "VA",
"label": "_Insert __ after m and Shift",
"original": false,
"restored": true
},
{
"role": "CA",
"label": "Insert underscore after m and Shift",
"original": false,
"restored": true
}
],
"scope": "actual private-window WM_KEYDOWN/WM_KEYUP generic Shift; no physical keyboard takeover"
}CA
실행 원문 JSON관찰 상태
{
"shift": {
"status": "observed"
},
"undo": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\member-prefix.cpp",
"text": "class PrefixAudit103\r\n{\r\n int m\r\n};\r\n"
},
"settingsRestored": [
{
"role": "VA",
"label": "_Insert __ after m and Shift",
"original": false,
"restored": true
},
{
"role": "CA",
"label": "Insert underscore after m and Shift",
"original": false,
"restored": true
}
],
"scope": "actual private-window WM_KEYDOWN/WM_KEYUP generic Shift; no physical keyboard takeover"
}VA-F048 · Multiple Clipboards different
동일한 Alpha→Beta 문자열을 실제 Ctrl+C로 복사한 뒤 실제 기록 메뉴에서 Enter로 붙여넣었습니다. VA는 이전 메뉴 선택 상태의 Alpha를, CA는 최신 Beta를 붙여넣었습니다. 둘 다 기록에서 붙여넣는 양성 동작을 확인했습니다. 현재 선택 상태를 포함한 대표 결과 차이이며 공장 초기 선택값 비교는 아닙니다. 재실행 직전 클립보드 복원은 확인했지만 초기 타임아웃의 원래 사용자 클립보드 복원은 확인하지 못했습니다.
{
"actualCopiesBoth": true,
"actualHistoryPasteBoth": true,
"sameCopyOrder": true,
"sameSelectedHistoryText": false,
"retryClipboardRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observation": {
"observedEditorState": {
"text": "// ClipboardAlpha106\r\n// ClipboardBeta106\r\n\r\nClipboardAlpha106",
"caret": 62,
"selectionStart": 62,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"cleanup": {
"clipboardRestored": true,
"clipboardTouched": true
},
"scope": "Two actual Ctrl+C operations, actual history menu and Enter selection; preexisting menu selection differs. Early abandoned timeout is not counted as success and pre-turn clipboard restoration was not verified."
}CA
실행 원문 JSON관찰 상태
{
"observation": {
"observedEditorState": {
"text": "// ClipboardAlpha106\r\n// ClipboardBeta106\r\n\r\nClipboardBeta106",
"caret": 61,
"selectionStart": 61,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"cleanup": {
"clipboardRestored": true,
"clipboardTouched": true
},
"scope": "Two actual Ctrl+C operations, actual history menu and Enter selection; preexisting menu selection differs. Early abandoned timeout is not counted as success and pre-turn clipboard restoration was not verified."
}VA-F049 · Reset Editor Zoom different
이번 실제 OS 키 입력으로 대표 편집 시나리오 reset-zoom를 재실행했습니다. 전체 텍스트·커서·선택 범위 및 140→100 줌를 양쪽 비교했습니다. 기능 전체·모든 경계의 인증은 아닙니다.
{
"actualOsInputBoth": true,
"positiveChangeObserved": true,
"representativeOutputEqual": false
}VA
실행 원문 JSON관찰 상태
{
"input": {
"text": "void Sample() {}\r\n"
},
"actual": {
"observedEditorState": {
"text": "void Sample() {}\r\n",
"caret": 0,
"selectionStart": 0,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"zoom": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\full-recheck107-reset-zoom.cpp"
}
}CA
실행 원문 JSON관찰 상태
{
"input": {
"text": "void Sample() {}\r\n"
},
"actual": {
"observedEditorState": {
"text": "void Sample() {}\r\n",
"caret": 0,
"selectionStart": 0,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"zoom": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\full-recheck107-reset-zoom.cpp"
}
}VA-F050 · Shorthand different
축약 ShALoTyNa에서 VA는 전체 타입 이름을 완성. CA는 ShorthandCompletionEnabled=true인데 Tab만 삽입
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\shorthand.cpp",
"text": "struct ShorthandAuditLongTypeName {};\r\nvoid ShorthandProbe() { ShorthandAuditLongTypeName }\r\n",
"caret": 89,
"selectionStart": 89,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\shorthand.cpp",
"text": "struct ShorthandAuditLongTypeName {};\r\nvoid ShorthandProbe() { ShALoTyNa\t }\r\n",
"caret": 73,
"selectionStart": 73,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F051 · Smart Select different
이번 실제 OS 키 입력으로 대표 편집 시나리오 smart-select를 재실행했습니다. 전체 텍스트·커서·선택 범위를 양쪽 비교했습니다. 기능 전체·모든 경계의 인증은 아닙니다.
{
"actualOsInputBoth": true,
"positiveChangeObserved": true,
"representativeOutputEqual": false
}VA
실행 원문 JSON관찰 상태
{
"input": {
"text": "void Sample() { int value = 1; }\r\n"
},
"actual": {
"observedEditorState": {
"text": "void Sample() { int value = 1; }\r\n",
"caret": 25,
"selectionStart": 20,
"selectionLength": 5,
"selectedText": "value"
},
"error": null
}
}CA
실행 원문 JSON관찰 상태
{
"input": {
"text": "void Sample() { int value = 1; }\r\n"
},
"actual": {
"observedEditorState": {
"text": "void Sample() { int value = 1; }\r\n",
"caret": 30,
"selectionStart": 16,
"selectionLength": 14,
"selectedText": "int value = 1;"
},
"error": null
}
}VA-F052 · Smart Suggestions representative-match
bool 대입 문맥에 tru를 입력하고 양쪽 실제 추천의 true를 선택했습니다. VA 고유 목록은 촬영으로 true 한 행을 확인했고 CA 목록은 CodeAssist expected-type literal 출처를 확인했습니다. 삽입 본문·커서·선택 범위가 같고 컴파일·실행도 모두 성공했습니다. bool 대표 사례이며 enum·생성자·인자 전체 인증은 아닙니다.
{
"actualRecommendationAcceptedBoth": true,
"actualGeneratedRuntimeBoth": true,
"textIdentical": true,
"caretIdentical": true,
"selectionIdentical": true
}VA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": true,
"compileExit": 0,
"source": "VA-smart-bool.cpp",
"sourceSha256": "dbf5e1366b7c973a89526d966402ecac5424a65dfc5e50b5b8e193ccf1657ac8",
"contract": "expected-type true inserted, runtime returns true",
"runExit": 0,
"executableSha256": "a6dacdf956c47ac0ea3c911ea2b0b046637b5be82cc2c20cf200d7e218f711f8"
}
}CA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": true,
"compileExit": 0,
"source": "CA-smart-bool.cpp",
"sourceSha256": "dbf5e1366b7c973a89526d966402ecac5424a65dfc5e50b5b8e193ccf1657ac8",
"contract": "expected-type true inserted, runtime returns true",
"runExit": 0,
"executableSha256": "9dda9ba82d7f6ffdec74b5a52e99cc01a17244e41a097e8c223df142be6bd039"
}
}VA-F053 · Sort Selected Lines different
같은 세 줄 전체를 선택해 실제 정렬 대화상자를 승인했습니다. VA는 alpha/bravo/charlie 순서로 정렬했고 CA는 승인 후에도 원래 charlie/alpha/bravo가 남았습니다. VA 정렬 Undo 복원도 확인했습니다. 양쪽 무반응을 일치로 처리하지 않았으며 소스에 보이는 중복 이벤트만으로 원인을 단정하지 않습니다.
{
"sameSelectedInput": true,
"actualSortDialogAcceptedBoth": true,
"nativeSortedPositive": true,
"caSortedEquivalent": false
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"id": "request-a730b5297cd2495f",
"role": "VA",
"pid": 25764,
"status": "complete",
"sha256": "8bff8ec98bbeba34fe7588c123b73ad1b7d99c6544208c6207517d5ed5d87bad",
"result": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\sort-lines107.cpp",
"saved": false,
"equalsDisk": false,
"text": "alpha\r\nbravo\r\ncharlie\r\n"
},
"error": null,
"at": "2026-10-19T12:15:06.3386465+09:00"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"id": "request-74865e0beeaf49a2",
"role": "CA",
"pid": 11776,
"status": "complete",
"sha256": "8bff8ec98bbeba34fe7588c123b73ad1b7d99c6544208c6207517d5ed5d87bad",
"result": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\sort-lines107.cpp",
"saved": true,
"equalsDisk": true,
"text": "charlie\r\nalpha\r\nbravo\r\n"
},
"error": null,
"at": "2026-10-19T12:15:05.2682170+09:00"
},
"error": null
}VA-F054 · Suggestion Lists representative-match
동일 함수 안 최근 지역 변수 nearbyValue103을 원본의 실제 추천 이미지와 CA CodeAssistPreview 세션에서 확인하고 수락했습니다. 완성 본문·커서·선택이 일치하고 실행 결과 7도 같습니다. 최근 지역 변수 대표 사례이며 C# 병합·모든 선택 규칙 전체 인증은 아닙니다.
{
"actualSuggestionAcceptedBoth": true,
"runtimeBoth": true,
"textIdentical": true,
"caretIdentical": true,
"selectionIdentical": true
}VA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": true,
"compileExit": 0,
"source": "VA-recent-suggestion.cpp",
"sourceSha256": "ccdc304fd286a83a894ad11267ad3b42af3ff49b67c37ddfb6b64e4bf73cd028",
"contract": "same local variable accepted, runtime7",
"runExit": 0,
"executableSha256": "506f6ccc66a88cf0c77bd4cfee2bce93d783fa4ee1e993fb0764fd4dbda96cd6"
}
}CA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": true,
"compileExit": 0,
"source": "CA-recent-suggestion.cpp",
"sourceSha256": "ccdc304fd286a83a894ad11267ad3b42af3ff49b67c37ddfb6b64e4bf73cd028",
"contract": "same local variable accepted, runtime7",
"runExit": 0,
"executableSha256": "00f852b7a626bd97bf672848e11c4abaad51a96a64e4e8a8825d4d52d29ab6cb"
}
}VA-F055 · Surround Selection different
이번 실제 OS 키 입력으로 대표 편집 시나리오 surround-word를 재실행했습니다. 전체 텍스트·커서·선택 범위를 양쪽 비교했습니다. 기능 전체·모든 경계의 인증은 아닙니다.
{
"actualOsInputBoth": true,
"positiveChangeObserved": true,
"representativeOutputEqual": false
}VA
실행 원문 JSON관찰 상태
{
"input": {
"text": "int value;"
},
"actual": {
"observedEditorState": {
"text": "int (value);",
"caret": 11,
"selectionStart": 4,
"selectionLength": 7,
"selectedText": "(value)"
},
"error": null
},
"undo": {
"observedEditorState": {
"text": "int value;",
"caret": 9,
"selectionStart": 9,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}CA
실행 원문 JSON관찰 상태
{
"input": {
"text": "int value;"
},
"actual": {
"observedEditorState": {
"text": "int(value);",
"caret": 10,
"selectionStart": 10,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"undo": {
"observedEditorState": {
"text": "int value;",
"caret": 9,
"selectionStart": 4,
"selectionLength": 5,
"selectedText": "value"
},
"error": null
}
}VA-F056 · Surround With representative-match
선택한 1 + 2에 괄호 문자를 입력하면 양쪽 모두 (1 + 2)로 감싸고 커서·선택 상태가 같습니다. Undo 후 원문과 원래 선택 영역도 일치합니다. 괄호 한 가지 표본이며 다른 감싸기·물리 입력 전체 인증은 아닙니다.
{
"inputStateEqual": true,
"undoStateEqual": true,
"selectedExpressionSurroundedBoth": true
}VA
실행 원문 JSON관찰 상태
{
"input": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\surround-parentheses.cpp",
"text": "int SurroundAudit103() { return (1 + 2); }\r\n",
"caret": 39,
"selectionStart": 39,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"undo": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\surround-parentheses.cpp",
"text": "int SurroundAudit103() { return 1 + 2; }\r\n",
"caret": 37,
"selectionStart": 32,
"selectionLength": 5,
"selectedText": "1 + 2"
},
"error": null
}
}CA
실행 원문 JSON관찰 상태
{
"input": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\surround-parentheses.cpp",
"text": "int SurroundAudit103() { return (1 + 2); }\r\n",
"caret": 39,
"selectionStart": 39,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"undo": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\surround-parentheses.cpp",
"text": "int SurroundAudit103() { return 1 + 2; }\r\n",
"caret": 37,
"selectionStart": 32,
"selectionLength": 5,
"selectedText": "1 + 2"
},
"error": null
}
}VA-F057 · Column Indicator different
같은40열 설정에서 두 제품의 가이드 위치는 1픽셀 범위 안입니다. VA는 x=282의 1픽셀 점선(5픽셀 간격), CA는 x=281~282의 연속선으로 나타납니다. 이전 70% 연속선 검출 기준이 VA 점선을 놓친 분석 오류를 수정했으며, 가이드 미표시로 판정하지 않았습니다. 설정은 원복했습니다.
{
"guideVisibleBoth": true,
"horizontalPositionWithinOnePixel": true,
"strokePatternAndWidthEqual": false,
"settingsRestored": true
}VA
실행 원문 JSON
관찰 상태
{
"geometry": {
"viewport": [
532,
558
],
"columnPixels": [
282
],
"changedRows": 96,
"verticalStepCounts": {
"5": 95
},
"colors": [
[
128,
128,
128
]
],
"requestedColumn": 40
},
"images": {
"off": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-a545087ed0df445d-editor.png",
"on": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-d92c47cbee4d490f-editor.png"
},
"originalSettings": {
"status": "observed",
"title": "Visual Assist Options",
"visibleHeadings": [
"}",
"Display",
"Editor",
"Visual Assist"
],
"clicked": false,
"stillVisible": true,
"visibleControlCount": 76
},
"restoredSettings": {
"status": "observed",
"title": "Visual Assist Options",
"visibleHeadings": [
"}",
"Display",
"Editor",
"Visual Assist"
],
"clicked": false,
"stillVisible": true,
"visibleControlCount": 76
},
"transaction": [
{
"role": "VA",
"label": "_Display indicator after column ",
"enabled": false,
"column": "75",
"restored": true
},
{
"role": "CA",
"label": "Show column indicator",
"enabled": false,
"column": "100",
"restored": true
}
]
}CA
실행 원문 JSON
관찰 상태
{
"geometry": {
"viewport": [
524,
491
],
"columnPixels": [
281,
282
],
"changedRows": 411,
"verticalStepCounts": {
"1": 410
},
"colors": [
[
54,
54,
54
]
],
"requestedColumn": 40
},
"images": {
"off": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\CA-request-2b0f021c1d1246d4-editor.png",
"on": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\CA-request-b9a43134b80f4093-editor.png"
},
"originalSettings": {
"status": "observed",
"title": "CodeAssist Options",
"visibleHeadings": [
""
],
"clicked": false,
"stillVisible": true,
"visibleControlCount": 63
},
"restoredSettings": {
"status": "observed",
"title": "CodeAssist Options",
"visibleHeadings": [
""
],
"clicked": false,
"stillVisible": true,
"visibleControlCount": 63
},
"transaction": [
{
"role": "VA",
"label": "_Display indicator after column ",
"enabled": false,
"column": "75",
"restored": true
},
{
"role": "CA",
"label": "Show column indicator",
"enabled": false,
"column": "100",
"restored": true
}
]
}VA-F058 · Context Field different
동일 멤버·지역 변수에서 VA는 네임스페이스·클래스·함수까지 문맥 경로를 표시하지만 CA는 클래스명만 표시합니다. 미해결 심볼에서 VA 문맥은 비고 CA는 클래스명을 유지합니다.
{
"sameMemberAndLocalInput": true,
"nativeQualifiedLocalScope": true,
"unknownDefinitionEqual": false
}VA
실행 원문 JSON관찰 상태
{
"field": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.ComboBox",
"BarAudit103.Owner103.dataMember "
],
[
"ControlType.ComboBox",
"int dataMember"
],
[
"ControlType.ComboBox",
"Parity"
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)이 속할 수 있는 다른 프로젝트를 보고 해당 프로젝트로 전환합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)의 모든 범위/형식을 보고 탐색합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 범위/형식의 모든 함수를 보고 탐색합니다."
]
],
"local": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.ComboBox",
"BarAudit103.Owner103.Compute.localCounter "
],
[
"ControlType.ComboBox",
"int localCounter = input + dataMember"
],
[
"ControlType.ComboBox",
"Parity"
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)이 속할 수 있는 다른 프로젝트를 보고 해당 프로젝트로 전환합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)의 모든 범위/형식을 보고 탐색합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 범위/형식의 모든 함수를 보고 탐색합니다."
]
],
"unknown": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"Parity"
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)이 속할 수 있는 다른 프로젝트를 보고 해당 프로젝트로 전환합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)의 모든 범위/형식을 보고 탐색합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 범위/형식의 모든 함수를 보고 탐색합니다."
]
]
}CA
실행 원문 JSON관찰 상태
{
"field": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.Text",
"Context: Owner103"
],
[
"ControlType.Text",
"Definition: int dataMember"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"100 %"
]
],
"local": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.Text",
"Context: Owner103"
],
[
"ControlType.Text",
"Definition: int localCounter"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"100 %"
]
],
"unknown": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.Text",
"Context: Owner103"
],
[
"ControlType.Text",
"Definition: UnknownSymbol103"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"100 %"
]
]
}VA-F059 · Definition Field different
지역 변수에서 VA 정의 필드는 초기화식까지 표시하지만 CA는 형식과 이름만 표시합니다. 미해결 심볼에서 VA는 빈 필드이고 CA는 입력 이름을 표시합니다.
{
"sameMemberAndLocalInput": true,
"nativeQualifiedLocalScope": true,
"unknownDefinitionEqual": false
}VA
실행 원문 JSON관찰 상태
{
"field": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.ComboBox",
"BarAudit103.Owner103.dataMember "
],
[
"ControlType.ComboBox",
"int dataMember"
],
[
"ControlType.ComboBox",
"Parity"
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)이 속할 수 있는 다른 프로젝트를 보고 해당 프로젝트로 전환합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)의 모든 범위/형식을 보고 탐색합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 범위/형식의 모든 함수를 보고 탐색합니다."
]
],
"local": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.ComboBox",
"BarAudit103.Owner103.Compute.localCounter "
],
[
"ControlType.ComboBox",
"int localCounter = input + dataMember"
],
[
"ControlType.ComboBox",
"Parity"
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)이 속할 수 있는 다른 프로젝트를 보고 해당 프로젝트로 전환합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)의 모든 범위/형식을 보고 탐색합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 범위/형식의 모든 함수를 보고 탐색합니다."
]
],
"unknown": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"Parity"
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)이 속할 수 있는 다른 프로젝트를 보고 해당 프로젝트로 전환합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 파일(context-fields.cpp)의 모든 범위/형식을 보고 탐색합니다."
],
[
"ControlType.ComboBox",
"드롭다운을 사용하여 이 범위/형식의 모든 함수를 보고 탐색합니다."
]
]
}CA
실행 원문 JSON관찰 상태
{
"field": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.Text",
"Context: Owner103"
],
[
"ControlType.Text",
"Definition: int dataMember"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"100 %"
]
],
"local": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.Text",
"Context: Owner103"
],
[
"ControlType.Text",
"Definition: int localCounter"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"100 %"
]
],
"unknown": [
[
"ControlType.ComboBox",
"솔루션 구성"
],
[
"ControlType.ComboBox",
"솔루션 플랫폼"
],
[
"ControlType.Text",
"Context: Owner103"
],
[
"ControlType.Text",
"Definition: UnknownSymbol103"
],
[
"ControlType.ComboBox",
""
],
[
"ControlType.ComboBox",
"100 %"
]
]
}VA-F060 · Enhanced Syntax Coloring different
최종 렌더링에서 VA 매크로는 보라색이고 CA는 일반 식별자 색. 클래스·함수의 노랑/주황은 유사. VA 최종 색은 기본 분류 맵과 달라 실제 렌더링으로 판정
VA
실행 원문 JSON
관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\syntax-colors.cpp",
"text": "#define COLOR_AUDIT_MACRO 1\r\nclass ColorAuditType\r\n{\r\npublic:\r\n int field;\r\n void Update(int parameter) { int local = parameter; field = local; }\r\n};\r\nvoid ColorProbe() { ColorAuditType item; item.Update(COLOR_AUDIT_MACRO); }\r\n",
"caret": 71,
"selectionStart": 71,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON
관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\syntax-colors.cpp",
"text": "#define COLOR_AUDIT_MACRO 1\r\nclass ColorAuditType\r\n{\r\npublic:\r\n int field;\r\n void Update(int parameter) { int local = parameter; field = local; }\r\n};\r\nvoid ColorProbe() { ColorAuditType item; item.Update(COLOR_AUDIT_MACRO); }\r\n",
"caret": 71,
"selectionStart": 71,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F061 · Local Symbols in Bold different
CA 로컬 굵게 실제 켜기 전/후 비교: localCounter는 400→700이며 VA와 글리프가 정확히 일치. std::vector 변수 values의 선언부는 CA 400으로 남고 VA 굵게 렌더링과 다름. 같은 void 키워드 글리프는 전후 모두 일치. 원래 설정 복원.
{
"primitiveLocalBold": true,
"nonPrimitiveDeclarationBold": false,
"referenceFontControl": true,
"settingsRestored": true
}VA
실행 원문 JSON
관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\style-attributes.cpp",
"text": "#include <vector>\r\nvoid StyleAttributeAudit()\r\n{\r\n int localCounter = 1;\r\n std::vector<int> values;\r\n values.push_back(localCounter);\r\n}\r\n",
"caret": 48,
"selectionStart": 48,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON
관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\style-attributes.cpp",
"text": "#include <vector>\r\nvoid StyleAttributeAudit()\r\n{\r\n int localCounter = 1;\r\n std::vector<int> values;\r\n values.push_back(localCounter);\r\n}\r\n",
"caret": 48,
"selectionStart": 48,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F062 · Highlight Find Results representative-match
주석 두 곳의 FindAudit103을 실제 IDE Find API로 검색했습니다. 양쪽 모두 첫 항목(3~15)을 선택하고 두 번째 항목(24~36)에 Matched Selected Text 태그를 표시했습니다. 이 대표 검색 동작은 같으며, IDE 공통 동작이 포함된 결과입니다. VA 고유 구현 전체·실제 Ctrl+F·ESC 및 Find in Files 전체 검증으로 확대하지 않았습니다.
{
"actualFindFoundBoth": true,
"selectedRangeSame": true,
"otherMatchTagSame": true,
"sharedIdeBehaviorScopeDisclosed": true
}VA
실행 원문 JSON관찰 상태
{
"actual": {},
"scope": "actual IDE Find API on own comment text; shared IDE matching behavior, not exclusive VA implementation or physical Ctrl+F certification"
}CA
실행 원문 JSON관찰 상태
{
"actual": {},
"scope": "actual IDE Find API on own comment text; shared IDE matching behavior, not exclusive VA implementation or physical Ctrl+F certification"
}VA-F063 · Highlight Matching Words different
VA의 주석·문자열 matching words 옵션을 실제 켜고 주석 단어에 커서를 두면 다른 동일 단어가 노란색으로 강조되고 커서를 떠나면 원복됩니다. CA는 같은 자동 강조가 없으며 현재 줄 배경 변화만 보였습니다. 수동 Find Selected 명령과 구분했고 VA 설정은 원래 값으로 복원했습니다.
{
"nativeAutomaticHighlightObserved": true,
"caAutomaticHighlightObserved": false,
"reversibleBoth": true,
"settingsRestored": true
}VA
실행 원문 JSON관찰 상태
{
"geometry": {
"activeChangedPixels": 1344,
"restoredChangedPixels": 0,
"activeColors": [
[
[
65,
65,
0
],
821
],
[
[
70,
70,
70
],
336
],
[
[
185,
185,
0
],
187
]
]
},
"activeMarkers": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\matching-comment.cpp"
},
"restoredTransaction": [
{
"label": "Highlight matching words when caret is in _comments and strings",
"original": false,
"restored": true
}
],
"scope": "automatic comment word highlight at caret; not manual Find Selected"
}CA
실행 원문 JSON관찰 상태
{
"geometry": {
"activeChangedPixels": 336,
"restoredChangedPixels": 0,
"activeColors": [
[
[
30,
30,
30
],
821
],
[
[
70,
70,
70
],
336
],
[
[
87,
166,
74
],
187
]
]
},
"activeMarkers": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\matching-comment.cpp"
},
"restoredTransaction": [
{
"label": "Highlight matching words when caret is in _comments and strings",
"original": false,
"restored": true
}
],
"scope": "automatic comment word highlight at caret; not manual Find Selected"
}VA-F064 · Highlight References to Symbol Under Cursor different
양쪽 참조 강조를 실제 활성화하고 VA 추가 확인창을 아니요로 처리. 동일 value 두 곳(35,58)을 강조하나 VA 배경 RGB17/61/111, CA82/74/34로 다름. VS 기본 강조가 VA와 함께 켜진 구성 결과이며 VA 고유 마커 인과성은 별도. 양쪽 원래 꺼짐 설정 복원 확인.
{
"twoReferenceSpans": true,
"backgroundColor": false,
"settingsRestored": true
}VA
실행 원문 JSON
관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\references-enabled.cpp",
"text": "class ReferenceAudit { public: int value; void Update() { value = 3; } };\r\n",
"caret": 37,
"selectionStart": 37,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON
관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\references-enabled.cpp",
"text": "class ReferenceAudit { public: int value; void Update() { value = 3; } };\r\n",
"caret": 37,
"selectionStart": 37,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F065 · Parameter Info different
자체 경고가 없고 실제 편집기 파일·포커스가 맞는 새 실행에서 표준 Parameter Info 명령을 재검증했습니다. VA는 두 번째 인수를 선택한 함수 서명 도움말을 표시하지만 CA는 E_ABORT를 반환하고 서명 세션이 없습니다. 다른 트리거·언어 전체 인증은 아닙니다.
{
"actualFileAndFocusValidatedBoth": true,
"knownOldWarningDialogsAbsent": true,
"sameStandardCommandBoth": true,
"infoSessionPresentBoth": false
}VA
실행 원문 JSON
관찰 상태
{
"session": {
"status": "observed",
"quickState": null,
"quickContent": [],
"signatures": [
{
"selected": "void ParameterAudit(int first, float second)",
"currentParameter": "second",
"items": [
{
"content": "void ParameterAudit(int first, float second)",
"parameters": [
"first",
"second"
]
}
]
}
]
},
"commandOutcome": {
"error": null
},
"preparedView": {},
"popupSources": [
{
"type": "System.Windows.Controls.Primitives.PopupRoot",
"hwnd": 3935316,
"width": 248,
"height": 23,
"image": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\module-evidence\\VA-request-728e0bce5cfa49ab-source3.png"
}
],
"scope": "standard editor command with owned focused view; hover and direct provider invocation separate"
}CA
실행 원문 JSON
관찰 상태
{
"session": {
"status": "observed",
"quickState": null,
"quickContent": [],
"signatures": []
},
"commandOutcome": {
"error": "System.Runtime.InteropServices.COMException (0x80004004): 작업이 중단되었습니다. (예외가 발생한 HRESULT: 0x80004004 (E_ABORT))\r\n 위치: EnvDTE80.DTE2.ExecuteCommand(String CommandName, String CommandArgs)\r\n 위치: CodeAssist.ParityExperiments.LiveProbe.<>c__DisplayClass19_4.<RunAsync>b__35()"
},
"preparedView": {},
"popupSources": [],
"scope": "standard editor command with owned focused view; hover and direct provider invocation separate"
}VA-F066 · Print in Color different
양쪽의 실제 인쇄 명령으로 Microsoft Print to PDF 출력을 만들고 PDF를 렌더링·분석했습니다. 두 프로그램 모두 색상 출력은 작동하지만 VA는 키워드 파랑·주석 초록·메서드 적갈색과 파일명/행 번호를 출력했고, CA는 키워드·주석 검정·클래스 노랑·메서드 주황이며 머리말/행 번호가 없습니다. 실제 사용자 전경 창과 입력 데스크톱은 유지되었습니다. 선택 영역의 문맥 제한까지 인증한 것은 아닙니다.
{
"actualVirtualPrintJobProducedPdfBoth": true,
"actualPdfHasColoredTextBoth": true,
"printedKeywordColorEqual": false,
"printedLayoutEqual": false,
"pdfPagesRenderedAndInspected": true,
"userInputDesktopAndForegroundUnchanged": true
}VA
실행 원문 JSON관찰 상태
{
"pdf": "../remaining-105/VA.print-color105.pdf",
"pageImage": "../remaining-105/VA.print-color105.png",
"colors": {
"pages": 1,
"sourceSha256": "0a569d58334c68942f0d5a090d5dcdc8e2403d0bbd9568fca5bf3e9a30881e48",
"words": [
{
"text": "class",
"non_stroking_color": [
0.0,
0.0,
1.0
],
"fontname": "CIDFont+F1",
"size": 9.75
},
{
"text": "PrintType105",
"non_stroking_color": [
0.0,
0.0,
1.0
],
"fontname": "CIDFont+F1",
"size": 9.75
},
{
"text": "int",
"non_stroking_color": [
0.0,
0.0,
1.0
],
"fontname": "CIDFont+F1",
"size": 9.75
},
{
"text": "Value",
"non_stroking_color": [
0.533333,
0.0,
0.0
],
"fontname": "CIDFont+F1",
"size": 9.75
},
{
"text": "return",
"non_stroking_color": [
0.0,
0.0,
1.0
],
"fontname": "CIDFont+F1",
"size": 9.75
},
{
"text": "int",
"non_stroking_color": [
0.0,
0.0,
1.0
],
"fontname": "CIDFont+F1",
"size": 9.75
},
{
"text": "main",
"non_stroking_color": [
0.533333,
0.0,
0.0
],
"fontname": "CIDFont+F1",
"size": 9.75
},
{
"text": "PrintType105",
"non_stroking_color": [
0.0,
0.0,
1.0
],
"fontname": "CIDFont+F1",
"size": 9.75
}
],
"allColors": [
"(0.0, 0.0, 0.0)",
"(0.0, 0.0, 0.501961)",
"(0.0, 0.0, 1.0)",
"(0.0, 0.501961, 0.0)",
"(0.168627, 0.568627, 0.686275)",
"(0.533333, 0.0, 0.0)"
]
},
"actualPrint": {
"pid": 33440,
"desktop": "CodeAssistVerify-runtime",
"printer": "Microsoft Print to PDF",
"dialog": 3610702,
"button": 3152024,
"virtualPrintRequested": true
},
"isolation": {
"observedEditorState": {
"inputDesktop": "Default",
"foregroundHwnd": 3606914
},
"error": null
},
"scope": "Actual product print command, Microsoft Print to PDF only, PDF text colors and rendered page inspected. No physical printer output or selected-fragment context certification."
}CA
실행 원문 JSON관찰 상태
{
"pdf": "../remaining-105/CA.print-color105.pdf",
"pageImage": "../remaining-105/CA.print-color105.png",
"colors": {
"pages": 1,
"sourceSha256": "2aca38a046420a9b8e5ecf75773f8a6f4b3cde7f3b6ee29524cd4df9428ab405",
"words": [
{
"text": "class",
"non_stroking_color": [
0.0,
0.0,
0.0
],
"fontname": "CIDFont+F1",
"size": 9.0
},
{
"text": "PrintType105",
"non_stroking_color": [
1.0,
0.843137,
0.0
],
"fontname": "CIDFont+F1",
"size": 9.0
},
{
"text": "int",
"non_stroking_color": [
0.0,
0.0,
0.0
],
"fontname": "CIDFont+F1",
"size": 9.0
},
{
"text": "Value",
"non_stroking_color": [
1.0,
0.501961,
0.0
],
"fontname": "CIDFont+F1",
"size": 9.0
},
{
"text": "return",
"non_stroking_color": [
0.0,
0.0,
0.0
],
"fontname": "CIDFont+F1",
"size": 9.0
},
{
"text": "int",
"non_stroking_color": [
0.0,
0.0,
0.0
],
"fontname": "CIDFont+F1",
"size": 9.0
},
{
"text": "main",
"non_stroking_color": [
1.0,
0.501961,
0.0
],
"fontname": "CIDFont+F1",
"size": 9.0
},
{
"text": "PrintType105",
"non_stroking_color": [
1.0,
0.843137,
0.0
],
"fontname": "CIDFont+F1",
"size": 9.0
}
],
"allColors": [
"(0.0, 0.0, 0.0)",
"(1.0, 0.501961, 0.0)",
"(1.0, 0.843137, 0.0)"
]
},
"actualPrint": {
"pid": 36668,
"desktop": "CodeAssistVerify-runtime",
"printer": "Microsoft Print to PDF",
"dialog": 989282,
"button": 395032,
"virtualPrintRequested": true
},
"isolation": {
"observedEditorState": {
"inputDesktop": "Default",
"foregroundHwnd": 3606914
},
"error": null
},
"scope": "Actual product print command, Microsoft Print to PDF only, PDF text colors and rendered page inspected. No physical printer output or selected-fragment context certification."
}VA-F067 · Quick Info different
자체 경고가 없고 실제 편집기 파일·포커스가 맞는 새 실행에서 표준 Quick Info 명령을 재검증했습니다. VA는 클래스 정보 팝업을 표시하지만 CA는 같은 명령 후 세션·팝업이 없습니다. 마우스 hover 및 공급자 직접 호출과는 구분한 표준 명령 경로의 차이입니다.
{
"actualFileAndFocusValidatedBoth": true,
"knownOldWarningDialogsAbsent": true,
"sameStandardCommandBoth": true,
"infoSessionPresentBoth": false
}VA
실행 원문 JSON
관찰 상태
{
"session": {
"status": "observed",
"quickState": "Visible",
"quickContent": [
"class",
"CorrespondingProbe",
"크기: ",
"1바이트",
"맞춤: ",
"온라인 검색"
],
"signatures": []
},
"commandOutcome": {
"error": null
},
"preparedView": {},
"popupSources": [
{
"type": "System.Windows.Controls.Primitives.PopupRoot",
"hwnd": 7997554,
"width": 185,
"height": 88,
"image": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\module-evidence\\VA-request-addc252bafd647c5-source3.png"
}
],
"scope": "standard editor command with owned focused view; hover and direct provider invocation separate"
}CA
실행 원문 JSON
관찰 상태
{
"session": {
"status": "observed",
"quickState": null,
"quickContent": [],
"signatures": []
},
"commandOutcome": {
"error": null
},
"preparedView": {},
"popupSources": [],
"scope": "standard editor command with owned focused view; hover and direct provider invocation separate"
}VA-F068 · System Symbols in Italics different
양쪽 시스템 기울임 옵션을 켠 상태의 실제 std::vector 렌더링 대조. VA는 시스템 타입을 색상·기울임으로 표시, CA는 vector가 일반 identifier/Normal로 남아 표시가 다름. 원인은 이 fixture의 시스템 심볼 인식 단계까지 확인했으며 전체 헤더 범위는 미검증. CA 원래 옵션 복원.
{
"systemTypeRecognition": false,
"systemItalicGlyph": false,
"settingsRestored": true
}VA
실행 원문 JSON
관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\style-attributes.cpp",
"text": "#include <vector>\r\nvoid StyleAttributeAudit()\r\n{\r\n int localCounter = 1;\r\n std::vector<int> values;\r\n values.push_back(localCounter);\r\n}\r\n",
"caret": 48,
"selectionStart": 48,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON
관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\style-attributes.cpp",
"text": "#include <vector>\r\nvoid StyleAttributeAudit()\r\n{\r\n int localCounter = 1;\r\n std::vector<int> values;\r\n values.push_back(localCounter);\r\n}\r\n",
"caret": 48,
"selectionStart": 48,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F069 · Convert Dot to -> different
이번 실제 OS 키 입력으로 대표 편집 시나리오 dot-to-arrow를 재실행했습니다. 전체 텍스트·커서·선택 범위를 양쪽 비교했습니다. 기능 전체·모든 경계의 인증은 아닙니다.
{
"actualOsInputBoth": true,
"positiveChangeObserved": true,
"representativeOutputEqual": false
}VA
실행 원문 JSON관찰 상태
{
"input": {
"text": "struct AuditNode { int Value; };\r\nvoid Probe() { AuditNode* pointer = nullptr; pointer }\r\n"
},
"actual": {
"observedEditorState": {
"text": "struct AuditNode { int Value; };\r\nvoid Probe() { AuditNode* pointer = nullptr; pointer }\r\n",
"caret": 86,
"selectionStart": 86,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}CA
실행 원문 JSON관찰 상태
{
"input": {
"text": "struct AuditNode { int Value; };\r\nvoid Probe() { AuditNode* pointer = nullptr; pointer }\r\n"
},
"actual": {
"observedEditorState": {
"text": "struct AuditNode { int Value; };\r\nvoid Probe() { AuditNode* pointer = nullptr; pointer. }\r\n",
"caret": 87,
"selectionStart": 87,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}
}VA-F070 · Highlight Files in Output Window different
검증기의 분류 요청을 전체 버퍼에서 실제 줄 단위로 수정했습니다. 실제 Build Output에서 VA는 프로젝트 파일 경로 1개만 vax_type_build_output_alt로 강조했고, CA는 프로젝트 파일과 외부 경로 2개를 모두 강조했습니다. 원본 양성 대조와 실제 표시 분류를 확보했으며 외부 경로 처리에 차이가 있습니다.
{
"nativePositiveClassifierSpan": true,
"caPositiveClassifierSpans": true,
"solutionAndExternalFilesDistinguishedEqually": false,
"lineGranularRequestVerified": true
}VA
실행 원문 JSON관찰 상태
{
"observation": {
"status": "observed"
},
"scope": "Actual build output, classifier queried once per physical line as required by VA. Not global PrintWindow.",
"fixToHarness": "Earlier whole-buffer classifier query suppressed native output spans."
}CA
실행 원문 JSON관찰 상태
{
"observation": {
"status": "observed"
},
"scope": "Actual build output, classifier queried once per physical line as required by VA. Not global PrintWindow.",
"fixToHarness": "Earlier whole-buffer classifier query suppressed native output spans."
}VA-F071 · Highlight Matching Braces and Parentheses representative-match
실제 전경 편집기에서 OS 방향키로 같은 함수 중괄호에 이동했습니다. VA 고유 vax_type_brace_matching 태그와 CA 고유 Matched Brace 태그가 같은 두 범위(24,40)를 강조했습니다. IDE 진단 태그는 제외했습니다. 색상·중첩·주석·다른 괄호 전체 일치로 확대하지 않습니다.
{
"nativeOwnedBraceTagPositive": true,
"caOwnedBraceTagPositive": true,
"exactBraceSpansEqual": true,
"actualOsKey": true
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"markers": {
"id": "request-0365f5c5fe954ea5",
"role": "VA",
"pid": 25764,
"status": "complete",
"sha256": "766e3fcdf084391481ddeef7bda104954ead050916002b24956a6d66a692d667",
"result": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\physical-matched106.cpp",
"caret": 25,
"markers": [
{
"kind": "error",
"type": "hinted suggestion",
"implementation": "Microsoft.VisualStudio.VC.DiagnosticManager+VCDiagnosticErrorTag",
"start": 5,
"length": 16,
"text": "BracePhysical106",
"tooltip": "VCR003: 함수 'BracePhysical106'을(를) 정적으로 설정할 수 있음"
}
],
"contentType": "C/C++"
},
"error": null,
"at": "2026-10-19T11:50:28.5384764+09:00"
}
},
"scope": "Actual foreground and OS Right key; exact two matched-brace spans. Styling and other delimiter types not certified."
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"markers": {
"id": "request-0649bb89b2da4aa5",
"role": "CA",
"pid": 11776,
"status": "complete",
"sha256": "766e3fcdf084391481ddeef7bda104954ead050916002b24956a6d66a692d667",
"result": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\physical-matched106.cpp",
"caret": 25,
"markers": [
{
"kind": "text-marker",
"type": "CodeAssist Matched Brace",
"implementation": "Microsoft.VisualStudio.Text.Tagging.TextMarkerTag",
"start": 24,
"length": 1,
"text": "{"
},
{
"kind": "text-marker",
"type": "CodeAssist Matched Brace",
"implementation": "Microsoft.VisualStudio.Text.Tagging.TextMarkerTag",
"start": 40,
"length": 1,
"text": "}"
}
],
"contentType": "C/C++"
},
"error": null,
"at": "2026-10-19T11:51:25.5521929+09:00"
}
},
"scope": "Actual foreground and OS Right key; exact two matched-brace spans. Styling and other delimiter types not certified."
}VA-F072 · Highlight Mismatching Braces and Parentheses different
공식 문서처럼 불균형 괄호 쌍 내부에 커서를 두고 실제 방향키를 입력했습니다. VA는 {와 잘못된 ) 두 위치(35,55)에 고유 vax_type_brace_error 태그를 표시했습니다. 같은 커서의 CA는 대응 쌍 강조 없이 닫는 괄호의 별도 구문 진단만 표시했습니다. IDE 진단을 제품 강조로 세지 않았습니다.
{
"actualCaretEqual": true,
"nativeMismatchedPairPositive": true,
"caEquivalentPairHighlight": false,
"ideDiagnosticsExcluded": true
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"wrong-close.markers": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\wrong-close107.cpp"
},
"wrong-close.classes": {
"status": "observed",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\wrong-close107.cpp"
},
"wrong-close.render": {
"id": "request-acad12706d2d4836",
"role": "VA",
"pid": 25764,
"activeFile": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\wrong-close107.cpp",
"rows": [
{
"label": "main",
"status": "captured",
"width": 1200,
"height": 850,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-acad12706d2d4836-main.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 1200,
"logicalHeight": 850
},
{
"label": "editor",
"status": "captured",
"width": 688,
"height": 431,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-acad12706d2d4836-editor.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 688,
"logicalHeight": 431
}
],
"at": "2026-10-19T12:00:55.7218349+09:00"
},
"paren-mismatch.markers": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\paren-mismatch107.cpp"
},
"paren-mismatch.classes": {
"status": "observed",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\paren-mismatch107.cpp"
},
"paren-mismatch.render": {
"id": "request-5aab84557b5845f5",
"role": "VA",
"pid": 25764,
"activeFile": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\paren-mismatch107.cpp",
"rows": [
{
"label": "main",
"status": "captured",
"width": 1200,
"height": 850,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-5aab84557b5845f5-main.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 1200,
"logicalHeight": 850
},
{
"label": "editor",
"status": "captured",
"width": 688,
"height": 431,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-5aab84557b5845f5-editor.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 688,
"logicalHeight": 431
}
],
"at": "2026-10-19T12:01:04.3473635+09:00"
}
},
"scope": "Caret inside mismatched pair per official docs. Product-owned classification/text-marker tags distinguished from IDE diagnostics; no whole-feature certification."
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"wrong-close.markers": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\wrong-close107.cpp"
},
"wrong-close.classes": {
"status": "observed",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\wrong-close107.cpp"
},
"wrong-close.render": {
"id": "request-24c1bab33b164fee",
"role": "CA",
"pid": 11776,
"activeFile": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\wrong-close107.cpp",
"rows": [
{
"label": "main",
"status": "captured",
"width": 1200,
"height": 850,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\CA-request-24c1bab33b164fee-main.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 1200,
"logicalHeight": 850
},
{
"label": "editor",
"status": "captured",
"width": 688,
"height": 403,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\CA-request-24c1bab33b164fee-editor.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 688,
"logicalHeight": 403
}
],
"at": "2026-10-19T12:01:41.2392738+09:00"
},
"paren-mismatch.markers": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\paren-mismatch107.cpp"
},
"paren-mismatch.classes": {
"status": "observed",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\paren-mismatch107.cpp"
},
"paren-mismatch.render": {
"id": "request-912d502f643c4a3c",
"role": "CA",
"pid": 11776,
"activeFile": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\paren-mismatch107.cpp",
"rows": [
{
"label": "main",
"status": "captured",
"width": 1200,
"height": 850,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\CA-request-912d502f643c4a3c-main.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 1200,
"logicalHeight": 850
},
{
"label": "editor",
"status": "captured",
"width": 688,
"height": 403,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\CA-request-912d502f643c4a3c-editor.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 688,
"logicalHeight": 403
}
],
"at": "2026-10-19T12:01:49.2308477+09:00"
}
},
"scope": "Caret inside mismatched pair per official docs. Product-owned classification/text-marker tags distinguished from IDE diagnostics; no whole-feature certification."
}VA-F073 · Repair Case different
실제 포커스·파일이 확인된 전용 WPF 창에 같은 WM_CHAR 입력을 보냈습니다. 형식 이름은 양쪽 모두 보정하지만 일반 변수 mixedvariableaudit103은 VA만 MixedVariableAudit103으로 보정합니다. 실제 컴파일·실행에서 VA는 RepairProbe()==4를 통과하고 CA는 미정의 식별자로 컴파일에 실패합니다. 설정은 원복했습니다. 물리 키 전체 인증은 아닙니다.
{
"sameTypedTextAndFocusedFileBoth": true,
"typeNameRepairedBoth": true,
"variableReferenceRepairedBoth": false,
"nativeRuntimePass": true,
"caRuntimePass": false,
"settingsRestored": true
}VA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": true,
"compileExit": 0,
"source": "VA-repair-variable-case.cpp",
"sourceSha256": "a011cd24c069bae0f5acbf8fb20daffc704fd5f1f4bdc867cee6e18901cdf0cc",
"contract": "original mixed-case variable is referenced and RepairProbe()==4",
"runExit": 0,
"executableSha256": "9d1ba30deaf65873997884d26ed48f042f704119c924580e9ec24636df6feb13"
}
}CA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": false,
"compileExit": 2,
"source": "CA-repair-variable-case.cpp",
"sourceSha256": "9219b6b520038e2266ec6ef42f03cd9d5c93ae49ad834166bd9f07d73f0e3fd7",
"contract": "original mixed-case variable is referenced and RepairProbe()==4"
}
}VA-F074 · Underline Spelling Errors different
같은 주석·문자열 파일에 실제 문자 메시지로 입력한 뒤 2초 대기했습니다. VA는 옵션 OFF에서 0개, ON에서 문자열의 mispellng·wrod에 VA Spelling Error 2개가 생겼습니다. CA는 OFF/ON 모두 오류 태그 0개였습니다. 교정 메뉴·사전 추가까지 검증한 것은 아니며 옵션은 원래 값으로 복원했습니다.
{
"nativePositiveSpellingTags": true,
"caMatchingTags": false,
"optionsRestored": true
}VA
실행 원문 JSON
관찰 상태
{
"off": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\spelling-edited.cpp"
},
"on": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\spelling-edited.cpp"
},
"restoration": [
{
"role": "VA",
"page": "Underlining",
"label": "Underline _spelling errors in comments and strings using ",
"original": true,
"restored": true
},
{
"role": "CA",
"page": "Guides",
"label": "Underline comment and string spelling",
"original": false,
"restored": true
}
],
"scope": "Actual WM_CHAR input on owned private desktop; waited 2 seconds. Underlining only; correction menu/dictionary not certified."
}CA
실행 원문 JSON
관찰 상태
{
"off": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\spelling-edited.cpp"
},
"on": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\spelling-edited.cpp"
},
"restoration": [
{
"role": "VA",
"page": "Underlining",
"label": "Underline _spelling errors in comments and strings using ",
"original": true,
"restored": true
},
{
"role": "CA",
"page": "Guides",
"label": "Underline comment and string spelling",
"original": false,
"restored": true
}
],
"scope": "Actual WM_CHAR input on owned private desktop; waited 2 seconds. Underlining only; correction menu/dictionary not certified."
}VA-F075 · Underline Unknown Symbols different
파일을 열기만 한 계약을 대조했습니다. 디스크와 같은 미수정 상태(saved=true)를 양쪽에서 확인했고, VA 밑줄 옵션을 켜고 IDE 오류 밑줄은 끈 상태였습니다. VA는 문서대로 기존 미인식 심볼을 표시하지 않았으나 CA는 같은 MissingBeforeEdit107에 자체 오류 태그를 즉시 표시했습니다. 이후 편집 시 VA 오타 밑줄의 양성 동작 전체를 검증한 것은 아닙니다. 모든 임시 옵션을 복원했습니다.
{
"sameUnmodifiedInput": true,
"cleanSavedDocumentBoth": true,
"nativeDocumentedSuppressionObserved": true,
"caSuppressionEquivalent": false,
"allTemporaryOptionsRestored": true
}VA
실행 원문 JSON관찰 상태
{
"markers": {
"id": "request-f7631cbcabbd4053",
"role": "VA",
"pid": 25764,
"status": "complete",
"sha256": "79e3543ff2d2fd5dc5ea8159c01c4c6882745790f25312046f68a9ec6ebafb0a",
"result": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\unknown-not-edited107.cpp",
"caret": 56,
"markers": [
{
"kind": "error",
"type": "hinted suggestion",
"implementation": "Microsoft.VisualStudio.VC.DiagnosticManager+VCDiagnosticErrorTag",
"start": 29,
"length": 14,
"text": "OpenUnknown107",
"tooltip": "VCR003: 함수 'OpenUnknown107'을(를) 정적으로 설정할 수 있음"
}
],
"contentType": "C/C++"
},
"error": null,
"at": "2026-10-19T12:03:29.5481949+09:00"
}
}CA
실행 원문 JSON관찰 상태
{
"markers": {
"id": "request-8b9d9177585d4a36",
"role": "CA",
"pid": 11776,
"status": "complete",
"sha256": "79e3543ff2d2fd5dc5ea8159c01c4c6882745790f25312046f68a9ec6ebafb0a",
"result": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\unknown-not-edited107.cpp",
"caret": 56,
"markers": [
{
"kind": "error",
"type": "hinted suggestion",
"implementation": "Microsoft.VisualStudio.VC.DiagnosticManager+VCDiagnosticErrorTag",
"start": 29,
"length": 14,
"text": "OpenUnknown107",
"tooltip": "VCR003: 함수 'OpenUnknown107'을(를) 정적으로 설정할 수 있음"
},
{
"kind": "error",
"type": "syntax error",
"implementation": "Microsoft.VisualStudio.Text.Tagging.ErrorTag",
"start": 53,
"length": 20,
"text": "MissingBeforeEdit107",
"tooltip": "정의되지 않은 식별자 'MissingBeforeEdit107'입니다. (CodeAssist)"
}
],
"contentType": "C/C++"
},
"error": null,
"at": "2026-10-19T12:03:37.0415815+09:00"
}
}VA-F076 · Code Inspection Settings different
VA의 readability-uniqueptr-delete-release 검사 수준을 3에서 5로 바꾸고 저장·재열기에서 5를 확인한 뒤 3으로 복원했습니다. CA Checker Sets 페이지에는 대응 검사기·수준 컨트롤이 없고 추가 검사기 미구현 안내를 표시합니다. 실제 검사 수준 설정 동작이 다르며 진단 엔진 전체 실행 검증으로 확대하지 않았습니다.
{
"nativeLevelSaveReopenObserved": true,
"nativeSettingRestored": true,
"caCheckerLevelControlPresent": false
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"VA.inspection-level.original.json": {
"status": "observed"
},
"VA.inspection-level.changed.json": {
"status": "observed"
},
"VA.inspection-level.saved-readback.json": {
"status": "observed"
},
"VA.inspection-level.restored.json": {
"status": "observed"
}
},
"transaction": {
"nativeLevel5ReadBack": true,
"nativeOriginalLevel3Restored": true
},
"scope": "actual checker severity save/reopen/restore; not diagnostic engine performance"
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"CA.inspection-level.rows.json": {
"status": "observed"
},
"CA.inspection-level.controls.json": {
"status": "observed",
"title": "CodeAssist Options",
"visibleHeadings": [
""
],
"clicked": false,
"stillVisible": true,
"visibleControlCount": 48
}
},
"transaction": {
"nativeLevel5ReadBack": true,
"nativeOriginalLevel3Restored": true
},
"scope": "actual checker severity save/reopen/restore; not diagnostic engine performance"
}VA-F077 · Code Issues in the Editor different
동일 C++ 코드에서 원본 파일별 검사 엔진은 modernize-use-nullptr 2건과 redundant-void-arg 1건을 실제 생성했습니다. CA는 준비된 인덱스·컴파일 설정에서도 편집기 진단 태그가 0개였습니다. CA 컴파일러 빠른 수정 목록에는 진단이 나오므로 백엔드 기능 부재로 확대하지 않았습니다. 원본 엔진은 전용 프로세스 메모리에서만 활성화하고 복원했습니다.
{
"nativeThreeActualIssues": true,
"caIndexReady": true,
"caBackendActionsAvailable": true,
"editorDiagnosticParity": false,
"nativeSettingRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"VA.inspection-nullptr.final-issues.json": {
"status": "observed",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\inspection-nullptr.cpp"
},
"VA.inspection-nullptr.enabled-render.json": {
"id": "request-830bd61fe5364f6c",
"role": "VA",
"pid": 24196,
"activeFile": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\inspection-nullptr.cpp",
"rows": [
{
"label": "main",
"status": "captured",
"width": 1044,
"height": 788,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-830bd61fe5364f6c-main.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 1044,
"logicalHeight": 788
},
{
"label": "editor",
"status": "captured",
"width": 532,
"height": 360,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-830bd61fe5364f6c-editor.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 532,
"logicalHeight": 360
},
{
"label": "dialog-2",
"status": "captured",
"width": 450,
"height": 450,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-830bd61fe5364f6c-dialog-2.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 450,
"logicalHeight": 450
},
{
"label": "dialog-3",
"status": "captured",
"width": 450,
"height": 450,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-830bd61fe5364f6c-dialog-3.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 450,
"logicalHeight": 450
},
{
"label": "dialog-4",
"status": "captured",
"width": 450,
"height": 450,
"path": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\background-capture\\VA-request-830bd61fe5364f6c-dialog-4.png",
"method": "WPF RenderTargetBitmap",
"logicalWidth": 450,
"logicalHeight": 450
}
],
"at": "2026-10-19T06:30:29.7465027+09:00"
},
"VA.inspection-nullptr.final-settings-restored.json": {
"status": "observed",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\inspection-nullptr.cpp"
}
},
"scope": "actual installed old per-file engine, enabled only in private process memory and restored"
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"CA.inspection-compiled.editor-markers.json": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\quickfix-compiled\\QuickFix103.cpp"
},
"CA.inspection-compiled.ready-index-state.json": {
"status": "observed"
},
"CA.inspection-compiled.editor-actions.json": {
"status": "observed"
}
},
"scope": "actual editor tag query with index ready; compiler backend quickfix actions separately available"
}VA-F078 · Quick Fixes in the Editor representative-match
원본의 실제 빠른 수정 액션과 CA의 실제 컴파일러 빠른 수정 명령으로 첫 return 0을 nullptr로 바꿨습니다. 결과 코드가 같고 양쪽 모두 컴파일·실행 및 한 번의 Undo 원문 복원을 통과했습니다. 원본 액션 API·CA 미리보기 명령 경로의 대표 코드 결과 비교이며, 인라인 메뉴 배치나 실제 키 입력 일치로 확대하지 않았습니다.
{
"sameNullptrReplacement": true,
"compiledAndRanBoth": true,
"oneUndoRestoredBoth": true,
"apiCommandRouteScopeDisclosed": true
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"VA.inspection-nullptr.applied.json": {},
"VA.inspection-quickfix.undo.json": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\inspection-nullptr.cpp",
"text": "int* ReadAudit103() { return 0; }\r\nint main(void) { return ReadAudit103() != 0; }\r\n"
},
"compiler-check/VA-inspection-nullptr-quickfix-result.json": {
"passed": true,
"compileExit": 0,
"source": "VA-inspection-nullptr-quickfix.cpp",
"sourceSha256": "e26e08b4eb226e7f936a2fa910bf439c952f897a0b1ea64e8a355c97766da2fa",
"contract": "ReadAudit103 returns nullptr; main returns0",
"runExit": 0,
"executableSha256": "30f719040aec98665bbe5afbd622f60a936eb979fd7ee33f839f92809ac6e0e4"
}
},
"scope": "one actual nullptr replacement, compile/run and one Undo; native action API versus CA command, no physical key/UI-equivalence certification"
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"CA.inspection-compiled.editor-actions.json": {
"status": "observed"
},
"CA.inspection-quickfix.undo.json": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\quickfix-compiled\\QuickFix103.cpp",
"text": "int* ReadAudit103() { return 0; }\r\nint main(void) { return ReadAudit103() != 0; }\r\n"
},
"compiler-check/CA-inspection-nullptr-quickfix-result.json": {
"passed": true,
"compileExit": 0,
"source": "CA-inspection-nullptr-quickfix.cpp",
"sourceSha256": "e26e08b4eb226e7f936a2fa910bf439c952f897a0b1ea64e8a355c97766da2fa",
"contract": "ReadAudit103 returns nullptr; main returns0",
"runExit": 0,
"executableSha256": "3360e27d82e9b96acc20417a7fe6171d968718e20707f4b1d462a307ad29a4cb"
}
},
"scope": "one actual nullptr replacement, compile/run and one Undo; native action API versus CA command, no physical key/UI-equivalence certification"
}VA-F079 · Quick Fixes in a Tool Window different
양쪽 실제 빠른 수정 도구 창에서 nullptr 항목을 선택·적용하고 컴파일·실행·Undo까지 통과했습니다. 원본은 줄·파일·코드 이슈 표와 적용 명령을 제공하고 CA는 도구 탭의 액션 제목 목록과 별도 변경 미리보기를 제공합니다. 코드 결과는 같지만 도구 창 구성과 적용 흐름이 다릅니다. 검사 플래그가 달라 행 개수는 동기화 판정에 사용하지 않았습니다.
{
"actualToolWindowApplicationBoth": true,
"compiledAndRanBoth": true,
"oneUndoRestoredBoth": true,
"toolWindowLayoutEquivalent": false
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"VA.inspection-tool.window.json": {
"visibleControlCount": 1
},
"VA.inspection-tool.applied.json": {},
"VA.inspection-tool.undo.json": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\inspection-nullptr.cpp",
"text": "int* ReadAudit103() { return 0; }\r\nint main(void) { return ReadAudit103() != 0; }\r\n"
},
"compiler-check/VA-inspection-tool-quickfix-result.json": {
"passed": true,
"compileExit": 0,
"source": "VA-inspection-tool-quickfix.cpp",
"sourceSha256": "e26e08b4eb226e7f936a2fa910bf439c952f897a0b1ea64e8a355c97766da2fa",
"contract": "ReadAudit103 returns nullptr; main returns0",
"runExit": 0,
"executableSha256": "c317d183cea9d4e36dfa26ef1552a3830c096e1b6dc8a4e892511ed137a82b00"
}
},
"scope": "actual tool window list selection/Apply, same result, compile/run and Undo; configured compiler flags differ and row-count is not used as checker parity"
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"CA.inspection-tool.actions.json": {
"status": "observed"
},
"CA.inspection-tool.applied.json": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\quickfix-compiled\\QuickFix103.cpp",
"text": "int* ReadAudit103() { return nullptr; }\r\nint main(void) { return ReadAudit103() != 0; }\r\n"
},
"CA.inspection-tool.undo.json": {
"status": "complete",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\quickfix-compiled\\QuickFix103.cpp",
"text": "int* ReadAudit103() { return 0; }\r\nint main(void) { return ReadAudit103() != 0; }\r\n"
},
"compiler-check/CA-inspection-tool-quickfix-result.json": {
"passed": true,
"compileExit": 0,
"source": "CA-inspection-tool-quickfix.cpp",
"sourceSha256": "e26e08b4eb226e7f936a2fa910bf439c952f897a0b1ea64e8a355c97766da2fa",
"contract": "ReadAudit103 returns nullptr; main returns0",
"runExit": 0,
"executableSha256": "b9d8b6d47d1667351f73034d397565b28843d3d04cfdde3ea121bd7a263e027e"
}
},
"scope": "actual tool window list selection/Apply, same result, compile/run and Undo; configured compiler flags differ and row-count is not used as checker parity"
}VA-F080 · VA Snippets different
VA 고유 VaSnippetInsert 메뉴와 CA 스니펫 선택창에서 동일 본문을 실제 삽입. 양쪽 삽입 성공, 줄별 들여쓰기·추가 빈 줄과 선택 UI가 다름.
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\snippet-menu.cpp",
"text": "void SnippetMenuProbe() {\r\n /*!\r\n * \\file snippet-menu.cpp\r\n *\r\n * \\author MDJ\r\n * \\date 10�� 2026\r\n *\r\n * \r\n */\r\n}\r\n",
"caret": 134,
"selectionStart": 134,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\snippet-menu.cpp",
"text": "void SnippetMenuProbe() {\r\n /*!\r\n * \\file snippet-menu.cpp\r\n *\r\n * \\author MDJ\r\n * \\date 10월 2026\r\n *\r\n * \r\n */\r\n\r\n}\r\n",
"caret": 109,
"selectionStart": 109,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F081 · for Refactoring different
실제 Refactor Create From Usage Method Body 스니펫에 고유 주석을 임시 추가하자 VA 생성 메서드에 해당 주석이 반영됐습니다. CA 동일 제목·본문 라이브러리는 대응 생성 명령에서 반영되지 않았습니다. 원본 cpp.tpl과 CA 라이브러리 모두 원래 바이트로 복원했습니다. 필수 제목 사용자화 대표 사례이며 삭제 재생성·모든 reserved 문맥은 별도입니다.
{
"nativeCustomizedTemplateConsumed": true,
"caCustomizedTemplateConsumed": false,
"nativeBytesRestored": true,
"caBytesRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observation": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\refactor-custom-template.cpp",
"text": "class TemplateAudit103\r\n{\r\npublic:\r\n void Run() { MakeTemplate103(7); }\r\nprivate:\r\n\r\n\tvoid MakeTemplate103(int param1)\r\n\t{\r\n\t\t// PARITY_103_CUSTOM_METHOD_BODY\r\n\t\tthrow std::logic_error(\"The method or operation is not implemented.\");\r\n\t}\r\n\r\n\r\n};\r\n",
"caret": 56,
"selectionStart": 56,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"transaction": {
"nativeOriginalSha256": "b913814d3e75894f49f10ab51f92bb0c25426421b2a192117b168e341c6843a5",
"nativePatchedSha256": "b507b3ad48cdbfca30d541938bda8f3516227cdc246c1a0f821426b808adbf29",
"scope": "single default method body template marker; restore bytes only if unchanged externally",
"nativeRestored": true,
"caRestored": true
}
}CA
실행 원문 JSON관찰 상태
{
"observation": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\refactor-custom-template.cpp",
"text": "class TemplateAudit103\r\n{\r\npublic:\r\n void Run() { MakeTemplate103(7); }\r\n};\r\n",
"caret": 56,
"selectionStart": 56,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"transaction": {
"nativeOriginalSha256": "b913814d3e75894f49f10ab51f92bb0c25426421b2a192117b168e341c6843a5",
"nativePatchedSha256": "b507b3ad48cdbfca30d541938bda8f3516227cdc246c1a0f821426b808adbf29",
"scope": "single default method body template marker; restore bytes only if unchanged externally",
"nativeRestored": true,
"caRestored": true
}
}VA-F082 · for Smart Suggestions different
정확한 SuggestionsForType SmartTemplate103 제목으로 두 생성자 값을 등록했습니다. VA 실제 목록에 두 값이 표시됐고 103 값을 수락한 생성 코드는 컴파일·실행 결과 103이었습니다. CA의 동일 지정 템플릿은 실제 완료 후보에서 값 목록으로 확장되지 않았습니다. 원본·CA 라이브러리 모두 원복했습니다.
{
"nativeDesignatedValuesSuggested": true,
"nativeAcceptedRuntime103": true,
"caDesignatedValuesSuggested": false,
"librariesRestored": true
}VA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": true,
"compileExit": 0,
"source": "VA-smart-type-template.cpp",
"sourceSha256": "0b1ab40b81cc71051f978c396b1de57ee273dc81fb369b8672ef285b85507ca3",
"contract": "custom designated type suggestion runtime103",
"runExit": 0,
"executableSha256": "5729bfca4d92dfc3a7fc3a29cad1b04ca18c47aecf31c0f17bb03a3b41abcfb2"
}
}CA
실행 원문 JSON관찰 상태
{
"observation": {
"status": "observed"
},
"templateTitle": "SuggestionsForType SmartTemplate103",
"transaction": {
"nativeOriginalSha256": "b913814d3e75894f49f10ab51f92bb0c25426421b2a192117b168e341c6843a5",
"nativePatchedSha256": "c2e7adebbb4749d2f46ea141e28d48f3fae032f5d92b04fea39a221bd239b8f1",
"nativeRestored": true,
"caRestored": true
}
}VA-F083 · for Surround With different
설치된 VA #if 0 스니펫 본문을 양쪽에 동일하게 사용해 선택한 value += 2 문장을 실제 감쌌습니다. 양쪽 컴파일·실행 결과가 5로 같아 선택 코드가 비활성화된 것을 확인했습니다. CA는 추가 빈 줄을 남겨 출력 형식이 다릅니다. surround 문자·모든 템플릿의 전체 검증은 아닙니다.
{
"selectedCodePreservedBoth": true,
"conditionalBlockCreatedBoth": true,
"outputTextIdentical": false
}VA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": true,
"compileExit": 0,
"source": "VA-snippet-surround.cpp",
"sourceSha256": "40f1718f581156798b2ce4e9079a89e53ce3c6515f3a6e6d7da6212d5e3a296e",
"contract": "selection disabled by #if 0, runtime result5",
"runExit": 0,
"executableSha256": "b0758a63d7267441ad90b2eecbe28d47e475ad7b703684af4bb4d8b708d8a3cc"
}
}CA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": true,
"compileExit": 0,
"source": "CA-snippet-surround.cpp",
"sourceSha256": "1a57b7da23ada479b49abc6d205a20ae5ae750c9743ab29aa511c25be01b9854",
"contract": "selection disabled by #if 0, runtime result5",
"runExit": 0,
"executableSha256": "b6811b000fe94d83f638ef555d3f7385bee0da12cf51091a81414b98d17564f6"
}
}VA-F084 · with Shortcuts different
원본 고유 #ifn 축약어를 실제 입력하면 VA는 #ifndef ... #endif 스니펫을 제안하며 촬영한 해당 행을 선택하자 블록이 실제 삽입됐습니다. 같은 본문·축약어를 CA 테스트 라이브러리에 넣어도 CA 완료 세션이 생성되지 않았습니다. 선택 방식은 소유 팝업 메시지이며 물리 Tab 검증으로 확대하지 않습니다. 라이브러리는 복원했습니다.
{
"nativeAbbreviationExpanded": true,
"caAbbreviationSessionCreated": false,
"libraryRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observation": {},
"template": "#ifndef $end$\n$selected$\n#endif\n",
"libraryRestore": {
"restored": true
},
"scope": "abbreviation-triggered suggestion and selecting actual native snippet; not physical Tab certification"
}CA
실행 원문 JSON관찰 상태
{
"observation": {
"status": "no-session"
},
"template": "#ifndef $end$\n$selected$\n#endif\n",
"libraryRestore": {
"restored": true
},
"scope": "abbreviation-triggered suggestion and selecting actual native snippet; not physical Tab certification"
}VA-F085 · Create from Selection different
선택한 int example = 103 코드를 양쪽에서 제목·축약어와 함께 실제 저장하고, 다시 목록에서 삽입해 동일 본문·커서와 실행 결과 103을 확인했습니다. VA는 설명·본문 편집을 제공하는 Snippet Editor를 사용하지만 CA는 제목·축약어 두 프롬프트로 직접 저장하므로 생성 UI와 편집 기능이 다릅니다. 라이브러리는 모두 원복했습니다.
{
"actualCreationAndReinsertionBoth": true,
"runtime103Both": true,
"textIdentical": true,
"caretIdentical": true,
"creationEditorEquivalent": false,
"librariesRestored": true
}VA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": true,
"compileExit": 0,
"source": "VA-created-snippet-roundtrip.cpp",
"sourceSha256": "82a7a4e8f7341ecf551cc54e6d4f516a7856a45bd5d8ae94cc50326da5fc9c9d",
"contract": "selected code saved as named snippet, reinserted and runtime103",
"runExit": 0,
"executableSha256": "e799a2e7f68aabeca49550e829ebd4fa63192bd11518c37a71efe971d7d1a530"
}
}CA
실행 원문 JSON관찰 상태
{
"compiler": {
"passed": true,
"compileExit": 0,
"source": "CA-created-snippet-roundtrip.cpp",
"sourceSha256": "82a7a4e8f7341ecf551cc54e6d4f516a7856a45bd5d8ae94cc50326da5fc9c9d",
"contract": "selected code saved as named snippet, reinserted and runtime103",
"runExit": 0,
"executableSha256": "124d09bdac85bf8d294a7c42fa174eb10df4fc9ca58038464d8eb8c3b477cc06"
}
}VA-F086 · Environment Placeholders representative-match
동일 본문의 %USERNAME%가 양쪽 실제 편집기에서 MDJ로 치환됨. 사용자 환경변수 1개 대표 검증이며 전체 환경변수 인증은 아님.
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\snippet-menu.cpp",
"text": "void SnippetMenuProbe() {\r\n /*!\r\n * \\file snippet-menu.cpp\r\n *\r\n * \\author MDJ\r\n * \\date 10�� 2026\r\n *\r\n * \r\n */\r\n}\r\n",
"caret": 134,
"selectionStart": 134,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\snippet-menu.cpp",
"text": "void SnippetMenuProbe() {\r\n /*!\r\n * \\file snippet-menu.cpp\r\n *\r\n * \\author MDJ\r\n * \\date 10월 2026\r\n *\r\n * \r\n */\r\n\r\n}\r\n",
"caret": 109,
"selectionStart": 109,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F087 · Input Placeholders different
동일 Doxygen 본문의 YEAR에 VA는 실제 사용자 입력 대화상자를 표시하고 지정한 2037을 삽입했습니다. CA는 입력 없이 현재 연도 2026으로 치환했습니다. YEAR 토큰의 실제 입력 처리 차이를 검증한 대표 사례이며 모든 입력 이름·8필드 한도는 별도입니다. CA 스니펫 라이브러리는 복원했습니다.
{
"nativeRequestedInputInserted": true,
"caRequestedInputInserted": false,
"libraryRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observed": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\snippet-menu.cpp",
"text": "void SnippetMenuProbe() {\r\n /*!\r\n * \\file snippet-menu.cpp\r\n *\r\n * \\author MDJ\r\n * \\date 10�� 2037\r\n *\r\n * \r\n */\r\n}\r\n",
"caret": 134,
"selectionStart": 134,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"requestedYear": "2037",
"template": "/*!\n * \\file $FILE_BASE$.$FILE_EXT$\n *\n * \\author %USERNAME%\n * \\date $MONTHLONGNAME$ $YEAR$\n *\n * $end$\n */\n",
"libraryRestored": {
"existed": false,
"restored": true
}
}CA
실행 원문 JSON관찰 상태
{
"observed": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\snippet-menu.cpp",
"text": "void SnippetMenuProbe() {\r\n /*!\r\n * \\file snippet-menu.cpp\r\n *\r\n * \\author MDJ\r\n * \\date 10월 2026\r\n *\r\n * \r\n */\r\n\r\n}\r\n",
"caret": 109,
"selectionStart": 109,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"requestedYear": "2037",
"template": "/*!\n * \\file $FILE_BASE$.$FILE_EXT$\n *\n * \\author %USERNAME%\n * \\date $MONTHLONGNAME$ $YEAR$\n *\n * $end$\n */\n",
"libraryRestored": {
"existed": false,
"restored": true
}
}VA-F088 · Reserved Strings different
동일 본문 FILE_BASE/FILE_EXT는 양쪽 snippet-menu.cpp로 치환. MONTHLONGNAME은 VA 실행 결과에 U+FFFD가 있고 CA는 10월. YEAR는 VA에서 입력창으로 지정, CA는 예약값으로 자동 치환. 원인은 미확인.
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\snippet-menu.cpp",
"text": "void SnippetMenuProbe() {\r\n /*!\r\n * \\file snippet-menu.cpp\r\n *\r\n * \\author MDJ\r\n * \\date 10�� 2026\r\n *\r\n * \r\n */\r\n}\r\n",
"caret": 134,
"selectionStart": 134,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\snippet-menu.cpp",
"text": "void SnippetMenuProbe() {\r\n /*!\r\n * \\file snippet-menu.cpp\r\n *\r\n * \\author MDJ\r\n * \\date 10월 2026\r\n *\r\n * \r\n */\r\n\r\n}\r\n",
"caret": 109,
"selectionStart": 109,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}VA-F089 · Address Resolver different
자체 EXE/PDB의 RVA 0x1000을 양쪽 모두 PdbTarget103으로 해석했습니다. VA는 PdbAudit103+0x1000 형식도 해석하지만 CA는 같은 모듈 상대주소 문자열에 Invalid RVA를 표시합니다. 단일 함수 해석 성공과 입력 형식 범위 차이를 분리했습니다.
{
"targetAtSameRvaBoth": true,
"moduleRelativeFormatSupportedBoth": false
}VA
실행 원문 JSON관찰 상태
{
"fixture": {
"source": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\debug-artifacts\\PdbAudit103.cpp",
"pdb": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\debug-artifacts\\PdbAudit103.pdb",
"exe": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\debug-artifacts\\PdbAudit103.exe",
"pdbSha256": "11ac0b4a45527cb223da8b59f83a11401ffd8d31d90d99703a331b704309bde1"
},
"resolve": {}
}CA
실행 원문 JSON관찰 상태
{
"rvaOutput": [
{
"name": "",
"type": "ControlType.Edit",
"id": "",
"toggle": null,
"value": "PdbTarget103\nC:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\debug-artifacts\\PdbAudit103.cpp:1:0\n\n",
"selection": null,
"bounds": {
"x": 109,
"y": 146,
"width": 432,
"height": 395
}
},
{
"name": "",
"type": "ControlType.Edit",
"id": "",
"toggle": null,
"value": "PdbTarget103\nC:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\debug-artifacts\\PdbAudit103.cpp:1:0\n\n",
"selection": null,
"bounds": {
"x": 109,
"y": 146,
"width": 432,
"height": 395
}
}
],
"moduleRelativeError": [
{
"name": "Invalid RVA",
"type": "ControlType.Text",
"id": "65535",
"toggle": null,
"value": null,
"selection": null,
"bounds": {
"x": 507,
"y": 374,
"width": 60,
"height": 15
}
},
{
"name": "Invalid RVA",
"type": "ControlType.Text",
"id": "65535",
"toggle": null,
"value": null,
"selection": null,
"bounds": {
"x": 507,
"y": 374,
"width": 60,
"height": 15
}
}
]
}VA-F090 · PDB Explorer different
동일 SHA256의 자체 MSVC PDB에서 PdbTarget103을 양쪽 모두 읽었습니다. VA는 주소·이름·길이·형식·컴파일 단위의 구조화된 표와 실제 이름 필터를 제공하지만 CA는 LLVM 덤프를 읽기 전용 텍스트로 표시합니다.
{
"samePdbBoth": true,
"targetSymbolFoundBoth": true,
"structuredExplorerAndFilteringEqual": false
}VA
실행 원문 JSON관찰 상태
{
"targetOutput": [
"PdbTarget103",
"PdbTarget103",
"PdbTarget103",
"PdbTarget103"
],
"presentation": "structured symbol rows and name filter",
"headers": [
"Address",
"Name",
"Length",
"Type",
"Unit",
"Address",
"Name",
"Length",
"Type",
"Unit"
],
"targetFilters": [
{
"id": "explore_filter",
"value": "PdbTarget103"
},
{
"id": "explore_filter",
"value": "PdbTarget103"
}
]
}CA
실행 원문 JSON관찰 상태
{
"targetOutput": [
"6024 | S_UDT [size = 16] `BLOB`\n original type = 0x177F\n 1720 | S_PROCREF [size = 28] `PdbTarget103`\n module = 1, sum name = 0, offset = 224\n 7036 | S_PROCREF [size = 56] `__scrt_is_nonwritable_in_current_image`\n module = 3, sum name = 0, offse",
"6024 | S_UDT [size = 16] `BLOB`\n original type = 0x177F\n 1720 | S_PROCREF [size = 28] `PdbTarget103`\n module = 1, sum name = 0, offset = 224\n 7036 | S_PROCREF [size = 56] `__scrt_is_nonwritable_in_current_image`\n module = 3, sum name = 0, offse"
],
"presentation": "read-only LLVM dump text",
"headers": [],
"targetFilters": []
}VA-F091 · VA Memory View different
별도 데스크톱의 자체 실행 파일 두 개에만 실제 디버거를 연결해 main에서 중단하고 같은 전역 배열을 읽었습니다. VA는 7f70605040302010 값이 보이는 주소·내용·모듈·심볼 표를, CA는 64개 배열 원소의 문자 표현 텍스트를 표시했습니다. 첫 8바이트와 CA 64원소 읽기를 확인했으며 사용자 프로그램은 연결하지 않았습니다.
{
"actualOwnedDebugSessionsBoth": true,
"knownMemoryBytesObservedBoth": true,
"ca64ElementsObserved": true,
"memoryPresentationEquivalent": false
}VA
실행 원문 JSON관찰 상태
{
"actual": {},
"debuggerState": {
"status": "observed"
},
"ownedTargets": {
"VA": {
"pid": 2776,
"broker": 27224,
"desktop": "CodeAssistVerify-runtime"
},
"CA": {
"pid": 36872,
"broker": 32052,
"desktop": "CodeAssistVerify-runtime"
}
},
"expectedFirstBytes": [
16,
32,
48,
64,
80,
96,
112,
127
],
"scope": "actual owned native debugger memory view, read-only known global array"
}CA
실행 원문 JSON관찰 상태
{
"actual": {},
"debuggerState": {
"status": "observed"
},
"ownedTargets": {
"VA": {
"pid": 2776,
"broker": 27224,
"desktop": "CodeAssistVerify-runtime"
},
"CA": {
"pid": 36872,
"broker": 32052,
"desktop": "CodeAssistVerify-runtime"
}
},
"expectedFirstBytes": [
16,
32,
48,
64,
80,
96,
112,
127
],
"scope": "actual owned native debugger memory view, read-only known global array"
}VA-F092 · VA Step Filter different
자체 실행 파일에서 필터 OFF 시 양쪽 모두 StepSkip103 내부에 멈췄고, ON 시 양쪽 모두 함수를 건너뛰고 main에 멈췄습니다. VA는 실제 디버그 이벤트 행 체크박스로 활성화했고 CA는 전용 프로세스의 실제 설정 객체로 활성화했습니다. 핵심 스텝 동작은 이 사례에서 같지만 VA의 이벤트·필터 표와 CA의 패턴 옵션 UI는 다릅니다. 실제 키 입력 및 CA 옵션 저장 경로는 이번 통과 범위에 포함하지 않았습니다.
{
"actualDebuggerBaselineEntersBoth": true,
"actualFilteredStepSkipsBoth": true,
"knownOwnProcessesOnly": true,
"settingsRestored": true,
"filterUiEquivalent": false
}VA
실행 원문 JSON관찰 상태
{
"baseline": {
"status": "observed"
},
"filtered": {
"status": "observed"
},
"enabled": {
"visibleControlCount": 3
},
"settingsRestored": {
"nativeFiles": {
"config.vadbg": "97fc480a6383c4c66f78abe049cc7b992f86925e344a29b3d75bc23360f69cd3",
"global.vadbg": "3746e712ca6ba4203c8a38625c64a00bccafdae6ccfed83a634bad061fcd9f0c",
"sts.vadbg": "114ba02fc0d9fdc316d3f908ec311f665994b9c1f112cccdbc1d4930252ba19f",
"symExpConfig.vadbg": "32ed99d1fd271fc1a6a2ce6c96e1d530b5bc144157f71319b388d9b28b1790f8"
},
"caSettingsRestored": true,
"nativeFileBytesRestored": true,
"caRuntimeVerified": {},
"caDiskStepFieldsRestored": true
},
"scope": "actual owned native debugger stepping; CA enabled by private process preference fields, not physical key input"
}CA
실행 원문 JSON관찰 상태
{
"baseline": {
"status": "observed"
},
"filtered": {
"status": "observed"
},
"enabled": {},
"settingsRestored": {
"nativeFiles": {
"config.vadbg": "97fc480a6383c4c66f78abe049cc7b992f86925e344a29b3d75bc23360f69cd3",
"global.vadbg": "3746e712ca6ba4203c8a38625c64a00bccafdae6ccfed83a634bad061fcd9f0c",
"sts.vadbg": "114ba02fc0d9fdc316d3f908ec311f665994b9c1f112cccdbc1d4930252ba19f",
"symExpConfig.vadbg": "32ed99d1fd271fc1a6a2ce6c96e1d530b5bc144157f71319b388d9b28b1790f8"
},
"caSettingsRestored": true,
"nativeFileBytesRestored": true,
"caRuntimeVerified": {},
"caDiskStepFieldsRestored": true
},
"scope": "actual owned native debugger stepping; CA enabled by private process preference fields, not physical key input"
}VA-F093 · VA Outline different
동일 클래스·두 메서드 구조 표시 후 두 번째 메서드로 양쪽 실제 이동. VA는 4행 시작(offset64), CA는 4행 10열(이름 위치)로 이동. 초기 CA 검사기 실패는 모든 WPF 루트 탐색으로 해소.
VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\outline.cpp",
"text": "class OutlineAudit {\r\npublic:\r\n void FirstOutlineProbe() {}\r\n void SecondOutlineProbe() {}\r\n};\r\n",
"caret": 64,
"selectionStart": 64,
"selectionLength": 0,
"selectedText": ""
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"status": "observed",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\outline.cpp",
"line": 4,
"column": 10,
"selectedText": ""
}VA-F094 · VA View different
VA View의 실제 Files in Solution 입력에서 파일명을 검색하고 Enter를 보내면 소유 헤더가 열립니다. CA 작업공간에는 같은 파일 노드가 실제 존재하지만 파일 노드 더블클릭은 파일을 열지 않고 호출자 문서를 유지했습니다. 인덱스 준비 완료를 확인한 후 실행했으며 VA View 전체 동작 인증은 아닙니다.
{
"nativeTargetFileOpened": true,
"caTargetFileOpened": false,
"targetFilePresentInCaTree": true
}VA
실행 원문 JSON관찰 상태
{
"actual": {
"requested": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\ViewFileTarget103.h",
"edit": 920724,
"value": "",
"active": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\ViewFileTarget103.h",
"text": "#pragma once\r\nclass ViewFileTarget103 {};\r\n"
},
"physicalInput": false
},
"scope": "file-name search and open from VA View"
}CA
실행 원문 JSON관찰 상태
{
"actual": {
"status": "observed",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\view-file-caller.cpp",
"line": 1,
"column": 1,
"selectedText": ""
},
"indexPrepared": {
"status": "prepared"
},
"scope": "double-click the actual same file parent node in Workspace; child symbol navigation is separate"
}VA-F095 · Simple Link Patterns different
단순 숫자 링크 규칙의 실제 호스트 실행: VA는 대소문자 무시와 구분자 공백을 허용해 4개 링크를 만들고 CA는 같은 입력에서 2개만 만듭니다. 공통 AUDIT-103/84의 URL 치환은 같습니다. 외부 브라우저/마우스 hover는 이 판정 범위가 아니며 사용자 설정은 저장하지 않고 원본 런타임 캐시는 복원했습니다.
{
"actualMatchingBothExecuted": true,
"commonPositiveUrlEqual": true,
"allMatchesEqual": false,
"nativeCacheRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observation": {
"status": "observed"
},
"input": "AUDIT-103 AUDIT-xyz audit-7 AUDIT 42 AUDIT-84.",
"scope": "actual host pattern compilation/matching and URL variable expansion; no browser or hover execution",
"nativeRuntimeCacheRestored": true
}CA
실행 원문 JSON관찰 상태
{
"observation": {
"status": "observed"
},
"input": "AUDIT-103 AUDIT-xyz audit-7 AUDIT 42 AUDIT-84.",
"scope": "actual host pattern compilation/matching and URL variable expansion; no browser or hover execution",
"nativeRuntimeCacheRestored": true
}VA-F096 · Complex Link Patterns different
같은 명명 그룹 정규식을 실제 호스트에서 실행: VA는 IgnoreCase/Singleline으로 3개 링크를 만들고 CA는 대소문자를 구분해 2개만 만듭니다. 공통 링크의 URL 치환은 같습니다. 외부 브라우저/마우스 hover는 이 판정 범위가 아니며 사용자 설정은 저장하지 않고 원본 런타임 캐시는 복원했습니다.
{
"actualMatchingBothExecuted": true,
"commonPositiveUrlEqual": true,
"allMatchesEqual": false,
"nativeCacheRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observation": {
"status": "observed"
},
"input": "AUDIT-103 AUDIT-xyz audit-7 AUDIT 42 AUDIT-84.",
"scope": "actual host pattern compilation/matching and URL variable expansion; no browser or hover execution",
"nativeRuntimeCacheRestored": true
}CA
실행 원문 JSON관찰 상태
{
"observation": {
"status": "observed"
},
"input": "AUDIT-103 AUDIT-xyz audit-7 AUDIT 42 AUDIT-84.",
"scope": "actual host pattern compilation/matching and URL variable expansion; no browser or hover execution",
"nativeRuntimeCacheRestored": true
}VA-F097 · Connect to FogBugz and GitHub different
실제 VA GitHub·FogBugz 플러그인을 자체 localhost API에 연결해 두 요청을 수신했고 제목·상태·담당자·댓글 툴팁을 실제 생성·렌더링했습니다. CA는 같은 두 URL을 만들었지만 실제 Quick Info 호출에서 이슈 정보가 나오지 않았고 추가 API 요청도 없었습니다. CA 규칙은 메모리에서만 교체 후 복원했습니다. 실제 SaaS 인증·계정·브라우저 실행은 이 검사 범위가 아닙니다.
{
"actualNativeGithubAndFogbugzHttp": true,
"nativeIssueMetadataRenderedBoth": true,
"caGeneratedSameUrls": true,
"caIssueMetadataTooltipEquivalent": false,
"caRulesRestored": true,
"noRealCredentialsUsed": true
}VA
실행 원문 JSON관찰 상태
{
"actual": {},
"localRequests": {
"baseUrl": "http://127.0.0.1:62274/",
"requests": [
{
"path": "/api/v3/repos/Parity103/Repo103/issues/103",
"userAgent": "VAssist_SourceLinks (Win32NT 10.0.26200; amd64; ko-KR; Octokit 0.48.0+d02a2301726f7015d10a6c6dea5c417ed57cbe34)"
},
{
"path": "/fog/api.asp?token=parity-session-103&cmd=search&q=103&cols=latestEvent,sTitle,sLatestTextSummary,sStatus,sPersonAssignedTo,dtResolved,dtOpened",
"userAgent": null
}
],
"requestsBeforeCa": 2,
"requestsAfterCa": 2,
"realServiceCredentialsUsed": false
},
"scope": "actual installed plugin HTTP calls to owned localhost mock API; no real SaaS authentication/browser/physical hover certification"
}CA
실행 원문 JSON관찰 상태
{
"actual": {},
"localRequests": {
"baseUrl": "http://127.0.0.1:62274/",
"requests": [
{
"path": "/api/v3/repos/Parity103/Repo103/issues/103",
"userAgent": "VAssist_SourceLinks (Win32NT 10.0.26200; amd64; ko-KR; Octokit 0.48.0+d02a2301726f7015d10a6c6dea5c417ed57cbe34)"
},
{
"path": "/fog/api.asp?token=parity-session-103&cmd=search&q=103&cols=latestEvent,sTitle,sLatestTextSummary,sStatus,sPersonAssignedTo,dtResolved,dtOpened",
"userAgent": null
}
],
"requestsBeforeCa": 2,
"requestsAfterCa": 2,
"realServiceCredentialsUsed": false
},
"scope": "actual installed plugin HTTP calls to owned localhost mock API; no real SaaS authentication/browser/physical hover certification"
}VA-F098 · Preview Files different
양쪽 실제 파일 본문 미리보기를 확인했습니다. VA는 Source Links FilePlugin 뷰에서 본문·스크롤 안내를 표시하고 CA는 별도 Preview File 명령의 파일 선택 후 도구 창 탭에 색상 문서를 표시합니다. CA 기능 자체가 없는 것은 아니며 진입 방식·배치가 다릅니다. VA는 플러그인 뷰를 비공개 검사 창에 호스팅했고 마우스 hover 입력은 미검증입니다.
{
"nativeFileContentRendered": true,
"caFileContentRendered": true,
"hoverEntryEquivalent": false,
"externalExecutionExcluded": true
}VA
실행 원문 JSON
관찰 상태
{
"observed": {
"status": "observed",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\ViewFileTarget103.h"
},
"scope": "actual installed file-preview plugin rendered in private host; not mouse-hover entry certification"
}CA
실행 원문 JSON
관찰 상태
{
"actual": {
"status": "observed",
"title": "ViewFileTarget103.h",
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\ViewFileTarget103.h"
},
"hoverEntry": {
"status": "observed",
"quickState": null,
"quickContent": [],
"signatures": []
},
"scope": "actual separate Preview File command renders the same file; hover entry differs"
}VA-F099 · Open Hyperlinks in an External Browser representative-match
설치된 VA Utils.OpenUrl의 OpenInExtBrowser 경로를 실제 VS UI 스레드에서 실행하고 CA 실제 Source Link 명령(0x17b)도 실행했습니다. 양쪽 고유 URL이 기본 외부 브라우저의 HTTP 요청으로 로컬 서버에 도착했습니다. CA 임시 링크 규칙은 원래 메모리 객체로 복원했습니다. 마우스·hover·다른 URI 전체 인증은 아닙니다.
{
"nativeActualExternalOpen": true,
"caActualSourceLinkCommand": true,
"browserHttpReceiptBoth": true,
"caRuntimeRulesRestored": true
}VA
실행 원문 JSON관찰 상태
{
"execution": {
"status": "executed"
},
"receipt": {
"url": "http://127.0.0.1:54489/parity107/VA/f21df75597b241b8aab6151ed0cacea1",
"hits": [
{
"path": "/parity107/VA/f21df75597b241b8aab6151ed0cacea1",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36",
"at": 1792378477.890929
}
],
"server": "127.0.0.1",
"port": 54489
},
"scope": "Actual installed native external-open function on VS UI thread vs actual CA source-link command; unique loopback HTTP receipt in default external browser, no UI click or all URI variants certification."
}CA
실행 원문 JSON관찰 상태
{
"execution": {
"status": "executed"
},
"receipt": {
"url": "http://127.0.0.1:54489/parity107/CA/38eee5e0ce314efebe9dc150dd0640f9",
"hits": [
{
"path": "/parity107/CA/38eee5e0ce314efebe9dc150dd0640f9?id=107",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36",
"at": 1792378481.2588167
}
],
"server": "127.0.0.1",
"port": 54489
},
"scope": "Actual installed native external-open function on VS UI thread vs actual CA source-link command; unique loopback HTTP receipt in default external browser, no UI click or all URI variants certification."
}VA-F100 · Custom Plug-ins different
소유한 무해한 Source Links 플러그인을 원본 IPluginFactory/IPlugin 계약으로 실제 빌드하고 VA 호스트에서 정규식·툴팁·URL 메서드를 실행했습니다. 같은 플러그인 타입은 CA의 ICodeAssistPlugin 계약과 호환되지 않으며 CA 계약은 텍스트 편집 액션용입니다. 원본의 설치 검색·분리 AppDomain 검증기까지 인증한 결과는 아니고 외부 실행은 호출하지 않았습니다.
{
"nativeFactoryMethodsExecuted": true,
"nativeUrlExpected": true,
"caSourceLinksContractCompatible": false,
"externalExecutionExcluded": true
}VA-F101 · Context Menus different
같은 메서드에서 실제 편집기 문맥 메뉴를 열어 촬영했습니다. VA에는 전용 Quick Actions and Refactorings 및 Surround With 항목이 있지만 CA에는 CodeAssist 전용 메뉴가 표시되지 않습니다. IDE 기본 빠른 작업은 양쪽에 있어 제품 전용 항목 부재와 구분했습니다.
{
"sameEditorContextBoth": true,
"ideQuickActionsPresentBoth": true,
"dedicatedProductContextEntriesBoth": false
}VA
실행 원문 JSON
관찰 상태
{
"items": [
"Copilot에게 물어보기",
"Quick Actions and Refactorings (VA)",
"Surround With (VA)",
"빠른 작업 및 리팩터링...",
"#Include 지시문",
"이름 바꾸기...",
"코드 보기",
"정의 피킹",
"정의로 이동",
"선언으로 이동",
"모든 참조 찾기",
"호출 계층 구조 보기",
"헤더/코드 파일 피킹",
"헤더/코드 파일 전환",
"중단점",
"커서까지 실행",
"커서까지 실행",
"코드 조각",
"잘라내기",
"복사",
"붙여넣기",
"주석",
"개요",
"다시 검사",
"Git",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"파일",
"편집",
"보기",
"Git",
"프로젝트",
"빌드",
"디버그",
"테스트",
"분석",
"도구",
"확장",
"창",
"도움말"
]
}CA
실행 원문 JSON
관찰 상태
{
"items": [
"Copilot에게 물어보기",
"빠른 작업 및 리팩터링...",
"#Include 지시문",
"코드 보기",
"정의 피킹",
"정의로 이동",
"선언으로 이동",
"모든 참조 찾기",
"호출 계층 구조 보기",
"헤더/코드 파일 피킹",
"헤더/코드 파일 전환",
"중단점",
"커서까지 실행",
"커서까지 실행",
"코드 조각",
"잘라내기",
"복사",
"붙여넣기",
"주석",
"개요",
"다시 검사",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"시스템",
"파일",
"편집",
"보기",
"Git",
"프로젝트",
"빌드",
"디버그",
"테스트",
"분석",
"도구",
"확장",
"창",
"도움말"
]
}VA-F102 · Custom File Extensions different
공식 등록 절차로 .ca105를 추가한 VA는 실제 정의 이동에 성공했고, 무시 옵션 ON에서 이동 중단·OFF 복원 후 재이동까지 통과했습니다. CA는 실제 옵션 저장·재색인에서 정의 수 0→1→0을 확인했으나, 확장자 추가 상태에서도 정의 이동 명령은 원래 커서에 머물렀습니다. 현재 정의 이동 코드의 고정 확장자 허용 목록에 사용자 확장자가 포함되지 않는 차이와 일치합니다. 사용자 기본 파일 연결은 바꾸지 않았습니다.
{
"nativeCustomExtensionNavigation": true,
"nativeIgnoreOnOffChangesBehavior": true,
"caOptionControlsActualIndex": true,
"caCustomExtensionDefinitionNavigation": false,
"ignoreAndCaOptionsRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"VA.extension-registered.actual.json": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\custom-extension105.ca105",
"text": "class CustomExtension105 { public: int Value() { return 105; } };\r\nint main() { CustomExtension105 value; return value.Value(); }\r\n",
"caret": 24,
"selectionStart": 6,
"selectionLength": 18,
"selectedText": "CustomExtension105"
},
"error": null
},
"VA.extension-ignored.actual.json": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\custom-extension105.ca105",
"text": "class CustomExtension105 { public: int Value() { return 105; } };\r\nint main() { CustomExtension105 value; return value.Value(); }\r\n",
"caret": 84,
"selectionStart": 84,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"VA.extension-ignore-restored.actual.json": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\custom-extension105.ca105",
"text": "class CustomExtension105 { public: int Value() { return 105; } };\r\nint main() { CustomExtension105 value; return value.Value(); }\r\n",
"caret": 24,
"selectionStart": 6,
"selectionLength": 18,
"selectedText": "CustomExtension105"
},
"error": null
},
"VA.ignore-extension.transaction.json": {
"original": "",
"restored": true,
"nativeNormalizedValue": ".ca105;"
}
},
"scope": "Unique .ca105 extension, VS private-profile mapping; Native ExtSource registration. Native ignore option normalization .ca105; restored. Global native extension registry restoration is tracked separately and still pending until the private host closes."
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"CA.extension-before-add.index.json": {
"status": "observed"
},
"CA.extension-after-add.index.json": {
"status": "observed"
},
"CA.extension-after-restore.index.json": {
"status": "observed"
},
"CA.extension-added-lookup.actual.json": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\custom-extension105.ca105",
"text": "class CustomExtension105 { public: int Value() { return 105; } };\r\nint main() { CustomExtension105 value; return value.Value(); }\r\n",
"caret": 84,
"selectionStart": 84,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"CA.extension.transaction.json": {
"original": "",
"restored": true
}
},
"scope": "Unique .ca105 extension, VS private-profile mapping; Native ExtSource registration. Native ignore option normalization .ca105; restored. Global native extension registry restoration is tracked separately and still pending until the private host closes."
}VA-F103 · Keyboard Shortcuts different
현재 설치 프로필에서 실제 OS 키 입력을 대조했습니다. Alt+G는 양쪽 제품 명령으로 연결됐지만 Alt+K는 VA에서 기본 VS 명령, CA에서는 CA 명령으로 연결됐습니다. CA는 22개 입력 중 20개에서 예상 CA 명령 이벤트가 관찰됐습니다. 일부 VA 행은 포커스 오류라 유효 검사로 계산하지 않았으며, 전체 키 동작 일치로 보고하지 않습니다.
{
"actualAltKBoth": true,
"actualAltGBoth": true,
"altKDispatchEquivalent": false,
"all22Passed": false
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"role": "VA",
"pid": 33336,
"completed": true,
"cases": [
{
"index": 1,
"chord": "ALT+K",
"expectedCACommand": 282,
"inputSent": true,
"caCommandObserved": false,
"availability": true,
"bindings": [],
"commands": [
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 1627
},
{
"guid": "{5EFC7975-14BC-11CF-9B2B-00AA00573819}",
"id": 684
},
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 1990
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-VA-corrected\\VA-1.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-VA\\VA-10.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": null
},
{
"index": 2,
"chord": "CTRL+SHIFT+V",
"expectedCACommand": 278,
"inputSent": false,
"caCommandObserved": false,
"availability": null,
"bindings": null,
"commands": [],
"before": null,
"after": null,
"error": "Wrong fixture before focus"
},
{
"index": 3,
"chord": "ALT+SHIFT+H",
"expectedCACommand": 272,
"inputSent": true,
"caCommandObserved": false,
"availability": true,
"bindings": [],
"commands": [
{
"guid": "{4B7BC633-F580-4C25-A8D2-BBC39F5CD992}",
"id": 261
},
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 103
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-VA-corrected\\VA-3.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-VA\\VA-12.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": null
},
{
"index": 4,
"chord": "ALT+SHIFT+]",
"expectedCACommand": 274,
"inputSent": false,
"caCommandObserved": false,
"availability": null,
"bindings": null,
"commands": [],
"before": null,
"after": null,
"error": "Wrong fixture before focus"
},
{
"index": 5,
"chord": "ALT+SHIFT+[",
"expectedCACommand": 275,
"inputSent": true,
"caCommandObserved": false,
"availability": true,
"bindings": [],
"commands": [
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 1627
},
{
"guid": "{5EFC7975-14BC-11CF-9B2B-00AA00573819}",
"id": 684
},
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 1990
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-VA-corrected\\VA-5.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-VA\\VA-14.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": "Foreground PID mismatch; no input sent"
},
{
"index": 6,
"chord": "ALT+]",
"expectedCACommand": 276,
"inputSent": true,
"caCommandObserved": false,
"availability": true,
"bindings": [],
"commands": [
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 1627
},
{
"guid": "{5EFC7975-14BC-11CF-9B2B-00AA00573819}",
"id": 684
},
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 1990
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-VA-corrected\\VA-6.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-VA-corrected\\VA-6.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": "Foreground PID mismatch; no input sent"
},
{
"index": 7,
"chord": "ALT+[",
"expectedCACommand": 277,
"inputSent": false,
"caCommandObserved": false,
"availability": null,
"bindings": null,
"commands": [],
"before": null,
"after": null,
"error": "Wrong fixture before focus"
},
{
"index": 8,
"chord": "CTRL+0",
"expectedCACommand": 271,
"inputSent": false,
"caCommandObserved": false,
"availability": null,
"bindings": null,
"commands": [],
"before": null,
"after": null,
"error": "Wrong fixture before focus"
}
],
"scope": "Actual OS SendInput; command dispatch and snapshots, not full behavior equivalence",
"finishedAt": "/Date(1792376762457)/"
},
"scope": "22 combinations attempted; failed focus rows remain errors; binding/dispatch comparison only, not complete behavior certification"
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"role": "CA",
"pid": 42396,
"completed": true,
"cases": [
{
"index": 1,
"chord": "ALT+K",
"expectedCACommand": 282,
"inputSent": true,
"caCommandObserved": true,
"availability": true,
"bindings": [
"전역::Alt+K",
"텍스트 편집기::Alt+K"
],
"commands": [
{
"guid": "{F9D77864-FAC8-457E-BD4F-552715151B6C}",
"id": 282
},
{
"guid": "{5EFC7975-14BC-11CF-9B2B-00AA00573819}",
"id": 684
},
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 1990
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-1.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-1.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": null
},
{
"index": 2,
"chord": "CTRL+SHIFT+V",
"expectedCACommand": 278,
"inputSent": true,
"caCommandObserved": true,
"availability": true,
"bindings": [
"전역::Ctrl+Shift+V",
"텍스트 편집기::Ctrl+Shift+V"
],
"commands": [
{
"guid": "{5EFC7975-14BC-11CF-9B2B-00AA00573819}",
"id": 684
},
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 1990
},
{
"guid": "{F9D77864-FAC8-457E-BD4F-552715151B6C}",
"id": 278
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-2.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-2.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": null
},
{
"index": 3,
"chord": "ALT+SHIFT+H",
"expectedCACommand": 272,
"inputSent": true,
"caCommandObserved": true,
"availability": true,
"bindings": [
"전역::Shift+Alt+H",
"텍스트 편집기::Shift+Alt+H"
],
"commands": [
{
"guid": "{F9D77864-FAC8-457E-BD4F-552715151B6C}",
"id": 272
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-3.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-3.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": null
},
{
"index": 4,
"chord": "ALT+SHIFT+]",
"expectedCACommand": 274,
"inputSent": true,
"caCommandObserved": false,
"availability": true,
"bindings": [
"전역::Shift+Alt+]",
"텍스트 편집기::Shift+Alt+]"
],
"commands": [],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-4.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-4.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": null
},
{
"index": 5,
"chord": "ALT+SHIFT+[",
"expectedCACommand": 275,
"inputSent": true,
"caCommandObserved": true,
"availability": true,
"bindings": [
"전역::Shift+Alt+[",
"텍스트 편집기::Shift+Alt+["
],
"commands": [
{
"guid": "{F9D77864-FAC8-457E-BD4F-552715151B6C}",
"id": 275
},
{
"guid": "{5EFC7975-14BC-11CF-9B2B-00AA00573819}",
"id": 684
},
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 1990
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-5.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-5.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": null
},
{
"index": 6,
"chord": "ALT+]",
"expectedCACommand": 276,
"inputSent": true,
"caCommandObserved": true,
"availability": true,
"bindings": [
"전역::Alt+]",
"텍스트 편집기::Alt+]"
],
"commands": [
{
"guid": "{F9D77864-FAC8-457E-BD4F-552715151B6C}",
"id": 276
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-6.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-6.cpp",
"line": 2,
"column": 35,
"selected": "{ Probe p; p.Run(); }"
},
"error": null
},
{
"index": 7,
"chord": "ALT+[",
"expectedCACommand": 277,
"inputSent": true,
"caCommandObserved": true,
"availability": true,
"bindings": [
"전역::Alt+[",
"텍스트 편집기::Alt+["
],
"commands": [
{
"guid": "{F9D77864-FAC8-457E-BD4F-552715151B6C}",
"id": 277
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-7.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-7.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": null
},
{
"index": 8,
"chord": "CTRL+0",
"expectedCACommand": 271,
"inputSent": true,
"caCommandObserved": true,
"availability": true,
"bindings": [
"전역::Ctrl+0",
"텍스트 편집기::Ctrl+0"
],
"commands": [
{
"guid": "{F9D77864-FAC8-457E-BD4F-552715151B6C}",
"id": 271
},
{
"guid": "{5EFC7975-14BC-11CF-9B2B-00AA00573819}",
"id": 684
},
{
"guid": "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}",
"id": 1990
}
],
"before": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-8.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"after": {
"file": "C:\\Projects\\CodeAssist\\docs\\validation\\remaining-106\\keys-CA\\CA-8.cpp",
"line": 2,
"column": 20,
"selected": ""
},
"error": null
}
],
"scope": "Actual OS SendInput; command dispatch and snapshots, not full behavior equivalence",
"finishedAt": "/Date(1792376582483)/"
},
"scope": "22 combinations attempted; failed focus rows remain errors; binding/dispatch comparison only, not complete behavior certification"
}VA-F104 · Mouse different
실제 Alt+왼쪽 클릭 후 VA는 Definition 및 Goto Member 항목이 있는 심볼 메뉴를 열었고 CA는 현재 Alt+클릭 옵션이 꺼져 있어 메뉴를 열지 않았습니다. 편집기 소스 HWND와 가림 여부를 검증했고 이전 가려진 클릭은 제외했습니다. 사용자 설정 상태의 대표 동작 차이이며 모든 wheel/조합 인증은 아닙니다.
{
"actualModifiedClickBoth": true,
"ownedEditorPointVerified": true,
"nativeSymbolMenuPositive": true,
"caSameMenu": false
}VA
실행 원문 JSON관찰 상태
{
"menu": [
{
"image": ".local\\parity-runs\\remaining-107\\VA.alt-click.native-menu-menu-0.png",
"hwnd": 2692140,
"thread": 8892,
"menu": 522062377,
"active": 34342990,
"focus": 34342990,
"menuOwner": 17893500,
"items": [
{
"index": 0,
"id": 1,
"text": "De&finition \u0005mouse-uncovered107.cpp:1\u0002",
"submenu": 0,
"children": null
},
{
"index": 1,
"id": 1002,
"text": "Goto &Member...",
"submenu": 0,
"children": null
}
]
}
],
"physical": {
"observedEditorState": {
"text": "class MouseUncovered107 {};\r\nint main() { MouseUncovered107 item; return 0; }\r\n",
"caret": 45,
"selectionStart": 45,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"location": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\mouse-uncovered107.cpp"
},
"options": {
"status": "observed",
"title": "Visual Assist Options",
"visibleHeadings": [
"Mouse",
"Editor",
"Visual Assist"
],
"clicked": false,
"stillVisible": true,
"visibleControlCount": 76
},
"scope": "Actual Alt+left click with source HWND occlusion guard; current native menu mapping vs CA disabled default; wheel and all modifiers not certified."
}CA
실행 원문 JSON관찰 상태
{
"menu": [],
"physical": {
"observedEditorState": {
"text": "class MouseUncovered107 {};\r\nint main() { MouseUncovered107 item; return 0; }\r\n",
"caret": 45,
"selectionStart": 45,
"selectionLength": 0,
"selectedText": ""
},
"error": null
},
"location": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\CA\\mouse-uncovered107.cpp"
},
"options": {
"status": "observed",
"title": "CodeAssist Options",
"visibleHeadings": [
""
],
"clicked": false,
"stillVisible": true,
"visibleControlCount": 49
},
"scope": "Actual Alt+left click with source HWND occlusion guard; current native menu mapping vs CA disabled default; wheel and all modifiers not certified."
}VA-F105 · Multiple Platforms different
VA에서자체 Custom 경로 저장·재열기를 확인하고 실제 솔루션 빌드 플랫폼을 x64에서 Any CPU로 바꿔도 편집 플랫폼과 경로가 Custom으로 유지됨을 확인했습니다. CA C/C++ Directories 페이지는 사용자 경로·플랫폼 편집을 지원하지 않는다고 표시하고 대응 컨트롤이 없습니다. 원래 빈 Custom 경로, Project defined, Debug/x64까지 복원했습니다. 재시작 후 헤더 검색 전체 지원으로 확대하지 않았습니다.
{
"nativeCustomPathSavedReadBack": true,
"actualBuildPlatformChanged": true,
"nativeEditingPlatformUnaffected": true,
"caCustomPlatformEditable": false,
"allOriginalSettingsRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observations": {
"VA.custom-directory.added.json": {
"status": "observed"
},
"VA.custom-directory.saved-readback.json": {
"status": "observed"
},
"VA.platform.anycpu-build.json": {},
"VA.platform.after-build-switch.json": {
"status": "observed"
},
"VA.platform.empty-custom-restored.json": {
"status": "observed"
},
"VA.platform.final-restored-options.json": {
"status": "observed"
},
"VA.platform.final-build-state.json": {}
},
"transaction": {
"originalBuild": "Debug",
"originalBuildPlatform": "x64",
"customPlatformPersistedAcrossBuildSwitch": true,
"originalPlatformRestored": true,
"originalBuildRestored": true,
"emptyOriginalCustomSetRestored": true
},
"scope": "actual custom directory save and build platform switch independence; native header navigation requires restart and is not certified"
}CA
실행 원문 JSON관찰 상태
{
"observations": {
"CA.platform.custom-controls.json": {
"status": "observed"
},
"CA.platform.custom-page.json": {
"status": "observed",
"title": "CodeAssist Options",
"visibleHeadings": [
""
],
"clicked": false,
"stillVisible": true,
"visibleControlCount": 48
}
},
"transaction": {
"originalBuild": "Debug",
"originalBuildPlatform": "x64",
"customPlatformPersistedAcrossBuildSwitch": true,
"originalPlatformRestored": true,
"originalBuildRestored": true,
"emptyOriginalCustomSetRestored": true
},
"scope": "actual custom directory save and build platform switch independence; native header navigation requires restart and is not certified"
}VA-F106 · Non-Microsoft Build Processes different
VA는 Custom의 System include·Source files 경로 설정과 재파싱 후, CA는 compile_flags.txt의 외부 -I 설정으로 같은 외부 헤더에 실제 도착했습니다. 외부 경로를 사용한 실제 명령줄 빌드·실행도 양쪽 통과했습니다. 설정 방식과 정의 커서 위치(VA 39, CA 20)가 달라 완전 일치로 세지 않았습니다. 테스트 경로 두 그룹과 CA 플래그는 원상복구했습니다.
{
"actualExternalHeaderReachedBoth": true,
"actualExternalCommandLineBuildPassedBoth": true,
"actualExecutablePassedBoth": true,
"configurationWorkflowEquivalent": false,
"definitionCaretEquivalent": false,
"settingsRestored": true
}VA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"id": "request-f517042952594af4",
"role": "VA",
"pid": 33516,
"status": "complete",
"sha256": "0c6ac33cc4e99ee387437808d4a6d2ccf192c675a3815617271dbc1becda9689",
"result": {
"dteFile": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\shared-custom103\\PlatformHeader103.h",
"views": [
{
"focused": 0,
"hr": 0,
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\shared-custom103\\PlatformHeader103.h",
"hasFocus": true,
"caret": 39,
"sample": "#pragma once\r\nclass ExternalPlatform103 { public: static int Value() { return 103; } };\r\n"
},
{
"focused": 1,
"hr": 0,
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\shared-custom103\\PlatformHeader103.h",
"hasFocus": true,
"caret": 39,
"sample": "#pragma once\r\nclass ExternalPlatform103 { public: static int Value() { return 103; } };\r\n"
}
],
"keyboardElement": "Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView"
},
"error": null,
"at": "2026-10-19T07:09:17.9236863+09:00"
},
"error": null
}CA
실행 원문 JSON관찰 상태
{
"observedEditorState": {
"id": "request-229f41aee3474a35",
"role": "CA",
"pid": 20908,
"status": "complete",
"sha256": "779f3d5c3bc326fdfed5028f42fa5d93325bed9be5b4fd8451fe47615d6eb5fa",
"result": {
"dteFile": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\shared-custom103\\PlatformHeader103.h",
"views": [
{
"focused": 0,
"hr": 0,
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\shared-custom103\\PlatformHeader103.h",
"hasFocus": true,
"caret": 20,
"sample": "#pragma once\r\nclass ExternalPlatform103 { public: static int Value() { return 103; } };\r\n"
},
{
"focused": 1,
"hr": 0,
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\shared-custom103\\PlatformHeader103.h",
"hasFocus": true,
"caret": 20,
"sample": "#pragma once\r\nclass ExternalPlatform103 { public: static int Value() { return 103; } };\r\n"
}
],
"keyboardElement": "Microsoft.VisualStudio.Text.Editor.Implementation.WpfTextView"
},
"error": null,
"at": "2026-10-19T07:06:29.3191085+09:00"
},
"error": null
}VA-F107 · Parse Concurrency representative-match
동시성 제한의 대표 동작을 실제 실행했습니다. VA는 제한 1로 재시작한 뒤 새 심볼 정의 이동에 성공했고 해당 네이티브 작업 시작 주소의 스레드가 1개였습니다. 제한 8 복원 후 같은 주소의 작업 스레드가 5개로 늘었습니다(최대값이므로 8개 생성 보장은 아님). CA는 설치 DLL을 그대로 사용해 160파일을 1→4→1 설정에서 색인했고 추가 ThreadPool 작업자가 0→3→0개, 출력은 모두 정상입니다. 모든 최대값·전체 파서 호출 스택·처리량 동등성까지 인증한 것은 아닙니다.
{
"nativeSingleWorkerRestrictionObserved": true,
"nativeFreshSymbolCommandSucceeded": true,
"nativeMultiWorkerGrowthAfterRestore": true,
"caSerialParallelSerialObserved": true,
"caAllInputFilesAndLastSymbolIndexed": true,
"installedIndexerAssemblyHashMatches": true,
"nativeSettingsRestored": true
}VA
실행 원문 JSON관찰 상태
{
"single": {
"pid": 21564,
"nativeThreads": [
{
"tid": 39776,
"module": "VA_X64.dll",
"offset": "0xc1e0c0"
},
{
"tid": 42228,
"module": "VA_X64.dll",
"offset": "0xc317f4"
},
{
"tid": 37804,
"module": "VA_X64.dll",
"offset": "0xc317f4"
},
{
"tid": 47488,
"module": "VA_X64.dll",
"offset": "0xc317f4"
}
]
},
"multi": {
"pid": 33440,
"nativeThreads": [
{
"tid": 27100,
"module": "VA_X64.dll",
"offset": "0xc1e0c0"
},
{
"tid": 33312,
"module": "VA_X64.dll",
"offset": "0xc1e0c0"
},
{
"tid": 30252,
"module": "VA_X64.dll",
"offset": "0xc1e0c0"
},
{
"tid": 35796,
"module": "VA_X64.dll",
"offset": "0xc1e0c0"
},
{
"tid": 25280,
"module": "VA_X64.dll",
"offset": "0xc1e0c0"
},
{
"tid": 13616,
"module": "VA_X64.dll",
"offset": "0xc317f4"
}
]
},
"navigation": {
"observedEditorState": {
"file": "C:\\Projects\\CodeAssist\\.local\\parity-runs\\background-103\\VA\\single-parser105.cpp",
"text": "class SingleParser105 { public: int Compute() { return 105; } };\r\nint main(){ SingleParser105 value; return value.Compute(); }\r\n",
"caret": 21,
"selectionStart": 6,
"selectionLength": 15,
"selectedText": "SingleParser105"
},
"error": null
},
"restoration": {
"original": 8,
"restored": true
},
"scope": "Representative limit-1 behavior with real new-symbol command and native worker population, not all parser call stacks or every maximum."
}CA
실행 원문 JSON관찰 상태
{
"runtime": {
"scope": "Unmodified indexing assembly, synchronous BuildProject, dedicated monitor thread, A-B-A 1/4/1. No other ThreadPool workload in this process. Busy workers are runtime workers; not stack-attributed parser call count.",
"assembly": "C:\\Projects\\CodeAssist\\tools\\ParseConcurrencyProbe\\bin\\Release\\net8.0\\CodeAssist.Indexing.dll",
"sha256": "550D1460C07ABAF4A999C95D99EAF612DB0D554310C85E3782B937C910C10C53",
"rows": [
{
"configured": 1,
"peakBusyThreadPoolWorkers": 0,
"samples": 64,
"files": 160,
"lastSymbolDefinitions": 1,
"elapsedMilliseconds": 993
},
{
"configured": 4,
"peakBusyThreadPoolWorkers": 3,
"samples": 31,
"files": 160,
"lastSymbolDefinitions": 1,
"elapsedMilliseconds": 485
},
{
"configured": 1,
"peakBusyThreadPoolWorkers": 0,
"samples": 27,
"files": 160,
"lastSymbolDefinitions": 1,
"elapsedMilliseconds": 420
}
]
},
"installedAssemblySha256": "550d1460c07abaf4a999c95d99eaf612db0d554310c85e3782b937c910c10c53",
"installedAssemblyMatches": true,
"scope": "Installed DLL copied without code modification; synchronous BuildProject and dedicated ThreadPool monitor. Not a throughput-ratio measurement."
}VA-F108 · Options Dialog different
옵션 전체 트리 30개(VA)/32개(CA) 실제 순회·촬영, 검색 양성/음성·취소 실행. Coloring에서 VA의 enum/namespace 색상과 적용 대상 6개 토글이 CA 화면에 없음. 전체 설정 저장 동작의 인증은 아님.
VA
실행 원문 JSON
관찰 상태
{
"status": "observed",
"title": "Visual Assist Options",
"visibleHeadings": [
"Coloring",
"Editor",
"Visual Assist"
],
"clicked": false,
"stillVisible": true,
"visibleControlCount": 70
}CA
실행 원문 JSON
관찰 상태
{
"status": "observed",
"title": "CodeAssist Options",
"visibleHeadings": [
""
],
"clicked": false,
"stillVisible": true,
"visibleControlCount": 64
}