Feature/perf api readiness#3
Merged
Merged
Conversation
…ices - Improved type annotations in `performance_baseline.py` and `scoring_evaluation.py` for better clarity and flexibility. - Simplified the assignment of `identities` in `_ranking_identity_map` and consolidated `fallback_order` construction in `generate_top5_audit_visualization.py`. - Cleaned up test files by removing unnecessary blank lines to enhance code consistency.
…equirements - Expanded the objective to clarify the integration of dashboard, API, and CLI for strategy workflows. - Added detailed requirements for the dashboard experience, including dataset handling, filter controls, and strategy controls. - Specified dashboard behavior constraints and acceptance criteria for end-to-end functionality. - Updated sections on CLI specifications and rollout plans to align with new dashboard features and ensure consistency across interfaces.
- Added detailed implementation steps for Phase A, including request/response contracts, service interfaces, API route skeletons, and CLI command mappings. - Specified validation rules, placeholder responses, and testing requirements to ensure contract stability and successful execution of Phase A. - Defined criteria for completion of Phase A to facilitate a smooth transition to Phase B.
- Added new ranking schema models including RankingFilters, RankingStrategy, ResultWindow, and RankingQueryRequest to define the structure and validation rules for ranking queries. - Introduced corresponding response models such as RankingQueryResponse, ListingDetailResponse, and ProfileDetailResponse to standardize API responses. - Implemented validation logic to ensure data integrity for request and response payloads, including checks for price bounds and pagination constraints. - Created unit tests to validate the functionality and correctness of the new ranking models and their validation rules.
- Added a note about the 500ish dataset scraped from Propflux and its relocation to the project samples folder in PROJECT_NOTE.md. - Expanded Week 3 specification to include open questions regarding agent prompts, profile storage, and dashboard exposure, enhancing clarity on implementation considerations. - Corrected a typo in the scoring metadata section of the Week 3 specification.
- Updated the Week 3 specification to include comprehensive guidelines for managing profiles in the dashboard, emphasizing CRUD operations, default profiles, and weight overrides. - Added a TODO section in `ranking_query.py` outlining critical research tasks related to weights and signals for strategy presets, highlighting the importance of an evaluation process for each strategy profile.
…t insights - Enhanced the Week 3 specification by incorporating further details on profile management, including best practices for CRUD operations and weight adjustments. - Updated the TODO section in `ranking_query.py` to reflect new research tasks related to profiling strategies, emphasizing the need for a thorough evaluation process.
- Updated the Week 3 specification to refine the language around profile reference persistence and removed references to profile snapshots for clarity. - Specified that the dashboard does not perform profile CRUD or alias remapping in Week 3, ensuring a clear understanding of the scope. - Adjusted sections to emphasize the use of `profile_id` instead of `profile_version`, aligning with the overall profile management strategy.
- Introduced new CLI commands for ranking queries, listing details, profiles listing, and profile resolution, expanding the command set available to users. - Implemented JSON payload handling for ranking queries and listing details, allowing for structured output and file writing options. - Updated the PROJECT_NOTE.md to remove outdated dataset references and clarify project goals. - Enhanced test coverage for CLI commands to ensure new functionalities are included in help outputs.
- Introduced functionality to load and validate scoring profiles from a configuration file, allowing for dynamic profile management. - Updated the profile resolution logic to utilize alias mappings and ensure profiles are correctly defined and validated against supported signals. - Modified tests to reflect changes in profile handling, including environment path overrides and validation of profile definitions. - Adjusted CLI test cases to align with new profile identifiers and weight configurations.
- Updated the `run_ranking_query` function to accept a database session, enabling persistence of ranking runs and associated scoring profiles. - Introduced a new helper function `_persist_ranking_run` to handle the storage of ranking run details and profile backups. - Modified CLI command to utilize the database session for improved data management. - Added tests to verify the persistence of ranking runs and the reuse of profile backups, ensuring data integrity across multiple queries.
…PI app - Added the ranking router to the FastAPI application, enabling access to ranking-related endpoints. - Implemented a custom exception handler for RequestValidationError to provide structured error responses. - Updated documentation to reflect the new ranking functionality and error handling improvements.
…n steps - Added comprehensive guidelines for the Phase B ranking and query implementation, outlining execution order and specific tasks for filtering, scoring, and persistence. - Included criteria for successful completion of Phase B, emphasizing the need for deterministic sorting, error handling, and testing requirements. - Updated acceptance criteria to reflect the transition from placeholder responses to real ranked outputs, ensuring alignment with the overall project goals.
- Updated the `listing_detail` command to include database session management, improving error handling for missing ranking runs and listings. - Introduced new exceptions for better clarity on ranking errors: `RankingRunNotFound`, `RankingListingNotInRun`, and `RankingListingRowMissing`. - Enhanced the ranking query service to handle dataset source validation, ensuring proper error responses for unknown sources. - Updated tests to reflect changes in dataset source handling and error scenarios, ensuring robust coverage for new functionalities.
… logic - Introduced a new CLI command `inspect-rejections` to generate a cross-reference report of rejected dataset entries, providing insights into validation errors and rejected rows. - Enhanced the dataset validation service with a new function `build_rejection_cross_reference` to aggregate rejection diagnostics and examples. - Updated the `PropfluxListing` schema with field validators to coerce boolean-like values and format prices correctly, improving data integrity during validation. - Added tests to ensure proper handling of boolean coercion and price formatting in the `PropfluxListing` schema, enhancing overall validation coverage.
…n steps - Delivered a comprehensive outline for Phase C of the dashboard, detailing the user flow from dataset source selection to ranking and detail inspection. - Included specific implementation steps for dashboard state management, request composition, and error handling. - Established criteria for successful completion of Phase C, ensuring alignment with backend services and user experience expectations. - Emphasized the importance of maintaining consistency between the dashboard, API, and CLI behaviors.
- Implemented a new API endpoint `/datasets/sources` to list dataset sources along with their job details and validation status. - Introduced `DatasetSourceSummaryResponse` schema to structure the response data for the new endpoint. - Updated tests to validate the functionality of the dataset sources endpoint, ensuring proper response structure and status codes. - Enhanced the ranking routes with necessary imports and database queries to support the new feature.
…ions - Added instructions for resetting the database in both Docker and local environments to the README. - Updated the setup checklist to include optional, destructive database reset commands for clarity during setup. - Improved the overall organization and readability of the documentation to assist developers in managing database states effectively.
- Changed the `NEXT_PUBLIC_API_BASE_URL` in the Docker Compose file to point to `http://localhost:8000` for local development. - Added a new helper function `_display_backend_output_path` in the CLI to format report paths correctly, ensuring that both absolute and relative paths are handled appropriately. - Updated CLI commands to utilize the new report path formatting, improving output clarity for users.
…valuation - Updated the performance baseline service to capture latency metrics for `ranking_list_api`, `filtered_ranking_api`, and `listing_detail_api`. - Implemented SLO evaluations for the new API latency metrics, moving them from deferred to measured status. - Added index tuning migration to optimize performance. - Updated tests to validate the new metrics and SLO assessments, ensuring comprehensive coverage of the changes. - Revised project documentation to reflect the enhancements made in Phase D.
…handling - Introduced a new field `profile_row_id` to the `ResolvedProfile` schema, ensuring it is validated to be greater than or equal to 1. - Updated the `run_ranking_query` function to correctly instantiate `ResolvedProfile` with the new `profile_row_id` from the ranking run. - Adjusted tests to validate the inclusion of `profile_row_id` in the response and ensure consistency with the ranking run data. - Enhanced documentation to reflect changes in profile management and the new field's significance.
- Included a reference to the full implementation specification for the Week 4 dashboard in both the PROJECT_NOTE.md and README.md files. - Enhanced project documentation to ensure clarity on the upcoming dashboard features and implementation details.
- Added a new router for runs diagnostics to the FastAPI application, enabling endpoints for run summaries and details. - Enhanced the `list_dataset_sources` function to support filtering by ingestion job status and search queries. - Introduced new fields in the `RankingResultItem` schema for additional listing details, including `listing_url`, `bedrooms`, `bathrooms`, `province`, and `source_site`. - Updated the `RankingRun` model to include `records_considered`, improving tracking of processed records during ranking runs. - Expanded the API documentation to reflect new endpoints and features related to runs diagnostics and ranking queries. - Adjusted tests to validate the new functionalities and ensure accurate responses from the updated endpoints.
- Introduced a new error banner component to display API request failures across various dashboard pages, improving user feedback during data loading. - Updated the `fetchJson` function to provide more informative error messages when API requests fail, enhancing debugging capabilities. - Added a new test specification for the dashboard frontend to ensure comprehensive coverage of error handling scenarios. - Updated the README to include a reference to the new dashboard frontend QA/test specification, improving documentation clarity.
- Added a new error banner style to enhance the display of error messages across various dashboard pages, improving user experience during API request failures. - Updated error handling in multiple components to utilize a new `formatThrownApiError` function, providing clearer and more structured error messages. - Refactored error display logic to use multiline formatting for better readability, ensuring users receive comprehensive feedback on issues encountered. - Enhanced the `fetchJson` function to throw a custom `ApiError` for better error management and debugging.
- Introduced a new toast error style to visually differentiate error messages in the dashboard. - Updated the toast context to support different tones, allowing for more informative user feedback. - Refactored error handling in the ControlWorkbench component to utilize the new toast functionality, improving user experience during error scenarios.
- Added a new filter bar for source status selection and search input in the dashboard. - Introduced styles for the filter components, including a status dropdown and a search input field. - Enhanced user experience by allowing filtering of sources based on ingestion job status and search queries.
- Added a new comparison section to the runs page, allowing users to select a baseline and candidate run for side-by-side metadata comparison. - Introduced new styles for the comparison picker and result display, enhancing the user interface. - Implemented logic to fetch and compare run details, displaying differences in a structured format. - Added error handling for comparison operations, improving user feedback during data loading and error scenarios.
- Updated button styles to include inline-flex display, center alignment, and improved padding for better visual consistency. - Added alignment for action items in the dashboard to ensure a more cohesive layout. - Enhanced button text properties for improved readability and user experience.
…ompleteness - Revised the README to enhance the description of PropSignal's core functionalities and target audience. - Expanded the configuration guide to include detailed explanations of environment variables, config files, and Docker defaults. - Improved the organization of documentation for better accessibility, including links to relevant guides for dashboard and CLI usage. - Added a glossary section to clarify terms used across the platform, aiding user understanding.
- Revised the README to provide a clearer overview of PropSignal's capabilities and architecture, emphasizing the full-stack nature of the project. - Expanded CLI usage documentation to include detailed command references and examples for ingestion, scoring, and ranking operations. - Updated the CI workflow to include unit tests for the frontend, improving overall test coverage and reliability. - Enhanced the architecture documentation to reflect recent changes and provide historical context for reviewers. - Improved the setup checklist for clarity and completeness, ensuring a smoother onboarding experience for new developers.
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.
No description provided.