@sellable/install 0.1.235 → 0.1.236

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.236",
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
@@ -691,7 +695,24 @@ Parent-thread handwritten copy or setting `currentStep` is not proof.
691
695
  </command_backed_workflow>
692
696
 
693
697
  <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.
698
+ 1. **Inventory first, then obey the setup plan**: `get_campaigns` +
699
+ `list_tables` + `get_campaign_waterfall` in the active workspace. Treat
700
+ `list_tables` and the managed waterfall as authoritative for orientation
701
+ before the command-backed plan; `get_campaigns` is a recent campaign page and
702
+ may miss canonical evergreen lanes. Match existing campaigns/tables/waterfall
703
+ slots to the plan by name (case-insensitive, ignore suffixes like "(Copy)")
704
+ and stored slot identity. `list_tables.campaignStatus` and
705
+ `list_tables.dashboardBucket` are part of the identity check: a matching
706
+ `ARCHIVED` table/campaign is not a plain `REUSE`. If it is the canonical prod
707
+ slot and the invocation explicitly allows dashboard visibility repair, repair
708
+ it to `PAUSED`; otherwise treat it as archived inventory only. After
709
+ `setup_evergreen_campaigns({ mode:"plan" })` returns, that plan is
710
+ authoritative: a lane packet with `intent:"create"` must stay a create packet,
711
+ even when archived waterfall entries or `get_campaign` readbacks prove an old
712
+ CampaignOffer still exists. A matching non-archived campaign/table/waterfall
713
+ slot may be reused only when the command-backed plan returns a reuse packet
714
+ or the user supplied exact current ids. Never create a second campaign for a
715
+ non-archived slot that the plan selected for reuse.
695
716
  2. **Create only the missing slots** through the full `$sellable:create-campaign`
696
717
  workflow path for each lane, using the lane packet as the setup basis:
697
718
  - Post Engagers lanes: that sender's ID only. Shared lanes: all the senders' IDs.