Sign In

pendpost

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pendpost - npm Package Compare versions

Comparing version
1.1.0
to
1.1.1
app/dist/assets/index-CLbOnpJ6.js

Sorry, the diff of this file is too big to display

+1
-1

@@ -32,3 +32,3 @@ <!doctype html>

</style>
<script type="module" crossorigin src="/assets/index-C2vJwVT6.js"></script>
<script type="module" crossorigin src="/assets/index-CLbOnpJ6.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-C3SH6MsN.css">

@@ -35,0 +35,0 @@ </head>

@@ -201,6 +201,7 @@ // cloud-client.mjs - the OPTIONAL, gated client for the proprietary pendpost-cloud

try { consolidateCloudKey(); } catch { /* consolidation is best-effort */ }
// connectWorkspace already turns the active client's brand always-on (writeCloudConfig
// with enabled:true). Then reconcile EVERY brand's flag to the freshly-connected
// workspace so its billing + worker fence match local intent immediately (no manual
// per-brand toggle). Best-effort: a flag-sync failure must not undo a successful connect.
// CONNECT LINKS ONLY: connectWorkspace links the workspace WITHOUT enabling any brand
// (no auto-bill). Then reconcile EVERY brand's flag to the freshly-connected workspace -
// all OFF on a fresh connect, which also heals any stale always-on row left in the cloud
// so billing matches local intent. Enabling a brand is a separate, explicit, billable
// toggle. Best-effort: a flag-sync failure must not undo a successful connect.
await connectWorkspace({ baseUrl, workspaceId: claimed.workspaceId });

@@ -207,0 +208,0 @@ let brands = null;

@@ -174,4 +174,4 @@ // cloud-config.mjs - the OPTIONAL managed-cloud configuration + the secret-tier

// shape, now backed by the global connection + the ACTIVE client's brand: `enabled`
// is the active client's always-on. So the existing connect/enable transport keeps
// working unchanged while the new multi-client view uses the brand functions above.
// (read) is the active client's always-on. So the existing connect transport keeps
// working while the new multi-client view uses the brand functions above.

@@ -184,5 +184,7 @@ export function readCloudConfig() {

// CONNECT LINKS ONLY: writing the connection NEVER auto-enables a brand's always-on
// (that is an explicit, billable toggle via setCloudEnabled / setBrandAlwaysOn). So
// `next.enabled` is intentionally ignored here - a fresh connect leaves every brand OFF.
export function writeCloudConfig(next) {
setConnection({ baseUrl: next.baseUrl, workspaceId: next.workspaceId });
setBrandAlwaysOn(currentClientId(), Boolean(next.enabled));
}

@@ -189,0 +191,0 @@

@@ -130,2 +130,20 @@ // multi-client.mjs - the per-client registry + the idempotent, zero-loss boot

// Move a legacy item into the default client. A same-filesystem rename is atomic;
// across a mount boundary it throws EXDEV - notably a Docker overlay, where the
// legacy `data/*` baked into the image (read-only lower layer) is moved to a path
// in the writable upper layer (e.g. `npx pendpost --stdio` inside a container, the
// path Glama and other registries introspect with). Fall back to a recursive copy +
// delete, which is equivalent for this one-time migration and preserves the
// crash-safe re-entry property: `src` survives until the copy lands, so a crash
// mid-move re-enters and re-copies a still-present source.
function movePath(src, dest) {
try {
fs.renameSync(src, dest);
} catch (e) {
if (e.code !== 'EXDEV') throw e;
fs.cpSync(src, dest, { recursive: true });
fs.rmSync(src, { recursive: true, force: true });
}
}
// Idempotent, zero-loss, crash-safe boot migration.

@@ -160,3 +178,3 @@ //

fs.mkdirSync(path.dirname(dest), { recursive: true });
fs.renameSync(it.src, dest);
movePath(it.src, dest);
moved += 1;

@@ -163,0 +181,0 @@ }

@@ -20,3 +20,3 @@ // util.mjs - shared helpers for the pendpost server (zero-dep).

export const DATA_ROOT = path.join(WORKSPACE_ROOT, 'data');
export const VERSION = '1.1.0';
export const VERSION = '1.1.1';

@@ -23,0 +23,0 @@ // The .env now lives in the ACTIVE client subtree, not at WORKSPACE_ROOT.

{
"name": "pendpost",
"version": "1.1.0",
"version": "1.1.1",
"description": "pendpost is a free, open-source (MIT), local-first social media planner where an AI agent drafts and schedules posts across Instagram, Facebook, LinkedIn, YouTube, and X behind a human approval gate you control.",

@@ -5,0 +5,0 @@ "type": "module",

Sorry, the diff of this file is too big to display