메모리 상태 팝업과 include 감사 요약 UX 고도화
Some checks failed
Release Gate / gate (push) Has been cancelled

- Cowork/Code 하단 메모리 칩에서 적용 규칙과 최근 include 감사 이력을 팝업으로 확인 가능하게 개선
- 설정 메모리 개요에 최근 include 감사 요약을 추가해 메모리 계층과 감사 상태를 함께 점검 가능하도록 정리
- AX Agent 메모리 구조 고도화 마지막 UX 보강 반영 및 Release 빌드 경고/오류 0 검증
This commit is contained in:
2026-04-07 00:55:53 +09:00
parent 594bb6ffe6
commit fe843fb314
6 changed files with 299 additions and 23 deletions

View File

@@ -3197,7 +3197,7 @@ public partial class SettingsWindow : Window
private void RefreshMemoryOverview()
{
if (TxtMemoryOverviewSummary == null || TxtMemoryOverviewScopes == null)
if (TxtMemoryOverviewSummary == null || TxtMemoryOverviewScopes == null || TxtMemoryOverviewAudit == null)
return;
var app = System.Windows.Application.Current as App;
@@ -3206,6 +3206,7 @@ public partial class SettingsWindow : Window
{
TxtMemoryOverviewSummary.Text = "메모리 서비스를 사용할 수 없습니다.";
TxtMemoryOverviewScopes.Text = "";
TxtMemoryOverviewAudit.Text = "";
return;
}
@@ -3219,24 +3220,40 @@ public partial class SettingsWindow : Window
if (docs.Count == 0)
{
TxtMemoryOverviewScopes.Text = "현재 활성화된 계층형 메모리 파일이 없습니다.";
return;
}
else
{
var lines = docs
.Take(6)
.Select(doc =>
{
var priority = doc.Priority > 0 ? $"우선순위 {doc.Priority}" : "우선순위 미정";
var description = string.IsNullOrWhiteSpace(doc.Description) ? "" : $" · {doc.Description}";
var tags = doc.Tags.Count > 0 ? $" · tags: {string.Join(", ", doc.Tags)}" : "";
return $"[{doc.Label}] {priority}{description}{tags}";
})
.ToList();
if (docs.Count > lines.Count)
lines.Add($"외 {docs.Count - lines.Count}개 규칙");
TxtMemoryOverviewScopes.Text = string.Join("\n", lines);
}
var lines = docs
.Take(6)
.Select(doc =>
var includeEntries = AuditLogService.LoadToday()
.Where(x => string.Equals(x.Action, "MemoryInclude", StringComparison.OrdinalIgnoreCase))
.OrderByDescending(x => x.Timestamp)
.Take(3)
.Select(x =>
{
var priority = doc.Priority > 0 ? $"우선순위 {doc.Priority}" : "우선순위 미정";
var description = string.IsNullOrWhiteSpace(doc.Description) ? "" : $" · {doc.Description}";
var tags = doc.Tags.Count > 0 ? $" · tags: {string.Join(", ", doc.Tags)}" : "";
return $"[{doc.Label}] {priority}{description}{tags}";
var status = x.Success ? "허용" : "차단";
return $"{status} · {x.Timestamp:HH:mm:ss} · {x.Result}";
})
.ToList();
if (docs.Count > lines.Count)
lines.Add($"외 {docs.Count - lines.Count}개 규칙");
TxtMemoryOverviewScopes.Text = string.Join("\n", lines);
TxtMemoryOverviewAudit.Text = includeEntries.Count == 0
? "최근 include 감사 기록이 없습니다."
: "최근 include 감사\n" + string.Join("\n", includeEntries);
}
// ─── 에이전트 훅 관리 ─────────────────────────────────────────────────