Skip to content

Conversation

@tlambert03
Copy link
Owner

@tlambert03 tlambert03 commented Oct 17, 2025

biopython is slower, but parasail is unmaintained... this is not urgent. #267 tests the functionality

(this also reduces slug size a bit)

@codecov
Copy link

codecov bot commented Oct 17, 2025

Codecov Report

❌ Patch coverage is 84.78261% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 50.89%. Comparing base (6b4bbe7) to head (3e56426).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
backend/fpseq/align.py 84.44% 7 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #266      +/-   ##
==========================================
- Coverage   51.07%   50.89%   -0.18%     
==========================================
  Files         112      112              
  Lines        9755     9775      +20     
==========================================
- Hits         4982     4975       -7     
- Misses       4773     4800      +27     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@tlambert03 tlambert03 merged commit ce20860 into main Oct 21, 2025
1 of 2 checks passed
@tlambert03 tlambert03 deleted the remove-parasail branch October 21, 2025 13:06
tlambert03 added a commit that referenced this pull request Oct 22, 2025
* remove parasail

* remove extra test

* final touches
tlambert03 added a commit that referenced this pull request Oct 22, 2025
* Add Scout APM monitoring integration

- Install scout-apm package with dependencies (psutil, wrapt)
- Add scout_apm.django to INSTALLED_APPS for performance monitoring
- Configure SCOUT_NAME in production settings
- SCOUT_KEY and SCOUT_MONITOR automatically set by Heroku addon

This enables application performance monitoring including:
- N+1 query detection
- Database query analysis
- Memory leak detection
- Background job (Celery) monitoring
- Request/response timing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* remove parasail, use biopython (#266)

* remove parasail

* remove extra test

* final touches

* unvendor old gdo code (#278)

* remove dep

* remove vendored code

* Update whitenoise to v6.11.0 (#279)

* Update whitenoise to v6.11.0

Upgrades whitenoise[brotli] from 6.6.0 to 6.11.0.

Key improvements in this version:
- Support for Django 5.2 and 6.0
- Support for Python 3.13 and 3.14
- Improved compression performance via thread pool
- Bug fixes for range requests and FORCE_SCRIPT_NAME handling

No code changes required - all existing configuration remains compatible.

Tests: 137 tests pass (2 pre-existing flaky end-to-end tests excluded)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* min pin

---------

Co-authored-by: Claude <[email protected]>

* Update to react 19 (#272)

* Refactor code structure for improved readability and maintainability

* fix spectra

* Refactor code structure for improved readability and maintainability

* fix more tests

* Fix invalid MUI v5 color props

Replace Material-UI v4 'default' color with MUI v5 compatible values.
In MUI v5, 'default' is not a valid color prop and causes runtime errors
when components try to access theme.palette.default.main.

Changes:
- EfficiencyTable: Changed Button color 'default' → 'inherit'
- MyAppBar: Removed color prop from Switch (uses default styling)
- CustomLaserCreator: Removed color prop from Checkbox
- WelcomeModal: Changed Button color 'default' → 'inherit'

Fixes console error: "TypeError: undefined is not an object
(evaluating '(theme.vars || theme).palette[ownerState.color].main')"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* Fix toggle functionality in EfficiencyTable overlap buttons

The OverlapToggle buttons were stuck "on" after first click because the
handleClick function was reading elem.checked from the DOM, but MUI Button
components don't have a .checked DOM property. The checked={active} prop
is just a React prop, not a DOM attribute.

This meant elem.checked was always undefined, so !elem.checked was always
true, causing the button to always try to "add" the overlap and never
"remove" it.

Fix: Use the active state directly instead of reading from DOM element.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* fix defaultProps

* add playwright tests

* Fix test_blast by adding id to query input field

The TextField component in the BLAST InputForm was missing the
id="queryInput" attribute that the end-to-end test expects. This
caused the test to fail when trying to locate the input element.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* fix styles

* bump pnpm

---------

Co-authored-by: Claude <[email protected]>

* update allauth (#280)

* Update font awesome (#281)

* update allauth

* update fontawesome to CDN usage

* better spectra styles

* Refactor external API calls into centralized wrapper modules  (#284)

* remove dead code

* wip

* more removal

* fix mocks

* Improve some queries (#282)

* fix n+1 proteins api

* improve collection query

* improve spectra_csv queries

* Enhance protein search performance by optimizing queryset with prefetch_related for states and transitions

* add celery app

* fix mocks

* Add database indexes for spectrum model to optimize queries by state and status (#285)

* Improve Heroku logging: switch to Better Stack, add JSON logging, reduce verbosity

- Add python-json-logger for structured logging
- Implement JSON formatter with context fields for AI-agent compatibility
- Add filter to skip static/media file logs in Django application logs
- Reduce proteins.views.spectra verbosity (INFO -> DEBUG for routine operations)
- Replace print statement with logger in production.py
- Update log levels for better signal-to-noise ratio (proteins/fpbase apps: WARNING level)
- Set root logger to INFO for better coverage
- Change disable_existing_loggers to False to preserve app loggers

Addresses Error L10 (log overflow) by:
1. Installing Better Stack (Logtail) addon for 300x capacity increase (3 GB/day vs 10 MB/day)
2. Reducing log volume through verbosity adjustments and static file filtering
3. Preparing structured logs for better AI agent debugging

Better Stack provides:
- 3 GB/day capacity (vs Papertrail's 10 MB/day)
- 3-day retention
- SQL-compatible query interface
- JSON-structured logs

See HEROKU_LOGGING_IMPROVEMENTS.md for full analysis and implementation details.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>

* add claude note

* Fix logging filter to handle non-string log arguments

The skip_static_requests filter was failing when log record args
contained non-string values (e.g., Algolia's logger.info('REGISTER %s', model)).

Added isinstance(record.args[0], str) check before calling startswith()
to prevent AttributeError during collectstatic.

Fixes build failure:
  AttributeError: type object 'Protein' has no attribute 'startswith'

* move to structlog

* Enhance logging configuration: switch to structured logging with JSON format and add context processing

* revert changes

* Remove python-json-logger dependency from pyproject.toml and uv.lock

* Remove opbeat integration and related comments from production settings

* Integrate structlog for enhanced logging: add structlog configuration in base, local, and production settings; update dependencies in pyproject.toml and uv.lock.

* Enhance logging configuration: add Sentry context for error correlation and update foreign_pre_chain processors in local and production settings

* updates from review

* Refactor logging statements for consistency: use % formatting and improve error handling across multiple files

---------

Co-authored-by: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants