@sellable/install 0.1.235 → 0.1.237

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.235",
3
+ "version": "0.1.237",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {
@@ -139,6 +139,10 @@ campaigns are not reusable evergreen targets. Only pass an archived
139
139
  campaign/table as an explicit binding when the user supplied those exact ids and
140
140
  explicitly allowed dashboard visibility repair; otherwise ignore archived
141
141
  matches for execution and let the create packet proceed.
142
+ Do not call `get_campaign` on archived waterfall bindings to overrule a create packet.
143
+ Do not re-plan with explicit bindings for archived waterfall slots after an unbound create plan.
144
+ Archived waterfall slot readbacks are diagnostic only; they are not a consistency check that can replace the immutable create packet.
145
+ If an archived waterfall binding makes the agent unwilling to execute the create packet, stop with `blocked: archived_binding_plan_conflict` instead of repairing or reusing the archived campaign/table.
142
146
 
143
147
  Use `selectedSenderIds` only as a legacy shorthand when the same senders should
144
148
  get sender-owned Post Engagers lanes and attach to shared lanes. When the scopes
@@ -260,6 +264,13 @@ CLI builds that expose `-a`/`-s` only at top level. Do not use
260
264
  forms fail on current customer CLI installs. Pipe the lane packet prompt on
261
265
  stdin, require the worker to write `workerDispatch.receiptArtifactHint`, and
262
266
  pass exactly one lane packet per worker.
267
+ After creating receipt directories, dispatch workers immediately; do not perform extended parent reasoning, extra inventory, or prompt rewriting loops.
268
+ Use a compact worker prompt: include lane packet JSON, original selectedActionIds,
269
+ original planRevision, receiptArtifactPath, workspace id, sender ids,
270
+ side-effect caps, and the instruction to load packaged prompts through MCP.
271
+ Do not paste the entire wrapper skill into worker prompts. If the parent cannot
272
+ launch at least one visible/durable worker immediately after directory setup,
273
+ stop with `blocked: worker_dispatch_stalled` before any mutation.
263
274
  `multi_agent_v1.spawn_agent`, raw `spawn_agent`, or any opaque Task/subagent
264
275
  runtime that cannot expose a visible thread id or durable receipt artifact is
265
276
  not accepted as command-level UAT proof and must not be used for mutating
@@ -691,7 +702,24 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
691
702
  </command_backed_workflow>
692
703
 
693
704
  <objective>
694
- 1. **Inventory first**: `get_campaigns` + `list_tables` + `get_campaign_waterfall` in the active workspace. Treat `list_tables` and the managed waterfall as authoritative for older managed slots; `get_campaigns` is a recent campaign page and may miss canonical evergreen lanes. Match existing campaigns/tables/waterfall slots to the plan by name (case-insensitive, ignore suffixes like "(Copy)") and stored slot identity. `list_tables.campaignStatus` and `list_tables.dashboardBucket` are part of the identity check: a matching `ARCHIVED` table/campaign is not a plain `REUSE`. If it is the canonical prod slot and the invocation explicitly allows dashboard visibility repair, repair it to `PAUSED`; otherwise mark it `flagged`/`blocked` and do not create a duplicate. A matching non-archived campaign/table/waterfall slot = REUSE; record it and move on. Never create a second campaign for a slot that already has one in any of those inventories.
705
+ 1. **Inventory first, then obey the setup plan**: `get_campaigns` +
706
+ `list_tables` + `get_campaign_waterfall` in the active workspace. Treat
707
+ `list_tables` and the managed waterfall as authoritative for orientation
708
+ before the command-backed plan; `get_campaigns` is a recent campaign page and
709
+ may miss canonical evergreen lanes. Match existing campaigns/tables/waterfall
710
+ slots to the plan by name (case-insensitive, ignore suffixes like "(Copy)")
711
+ and stored slot identity. `list_tables.campaignStatus` and
712
+ `list_tables.dashboardBucket` are part of the identity check: a matching
713
+ `ARCHIVED` table/campaign is not a plain `REUSE`. If it is the canonical prod
714
+ slot and the invocation explicitly allows dashboard visibility repair, repair
715
+ it to `PAUSED`; otherwise treat it as archived inventory only. After
716
+ `setup_evergreen_campaigns({ mode:"plan" })` returns, that plan is
717
+ authoritative: a lane packet with `intent:"create"` must stay a create packet,
718
+ even when archived waterfall entries or `get_campaign` readbacks prove an old
719
+ CampaignOffer still exists. A matching non-archived campaign/table/waterfall
720
+ slot may be reused only when the command-backed plan returns a reuse packet
721
+ or the user supplied exact current ids. Never create a second campaign for a
722
+ non-archived slot that the plan selected for reuse.
695
723
  2. **Create only the missing slots** through the full `$sellable:create-campaign`
696
724
  workflow path for each lane, using the lane packet as the setup basis:
697
725
  - Post Engagers lanes: that sender's ID only. Shared lanes: all the senders' IDs.