social-autoposter 1.6.96 → 1.6.97

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.
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "1.6.96",
3
- "installedAt": "2026-06-24T01:22:21.422Z"
2
+ "version": "1.6.97",
3
+ "installedAt": "2026-06-24T01:43:33.526Z"
4
4
  }
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.6.96",
5
+ "version": "1.6.97",
6
6
  "description": "Draft, review, approve, and autopilot X/Twitter posts. Thin desktop client over the S4L pipeline.",
7
7
  "long_description": "A guided assistant that drafts, reviews, and autopilots X/Twitter posts.\nTo get started:\n1. Click **Configure** and set every tool permission to **Always Allow**.\n2. Copy this prompt: **Set me up on S4L end to end**.\n3. Quit fully with CMD+Q, restart Claude, and paste the prompt into a new chat.",
8
8
  "author": {
package/mcp/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m13v/social-autoposter-mcp",
3
- "version": "1.6.96",
3
+ "version": "1.6.97",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "social-autoposter",
3
- "version": "1.6.96",
3
+ "version": "1.6.97",
4
4
  "description": "Automated social posting pipeline for Reddit, X/Twitter, LinkedIn, and Moltbook. Install as a Claude Code agent skill.",
5
5
  "bin": {
6
6
  "social-autoposter": "bin/cli.js"
@@ -1055,9 +1055,13 @@ def main() -> int:
1055
1055
 
1056
1056
  try:
1057
1057
  for _idx, c in enumerate(candidates, start=1):
1058
- # Live per-post status for the S4L menu bar: "posting 3/10" while this
1059
- # one is in flight, then "posted 3/10 ✓" once it lands. Cosmetic only.
1060
- _write_activity(f"posting {_idx}/{_total}")
1058
+ # Live per-post status for the S4L menu bar. LEAD with `posted` (the
1059
+ # REAL count of replies that actually landed), not `_idx` (the loop
1060
+ # position). _idx races through already-posted / deleted cards as instant
1061
+ # dedup-skips, so a bare "posting 88/139" looked like 88 were sent when
1062
+ # 0 were — misleading on every restart. "{posted} sent · {_idx}/{_total}"
1063
+ # keeps the honest number in front; the position is secondary context.
1064
+ _write_activity(f"posting {posted} sent · {_idx}/{_total}")
1061
1065
  # Re-stamp the batch hold at each candidate boundary so the
1062
1066
  # POST_LOCK_EXPIRY failsafe measures silence from the LAST real
1063
1067
  # progress, not from batch start. Insurance on top of the child's own
@@ -1082,7 +1086,8 @@ def main() -> int:
1082
1086
  posted += 1
1083
1087
  # Flash the confirmation with a short dwell so the menu bar shows
1084
1088
  # it before the next iteration's "posting" overwrites the label.
1085
- _write_activity(f"posted {_idx}/{_total} ✓")
1089
+ # `posted` was just incremented, so it reflects the reply that landed.
1090
+ _write_activity(f"posting {posted} sent ✓ · {_idx}/{_total}")
1086
1091
  time.sleep(0.6)
1087
1092
  elif outcome == "skipped":
1088
1093
  skipped += 1