Backup before continuing from Codex 5.2 session - User storage, compaction suggestions, streaming improvements
This commit is contained in:
@@ -3,6 +3,7 @@ import os from "os"
|
||||
import path from "path"
|
||||
import { fileURLToPath } from "url"
|
||||
import { createLogger } from "./logger"
|
||||
import { getOpencodeWorkspacesRoot, getUserDataRoot } from "./user-data"
|
||||
|
||||
const log = createLogger({ component: "opencode-config" })
|
||||
const __filename = fileURLToPath(import.meta.url)
|
||||
@@ -12,7 +13,8 @@ const prodTemplateDir = path.resolve(__dirname, "opencode-config")
|
||||
|
||||
const isDevBuild = Boolean(process.env.CODENOMAD_DEV ?? process.env.CLI_UI_DEV_SERVER) || existsSync(devTemplateDir)
|
||||
const templateDir = isDevBuild ? devTemplateDir : prodTemplateDir
|
||||
const userConfigDir = path.join(os.homedir(), ".config", "codenomad", "opencode-config")
|
||||
const userConfigDir = path.join(getUserDataRoot(), "opencode-config")
|
||||
const workspaceConfigRoot = getOpencodeWorkspacesRoot()
|
||||
|
||||
export function getOpencodeConfigDir(): string {
|
||||
if (!existsSync(templateDir)) {
|
||||
@@ -28,6 +30,28 @@ export function getOpencodeConfigDir(): string {
|
||||
return userConfigDir
|
||||
}
|
||||
|
||||
export function ensureWorkspaceOpencodeConfig(workspaceId: string): string {
|
||||
if (!workspaceId) {
|
||||
return getOpencodeConfigDir()
|
||||
}
|
||||
if (!existsSync(templateDir)) {
|
||||
throw new Error(`CodeNomad Opencode config template missing at ${templateDir}`)
|
||||
}
|
||||
|
||||
const targetDir = path.join(workspaceConfigRoot, workspaceId)
|
||||
if (existsSync(targetDir)) {
|
||||
return targetDir
|
||||
}
|
||||
|
||||
mkdirSync(path.dirname(targetDir), { recursive: true })
|
||||
cpSync(templateDir, targetDir, { recursive: true })
|
||||
return targetDir
|
||||
}
|
||||
|
||||
export function getWorkspaceOpencodeConfigDir(workspaceId: string): string {
|
||||
return path.join(workspaceConfigRoot, workspaceId)
|
||||
}
|
||||
|
||||
function refreshUserConfig() {
|
||||
log.debug({ templateDir, userConfigDir }, "Syncing Opencode config template")
|
||||
rmSync(userConfigDir, { recursive: true, force: true })
|
||||
|
||||
Reference in New Issue
Block a user