Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
900717c
refactor: remove broker (#1166)
andreivladbrg Feb 6, 2025
bf5d556
ci: run fork tests on 2 days a week (#1174)
smol-ninja Feb 10, 2025
b2f3392
chore: remove defaults in prettier config
PaulRBerg Feb 11, 2025
af1f8ff
build: install evm utils (#1167)
andreivladbrg Feb 11, 2025
6ae0b8a
test: fix 1 FEB 2025 epoch timestamp
andreivladbrg Feb 11, 2025
caec323
feat: return value in cancel and make cancelMultiple non-reverting (#…
smol-ninja Feb 11, 2025
7164e60
build: bump evm-utils
andreivladbrg Feb 12, 2025
e6c68fd
test(refactor): StreamIDs struct in Types (#1175)
smol-ninja Feb 12, 2025
966c924
chore: remove benchmarks (#1176)
smol-ninja Feb 14, 2025
fb981f0
docs: update BTT section
PaulRBerg Feb 17, 2025
95717b7
docs: move sections around in README
PaulRBerg Feb 17, 2025
4cced48
docs: renaming of functions and variables (#1177)
smol-ninja Feb 17, 2025
63c8573
script: include Lockup Tranched in Init script
smol-ninja Feb 18, 2025
59e9ff8
test: refactor fork tests to use a shared contract (#1179)
smol-ninja Feb 20, 2025
e1a74b3
feat: erc20 recovery (#1182)
andreivladbrg Feb 21, 2025
057a4dd
test: add err arg to token assertion
smol-ninja Feb 21, 2025
20a9a39
Update README.md
Radovenchyk Feb 23, 2025
1c0a329
Merge pull request #1188 from Radovenchyk/patch-1
PaulRBerg Feb 24, 2025
a0e5f2a
build: bump evm utils (#1186)
andreivladbrg Feb 28, 2025
7475c11
ci: run fork tests on latest block
smol-ninja Mar 2, 2025
9b2f97a
docs: update license
Radovenchyk Mar 5, 2025
a8528a6
Merge pull request #1199 from Radovenchyk/patch-2
smol-ninja Mar 5, 2025
dfb1949
test(fork): run fork tests without forking the chain in non-productio…
smol-ninja Mar 5, 2025
82d2b8f
docs: update license date
andreivladbrg Mar 6, 2025
319e4c7
build: add more endpoints (#1200)
andreivladbrg Mar 6, 2025
bb7a1b2
docs: refactor SECURITY doc (#1206)
smol-ninja Mar 13, 2025
ac57d5f
build: use solc 0.8.29 (#1207)
andreivladbrg Mar 13, 2025
f3f6537
docs: improve writing in NatSpec (#1210)
PaulRBerg Mar 18, 2025
212e0c6
Audit fixes (#1209)
andreivladbrg Mar 20, 2025
cb4722e
docs: update contributing guide
PaulRBerg Mar 23, 2025
42431b3
build: bump evm utils (#1225)
andreivladbrg Mar 24, 2025
88a358e
test(chore): don't use named args for setMsgSender
andreivladbrg Mar 24, 2025
13750ca
ci: enable Prettier formatting for YML workflows
PaulRBerg Mar 25, 2025
a8cfc46
refactor: rename "aggregateBalance" to "aggregateAmount" (#1228)
andreivladbrg Mar 27, 2025
373e2d8
chore: use plural form for scripts (#1232)
andreivladbrg Mar 31, 2025
46cddbc
refactor: move shell scripts under scripts/bash (#1233)
andreivladbrg Mar 31, 2025
e7829d8
build: cache prettier
smol-ninja Apr 2, 2025
0474865
chore: cache prettier checks
smol-ninja Apr 4, 2025
0c9114d
docs: explain why shanghai EVM is used
PaulRBerg Apr 8, 2025
e9b6284
docs: relative links in CONTRIBUTING guide
PaulRBerg Apr 8, 2025
79cbb31
chore: fix taplo TOML formatter
PaulRBerg Apr 8, 2025
7893b23
chore: remove redundant cache location
PaulRBerg Apr 8, 2025
6aec74a
build: use bun lock textfile
PaulRBerg Apr 9, 2025
9b24abd
chore: update prettier ignore paths
PaulRBerg Apr 9, 2025
e8a1bdb
Remove remappings (#1238)
andreivladbrg Apr 10, 2025
9e8d4de
feat: collect fee with fee recipient (#1239)
smol-ninja Apr 11, 2025
19421f4
ci: new cache mechanism
PaulRBerg Apr 15, 2025
e442e5b
ci: use new gha-utils repo
PaulRBerg Apr 16, 2025
41ac9b2
feat: access based control over collect fee function (#1242)
smol-ninja Apr 19, 2025
3e22e71
refactor: remove MAX_COUNT (#1243)
smol-ninja Apr 19, 2025
bf78494
ci: sync github actions with staging
PaulRBerg Apr 22, 2025
e06ebbe
perf: refactor for code size optimization (#1244)
smol-ninja Apr 25, 2025
462c063
ci: remove unused workflows
PaulRBerg Apr 28, 2025
45a3303
docs: remove extra spaces
smol-ninja Apr 28, 2025
13b29a4
feat: state contract (#1247)
andreivladbrg Apr 30, 2025
889b483
build: bump dependencies, refactor Defaults contract (#1249)
smol-ninja May 2, 2025
d85521f
docs: document segment change (#1250)
PaulRBerg May 9, 2025
3d14cab
build: bump evm-utils and solhint
smol-ninja May 12, 2025
90912b3
build: remove taiko endpoints
andreivladbrg May 14, 2025
fb720bf
chore: fix camel case for a variable
smol-ninja May 15, 2025
a34cdf1
build: bump evm-utils
smol-ninja May 21, 2025
c495b94
chore: various configs improvements
PaulRBerg May 22, 2025
ca2b70d
ci: temporarily use evm-lint.yml workflow
PaulRBerg May 22, 2025
0d44647
Merge pull request #1254 from sablier-labs/chore/just
PaulRBerg Jun 11, 2025
f18eeb7
refactor: use comptroller (#1260)
andreivladbrg Jun 13, 2025
0989ef3
chore: bump date
smol-ninja Jun 14, 2025
16c39c8
refactor: adds separate contract and type for each lockup model (#1261)
smol-ninja Jun 16, 2025
fc89fed
chore: repomix config
PaulRBerg Jun 22, 2025
92b8b79
chore: format repomix config
PaulRBerg Jun 23, 2025
32278f8
chore: remove smt (#1265)
PaulRBerg Jun 23, 2025
9a8f2b0
ci: remove generate svg workflow (#1266)
PaulRBerg Jun 23, 2025
f44814e
docs: add invariants README (#1269)
Hayk-1315 Jul 8, 2025
3c417a2
style: format invariant README
andreivladbrg Jul 9, 2025
a76afd7
docs: sequential order
andreivladbrg Jul 9, 2025
0c44932
refactor: ComptrollerManager to Comptrollerable (#1268)
smol-ninja Jul 9, 2025
e75fd50
feat: function to calculate min fee in wei for a given stream ID (#1270)
smol-ninja Jul 10, 2025
292be5e
docs: update readme
smol-ninja Jul 10, 2025
9d5ea4e
build: set bytecode_hash to ipfs
smol-ninja Jul 13, 2025
d30c04f
feat: add `CreateBatchLockup` event in `BatchLockup` (#1274)
smol-ninja Jul 21, 2025
46a101d
docs: update license ens (#1275)
PaulRBerg Jul 23, 2025
8fd36c9
docs: update ens subname in license
PaulRBerg Jul 24, 2025
16e8ae3
build: bump solhint (#1276)
smol-ninja Jul 24, 2025
8ba8baa
fix: delete bun.lockb file and fix lint
smol-ninja Jul 28, 2025
6e523fb
chore: disable no-console in solhint tests
PaulRBerg Jul 28, 2025
596626b
build: bump evm-utils package
smol-ninja Jul 28, 2025
8f50abe
Add Claude Code GitHub Workflow (#1282)
PaulRBerg Aug 11, 2025
3c2ad02
ci: bump checkout to v5 (#1283)
rejected-l Aug 13, 2025
e004930
Add invariant comparing gas used by create with cancel and withdraw (…
smol-ninja Aug 13, 2025
a339e9d
build: bump forge-std to v1.10.0
smol-ninja Aug 15, 2025
1db4e0c
test: fix inheritances in utils contracts
smol-ninja Aug 15, 2025
a8683d0
chore: add show_metrics and lint_on_build in foundry config
smol-ninja Aug 16, 2025
74c0389
ci: add workflow_dispatch to ci-fork
smol-ninja Aug 27, 2025
6d3ff7d
build: use routeme rpcs for all chains (#1284)
smol-ninja Aug 27, 2025
bc680db
chore: rename ROUTEME_API_KEY to ROUTEMESH_API_KEY
smol-ninja Aug 28, 2025
ea4946c
ci: attempt fork-test twice
smol-ninja Sep 1, 2025
1c39a94
build: bump evm-utils
smol-ninja Sep 2, 2025
5559c6e
build: rename `prepare` script to `setup` (#1285)
smol-ninja Sep 4, 2025
68819d9
docs: roll v3.0.0-beta.0
PaulRBerg Sep 9, 2025
9343fdf
test: fix invariant deal (#1287)
PaulRBerg Sep 9, 2025
d5dccff
test: use `getBlockTimestamp()` instead of `block.timestamp` (#1288)
PaulRBerg Sep 10, 2025
3e35274
test: fix names when multiple functions are tested in the same file
smol-ninja Sep 18, 2025
b9019ad
build: bump evm-utils for deployments (#1289)
andreivladbrg Sep 25, 2025
7122ef1
ci: rename tree-path to test-dir
smol-ninja Sep 28, 2025
e0e6df1
Deployment preparation (#1290)
andreivladbrg Sep 29, 2025
4d0e6e1
chore: include "Lockup" in nft descriptor scripts (#1291)
andreivladbrg Oct 1, 2025
e72009a
feat: add nft descriptor addresses (#1292)
andreivladbrg Oct 1, 2025
572624b
fix: add broadcast modifier in protocol scripts (#1293)
andreivladbrg Oct 3, 2025
4ff8597
chore: misc
andreivladbrg Oct 4, 2025
bcca119
chore: add zksync nft descriptor
andreivladbrg Oct 4, 2025
1eb56a7
script: add previous nft descriptor for hyperevm
smol-ninja Oct 6, 2025
c3ea410
build: use "direct" instead of "lb" for endpoints (#1294)
andreivladbrg Oct 6, 2025
554de77
ci: remove fork path from coverage (#1295)
andreivladbrg Oct 6, 2025
01276b8
chore: merging conflicts when rebasing from main
smol-ninja Oct 7, 2025
eeb739c
docs: release 3.0.0
smol-ninja Oct 7, 2025
d648b49
docs: polish changelog
smol-ninja Oct 7, 2025
2ae61cd
docs: remove forge-std update from changelog
smol-ninja Oct 9, 2025
64f45ee
docs: update forge install commands
andreivladbrg Oct 9, 2025
546e66b
docs: reference deployments guide from docs
andreivladbrg Oct 9, 2025
9392295
chore: release v3.0.0 (#1296)
smol-ninja Oct 14, 2025
209212d
bump version to 3.0.1 (#1297)
smol-ninja Oct 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export EOA="YOUR_EOA_ADDRESS"
export FOUNDRY_PROFILE="lite"
export MNEMONIC="YOUR_MNEMONIC"
export MAINNET_RPC_URL="YOUR_MAINNET_RPC_URL"

ETH_FROM="YOUR_DEPLOYER_ADDRESS"
FOUNDRY_PROFILE="lite"
MNEMONIC="YOUR_MNEMONIC"
MAINNET_RPC_URL="YOUR_MAINNET_RPC_URL"
ROUTEMESH_API_KEY="YOUR_API_KEY" # Get yours from https://routeme.sh/
39 changes: 19 additions & 20 deletions .github/workflows/ci-deep.yml
Original file line number Diff line number Diff line change
@@ -1,62 +1,59 @@
name: "CI Deep"

env:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}

on:
schedule:
- cron: "0 3 * * 0" # at 3:00am UTC every Sunday
workflow_dispatch:
inputs:
unitFuzzRuns:
default: '50000'
default: "50000"
description: "Unit: number of fuzz runs."
required: false
integrationFuzzRuns:
default: '50000'
default: "50000"
description: "Integration: number of fuzz runs."
required: false
invariantRuns:
default: '100'
default: "100"
description: "Invariant runs: number of sequences of function calls generated and run."
required: false
invariantDepth:
default: '100'
default: "100"
description: "Invariant depth: number of function calls made in a given run."
required: false
forkFuzzRuns:
default: '1000'
default: "1000"
description: "Fork: number of fuzz runs."
required: false

jobs:
lint:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-lint.yml@main"
check:
uses: "sablier-labs/gha-utils/.github/workflows/full-check.yml@main"

build:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-build.yml@main"
uses: "sablier-labs/gha-utils/.github/workflows/forge-build.yml@main"

test-unit:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: ${{ fromJSON(inputs.unitFuzzRuns || '50000') }}
foundry-profile: "test-optimized"
match-path: "tests/unit/**/*.sol"
name: "Unit tests"

test-integration:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: ${{ fromJSON(inputs.integrationFuzzRuns || '50000') }}
foundry-profile: "test-optimized"
match-path: "tests/integration/**/*.sol"
name: "Integration tests"

test-invariant:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-invariant-depth: ${{ fromJSON(inputs.invariantDepth || '100') }}
foundry-invariant-runs: ${{ fromJSON(inputs.invariantRuns || '100') }}
Expand All @@ -65,19 +62,21 @@ jobs:
name: "Invariant tests"

test-fork:
needs: ["lint", "build"]
needs: ["check", "build"]
secrets:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
ROUTEMESH_API_KEY: ${{ secrets.ROUTEMESH_API_KEY }}
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: ${{ fromJSON(inputs.forkFuzzRuns || '1000') }}
foundry-profile: "test-optimized"
match-path: "tests/fork/**/*.sol"
name: "Fork tests"
retry-attempts: 2

notify-on-failure:
if: failure()
needs: ["lint", "build", "test-unit", "test-integration", "test-invariant", "test-fork"]
needs: ["check", "build", "test-unit", "test-integration", "test-invariant", "test-fork"]
runs-on: "ubuntu-latest"
steps:
- name: "Send Slack notification"
Expand Down
35 changes: 19 additions & 16 deletions .github/workflows/ci-fork.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,42 @@
name: "CI Fork and Util tests"

on:
workflow_dispatch:
schedule:
- cron: "0 3 * * 1,3,5" # at 3:00 AM UTC on Monday, Wednesday and Friday

jobs:
lint:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-lint.yml@main"
check:
uses: "sablier-labs/gha-utils/.github/workflows/full-check.yml@main"

build:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-build.yml@main"
uses: "sablier-labs/gha-utils/.github/workflows/forge-build.yml@main"

test-fork:
needs: ["lint", "build"]
secrets:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: 100
foundry-profile: "test-optimized"
fuzz-seed: true
match-path: "tests/fork/**/*.sol"
name: "Fork tests"
needs: ["check", "build"]
secrets:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
ROUTEMESH_API_KEY: ${{ secrets.ROUTEMESH_API_KEY }}
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: 100
foundry-profile: "test-optimized"
fuzz-seed: true
match-path: "tests/fork/**/*.sol"
name: "Fork tests"
retry-attempts: 2

test-utils:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-profile: "test-optimized"
match-path: "tests/utils/**/*.sol"
name: "Utils tests"

notify-on-failure:
if: failure()
needs: ["lint", "build", "test-fork", "test-utils"]
needs: ["check", "build", "test-fork", "test-utils"]
runs-on: "ubuntu-latest"
steps:
- name: "Send Slack notification"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@ jobs:
runs-on: "ubuntu-latest"
steps:
- name: "Check out the repo"
uses: "actions/checkout@v4"
uses: "actions/checkout@v5"

- name: "Install Bun"
uses: "oven-sh/setup-bun@v1"
uses: "oven-sh/setup-bun@v2"
with:
bun-version: "latest"

- name: "Install the Node.js dependencies"
run: "bun install --frozen-lockfile"
Expand All @@ -22,5 +24,5 @@ jobs:
uses: "PaulRBerg/foundry-multibuild@v1"
with:
min: "0.8.22"
max: "0.8.26"
max: "0.8.29"
skip-test: "true"
7 changes: 4 additions & 3 deletions .github/workflows/ci-slither.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ on:
- cron: "0 3 * * 0" # at 3:00am UTC every Sunday

jobs:
lint:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-lint.yml@main"
check:
uses: "sablier-labs/gha-utils/.github/workflows/full-check.yml@main"

slither-analyze:
uses: "sablier-labs/reusable-workflows/.github/workflows/slither-analyze.yml@main"
needs: "check"
uses: "sablier-labs/gha-utils/.github/workflows/slither-analyze.yml@main"
47 changes: 27 additions & 20 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,61 +14,68 @@ on:
- "staging-blast"

jobs:
lint:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-lint.yml@main"
check:
uses: "sablier-labs/gha-utils/.github/workflows/full-check.yml@main"

bulloak:
needs: ["lint"]
uses: "sablier-labs/reusable-workflows/.github/workflows/bulloak-check.yml@main"
build:
uses: "sablier-labs/gha-utils/.github/workflows/forge-build.yml@main"

test-bulloak:
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
uses: "sablier-labs/gha-utils/.github/workflows/bulloak-check.yml@main"
with:
skip-modifiers: true
tree-path: "tests"

build:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-build.yml@main"
test-dir: "tests"

test-unit:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: 2000
foundry-profile: "test-optimized"
match-path: "tests/unit/**/*.sol"
name: "Unit tests"

test-integration:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: 2000
foundry-profile: "test-optimized"
match-path: "tests/integration/**/*.sol"
name: "Integration tests"

test-invariant:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-profile: "test-optimized"
match-path: "tests/invariant/**/*.sol"
name: "Invariant tests"

test-fork:
needs: ["lint", "build"]
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
secrets:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
ROUTEMESH_API_KEY: ${{ secrets.ROUTEMESH_API_KEY }}
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: 20
foundry-profile: "test-optimized"
match-path: "tests/fork/**/*.sol"
name: "Fork tests"

coverage:
needs: ["lint", "build"]
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-coverage.yml@main"
uses: "sablier-labs/gha-utils/.github/workflows/forge-coverage.yml@main"
with:
match-path: "tests/{fork,integration,unit}/**/*.sol"
match-path: "tests/{integration,unit}/**/*.sol"
59 changes: 59 additions & 0 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Claude Code

on:
issues:
types: [opened, assigned]
issue_comment:
types: [created]
pull_request_review:
types: [submitted]
pull_request_review_comment:
types: [created]

jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
actions: read # Required for Claude to read CI results on PRs
contents: read
id-token: write
issues: read
pull-requests: read
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 1

- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@beta
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read

# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4.1)
model: "claude-opus-4-1-20250805"

# Optional: Trigger when specific user is assigned to an issue
# assignee_trigger: "claude-bot"

# Optional: Allow Claude to run specific commands
# allowed_tools: "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)"
# Optional: Add custom instructions for Claude to customize its behavior for your project
# custom_instructions: |
# Follow our coding standards
# Ensure all new code has tests
# Use TypeScript for new files

# Optional: Custom environment variables for Claude
# claude_env: |
# NODE_ENV: test
10 changes: 10 additions & 0 deletions .github/workflows/cron-stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: "Cron: Close Stale Issues and PRs"

on:
workflow_dispatch:
schedule:
- cron: "0 3 * * 0" # at 3:00am UTC every Sunday

jobs:
cron-stale:
uses: "sablier-labs/gha-utils/.github/workflows/cron-stale.yml@main"
Loading