Releases: tsnearly/modscope
Releases · tsnearly/modscope
Version 1.0.4
v1.0.4
Desktop & Mobile UI Refinement
- Scrollbar Fix: Resolved a visual bug where a horizontal scrollbar appeared in the report tabs on desktop.
- Dynamic Tab Alignment: Improved tab styling so that active indicators correctly overlap the border-top on desktop (bottom tabs) and border-bottom on mobile (top tabs).
- Visual Polish: Standardized chart aesthetics with smoother gradients and theme-compliant colors.
- Theme: Added a new theme called "Upvoted".
- Expanded View: Modified inline vs expanded view logic to eliminate scrolling that violates Reddit's policy; clicking on tabs that launch an expanded view are shown with a designation next to them, and retain the context for the destination so that the new expanded window can continue where the user left off.
Dashboard & Charts
- Redesigned Activity Trend and Engagement vs Votes charts to match the interactive area chart pattern: gradient fills (0.8 → 0.1 opacity), natural curve interpolation, no Y-axis ticks, and full-width layout.
- Added time range dropdown (7d / 30d / 90d) to the Activity Trend chart; including new chart component supporting a "headerRight" slot for inline controls.
Advanced Analytics (Precision Trends)
- Trend Context: After each trend materialization, the assembled trend dataset is now persisted per scan timestamp, allowing older snapshots to retrieve their matching trend overlay instead of always showing the latest state. Snapshots now retrieve and display their specific historical trend overlay rather than always showing the latest data, allowing for more accurate historical analysis.
- Data Removal: Trend data link to deleted snapshots is automatically removed during retention cleanup. If the snapshot was manually deleted from the user interface, toast messages are shown to indicate starting/completing the process.
- Forecast Materialization: Fully integrated the multi-day forecasting engine, which now powers the word clouds, posting heatmaps, and engagement charts with higher-precision data.
- Deep Analysis Uses Configuration: Replaced hardcoded deep analysis constants (
MAX_DEEP_ANALYSIS_POSTS,MAX_COMMENTS_PER_POST) with values derived from user-configuredanalysisPoolSizeandfetchDepthsettings, so the Configuration view actually controls snapshot behavior. - Comment Traversal Complies with Config: Comment traversal cap now scales with the selected fetch depth tier (fast → 1, light → 8, balanced → 16, thorough → 32, complete → 100).
Infrastructure & Reliability
- Background Stability: Implemented self-registering background jobs to ensure scheduled snapshots survive app upgrades and platform reboots.
- Storage Management: Added a rolling 50-entry limit to job history logs and automated purging of trend data linked to deleted snapshots to keep database usage efficient.
- Refactored Core: Migrated shared logic into a new domain-driven structure (
ReportingService,post-utils,redis-utils) for better maintainability. - Job Scheduling: Snapshot worker now proactively self-registers its job in Redis on every execution, ensuring scheduled jobs survive Devvit app upgrades even for existing installations.
- Job History: Job history ZSET is now trimmed to a rolling 50-entry limit during the snapshot retention cleanup cycle, preventing unbounded growth.
Reporting & Communication
- Modmail Integration: Added a new feature to send snapshot summaries directly to moderators via Reddit private messages.
- Print Engine Fixes: Finalized the HTML export engine to ensure consistent layouts, colors, and branding in generated offline reports.
Version 0.9.8 - Final Testing/Initial Rollout
Report Date and Time Standardization*
- Standardized report chart labels so the Activity, Community Growth, Engagement Over Time, and Content Mix views now use cleaner date formats on the X-axis while keeping tooltips detailed and fully date-stamped.
- Removed tilted X-axis labels from the Activity Trend and Engagement-vs-Votes charts so the report reads more cleanly with parallel text across the dashboard.
- Updated the Posting Activity and Timing heatmaps so their hover tooltips use a consistent presentation, including matching font sizing between the two heatmap views.
- Corrected the report heatmap bucket rendering so the visual intensity matches the legend ranges instead of collapsing sparse values into the darkest shading.
Data Normalization and Stability
- Fixed a normalization edge case in post identifier handling so malformed fallback IDs no longer break processing.
- Updated report freshness handling so stale trend state is based on the actual materialization timestamp stored for the current subreddit.
- Reports are easier to read with cleaner date/time displays and more consistent chart/heatmap formatting.
Scheduling View
- Custom scheduling is more flexible and easier to understand, with improved options and clearer generated schedule descriptions.
- Job history is more accurate, including better processing-time and duration reporting.
Dashboard Launch
- Overall stability and access control were tightened to reduce errors and improve consistency.
- Trending data when available replaces the snapshot calculations for data buckets, word cloud, and prime posting times; and indicates with a notification on the overview.
- Added owner-only utility component to About view for seeding trends, exporting and importing snapshot JSON files.
Version 0.0.97
Release v0.0.97: Report Configuration & Export Improvements
Report Configuration & Export
- Implemented granular report settings for toggling all sections and trend charts
- Fixed Activity charts missing from exported HTML reports
- Resolved Trends charts export timing issue (increased capture delay to 2000ms)
- Added conditional tab filtering based on report settings
- Enhanced print mode data loading for trends
Trends Analytics Engine
- Created dedicated Trends tab with 5 materialized visualizations
- Implemented Community Growth, Engagement Over Time, Content Mix, Posting Activity Heatmap, and Best Posting Times Change charts
- Added async trend data loading with stale data warnings
- Created reusable NonIdealState component for empty states
Configuration & Development
- Removed QuizPlanetGame subreddit override (restored normal operation)
- Fixed ESLint parsing errors for test files
- Added comprehensive ESLint configuration with TypeScript support
- Configured multi-project TypeScript support for client/server
Code Quality & Testing
- Added TrendMaterializationService with comprehensive test suite
- Implemented benchmark, integration, and rate-limiting tests
- Added Vitest configuration for testing infrastructure
- Cleaned up unused imports and improved type safety
Assets & UI
- Added 20+ new icons for trend visualizations and analytics
- Renamed and reorganized asset files for consistency
- Updated icon mappings for screen and print contexts
Documentation
- Updated README with comprehensive v0.0.97 changelog
- Added PERFORMANCE_TEST_REPORT.md and RATE_LIMITING_TEST_REPORT.md
- Updated TECHNICAL.md with latest architecture changes
Submitted to Reddit for review/approval.