INSTRUCTIONS FOR AGENTS:
- Select a single bug to work on. Do not mix tasks from different bugs to avoid merge conflicts.
- Scope isolation: Try to limit your changes to the files listed in the "Primary Files" section of your bug.
- Shared Resources: If you must modify shared files (e.g.,
app.py,services/__init__.py), check if other active agents are modifying them. - New Files: Prefer creating new files/modules over heavily modifying existing large files.
- Marking Progress: When you start a bug, assume you own it until completion.
- Atomic Commits: After completing each individual task (bullet point) within a bug, ask the user to commit the changes before moving to the next task. Do not accumulate multiple features in a single commit.
-
Pending Trades: Missing ticker correction UI ✅ Fixed
- When a ticker is invalid/not found (e.g., wrong symbol, regional variant like "BASF" vs "BAS.DE"), the Pending Trades page cannot execute the trade
- The portfolio detail page has a ticker correction UI that allows users to:
- Correct the ticker symbol
- Add the ISIN manually
- This UI should be available in the Pending Trades page as well
- Implementation notes:
- Extract the ticker correction UI from
components/trade_display.pyinto a reusable component - Use the component in both
trade_display.pyandpages/pending_trades.py - The component should handle: ticker input, verify button, ISIN input, price lookup feedback
- Extract the ticker correction UI from
- Primary Files:
src/fin_trade/components/ticker_correction.py(new),src/fin_trade/components/trade_display.py,src/fin_trade/pages/pending_trades.py - Resolution: Created
ticker_correction.pycomponent withrender_ticker_correction(),apply_isin_corrections(), andclear_ticker_corrections()functions. Integrated intopending_trades.py.
-
Error messages disappear too quickly ✅ Fixed
- When an error occurs (e.g., ticker not found, trade execution fails), the error message flashes briefly and disappears almost instantly
- Users don't have time to read the error message
- The error should persist until the user takes action or navigates away
- Implementation notes:
- Likely caused by
st.rerun()being called after showing the error - Consider storing errors in session state and displaying them persistently
- Or remove/delay the rerun to let users see the message
- Likely caused by
- Primary Files:
src/fin_trade/pages/pending_trades.py, potentially other pages with similar issues - Resolution: Store messages in session state before
st.rerun()and display them via_display_persistent_messages()at the top of each page. Applied to bothpending_trades.pyandsystem_health.py.
-
Pending Trades: Cannot delete trades ✅ Fixed
- Users should be able to delete/reject pending trades that they do not wish to execute.
- Currently, trades just sit in the "Pending" state until executed.
- Implementation notes:
- Add a "Delete" or "Reject" button next to each pending trade in the list.
- Upon clicking, remove the trade from the
PortfolioState.pending_tradeslist. - Save the updated state.
- Primary Files:
src/fin_trade/pages/pending_trades.py,src/fin_trade/services/portfolio.py - Resolution: Added a delete button to the pending trades UI. Implemented
_reject_tradefunction to mark trades as rejected in the execution log, effectively removing them from the pending list.