Open Issues Need Help
View All on GitHubAI Summary: This issue requests the creation of an integration test for `ExecuteSimpleStrategyJob`. The test will verify the end-to-end trading orchestration, ensuring that `GenerateTargetPortfolio` and `RebalanceToTarget` are called in the correct order with expected arguments, while mocking `AlpacaService` to prevent real trades.
AI Summary: This issue requests the creation of VCR-backed RSpec tests for the `AlpacaService` to verify its interactions with the Alpaca API. The tests should cover `get_account_equity`, `get_current_positions`, and `place_order`, including both successful operations and API error handling.
AI Summary: This issue requires implementing an `AlpacaService` class to encapsulate interactions with the Alpaca trading API using the `alpaca-trade-api-ruby` gem. It will provide methods to retrieve account equity, current positions, and place orders, leveraging a pre-configured Alpaca client.
AI Summary: This issue proposes implementing a `QuiverClient` service to interact with the Quiver Quantitative API. The client will be built using Faraday, configured with API keys from Rails credentials, and include a method to fetch congressional trades. It must correctly handle API requests, parse JSON responses, and pass all specified linters before submission.
AI Summary: This issue requires creating an ActiveRecord model named `QuiverTrade` and its corresponding database migration. The model will store raw congressional trading data, and the task includes defining the `quiver_trades` table schema, creating the model file, and adding model specs to validate key fields, all while ensuring linter compliance.
AI Summary: This issue focuses on writing VCR-powered RSpec tests for the `QuiverClient` to validate its interactions with the Quiver Quantitative API. The goal is to configure VCR, create a dedicated spec file, and use VCR cassettes to test both successful API responses and potential error cases without making live network requests on every test run. This task is dependent on the `QuiverClient` implementation being complete.
AI Summary: This issue requires creating a `TargetPosition` Plain Old Ruby Object (PORO) at `packs/trading_strategies/app/models/target_position.rb`. This object will serve as a data contract between trading strategy and execution layers, initializing with `symbol`, `asset_type`, `target_value`, and `details` attributes, without inheriting from `ApplicationRecord`.
AI Summary: This issue focuses on implementing backend API endpoints for managing `Analysis` resources within the `packs/performance_analysis` pack. It requires creating an `AnalysesController` with a `POST /api/v1/analyses` endpoint to initiate a new analysis using the `InitiatePerformanceAnalysis` command, returning its ID and pending status. Additionally, a `GET /api/v1/analyses/:id` endpoint will retrieve the analysis's status and results, with comprehensive request specs required for both.
AI Summary: This issue involves creating a `HistoricalBar` database model within the `packs/data_fetching` pack. This model will cache historical market data from the Alpaca API, including columns for symbol, timestamp, open, high, low, close, and volume, along with a unique composite index on `(symbol, timestamp)`. The task includes creating a migration, the model itself, and associated unit tests.
AI Summary: This issue involves creating a new `Trade` model within the `packs/trades` pack to store individual trade data. It requires generating a database migration for a `trades` table with specific columns like `algorithm_id`, `symbol`, `executed_at`, `side`, `quantity`, and `price`. Additionally, the task includes defining the model with a `belongs_to :algorithm` relationship, updating `package.yml` for dependencies, and writing comprehensive unit tests.
AI Summary: This issue involves creating a new `Analysis` model within the `packs/performance_analysis` pack to represent individual performance analysis runs. It requires a database migration to create an `analyses` table with specific columns (including a foreign key, dates, status, and JSONB results), defining the model with a `belongs_to` relationship to `Algorithm`, and implementing a state machine for the `status` attribute. Additionally, it necessitates updating packwerk dependencies and writing comprehensive unit tests.
AI Summary: This issue involves setting up the initial Packwerk configuration for the project, including creating a `packwerk.yml` file and defining four specific modular packs: `trading_strategies`, `trades`, `data_fetching`, and `performance_analysis`. Each pack needs a `package.yml` to define dependencies and privacy, with the overall goal of passing `packwerk validate` and linter checks.
AI Summary: This issue requires setting up specific gems (packs-rails/packwerk, solid_queue, and rspec-rails) within the application. Although `bundle install` has been completed, the task involves locating and following the installation and configuration steps outlined in each gem's official documentation to fully integrate them.
AI Summary: This issue requires creating a new `HistoricalBar` model and its corresponding database migration to cache market data from Alpaca. The `historical_bars` table will include columns for symbol, timestamp, open, high, low, close, and volume, with a unique index on `(symbol, timestamp)`.