From 1a9af8acb69e275871cd6f4a72a10d6b5ce55001 Mon Sep 17 00:00:00 2001
From: Luke Parker <10430890+Hona@users.noreply.github.com>
Date: Sat, 7 Mar 2026 14:52:04 +1000
Subject: [PATCH] feat(desktop): show skill issue when snapshotting is off
(#16432)
---
packages/app/src/i18n/en.ts | 1 +
packages/app/src/pages/session.tsx | 5 +++--
packages/app/src/pages/session/session-side-panel.tsx | 8 +++++++-
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/packages/app/src/i18n/en.ts b/packages/app/src/i18n/en.ts
index 8b672d437..c278d6270 100644
--- a/packages/app/src/i18n/en.ts
+++ b/packages/app/src/i18n/en.ts
@@ -512,6 +512,7 @@ export const dict = {
"session.review.loadingChanges": "Loading changes...",
"session.review.empty": "No changes in this session yet",
"session.review.noVcs": "No Git Version Control System detected, changes not displayed",
+ "session.review.noSnapshot": "Snapshot tracking is disabled in config, so session changes are unavailable",
"session.review.noChanges": "No changes",
"session.files.selectToOpen": "Select a file to open",
diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx
index f6f6576c4..82a581e68 100644
--- a/packages/app/src/pages/session.tsx
+++ b/packages/app/src/pages/session.tsx
@@ -495,8 +495,9 @@ export default function Page() {
})
const reviewEmptyKey = createMemo(() => {
const project = sync.project
- if (!project || project.vcs) return "session.review.empty"
- return "session.review.noVcs"
+ if (project && !project.vcs) return "session.review.noVcs"
+ if (sync.data.config.snapshot === false) return "session.review.noSnapshot"
+ return "session.review.empty"
})
function upsert(next: Project) {
diff --git a/packages/app/src/pages/session/session-side-panel.tsx b/packages/app/src/pages/session/session-side-panel.tsx
index 927461a2a..ce8b35d04 100644
--- a/packages/app/src/pages/session/session-side-panel.tsx
+++ b/packages/app/src/pages/session/session-side-panel.tsx
@@ -60,6 +60,12 @@ export function SessionSidePanel(props: {
return sync.data.session_diff[id] !== undefined
})
+ const reviewEmptyKey = createMemo(() => {
+ if (sync.project && !sync.project.vcs) return "session.review.noVcs"
+ if (sync.data.config.snapshot === false) return "session.review.noSnapshot"
+ return "session.review.noChanges"
+ })
+
const diffFiles = createMemo(() => diffs().map((d) => d.file))
const kinds = createMemo(() => {
const merge = (a: "add" | "del" | "mix" | undefined, b: "add" | "del" | "mix") => {
@@ -387,7 +393,7 @@ export function SessionSidePanel(props: {
/>
- {empty(language.t("session.review.noChanges"))}
+ {empty(language.t(reviewEmptyKey()))}