Skip to content

feat(contract): timeout_minutes, written outside config_hash - #92

Merged
carolsimone merged 1 commit into
mainfrom
feat/timeout-minutes
Oct 22, 2026
Merged

carolsimone merged 1 commit into
mainfrom
feat/timeout-minutes

Conversation

@carolsimone

Copy link
Copy Markdown
Owner

Summary

  • A contract entry may declare timeout_minutes (integer, 1 to 10,080; bool and other types are refused). The loader names the node and the key in its error.
  • build_wire_contract writes the key onto the wire entry after hash_parts, so it is the one wire key outside config_hash; changing it alone is not a code change. A node that declares none keeps its exact wire entry.
  • hashing.canonical_entry drops the key, so config_hash recomputed from a finished wire entry still matches.
  • Documented in docs/boundary-contract.md, the hashing.py docstring, the README and the CHANGELOG ([Unreleased]). No version bump here; the release commit bumps runtime, engine-contract and the postgres adapter.

Testing

Full suite (684 passed, integration and image tests deselected), ruff and all five mypy runs clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TchTVKaApWVophKNwtVHcT

A node may declare timeout_minutes, an integer from 1 to 10,080. The loader
refuses any other value, naming the node and the key. build_wire_contract
writes the key onto the wire entry after the hash parts are computed, and
canonical_entry leaves it out of the config_hash basis, so changing it alone
changes none of the four hashes. A node that declares none has the wire entry
it always had.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TchTVKaApWVophKNwtVHcT
Signed-off-by: Simone Carolini <simonecarolini.sc@gmail.com>
@carolsimone carolsimone self-assigned this Oct 22, 2026
@carolsimone
carolsimone merged commit 20317c4 into main Oct 22, 2026
28 checks passed
@carolsimone
carolsimone deleted the feat/timeout-minutes branch October 22, 2026 07:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant