Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
e63d85d
Spec for reimplementing TS graph-cli in Rust
lutter Jan 19, 2026
4b11030
gnd: Restructure CLI with subcommands for graph-cli compatibility
lutter Jan 19, 2026
f5454a5
gnd: Implement clean command
lutter Jan 19, 2026
8d063b7
gnd: Implement auth command
lutter Jan 19, 2026
24dc70a
gitignore: Ignore ralph-loop in .claude
lutter Jan 19, 2026
160da45
gnd: Add services module with GraphNodeClient
lutter Jan 19, 2026
e5d7d04
gnd: Implement create and remove commands
lutter Jan 19, 2026
38cd267
gnd: Add output/spinner module for CLI progress indicators
lutter Jan 19, 2026
eba232a
gnd: Add codegen module for AssemblyScript type generation
lutter Jan 19, 2026
58047ad
gnd: Add ABI code generator for Ethereum contract bindings
lutter Jan 19, 2026
6a1bb91
gnd: Add template code generator for dynamic data sources
lutter Jan 19, 2026
ef28efa
gnd: Add formatter module for Prettier integration
lutter Jan 19, 2026
ea455a3
gnd: Implement codegen command for AssemblyScript type generation
lutter Jan 19, 2026
08c084a
gnd: Add watch mode to codegen command
lutter Jan 19, 2026
e28e019
gnd: Add migrations module for manifest version upgrades
lutter Jan 19, 2026
794fc8d
gnd: Implement IPFS upload for build command
lutter Jan 19, 2026
8d324ba
gnd: Implement test command for running Matchstick tests
lutter Jan 19, 2026
a341ac7
gnd: Implement init command for scaffolding new subgraphs
lutter Jan 19, 2026
73160da
gnd: Implement add command for adding data sources to subgraphs
lutter Jan 19, 2026
01d52cd
gnd: Implement publish command for decentralized network
lutter Jan 19, 2026
7ba68b3
gnd: Implement networks.json configuration support
lutter Jan 19, 2026
48a1755
gnd: Implement contract service for ABI fetching
lutter Jan 19, 2026
53ff707
gnd: Implement init --from-contract with scaffold generation
lutter Jan 19, 2026
a24ad08
gnd: Implement add command for adding data sources
lutter Jan 19, 2026
a978841
gnd: Add comprehensive tests for add command
lutter Jan 19, 2026
28e98f3
gnd: Default deploy command to Subgraph Studio
lutter Jan 19, 2026
de66526
gnd: Add comprehensive tests for prompt module
lutter Jan 19, 2026
e49b2f9
gnd: Add more tests for init command
lutter Jan 19, 2026
01e5e00
gnd: Add test for simple array fields in schema codegen
lutter Jan 19, 2026
8b6f4b1
gnd: Add tests for overloaded events and functions in ABI codegen
lutter Jan 19, 2026
ef8bc82
gnd: Add support for nested array types in schema codegen
lutter Jan 19, 2026
2a12ee1
gnd: Add tests for tuple/struct types in ABI codegen
lutter Jan 19, 2026
b149faa
gnd: Add shell completions command
lutter Jan 19, 2026
2f2fb57
gnd: Add tests for array types in ABI codegen
lutter Jan 19, 2026
e4bf85f
gnd: Add codegen verification tests against graph-cli fixtures
lutter Jan 19, 2026
5cec6b6
gnd: Fix remaining codegen verification test fixtures
lutter Jan 19, 2026
f2a7a79
gnd: Make codegen verification tests self-contained
lutter Jan 19, 2026
596d2c9
gnd: Implement publish command matching graph-cli behavior
lutter Jan 20, 2026
4665602
gnd: Implement --from-subgraph for init command
lutter Jan 20, 2026
3460d42
docs: Update gnd-cli-expansion spec, commit plan for it, too
lutter Jan 20, 2026
1f0e081
gnd: Add CLI documentation and migration guide
lutter Jan 20, 2026
e42593a
docs: Update plan status, mark Phase 12 complete
lutter Jan 20, 2026
3b0a350
gnd: Add CLI integration tests for drop-in replacement verification
lutter Jan 20, 2026
b2189d0
gnd: Add schema validation using graph-node validation logic
lutter Jan 21, 2026
72a5228
gnd, graph: Add manifest validation using shared validation logic
lutter Jan 21, 2026
5f68a40
tests: Template IPFS hashes in subgraph datasource integration tests
lutter Jan 23, 2026
5139d77
tests: Switch integration tests to use gnd as default CLI
lutter Jan 21, 2026
eb867ce
tests: Remove graph-cli dependency from integration test subgraphs
lutter Jan 21, 2026
dcc1801
gnd: Fix struct field names in tuple codegen
lutter Jan 22, 2026
2a6b89e
gnd: Add codegen support for subgraph data sources
lutter Jan 22, 2026
bc00671
gnd: Fix template WASM and ABI handling in build command
lutter Jan 22, 2026
9de9cad
docs: Update gnd-cli-expansion spec with implementation progress
lutter Jan 22, 2026
db0e07c
gnd: Use datasource name for subgraph source codegen files
lutter Jan 23, 2026
5946cbb
gnd: Use Inflector to turn names to kebab_case
lutter Jan 23, 2026
7749846
gnd: Fix --from-example to clone from graph-tooling repo
lutter Jan 23, 2026
91384e0
gnd: Match graph-cli output format for init --from-example
lutter Jan 23, 2026
4679fe6
gnd: Support Hardhat/Foundry ABI artifact formats in codegen
lutter Jan 23, 2026
3fff250
gnd: Support auto-increment IDs for Int8 and Bytes in codegen
lutter Jan 30, 2026
6f715e1
gnd: Fix mapping file path and kebab-case conversion in scaffold
lutter Feb 3, 2026
533a612
gnd: Create networks.json in init --from-contract
lutter Feb 3, 2026
bd1018c
gnd: Use != instead of !== for AS < 0.20.0 compatibility
lutter Feb 3, 2026
b896a1c
gnd: Replace --network with --network-file and update networks.json i…
lutter Feb 3, 2026
a976b2f
gnd: Fetch contract info before prompts in interactive init mode
lutter Feb 3, 2026
7192197
gnd: Remove obsolete --spkg flag from init command
lutter Feb 3, 2026
211e661
gnd: Fix test_build_after_codegen to run codegen explicitly
lutter Feb 3, 2026
e7b095b
gnd: Add prompt to add another contract at end of init
lutter Feb 3, 2026
aa331b4
gnd: Prompt for new directory on collision instead of exiting with error
lutter Feb 3, 2026
e5614d3
gnd: Eliminate duplicate contract fetching in interactive init mode
lutter Feb 3, 2026
9f69d96
gnd: Remove schema editing from 'gnd add'
lutter Feb 3, 2026
2649154
gnd: Extract shared manifest and watch modules to reduce duplication
lutter Feb 3, 2026
ff529f8
gnd: Align scaffold output with graph-cli
lutter Feb 3, 2026
216d9d5
gnd: Update/modernize the templates for codegen
lutter Feb 3, 2026
5565f8d
gnd: Fix manifest_dir to handle bare filenames like "subgraph.yaml"
lutter Feb 3, 2026
81ccdf7
gnd: Only print about migrations if there are actually any
lutter Feb 3, 2026
69913fe
gnd: Consolidate reserved words and sanitization utilities
lutter Feb 4, 2026
20029a4
gnd: Normalize ABI artifacts during build to support Hardhat/Truffle …
lutter Feb 10, 2026
3d745b3
gnd: Fix duplicate "Next steps" hints during init+add loop
lutter Feb 10, 2026
88a5c0d
gnd: Run codegen after init --from-contract
lutter Feb 10, 2026
cd80c22
gnd: Resolve entity references to the referenced entity's actual ID type
lutter Feb 11, 2026
980d9ac
all: Unify/simplify some of our dependencies
lutter Feb 11, 2026
44ca8f6
gnd: Replace custom manifest parsing with graph-node types
lutter Feb 12, 2026
2cbe1b7
gnd: Wire manifest validation into codegen
lutter Feb 12, 2026
f7b173e
gnd: Add semantic manifest validation (source.abi, unique names, hand…
lutter Feb 12, 2026
2e253fb
gnd: Add graph-node-style Ethereum validation (kind, address, block h…
lutter Feb 12, 2026
d12d454
gnd: Validate WASM handler exports after compilation
lutter Feb 12, 2026
8d75cdf
gnd: Validate event/call handler signatures against ABI
lutter Feb 12, 2026
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
16 changes: 15 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,18 @@ jobs:
- name: Setup just
uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff # v3

- name: Install pnpm
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4

- name: Install Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 20
cache: pnpm

- name: Install Node.js dependencies
run: pnpm install

- name: Run unit tests
run: just test-unit

Expand Down Expand Up @@ -177,7 +189,9 @@ jobs:
run: just build --test integration_tests

- name: Run integration tests
run: just test-integration
run: |
export PATH="${{ github.workspace }}/node_modules/.bin:$PATH"
just test-integration

- name: Cat graph-node.log
if: always()
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,4 @@ logfile

# Local claude settings
.claude/settings.local.json
.claude/ralph-loop.local.md
14 changes: 5 additions & 9 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,21 +84,20 @@ When filtering for specific tests, ensure the intended test name(s) appear in th
3. Anvil running on localhost:3021
4. PNPM
5. Foundry (for smart contract compilation)
6. **Built graph-node binary** (integration tests require the compiled binary)

The environment dependencies and environment setup are operated by the human.

**Running Integration Tests:**

```bash
# REQUIRED: Build graph-node binary before running integration tests
just build

# Run all integration tests
# Run all integration tests (automatically builds graph-node and gnd)
just test-integration

# Run a specific integration test case (e.g., "grafted" test case)
TEST_CASE=grafted just test-integration

# (Optional) Use graph-cli instead of gnd for compatibility testing
GRAPH_CLI=node_modules/.bin/graph just test-integration
```

**⚠️ Test Verification Requirements:**
Expand Down Expand Up @@ -258,10 +257,7 @@ just test-runner
# PostgreSQL: localhost:3011, IPFS: localhost:3001, Anvil: localhost:3021
nix run .#integration

# Claude: Build graph-node binary before running integration tests
just build

# Claude: Run integration tests
# Claude: Run integration tests (automatically builds graph-node and gnd)
just test-integration
```

Expand Down
Loading