-
Notifications
You must be signed in to change notification settings - Fork 10
fix(cli): resolve local E2E testing issues with the CLI #1254
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Fix ECDSA public key format: use 65-byte uncompressed SEC1 format instead of 33-byte compressed for operator registration - Add `get_blueprint_definition` to TangleEvmClient for direct struct decoding, replacing broken manual ABI byte parsing - Normalize OS/arch strings in binary selection (arm64→aarch64, darwin→macos) to match platform binaries correctly - Add `tangle-evm` alias to Protocol enum so clap accepts both formats - Use system PROTOC if available in build.rs files (macOS compatibility) - Fix ConfigError variant: UnsupportedProtocol → UnexpectedProtocol - Remove dead code: Protocol::from_env, FromStr impl, unused error variant - Add LOCAL_E2E_TEST_PLAN.md documenting the full testing workflow Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix blueprint deployment to correctly set hasConfig=true when using non-default membership model (Dynamic), preventing contract from overwriting to Fixed membership - Add JSON schema to TLV binary format encoding for job schemas - Add comprehensive service lifecycle CLI command testing documentation - Add E2E testing notes documenting all issues found and fixes applied - Add CLI command testing tracker for QA coverage Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit addresses 5 bugs discovered during comprehensive testing of the job system CLI commands (jobs list, show, submit, watch): - Bug #1: TLV schema encoding - CLI now converts JSON ABI schemas to the TLV binary format expected by tnt-core contracts - Bug #2: Payload encoding - CLI uses compact binary encoding instead of ABI encoding for --params-file submissions - Bug #3: Manager now passes TANGLE_CONTRACT, RESTAKING_CONTRACT, and STATUS_REGISTRY_CONTRACT env vars to spawned blueprint binaries - Bug #4: TangleEvmArg extractor now supports both compact binary and ABI decoding with automatic format detection - Bug #5: TLV encoder correctly includes array element types as child nodes (fixes uint256[] being decoded as bytes[]) Test Results: 29/30 tests passed across 7 phases of testing. Documentation added: - JOB_SYSTEM_TEST_PLAN.md: Comprehensive test plan for job commands - JOB_SYSTEM_TEST_PROGRESS.md: Detailed test results and bug reports - TLV_FIELD_NAMES_PROPOSAL.md: Proposal to add field names to TLV format Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ve job helpers - Add version 2 TLV format with field name support for better schema compatibility - Implement compact string encoding for field names in schema serialization - Update job helpers with improved functionality - Update testing documentation and progress tracking Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… docs - Add is_operator check before displaying restaking metadata to properly show "Not Registered" status for unregistered operators - Add comprehensive operator utilities test plan covering all 12 commands - Add test progress tracker documenting 34/34 tests completed Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add test plan and progress tracker for delegator utilities testing - Add links to operator utilities test docs in CLI testing tracker - Fix formatting in TLV field names proposal Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add operator exit queue workflow commands: - schedule-exit: Enter the exit queue for a service - execute-exit: Complete exit after queue duration passes - cancel-exit: Cancel a scheduled exit Add --commitment flag to service join and operator request-service commands for specifying asset security commitments. Add corresponding client methods in tangle-evm: - join_service_with_commitments() - schedule_exit() - execute_exit() - cancel_exit() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move PLAN and PROGRESS markdown files to docs/cli-testing/ and add to .gitignore to keep them local-only. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
drewstone
approved these changes
Jan 23, 2026
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes multiple bugs discovered during comprehensive local E2E testing of the CLI and blueprint manager. The testing effort covered 47 of 67 CLI commands (70% coverage) across 7 testing categories with 156+ individual tests passed.
Phase 1: Local E2E Testing Foundation (Commit 1)
Initial bug fixes that enabled the complete blueprint lifecycle to work locally:
getBlueprintDefinition) instead of broken manual ABI byte parsingarm64→aarch64,darwin→macos) to correctly match binariestangle-evmalias so clap accepts bothtangle-evmandtangleevmformatsUnsupportedProtocol→UnexpectedProtocol(correct variant name)Phase 2: Dynamic Membership & Service Lifecycle (Commit 2)
hasConfig=truewhen using non-default membership model (Dynamic), preventing contract from overwriting to Fixed membershipPhase 3: Job System Fixes (Commits 3-4)
Five critical bugs fixed in the job system:
--params-fileTANGLE_CONTRACT,RESTAKING_CONTRACT,STATUS_REGISTRY_CONTRACTenv varsTangleEvmArgonly supported one encoding formatuint256[]being decoded asbytes[])Phase 4: Operator & Delegator Utilities (Commits 5-6)
is_operatorcheck before displaying restaking metadata to properly show "Not Registered" status for unregistered operatorsPhase 5: Chain State Queries (Commit 7)
Phase 6: Exit Queue Commands & Service Commitments (Commit 8)
Added operator exit queue workflow commands to address the 7-day exit queue limitation:
Added --commitment flag to
service joinandoperator request-servicecommands for specifying asset security commitments.Added corresponding client methods in tangle-evm:
join_service_with_commitments()schedule_exit()execute_exit()cancel_exit()Phase 7: Documentation Cleanup (Commit 9)
docs/cli-testing/folder.gitignoreto keep test docs local-onlyTest Coverage Summary
Known Limitations / Feature Requests
Exit Queue Commands:✅ Implemented in Phase 6service leavecannot work with default 7-day exit queue. Needs new commands:schedule-exit,execute-exit,cancel-exitOperator Join with Commitments:✅ Implemented in Phase 6operator joinneeds--commitmentsflag for services with security requirementsTest Plan
"Hello, Alice!"🤖 Generated with Claude Code