@joshuafolkken/kit 1.1035.0 → 1.1094.0
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/.claude/settings.json +9 -8
- package/.claude/skills/epic-commands/SKILL.md +5 -7
- package/.claude/skills/verify-ui/SKILL.md +1 -1
- package/.claude/skills/workflow-commands/SKILL.md +21 -13
- package/.claude/skills/workflow-commands/background-commands.md +5 -4
- package/.claude/skills/workflow-commands/backlogrun-child.md +3 -3
- package/.claude/skills/workflow-commands/backlogrun-lanes.md +9 -7
- package/.claude/skills/workflow-commands/backlogrun-park.md +6 -0
- package/.claude/skills/workflow-commands/backlogrun-progress.md +31 -37
- package/.claude/skills/workflow-commands/backlogrun-steps.md +25 -25
- package/.claude/skills/workflow-commands/backlogrun.md +2 -2
- package/.claude/skills/workflow-commands/chain-rule.md +6 -4
- package/.claude/skills/workflow-commands/delegation.md +3 -3
- package/.claude/skills/workflow-commands/followup-reference.md +3 -3
- package/.claude/skills/workflow-commands/followup.md +7 -3
- package/.claude/skills/workflow-commands/fullrun-steps.md +3 -2
- package/.claude/skills/workflow-commands/fullrun.md +3 -2
- package/.claude/skills/workflow-commands/halfrun.md +16 -19
- package/.claude/skills/workflow-commands/issue-comments.md +2 -2
- package/.claude/skills/workflow-commands/issue-fold-existing.md +10 -10
- package/.claude/skills/workflow-commands/issue-scout.md +1 -1
- package/.claude/skills/workflow-commands/kickoff.md +9 -4
- package/.claude/skills/workflow-commands/latest-gate.md +1 -1
- package/.claude/skills/workflow-commands/needs-human-review.md +1 -1
- package/.claude/skills/workflow-commands/observation-filing.md +44 -89
- package/.claude/skills/workflow-commands/pre-gate-cut.md +33 -36
- package/.claude/skills/workflow-commands/prerequisite.md +1 -1
- package/.claude/skills/workflow-commands/prrun.md +36 -0
- package/.claude/skills/workflow-commands/retrospective.md +1 -1
- package/.claude/skills/workflow-commands/working-tree-hold.md +24 -4
- package/.codex/hooks.json +16 -20
- package/.github/actions/setup-pnpm/action.yml +93 -0
- package/.github/dependabot.yml +5 -1
- package/.github/workflows/auto-tag.yml +21 -0
- package/.github/workflows/ci.yml +26 -128
- package/.github/workflows/pr-classification.yml +5 -41
- package/.github/workflows/publish.yml +42 -48
- package/.github/workflows/sonar-qube.yml +37 -4
- package/AGENTS.md +12 -2
- package/CLAUDE.md +15 -16
- package/GEMINI.md +14 -2
- package/README.md +59 -18
- package/SECURITY.md +36 -6
- package/cspell/index.yaml +2 -1
- package/dist/CLAUDE.md +15 -16
- package/dist/config-merge/index.js +15 -3
- package/dist/hooks/batch-guard.js +4 -4
- package/dist/hooks/{chunk-Y27M6A7X.js → chunk-3C4YCCEF.js} +5 -13
- package/dist/hooks/{chunk-D67KVGGY.js → chunk-7ZPFAVR7.js} +17 -88
- package/dist/hooks/{chunk-HOYJU5RM.js → chunk-E54KGFEQ.js} +11 -4
- package/dist/hooks/{chunk-KG6PZD72.js → chunk-IL27YTPH.js} +2 -2
- package/dist/hooks/{chunk-GJT4BNVE.js → chunk-KHWHKJOM.js} +3 -3
- package/dist/hooks/{chunk-HU66PWWL.js → chunk-M2XDCUKD.js} +1076 -509
- package/dist/hooks/{chunk-GLBDBJOK.js → chunk-NKOG3XAV.js} +199 -304
- package/dist/hooks/{chunk-ZXNE6NY3.js → chunk-O4LL4HTI.js} +2 -7
- package/dist/hooks/{chunk-XPLP27WA.js → chunk-OIZUHPJI.js} +5 -27
- package/dist/hooks/{chunk-EIFCAJRB.js → chunk-UD24EAIL.js} +2546 -1636
- package/dist/hooks/codex-hook-adapter.js +10 -11
- package/dist/hooks/duplicate-read-guard.js +5 -5
- package/dist/hooks/format-edited.js +15 -34
- package/dist/hooks/inputs.json +279 -0
- package/dist/hooks/investigation-guard.js +5 -5
- package/dist/hooks/pretool-guard.js +23 -16
- package/dist/hooks/session-lang.js +0 -1
- package/dist/hooks/stop-guard.js +188 -509
- package/dist/josh.js +166 -225
- package/dist/managed-marker/index.js +2 -1
- package/dist/version/index.js +412 -64
- package/eslint/rules/promise.js +5 -0
- package/package.json +13 -8
- package/prompts/collaboration-workflow/file-edits.md +6 -53
- package/prompts/collaboration-workflow/issue-citation.md +5 -5
- package/prompts/collaboration-workflow/operating-rules.md +4 -4
- package/prompts/collaboration-workflow/overview.md +13 -1
- package/prompts/collaboration-workflow/report-format.md +1 -1
- package/prompts/collaboration-workflow/residency.md +4 -4
- package/prompts/collaboration-workflow/rule-delivery.md +5 -36
- package/prompts/collaboration-workflow/shell-body.md +7 -9
- package/prompts/collaboration-workflow/turn-batching.md +21 -37
- package/prompts/collaboration-workflow/upstream-interrupt.md +1 -1
- package/prompts/collaboration-workflow/wip-cap.md +36 -36
- package/prompts/collaboration-workflow.md +5 -8
- package/prompts/review-rubric.md +1 -1
- package/prompts/review.md +3 -3
- package/prompts/sonar-hotspot-handling.md +12 -4
- package/prompts/testing-guide.md +3 -3
- package/scripts/adopt/adopt-toolkits.ts +2 -2
- package/scripts/adopt/adopt.ts +0 -2
- package/scripts/agent/agent-argv.ts +0 -2
- package/scripts/agent/agent-diagnostics.ts +1 -1
- package/scripts/agent/agent-role-profile.ts +0 -7
- package/scripts/agent/claude-agent-argv.ts +0 -2
- package/scripts/agent/codex-agent-argv.ts +1 -1
- package/scripts/agent/codex-hooks.ts +92 -0
- package/scripts/agent/interactive-ask.ts +1 -1
- package/scripts/auto-ok/auto-ok-cli.ts +15 -25
- package/scripts/backlog/backlog-budget.ts +0 -2
- package/scripts/backlog/backlog-defect-priority.ts +2 -2
- package/scripts/backlog/backlog-drive-cli.ts +10 -8
- package/scripts/backlog/backlog-drive-named-offer.ts +16 -3
- package/scripts/backlog/backlog-drive-named.ts +2 -1
- package/scripts/backlog/backlog-drive.ts +76 -16
- package/scripts/backlog/backlog-named.ts +0 -3
- package/scripts/backlog/backlog-next.ts +32 -22
- package/scripts/backlog/backlog-offer-cli.ts +0 -5
- package/scripts/backlog/backlog-plan-cli.ts +6 -8
- package/scripts/backlog/backlog-plan.ts +1 -1
- package/scripts/backlog/backlog-pool.ts +34 -17
- package/scripts/backlog/backlog-rank.ts +106 -0
- package/scripts/backlog/backlog-ready.ts +19 -3
- package/scripts/backlog/backlog-scope.ts +1 -3
- package/scripts/backlog/backlog-stalled-detect.ts +2 -2
- package/scripts/backlog/backlog-stalled.ts +0 -1
- package/scripts/backlog/backlog-waves.ts +47 -31
- package/scripts/behavior/behavior-cli.ts +1 -1
- package/scripts/build/build-codex-hooks.ts +26 -0
- package/scripts/build/build-hooks.ts +92 -11
- package/scripts/build/hook-bundle-stamp.ts +111 -0
- package/scripts/cases/cases-cli.ts +1 -1
- package/scripts/cases/cases-logic.ts +1 -1
- package/scripts/ci/composite-actions.ts +30 -0
- package/scripts/ci/pr-classification.ts +3 -3
- package/scripts/claude/workflow-destination.ts +10 -1
- package/scripts/clone/clone-fingerprint.ts +0 -1
- package/scripts/clone/clone-scan-cli.ts +1 -1
- package/scripts/clone/clone-scan.ts +1 -1
- package/scripts/config-merge/json-format.ts +0 -1
- package/scripts/config-merge/patch-yaml-list.ts +1 -1
- package/scripts/cost-runtime/codex-usage.ts +2 -9
- package/scripts/cost-runtime/cost-attribute.ts +0 -1
- package/scripts/cost-runtime/cost-cli.ts +0 -3
- package/scripts/cost-runtime/cost-corpus.ts +0 -2
- package/scripts/cost-runtime/cost-format.ts +0 -3
- package/scripts/cost-runtime/cost-pricing.ts +0 -1
- package/scripts/cost-runtime/cost-tokens.ts +0 -1
- package/scripts/delegation/delegation-cli.ts +1 -1
- package/scripts/delegation/delegation-policy.ts +11 -1
- package/scripts/delegation/duplicate-read-guard.ts +0 -8
- package/scripts/delegation/fanout-cli.ts +1 -1
- package/scripts/delegation/fanout.ts +0 -2
- package/scripts/delegation/investigation-reads.ts +1 -164
- package/scripts/discovery/repo-map-logic.ts +0 -1
- package/scripts/discovery/repo-party-cli.ts +1 -1
- package/scripts/doctor/doctor-consumer.ts +4 -6
- package/scripts/doctor/doctor-logic.ts +0 -4
- package/scripts/doctor/doctor.ts +14 -9
- package/scripts/document/document-byte-budget.ts +8 -9
- package/scripts/document/document-byte-check.ts +0 -1
- package/scripts/document/document-read-cli.ts +0 -2
- package/scripts/document/document-section-cli.ts +1 -1
- package/scripts/document/document-section.ts +0 -3
- package/scripts/document/edit-files-cli.ts +0 -1
- package/scripts/document/entry-read-budget.ts +13 -4
- package/scripts/document/lane-child-read-set.ts +1 -6
- package/scripts/document/read-files-cli.ts +0 -4
- package/scripts/document/read-set-cli.ts +0 -2
- package/scripts/document/read-set-point-of-use.ts +1 -0
- package/scripts/document/read-set-pricing.ts +0 -1
- package/scripts/document/read-set-trim.ts +1 -1
- package/scripts/epic/epic-add.ts +1 -1
- package/scripts/epic/epic-audit-cli.ts +1 -4
- package/scripts/epic/epic-audit-orphans.ts +1 -3
- package/scripts/epic/epic-audit-rationale.ts +0 -1
- package/scripts/epic/epic-audit-report.ts +0 -2
- package/scripts/epic/epic-audit.ts +5 -4
- package/scripts/epic/epic-bundle-cli.ts +1 -1
- package/scripts/epic/epic-bundle-evidence.ts +0 -1
- package/scripts/epic/epic-bundle-referenced.ts +1 -5
- package/scripts/epic/epic-bundle.ts +0 -4
- package/scripts/epic/epic-busy.ts +4 -5
- package/scripts/epic/epic-candidate-confirm.ts +0 -5
- package/scripts/epic/epic-classify.ts +2 -2
- package/scripts/epic/epic-cli-argv.ts +0 -1
- package/scripts/epic/epic-close-comment.ts +1 -1
- package/scripts/epic/epic-close.ts +5 -2
- package/scripts/epic/epic-cross-repo.ts +2 -4
- package/scripts/epic/epic-decision.ts +0 -1
- package/scripts/epic/epic-fetch.ts +2 -2
- package/scripts/epic/epic-index.ts +2 -3
- package/scripts/epic/epic-issue.ts +1 -15
- package/scripts/epic/epic-lane-offer.ts +20 -30
- package/scripts/epic/epic-nested.ts +1 -1
- package/scripts/epic/epic-next-read.ts +1 -3
- package/scripts/epic/epic-next-views.ts +0 -1
- package/scripts/epic/epic-next.ts +1 -10
- package/scripts/epic/epic-parse.ts +0 -1
- package/scripts/epic/epic-promote.ts +0 -9
- package/scripts/epic/epic-rank.ts +37 -0
- package/scripts/epic/epic-read.ts +1 -2
- package/scripts/epic/epic-reconcile.ts +1 -1
- package/scripts/epic/epic-reference.ts +1 -13
- package/scripts/epic/epic-relation-recheck.ts +1 -1
- package/scripts/epic/epic-relations.ts +1 -1
- package/scripts/epic/epic-remove.ts +1 -1
- package/scripts/epic/epic-report.ts +0 -1
- package/scripts/epic/epic-run.ts +2 -3
- package/scripts/epic/epic-shape.ts +1 -1
- package/scripts/epic/epic-solo-stale.ts +107 -0
- package/scripts/epic/epic-solo.ts +32 -30
- package/scripts/epic/epic-triage.ts +1 -1
- package/scripts/epic/epic-validate.ts +1 -1
- package/scripts/epic/epic.ts +1 -1
- package/scripts/exports/unused-members-cli.ts +53 -0
- package/scripts/{git → followup}/followup-issue-number.ts +1 -6
- package/scripts/{git → followup}/git-followup-cleanup.ts +2 -1
- package/scripts/{git → followup}/git-followup-finish.ts +1 -3
- package/scripts/{git → followup}/git-followup-flush.ts +2 -2
- package/scripts/{git → followup}/git-followup-issue-close.ts +2 -2
- package/scripts/{git → followup}/git-followup-label.ts +4 -4
- package/scripts/followup/git-followup-merged.ts +112 -0
- package/scripts/{git → followup}/git-followup-pending.ts +1 -1
- package/scripts/{git → followup}/git-followup-workflow.ts +19 -11
- package/scripts/{git → followup}/git-pr-followup-wrapup.ts +9 -3
- package/scripts/{git → followup}/git-pr-followup.ts +53 -16
- package/scripts/gate/core-budget.ts +3 -9
- package/scripts/gate/gate-plan.ts +7 -4
- package/scripts/gate/gate-report.ts +0 -6
- package/scripts/gate/gate-tree.ts +1 -1
- package/scripts/gate/pre-commit-type-check.ts +0 -6
- package/scripts/gate/project-checks.ts +7 -8
- package/scripts/gate/scoped-green.ts +0 -1
- package/scripts/gate/type-check-step.ts +1 -1
- package/scripts/gate/verification-gate.ts +0 -2
- package/scripts/gh/fix-gh-packages.ts +15 -12
- package/scripts/gh/gh-spawn.ts +2 -2
- package/scripts/{git → gh}/git-ai-review-scan.ts +1 -5
- package/scripts/{git → gh}/git-gh-check.ts +2 -1
- package/scripts/{git → gh}/git-gh-exec.ts +1 -1
- package/scripts/{git → gh}/git-gh-failure.ts +1 -1
- package/scripts/{git → gh}/git-gh-helpers.ts +0 -1
- package/scripts/{git → gh}/git-gh-issue-list.ts +2 -0
- package/scripts/{git → gh}/git-gh-issue-read.ts +1 -1
- package/scripts/{git → gh}/git-gh-issue-rest.ts +6 -3
- package/scripts/{git → gh}/git-gh-pr-read.ts +24 -0
- package/scripts/{git → gh}/git-gh-pr-rest.ts +5 -2
- package/scripts/{git → gh}/git-gh-pr-review.ts +2 -2
- package/scripts/{git → gh}/git-gh-pr-rollup.ts +1 -3
- package/scripts/{git → gh}/git-gh-pr.ts +3 -1
- package/scripts/{git → gh}/git-pr-ai-review.ts +2 -5
- package/scripts/{git → gh}/git-pr-checks-eval.ts +0 -10
- package/scripts/{git → gh}/git-pr-checks-parse.ts +4 -20
- package/scripts/{git → gh}/git-pr-checks.ts +2 -1
- package/scripts/{git → gh}/git-pr-coderabbit.ts +2 -5
- package/scripts/{git → gh}/git-pr-confirmation.ts +1 -3
- package/scripts/{git → gh}/git-pr-managed-config.ts +2 -3
- package/scripts/{git → gh}/git-pr.ts +3 -3
- package/scripts/git/changed-file-scope.ts +0 -1
- package/scripts/git/git-branch.ts +3 -6
- package/scripts/git/git-command.ts +1 -1
- package/scripts/git/git-commit.ts +1 -1
- package/scripts/git/git-common-directory.ts +80 -24
- package/scripts/git/git-error.ts +66 -9
- package/scripts/git/git-execa-error.ts +6 -1
- package/scripts/git/git-issue.ts +1 -1
- package/scripts/git/git-preflight.ts +24 -6
- package/scripts/git/git-prompt.ts +6 -31
- package/scripts/git/git-push-transport.ts +12 -69
- package/scripts/git/git-push.ts +1 -1
- package/scripts/git/git-spawn.ts +79 -3
- package/scripts/git/git-ssh-keepalive.ts +74 -0
- package/scripts/git/git-staging.ts +1 -0
- package/scripts/git/git-status.ts +1 -1
- package/scripts/git/git-workflow.ts +1 -1
- package/scripts/git/gone-branch.ts +4 -2
- package/scripts/git/listing-cutoff.ts +1 -1
- package/scripts/git/main-merge.ts +1 -1
- package/scripts/git/main-sync.ts +19 -1
- package/scripts/git/parse-json-array.ts +0 -3
- package/scripts/git/repository-lock.ts +16 -16
- package/scripts/git/{git-stash.ts → stash/git-stash.ts} +1 -1
- package/scripts/git/{stash-pop-args.ts → stash/stash-pop-args.ts} +1 -1
- package/scripts/git/{stash-pop-cli.ts → stash/stash-pop-cli.ts} +0 -1
- package/scripts/git/{stash-sweep-lock.ts → stash/stash-sweep-lock.ts} +3 -3
- package/scripts/hooks/codex-hook-adapter.ts +0 -1
- package/scripts/hooks/edited-cspell.ts +1 -1
- package/scripts/hooks/format-edited-cli.ts +15 -0
- package/scripts/hooks/format-edited-file.ts +4 -9
- package/scripts/hooks/pre-push-unit.ts +0 -4
- package/scripts/hooks/pretool-guard-cli.ts +21 -0
- package/scripts/hooks/pretool-guard.ts +36 -19
- package/scripts/hooks/reserved-run.ts +1 -1
- package/scripts/hooks/step-zero-notice.ts +76 -0
- package/scripts/hooks/stop-guard.ts +47 -21
- package/scripts/init/claude-plugin-config.ts +4 -5
- package/scripts/init/hook-command-rewrite.ts +16 -8
- package/scripts/init/hook-launch.ts +41 -15
- package/scripts/init/init-basic.ts +2 -5
- package/scripts/init/init-logic.ts +7 -0
- package/scripts/init/init.ts +0 -3
- package/scripts/init/project-profile.ts +6 -11
- package/scripts/init/start-exec.ts +8 -2
- package/scripts/init/start-plan.ts +18 -5
- package/scripts/init/start-setup-pr.ts +52 -25
- package/scripts/init/start-steps.ts +42 -9
- package/scripts/init/start.ts +40 -10
- package/scripts/issue/behavior-change-lint.ts +0 -1
- package/scripts/issue/defect-rate-cli.ts +3 -3
- package/scripts/issue/defect-rate.ts +1 -2
- package/scripts/{git → issue}/git-next-issues.ts +37 -8
- package/scripts/issue/issue-backlinks-cli.ts +1 -5
- package/scripts/issue/issue-cite-cli.ts +2 -6
- package/scripts/issue/issue-cite.ts +19 -3
- package/scripts/issue/issue-classification.ts +1 -9
- package/scripts/issue/issue-closing-pr.ts +4 -4
- package/scripts/issue/issue-comment-cli.ts +2 -2
- package/scripts/issue/issue-file-cli.ts +5 -5
- package/scripts/issue/issue-file.ts +2 -2
- package/scripts/issue/issue-fold-cli.ts +1 -1
- package/scripts/issue/issue-fold-existing-cli.ts +1 -1
- package/scripts/{git → issue}/issue-labels.ts +20 -0
- package/scripts/issue/issue-lint-cli.ts +1 -1
- package/scripts/issue/issue-merged.ts +2 -2
- package/scripts/issue/issue-rank.ts +89 -0
- package/scripts/issue/issue-read-cli.ts +8 -47
- package/scripts/issue/issue-read.ts +0 -2
- package/scripts/issue/issue-report-failures.ts +80 -0
- package/scripts/issue/issue-scout-cli.ts +1 -7
- package/scripts/issue/issue-scout-closed.ts +2 -2
- package/scripts/issue/issue-scout.ts +0 -2
- package/scripts/issue/issue-state-cli.ts +5 -46
- package/scripts/issue/issue-state.ts +1 -5
- package/scripts/issue/markdown-section.ts +1 -1
- package/scripts/issue/measure-rerun-cli.ts +1 -1
- package/scripts/issue/reproduction-measure.ts +1 -1
- package/scripts/josh/cli-body.ts +1 -1
- package/scripts/josh/file-map-stamp.ts +0 -3
- package/scripts/josh/josh-command-map.ts +2 -102
- package/scripts/josh/josh-commands-ai.ts +9 -102
- package/scripts/josh/josh-commands-backlog.ts +5 -1
- package/scripts/josh/josh-commands-development.ts +10 -3
- package/scripts/josh/josh-commands-issue.ts +2 -2
- package/scripts/josh/josh-commands-maintenance.ts +7 -0
- package/scripts/josh/josh-commands-project.ts +7 -1
- package/scripts/josh/josh-commands-run.ts +114 -0
- package/scripts/josh/josh-commands-versioning.ts +8 -0
- package/scripts/josh/josh-commands-workflow.ts +2 -2
- package/scripts/josh/path-decision.ts +0 -3
- package/scripts/josh/process-owner.ts +16 -0
- package/scripts/josh/session-language-cli.ts +0 -1
- package/scripts/lane/lane-await.ts +3 -6
- package/scripts/lane/lane-capacity.ts +6 -3
- package/scripts/lane/lane-child-invocation.ts +20 -7
- package/scripts/lane/lane-child-marker.ts +16 -2
- package/scripts/lane/lane-cli.ts +33 -18
- package/scripts/lane/lane-close.ts +1 -3
- package/scripts/lane/lane-dispatch.ts +3 -4
- package/scripts/lane/lane-environment.ts +0 -9
- package/scripts/lane/lane-handoff.ts +38 -0
- package/scripts/lane/lane-launch-cli.ts +21 -11
- package/scripts/lane/lane-open.ts +0 -3
- package/scripts/lane/lane-output.ts +0 -1
- package/scripts/lane/lane-registry.ts +9 -0
- package/scripts/lane/lane-report.ts +10 -4
- package/scripts/lane/openai-lane-ship.ts +2 -0
- package/scripts/lane/openai-lane-supervisor-decision.ts +2 -1
- package/scripts/lane/openai-lane-supervisor.ts +6 -4
- package/scripts/lane/openai-review-broker.ts +3 -0
- package/scripts/lib/bounded-pool.ts +1 -0
- package/scripts/lib/json-value.ts +5 -4
- package/scripts/lib/poll.ts +3 -1
- package/scripts/lib/timed-fetch.ts +15 -0
- package/scripts/lib/timeouts.ts +13 -0
- package/scripts/{yaml → lib}/yaml-document.ts +3 -1
- package/scripts/{bytes → lines}/bytes-command.ts +0 -2
- package/scripts/lines/lines-command.ts +0 -1
- package/scripts/lint/lint-related-scope.ts +0 -1
- package/scripts/lint/lint-related.ts +1 -1
- package/scripts/{git → notify}/telegram-notify.ts +2 -2
- package/scripts/{git → notify}/telegram-test.ts +4 -4
- package/scripts/observations/observation-ledger-home.ts +0 -1
- package/scripts/observations/observation-ledger-line.ts +0 -1
- package/scripts/observations/observation-ledger-migrate.ts +1 -1
- package/scripts/observations/observations-flush-landing.ts +3 -3
- package/scripts/observations/observations-flush.ts +2 -2
- package/scripts/overrides/lockfile-overrides.ts +1 -1
- package/scripts/overrides/overrides-logic.ts +1 -1
- package/scripts/package/package-scout-cli.ts +2 -7
- package/scripts/package/package-scout.ts +0 -2
- package/scripts/propagate/propagate-git-failure.ts +0 -1
- package/scripts/propagate/propagate-git.ts +0 -2
- package/scripts/propagate/propagate-plan.ts +185 -0
- package/scripts/propagate/propagate-publish.ts +2 -3
- package/scripts/propagate/propagate-run.ts +5 -3
- package/scripts/propagate/propagate-steps.ts +19 -6
- package/scripts/propagate/propagate-targets.ts +13 -6
- package/scripts/propagate/propagate.ts +60 -46
- package/scripts/refactor/import-graph.ts +0 -1
- package/scripts/refactor/refactor-lint.ts +0 -2
- package/scripts/refactor/refactor-scan.ts +0 -1
- package/scripts/refactor/refactor-targets.ts +0 -1
- package/scripts/registry-migration/migrate-logic.ts +1 -2
- package/scripts/registry-migration/migrate.ts +19 -9
- package/scripts/release/github-release-cli.ts +8 -6
- package/scripts/release/github-release-environment.ts +46 -0
- package/scripts/release/github-release.ts +151 -94
- package/scripts/release/release-history.ts +0 -1
- package/scripts/release/release-plan.ts +0 -1
- package/scripts/release/release-publish.ts +2 -3
- package/scripts/release/release-scope-cli.ts +1 -2
- package/scripts/release/release-tag.ts +2 -4
- package/scripts/repo/auto-merge-setting-logic.ts +1 -4
- package/scripts/repo/repo-setting.ts +1 -1
- package/scripts/repo/repository-labels.ts +3 -3
- package/scripts/repo/required-checks-logic.ts +206 -0
- package/scripts/repo/required-checks-report.ts +71 -0
- package/scripts/repo/ruleset-check-cli.ts +53 -0
- package/scripts/repo/ruleset-check.ts +147 -0
- package/scripts/report/report-lint-cli.ts +0 -4
- package/scripts/review/disposition-cli.ts +1 -1
- package/scripts/review/live-evidence.ts +1 -1
- package/scripts/review/review-attest-cli.ts +0 -6
- package/scripts/review/review-attest.ts +48 -16
- package/scripts/review/review-brief-cli.ts +72 -8
- package/scripts/review/review-brief.ts +67 -9
- package/scripts/review/review-diff-parts.ts +89 -0
- package/scripts/review/review-diff-write.ts +97 -0
- package/scripts/review/review-finding-ledger.ts +0 -1
- package/scripts/review/review-record-cli.ts +1 -1
- package/scripts/review/review-record.ts +0 -1
- package/scripts/review/review-round2-cli.ts +1 -1
- package/scripts/review/review-stamps.ts +6 -2
- package/scripts/review/review-tree.ts +14 -2
- package/scripts/rules/decision-oracle-stage.ts +18 -0
- package/scripts/rules/decision-oracle.ts +10 -7
- package/scripts/rules/delivered-rules.ts +9 -1
- package/scripts/rules/destructive-command.ts +119 -0
- package/scripts/rules/direct-filing.ts +1 -1
- package/scripts/rules/file-body.ts +0 -3
- package/scripts/rules/filing-cap.ts +0 -2
- package/scripts/rules/gh-api.ts +7 -2
- package/scripts/rules/git-argv.ts +18 -7
- package/scripts/rules/git-force.ts +0 -2
- package/scripts/rules/implementation-cut.ts +1 -2
- package/scripts/rules/index-guard.ts +71 -0
- package/scripts/rules/issue-citation.ts +50 -25
- package/scripts/rules/issue-fold.ts +1 -2
- package/scripts/rules/lane-background.ts +15 -7
- package/scripts/rules/lane-carry-conflict.ts +1 -2
- package/scripts/rules/lane-park.ts +14 -8
- package/scripts/rules/last-prompt.ts +1 -0
- package/scripts/rules/oracle-consulted.ts +1 -1
- package/scripts/rules/oracle-firing.ts +1 -0
- package/scripts/rules/oracle-list-cli.ts +0 -3
- package/scripts/rules/permission-guards.ts +14 -0
- package/scripts/rules/pre-gate-cut.ts +2 -2
- package/scripts/rules/protected-files.ts +74 -0
- package/scripts/rules/reply-language.ts +1 -1
- package/scripts/rules/rule-body-guard.ts +0 -3
- package/scripts/rules/rule-value-cli.ts +0 -1
- package/scripts/rules/shell-body-trigger.ts +0 -1
- package/scripts/rules/shell-segments.ts +0 -1
- package/scripts/rules/stop-rules.ts +13 -5
- package/scripts/rules/tail-commands.ts +1 -1
- package/scripts/rules/test-declared-commit.ts +1 -1
- package/scripts/rules/third-party-write.ts +0 -1
- package/scripts/rules/worktree-guard.ts +26 -9
- package/scripts/run/run-carry-cli.ts +0 -2
- package/scripts/run/run-carry-stash.ts +2 -2
- package/scripts/run/run-carry-streak.ts +1 -1
- package/scripts/run/run-cut-cli.ts +0 -7
- package/scripts/run/run-cut.ts +8 -54
- package/scripts/run/run-ending-cli.ts +1 -1
- package/scripts/run/run-ending.ts +1 -4
- package/scripts/run/run-entry-cli.ts +101 -24
- package/scripts/run/run-entry.ts +0 -1
- package/scripts/run/run-event-cli.ts +0 -2
- package/scripts/run/run-event-follow.ts +1 -0
- package/scripts/run/run-event-render.ts +1 -1
- package/scripts/run/run-event-scope.ts +53 -4
- package/scripts/run/run-event-stream.ts +0 -3
- package/scripts/run/run-event-watch.ts +1 -0
- package/scripts/run/run-halfrun-resume.ts +20 -7
- package/scripts/run/run-headless.ts +24 -8
- package/scripts/run/run-hold-cli.ts +33 -10
- package/scripts/run/run-hold.ts +25 -5
- package/scripts/run/run-issue-number.ts +1 -1
- package/scripts/run/run-liveness-cli.ts +1 -1
- package/scripts/run/run-liveness.ts +2 -3
- package/scripts/run/run-merge-cli.ts +5 -13
- package/scripts/run/run-merge-steps.ts +5 -5
- package/scripts/run/run-merge.ts +1 -1
- package/scripts/run/run-next-cli.ts +1 -1
- package/scripts/run/run-parent-cut-hook.ts +143 -0
- package/scripts/run/run-preflight.ts +2 -9
- package/scripts/run/run-prep-cli.ts +2 -2
- package/scripts/run/run-prep-locate.ts +1 -1
- package/scripts/run/run-progress-cli.ts +4 -7
- package/scripts/run/run-progress-clock.ts +6 -34
- package/scripts/run/run-progress-config.ts +0 -4
- package/scripts/run/run-progress-read.ts +3 -3
- package/scripts/run/run-progress.ts +22 -10
- package/scripts/run/run-prrun-resume.ts +117 -0
- package/scripts/run/run-report-cli.ts +1 -2
- package/scripts/run/run-report.ts +0 -1
- package/scripts/run/run-retrospective.ts +1 -1
- package/scripts/run/run-review-cli.ts +0 -3
- package/scripts/run/run-review-steps.ts +2 -0
- package/scripts/run/run-review.ts +0 -2
- package/scripts/run/run-ship-cli.ts +27 -77
- package/scripts/run/run-ship-detach.ts +1 -0
- package/scripts/run/run-ship-next.ts +106 -0
- package/scripts/run/run-ship-preflight.ts +87 -0
- package/scripts/run/run-ship-return.ts +8 -3
- package/scripts/run/run-ship-review-steps.ts +23 -30
- package/scripts/run/run-ship-review.ts +20 -0
- package/scripts/run/run-ship-scoped.ts +45 -0
- package/scripts/run/run-ship-stage.ts +5 -1
- package/scripts/run/run-ship-steps.ts +105 -0
- package/scripts/run/run-ship.ts +2 -1
- package/scripts/run/run-stage-read.ts +62 -0
- package/scripts/run/run-stage.ts +160 -0
- package/scripts/run/run-status-cli.ts +1 -1
- package/scripts/run/run-step-cli.ts +21 -14
- package/scripts/run/run-step.ts +1 -1
- package/scripts/run/run-stop-notify.ts +1 -3
- package/scripts/run/run-stranded-cli.ts +0 -4
- package/scripts/run/run-stranded-detect.ts +2 -2
- package/scripts/run/run-tail-cli.ts +17 -11
- package/scripts/run/run-tail.ts +2 -0
- package/scripts/run/run-tidy-lanes.ts +2 -1
- package/scripts/run/run-tidy-stashes.ts +12 -12
- package/scripts/run/run-wake-cli.ts +4 -5
- package/scripts/run/run-wake-describe.ts +19 -1
- package/scripts/run/run-wake-loop.ts +2 -2
- package/scripts/run/run-wake.ts +2 -4
- package/scripts/run/run-watcher-guard-cli.ts +0 -4
- package/scripts/run/run-watcher-guard.ts +9 -7
- package/scripts/run/run-watcher-hook.ts +1 -1
- package/scripts/safe-chain/ci-installer-pin.ts +11 -5
- package/scripts/safe-chain/project-config.ts +1 -1
- package/scripts/security/security-audit-provision-logic.ts +0 -1
- package/scripts/security/security-audit-provision.ts +3 -2
- package/scripts/security/security-audit.ts +0 -1
- package/scripts/security/security-updates-logic.ts +0 -1
- package/scripts/sonar/sonar-hotspots-cli.ts +10 -52
- package/scripts/sonar/sonar-hotspots.ts +0 -1
- package/scripts/sonar/sonar-new-code-cli.ts +150 -0
- package/scripts/sonar/sonar-new-code.ts +79 -0
- package/scripts/sonar/sonar-project.ts +97 -0
- package/scripts/split/split-assess-cli.ts +1 -1
- package/scripts/split/split-assess.ts +2 -5
- package/scripts/sync/managed-config-scope-cli.ts +1 -1
- package/scripts/sync/skill-migration.ts +0 -1
- package/scripts/sync/sync-hook-safety.ts +2 -3
- package/scripts/sync/sync.ts +1 -8
- package/scripts/sync/template-source-logic.ts +0 -1
- package/scripts/sync/workflow-pin-logic.ts +16 -28
- package/scripts/test/test-declared-logic.ts +0 -1
- package/scripts/test/test-declared.ts +0 -2
- package/scripts/test/test-red-commit.ts +2 -2
- package/scripts/test/test-red.ts +14 -7
- package/scripts/test/test-type-logic.ts +1 -1
- package/scripts/test/unit-worker-share.ts +7 -16
- package/scripts/time-runtime/time-batch-guard.ts +1 -2
- package/scripts/time-runtime/time-bundle-call.ts +2 -3
- package/scripts/time-runtime/time-bundles.ts +0 -4
- package/scripts/time-runtime/time-density-hook.ts +0 -2
- package/scripts/time-runtime/time-followup-stage.ts +1 -1
- package/scripts/time-runtime/time-format.ts +0 -73
- package/scripts/time-runtime/time-round-trips.ts +0 -4
- package/scripts/time-runtime/time-single-check.ts +1 -1
- package/scripts/time-runtime/time-spans.ts +1 -1
- package/scripts/time-runtime/time-transcript-line.ts +1 -2
- package/scripts/ui/ui-routes-cli.ts +0 -5
- package/scripts/ui/ui-routes.ts +0 -5
- package/scripts/version/effective-upstream.ts +2 -2
- package/scripts/version/latest-corepack.ts +7 -9
- package/scripts/version/latest-scope-cli.ts +0 -2
- package/scripts/version/latest-update.ts +0 -2
- package/scripts/version/npm-registry.ts +97 -0
- package/scripts/version/publishable-range-check.ts +1 -1
- package/scripts/version/release-hold.ts +0 -4
- package/scripts/version/running-binary.ts +2 -2
- package/scripts/version/version-check-logic.ts +0 -2
- package/scripts/version/version-commands.ts +5 -4
- package/scripts/version/version-remote.ts +28 -14
- package/scripts/version/version-targets.ts +4 -4
- package/templates/sonar-project.properties +28 -1
- package/templates/workflows/dependabot-auto-merge.yml +5 -3
- package/templates/workflows/github-release.yml +81 -0
- package/prompts/collaboration-workflow/cross-repo-epic.md +0 -5
- package/prompts/collaboration-workflow/epic-audit.md +0 -5
- package/prompts/collaboration-workflow/epic-bundle.md +0 -5
- package/scripts/init/plugin-install-hint.ts +0 -47
- package/scripts/version/parse-json.ts +0 -13
- /package/scripts/{git → followup}/git-followup-stages.ts +0 -0
- /package/scripts/{git → gh}/git-gh-api-path.ts +0 -0
- /package/scripts/{git → gh}/git-gh-command.ts +0 -0
- /package/scripts/{git → gh}/git-gh-issue-write.ts +0 -0
- /package/scripts/{git → gh}/git-gh-issue.ts +0 -0
- /package/scripts/{git → gh}/git-gh-pr-auto-merge.ts +0 -0
- /package/scripts/{git → gh}/git-gh-pr-snapshot.ts +0 -0
- /package/scripts/{git → gh}/git-gh-reachability.ts +0 -0
- /package/scripts/{git → gh}/git-gh-repo.ts +0 -0
- /package/scripts/{git → gh}/git-gh-rest-state.ts +0 -0
- /package/scripts/{git → gh}/git-pr-checks-watch.ts +0 -0
- /package/scripts/{git → gh}/git-pr-error.ts +0 -0
- /package/scripts/{git → gh}/git-pr-messages.ts +0 -0
- /package/scripts/{git → gh}/github-issue-url.ts +0 -0
- /package/scripts/git/{stash-orphans.ts → stash/stash-orphans.ts} +0 -0
- /package/scripts/{git → issue}/issue-reference.ts +0 -0
- /package/scripts/{git → lib}/animation-helpers.ts +0 -0
- /package/scripts/{git → lib}/git-animation.ts +0 -0
- /package/scripts/{git → notify}/git-notify.ts +0 -0
- /package/scripts/{git → notify}/telegram-test-logic.ts +0 -0
package/.codex/hooks.json
CHANGED
|
@@ -1,52 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"hooks": {
|
|
3
|
-
"
|
|
3
|
+
"SessionStart": [
|
|
4
4
|
{
|
|
5
|
-
"matcher": "
|
|
5
|
+
"matcher": "",
|
|
6
6
|
"hooks": [
|
|
7
7
|
{
|
|
8
8
|
"type": "command",
|
|
9
|
-
"command": "
|
|
10
|
-
"timeout":
|
|
9
|
+
"command": "pnpm josh audit:provision",
|
|
10
|
+
"timeout": 180
|
|
11
11
|
}
|
|
12
12
|
]
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
|
-
"
|
|
15
|
+
"UserPromptSubmit": [
|
|
16
16
|
{
|
|
17
|
-
"matcher": "Edit|Write|apply_patch",
|
|
18
17
|
"hooks": [
|
|
19
18
|
{
|
|
20
19
|
"type": "command",
|
|
21
|
-
"command": "if
|
|
22
|
-
"timeout":
|
|
20
|
+
"command": "if project_root=\"$(env -u GIT_ALTERNATE_OBJECT_DIRECTORIES -u GIT_COMMON_DIR -u GIT_DIR -u GIT_INDEX_FILE -u GIT_NAMESPACE -u GIT_OBJECT_DIRECTORY -u GIT_WORK_TREE git rev-parse --show-toplevel 2>/dev/null)\"; then unset GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_DIR GIT_INDEX_FILE GIT_NAMESPACE GIT_OBJECT_DIRECTORY GIT_WORK_TREE; else project_root=\"$(git rev-parse --show-toplevel)\" || exit 1; fi; cd \"$project_root\" && if node --disable-warning=ExperimentalWarning scripts/hooks/hook-bundle-ready.ts; then node dist/hooks/session-lang.js; else pnpm josh session:lang; fi",
|
|
21
|
+
"timeout": 10
|
|
23
22
|
}
|
|
24
23
|
]
|
|
25
24
|
}
|
|
26
25
|
],
|
|
27
|
-
"
|
|
26
|
+
"PreToolUse": [
|
|
28
27
|
{
|
|
29
|
-
"matcher": "",
|
|
28
|
+
"matcher": "Bash|Edit|Read|Write|AskUserQuestion|apply_patch",
|
|
30
29
|
"hooks": [
|
|
31
30
|
{
|
|
32
31
|
"type": "command",
|
|
33
|
-
"command": "pnpm
|
|
34
|
-
"timeout":
|
|
32
|
+
"command": "if project_root=\"$(env -u GIT_ALTERNATE_OBJECT_DIRECTORIES -u GIT_COMMON_DIR -u GIT_DIR -u GIT_INDEX_FILE -u GIT_NAMESPACE -u GIT_OBJECT_DIRECTORY -u GIT_WORK_TREE git rev-parse --show-toplevel 2>/dev/null)\"; then unset GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_DIR GIT_INDEX_FILE GIT_NAMESPACE GIT_OBJECT_DIRECTORY GIT_WORK_TREE; else project_root=\"$(git rev-parse --show-toplevel)\" || exit 1; fi; cd \"$project_root\" && if node --disable-warning=ExperimentalWarning scripts/hooks/hook-bundle-ready.ts; then node dist/hooks/codex-hook-adapter.js pretool; else pnpm exec tsx scripts/hooks/codex-hook-adapter.ts pretool; fi",
|
|
33
|
+
"timeout": 20
|
|
35
34
|
}
|
|
36
35
|
]
|
|
37
36
|
}
|
|
38
37
|
],
|
|
39
|
-
"
|
|
38
|
+
"PostToolUse": [
|
|
40
39
|
{
|
|
40
|
+
"matcher": "Edit|Write|apply_patch",
|
|
41
41
|
"hooks": [
|
|
42
42
|
{
|
|
43
43
|
"type": "command",
|
|
44
|
-
"command": "
|
|
45
|
-
|
|
46
|
-
{
|
|
47
|
-
"type": "command",
|
|
48
|
-
"command": "if [ -f dist/hooks/session-lang.js ]; then node dist/hooks/session-lang.js; else pnpm josh session:lang; fi",
|
|
49
|
-
"timeout": 10
|
|
44
|
+
"command": "if project_root=\"$(env -u GIT_ALTERNATE_OBJECT_DIRECTORIES -u GIT_COMMON_DIR -u GIT_DIR -u GIT_INDEX_FILE -u GIT_NAMESPACE -u GIT_OBJECT_DIRECTORY -u GIT_WORK_TREE git rev-parse --show-toplevel 2>/dev/null)\"; then unset GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_DIR GIT_INDEX_FILE GIT_NAMESPACE GIT_OBJECT_DIRECTORY GIT_WORK_TREE; else project_root=\"$(git rev-parse --show-toplevel)\" || exit 1; fi; cd \"$project_root\" && if node --disable-warning=ExperimentalWarning scripts/hooks/hook-bundle-ready.ts; then node dist/hooks/codex-hook-adapter.js posttool; else pnpm exec tsx scripts/hooks/codex-hook-adapter.ts posttool; fi",
|
|
45
|
+
"timeout": 90
|
|
50
46
|
}
|
|
51
47
|
]
|
|
52
48
|
}
|
|
@@ -57,7 +53,7 @@
|
|
|
57
53
|
"hooks": [
|
|
58
54
|
{
|
|
59
55
|
"type": "command",
|
|
60
|
-
"command": "if
|
|
56
|
+
"command": "if project_root=\"$(env -u GIT_ALTERNATE_OBJECT_DIRECTORIES -u GIT_COMMON_DIR -u GIT_DIR -u GIT_INDEX_FILE -u GIT_NAMESPACE -u GIT_OBJECT_DIRECTORY -u GIT_WORK_TREE git rev-parse --show-toplevel 2>/dev/null)\"; then unset GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_COMMON_DIR GIT_DIR GIT_INDEX_FILE GIT_NAMESPACE GIT_OBJECT_DIRECTORY GIT_WORK_TREE; else project_root=\"$(git rev-parse --show-toplevel)\" || exit 1; fi; cd \"$project_root\" && if node --disable-warning=ExperimentalWarning scripts/hooks/hook-bundle-ready.ts; then node dist/hooks/stop-guard.js; else pnpm josh stop:guard; fi",
|
|
61
57
|
"timeout": 20
|
|
62
58
|
}
|
|
63
59
|
]
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
name: Setup pnpm
|
|
2
|
+
description: >
|
|
3
|
+
Resolve the project's pnpm version, set pnpm up, and — unless `install` is false — restore the
|
|
4
|
+
pnpm store, install safe-chain from its hash-verified release installer and install the
|
|
5
|
+
dependencies through it.
|
|
6
|
+
|
|
7
|
+
# The one place kit's own workflows prepare pnpm (joshuafolkken/kit#2982). Every job that installed
|
|
8
|
+
# dependencies used to carry these steps itself, and `publish.yml` — the workflow holding the npm
|
|
9
|
+
# and GitHub Packages publish rights — had been left without safe-chain while `ci.yml` had it. A
|
|
10
|
+
# job that calls this action cannot install without the scan.
|
|
11
|
+
#
|
|
12
|
+
# Distributed: `josh sync` writes this file into a consumer beside the workflows that call it
|
|
13
|
+
# (`pr-classification.yml`), stamped as managed like they are (joshuafolkken/kit#3013).
|
|
14
|
+
# `templates/workflows/ci.yml` still carries the same steps inline — it was written before this file
|
|
15
|
+
# was distributed, and moving it onto the action is a change of its own. `workflow_pin_logic` reads
|
|
16
|
+
# this file as a source of canonical action pins, so the template's refs still resolve from here.
|
|
17
|
+
|
|
18
|
+
inputs:
|
|
19
|
+
install:
|
|
20
|
+
description: Install the dependencies. False sets pnpm up alone, for a job that only runs pnpm.
|
|
21
|
+
required: false
|
|
22
|
+
default: 'true'
|
|
23
|
+
cache:
|
|
24
|
+
description: >
|
|
25
|
+
Restore and save the pnpm store. A release job passes false, so nothing another run saved
|
|
26
|
+
reaches a job that holds publish credentials.
|
|
27
|
+
required: false
|
|
28
|
+
default: 'true'
|
|
29
|
+
runtime:
|
|
30
|
+
description: Passed to pnpm/setup's `runtime` input; empty leaves the runtime to setup-node.
|
|
31
|
+
required: false
|
|
32
|
+
default: ''
|
|
33
|
+
node-auth-token:
|
|
34
|
+
description: >
|
|
35
|
+
NODE_AUTH_TOKEN for the install, for a job whose `.npmrc` authenticates to GitHub Packages.
|
|
36
|
+
Empty keeps whatever the job already has.
|
|
37
|
+
required: false
|
|
38
|
+
default: ''
|
|
39
|
+
|
|
40
|
+
runs:
|
|
41
|
+
using: composite
|
|
42
|
+
steps:
|
|
43
|
+
- name: Resolve pnpm version
|
|
44
|
+
id: pnpm-version
|
|
45
|
+
shell: bash
|
|
46
|
+
run: |
|
|
47
|
+
version=$(node -p "const m = require('./package.json'); m.packageManager?.match(/^pnpm@([^+]+)/)?.[1] ?? (m.devEngines?.packageManager?.name === 'pnpm' ? m.devEngines.packageManager.version?.split('+')[0] : 'latest') ?? 'latest'")
|
|
48
|
+
test -n "$version"
|
|
49
|
+
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
50
|
+
|
|
51
|
+
- name: Setup pnpm
|
|
52
|
+
uses: pnpm/setup@fbda4c85fc2e1e08721cd8763afea8f48d60f024 # v3.0.0
|
|
53
|
+
with:
|
|
54
|
+
version: ${{ steps.pnpm-version.outputs.version }}
|
|
55
|
+
runtime: ${{ inputs.runtime }}
|
|
56
|
+
install: false
|
|
57
|
+
|
|
58
|
+
- name: Resolve pnpm store path
|
|
59
|
+
if: inputs.install == 'true' && inputs.cache == 'true'
|
|
60
|
+
shell: bash
|
|
61
|
+
run: echo "PNPM_STORE_PATH=$(pnpm store path)" >> "$GITHUB_ENV"
|
|
62
|
+
|
|
63
|
+
- name: Setup pnpm store cache
|
|
64
|
+
if: inputs.install == 'true' && inputs.cache == 'true'
|
|
65
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
66
|
+
with:
|
|
67
|
+
path: ${{ env.PNPM_STORE_PATH }}
|
|
68
|
+
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
|
|
69
|
+
restore-keys: |
|
|
70
|
+
${{ runner.os }}-pnpm-store-
|
|
71
|
+
|
|
72
|
+
# The safe-chain release and the SHA-256 of that release's install-safe-chain.sh. The installer
|
|
73
|
+
# puts the safe-chain binary under ~/.safe-chain/bin and adds it to PATH beside the shims;
|
|
74
|
+
# `pnpm dlx … setup-ci` left only the shims, which then let every install through without a scan
|
|
75
|
+
# (joshuafolkken/kit#2711). `josh latest` moves both together.
|
|
76
|
+
- name: Setup safe-chain
|
|
77
|
+
if: inputs.install == 'true'
|
|
78
|
+
shell: bash
|
|
79
|
+
env:
|
|
80
|
+
SAFE_CHAIN_INSTALLER_VERSION: 1.5.20
|
|
81
|
+
SAFE_CHAIN_INSTALLER_SHA256: 0ad25efe15d1fa56105157a454d647223e78eb0c53d1f85e3d10afcd722e7bfd
|
|
82
|
+
run: |
|
|
83
|
+
installer="$RUNNER_TEMP/install-safe-chain.sh"
|
|
84
|
+
curl --proto '=https' -fsSL "https://github.com/AikidoSec/safe-chain/releases/download/$SAFE_CHAIN_INSTALLER_VERSION/install-safe-chain.sh" -o "$installer"
|
|
85
|
+
echo "$SAFE_CHAIN_INSTALLER_SHA256 $installer" | sha256sum -c -
|
|
86
|
+
sh "$installer" --ci
|
|
87
|
+
|
|
88
|
+
- name: Install dependencies
|
|
89
|
+
if: inputs.install == 'true'
|
|
90
|
+
shell: bash
|
|
91
|
+
env:
|
|
92
|
+
NODE_AUTH_TOKEN: ${{ inputs.node-auth-token || env.NODE_AUTH_TOKEN }}
|
|
93
|
+
run: pnpm install --frozen-lockfile --ignore-scripts
|
package/.github/dependabot.yml
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
version: 2
|
|
2
2
|
updates:
|
|
3
|
+
# The local composite actions pin actions of their own, and Dependabot reads only the directories
|
|
4
|
+
# it is given — `/` covers `.github/workflows` and no `.github/actions/*/action.yml`.
|
|
3
5
|
- package-ecosystem: 'github-actions'
|
|
4
|
-
|
|
6
|
+
directories:
|
|
7
|
+
- '/'
|
|
8
|
+
- '/.github/actions/*'
|
|
5
9
|
schedule:
|
|
6
10
|
interval: 'weekly'
|
|
7
11
|
# Version updates are disabled: `josh latest` runs at the start of every fullrun / halfrun /
|
|
@@ -9,6 +9,7 @@ jobs:
|
|
|
9
9
|
name: Create Git Tag if Version Changed
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
permissions:
|
|
12
|
+
actions: write
|
|
12
13
|
contents: write
|
|
13
14
|
steps:
|
|
14
15
|
- name: Checkout code
|
|
@@ -109,3 +110,23 @@ jobs:
|
|
|
109
110
|
with:
|
|
110
111
|
event-type: new-tag-created
|
|
111
112
|
client-payload: '{"tag": "${{ steps.create_tag.outputs.tag }}"}'
|
|
113
|
+
|
|
114
|
+
# A publish workflow run on the tag ref records the tag's commit in npm provenance; a
|
|
115
|
+
# repository_dispatch run records the default branch head, which may already be past the tag.
|
|
116
|
+
# A publish.yml that still listens for new-tag-created is left to the dispatch above, so one
|
|
117
|
+
# release never starts two publish runs. This step runs after that dispatch so its failure
|
|
118
|
+
# cannot keep the dispatch from reaching production.yml.
|
|
119
|
+
- name: Start publish workflow on the tag
|
|
120
|
+
if: steps.create_tag.outputs.completed == 'true'
|
|
121
|
+
env:
|
|
122
|
+
GH_TOKEN: ${{ github.token }}
|
|
123
|
+
GH_REPO: ${{ github.repository }}
|
|
124
|
+
TAG: ${{ steps.create_tag.outputs.tag }}
|
|
125
|
+
run: |
|
|
126
|
+
WORKFLOW=.github/workflows/publish.yml
|
|
127
|
+
if [ -f "$WORKFLOW" ] && grep -Eq '^[[:space:]]*workflow_dispatch:' "$WORKFLOW" && ! grep -q 'new-tag-created' "$WORKFLOW"; then
|
|
128
|
+
gh workflow run publish.yml --ref "$TAG"
|
|
129
|
+
echo "✅ Started publish.yml on $TAG"
|
|
130
|
+
else
|
|
131
|
+
echo "ℹ️ publish.yml is not a workflow_dispatch-only publisher, skipping"
|
|
132
|
+
fi
|
package/.github/workflows/ci.yml
CHANGED
|
@@ -27,13 +27,10 @@ concurrency:
|
|
|
27
27
|
# set the JOSH_PLAYWRIGHT_BROWSERS repository variable to a space-separated list to widen it.
|
|
28
28
|
env:
|
|
29
29
|
JOSH_PLAYWRIGHT_BROWSERS: ${{ vars.JOSH_PLAYWRIGHT_BROWSERS || 'chromium' }}
|
|
30
|
-
# The safe-chain release every "Setup safe-chain" step installs, and the SHA-256 of that release's
|
|
31
|
-
# install-safe-chain.sh. The installer puts the safe-chain binary under ~/.safe-chain/bin and
|
|
32
|
-
# adds it to PATH beside the shims; `pnpm dlx … setup-ci` left only the shims, which then let
|
|
33
|
-
# every install through without a scan (joshuafolkken/kit#2711). `josh latest` moves both together.
|
|
34
|
-
SAFE_CHAIN_INSTALLER_VERSION: 1.5.20
|
|
35
|
-
SAFE_CHAIN_INSTALLER_SHA256: 0ad25efe15d1fa56105157a454d647223e78eb0c53d1f85e3d10afcd722e7bfd
|
|
36
30
|
|
|
31
|
+
# Every job that needs pnpm prepares it through `.github/actions/setup-pnpm`, which carries the
|
|
32
|
+
# pnpm version resolution, the store cache, the safe-chain installer pin and the install
|
|
33
|
+
# (joshuafolkken/kit#2982).
|
|
37
34
|
jobs:
|
|
38
35
|
node-26-pnpm:
|
|
39
36
|
name: Node 26 pnpm
|
|
@@ -43,17 +40,10 @@ jobs:
|
|
|
43
40
|
contents: read
|
|
44
41
|
steps:
|
|
45
42
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
46
|
-
-
|
|
47
|
-
id: pnpm-version
|
|
48
|
-
run: |
|
|
49
|
-
version=$(node -p "const m = require('./package.json'); m.packageManager?.match(/^pnpm@([^+]+)/)?.[1] ?? (m.devEngines?.packageManager?.name === 'pnpm' ? m.devEngines.packageManager.version?.split('+')[0] : 'latest') ?? 'latest'")
|
|
50
|
-
test -n "$version"
|
|
51
|
-
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
52
|
-
- uses: pnpm/setup@fbda4c85fc2e1e08721cd8763afea8f48d60f024 # v3.0.0
|
|
43
|
+
- uses: ./.github/actions/setup-pnpm
|
|
53
44
|
with:
|
|
54
|
-
version: ${{ steps.pnpm-version.outputs.version }}
|
|
55
45
|
runtime: node@26
|
|
56
|
-
install: false
|
|
46
|
+
install: 'false'
|
|
57
47
|
- run: node --version && pnpm --version
|
|
58
48
|
|
|
59
49
|
playwright-image:
|
|
@@ -223,7 +213,7 @@ jobs:
|
|
|
223
213
|
static-checks:
|
|
224
214
|
name: Static Checks
|
|
225
215
|
needs: reuse-pr-checks
|
|
226
|
-
if: ${{
|
|
216
|
+
if: ${{ !cancelled() && needs.reuse-pr-checks.outputs.reuse != 'true' }}
|
|
227
217
|
runs-on: ubuntu-latest
|
|
228
218
|
timeout-minutes: 8
|
|
229
219
|
permissions:
|
|
@@ -239,30 +229,6 @@ jobs:
|
|
|
239
229
|
node-version: '24'
|
|
240
230
|
registry-url: 'https://npm.pkg.github.com'
|
|
241
231
|
|
|
242
|
-
- name: Resolve pnpm version
|
|
243
|
-
id: pnpm-version
|
|
244
|
-
run: |
|
|
245
|
-
version=$(node -p "const m = require('./package.json'); m.packageManager?.match(/^pnpm@([^+]+)/)?.[1] ?? (m.devEngines?.packageManager?.name === 'pnpm' ? m.devEngines.packageManager.version?.split('+')[0] : 'latest') ?? 'latest'")
|
|
246
|
-
test -n "$version"
|
|
247
|
-
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
248
|
-
|
|
249
|
-
- name: Setup pnpm
|
|
250
|
-
uses: pnpm/setup@fbda4c85fc2e1e08721cd8763afea8f48d60f024 # v3.0.0
|
|
251
|
-
with:
|
|
252
|
-
version: ${{ steps.pnpm-version.outputs.version }}
|
|
253
|
-
install: false
|
|
254
|
-
|
|
255
|
-
- name: Resolve pnpm store path
|
|
256
|
-
run: echo "PNPM_STORE_PATH=$(pnpm store path)" >> "$GITHUB_ENV"
|
|
257
|
-
|
|
258
|
-
- name: Setup pnpm store cache
|
|
259
|
-
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
260
|
-
with:
|
|
261
|
-
path: ${{ env.PNPM_STORE_PATH }}
|
|
262
|
-
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
|
|
263
|
-
restore-keys: |
|
|
264
|
-
${{ runner.os }}-pnpm-store-
|
|
265
|
-
|
|
266
232
|
- name: Setup ESLint cache
|
|
267
233
|
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
268
234
|
id: eslint-cache
|
|
@@ -317,17 +283,10 @@ jobs:
|
|
|
317
283
|
${{ runner.os }}-cspell-cache-${{ hashFiles('pnpm-lock.yaml') }}-
|
|
318
284
|
${{ runner.os }}-cspell-cache-
|
|
319
285
|
|
|
320
|
-
- name: Setup
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
echo "$SAFE_CHAIN_INSTALLER_SHA256 $installer" | sha256sum -c -
|
|
325
|
-
sh "$installer" --ci
|
|
326
|
-
|
|
327
|
-
- name: Install dependencies
|
|
328
|
-
env:
|
|
329
|
-
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
330
|
-
run: pnpm install --frozen-lockfile --ignore-scripts
|
|
286
|
+
- name: Setup pnpm and install dependencies
|
|
287
|
+
uses: ./.github/actions/setup-pnpm
|
|
288
|
+
with:
|
|
289
|
+
node-auth-token: ${{ secrets.GITHUB_TOKEN }}
|
|
331
290
|
|
|
332
291
|
# One step rather than five, and concurrent rather than serial (joshuafolkken/kit#1216).
|
|
333
292
|
# `josh gate` is the command a developer runs before committing; it fans out to the same
|
|
@@ -366,13 +325,10 @@ jobs:
|
|
|
366
325
|
- name: Run verification gate
|
|
367
326
|
run: pnpm josh gate --verbose --no-unit
|
|
368
327
|
|
|
369
|
-
# The other half of the gate, on a runner of its own.
|
|
370
|
-
#
|
|
371
|
-
#
|
|
372
|
-
#
|
|
373
|
-
# `scripts/ci/ci-yml-action-parity.test.ts`, which pins the set of action names in this file to the
|
|
374
|
-
# set in `templates/workflows/ci.yml`; a local action cannot appear in a distributed template,
|
|
375
|
-
# because the template travels to consumers without it.
|
|
328
|
+
# The other half of the gate, on a runner of its own. A GitHub job is its own machine, so this job
|
|
329
|
+
# sets Node up again; the pnpm preamble is the shared `.github/actions/setup-pnpm` action
|
|
330
|
+
# (joshuafolkken/kit#2982), whose own action pins `scripts/ci/ci-yml-action-parity.test.ts` counts
|
|
331
|
+
# as this file's when it compares them with `templates/workflows/ci.yml`.
|
|
376
332
|
#
|
|
377
333
|
# No ESLint cache here — nothing in this job lints — and no `--maxWorkers`: `gate-plan.ts` leaves
|
|
378
334
|
# any machine below its measured 11 cores uncapped, so vitest sizes its own pool from the runner
|
|
@@ -380,7 +336,7 @@ jobs:
|
|
|
380
336
|
unit:
|
|
381
337
|
name: Unit Tests
|
|
382
338
|
needs: reuse-pr-checks
|
|
383
|
-
if: ${{
|
|
339
|
+
if: ${{ !cancelled() && needs.reuse-pr-checks.outputs.reuse != 'true' }}
|
|
384
340
|
runs-on: ubuntu-latest
|
|
385
341
|
timeout-minutes: 8
|
|
386
342
|
permissions:
|
|
@@ -396,41 +352,10 @@ jobs:
|
|
|
396
352
|
node-version: '24'
|
|
397
353
|
registry-url: 'https://npm.pkg.github.com'
|
|
398
354
|
|
|
399
|
-
- name:
|
|
400
|
-
|
|
401
|
-
run: |
|
|
402
|
-
version=$(node -p "const m = require('./package.json'); m.packageManager?.match(/^pnpm@([^+]+)/)?.[1] ?? (m.devEngines?.packageManager?.name === 'pnpm' ? m.devEngines.packageManager.version?.split('+')[0] : 'latest') ?? 'latest'")
|
|
403
|
-
test -n "$version"
|
|
404
|
-
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
405
|
-
|
|
406
|
-
- name: Setup pnpm
|
|
407
|
-
uses: pnpm/setup@fbda4c85fc2e1e08721cd8763afea8f48d60f024 # v3.0.0
|
|
408
|
-
with:
|
|
409
|
-
version: ${{ steps.pnpm-version.outputs.version }}
|
|
410
|
-
install: false
|
|
411
|
-
|
|
412
|
-
- name: Resolve pnpm store path
|
|
413
|
-
run: echo "PNPM_STORE_PATH=$(pnpm store path)" >> "$GITHUB_ENV"
|
|
414
|
-
|
|
415
|
-
- name: Setup pnpm store cache
|
|
416
|
-
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
355
|
+
- name: Setup pnpm and install dependencies
|
|
356
|
+
uses: ./.github/actions/setup-pnpm
|
|
417
357
|
with:
|
|
418
|
-
|
|
419
|
-
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
|
|
420
|
-
restore-keys: |
|
|
421
|
-
${{ runner.os }}-pnpm-store-
|
|
422
|
-
|
|
423
|
-
- name: Setup safe-chain
|
|
424
|
-
run: |
|
|
425
|
-
installer="$RUNNER_TEMP/install-safe-chain.sh"
|
|
426
|
-
curl --proto '=https' -fsSL "https://github.com/AikidoSec/safe-chain/releases/download/$SAFE_CHAIN_INSTALLER_VERSION/install-safe-chain.sh" -o "$installer"
|
|
427
|
-
echo "$SAFE_CHAIN_INSTALLER_SHA256 $installer" | sha256sum -c -
|
|
428
|
-
sh "$installer" --ci
|
|
429
|
-
|
|
430
|
-
- name: Install dependencies
|
|
431
|
-
env:
|
|
432
|
-
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
433
|
-
run: pnpm install --frozen-lockfile --ignore-scripts
|
|
358
|
+
node-auth-token: ${{ secrets.GITHUB_TOKEN }}
|
|
434
359
|
|
|
435
360
|
# **Through `josh test:unit`, never `vitest run` directly, and that is what makes a job split
|
|
436
361
|
# safe rather than a hole.** The guard decides between a skip and a failure, and
|
|
@@ -457,6 +382,10 @@ jobs:
|
|
|
457
382
|
# through with an E2E suite that never ran (see the `Detect E2E` job below, and
|
|
458
383
|
# https://github.com/joshuafolkken/kit/issues/991). A skipped aggregator would have reproduced that
|
|
459
384
|
# defect on the unit suite. Running always and failing explicitly is the only shape that cannot.
|
|
385
|
+
# That is also why this job alone keeps `always()` while the two halves use `!cancelled()`
|
|
386
|
+
# (joshuafolkken/kit#2980): a cancelled run must stop the minutes-long halves, but a skipped
|
|
387
|
+
# `Checks` on a cancelled head-SHA run would read as passing, so this seconds-long job still runs
|
|
388
|
+
# and fails on the halves' `cancelled` results.
|
|
460
389
|
#
|
|
461
390
|
# The results are read from the environment rather than interpolated into the script. `needs.*.result`
|
|
462
391
|
# is a GitHub-controlled enum and not attacker-controlled, but a `${{ }}` expression spliced into a
|
|
@@ -601,30 +530,6 @@ jobs:
|
|
|
601
530
|
node-version: '24'
|
|
602
531
|
registry-url: 'https://npm.pkg.github.com'
|
|
603
532
|
|
|
604
|
-
- name: Resolve pnpm version
|
|
605
|
-
id: pnpm-version
|
|
606
|
-
run: |
|
|
607
|
-
version=$(node -p "const m = require('./package.json'); m.packageManager?.match(/^pnpm@([^+]+)/)?.[1] ?? (m.devEngines?.packageManager?.name === 'pnpm' ? m.devEngines.packageManager.version?.split('+')[0] : 'latest') ?? 'latest'")
|
|
608
|
-
test -n "$version"
|
|
609
|
-
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
610
|
-
|
|
611
|
-
- name: Setup pnpm
|
|
612
|
-
uses: pnpm/setup@fbda4c85fc2e1e08721cd8763afea8f48d60f024 # v3.0.0
|
|
613
|
-
with:
|
|
614
|
-
version: ${{ steps.pnpm-version.outputs.version }}
|
|
615
|
-
install: false
|
|
616
|
-
|
|
617
|
-
- name: Resolve pnpm store path
|
|
618
|
-
run: echo "PNPM_STORE_PATH=$(pnpm store path)" >> "$GITHUB_ENV"
|
|
619
|
-
|
|
620
|
-
- name: Setup pnpm store cache
|
|
621
|
-
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
622
|
-
with:
|
|
623
|
-
path: ${{ env.PNPM_STORE_PATH }}
|
|
624
|
-
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
|
|
625
|
-
restore-keys: |
|
|
626
|
-
${{ runner.os }}-pnpm-store-
|
|
627
|
-
|
|
628
533
|
- name: Setup build cache
|
|
629
534
|
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
630
535
|
id: build-cache
|
|
@@ -636,17 +541,10 @@ jobs:
|
|
|
636
541
|
${{ runner.os }}-build-cache-e2e-${{ hashFiles('pnpm-lock.yaml') }}-
|
|
637
542
|
${{ runner.os }}-build-cache-e2e-
|
|
638
543
|
|
|
639
|
-
- name: Setup
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
echo "$SAFE_CHAIN_INSTALLER_SHA256 $installer" | sha256sum -c -
|
|
644
|
-
sh "$installer" --ci
|
|
645
|
-
|
|
646
|
-
- name: Install dependencies
|
|
647
|
-
env:
|
|
648
|
-
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
649
|
-
run: pnpm install --frozen-lockfile --ignore-scripts
|
|
544
|
+
- name: Setup pnpm and install dependencies
|
|
545
|
+
uses: ./.github/actions/setup-pnpm
|
|
546
|
+
with:
|
|
547
|
+
node-auth-token: ${{ secrets.GITHUB_TOKEN }}
|
|
650
548
|
|
|
651
549
|
# Only needed on the fallback path: the container image already ships browsers
|
|
652
550
|
# matching its own Playwright version. Invoked through the local bin rather than
|
|
@@ -15,13 +15,6 @@ on:
|
|
|
15
15
|
# nothing here needs it: every run reads the pull request's labels as they stand when it runs, not as
|
|
16
16
|
# its event carried them, so whichever suite GitHub counts as newest holds a current verdict.
|
|
17
17
|
|
|
18
|
-
# The same safe-chain installer pin as ci.yml — the release and its install-safe-chain.sh SHA-256.
|
|
19
|
-
# `pnpm dlx … setup-ci` left only shims, so the install below ran without a scan (joshuafolkken/kit#2765).
|
|
20
|
-
# `josh latest` moves both together, in this file and in ci.yml.
|
|
21
|
-
env:
|
|
22
|
-
SAFE_CHAIN_INSTALLER_VERSION: 1.5.20
|
|
23
|
-
SAFE_CHAIN_INSTALLER_SHA256: 0ad25efe15d1fa56105157a454d647223e78eb0c53d1f85e3d10afcd722e7bfd
|
|
24
|
-
|
|
25
18
|
jobs:
|
|
26
19
|
classification:
|
|
27
20
|
name: Release classification
|
|
@@ -45,41 +38,12 @@ jobs:
|
|
|
45
38
|
- name: Configure GitHub Packages authentication for existing projects
|
|
46
39
|
run: printf '//npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}\n' >> "$HOME/.npmrc"
|
|
47
40
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
test -n "$version"
|
|
53
|
-
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
54
|
-
|
|
55
|
-
- name: Setup pnpm
|
|
56
|
-
uses: pnpm/setup@fbda4c85fc2e1e08721cd8763afea8f48d60f024 # v3.0.0
|
|
57
|
-
with:
|
|
58
|
-
version: ${{ steps.pnpm-version.outputs.version }}
|
|
59
|
-
install: false
|
|
60
|
-
|
|
61
|
-
- name: Resolve pnpm store path
|
|
62
|
-
run: echo "PNPM_STORE_PATH=$(pnpm store path)" >> "$GITHUB_ENV"
|
|
63
|
-
|
|
64
|
-
- name: Setup pnpm store cache
|
|
65
|
-
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
41
|
+
# The shared pnpm preamble — version, store cache, the safe-chain installer pin and the install
|
|
42
|
+
# (joshuafolkken/kit#2765, joshuafolkken/kit#2982).
|
|
43
|
+
- name: Setup pnpm and install dependencies
|
|
44
|
+
uses: ./.github/actions/setup-pnpm
|
|
66
45
|
with:
|
|
67
|
-
|
|
68
|
-
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}
|
|
69
|
-
restore-keys: |
|
|
70
|
-
${{ runner.os }}-pnpm-store-
|
|
71
|
-
|
|
72
|
-
- name: Setup safe-chain
|
|
73
|
-
run: |
|
|
74
|
-
installer="$RUNNER_TEMP/install-safe-chain.sh"
|
|
75
|
-
curl --proto '=https' -fsSL "https://github.com/AikidoSec/safe-chain/releases/download/$SAFE_CHAIN_INSTALLER_VERSION/install-safe-chain.sh" -o "$installer"
|
|
76
|
-
echo "$SAFE_CHAIN_INSTALLER_SHA256 $installer" | sha256sum -c -
|
|
77
|
-
sh "$installer" --ci
|
|
78
|
-
|
|
79
|
-
- name: Install dependencies
|
|
80
|
-
env:
|
|
81
|
-
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
82
|
-
run: pnpm install --frozen-lockfile --ignore-scripts
|
|
46
|
+
node-auth-token: ${{ secrets.GITHUB_TOKEN }}
|
|
83
47
|
|
|
84
48
|
- name: Check release classification
|
|
85
49
|
env:
|