refactor: trim state persistence runtime seams

This commit is contained in:
Peter Steinberger
2026-03-28 06:07:22 +00:00
parent 7206ddea6f
commit 1db1c75a98
3 changed files with 6 additions and 15 deletions

View File

@@ -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");
}

View File

@@ -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[] {

View File

@@ -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: {