Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions apps/desktop/electron/handoff-result.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ test('line 2 moved by the heartbeat inside the run still correlates its result',
const home = tempHome()
const now = Math.floor(Date.now() / 1000)
const started_at = now - 900

const result = {
ok: false,
exit_code: 3,
Expand Down
2 changes: 2 additions & 0 deletions apps/desktop/electron/remote-update-marker-programs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ test.skipIf(!powershell)(

try {
writeFileSync(script, `${WINDOWS_MARKER_JUDGE_PS}\n${PS_DRIVER}`)

const { stdout } = await execFile(powershell!, [
'-NoProfile',
'-ExecutionPolicy',
Expand All @@ -73,6 +74,7 @@ test.skipIf(!powershell)(
script,
corpusPath
])

const verdicts = Object.fromEntries(
stdout
.trim()
Expand Down
2 changes: 2 additions & 0 deletions apps/desktop/electron/windows-remote-lifecycle.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -268,9 +268,11 @@ test('Windows gates keep a dead marker while the checkout lock or a lease byte i
}

const deleteAt = spawnScript.indexOf('[IO.File]::Delete($marker)')

const guardAt = spawnScript.indexOf(
'if($verdict -eq "CLEAR" -and (Test-CheckoutLockHeld $checkoutRoots)){$verdict="HELD"}'
)

assert.ok(guardAt > 0 && guardAt < deleteAt, 'the checkout probe must precede the dead-marker delete')
assert.match(
probeScript,
Expand Down
2 changes: 2 additions & 0 deletions apps/desktop/src/app/shell/butterbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@ export function Butterbar() {
const items = useStore($butterbarItems)
const [activeId, setActiveId] = useState<null | string>(null)
const [paused, setPaused] = useState(false)

const index = Math.max(
0,
items.findIndex(item => item.id === activeId)
)

const item = items[index]
const multiple = items.length > 1

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,12 @@ function CatalogAdvancedForm({ entry, fields, kind, onCancel, onInstall }: Catal
const profiles = useStore($profiles)
const [agentHalf, setAgentHalf] = useState(true)
const [desktopHalf, setDesktopHalf] = useState(entry.hasDesktopHalf)

// Empty when the chat's home is no named profile: the install then goes to the chat's own home.
const [targetProfile, setTargetProfile] = useState(
entry.targetProfile ? normalizeProfileKey(entry.targetProfile) : ''
)

const [enable, setEnable] = useState(true)
const [force, setForce] = useState(false)
const [pin, setPin] = useState(entry.sha ?? '')
Expand Down