mirror of
https://github.com/stablyai/orca.git
synced 2026-10-09 00:02:39 +00:00
* feat: generate chat names through configured text agents * Project structured chat names across stored tabs and session rows * Name native chats from their first live message * Restore the journal test provider handle import * Fix first-message naming and live Vault title updates * Preserve Unicode characters in bounded chat naming prompts * Read chat naming settings only when a turn needs them * fix(chat): store only generated conversation names * fix(chat): keep ordinary labels across unnamed chat surfaces * fix(chat): preserve naming after fast first turns * Preserve native chat names across command-first sends and Vault lifecycle * Route native chat SQLite contracts through the existing Node test pool * feat(settings): add chat naming controls to Chat page * Preserve chat naming drafts and configure Custom commands through host settings * Scope synthetic command output to its journal thread in naming test * Keep naming test fixtures within their typed project boundaries * Resolve the real Vault hook directly in its integration test * Publish chat naming save refs after render commits * fix: keep Japanese chat naming copy stable during repair * Update test contracts for the naming integration * Keep journal fixture reads on the host clock * Give Chat names a separate settings section
37 lines
1.7 KiB
TypeScript
37 lines
1.7 KiB
TypeScript
import { expect, it } from 'vitest'
|
|
import { access } from 'node:fs/promises'
|
|
import { NODE_RUNTIME_INCLUDE } from './vitest-node-runtime-files.mjs'
|
|
import { runProcessSync } from '../../src/shared/child-process/run-process'
|
|
|
|
it('uses Bun for ordinary suites when the Bun project is selected', () => {
|
|
expect(Boolean(process.versions.bun)).toBe(process.env.ORCA_VITEST_RUNTIME === 'bun')
|
|
})
|
|
|
|
it('preserves Node access() success and missing-file rejection', async () => {
|
|
await expect(access(import.meta.filename)).resolves.toBeUndefined()
|
|
await expect(access(`${import.meta.filename}.missing`)).rejects.toMatchObject({ code: 'ENOENT' })
|
|
})
|
|
|
|
it('launches application child fixtures under Node even when Vitest runs under Bun', () => {
|
|
const result = runProcessSync({
|
|
program: process.execPath,
|
|
args: ['-p', 'JSON.stringify({node:process.versions.node,bun:process.versions.bun})']
|
|
})
|
|
expect(result.code).toBe(0)
|
|
const identity: unknown = JSON.parse(result.stdout)
|
|
expect(identity).toEqual({ node: expect.stringMatching(/^\d+\.\d+\.\d+$/) })
|
|
})
|
|
|
|
it('routes native-chat journal and record-store SQLite contracts through Node', () => {
|
|
expect(NODE_RUNTIME_INCLUDE).toEqual(
|
|
expect.arrayContaining([
|
|
'src/main/native-chat/agent-session-wire/structured-agent-session-status-feed.test.ts',
|
|
'src/main/native-chat/agent-session-wire/structured-agent-session-status-first-input-identity.test.ts',
|
|
'src/main/native-chat/structured-chat-naming-command-first.test.ts',
|
|
'src/main/native-chat/structured-chat-naming-status-hook.test.ts',
|
|
'src/main/runtime/agent-session-conversation-name-store.test.ts',
|
|
'src/main/runtime/structured-session-mail-redrive-wiring.test.ts'
|
|
])
|
|
)
|
|
})
|