Uh oh!
There was an error while loading. Please reload this page.
add maxApproval support to enter yield action - #27
Conversation
📝 WalkthroughWalkthroughAdds a commented Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Script as main()
participant Client as YieldsApiClient
participant API as /v1/yields
participant Action as executeAction()
participant Prompt as Enquirer
User->>Script: Run script (env var set)
Script->>Script: Check process.env.YIELD_ID
alt YIELD_ID set (quick-test)
Script->>Client: getYield(yieldId)
Client->>API: GET /v1/yields/{yieldId}
API-->>Client: YieldOpportunity
Client-->>Script: YieldOpportunity
Script->>Action: executeAction("enter", yield, args)
Action->>Prompt: Confirm max approval?
Prompt-->>Action: User response
Action->>Action: Set args.maxApproval
Action-->>Script: Create/confirm action
Script->>Script: Exit early
else Normal flow
Script->>User: Show selection flow
end
Estimated Code Review Effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Pull request overview
Adds convenience and action-creation options to the Yields recipe CLI, enabling quick yield execution via env var and prompting for unlimited token approval when entering a yield.
Changes:
- Add
getYield(yieldId)endpoint helper to fetch a single yield opportunity. - Add
YIELD_ID“quick-test mode” to skip browsing and immediately run an enter action. - Prompt for
maxApprovalon enter actions and pass it through in action arguments.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| recipes/yields.ts | Adds single-yield fetch, quick-test flow via YIELD_ID, and maxApproval prompt for enter actions. |
| .env.example | Documents the optional YIELD_ID env var for quick-test mode. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.env.example:
- Line 8: The file ends without a trailing newline which triggers dotenv-linter;
open the .env.example and add a single newline character after the last line
(the comment containing "YIELD_ID") so the file ends with a blank line — ensure
the final line is terminated to satisfy the linter.
In `@recipes/yields.ts`:
- Around line 222-224: The getYield method currently interpolates raw yieldId
into the request path, which can break the URL if yieldId contains reserved
characters; update getYield to encode the id (e.g., via encodeURIComponent)
before composing the path passed to makeRequest so the call becomes GET to
`/v1/yields/${encodedYieldId}` ensuring a valid URL.
- Around line 829-837: When handling the "enter" prompt in recipes/yields.ts,
avoid always assigning args.maxApproval from Enquirer.prompt which can override
an existing value from promptForArguments; instead, check if args.maxApproval is
undefined (or not already set) before calling Enquirer.prompt and only assign
args.maxApproval when absent. Locate the block that checks if (type === "enter")
and references Enquirer.prompt and args.maxApproval, add a guard around the
prompt/assignment so existing schema-provided values are preserved.
- Around line 547-553: The quick-test branch unconditionally forces an "enter"
via executeAction after fetching a yield (quickYieldId -> apiClient.getYield ->
executeAction) which can fail if the yield's status.enter is false; update the
branch to check the fetched yield's status.enter (e.g., inspect
yieldInfo.status.enter) and only call executeAction(..., "enter") when true,
otherwise log or throw a clear message indicating enter is not allowed for that
yield so the failure is guarded and the error is explicit.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 48685e91-bd96-485e-9c5e-f94f4531c10c
📒 Files selected for processing (2)
.env.examplerecipes/yields.ts
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary by CodeRabbit
New Features
Chores