@sellable/install 0.1.252 → 0.1.253

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.252",
3
+ "version": "0.1.253",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {
@@ -310,9 +310,10 @@ acceptable only when it writes a fresh durable per-lane receipt artifact as it
310
310
  works.
311
311
  When visible Codex app thread tools are unavailable but local Codex CLI is
312
312
  available, the accepted durable streaming-worker command shape is:
313
- `codex -a never -s danger-full-access exec -m <worker-model> -C <repo> -o <worker-final-file> -`.
313
+ `codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> -`.
314
314
  The approval and sandbox flags must come before the `exec` subcommand for Codex
315
- CLI builds that expose `-a`/`-s` only at top level. Do not use
315
+ CLI builds that expose `-a`/`-s` only at top level. `--skip-git-repo-check` belongs after `exec` because current customer and VPS Codex CLI builds expose it
316
+ as an `exec` subcommand flag, not a top-level flag. Do not use
316
317
  `codex exec --ask-for-approval never ...` or `codex exec -a never ...`; those
317
318
  forms fail on current customer CLI installs. Pipe the lane packet prompt on
318
319
  stdin, require the worker to write `workerDispatch.receiptArtifactHint`, and
@@ -320,7 +321,7 @@ pass exactly one lane packet per worker.
320
321
  When launching durable Codex CLI workers from an automation parent, pass an
321
322
  explicit supported worker model instead of relying on the Codex CLI default
322
323
  model. Use the parent runtime model when known, for example:
323
- `codex -a never -s danger-full-access exec -m <worker-model> -C <repo> -o <worker-final-file> -`.
324
+ `codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> -`.
324
325
  Do not rely on the Codex CLI default model; some customer and VPS installs
325
326
  default to unavailable model aliases. If the parent cannot identify a supported
326
327
  worker model and a test `codex exec -m <worker-model>` launch is rejected, stop
@@ -336,13 +337,22 @@ Do not embed `<<'WORKER_PROMPT'` heredocs inside a single quoted or double
336
337
  quoted `/bin/bash -lc '...'` command string; nested quoting is brittle and can
337
338
  truncate the first worker before mutation. For multi-worker launchers, write one
338
339
  plain prompt file per lane under the current run directory, then start each
339
- worker with `codex -a never -s danger-full-access exec -m "$WORKER_MODEL" -C "$REPO" -o
340
+ worker with `codex -a never -s danger-full-access exec --skip-git-repo-check -m "$WORKER_MODEL" -C "$REPO" -o
340
341
  "$worker_final_file" - < "$worker_prompt_file"`. Keep launcher shell variables
341
342
  double-quoted and keep the prompt heredoc only in a standalone script/prompt-file
342
343
  write step, not inside an already quoted shell argument. If the first launcher
343
344
  attempt exits with a shell parse error or before starting the first worker,
344
345
  stop with `blocked: worker_launcher_quoting_failed` and do not retry by
345
346
  loosening sender scope or mutating in the parent.
347
+ Do not use `nohup`, detached background workers, or any launcher that returns
348
+ before the workers finish and before receipts/final files exist. A durable
349
+ worker must run in a foreground command session, visible Codex thread, or a shell
350
+ that stays alive until every worker has finished. If using background jobs inside
351
+ one shell, the same shell must stay alive, wait for every worker PID, poll only
352
+ the expected receipt paths, and record a per-worker exit code plus final-file
353
+ paths and stderr/log paths before returning. If workers exit with empty logs and
354
+ no final files because the subprocess detached or was reaped, stop with
355
+ `blocked: worker_subprocess_detached_without_output` before parent verify.
346
356
  Short form: run the wrapper with `/bin/bash -lc`.
347
357
  Short form: Do not rely on zsh-specific behavior.
348
358
  Short form: Do not use `status` as a shell variable; use `exit_code` or `rc`.
@@ -350,6 +360,7 @@ Short form: Receipt polling uses `find <receipt-dir> -maxdepth 1 -name 'evg_*.js
350
360
  Short form: Do not use naked `*.json` globs under zsh; no `no matches found` diagnostics.
351
361
  Short form: Do not embed `<<'WORKER_PROMPT'` heredocs inside a quoted `/bin/bash -lc` command string.
352
362
  Short form: Multi-worker launchers write prompt files and run `codex ... - < "$worker_prompt_file"`.
363
+ Short form: Do not use `nohup`; keep the worker process attached until receipt or blocker.
353
364
  After the auto-executable plan returns, take at most one short planning pass to
354
365
  choose the visible/durable worker runtime and build the worker launch packet.
355
366
  Do not keep reasoning, re-reading prompts, or restating the workflow instead of
@@ -394,7 +405,7 @@ launchers, write the same prompt body to `<worker-prompt-file>` and launch the
394
405
  worker with stdin redirected from that file:
395
406
 
396
407
  ```
397
- codex -a never -s danger-full-access exec -m <worker-model> -C <repo> -o <worker-final-file> - <<'WORKER_PROMPT'
408
+ codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> - <<'WORKER_PROMPT'
398
409
  Use $sellable:create-evergreen-campaigns as the governing skill for this one lane worker.
399
410
 
400
411
  Workspace id: <workspaceId>
@@ -417,7 +428,7 @@ Complete only this lane, write the required durable receipt JSON, and stop.
417
428
  WORKER_PROMPT
418
429
 
419
430
  # Multi-worker launcher equivalent:
420
- codex -a never -s danger-full-access exec -m <worker-model> -C <repo> -o <worker-final-file> - < <worker-prompt-file>
431
+ codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> - < <worker-prompt-file>
421
432
  ```
422
433
 
423
434
  If any placeholder cannot be filled from the current lane packet, do not inspect
@@ -603,7 +614,10 @@ not a parent-thread summary. The receipt must include:
603
614
  Before writing the durable receipt, run a receipt self-check. The top-level
604
615
  receipt must include top-level `planRevision`, `actionId`, `laneKey`,
605
616
  `laneType`, `workspaceId`, and `senderIds`, plus campaign/table/source ids and
606
- row/message/approval counts. Inside
617
+ row/message/approval counts. It must also include top-level `receiptArtifactPath`,
618
+ top-level `durableReceiptWritten:true`, top-level `receiptRunId`, and top-level
619
+ `receiptWrittenAt`; do not leave `receiptArtifactPath` only under
620
+ `createCampaignWorkflowReceipt` for the parent to patch during verify. Inside
607
621
  `createCampaignStepReceipt.messageDraftingReceipt`, `sampleMessages[]` must
608
622
  include `rowId`, `generatedMessageText`, `verdict`, and `issues`. Do not
609
623
  substitute `message` for `generatedMessageText`. Do not substitute
@@ -615,6 +629,8 @@ before writing JSON; do not leave only raw objects like
615
629
  `get_campaign_message_preparation_status`, `attachRecommendedSequenceResult`,
616
630
  `finalCampaignRead`, or `finalTableRead`.
617
631
  Self-check shorthand: top-level `planRevision`, `actionId`, `laneKey`, `laneType`, `workspaceId`, and `senderIds` must exist before worker completion.
632
+ Self-check shorthand: top-level `receiptArtifactPath`, `durableReceiptWritten:true`, `receiptRunId`, and `receiptWrittenAt` must exist before worker completion.
633
+ Self-check shorthand: top-level `receiptWrittenAt` must exist before worker completion.
618
634
  Self-check shorthand: `campaignBriefReceipt.briefHash`,
619
635
  `campaignBriefReceipt.deliveryFormat`, `campaignBriefReceipt.tokenRules`,
620
636
  `campaignBriefReceipt.hardAvoids`, and `campaignBriefReceipt.sourceUseRules`
@@ -933,6 +949,17 @@ Message proof for every customer-visible lane must come from the current
933
949
  campaign/table basis and include at least 3 generated review rows from the
934
950
  packaged `generate-messages` path before completion is reported.
935
951
  Parent-thread handwritten copy or setting `currentStep` is not proof.
952
+
953
+ The parent must run its own sample-quality gate before final reporting, even
954
+ when worker receipts say `verdict:"passed"`. For each shared lane, normalize the
955
+ reviewed sample messages by removing leading greeting/name lines, first names,
956
+ and whitespace-only differences; reject shared-lane samples when the message body is identical after removing first names or when all samples share the same
957
+ paragraph skeleton. Also reject final shared-lane samples with `Hey <name>,`
958
+ letter punctuation, weak relevance hedges, internal workflow vocabulary,
959
+ self-intros, or any non-empty `issues`. If the parent finds repeated shared-lane
960
+ sample copy, report `blocked: repeated_shared_lane_sample_copy`, revise the
961
+ campaign brief/template through the packaged workflow, rerun Generate Message,
962
+ and verify current-revision sample messages before final completion.
936
963
  </command_backed_workflow>
937
964
 
938
965
  <objective>