feat: add remote-first education work lake
This commit is contained in:
parent
ac9d051778
commit
333cd222c5
43 changed files with 923 additions and 74 deletions
|
|
@ -57,11 +57,6 @@ describe('useAiAgentsStatus', () => {
|
|||
expect(result.current.claude_code).toEqual({ status: 'installed', version: '1.0.20' })
|
||||
expect(result.current.codex).toEqual({ status: 'missing', version: null })
|
||||
expect(result.current.copilot).toEqual({ status: 'installed', version: '1.0.58' })
|
||||
expect(result.current.opencode).toEqual({ status: 'installed', version: '0.3.1' })
|
||||
expect(result.current.pi).toEqual({ status: 'installed', version: '0.70.2' })
|
||||
expect(result.current.antigravity).toEqual({ status: 'installed', version: 'Antigravity CLI 1.0.0' })
|
||||
expect(result.current.kiro).toEqual({ status: 'installed', version: '0.4.0' })
|
||||
expect(result.current.hermes).toEqual({ status: 'installed', version: 'Hermes Agent 0.16.0' })
|
||||
})
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -1085,9 +1085,9 @@ describe('reload-vault command', () => {
|
|||
expect(cmd).toBeDefined()
|
||||
expect(cmd!.label).toBe('Switch AI Agent to Codex')
|
||||
expect(findCommand(result.current, 'switch-ai-agent-copilot')).toBeDefined()
|
||||
expect(findCommand(result.current, 'switch-ai-agent-opencode')).toBeDefined()
|
||||
expect(findCommand(result.current, 'switch-ai-agent-pi')).toBeDefined()
|
||||
expect(findCommand(result.current, 'switch-ai-agent-antigravity')).toBeDefined()
|
||||
expect(findCommand(result.current, 'switch-ai-agent-opencode')).toBeUndefined()
|
||||
expect(findCommand(result.current, 'switch-ai-agent-pi')).toBeUndefined()
|
||||
expect(findCommand(result.current, 'switch-ai-agent-antigravity')).toBeUndefined()
|
||||
|
||||
cmd!.execute()
|
||||
expect(onSetDefaultAiAgent).toHaveBeenCalledWith('codex')
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
import { renderHook } from '@testing-library/react'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { useStartupScreenState } from './useStartupScreenState'
|
||||
|
||||
describe('useStartupScreenState', () => {
|
||||
it('does not let local vault onboarding replace the HoloLake world entry', () => {
|
||||
const { result } = renderHook(() => useStartupScreenState({
|
||||
aiAgentsPromptVisible: false,
|
||||
isNoteWindow: false,
|
||||
onboardingState: { status: 'welcome' },
|
||||
runtimeMissingVaultPath: '/blocked/config/path',
|
||||
selectedVaultPath: null,
|
||||
settingsLoaded: true,
|
||||
showMcpSetupDialog: false,
|
||||
telemetryConsent: null,
|
||||
vaultIsLoading: false,
|
||||
vaultSwitcher: {
|
||||
allVaults: [],
|
||||
loaded: true,
|
||||
vaultPath: '',
|
||||
},
|
||||
worldEntryVisible: true,
|
||||
}))
|
||||
|
||||
expect(result.current.shouldShowStartupScreen).toBe(false)
|
||||
})
|
||||
})
|
||||
|
|
@ -22,6 +22,7 @@ interface UseStartupScreenStateArgs {
|
|||
telemetryConsent: boolean | null
|
||||
vaultIsLoading: boolean
|
||||
vaultSwitcher: StartupVaultSwitcherState
|
||||
worldEntryVisible?: boolean
|
||||
}
|
||||
|
||||
interface StartupScreenState {
|
||||
|
|
@ -122,6 +123,7 @@ export function useStartupScreenState({
|
|||
telemetryConsent,
|
||||
vaultIsLoading,
|
||||
vaultSwitcher,
|
||||
worldEntryVisible = false,
|
||||
}: UseStartupScreenStateArgs): StartupScreenState {
|
||||
const shouldResumeFreshStartOnboarding = useMemo(
|
||||
() => shouldResumeFreshStart(onboardingState, selectedVaultPath, vaultSwitcher),
|
||||
|
|
@ -129,7 +131,7 @@ export function useStartupScreenState({
|
|||
)
|
||||
|
||||
const isStartupLoading = !isNoteWindow && onboardingState.status === 'loading'
|
||||
const shouldShowStartupScreen = shouldShowStartupScreenForState({
|
||||
const shouldShowStartupScreen = !worldEntryVisible && shouldShowStartupScreenForState({
|
||||
aiAgentsPromptVisible,
|
||||
isNoteWindow,
|
||||
isStartupLoading,
|
||||
|
|
|
|||
Loading…
Reference in a new issue