refactor(scripts): webvh-e2e harness scaffold and polish#1906
Merged
PatStLouis merged 19 commits intomainfrom Mar 31, 2026
Merged
refactor(scripts): webvh-e2e harness scaffold and polish#1906PatStLouis merged 19 commits intomainfrom
PatStLouis merged 19 commits intomainfrom
Conversation
Add scripts/webvh-e2e/run.py with phased checks: smoke, webvh-plugin, webvh-configure, webvh-create; stub phases for issue/verify (DITP#136). Document env vars and link from scripts/README.md. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Add .env.example, .gitignore for .env, python-dotenv, and load .env from run.py without overriding existing env. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Replace requirements.txt with pyproject.toml (package-mode false), add poetry.lock, update README and .gitignore. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
…o-witness) Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Split the tenant-proxy harness into context, traction_client, records, helpers, and harness_log. Profiles cover new-issuer-webvh and all; OOB create-invitation uses use_did with the WebVH DID. Add non_revoked present-proof verify, anoncreds revoke with explicit notify=false to override agent defaults, and post-revoke verification. Document env vars and phases in README and .env.example. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Keep optional WEBVH_* overrides undocumented in the example; README notes profile/harness defaults and where to find override names. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
…ted lockfile Move phase implementations and PHASES/PROFILES registry to phases.py so run.py stays a small CLI. Remove poetry.lock from the repo and gitignore it; document pyproject-only installs in README. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Replace custom ANSI formatter and box drawing with RichHandler, Panel, and markup helpers. Keeps the same harness_log public API for phases. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Smaller dependency surface for the PR: requests + dotenv only. Replace Rich panels with short phase/summary rules and minimal TTY prefixes. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Prefer breaks at / and :; default width from terminal. Optional WEBVH_LOG_WRAP. Avoids splitting hostnames like vonx.io mid-token. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Replace monolithic phases.py with a phases/ package (common, connect, publish, issue_verify, __init__) while keeping PHASES/PROFILES and phase names unchanged. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Break phases/issue_verify.py into phases/issue.py and phases/verify_revoke.py. Keep PHASES names and runtime behavior unchanged. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Rename phases/publish.py to phases/setup.py and update package imports. Phase IDs and runtime behavior remain unchanged. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Keep the webvh-e2e runner, token wiring, and phase/profile structure while stubbing implementation phases and splitting verify/revoke modules for smaller follow-up PRs. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Replace harness_log with stdlib logging, drop unused records helpers, remove the witness flag until WebVH create is implemented, and slim Context to issuer session essentials. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
Add issuer and holder tenant sessions; extend smoke to /tenant/wallet. Switch CLI to Click, use load_dotenv from cwd, and trim traction_client to routes in use. Default proxy base to BC sandbox; remove unused helpers. Add blank lines between phase banners for readability. Signed-off-by: Patrick St-Louis <patrick.st-louis@opsecid.ca> Made-with: Cursor
esune
approved these changes
Mar 31, 2026
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
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
Introduces a slimmer webvh-e2e harness focused on structure and smoke checks, with placeholder phases for the full WebVH flow to land in follow-up PRs.
What’s in this PR
load_dotenv()when run fromscripts/webvh-e2e, spaced phase banners.requests.Sessions +TRACTION_ISSUER_TENANT_TOKEN/TRACTION_HOLDER_TENANT_TOKEN(required).GET /status/liveandGET /tenant/walletfor both tenants.traction_client.pytrimmed to routes used by smoke (extend as phases are implemented).harness_log.py,records.py,helpers.py(restore from git history when implementing phases)..env.exampleand README updated.How to test
Made with Cursor