Skip to content

Migrate soldeer dep rain-interpreter-interface 0.1.0 -> rainlang-interface 0.2.3 - #557

Closed
thedavidmeister wants to merge 3 commits into
mainfrom
2026-08-19-issue-107-rainlang-interface
Closed

Migrate soldeer dep rain-interpreter-interface 0.1.0 -> rainlang-interface 0.2.3#557
thedavidmeister wants to merge 3 commits into
mainfrom
2026-08-19-issue-107-rainlang-interface

Conversation

@thedavidmeister

@thedavidmeister thedavidmeister commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Refs rainlanguage/rainlang.interface#107

Migrates the soldeer dependency rain-interpreter-interface 0.1.0 to rainlang-interface 0.2.3. The interface repo/package was renamed; the legacy rain-interpreter-interface package is frozen at 0.1.2 and all new publishes go to rainlang-interface (latest 0.2.3).

This delivers what #551 was blocked on: rain-math-binary 0.1.4 arrives inside rainlang-interface-0.2.3 (its LibParseMeta/LibGenParseMeta import rain-math-binary-0.1.4/...), and because soldeer resolution is flat this repo's [dependencies] now carries rain-math-binary = "0.1.4" to satisfy it.

Changes

  • foundry.toml: rain-interpreter-interface = "0.1.0" -> rainlang-interface = "0.2.3"; rain-math-binary = "0.1.1" -> "0.1.4" (required by the new package under flat resolution).
  • soldeer.lock: regenerated with forge soldeer update.
  • All 254 Solidity files importing rain-interpreter-interface-0.1.0/... rewritten to rainlang-interface-0.2.3/...; the one direct rain-math-binary-0.1.1/src/lib/LibCtPop.sol import rewritten to 0.1.4.
  • remappings.txt: stale remappings for the two replaced package versions removed; new ones added by soldeer.

Interface changes absorbed

Diffed rain-interpreter-interface-0.1.0 against rainlang-interface-0.2.3 (both from the soldeer registry): the src/ trees are identical except LibParseMeta.sol and LibGenParseMeta.sol bumping their LibCtPop import from rain-math-binary-0.1.1 to -0.1.4. No API/ABI changes. rain-math-binary 0.1.1 -> 0.1.4 itself is NatSpec/doc-comment-only in LibCtPop.sol — no behavioral change.

Build / test

  • nix develop -c forge build: green.
  • nix develop -c forge test: 1589 passed, 5 failed, 0 skipped (1594 total). The 5 failures are the pre-existing LibInterpreterDeployProd.t.sol testProdDeploy* fork tests failing on live chain state ("Interpreter not deployed"); main's own CI (run 29477065455) fails the exact same 5 tests with the same message. They assert hardcoded address/codehash constants (untouched by this diff) against live chains. Locally Polygon additionally reports HTTP 401 because the public RPC endpoint used in place of the CI secret rejects the request before the same assertion is reached.

