Skip to content

consolidation-task: merge thread on #65 into single spec #180

Description

@superdav42

Consolidation target: #65

Parent issue: #65 in Ultimate-Multisite/docs
Parent title: Screenshots: Zapier integration walkthrough (14 placeholders)
Parent labels: documentation,help wanted,origin:worker,origin:interactive,status:available,consolidation-in-progress

You do NOT need to read #65. Everything required is inlined below.
Reading the parent wastes the token budget and is explicitly disallowed for this task.

What to do

  1. Read the parent body and substantive comments inlined below. Identify:

    • The original problem statement
    • Scope modifications added by commenters (additions, corrections, clarifications)
    • Resolved questions, rejected ideas, or superseded decisions
    • The final agreed-upon approach
  2. Compose a single coherent issue body in the aidevops brief format (see templates/brief-template.md):

    • ## What — the deliverable
    • ## Why — the problem and rationale
    • ## How — approach with explicit file paths and line references
    • ## Acceptance Criteria — testable checkboxes
    • ## Context & Decisions — which commenter contributed which insight (attribution matters)
    • ## Contributors — a cc line @-mentioning every author from the list below

    Start the merged body with: _Supersedes #65 — this issue is the consolidated spec._

  3. File the new consolidated issue:

gh issue create --repo "Ultimate-Multisite/docs" \
  --title "consolidated: <concise description derived from the merged spec>" \
  --label "consolidated,origin:worker,auto-dispatch,<copy relevant labels from parent, excluding needs-consolidation, consolidation-task, and origin:interactive>" \
  --body "<merged body from step 2>"

Note (GH#18670): origin:worker is mandatory on this label list — consolidated issues are pulse-generated artifacts, not interactive maintainer work. Without it, the issue is born origin:interactive (raw gh issue create has no origin auto-detection), which triggers the GH#18352 dispatch-dedup block and drains the queue.

Dispatch handoff: auto-dispatch is also mandatory. The consolidated successor marker and this explicit handoff must both be present before _has_consolidated_label permits implementation dispatch.

Capture the new issue number as $NEW_NUM.

  1. Close the parent Screenshots: Zapier integration walkthrough (14 placeholders) #65:
gh issue comment 65 --repo "Ultimate-Multisite/docs" \
  --body "Superseded by #$NEW_NUM. The merged spec is inlined on the new issue — continue discussion there."
gh issue edit 65 --repo "Ultimate-Multisite/docs" \
  --add-label "consolidated" --remove-label "needs-consolidation"
gh issue close 65 --repo "Ultimate-Multisite/docs" --reason "not planned"
  1. Close this consolidation-task issue with a summary comment:
gh issue comment $THIS_ISSUE --repo "Ultimate-Multisite/docs" \
  --body "Consolidation complete. Parent: #65 → New: #$NEW_NUM. Contributors @-mentioned: @superdav42."
gh issue close $THIS_ISSUE --repo "Ultimate-Multisite/docs" --reason "completed"

Constraints

  • Do NOT read Screenshots: Zapier integration walkthrough (14 placeholders) #65 — it is inlined below. Reading it wastes the token budget.
  • Preserve all substantive content. Merging is not summarising. If a comment adds a constraint, that constraint must appear in the merged body.
  • Preserve author attribution for specific contributions: "per @user1: …".
  • No PR is required. This is an operational task. The completion signal is the new issue number + parent closure + self-close.
  • Contributors to @-mention on the new issue: @superdav42

Parent body (verbatim)

For #64.

Problem

docs/user-guide/integrations/zapier.md references 14 distinct concepts but every single image link points to /img/admin/webhooks-list.png — the Ultimate Multisite Webhooks page in WP admin. Most of the steps actually describe screens inside Zapier’s own UI (zapier.com), which obviously isn’t hosted on wordpress.local.

docs/user-guide/integrations/zapier.md
  L24 ![Zapier dashboard with Create Zap button](/img/admin/webhooks-list.png)
  L30 ![Searching for WP Ultimo in Zapier app list](/img/admin/webhooks-list.png)
  L34 ![Selecting New Ultimate Multisite Event trigger](/img/admin/webhooks-list.png)
  L38 ![Zapier Sign in prompt for API credentials](/img/admin/webhooks-list.png)
  L44 ![API Settings with Enable API option in Ultimate Multisite](/img/admin/webhooks-list.png)
  L50 ![Zapier integration screen with API Key, Secret, and URL fields](/img/admin/webhooks-list.png)
  L58 ![Selecting payment_received event in Zapier trigger](/img/admin/webhooks-list.png)
  L62 ![Zapier test step for the trigger](/img/admin/webhooks-list.png)
  L66 ![Zapier trigger test completed successfully with payload](/img/admin/webhooks-list.png)
  L76 ![Creating an action with Create Items on Ultimate Multisite](/img/admin/webhooks-list.png)
  L80 ![Selecting authentication for the Zapier action](/img/admin/webhooks-list.png)
  L86 ![Choosing Item type for the Zapier action](/img/admin/webhooks-list.png)
  L92 ![Customer item fields in Zapier action setup](/img/admin/webhooks-list.png)
  L96 ![Zapier action test showing filled and unfilled fields](/img/admin/webhooks-list.png)

Captures required

Most shots come from https://zapier.com (not the WP test site), so this issue needs a Zapier account in addition to wordpress.local:8080.

Capture each shot at 1280×800, crop to the relevant card/panel, and save as a separate PNG under static/img/integrations/zapier/. Suggested filenames:

# Doc line Where to capture New filename
1 L24 Zapier dashboard, sidebar with + Create Zap highlighted static/img/integrations/zapier/dashboard-create-zap.png
2 L30 Zap creation page, app search box with "wp ultimo" typed static/img/integrations/zapier/app-search.png
3 L34 Trigger event dropdown showing New Ultimate Multisite Event static/img/integrations/zapier/trigger-event.png
4 L38 Zapier "Sign in" modal asking for API credentials static/img/integrations/zapier/signin-modal.png
5 L44 wordpress.local:8080/wp-admin/network/admin.php?page=wp-ultimo-settings&tab=api — API Settings panel with Enable API toggle on static/img/integrations/zapier/um-enable-api.png
6 L50 Zapier API credentials screen with API Key, API Secret, URL fields filled in static/img/integrations/zapier/credentials-form.png
7 L58 Zapier event picker showing payment_received selected static/img/integrations/zapier/event-picker.png
8 L62 Zapier "Test trigger" step before the test runs static/img/integrations/zapier/test-trigger.png
9 L66 Zapier trigger test result showing the JSON payload static/img/integrations/zapier/test-result.png
10 L76 Zapier action setup: Create Items on Ultimate Multisite highlighted static/img/integrations/zapier/action-create-items.png
11 L80 Zapier auth picker selecting the previously created connection static/img/integrations/zapier/action-auth.png
12 L86 Zapier Item dropdown listing Customers / Payments / Sites / etc. static/img/integrations/zapier/action-item-type.png
13 L92 Zapier action with Customer fields expanded static/img/integrations/zapier/action-customer-fields.png
14 L96 Zapier action test summary with filled + unfilled fields static/img/integrations/zapier/action-test-summary.png

Tip: capturing a real Zap end-to-end is more authentic than mocking individual screens, so consider doing this in one Zapier session.

Doc edit

After captures land, update every line in docs/user-guide/integrations/zapier.md so each ![...](...) points to its corresponding file above.

Once this is done, the old webhooks-list.png should still exist (it’s used legitimately by docs/user-guide/integrations/webhooks.md) — do not delete it.

Done when

  • All 14 new PNGs added under static/img/integrations/zapier/.
  • docs/user-guide/integrations/zapier.md updated, every alt text matches the actual shot.
  • npm run build succeeds, page renders correctly, no broken image links in the browser console.
  • PR opened with Resolves for this issue and Ref #64.

aidevops.sh v3.15.64 plugin for OpenCode v1.15.5 with claude-sonnet-4-6 spent 4d 9h and 383 tokens on this as a headless worker.

Substantive comments (verbatim, in chronological order)

Comment 1 — @superdav42 at 2026-08-13T22:37:27Z

no_work Circuit Breaker Fired (t2769)

Trigger: 3 consecutive worker failure(s) classified as no_work (threshold: 3).
Action: Applied status:blocked. Further automated dispatch is suspended.
Last failure reason: worker_noop_zero_output

Why this class of failure does not cascade tiers: no_work usually means the worker crashed during runtime setup before reading any target files (FD exhaustion, plugin init failure, auth refresh race) or stale-recovery falsely concluded no progress. A more expensive model cannot fix an infrastructure problem it never reached.

Possible causes:

  • Brief not yet merged or branch missing at dispatch time
  • Auth token stale or missing
  • Plugin init crash (FD exhaustion, env pollution)
  • Branch naming race at dispatch time
  • Stale-recovery false positive on long issue threads (check dispatch-dedup-stale comment pagination and recent-activity aggregation)

The linked root-cause meta-issue restores status:available after its fix merges. Manual recovery should requeue only after preserving any worker output.

Per-issue no_work circuit breaker (t2769). The cost-circuit-breaker:no_work_loop marker remains backward-compatible evidence for legacy NMR reconciliation.


aidevops.sh v3.32.258 automated scan.


Self-contained dispatch packet generated by _dispatch_issue_consolidation() in pulse-triage.sh (t1982). Everything above is sufficient — do not read #65.

Metadata

Metadata

Assignees

No one assigned

    Labels

    auto-dispatchconsolidation-taskOperational task: merge parent issue body + comments into a consolidated child issueorigin:workerCreated by headless/pulse worker sessionstatus:blockedWaiting on blocker tasktier:standard

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions