mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-29 10:50:58 +00:00
refactor: trim state persistence runtime seams
This commit is contained in:
@@ -2,8 +2,7 @@ import os from "node:os";
|
||||
import path from "node:path";
|
||||
import { normalizeAccountId as normalizeSharedAccountId } from "openclaw/plugin-sdk/account-id";
|
||||
import { normalizeProviderId } from "openclaw/plugin-sdk/agent-runtime";
|
||||
import { withFileLock } from "openclaw/plugin-sdk/infra-runtime";
|
||||
import { resolveRequiredHomeDir } from "openclaw/plugin-sdk/infra-runtime";
|
||||
import { withFileLock } from "openclaw/plugin-sdk/file-lock";
|
||||
import { readJsonFileWithFallback, writeJsonFileAtomically } from "openclaw/plugin-sdk/json-store";
|
||||
import { resolveStateDir } from "openclaw/plugin-sdk/state-paths";
|
||||
|
||||
@@ -37,7 +36,7 @@ export type DiscordModelPickerPreferenceScope = {
|
||||
};
|
||||
|
||||
function resolvePreferencesStorePath(env: NodeJS.ProcessEnv = process.env): string {
|
||||
const stateDir = resolveStateDir(env, () => resolveRequiredHomeDir(env, os.homedir));
|
||||
const stateDir = resolveStateDir(env, os.homedir);
|
||||
return path.join(stateDir, "discord", "model-picker-preferences.json");
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
type SessionBindingAdapter,
|
||||
type SessionBindingRecord,
|
||||
} from "openclaw/plugin-sdk/conversation-runtime";
|
||||
import { writeJsonAtomic } from "openclaw/plugin-sdk/infra-runtime";
|
||||
import { writeJsonFileAtomically } from "openclaw/plugin-sdk/json-store";
|
||||
import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
|
||||
import { logVerbose } from "openclaw/plugin-sdk/runtime-env";
|
||||
import { resolveStateDir } from "openclaw/plugin-sdk/state-paths";
|
||||
@@ -318,11 +318,7 @@ async function persistBindingsToDisk(params: {
|
||||
(entry) => entry.accountId === params.accountId,
|
||||
),
|
||||
};
|
||||
await writeJsonAtomic(resolveBindingsPath(params.accountId), payload, {
|
||||
mode: 0o600,
|
||||
trailingNewline: true,
|
||||
ensureDirMode: 0o700,
|
||||
});
|
||||
await writeJsonFileAtomically(resolveBindingsPath(params.accountId), payload);
|
||||
}
|
||||
|
||||
function listBindingsForAccount(accountId: string): TelegramThreadBindingRecord[] {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import fs from "node:fs/promises";
|
||||
import os from "node:os";
|
||||
import path from "node:path";
|
||||
import { writeJsonAtomic } from "openclaw/plugin-sdk/infra-runtime";
|
||||
import { writeJsonFileAtomically } from "openclaw/plugin-sdk/json-store";
|
||||
import { resolveStateDir } from "openclaw/plugin-sdk/state-paths";
|
||||
|
||||
const STORE_VERSION = 2;
|
||||
@@ -116,11 +116,7 @@ export async function writeTelegramUpdateOffset(params: {
|
||||
lastUpdateId: params.updateId,
|
||||
botId: extractBotIdFromToken(params.botToken),
|
||||
};
|
||||
await writeJsonAtomic(filePath, payload, {
|
||||
mode: 0o600,
|
||||
trailingNewline: true,
|
||||
ensureDirMode: 0o700,
|
||||
});
|
||||
await writeJsonFileAtomically(filePath, payload);
|
||||
}
|
||||
|
||||
export async function deleteTelegramUpdateOffset(params: {
|
||||
|
||||
Reference in New Issue
Block a user