QA

  • Discriminating tests: n/a — dependency migration with zero source-logic changes (import-path rewrite only); the existing 1589-test suite compiled and ran green against the new packages.
  • Mutations applied: n/a — no production logic changed, so there is no new branch or expression to mutate; a path-string mutation is caught by the compiler, not a test.
  • Oracle: package diff — old vs new registry zips diffed file-by-file; only the two LibCtPop import bumps in src, and doc-comment-only changes in LibCtPop.sol itself.
  • Category check: dependency-migration PR — foundry.toml + soldeer.lock + remappings + mechanical import rewrites, no behavior change intended or observed (identical pass/fail set as main's CI).

🤖 Generated with Claude Code

CI fixes (post-push)

  • copy-artifacts (run 32215268374): the job's regen sequence (forge soldeer install, script/Build.sol, script/CopyArtifacts.sol --ffi, forge build, forge fmt) left a dirty tree — forge fmt collapses seven import blocks that only wrapped because the old rain-interpreter-interface-0.1.0/ prefix was longer. Reproduced byte-for-byte in the same pinned rainix sol-shell and committed (4775a2c). The regenerated pointer/meta/abi artifacts themselves were already current.
  • rainix-sol/static and rs-static: both fail the rainix agent-context-cap check — CLAUDE.md was 8587 bytes against the floor-only 4096 cap. Trimmed to 2086 bytes keeping repo-specific rulings, cutting discoverable content (10e0ef7); verified clean locally with the same rainix-static -- agent-context-cap . binary from rainix main.
  • rainix-sol/test: only the 5 pre-existing testProdDeploy* chain-state failures (1589 succeeded) — identical to main's CI. Nothing to fix on this branch.

…rface 0.2.3

The interface repo/package was renamed; legacy rain-interpreter-interface
is frozen at 0.1.2 and all new publishes go to rainlang-interface.

- foundry.toml: rain-interpreter-interface 0.1.0 -> rainlang-interface 0.2.3
- foundry.toml: rain-math-binary 0.1.1 -> 0.1.4, because soldeer resolution
  is flat and rainlang-interface-0.2.3 imports rain-math-binary-0.1.4
- soldeer.lock regenerated with forge soldeer update
- all import paths rewritten to the new versioned package prefixes
- stale remappings for the replaced packages removed

Refs rainlanguage/rainlang.interface#107

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 253 files, which is 153 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: ebb19082-bddd-4c60-9d89-3d05c9585b68

📥 Commits

Reviewing files that changed from the base of the PR and between a6b7ad7 and 10e0ef7.

⛔ Files ignored due to path filters (2)
  • CLAUDE.md is excluded by !CLAUDE.md
  • soldeer.lock is excluded by !**/*.lock
📒 Files selected for processing (253)
  • foundry.toml
  • remappings.txt
  • script/Build.sol
  • src/abstract/BaseRainlangExtern.sol
  • src/abstract/BaseRainlangSubParser.sol
  • src/concrete/RainlangExpressionDeployer.sol
  • src/concrete/RainlangInterpreter.sol
  • src/concrete/RainlangParser.sol
  • src/concrete/RainlangStore.sol
  • src/error/ErrExtern.sol
  • src/lib/eval/LibEval.sol
  • src/lib/extern/LibExtern.sol
  • src/lib/extern/reference/op/LibExternOpContextCallingContract.sol
  • src/lib/extern/reference/op/LibExternOpContextRainlen.sol
  • src/lib/extern/reference/op/LibExternOpContextSender.sol
  • src/lib/extern/reference/op/LibExternOpIntInc.sol
  • src/lib/extern/reference/op/LibExternOpStackOperand.sol
  • src/lib/integrity/LibIntegrityCheck.sol
  • src/lib/op/00/LibOpConstant.sol
  • src/lib/op/00/LibOpContext.sol
  • src/lib/op/00/LibOpExtern.sol
  • src/lib/op/00/LibOpStack.sol
  • src/lib/op/LibAllStandardOps.sol
  • src/lib/op/bitwise/LibOpBitwiseAnd.sol
  • src/lib/op/bitwise/LibOpBitwiseCountOnes.sol
  • src/lib/op/bitwise/LibOpBitwiseDecode.sol
  • src/lib/op/bitwise/LibOpBitwiseEncode.sol
  • src/lib/op/bitwise/LibOpBitwiseOr.sol
  • src/lib/op/bitwise/LibOpBitwiseShiftLeft.sol
  • src/lib/op/bitwise/LibOpBitwiseShiftRight.sol
  • src/lib/op/call/LibOpCall.sol
  • src/lib/op/crypto/LibOpHash.sol
  • src/lib/op/erc20/LibOpERC20Allowance.sol
  • src/lib/op/erc20/LibOpERC20BalanceOf.sol
  • src/lib/op/erc20/LibOpERC20TotalSupply.sol
  • src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.sol
  • src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.sol
  • src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.sol
  • src/lib/op/erc5313/LibOpERC5313Owner.sol
  • src/lib/op/erc721/LibOpERC721BalanceOf.sol
  • src/lib/op/erc721/LibOpERC721OwnerOf.sol
  • src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.sol
  • src/lib/op/evm/LibOpBlockNumber.sol
  • src/lib/op/evm/LibOpBlockTimestamp.sol
  • src/lib/op/evm/LibOpChainId.sol
  • src/lib/op/logic/LibOpAny.sol
  • src/lib/op/logic/LibOpBinaryEqualTo.sol
  • src/lib/op/logic/LibOpConditions.sol
  • src/lib/op/logic/LibOpEnsure.sol
  • src/lib/op/logic/LibOpEqualTo.sol
  • src/lib/op/logic/LibOpEvery.sol
  • src/lib/op/logic/LibOpGreaterThan.sol
  • src/lib/op/logic/LibOpGreaterThanOrEqualTo.sol
  • src/lib/op/logic/LibOpIf.sol
  • src/lib/op/logic/LibOpIsZero.sol
  • src/lib/op/logic/LibOpLessThan.sol
  • src/lib/op/logic/LibOpLessThanOrEqualTo.sol
  • src/lib/op/math/LibOpAbs.sol
  • src/lib/op/math/LibOpAdd.sol
  • src/lib/op/math/LibOpAvg.sol
  • src/lib/op/math/LibOpCeil.sol
  • src/lib/op/math/LibOpDiv.sol
  • src/lib/op/math/LibOpE.sol
  • src/lib/op/math/LibOpExp.sol
  • src/lib/op/math/LibOpExp2.sol
  • src/lib/op/math/LibOpFloor.sol
  • src/lib/op/math/LibOpFrac.sol
  • src/lib/op/math/LibOpGm.sol
  • src/lib/op/math/LibOpHeadroom.sol
  • src/lib/op/math/LibOpInv.sol
  • src/lib/op/math/LibOpMax.sol
  • src/lib/op/math/LibOpMaxNegativeValue.sol
  • src/lib/op/math/LibOpMaxPositiveValue.sol
  • src/lib/op/math/LibOpMin.sol
  • src/lib/op/math/LibOpMinNegativeValue.sol
  • src/lib/op/math/LibOpMinPositiveValue.sol
  • src/lib/op/math/LibOpMul.sol
  • src/lib/op/math/LibOpPower.sol
  • src/lib/op/math/LibOpSqrt.sol
  • src/lib/op/math/LibOpSub.sol
  • src/lib/op/math/growth/LibOpExponentialGrowth.sol
  • src/lib/op/math/growth/LibOpLinearGrowth.sol
  • src/lib/op/math/uint256/LibOpUint256Add.sol
  • src/lib/op/math/uint256/LibOpUint256Div.sol
  • src/lib/op/math/uint256/LibOpUint256MaxValue.sol
  • src/lib/op/math/uint256/LibOpUint256Mul.sol
  • src/lib/op/math/uint256/LibOpUint256Power.sol
  • src/lib/op/math/uint256/LibOpUint256Sub.sol
  • src/lib/op/store/LibOpGet.sol
  • src/lib/op/store/LibOpSet.sol
  • src/lib/parse/LibParse.sol
  • src/lib/parse/LibParseOperand.sol
  • src/lib/parse/LibParseState.sol
  • src/lib/parse/LibSubParse.sol
  • src/lib/state/LibInterpreterState.sol
  • src/lib/state/LibInterpreterStateDataContract.sol
  • test/abstract/OpTest.sol
  • test/lib/operand/LibOperand.sol
  • test/lib/parse/LibMetaFixture.sol
  • test/lib/typecast/LibTestCast.sol
  • test/src/abstract/BaseRainlangExtern.ierc165.t.sol
  • test/src/abstract/BaseRainlangExtern.integrityOpcodeRange.t.sol
  • test/src/abstract/BaseRainlangSubParser.ierc165.t.sol
  • test/src/abstract/EmptyWordParsersSubParser.sol
  • test/src/abstract/MismatchedWordSubParser.sol
  • test/src/concrete/RainlangExpressionDeployer.ierc165.t.sol
  • test/src/concrete/RainlangExpressionDeployer.parse2.t.sol
  • test/src/concrete/RainlangExpressionDeployer.parsePragma1.t.sol
  • test/src/concrete/RainlangInterpreter.eval.nonZeroSourceIndex.t.sol
  • test/src/concrete/RainlangInterpreter.eval.t.sol
  • test/src/concrete/RainlangInterpreter.ierc165.t.sol
  • test/src/concrete/RainlangInterpreter.stateOverlay.t.sol
  • test/src/concrete/RainlangParser.parsePragmaEmpty.t.sol
  • test/src/concrete/RainlangParser.parserPragma.t.sol
  • test/src/concrete/RainlangParser.pointers.t.sol
  • test/src/concrete/RainlangParser.unsafeParse.t.sol
  • test/src/concrete/RainlangReferenceExtern.contextRainlen.t.sol
  • test/src/concrete/RainlangReferenceExtern.ierc165.t.sol
  • test/src/concrete/RainlangReferenceExtern.intInc.t.sol
  • test/src/concrete/RainlangReferenceExtern.pointers.t.sol
  • test/src/concrete/RainlangStore.getUninitialized.t.sol
  • test/src/concrete/RainlangStore.ierc165.t.sol
  • test/src/concrete/RainlangStore.namespaceIsolation.t.sol
  • test/src/concrete/RainlangStore.overwriteKey.t.sol
  • test/src/concrete/RainlangStore.setEmpty.t.sol
  • test/src/concrete/RainlangStore.setEvent.t.sol
  • test/src/concrete/RainlangStore.t.sol
  • test/src/lib/eval/LibEval.fBounds.t.sol
  • test/src/lib/eval/LibEval.inputsLengthMismatch.t.sol
  • test/src/lib/eval/LibEval.maxOutputs.t.sol
  • test/src/lib/eval/LibEval.multipleSource.t.sol
  • test/src/lib/eval/LibEval.opcodeCountEdgeCases.t.sol
  • test/src/lib/eval/LibEval.remainderOnly.t.sol
  • test/src/lib/extern/LibExtern.codec.t.sol
  • test/src/lib/extern/reference/op/LibExternOpContextCallingContract.subParser.t.sol
  • test/src/lib/extern/reference/op/LibExternOpContextRainlen.subParser.t.sol
  • test/src/lib/extern/reference/op/LibExternOpContextSender.subParser.t.sol
  • test/src/lib/extern/reference/op/LibExternOpStackOperand.subParser.t.sol
  • test/src/lib/integrity/IntegrityHighwater.sol
  • test/src/lib/integrity/IntegritySingleOp.sol
  • test/src/lib/integrity/LibIntegrityCheck.badOpIO.t.sol
  • test/src/lib/integrity/LibIntegrityCheck.multiSource.t.sol
  • test/src/lib/integrity/LibIntegrityCheck.stackMaxIndex.t.sol
  • test/src/lib/integrity/LibIntegrityCheck.zeroSource.t.sol
  • test/src/lib/op/00/LibOpConstant.t.sol
  • test/src/lib/op/00/LibOpContext.t.sol
  • test/src/lib/op/00/LibOpExtern.t.sol
  • test/src/lib/op/00/LibOpStack.t.sol
  • test/src/lib/op/LibAllStandardOps.filesystemOrdering.t.sol
  • test/src/lib/op/LibAllStandardOps.t.sol
  • test/src/lib/op/bitwise/LibOpBitwiseAnd.t.sol
  • test/src/lib/op/bitwise/LibOpBitwiseCountOnes.t.sol
  • test/src/lib/op/bitwise/LibOpBitwiseDecode.t.sol
  • test/src/lib/op/bitwise/LibOpBitwiseEncode.t.sol
  • test/src/lib/op/bitwise/LibOpBitwiseOr.t.sol
  • test/src/lib/op/bitwise/LibOpBitwiseShiftLeft.t.sol
  • test/src/lib/op/bitwise/LibOpBitwiseShiftRight.t.sol
  • test/src/lib/op/call/LibOpCall.t.sol
  • test/src/lib/op/crypto/LibOpHash.t.sol
  • test/src/lib/op/erc20/LibOpERC20Allowance.t.sol
  • test/src/lib/op/erc20/LibOpERC20BalanceOf.t.sol
  • test/src/lib/op/erc20/LibOpERC20TotalSupply.t.sol
  • test/src/lib/op/erc20/uint256/LibOpUint256ERC20Allowance.t.sol
  • test/src/lib/op/erc20/uint256/LibOpUint256ERC20BalanceOf.t.sol
  • test/src/lib/op/erc20/uint256/LibOpUint256ERC20TotalSupply.t.sol
  • test/src/lib/op/erc5313/LibOpERC5313Owner.t.sol
  • test/src/lib/op/erc721/LibOpERC721BalanceOf.t.sol
  • test/src/lib/op/erc721/LibOpERC721OwnerOf.t.sol
  • test/src/lib/op/erc721/uint256/LibOpUint256ERC721BalanceOf.t.sol
  • test/src/lib/op/evm/LibOpBlockNumber.t.sol
  • test/src/lib/op/evm/LibOpBlockTimestamp.t.sol
  • test/src/lib/op/evm/LibOpChainId.t.sol
  • test/src/lib/op/logic/LibOpAny.t.sol
  • test/src/lib/op/logic/LibOpBinaryEqualTo.t.sol
  • test/src/lib/op/logic/LibOpConditions.t.sol
  • test/src/lib/op/logic/LibOpEnsure.t.sol
  • test/src/lib/op/logic/LibOpEqualTo.t.sol
  • test/src/lib/op/logic/LibOpEvery.t.sol
  • test/src/lib/op/logic/LibOpGreaterThan.t.sol
  • test/src/lib/op/logic/LibOpGreaterThanOrEqualTo.t.sol
  • test/src/lib/op/logic/LibOpIf.t.sol
  • test/src/lib/op/logic/LibOpIsZero.t.sol
  • test/src/lib/op/logic/LibOpLessThan.t.sol
  • test/src/lib/op/logic/LibOpLessThanOrEqualTo.t.sol
  • test/src/lib/op/math/LibOpAbs.t.sol
  • test/src/lib/op/math/LibOpAdd.t.sol
  • test/src/lib/op/math/LibOpAvg.t.sol
  • test/src/lib/op/math/LibOpCeil.t.sol
  • test/src/lib/op/math/LibOpDiv.t.sol
  • test/src/lib/op/math/LibOpE.t.sol
  • test/src/lib/op/math/LibOpExp.t.sol
  • test/src/lib/op/math/LibOpExp2.t.sol
  • test/src/lib/op/math/LibOpFloor.t.sol
  • test/src/lib/op/math/LibOpFrac.t.sol
  • test/src/lib/op/math/LibOpGm.t.sol
  • test/src/lib/op/math/LibOpHeadroom.t.sol
  • test/src/lib/op/math/LibOpInv.t.sol
  • test/src/lib/op/math/LibOpMax.t.sol
  • test/src/lib/op/math/LibOpMaxNegativeValue.t.sol
  • test/src/lib/op/math/LibOpMaxPositiveValue.t.sol
  • test/src/lib/op/math/LibOpMin.t.sol
  • test/src/lib/op/math/LibOpMinNegativeValue.t.sol
  • test/src/lib/op/math/LibOpMinPositiveValue.t.sol
  • test/src/lib/op/math/LibOpMul.t.sol
  • test/src/lib/op/math/LibOpPower.t.sol
  • test/src/lib/op/math/LibOpSqrt.t.sol
  • test/src/lib/op/math/LibOpSub.t.sol
  • test/src/lib/op/math/growth/LibOpExponentialGrowth.t.sol
  • test/src/lib/op/math/growth/LibOpLinearGrowth.t.sol
  • test/src/lib/op/math/uint256/LibOpUint256Add.t.sol
  • test/src/lib/op/math/uint256/LibOpUint256Div.t.sol
  • test/src/lib/op/math/uint256/LibOpUint256MaxValue.t.sol
  • test/src/lib/op/math/uint256/LibOpUint256Mul.t.sol
  • test/src/lib/op/math/uint256/LibOpUint256Power.t.sol
  • test/src/lib/op/math/uint256/LibOpUint256Sub.t.sol
  • test/src/lib/op/store/LibOpGet.t.sol
  • test/src/lib/op/store/LibOpSet.t.sol
  • test/src/lib/parse/BadLengthSubParser.sol
  • test/src/lib/parse/ConstantReturningSubParser.sol
  • test/src/lib/parse/ContextReturningSubParser.sol
  • test/src/lib/parse/LibParse.comments.t.sol
  • test/src/lib/parse/LibParse.empty.t.sol
  • test/src/lib/parse/LibParse.ignoredLHS.t.sol
  • test/src/lib/parse/LibParse.inputsOnly.t.sol
  • test/src/lib/parse/LibParse.literalIntegerDecimal.t.sol
  • test/src/lib/parse/LibParse.literalIntegerHex.t.sol
  • test/src/lib/parse/LibParse.literalString.t.sol
  • test/src/lib/parse/LibParse.nOutput.t.sol
  • test/src/lib/parse/LibParse.namedLHS.t.sol
  • test/src/lib/parse/LibParse.singleRHSNamed.gas.t.sol
  • test/src/lib/parse/LibParse.wordsRHS.t.sol
  • test/src/lib/parse/LibParseState.buildBytecode.t.sol
  • test/src/lib/parse/LibParseState.constantValueBloom.t.sol
  • test/src/lib/parse/LibParseState.danglingSource.t.sol
  • test/src/lib/parse/LibParseState.endSource.t.sol
  • test/src/lib/parse/LibParseState.parenInputOverflow.t.sol
  • test/src/lib/parse/LibParseState.pushOpToSource.LHSCorruption.t.sol
  • test/src/lib/parse/LibParseState.pushOpToSource.t.sol
  • test/src/lib/parse/LibParseState.pushOpToSourceLHSCorruption.t.sol
  • test/src/lib/parse/LibSubParse.constantAccumulation.t.sol
  • test/src/lib/parse/LibSubParse.subParseLiteral.t.sol
  • test/src/lib/parse/LibSubParse.subParseWords.t.sol
  • test/src/lib/parse/LibSubParse.subParserConstant.t.sol
  • test/src/lib/parse/LibSubParse.subParserContext.t.sol
  • test/src/lib/parse/LibSubParse.subParserExtern.t.sol
  • test/src/lib/parse/LibSubParse.unknownWord.t.sol
  • test/src/lib/parse/MultiConstantSubParser.sol
  • test/src/lib/parse/literal/LibParseLiteral.dispatch.t.sol
  • test/src/lib/parse/literal/LibParseLiteralSubParseable.parseSubParseable.t.sol
  • test/src/lib/state/LibInterpreterState.fingerprint.t.sol
  • test/src/lib/state/LibInterpreterState.stackBottoms.t.sol
  • test/src/lib/state/LibInterpreterStateDataContract.t.sol
  • test/src/lib/state/LibInterpreterStateDataContractExtern.sol

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

thedavidmeister and others added 2 commits August 19, 2026 06:34
The rainlang-interface-0.2.3 prefix is shorter than
rain-interpreter-interface-0.1.0, so seven previously wrapped import
blocks now fit on one line. This is the exact diff the copy-artifacts CI
job produced when it ran the regen sequence (forge soldeer install,
script/Build.sol, script/CopyArtifacts.sol --ffi, forge build, forge
fmt) and found the working tree dirty; the regenerated pointer/meta/abi
artifacts themselves were already current.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The rainix agent-context-cap check (rainlanguage/rainix#298) fails this
branch's static and rs-static jobs: CLAUDE.md was 8587 bytes, 4491 over
the floor-only 4096 cap. Per the check's own criterion, cut everything a
capable agent can discover from the repo (command lists, architecture
overview, crate layout, foundry.toml restatements) and keep what an
agent would get wrong: the prelude ordering, the pointer/deploy-constant
regeneration cascade, the NatSpec tagging ruling, and the jidoka process
rulings. Now under 4096 bytes; verified clean with
`nix run github:rainlanguage/rainix#rainix-static -- agent-context-cap .`

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@thedavidmeister

Copy link
Copy Markdown
Contributor Author

Superseded by #560, which carries the same interface migration at a newer version (rainlang-interface 0.2.5) plus the solmem 0.1.26 chain. Closing per the org's supersede-in-flight practice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant