coderifts 6.0.1 → 6.0.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.0.2
4
+
5
+ ### Fixed
6
+
7
+ - **init --agents wrote 8 of 9 embedded files.** The skill file joined the single source on 2026-08-25 but was never added to EXTRA_RULES_ON_ALL, a second hand-maintained list. Every release since shipped an installer that under-writes, and agent-setup --check was correctly reporting DRIFT the whole time.
8
+ - **The strict workflow pins actions/checkout too.** It runs first and fetches the code every later step reads; the least pinned step in the strict chain was the most load-bearing.
9
+
3
10
  ## 6.0.1
4
11
 
5
12
  ### Changed
package/dist/cli.js CHANGED
@@ -3028,7 +3028,7 @@ var require_package = __commonJS({
3028
3028
  "package.json"(exports2, module2) {
3029
3029
  module2.exports = {
3030
3030
  name: "coderifts",
3031
- version: "6.0.1",
3031
+ version: "6.0.2",
3032
3032
  description: "Detect breaking API changes from the command line. Works locally or with the CodeRifts cloud API.",
3033
3033
  author: "CodeRifts <hello@coderifts.com>",
3034
3034
  license: "MIT",
@@ -227483,6 +227483,25 @@ var require_gate_pin = __commonJS({
227483
227483
  }
227484
227484
  });
227485
227485
 
227486
+ // src/generated/action-pins.json
227487
+ var require_action_pins = __commonJS({
227488
+ "src/generated/action-pins.json"(exports2, module2) {
227489
+ module2.exports = {
227490
+ actions: [
227491
+ {
227492
+ action: "actions/checkout",
227493
+ sha: "11d5960a326750d5838078e36cf38b85af677262",
227494
+ tag: "v4",
227495
+ exact_tag: "v4.4.0",
227496
+ resolved_from: "https://github.com/actions/checkout refs/tags/v4",
227497
+ resolved_at: "2026-08-27T13:27:52Z"
227498
+ }
227499
+ ],
227500
+ note: "STRICT template pins these third-party actions to full commit SHAs (only a full SHA is immutable). The DEFAULT template deliberately stays on moving tags. A SHA pin does not receive upstream security fixes until someone bumps it \u2014 Dependabot raises that PR, and a pin nobody bumps is worse than a tag because it rots silently. Re-run scripts/generate-action-pins.js."
227501
+ };
227502
+ }
227503
+ });
227504
+
227486
227505
  // src/contract-gate-workflow.js
227487
227506
  var require_contract_gate_workflow = __commonJS({
227488
227507
  "src/contract-gate-workflow.js"(exports2, module2) {
@@ -227492,6 +227511,17 @@ var require_contract_gate_workflow = __commonJS({
227492
227511
  var WORKFLOW_REL = ".github/workflows/coderifts.yml";
227493
227512
  var GATE_ACTION = "coderifts/contract-gate@v0";
227494
227513
  var GATE_PIN = require_gate_pin();
227514
+ var ACTION_PINS = require_action_pins();
227515
+ function pinnedActionRef(action) {
227516
+ const entry = (ACTION_PINS.actions || []).find((a) => a && a.action === action);
227517
+ if (!entry || !/^[0-9a-f]{40}$/.test(String(entry.sha || ""))) {
227518
+ throw new Error(
227519
+ `contract-gate-workflow: no usable SHA pin for ${action} in src/generated/action-pins.json \u2014 run scripts/generate-action-pins.js. Refusing to emit an unpinned STRICT workflow.`
227520
+ );
227521
+ }
227522
+ return `${action}@${entry.sha} # ${entry.exact_tag || entry.tag}`;
227523
+ }
227524
+ var CHECKOUT_STRICT = pinnedActionRef("actions/checkout");
227495
227525
  if (typeof GATE_PIN.sha !== "string" || !/^[0-9a-f]{40}$/.test(GATE_PIN.sha)) {
227496
227526
  throw new Error(
227497
227527
  "contract-gate-workflow: generated/gate-pin.json carries no valid 40-hex sha \u2014 re-run scripts/generate-gate-pin.js. Refusing to emit an unpinned STRICT workflow."
@@ -227526,6 +227556,10 @@ jobs:
227526
227556
  contract-gate:
227527
227557
  runs-on: ubuntu-latest
227528
227558
  steps:
227559
+ # actions/checkout stays on the MOVING TAG @v4 here, deliberately \u2014 the same trade this
227560
+ # template makes for the gate itself. You get upstream fixes without editing this file, and
227561
+ # you accept that the bytes can change under you. \`coderifts init --agents --strict\` pins a
227562
+ # full commit SHA for both. Do not "fix" this to a SHA and do not "fix" strict back to a tag.
227529
227563
  - uses: actions/checkout@v4
227530
227564
  with:
227531
227565
  # REQUIRED: the gate derives the change set from git diff base...head.
@@ -227582,7 +227616,14 @@ jobs:
227582
227616
  contract-gate:
227583
227617
  runs-on: ubuntu-latest
227584
227618
  steps:
227585
- - uses: actions/checkout@v4
227619
+ # PINNED, like the gate below it. \`@v4\` is a tag GitHub moves on every release of the
227620
+ # action, so it is not a pin \u2014 and checkout runs FIRST, fetching the code every later step
227621
+ # reads. A strict chain whose first step can change under it is not strict.
227622
+ # MAINTENANCE, stated because a pin has a cost: a SHA-pinned action receives no upstream
227623
+ # fixes, security included, until someone bumps it. Dependabot understands this form and
227624
+ # raises that PR. WITHOUT Dependabot the obligation is yours, and a pin nobody bumps is worse
227625
+ # than a tag, because a tag rots visibly and a pin rots silently.
227626
+ - uses: ${CHECKOUT_STRICT}
227586
227627
  with:
227587
227628
  # REQUIRED: the gate derives the change set from git diff base...head.
227588
227629
  fetch-depth: 0
@@ -227666,6 +227707,9 @@ jobs:
227666
227707
  GATE_ACTION,
227667
227708
  GATE_ACTION_STRICT,
227668
227709
  GATE_PIN,
227710
+ ACTION_PINS,
227711
+ CHECKOUT_STRICT,
227712
+ pinnedActionRef,
227669
227713
  ENFORCEMENT_DOC,
227670
227714
  writeContractGateWorkflow,
227671
227715
  workflowPresent
@@ -227722,7 +227766,8 @@ var require_init_agents = __commonJS({
227722
227766
  var EXTRA_RULES_ON_ALL = Object.freeze([
227723
227767
  ".github/copilot-instructions.md",
227724
227768
  "coderifts-langgraph-policy.js",
227725
- "openai-agent-instructions.md"
227769
+ "openai-agent-instructions.md",
227770
+ "skills/api-governance/SKILL.md"
227726
227771
  ]);
227727
227772
  var NEXT_MANUAL_STEP_LINES = Object.freeze([
227728
227773
  " Next manual step",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coderifts",
3
- "version": "6.0.1",
3
+ "version": "6.0.2",
4
4
  "description": "Detect breaking API changes from the command line. Works locally or with the CodeRifts cloud API.",
5
5
  "author": "CodeRifts <hello@coderifts.com>",
6
6
  "license": "MIT",