refactor to support more flexible tool toggles #4
+349
−232
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.
I wanted to introduce a few concepts and use some more features of the framework in an attempt to:
ignoreset, as they can be cross-cutting with different server's toolsOn the latter point, I went with the global lazy-initialized session approach because it's simple. The other approach which I looked at is placing the session in the (new) Planet context but it's less clear how to get the session from the context (the lifecycle context is untyped though we could create a static unwrapper function)
I have a separate MR for the downstream remote server though it's much smaller (but also doesn't support flag parsing yet)