@m13v/s4l 1.7.5-rc.46 → 1.7.5-rc.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mcp/dist/version.json +2 -2
- package/mcp/manifest.json +1 -1
- package/mcp/package.json +1 -1
- package/package.json +1 -1
- package/scripts/post_reddit.py +1 -1
- package/scripts/twitter_post_plan.py +10 -2
package/mcp/dist/version.json
CHANGED
package/mcp/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"dxt_version": "0.1",
|
|
3
3
|
"name": "social-autoposter",
|
|
4
4
|
"display_name": "S4L",
|
|
5
|
-
"version": "1.7.5-rc.
|
|
5
|
+
"version": "1.7.5-rc.48",
|
|
6
6
|
"description": "Draft, review, approve, and autopilot X/Twitter posts.",
|
|
7
7
|
"long_description": "## **⚠️ The disclaimer above is generic Claude boilerplate.** Anthropic shows the same warning on every plugin regardless of what it does; any plugin has the same level of access as any app you download from the internet.\n\nS4L is an open source product developed by Mediar.ai Incorporated, a VC-backed San Francisco-based startup.\n\nTo get started:\n\n1\\. Copy this prompt: **Set me up on S4L plugin end to end**\n\n2\\. Quit with CMD+Q, reopen Claude, paste into a new chat.\n\nWhat happens next:\n\n* About every 5 minutes S4L scans X for posts that match your topics and drafts replies in your voice.\n* Drafts show up as review cards, usually the first within a few minutes. Nothing is posted automatically; you approve each one.\n* Posting autopilot stays off until you explicitly turn it on.",
|
|
8
8
|
"author": {
|
package/mcp/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@m13v/s4l-mcp",
|
|
3
|
-
"version": "1.7.5-rc.
|
|
3
|
+
"version": "1.7.5-rc.48",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Desktop MCP client for social-autoposter (X/Twitter rail): manual draft/review/approve loop, autopilot control, and stats. Thin wrapper over the existing pipeline scripts.",
|
|
6
6
|
"license": "MIT",
|
package/package.json
CHANGED
package/scripts/post_reddit.py
CHANGED
|
@@ -2504,7 +2504,7 @@ def _draft_iteration(plan, config, reddit_username):
|
|
|
2504
2504
|
|
|
2505
2505
|
print(f"[post_reddit] Starting draft session for {len(candidates)} thread(s)...")
|
|
2506
2506
|
start = time.time()
|
|
2507
|
-
ok, output, usage = run_claude_structured(prompt, timeout=
|
|
2507
|
+
ok, output, usage = run_claude_structured(prompt, timeout=1800)
|
|
2508
2508
|
elapsed = time.time() - start
|
|
2509
2509
|
print(f"[post_reddit] Draft finished in {elapsed:.0f}s (${usage['cost_usd']:.4f})")
|
|
2510
2510
|
|
|
@@ -1209,9 +1209,17 @@ def main() -> int:
|
|
|
1209
1209
|
try:
|
|
1210
1210
|
import twitter_browser as _tb # S4L_LOCK_ROLE=post already set above
|
|
1211
1211
|
_tb._acquire_browser_lock() # preempts a live scan; sys.exit(1) if contended
|
|
1212
|
-
|
|
1212
|
+
# _MUTEX.session_id, NOT the pre-2026-07-14 module global
|
|
1213
|
+
# _LOCK_SESSION_ID: the mutex refactor (db02eed1) removed that
|
|
1214
|
+
# symbol, and the stale reference made this line raise
|
|
1215
|
+
# AttributeError on EVERY batch. The parent then held the lock it
|
|
1216
|
+
# had just acquired while its own children (unable to inherit,
|
|
1217
|
+
# forbidden to preempt a post-role holder) each burned the full
|
|
1218
|
+
# 45s wait and failed, until the 180s POST_LOCK_EXPIRY freed the
|
|
1219
|
+
# tail: operator-box posting fell ~95% for two days (S4L-62).
|
|
1220
|
+
os.environ["S4L_LOCK_OWNER"] = _tb._MUTEX.session_id
|
|
1213
1221
|
_batch_lock_held = True
|
|
1214
|
-
print(f"[post] batch lock held by {_tb.
|
|
1222
|
+
print(f"[post] batch lock held by {_tb._MUTEX.session_id} (role=post); "
|
|
1215
1223
|
f"{_total} candidate(s) inherit it", flush=True)
|
|
1216
1224
|
except SystemExit:
|
|
1217
1225
|
# _acquire_browser_lock exits when a LIVE non-preemptable peer (another
|