diff --git a/web/frontend/src/__tests__/filter-persistence.test.ts b/web/frontend/src/__tests__/filter-persistence.test.ts
index 85aa031..486b925 100644
--- a/web/frontend/src/__tests__/filter-persistence.test.ts
+++ b/web/frontend/src/__tests__/filter-persistence.test.ts
@@ -374,7 +374,7 @@ describe('KIN-011: TaskDetail — возврат с сохранением URL',
// ─────────────────────────────────────────────────────────────
describe('KIN-047: TaskDetail — Approve/Reject в статусе review', () => {
- function makeTaskWith(status: string, executionMode: 'auto' | 'review' | null = null) {
+ function makeTaskWith(status: string, executionMode: 'auto_complete' | 'review' | null = null) {
return {
id: 'KIN-047',
project_id: 'KIN',
@@ -412,7 +412,7 @@ describe('KIN-047: TaskDetail — Approve/Reject в статусе review', () =
})
it('Approve и Reject скрыты при autoMode в статусе review', async () => {
- vi.mocked(api.taskFull).mockResolvedValue(makeTaskWith('review', 'auto') as any)
+ vi.mocked(api.taskFull).mockResolvedValue(makeTaskWith('review', 'auto_complete') as any)
const router = makeRouter()
await router.push('/task/KIN-047')
@@ -430,7 +430,7 @@ describe('KIN-047: TaskDetail — Approve/Reject в статусе review', () =
})
it('Тоггл Auto/Review виден в статусе review при autoMode (позволяет выйти из автопилота)', async () => {
- vi.mocked(api.taskFull).mockResolvedValue(makeTaskWith('review', 'auto') as any)
+ vi.mocked(api.taskFull).mockResolvedValue(makeTaskWith('review', 'auto_complete') as any)
const router = makeRouter()
await router.push('/task/KIN-047')
@@ -446,7 +446,7 @@ describe('KIN-047: TaskDetail — Approve/Reject в статусе review', () =
})
it('После клика тоггла в review+autoMode появляются Approve и Reject', async () => {
- const task = makeTaskWith('review', 'auto')
+ const task = makeTaskWith('review', 'auto_complete')
vi.mocked(api.taskFull).mockResolvedValue(task as any)
vi.mocked(api.patchTask).mockResolvedValue({ execution_mode: 'review' } as any)
@@ -475,8 +475,8 @@ describe('KIN-047: TaskDetail — Approve/Reject в статусе review', () =
it('KIN-051: Approve и Reject видны при статусе review и execution_mode=null (фикс баги)', async () => {
// Воспроизводит баг: задача в review без явного execution_mode зависала
- // без кнопок, потому что localStorage мог содержать 'auto'
- localStorageMock.setItem('kin-mode-KIN', 'auto') // имитируем "плохой" localStorage
+ // без кнопок, потому что localStorage мог содержать 'auto_complete'
+ localStorageMock.setItem('kin-mode-KIN', 'auto_complete') // имитируем "плохой" localStorage
vi.mocked(api.taskFull).mockResolvedValue(makeTaskWith('review', null) as any)
const router = makeRouter()
await router.push('/task/KIN-047')
diff --git a/web/frontend/src/views/ProjectView.vue b/web/frontend/src/views/ProjectView.vue
index 0c7bef4..6b6b414 100644
--- a/web/frontend/src/views/ProjectView.vue
+++ b/web/frontend/src/views/ProjectView.vue
@@ -168,18 +168,18 @@ const autoMode = ref(false)
function loadMode() {
if (project.value?.execution_mode) {
- autoMode.value = project.value.execution_mode === 'auto'
+ autoMode.value = project.value.execution_mode === 'auto_complete'
} else {
- autoMode.value = localStorage.getItem(`kin-mode-${props.id}`) === 'auto'
+ autoMode.value = localStorage.getItem(`kin-mode-${props.id}`) === 'auto_complete'
}
}
async function toggleMode() {
autoMode.value = !autoMode.value
- localStorage.setItem(`kin-mode-${props.id}`, autoMode.value ? 'auto' : 'review')
+ localStorage.setItem(`kin-mode-${props.id}`, autoMode.value ? 'auto_complete' : 'review')
try {
- await api.patchProject(props.id, { execution_mode: autoMode.value ? 'auto' : 'review' })
- if (project.value) project.value = { ...project.value, execution_mode: autoMode.value ? 'auto' : 'review' }
+ await api.patchProject(props.id, { execution_mode: autoMode.value ? 'auto_complete' : 'review' })
+ if (project.value) project.value = { ...project.value, execution_mode: autoMode.value ? 'auto_complete' : 'review' }
} catch (e: any) {
error.value = e.message
}
@@ -640,7 +640,7 @@ async function addDecision() {
{{ t.title }}
- 🔓
from {{ t.parent_task_id }}
diff --git a/web/frontend/src/views/TaskDetail.vue b/web/frontend/src/views/TaskDetail.vue
index 6ce3259..7a0ab02 100644
--- a/web/frontend/src/views/TaskDetail.vue
+++ b/web/frontend/src/views/TaskDetail.vue
@@ -43,14 +43,14 @@ function loadMode(t: typeof task.value) {
// Task is in review — always show Approve/Reject regardless of localStorage
autoMode.value = false
} else {
- autoMode.value = localStorage.getItem(`kin-mode-${t.project_id}`) === 'auto'
+ autoMode.value = localStorage.getItem(`kin-mode-${t.project_id}`) === 'auto_complete'
}
}
async function toggleMode() {
if (!task.value) return
autoMode.value = !autoMode.value
- localStorage.setItem(`kin-mode-${task.value.project_id}`, autoMode.value ? 'auto' : 'review')
+ localStorage.setItem(`kin-mode-${task.value.project_id}`, autoMode.value ? 'auto_complete' : 'review')
try {
const updated = await api.patchTask(props.id, { execution_mode: autoMode.value ? 'auto_complete' : 'review' })
task.value = { ...task.value, ...updated }